Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
T
TakeStock
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
pengjinyang
TakeStock
Commits
c7825842
Commit
c7825842
authored
Jul 05, 2019
by
pengjinyang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提交
parent
eab87216
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
59 additions
and
29 deletions
+59
-29
ITakeStockOrderRepository.cs
.../Domain/TakeStock/Repository/ITakeStockOrderRepository.cs
+1
-1
TakeStockService.cs
Service/TakeStock/TakeStockService.cs
+48
-24
TakeStockController.cs
TakeStock.API/Controllers/TakeStockController.cs
+1
-1
Startup.cs
TakeStock.API/Startup.cs
+6
-0
TakeStockOrderRepository.cs
...SqlSugar/Repository/TakeStock/TakeStockOrderRepository.cs
+3
-3
No files found.
Domain/Domain/TakeStock/Repository/ITakeStockOrderRepository.cs
View file @
c7825842
...
...
@@ -6,6 +6,6 @@ namespace Domain.Domain.TakeStock.Repository
{
public
interface
ITakeStockScheduleRepository
:
IRepository
<
TakeStockSchedule
>
{
bool
CreateOrder
(
TakeStockSchedule
order
,
List
<
TakeStockOrder
>
orders
);
int
CreateOrder
(
TakeStockSchedule
order
,
List
<
TakeStockOrder
>
orders
);
}
}
Service/TakeStock/TakeStockService.cs
View file @
c7825842
...
...
@@ -44,18 +44,19 @@ namespace Service.TakeStock
{
return
await
Task
.
Run
(()
=>
{
bool
isSuccess
=
scheduleRepository
.
CreateOrder
(
schedule
,
orders
);
if
(
isSuccess
)
{
foreach
(
var
order
in
orders
)
{
BackgroundJob
.
Enqueue
(()
=>
FreezeStockAsync
(
order
.
Id
));
}
}
return
isSuccess
;
int
scheduleId
=
scheduleRepository
.
CreateOrder
(
schedule
,
orders
);
if
(
scheduleId
>
0
)
BackgroundJob
.
Enqueue
(()
=>
ReTry
(
scheduleId
));
return
scheduleId
>
0
;
});
}
/// <summary>
/// 根据计划Id添加盘点作业
/// </summary>
/// <param name="scheduleId"></param>
/// <returns></returns>
[
DisplayName
(
"添加盘点作业, 盘点计划Id:{0}"
)]
public
async
Task
<
bool
>
ReTry
(
int
scheduleId
)
{
var
orders
=
orderRepository
.
GetAllList
(
o
=>
!
o
.
IsDeleted
&&
o
.
State
==
TSOrderState
.
创建
&&
o
.
ScheduleId
==
scheduleId
);
...
...
@@ -68,9 +69,10 @@ namespace Service.TakeStock
}
isSuccess
=
true
;
}
catch
(
Exception
ex
)
catch
(
Exception
ex
)
{
isSuccess
=
false
;
BackgroundJob
.
Schedule
(()
=>
ReTry
(
scheduleId
),
DateTimeOffset
.
UtcNow
.
AddMinutes
(
delay
));
}
return
isSuccess
;
}
...
...
@@ -102,12 +104,14 @@ namespace Service.TakeStock
/// <param name="id"></param>
/// <returns></returns>
[
DisplayName
(
"冻结库存, 盘点单Id:{0}"
)]
//[Queue("FreezeS
tock")]
[
Queue
(
"freezes
tock"
)]
public
async
Task
<
bool
>
FreezeStockAsync
(
int
id
)
{
var
order
=
orderRepository
.
Get
(
id
);
bool
isSuccess
=
false
;
if
(
order
.
State
==
TSOrderState
.
冻结库存
||
order
.
State
==
TSOrderState
.
取消
)
if
(
order
.
State
==
TSOrderState
.
取消
)
return
true
;
if
(
order
.
State
==
TSOrderState
.
冻结库存
)
isSuccess
=
true
;
else
{
...
...
@@ -122,11 +126,13 @@ namespace Service.TakeStock
if
(
response
.
IsSuccessStatusCode
)
{
string
responseContent
=
await
response
.
Content
.
ReadAsStringAsync
();
isFreeze
=
Convert
.
ToBoolean
(
JObject
.
Parse
(
responseContent
)[
"data"
]);
var
resultObj
=
JObject
.
Parse
(
responseContent
)[
"data"
];
isFreeze
=
resultObj
[
"IsFreeze"
].
ToObject
<
bool
>();
Task
<
bool
>
logTask
=
null
;
if
(
isFreeze
)
{
order
.
State
=
TSOrderState
.
冻结库存
;
order
.
BeforeQuantity
=
resultObj
[
"Quantity"
].
ToObject
<
int
>();
order
.
LastModificationTime
=
DateTime
.
Now
;
logTask
=
AddOrUpdateLog
(
id
,
TSOrderState
.
冻结库存
,
"冻结库存成功。"
);
...
...
@@ -160,12 +166,14 @@ namespace Service.TakeStock
/// <param name="sku"></param>
/// <returns></returns>
[
DisplayName
(
"回滚库存, 盘点单Id:{0}"
)]
//[Queue("RollbackS
tock")]
[
Queue
(
"rollbacks
tock"
)]
public
async
Task
<
bool
>
RollbackStockAsync
(
int
id
)
{
var
order
=
orderRepository
.
Get
(
id
);
bool
isSuccess
=
false
;
if
(
order
.
State
==
TSOrderState
.
释放库存
||
order
.
State
==
TSOrderState
.
取消
)
if
(
order
.
State
==
TSOrderState
.
取消
)
return
true
;
if
(
order
.
State
==
TSOrderState
.
释放库存
)
isSuccess
=
true
;
else
{
...
...
@@ -235,12 +243,14 @@ namespace Service.TakeStock
/// <param name="sku"></param>
/// <returns></returns>
[
DisplayName
(
"同步并启用库存, 盘点单Id:{0}"
)]
//[Queue("SyncAndEnabledS
tock")]
[
Queue
(
"syncandenableds
tock"
)]
public
async
Task
<
bool
>
SyncAndEnabledAsync
(
int
id
)
{
var
order
=
orderRepository
.
Get
(
id
);
bool
isSuccess
=
false
;
if
(
order
.
State
==
TSOrderState
.
完成
||
order
.
State
==
TSOrderState
.
取消
)
if
(
order
.
State
==
TSOrderState
.
取消
)
return
true
;
if
(
order
.
State
==
TSOrderState
.
完成
)
isSuccess
=
true
;
else
{
...
...
@@ -253,11 +263,13 @@ namespace Service.TakeStock
if
(
response
.
IsSuccessStatusCode
)
{
var
responseContent
=
await
response
.
Content
.
ReadAsStringAsync
();
isSuccess
=
Convert
.
ToBoolean
(
JObject
.
Parse
(
responseContent
)[
"data"
]);
var
resultObj
=
JObject
.
Parse
(
responseContent
)[
"data"
];
isSuccess
=
resultObj
[
"IsSuccess"
].
ToObject
<
bool
>();
Task
<
bool
>
logTask
=
null
;
if
(
isSuccess
)
{
order
.
State
=
TSOrderState
.
完成
;
order
.
AfterQuantity
=
resultObj
[
"Quantity"
].
ToObject
<
int
>();
logTask
=
AddOrUpdateLog
(
id
,
TSOrderState
.
完成
,
"同步并启用库存,盘点完成。"
,
responseContent
);
}
else
...
...
@@ -279,6 +291,13 @@ namespace Service.TakeStock
return
isSuccess
;
}
/// <summary>
/// 检查是否完成计划
/// </summary>
/// <param name="scheduleId"></param>
/// <returns></returns>
[
DisplayName
(
"检查计划是否完成, 盘点计划Id:{0}"
)]
[
Queue
(
"checkcomplete"
)]
public
async
Task
CheckComplete
(
int
scheduleId
)
{
bool
isComplete
=
orderRepository
.
Count
(
o
=>
o
.
ScheduleId
==
scheduleId
&&
o
.
State
!=
TSOrderState
.
完成
&&
o
.
State
!=
TSOrderState
.
取消
)
<=
0
;
...
...
@@ -337,12 +356,14 @@ namespace Service.TakeStock
/// <param name="sku"></param>
/// <returns></returns>
[
DisplayName
(
"修改并启用库存, 盘点单Id:{0}"
)]
//[Queue("ModifAndEnabledS
tock")]
[
Queue
(
"modifandenableds
tock"
)]
public
async
Task
<
bool
>
ModifAndEnabledAsync
(
int
id
)
{
var
order
=
orderRepository
.
Get
(
id
);
bool
isSuccess
=
false
;
if
(
order
.
State
==
TSOrderState
.
完成
||
order
.
State
==
TSOrderState
.
取消
)
if
(
order
.
State
==
TSOrderState
.
取消
)
return
true
;
if
(
order
.
State
==
TSOrderState
.
完成
)
isSuccess
=
true
;
else
{
...
...
@@ -428,7 +449,7 @@ namespace Service.TakeStock
/// </summary>
/// <param name="scheduleId"></param>
[
DisplayName
(
"报溢报损, 盘点计划Id:{0}"
)]
//[Queue("ModifAndEnabledS
tock")]
[
Queue
(
"modifandenableds
tock"
)]
public
void
GainLoss
(
int
scheduleId
)
{
var
schedule
=
scheduleRepository
.
Get
(
scheduleId
);
...
...
@@ -472,7 +493,7 @@ namespace Service.TakeStock
}
[
DisplayName
(
"远程调用报溢报损,"
)]
//[Queue("ModifAndEnabledS
tock")]
[
Queue
(
"modifandenableds
tock"
)]
public
async
Task
<
string
>
AddGainLoss
(
object
obj
)
{
string
code
=
string
.
Empty
;
...
...
@@ -500,7 +521,7 @@ namespace Service.TakeStock
/// <param name="id"></param>
/// <returns></returns>
[
DisplayName
(
"取消盘点, 盘点单Id:{0}"
)]
//[Queue("CancelTakeS
tock")]
[
Queue
(
"canceltakes
tock"
)]
public
async
Task
<
bool
>
CancelOrder
(
int
id
)
{
var
order
=
orderRepository
.
Get
(
id
);
...
...
@@ -549,7 +570,7 @@ namespace Service.TakeStock
/// <param name="scheduleId"></param>
/// <returns></returns>
[
DisplayName
(
"取消盘点, 盘点计划Id:{0}"
)]
//[Queue("CancelTakeS
tock")]
[
Queue
(
"canceltakes
tock"
)]
private
async
Task
CancelSchedule
(
int
scheduleId
)
{
var
schedule
=
scheduleRepository
.
Get
(
scheduleId
);
...
...
@@ -574,5 +595,8 @@ namespace Service.TakeStock
if
(!
isSuccess
)
BackgroundJob
.
Schedule
(()
=>
CancelSchedule
(
scheduleId
),
DateTimeOffset
.
UtcNow
.
AddMinutes
(
delay
));
}
//public
}
}
TakeStock.API/Controllers/TakeStockController.cs
View file @
c7825842
...
...
@@ -71,7 +71,7 @@ namespace TakeStock.API.Controllers
[
HttpGet
(
"CancelOrder"
)]
public
async
Task
<
bool
>
CancelOrder
(
int
id
)
{
return
await
takeStockAppService
.
ReTry
(
id
);
return
await
takeStockAppService
.
CancelOrder
(
id
);
}
// DELETE: api/ApiWithActions/5
...
...
TakeStock.API/Startup.cs
View file @
c7825842
...
...
@@ -94,6 +94,12 @@ namespace TakeStock.API
}
};
app
.
UseHangfireDashboard
(
"/hangfire"
,
options
);
var
options2
=
new
BackgroundJobServerOptions
{
WorkerCount
=
Environment
.
ProcessorCount
*
5
,
Queues
=
new
[]
{
"freezestock"
,
"rollbackstock"
,
"syncandenabledstock"
,
"checkcomplete"
,
"modifandenabledstock"
,
"canceltakestock"
,
"default"
}
};
app
.
UseHangfireServer
(
options2
);
app
.
UseMvc
();
//dbContext.Migration();
...
...
TakeStock.SqlSugar/Repository/TakeStock/TakeStockOrderRepository.cs
View file @
c7825842
...
...
@@ -12,7 +12,7 @@ namespace TakeStock.SqlSugar.Repository.TakeStock
{
}
public
bool
CreateOrder
(
TakeStockSchedule
schedule
,
List
<
TakeStockOrder
>
orders
)
public
int
CreateOrder
(
TakeStockSchedule
schedule
,
List
<
TakeStockOrder
>
orders
)
{
try
{
...
...
@@ -25,12 +25,12 @@ namespace TakeStock.SqlSugar.Repository.TakeStock
order
=
client
.
Insertable
(
order
).
ExecuteReturnEntity
();
}
client
.
Ado
.
CommitTran
();
return
true
;
return
scheduleId
;
}
catch
(
Exception
ex
)
{
client
.
Ado
.
RollbackTran
();
return
false
;
return
0
;
}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment