bug
This commit is contained in:
@@ -1922,7 +1922,7 @@ namespace Tnb.ProductionMgr
|
|||||||
wmsPrdInstockInput.planqty = prdMoTask.scheduled_qty.Value;
|
wmsPrdInstockInput.planqty = prdMoTask.scheduled_qty.Value;
|
||||||
wmsPrdInstockInput.pqty = input.reported_qty;
|
wmsPrdInstockInput.pqty = input.reported_qty;
|
||||||
wmsPrdInstockInput.rqty = 0;
|
wmsPrdInstockInput.rqty = 0;
|
||||||
wmsPrdInstockInput.type = WmsWareHouseConst.BIZTYPE_WMSPRDINSTOCK_ID;
|
wmsPrdInstockInput.type = prdMo.mo_type;
|
||||||
wmsPrdInstockInput.create_id = report.create_id;
|
wmsPrdInstockInput.create_id = report.create_id;
|
||||||
wmsPrdInstockInput.prdInstockDs = new List<WmsPrdInstockDInput>();
|
wmsPrdInstockInput.prdInstockDs = new List<WmsPrdInstockDInput>();
|
||||||
wmsPrdInstockInput.prdInstockDs.Add(new WmsPrdInstockDInput()
|
wmsPrdInstockInput.prdInstockDs.Add(new WmsPrdInstockDInput()
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ using System.Security.Cryptography.X509Certificates;
|
|||||||
using System.Security.Policy;
|
using System.Security.Policy;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
|
using System.Threading;
|
||||||
using Aop.Api.Domain;
|
using Aop.Api.Domain;
|
||||||
using Aspose.Cells.Charts;
|
using Aspose.Cells.Charts;
|
||||||
using JNPF;
|
using JNPF;
|
||||||
@@ -109,16 +110,6 @@ namespace Tnb.ProductionMgr
|
|||||||
|
|
||||||
private readonly ElevatorControlConfiguration _eleCtlCfg = App.Configuration.Build<ElevatorControlConfiguration>();
|
private readonly ElevatorControlConfiguration _eleCtlCfg = App.Configuration.Build<ElevatorControlConfiguration>();
|
||||||
|
|
||||||
Thread testThread;
|
|
||||||
void test()
|
|
||||||
{
|
|
||||||
while (true)
|
|
||||||
{
|
|
||||||
Console.WriteLine(DateTime.Now + " test " + CheckGettimer?.GetHashCode());
|
|
||||||
|
|
||||||
Thread.Sleep(1000);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 构造函数
|
#region 构造函数
|
||||||
@@ -147,8 +138,6 @@ namespace Tnb.ProductionMgr
|
|||||||
db_Floor2timer移走上升降区未生成预任务且满托的料架 = repository.CopyNew();
|
db_Floor2timer移走上升降区未生成预任务且满托的料架 = repository.CopyNew();
|
||||||
db_Floor2timer移走下升降区未生成预任务且空托的料架 = repository.CopyNew();
|
db_Floor2timer移走下升降区未生成预任务且空托的料架 = repository.CopyNew();
|
||||||
|
|
||||||
testThread = new Thread(test);
|
|
||||||
testThread.Start();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@@ -157,6 +146,8 @@ namespace Tnb.ProductionMgr
|
|||||||
//ctu取货
|
//ctu取货
|
||||||
private async void CheckGet(object? state)
|
private async void CheckGet(object? state)
|
||||||
{
|
{
|
||||||
|
if (s_taskCheckGet.CurrentCount == 0)
|
||||||
|
return;
|
||||||
await s_taskCheckGet.WaitAsync();
|
await s_taskCheckGet.WaitAsync();
|
||||||
Stopwatch stopwatch = new Stopwatch();
|
Stopwatch stopwatch = new Stopwatch();
|
||||||
stopwatch.Start();
|
stopwatch.Start();
|
||||||
@@ -338,6 +329,8 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
|
|||||||
//扫码入库
|
//扫码入库
|
||||||
private async void ScanInStock(object? state)
|
private async void ScanInStock(object? state)
|
||||||
{
|
{
|
||||||
|
if (s_taskScan.CurrentCount == 0)
|
||||||
|
return;
|
||||||
await s_taskScan.WaitAsync();
|
await s_taskScan.WaitAsync();
|
||||||
Stopwatch stopwatch = new Stopwatch();
|
Stopwatch stopwatch = new Stopwatch();
|
||||||
stopwatch.Start();
|
stopwatch.Start();
|
||||||
@@ -433,6 +426,8 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private async void BGWCarrySupplement(object? state)
|
private async void BGWCarrySupplement(object? state)
|
||||||
{
|
{
|
||||||
|
if (s_taskBGWCarrySupplement.CurrentCount == 0)
|
||||||
|
return;
|
||||||
await s_taskBGWCarrySupplement.WaitAsync();
|
await s_taskBGWCarrySupplement.WaitAsync();
|
||||||
Stopwatch stopwatch = new Stopwatch();
|
Stopwatch stopwatch = new Stopwatch();
|
||||||
stopwatch.Start();
|
stopwatch.Start();
|
||||||
@@ -546,6 +541,8 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private async void YCLGLDPJInstock(object? state)
|
private async void YCLGLDPJInstock(object? state)
|
||||||
{
|
{
|
||||||
|
if (s_taskYCLGLDPJInstock.CurrentCount == 0)
|
||||||
|
return;
|
||||||
await s_taskYCLGLDPJInstock.WaitAsync();
|
await s_taskYCLGLDPJInstock.WaitAsync();
|
||||||
Stopwatch stopwatch = new Stopwatch();
|
Stopwatch stopwatch = new Stopwatch();
|
||||||
stopwatch.Start();
|
stopwatch.Start();
|
||||||
@@ -631,6 +628,8 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private async void YCLWXDPJInstock(object? state)
|
private async void YCLWXDPJInstock(object? state)
|
||||||
{
|
{
|
||||||
|
if (s_taskYCLWXDPJInstock.CurrentCount == 0)
|
||||||
|
return;
|
||||||
await s_taskYCLWXDPJInstock.WaitAsync();
|
await s_taskYCLWXDPJInstock.WaitAsync();
|
||||||
Stopwatch stopwatch = new Stopwatch();
|
Stopwatch stopwatch = new Stopwatch();
|
||||||
stopwatch.Start();
|
stopwatch.Start();
|
||||||
@@ -714,6 +713,8 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
|
|||||||
|
|
||||||
private async void SSXcode(object? state)
|
private async void SSXcode(object? state)
|
||||||
{
|
{
|
||||||
|
if (s_taskSSXcode.CurrentCount == 0)
|
||||||
|
return;
|
||||||
await s_taskSSXcode.WaitAsync();
|
await s_taskSSXcode.WaitAsync();
|
||||||
Stopwatch stopwatch = new Stopwatch();
|
Stopwatch stopwatch = new Stopwatch();
|
||||||
stopwatch.Start();
|
stopwatch.Start();
|
||||||
@@ -808,6 +809,8 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
|
|||||||
// 上升降机扫码 需要等待空料架区 此处需要轮询
|
// 上升降机扫码 需要等待空料架区 此处需要轮询
|
||||||
private async void Floor2UpMachinecode(object? args)
|
private async void Floor2UpMachinecode(object? args)
|
||||||
{
|
{
|
||||||
|
if (s_taskExecuteFloor2UpMachinecodetimer.CurrentCount == 0)
|
||||||
|
return;
|
||||||
s_taskExecuteFloor2UpMachinecodetimer.Wait();
|
s_taskExecuteFloor2UpMachinecodetimer.Wait();
|
||||||
Stopwatch stopwatch = new Stopwatch();
|
Stopwatch stopwatch = new Stopwatch();
|
||||||
stopwatch.Start();
|
stopwatch.Start();
|
||||||
@@ -991,6 +994,8 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async void 送空托到上升降区(object? args)
|
public async void 送空托到上升降区(object? args)
|
||||||
{
|
{
|
||||||
|
if (s_task送空托到上升降区.CurrentCount == 0)
|
||||||
|
return;
|
||||||
await s_task送空托到上升降区.WaitAsync();
|
await s_task送空托到上升降区.WaitAsync();
|
||||||
Stopwatch stopwatch = new Stopwatch();
|
Stopwatch stopwatch = new Stopwatch();
|
||||||
stopwatch.Start();
|
stopwatch.Start();
|
||||||
@@ -1112,6 +1117,8 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async void 送满托到下升降区(object? args)
|
public async void 送满托到下升降区(object? args)
|
||||||
{
|
{
|
||||||
|
if (s_task送满托到下升降区.CurrentCount == 0)
|
||||||
|
return;
|
||||||
await s_task送满托到下升降区.WaitAsync();
|
await s_task送满托到下升降区.WaitAsync();
|
||||||
Stopwatch stopwatch = new Stopwatch();
|
Stopwatch stopwatch = new Stopwatch();
|
||||||
stopwatch.Start();
|
stopwatch.Start();
|
||||||
@@ -1257,6 +1264,8 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async void 移走上升降区未生成预任务且满托的料架(object? args)
|
public async void 移走上升降区未生成预任务且满托的料架(object? args)
|
||||||
{
|
{
|
||||||
|
if (s_task移走上升降区未生成预任务且满托的料架.CurrentCount == 0)
|
||||||
|
return;
|
||||||
await s_task移走上升降区未生成预任务且满托的料架.WaitAsync();
|
await s_task移走上升降区未生成预任务且满托的料架.WaitAsync();
|
||||||
Stopwatch stopwatch = new Stopwatch();
|
Stopwatch stopwatch = new Stopwatch();
|
||||||
stopwatch.Start();
|
stopwatch.Start();
|
||||||
@@ -1358,6 +1367,8 @@ where carry_code = '{coderesult}' and status = '{WmsWareHouseConst.TASK_BILL_STA
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async void 移走下升降区未生成预任务且空托的料架(object? args)
|
public async void 移走下升降区未生成预任务且空托的料架(object? args)
|
||||||
{
|
{
|
||||||
|
if (s_task移走下升降区未生成预任务且空托的料架.CurrentCount == 0)
|
||||||
|
return;
|
||||||
await s_task移走下升降区未生成预任务且空托的料架.WaitAsync();
|
await s_task移走下升降区未生成预任务且空托的料架.WaitAsync();
|
||||||
Stopwatch stopwatch = new Stopwatch();
|
Stopwatch stopwatch = new Stopwatch();
|
||||||
stopwatch.Start();
|
stopwatch.Start();
|
||||||
|
|||||||
@@ -240,7 +240,7 @@
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 生产入库
|
/// 生产入库
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public const string BIZTYPE_WMSPRDINSTOCK_ID = "34467501190677";
|
public const string BIZTYPE_WMSPRDINSTOCK_ID = "34840264160277";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 条码打印状态-已完成
|
/// 条码打印状态-已完成
|
||||||
|
|||||||
@@ -25,7 +25,13 @@ namespace Tnb.WarehouseMgr.Interfaces
|
|||||||
/// <param name="input"></param>
|
/// <param name="input"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task<List<WmsCarryH>> OutStockStrategy([FromQuery] OutStockStrategyQuery input);
|
Task<List<WmsCarryH>> OutStockStrategy([FromQuery] OutStockStrategyQuery input);
|
||||||
|
/// <summary>
|
||||||
|
/// 原材料仓出库策略
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="input"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
/// <exception cref="AppFriendlyException"></exception>
|
||||||
|
Task<List<WmsCarryH>> OutStockStrategyYCL([FromQuery] OutStockStrategyQuery input);
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 出库策略-销售出库下发
|
/// 出库策略-销售出库下发
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -364,6 +364,50 @@ namespace Tnb.WarehouseMgr
|
|||||||
return input.Size > 0 ? items.Take(input.Size).ToList() : items;
|
return input.Size > 0 ? items.Take(input.Size).ToList() : items;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 原材料仓出库策略
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="input"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
/// <exception cref="AppFriendlyException"></exception>
|
||||||
|
public async Task<List<WmsCarryH>> OutStockStrategyYCL([FromQuery] OutStockStrategyQuery input)
|
||||||
|
{
|
||||||
|
Expressionable<WmsCarryH, WmsCarryCode, BasLocation> whereExprable = Expressionable.Create<WmsCarryH, WmsCarryCode, BasLocation>()
|
||||||
|
.And((a, b, c) => a.is_lock == 0 && c.is_lock == 0)
|
||||||
|
.And((a, b, c) => !string.IsNullOrEmpty(a.location_id))
|
||||||
|
.And((a, b, c) => c.is_type == ((int)EnumLocationType.存储库位).ToString())
|
||||||
|
.And((a, b, c) => a.out_status == "0")
|
||||||
|
.And((a, b, c) => c.wh_id == input.warehouse_id)
|
||||||
|
.AndIF(!string.IsNullOrEmpty(input.material_id), (a, b, c) => b.material_id == input.material_id)
|
||||||
|
.AndIF(!string.IsNullOrEmpty(input.code_batch), (a, b, c) => b.code_batch == input.code_batch)
|
||||||
|
.AndIF(!string.IsNullOrEmpty(input.material_specification), (a, b, c) => b.material_specification == input.material_specification)
|
||||||
|
.AndIF(!string.IsNullOrEmpty(input.container_no), (a, b, c) => b.container_no == input.container_no)
|
||||||
|
.AndIF(!string.IsNullOrEmpty(input.carrystd_id), (a, b, c) => a.carrystd_id == input.carrystd_id);
|
||||||
|
Expression<Func<WmsCarryH, WmsCarryCode, BasLocation, bool>> carryStatusFilterExp = !input.material_id.IsNullOrWhiteSpace()
|
||||||
|
? (a, b, c) => a.carry_status == ((int)EnumCarryStatus.占用).ToString()
|
||||||
|
: (a, b, c) => a.carry_status == ((int)EnumCarryStatus.空闲).ToString();
|
||||||
|
_ = whereExprable.And(carryStatusFilterExp);
|
||||||
|
Expression<Func<WmsCarryH, WmsCarryCode, BasLocation, bool>> whereExpr = whereExprable.ToExpression();
|
||||||
|
|
||||||
|
SqlSugarClient cyDb = _db.CopyNew();
|
||||||
|
WmsInstockPolicies policy = await cyDb.Queryable<WmsInstockPolicies>().Where(it => it.status == 1).FirstAsync();
|
||||||
|
if (policy == null)
|
||||||
|
{
|
||||||
|
throw new AppFriendlyException("没有可用策略", 500);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<WmsCarryH> items = await cyDb.Queryable<WmsCarryH>().LeftJoin<WmsCarryCode>((a, b) => a.id == b.carry_id)
|
||||||
|
.LeftJoin<BasLocation>((a, b, c) => a.location_id == c.id)
|
||||||
|
.Where(whereExpr)
|
||||||
|
//.OrderByIF((a,b,c)=>SqlFunc.IsNullOrEmpty())
|
||||||
|
.OrderBy(policy.policy)
|
||||||
|
|
||||||
|
.Select<WmsCarryH>()
|
||||||
|
.Distinct()
|
||||||
|
.ToListAsync();
|
||||||
|
return input.Size > 0 ? items.Take(input.Size).ToList() : items;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 判断CTU是否可以放货
|
/// 判断CTU是否可以放货
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -564,8 +608,27 @@ namespace Tnb.WarehouseMgr
|
|||||||
getdic.Add("ZS-C04-2", new string[] { "hxjC", "A5AGV允许入满箱", "true" });
|
getdic.Add("ZS-C04-2", new string[] { "hxjC", "A5AGV允许入满箱", "true" });
|
||||||
getdic.Add("ZS-C05-2", new string[] { "hxjC", "A6AGV允许入满箱", "true" });
|
getdic.Add("ZS-C05-2", new string[] { "hxjC", "A6AGV允许入满箱", "true" });
|
||||||
getdic.Add("ZS-C06-2", new string[] { "hxjC", "A7AGV允许入满箱", "true" });
|
getdic.Add("ZS-C06-2", new string[] { "hxjC", "A7AGV允许入满箱", "true" });
|
||||||
|
getdic.Add("ZS-C07-2", new string[] { "hxjC", "A8AGV允许入满箱", "true" });
|
||||||
|
getdic.Add("ZS-C08-2", new string[] { "hxjC", "A9AGV允许入满箱", "true" });
|
||||||
|
getdic.Add("ZS-C09-2", new string[] { "hxjC", "A10AGV允许入满箱", "true" });
|
||||||
|
getdic.Add("ZS-C10-2", new string[] { "hxjC", "A11AGV允许入满箱", "true" });
|
||||||
|
getdic.Add("ZS-C11-2", new string[] { "hxjC", "A12AGV允许入满箱", "true" });
|
||||||
|
getdic.Add("ZS-C12-2", new string[] { "hxjC", "A13AGV允许入满箱", "true" });
|
||||||
|
getdic.Add("ZS-C13-2", new string[] { "hxjC", "A14AGV允许入满箱", "true" });
|
||||||
|
getdic.Add("ZS-C14-2", new string[] { "hxjC", "A1AGV允许入满箱", "true" });
|
||||||
|
|
||||||
|
getdic.Add("ZS-A01-2", new string[] { "hxjA", "A3AGV允许入满箱", "true" });
|
||||||
|
getdic.Add("ZS-A02-2", new string[] { "hxjA", "A4AGV允许入满箱", "true" });
|
||||||
|
getdic.Add("ZS-A03-2", new string[] { "hxjA", "A5AGV允许入满箱", "true" });
|
||||||
|
getdic.Add("ZS-A04-2", new string[] { "hxjA", "A6AGV允许入满箱", "true" });
|
||||||
|
getdic.Add("ZS-A05-2", new string[] { "hxjA", "A7AGV允许入满箱", "true" });
|
||||||
|
getdic.Add("ZS-A06-2", new string[] { "hxjA", "A8AGV允许入满箱", "true" });
|
||||||
|
getdic.Add("ZS-A07-2", new string[] { "hxjA", "A9AGV允许入满箱", "true" });
|
||||||
|
getdic.Add("ZS-A08-2", new string[] { "hxjA", "A10AGV允许入满箱", "true" });
|
||||||
|
getdic.Add("ZS-A09-2", new string[] { "hxjA", "A11AGV允许入满箱", "true" });
|
||||||
|
getdic.Add("ZS-A10-2", new string[] { "hxjA", "A12AGV允许入满箱", "true" });
|
||||||
|
getdic.Add("ZS-A11-2", new string[] { "hxjA", "A13AGV允许入满箱", "true" });
|
||||||
|
getdic.Add("ZS-A12-2", new string[] { "hxjA", "A14AGV允许入满箱", "true" });
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -584,6 +647,28 @@ namespace Tnb.WarehouseMgr
|
|||||||
putdic.Add("ZS-C04-1", new string[] { "hxjC", "A5AGV允许出空箱", "true" });
|
putdic.Add("ZS-C04-1", new string[] { "hxjC", "A5AGV允许出空箱", "true" });
|
||||||
putdic.Add("ZS-C05-1", new string[] { "hxjC", "A6AGV允许出空箱", "true" });
|
putdic.Add("ZS-C05-1", new string[] { "hxjC", "A6AGV允许出空箱", "true" });
|
||||||
putdic.Add("ZS-C06-1", new string[] { "hxjC", "A7AGV允许出空箱", "true" });
|
putdic.Add("ZS-C06-1", new string[] { "hxjC", "A7AGV允许出空箱", "true" });
|
||||||
|
putdic.Add("ZS-C07-1", new string[] { "hxjC", "A8AGV允许出空箱", "true" });
|
||||||
|
putdic.Add("ZS-C08-1", new string[] { "hxjC", "A9AGV允许出空箱", "true" });
|
||||||
|
putdic.Add("ZS-C09-1", new string[] { "hxjC", "A10AGV允许出空箱", "true" });
|
||||||
|
putdic.Add("ZS-C10-1", new string[] { "hxjC", "A11AGV允许出空箱", "true" });
|
||||||
|
putdic.Add("ZS-C11-1", new string[] { "hxjC", "A12AGV允许出空箱", "true" });
|
||||||
|
putdic.Add("ZS-C12-1", new string[] { "hxjC", "A13AGV允许出空箱", "true" });
|
||||||
|
putdic.Add("ZS-C13-1", new string[] { "hxjC", "A14AGV允许出空箱", "true" });
|
||||||
|
putdic.Add("ZS-C14-1", new string[] { "hxjC", "A1AGV允许出空箱", "true" });
|
||||||
|
|
||||||
|
putdic.Add("ZS-A01-1", new string[] { "hxjA", "A3AGV允许出空箱", "true" });
|
||||||
|
putdic.Add("ZS-A02-1", new string[] { "hxjA", "A4AGV允许出空箱", "true" });
|
||||||
|
putdic.Add("ZS-A03-1", new string[] { "hxjA", "A5AGV允许出空箱", "true" });
|
||||||
|
putdic.Add("ZS-A04-1", new string[] { "hxjA", "A6AGV允许出空箱", "true" });
|
||||||
|
putdic.Add("ZS-A05-1", new string[] { "hxjA", "A7AGV允许出空箱", "true" });
|
||||||
|
putdic.Add("ZS-A06-1", new string[] { "hxjA", "A8AGV允许出空箱", "true" });
|
||||||
|
putdic.Add("ZS-A07-1", new string[] { "hxjA", "A9AGV允许出空箱", "true" });
|
||||||
|
putdic.Add("ZS-A08-1", new string[] { "hxjA", "A10AGV允许出空箱", "true" });
|
||||||
|
putdic.Add("ZS-A09-1", new string[] { "hxjA", "A11AGV允许出空箱", "true" });
|
||||||
|
putdic.Add("ZS-A10-1", new string[] { "hxjA", "A12AGV允许出空箱", "true" });
|
||||||
|
putdic.Add("ZS-A11-1", new string[] { "hxjA", "A13AGV允许出空箱", "true" });
|
||||||
|
putdic.Add("ZS-A12-1", new string[] { "hxjA", "A14AGV允许出空箱", "true" });
|
||||||
|
|
||||||
if (action == "LOAD")//取货
|
if (action == "LOAD")//取货
|
||||||
{
|
{
|
||||||
if (getdic.Keys.Contains(disTask.startlocation_code))
|
if (getdic.Keys.Contains(disTask.startlocation_code))
|
||||||
@@ -826,6 +911,11 @@ namespace Tnb.WarehouseMgr
|
|||||||
[HttpPost]
|
[HttpPost]
|
||||||
public async Task GenTaskExecute()
|
public async Task GenTaskExecute()
|
||||||
{
|
{
|
||||||
|
if (s_taskExecuteSemaphore.CurrentCount == 0)
|
||||||
|
{
|
||||||
|
Logger.Information("【GenTaskExecute】 【测试】 丢弃此执行");
|
||||||
|
return;
|
||||||
|
}
|
||||||
await s_taskExecuteSemaphore.WaitAsync();
|
await s_taskExecuteSemaphore.WaitAsync();
|
||||||
await CTUTaskExecute();
|
await CTUTaskExecute();
|
||||||
|
|
||||||
@@ -852,6 +942,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
third_eqp_type = c.third_eqp_type,
|
third_eqp_type = c.third_eqp_type,
|
||||||
}, true);
|
}, true);
|
||||||
|
|
||||||
|
Logger.Information($"【GenTaskExecute】 获取到{sugarQueryable.Count()}条可执行的预任务...");
|
||||||
if (sugarQueryable.Count() == 0)
|
if (sugarQueryable.Count() == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -1088,7 +1179,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Logger.Error("生成预任务执行时出现错误", ex);
|
Logger.Error("【GenTaskExecute】生成预任务执行时出现错误", ex);
|
||||||
Logger.Error(ex.StackTrace!);
|
Logger.Error(ex.StackTrace!);
|
||||||
await db.Ado.RollbackTranAsync();
|
await db.Ado.RollbackTranAsync();
|
||||||
throw;
|
throw;
|
||||||
@@ -1097,6 +1188,9 @@ namespace Tnb.WarehouseMgr
|
|||||||
{
|
{
|
||||||
_ = s_taskExecuteSemaphore.Release();
|
_ = s_taskExecuteSemaphore.Release();
|
||||||
agvCts.Dispose();
|
agvCts.Dispose();
|
||||||
|
sw.Stop();
|
||||||
|
Logger.Error($"【GenTaskExecute】 任务执行耗时{sw.ElapsedMilliseconds}毫秒");
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2240,6 +2334,8 @@ namespace Tnb.WarehouseMgr
|
|||||||
|
|
||||||
private async Task<List<WmsPointH>> LocPathCalcAlgorithms(string pStartId, string pEndId, List<WmsRoad> roads)
|
private async Task<List<WmsPointH>> LocPathCalcAlgorithms(string pStartId, string pEndId, List<WmsRoad> roads)
|
||||||
{
|
{
|
||||||
|
Logger.Information($"【LocPathCalcAlgorithms】开始执行 pStartId:{pStartId} pEndId:{pEndId}");
|
||||||
|
Stopwatch stopwatch = Stopwatch.StartNew();
|
||||||
#region dp
|
#region dp
|
||||||
//List<WmsPointH> results = new();
|
//List<WmsPointH> results = new();
|
||||||
//var points = await _db.Queryable<WmsPointH>().ToListAsync();
|
//var points = await _db.Queryable<WmsPointH>().ToListAsync();
|
||||||
@@ -2318,6 +2414,12 @@ namespace Tnb.WarehouseMgr
|
|||||||
Logger.Error("路径算法错误", ex);
|
Logger.Error("路径算法错误", ex);
|
||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
stopwatch.Stop();
|
||||||
|
Logger.Information($"【LocPathCalcAlgorithms】耗时{stopwatch.ElapsedMilliseconds}");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return results;
|
return results;
|
||||||
#endregion
|
#endregion
|
||||||
@@ -2551,6 +2653,16 @@ namespace Tnb.WarehouseMgr
|
|||||||
ePoint = await _db.Queryable<WmsPointH>().FirstAsync(it => it.location_id == input.endlocation_id);
|
ePoint = await _db.Queryable<WmsPointH>().FirstAsync(it => it.location_id == input.endlocation_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (sPoint == null)
|
||||||
|
{
|
||||||
|
throw new Exception($"库位{input.startlocation_id} 的起点点位未维护");
|
||||||
|
}
|
||||||
|
if (ePoint == null)
|
||||||
|
{
|
||||||
|
throw new Exception($"库位{input.endlocation_id} 的终点点位未维护");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
List<WmsPointH> points = new List<WmsPointH>();
|
List<WmsPointH> points = new List<WmsPointH>();
|
||||||
if (sPoint.area_code != ePoint.area_code)
|
if (sPoint.area_code != ePoint.area_code)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -200,65 +200,62 @@ namespace Tnb.WarehouseMgr
|
|||||||
public async Task<Result> CarryBind(CarryBindInput input)
|
public async Task<Result> CarryBind(CarryBindInput input)
|
||||||
{
|
{
|
||||||
bool isOk = false;
|
bool isOk = false;
|
||||||
|
|
||||||
using (var db = _db.CopyNew())
|
try
|
||||||
{
|
{
|
||||||
try
|
if (input == null)
|
||||||
{
|
{
|
||||||
if (input == null)
|
throw new ArgumentNullException(nameof(input));
|
||||||
|
}
|
||||||
|
|
||||||
|
await _db.Ado.BeginTranAsync();
|
||||||
|
WmsCarryH? carry = await _db.Queryable<WmsCarryH>().SingleAsync(it => it.id == input.carry_id);
|
||||||
|
WmsCarryH? subCarry = await _db.Queryable<WmsCarryH>().SingleAsync(it => it.id == input.membercarry_id);
|
||||||
|
if (carry != null && subCarry != null)
|
||||||
|
{
|
||||||
|
WmsCarryD wmsCarryD = new()
|
||||||
{
|
{
|
||||||
throw new ArgumentNullException(nameof(input));
|
carry_id = input.carry_id,
|
||||||
|
membercarry_id = input.membercarry_id,
|
||||||
|
membercarry_code = input.membercarry_code,
|
||||||
|
loc = 1,
|
||||||
|
create_time = DateTime.Now
|
||||||
|
};
|
||||||
|
int row = await _db.Insertable(wmsCarryD).ExecuteCommandAsync();
|
||||||
|
isOk = row > 0;
|
||||||
|
if (!isOk)
|
||||||
|
{
|
||||||
|
throw Oops.Oh(ErrorCode.COM1001);
|
||||||
}
|
}
|
||||||
|
|
||||||
await db.Ado.BeginTranAsync();
|
// 插入子载具绑定记录
|
||||||
WmsCarryH? carry = await db.Queryable<WmsCarryH>().SingleAsync(it => it.id == input.carry_id);
|
VisualDevModelDataCrInput visualDevModelCrInput = new() { data = new Dictionary<string, object>() };
|
||||||
WmsCarryH? subCarry = await db.Queryable<WmsCarryH>().SingleAsync(it => it.id == input.membercarry_id);
|
visualDevModelCrInput.data[nameof(WmsCarrybindH.carry_id)] = input.carry_id;
|
||||||
if (carry != null && subCarry != null)
|
visualDevModelCrInput.data[nameof(WmsCarrybindH.carry_code)] = input.carry_code;
|
||||||
{
|
visualDevModelCrInput.data[nameof(WmsCarrybindH.membercarry_id)] = input.membercarry_id;
|
||||||
WmsCarryD wmsCarryD = new()
|
visualDevModelCrInput.data[nameof(WmsCarrybindH.membercarry_code)] = input.membercarry_code;
|
||||||
{
|
visualDevModelCrInput.data[nameof(WmsCarrybindH.type)] = 0;
|
||||||
carry_id = input.carry_id,
|
visualDevModelCrInput.data[nameof(WmsCarrybindH.carrystd_id)] = carry.carrystd_id;
|
||||||
membercarry_id = input.membercarry_id,
|
//visualDevModelCrInput.data[nameof(WmsCarrybindH.create_id)] = input.create_id;
|
||||||
membercarry_code = input.membercarry_code,
|
visualDevModelCrInput.data[nameof(WmsCarrybindH.create_time)] = DateTime.Now;
|
||||||
loc = 1,
|
visualDevModelCrInput.data[nameof(WmsCarrybindH.loc)] = 1;
|
||||||
create_time = DateTime.Now
|
VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleConsts.MODULE_WMSCARRYBIND_ID, true);
|
||||||
};
|
await _runService.Create(templateEntity, visualDevModelCrInput);
|
||||||
int row = await db.Insertable(wmsCarryD).ExecuteCommandAsync();
|
|
||||||
isOk = row > 0;
|
|
||||||
if (!isOk)
|
|
||||||
{
|
|
||||||
throw Oops.Oh(ErrorCode.COM1001);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 插入子载具绑定记录
|
await _db.Ado.CommitTranAsync();
|
||||||
VisualDevModelDataCrInput visualDevModelCrInput = new() { data = new Dictionary<string, object>() };
|
}
|
||||||
visualDevModelCrInput.data[nameof(WmsCarrybindH.carry_id)] = input.carry_id;
|
else
|
||||||
visualDevModelCrInput.data[nameof(WmsCarrybindH.carry_code)] = input.carry_code;
|
{
|
||||||
visualDevModelCrInput.data[nameof(WmsCarrybindH.membercarry_id)] = input.membercarry_id;
|
if (carry == null || subCarry == null)
|
||||||
visualDevModelCrInput.data[nameof(WmsCarrybindH.membercarry_code)] = input.membercarry_code;
|
|
||||||
visualDevModelCrInput.data[nameof(WmsCarrybindH.type)] = 0;
|
|
||||||
visualDevModelCrInput.data[nameof(WmsCarrybindH.carrystd_id)] = carry.carrystd_id;
|
|
||||||
//visualDevModelCrInput.data[nameof(WmsCarrybindH.create_id)] = input.create_id;
|
|
||||||
visualDevModelCrInput.data[nameof(WmsCarrybindH.create_time)] = DateTime.Now;
|
|
||||||
visualDevModelCrInput.data[nameof(WmsCarrybindH.loc)] = 1;
|
|
||||||
VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleConsts.MODULE_WMSCARRYBIND_ID, true);
|
|
||||||
await _runService.Create(templateEntity, visualDevModelCrInput);
|
|
||||||
|
|
||||||
await db.Ado.CommitTranAsync();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
if (carry == null || subCarry == null)
|
throw new AppFriendlyException("没有可用的主载具", 500);
|
||||||
{
|
|
||||||
throw new AppFriendlyException("没有可用的主载具", 500);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
}
|
||||||
{
|
catch (Exception ex)
|
||||||
await db.Ado.RollbackTranAsync();
|
{
|
||||||
return await ToApiResult(JNPF.Common.Enums.HttpStatusCode.InternalServerError, ex.Message);
|
await _db.Ado.RollbackTranAsync();
|
||||||
}
|
return await ToApiResult(JNPF.Common.Enums.HttpStatusCode.InternalServerError, ex.Message);
|
||||||
}
|
}
|
||||||
|
|
||||||
return await ToApiResult(JNPF.Common.Enums.HttpStatusCode.OK, "成功");
|
return await ToApiResult(JNPF.Common.Enums.HttpStatusCode.OK, "成功");
|
||||||
@@ -275,56 +272,53 @@ namespace Tnb.WarehouseMgr
|
|||||||
public async Task<Result> CarryUnbind(CarryBindInput input)
|
public async Task<Result> CarryUnbind(CarryBindInput input)
|
||||||
{
|
{
|
||||||
bool isOk = false;
|
bool isOk = false;
|
||||||
using (var db = _db.CopyNew())
|
try
|
||||||
{
|
{
|
||||||
try
|
if (input == null)
|
||||||
{
|
{
|
||||||
if (input == null)
|
throw new ArgumentNullException(nameof(input));
|
||||||
|
}
|
||||||
|
|
||||||
|
WmsCarryH? carry = await _db.Queryable<WmsCarryH>().SingleAsync(it => it.id == input.carry_id);
|
||||||
|
if (carry != null)
|
||||||
|
{
|
||||||
|
int row = await _db.Deleteable<WmsCarryD>().Where(r => r.carry_id == input.carry_id).ExecuteCommandAsync();
|
||||||
|
isOk = row > 0;
|
||||||
|
|
||||||
|
if (!isOk)
|
||||||
{
|
{
|
||||||
throw new ArgumentNullException(nameof(input));
|
throw Oops.Oh(ErrorCode.COM1001);
|
||||||
}
|
}
|
||||||
|
|
||||||
WmsCarryH? carry = await _db.Queryable<WmsCarryH>().SingleAsync(it => it.id == input.carry_id);
|
|
||||||
if (carry != null)
|
// 插入子载具绑定记录
|
||||||
|
VisualDevModelDataCrInput visualDevModelCrInput = new() { data = new Dictionary<string, object>() };
|
||||||
|
visualDevModelCrInput.data[nameof(WmsCarrybindH.carry_id)] = input.carry_id;
|
||||||
|
visualDevModelCrInput.data[nameof(WmsCarrybindH.carry_code)] = input.carry_code;
|
||||||
|
visualDevModelCrInput.data[nameof(WmsCarrybindH.membercarry_id)] = input.membercarry_id;
|
||||||
|
visualDevModelCrInput.data[nameof(WmsCarrybindH.membercarry_code)] = input.membercarry_code;
|
||||||
|
visualDevModelCrInput.data[nameof(WmsCarrybindH.type)] = 0;
|
||||||
|
visualDevModelCrInput.data[nameof(WmsCarrybindH.carrystd_id)] = carry.carrystd_id;
|
||||||
|
visualDevModelCrInput.data[nameof(WmsCarrybindH.create_id)] = input.create_id;
|
||||||
|
visualDevModelCrInput.data[nameof(WmsCarrybindH.create_time)] = DateTime.Now;
|
||||||
|
visualDevModelCrInput.data[nameof(WmsCarrybindH.loc)] = 1;
|
||||||
|
VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleConsts.MODULE_WMSCARRYUNBIND_ID, true);
|
||||||
|
await _runService.Create(templateEntity, visualDevModelCrInput);
|
||||||
|
|
||||||
|
await _db.Ado.CommitTranAsync();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (carry == null)
|
||||||
{
|
{
|
||||||
int row = await _db.Deleteable<WmsCarryD>().Where(r => r.carry_id == input.carry_id).ExecuteCommandAsync();
|
throw new AppFriendlyException("没有可用的主载具", 500);
|
||||||
isOk = row > 0;
|
|
||||||
|
|
||||||
if (!isOk)
|
|
||||||
{
|
|
||||||
throw Oops.Oh(ErrorCode.COM1001);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// 插入子载具绑定记录
|
|
||||||
VisualDevModelDataCrInput visualDevModelCrInput = new() { data = new Dictionary<string, object>() };
|
|
||||||
visualDevModelCrInput.data[nameof(WmsCarrybindH.carry_id)] = input.carry_id;
|
|
||||||
visualDevModelCrInput.data[nameof(WmsCarrybindH.carry_code)] = input.carry_code;
|
|
||||||
visualDevModelCrInput.data[nameof(WmsCarrybindH.membercarry_id)] = input.membercarry_id;
|
|
||||||
visualDevModelCrInput.data[nameof(WmsCarrybindH.membercarry_code)] = input.membercarry_code;
|
|
||||||
visualDevModelCrInput.data[nameof(WmsCarrybindH.type)] = 0;
|
|
||||||
visualDevModelCrInput.data[nameof(WmsCarrybindH.carrystd_id)] = carry.carrystd_id;
|
|
||||||
visualDevModelCrInput.data[nameof(WmsCarrybindH.create_id)] = input.create_id;
|
|
||||||
visualDevModelCrInput.data[nameof(WmsCarrybindH.create_time)] = DateTime.Now;
|
|
||||||
visualDevModelCrInput.data[nameof(WmsCarrybindH.loc)] = 1;
|
|
||||||
VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleConsts.MODULE_WMSCARRYUNBIND_ID, true);
|
|
||||||
await _runService.Create(templateEntity, visualDevModelCrInput);
|
|
||||||
|
|
||||||
await db.Ado.CommitTranAsync();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (carry == null)
|
|
||||||
{
|
|
||||||
throw new AppFriendlyException("没有可用的主载具", 500);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
}
|
||||||
{
|
catch (Exception ex)
|
||||||
await db.Ado.RollbackTranAsync();
|
{
|
||||||
return await ToApiResult(JNPF.Common.Enums.HttpStatusCode.InternalServerError, ex.Message);
|
await _db.Ado.RollbackTranAsync();
|
||||||
}
|
return await ToApiResult(JNPF.Common.Enums.HttpStatusCode.InternalServerError, ex.Message);
|
||||||
}
|
}
|
||||||
|
|
||||||
return await ToApiResult(JNPF.Common.Enums.HttpStatusCode.OK, "成功");
|
return await ToApiResult(JNPF.Common.Enums.HttpStatusCode.OK, "成功");
|
||||||
|
|||||||
@@ -223,10 +223,13 @@ namespace Tnb.WarehouseMgr
|
|||||||
throw new ArgumentNullException(nameof(input));
|
throw new ArgumentNullException(nameof(input));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool isOk = await _db.Updateable<WmsDelivery>().SetColumns(it => new WmsDelivery { status = WmsWareHouseConst.BILLSTATUS_COMPLETE_ID }).Where(it => it.id == input.requireId).ExecuteCommandHasChangeAsync();
|
if (!string.IsNullOrEmpty(input.requireId))
|
||||||
if (!isOk)
|
|
||||||
{
|
{
|
||||||
throw Oops.Oh(ErrorCode.COM1001);
|
bool isOk = await _db.Updateable<WmsDelivery>().SetColumns(it => new WmsDelivery { status = WmsWareHouseConst.BILLSTATUS_COMPLETE_ID }).Where(it => it.id == input.requireId).ExecuteCommandHasChangeAsync();
|
||||||
|
if (!isOk)
|
||||||
|
{
|
||||||
|
throw Oops.Oh(ErrorCode.COM1001);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
code_batch = input.code_batch,
|
code_batch = input.code_batch,
|
||||||
Size = input.palletCount
|
Size = input.palletCount
|
||||||
};
|
};
|
||||||
List<WmsCarryH> items = await _wareHouseService.OutStockStrategy(inStockStrategyInput);
|
List<WmsCarryH> items = await _wareHouseService.OutStockStrategyYCL(inStockStrategyInput);
|
||||||
|
|
||||||
decimal qty = _db.Queryable<WmsCarryCode>().Where(r => items.Select(a => a.id).Contains(r.carry_id) && r.material_id == input.material_id).Sum(r => r.codeqty);
|
decimal qty = _db.Queryable<WmsCarryCode>().Where(r => items.Select(a => a.id).Contains(r.carry_id) && r.material_id == input.material_id).Sum(r => r.codeqty);
|
||||||
|
|
||||||
@@ -257,7 +257,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
|
|
||||||
//入库取终点 //出库起点
|
//入库取终点 //出库起点
|
||||||
OutStockStrategyQuery inStockStrategyInput = new() { warehouse_id = WmsWareHouseConst.WAREHOUSE_YCL_ID, material_id = wmsMaterialTransferD.material_id, code_batch = wmsMaterialTransferD.code_batch, Size = input.palletCount };
|
OutStockStrategyQuery inStockStrategyInput = new() { warehouse_id = WmsWareHouseConst.WAREHOUSE_YCL_ID, material_id = wmsMaterialTransferD.material_id, code_batch = wmsMaterialTransferD.code_batch, Size = input.palletCount };
|
||||||
List<WmsCarryH> items = await _wareHouseService.OutStockStrategy(inStockStrategyInput);
|
List<WmsCarryH> items = await _wareHouseService.OutStockStrategyYCL(inStockStrategyInput);
|
||||||
|
|
||||||
if (items.Count == 0)
|
if (items.Count == 0)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ using JNPF.VisualDev;
|
|||||||
using JNPF.VisualDev.Entitys;
|
using JNPF.VisualDev.Entitys;
|
||||||
using JNPF.VisualDev.Interfaces;
|
using JNPF.VisualDev.Interfaces;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Newtonsoft.Json;
|
||||||
using SqlSugar;
|
using SqlSugar;
|
||||||
using Tnb.BasicData;
|
using Tnb.BasicData;
|
||||||
using Tnb.BasicData.Entities;
|
using Tnb.BasicData.Entities;
|
||||||
@@ -55,6 +56,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<Entities.Dto.Outputs.Result> PrdInstock(WmsPrdInstockInput input)
|
public async Task<Entities.Dto.Outputs.Result> PrdInstock(WmsPrdInstockInput input)
|
||||||
{
|
{
|
||||||
|
Logger.LogInformation($"【PrdInstock】传入参数 {JsonConvert.SerializeObject(input)}");
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
await _db.Ado.BeginTranAsync();
|
await _db.Ado.BeginTranAsync();
|
||||||
@@ -62,6 +64,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
WmsPrdInstockH prdInstockH = _db.Queryable<WmsPrdInstockH>().Where(r => r.prd_bill_code == input.prd_bill_code).First();
|
WmsPrdInstockH prdInstockH = _db.Queryable<WmsPrdInstockH>().Where(r => r.prd_bill_code == input.prd_bill_code).First();
|
||||||
|
|
||||||
string prd_instock_code_id = "";
|
string prd_instock_code_id = "";
|
||||||
|
string type = "";
|
||||||
// 新建主表
|
// 新建主表
|
||||||
if (prdInstockH == null)
|
if (prdInstockH == null)
|
||||||
{
|
{
|
||||||
@@ -85,6 +88,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
await _db.Insertable(wmsPrdInstockH).ExecuteCommandAsync();
|
await _db.Insertable(wmsPrdInstockH).ExecuteCommandAsync();
|
||||||
|
|
||||||
prd_instock_code_id = wmsPrdInstockH.id;
|
prd_instock_code_id = wmsPrdInstockH.id;
|
||||||
|
type = input.type;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -95,6 +99,8 @@ namespace Tnb.WarehouseMgr
|
|||||||
pqty = input.pqty,
|
pqty = input.pqty,
|
||||||
rqty = input.rqty
|
rqty = input.rqty
|
||||||
}).Where(r => r.id == prd_instock_code_id).ExecuteCommandAsync();
|
}).Where(r => r.id == prd_instock_code_id).ExecuteCommandAsync();
|
||||||
|
|
||||||
|
type = prdInstockH.type;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<WmsPrdInstockD> WmsPrdInstockDs = new List<WmsPrdInstockD>();
|
List<WmsPrdInstockD> WmsPrdInstockDs = new List<WmsPrdInstockD>();
|
||||||
@@ -152,9 +158,12 @@ namespace Tnb.WarehouseMgr
|
|||||||
|
|
||||||
BasLocation endlocation_ssx = null;
|
BasLocation endlocation_ssx = null;
|
||||||
string startlocation_id_ssx = null;
|
string startlocation_id_ssx = null;
|
||||||
// 注塑线边库到2,4输送线
|
|
||||||
if (startLocation.wh_id == "32604516180501")
|
|
||||||
|
if (type == "25019163616533")
|
||||||
{
|
{
|
||||||
|
Logger.LogInformation($"【PrdInstock】注塑车间生产提报");
|
||||||
|
// 注塑线边库到2,4输送线
|
||||||
// 根据ZSSSXCTU01 ZSSSXCTU02任务数平均分配任务
|
// 根据ZSSSXCTU01 ZSSSXCTU02任务数平均分配任务
|
||||||
endlocation_ssx = await _db.Queryable<BasLocation>().Where(r => new string[2] { "32624148726549", "32624157608981" }.Contains(r.id)).OrderBy("is_lock, task_nums, location_code").FirstAsync();
|
endlocation_ssx = await _db.Queryable<BasLocation>().Where(r => new string[2] { "32624148726549", "32624157608981" }.Contains(r.id)).OrderBy("is_lock, task_nums, location_code").FirstAsync();
|
||||||
await _db.Updateable<BasLocation>().SetColumns(it => it.task_nums == it.task_nums + 1).Where(it => endlocation_ssx.id == it.id).ExecuteCommandAsync();
|
await _db.Updateable<BasLocation>().SetColumns(it => it.task_nums == it.task_nums + 1).Where(it => endlocation_ssx.id == it.id).ExecuteCommandAsync();
|
||||||
@@ -169,35 +178,87 @@ namespace Tnb.WarehouseMgr
|
|||||||
{
|
{
|
||||||
startlocation_id_ssx = "32609093546005";
|
startlocation_id_ssx = "32609093546005";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WmsCarryH wmsCarryH = await _db.Queryable<WmsCarryH>().Where(r => r.id == wmsPrdInstockD.carry_id).FirstAsync();
|
||||||
|
|
||||||
|
// 生成到输送线任务
|
||||||
|
CommonCreatePretaskInput commonCreatePretaskInput1 = new CommonCreatePretaskInput();
|
||||||
|
commonCreatePretaskInput1.startlocation_id = startLocation.id;
|
||||||
|
commonCreatePretaskInput1.endlocation_id = endlocation_ssx.id;
|
||||||
|
commonCreatePretaskInput1.carry_id = wmsCarryH.id;
|
||||||
|
commonCreatePretaskInput1.carry_code = wmsCarryH.carry_code;
|
||||||
|
commonCreatePretaskInput1.task_type = WmsWareHouseConst.WMS_PRETASK_INSTOCK_TYPE_ID;
|
||||||
|
commonCreatePretaskInput1.biz_type = "";
|
||||||
|
commonCreatePretaskInput1.require_id = wmsPrdInstockD.id;
|
||||||
|
commonCreatePretaskInput1.isExcuteMission = false;
|
||||||
|
Entities.Dto.Outputs.Result res1 = await _wareHouseService.CommonCreatePretask(commonCreatePretaskInput1);
|
||||||
|
if (res1.code != HttpStatusCode.OK)
|
||||||
|
{
|
||||||
|
throw new Exception($"注塑车间生成到输送线的任务失败 {res1.msg}");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 生成到中储仓任务
|
||||||
|
CommonCreatePretaskInput commonCreatePretaskInput2 = new CommonCreatePretaskInput();
|
||||||
|
commonCreatePretaskInput2.startlocation_id = startlocation_id_ssx;
|
||||||
|
commonCreatePretaskInput2.endlocation_id = endLocation.id;
|
||||||
|
commonCreatePretaskInput2.carry_id = wmsCarryH.id;
|
||||||
|
commonCreatePretaskInput2.carry_code = wmsCarryH.carry_code;
|
||||||
|
commonCreatePretaskInput2.task_type = WmsWareHouseConst.WMS_PRETASK_INSTOCK_TYPE_ID;
|
||||||
|
commonCreatePretaskInput2.biz_type = WmsWareHouseConst.BIZTYPE_WMSPRDINSTOCK_ID;
|
||||||
|
commonCreatePretaskInput2.require_id = wmsPrdInstockD.id;
|
||||||
|
commonCreatePretaskInput2.isChangeCarryLoc2StartLoc = false;
|
||||||
|
|
||||||
|
Entities.Dto.Outputs.Result res2 = await _wareHouseService.CommonCreatePretask(commonCreatePretaskInput2);
|
||||||
|
if (res2.code != HttpStatusCode.OK)
|
||||||
|
{
|
||||||
|
throw new Exception($"注塑车间生成到中储仓的任务失败 {res2.msg}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (type == "25019172714005")
|
||||||
|
{
|
||||||
|
Logger.LogInformation($"【PrdInstock】挤出车间生产提报");
|
||||||
|
WmsCarryH wmsCarryH = await _db.Queryable<WmsCarryH>().Where(r => r.id == wmsPrdInstockD.carry_id).FirstAsync();
|
||||||
|
|
||||||
|
// 生成到中储仓任务
|
||||||
|
CommonCreatePretaskInput commonCreatePretaskInput2 = new CommonCreatePretaskInput();
|
||||||
|
commonCreatePretaskInput2.startlocation_id = startLocation.id;
|
||||||
|
commonCreatePretaskInput2.endlocation_id = endLocation.id;
|
||||||
|
commonCreatePretaskInput2.carry_id = wmsCarryH.id;
|
||||||
|
commonCreatePretaskInput2.carry_code = wmsCarryH.carry_code;
|
||||||
|
commonCreatePretaskInput2.task_type = WmsWareHouseConst.WMS_PRETASK_INSTOCK_TYPE_ID;
|
||||||
|
commonCreatePretaskInput2.biz_type = WmsWareHouseConst.BIZTYPE_WMSPRDINSTOCK_ID;
|
||||||
|
commonCreatePretaskInput2.require_id = wmsPrdInstockD.id;
|
||||||
|
commonCreatePretaskInput2.isChangeCarryLoc2StartLoc = false;
|
||||||
|
|
||||||
|
Entities.Dto.Outputs.Result res2 = await _wareHouseService.CommonCreatePretask(commonCreatePretaskInput2);
|
||||||
|
if (res2.code != HttpStatusCode.OK)
|
||||||
|
{
|
||||||
|
throw new Exception($"挤出车间生成到中储仓的任务失败 {res2.msg}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (type == "25019191681045")
|
||||||
|
{
|
||||||
|
Logger.LogInformation($"【PrdInstock】包装车间生产提报");
|
||||||
|
WmsCarryH wmsCarryH = await _db.Queryable<WmsCarryH>().Where(r => r.id == wmsPrdInstockD.carry_id).FirstAsync();
|
||||||
|
|
||||||
|
// 生成到中储仓任务
|
||||||
|
CommonCreatePretaskInput commonCreatePretaskInput2 = new CommonCreatePretaskInput();
|
||||||
|
commonCreatePretaskInput2.startlocation_id = startLocation.id;
|
||||||
|
commonCreatePretaskInput2.endlocation_id = endLocation.id;
|
||||||
|
commonCreatePretaskInput2.carry_id = wmsCarryH.id;
|
||||||
|
commonCreatePretaskInput2.carry_code = wmsCarryH.carry_code;
|
||||||
|
commonCreatePretaskInput2.task_type = WmsWareHouseConst.WMS_PRETASK_INSTOCK_TYPE_ID;
|
||||||
|
commonCreatePretaskInput2.biz_type = WmsWareHouseConst.BIZTYPE_WMSPRDINSTOCK_ID;
|
||||||
|
commonCreatePretaskInput2.require_id = wmsPrdInstockD.id;
|
||||||
|
commonCreatePretaskInput2.isChangeCarryLoc2StartLoc = false;
|
||||||
|
|
||||||
|
Entities.Dto.Outputs.Result res2 = await _wareHouseService.CommonCreatePretask(commonCreatePretaskInput2);
|
||||||
|
if (res2.code != HttpStatusCode.OK)
|
||||||
|
{
|
||||||
|
throw new Exception($"包装车间生成到中储仓的任务失败 {res2.msg}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
WmsCarryH wmsCarryH = await _db.Queryable<WmsCarryH>().Where(r => r.id == wmsPrdInstockD.carry_id).FirstAsync();
|
|
||||||
|
|
||||||
// 生成到输送线任务
|
|
||||||
CommonCreatePretaskInput commonCreatePretaskInput1 = new CommonCreatePretaskInput();
|
|
||||||
commonCreatePretaskInput1.startlocation_id = startLocation.id;
|
|
||||||
commonCreatePretaskInput1.endlocation_id = endlocation_ssx.id;
|
|
||||||
commonCreatePretaskInput1.carry_id = wmsCarryH.id;
|
|
||||||
commonCreatePretaskInput1.carry_code = wmsCarryH.carry_code;
|
|
||||||
commonCreatePretaskInput1.task_type = WmsWareHouseConst.WMS_PRETASK_INSTOCK_TYPE_ID;
|
|
||||||
commonCreatePretaskInput1.biz_type = "";
|
|
||||||
commonCreatePretaskInput1.require_id = wmsPrdInstockD.id;
|
|
||||||
commonCreatePretaskInput1.isExcuteMission = false;
|
|
||||||
Entities.Dto.Outputs.Result res1 = await _wareHouseService.CommonCreatePretask(commonCreatePretaskInput1);
|
|
||||||
|
|
||||||
// 生成到中储仓任务
|
|
||||||
CommonCreatePretaskInput commonCreatePretaskInput2 = new CommonCreatePretaskInput();
|
|
||||||
commonCreatePretaskInput2.startlocation_id = startlocation_id_ssx;
|
|
||||||
commonCreatePretaskInput2.endlocation_id = endLocation.id;
|
|
||||||
commonCreatePretaskInput2.carry_id = wmsCarryH.id;
|
|
||||||
commonCreatePretaskInput2.carry_code = wmsCarryH.carry_code;
|
|
||||||
commonCreatePretaskInput2.task_type = WmsWareHouseConst.WMS_PRETASK_INSTOCK_TYPE_ID;
|
|
||||||
commonCreatePretaskInput2.biz_type = WmsWareHouseConst.BIZTYPE_WMSPRDINSTOCK_ID;
|
|
||||||
commonCreatePretaskInput2.require_id = wmsPrdInstockD.id;
|
|
||||||
commonCreatePretaskInput2.isExcuteMission = false;
|
|
||||||
commonCreatePretaskInput2.isChangeCarryLoc2StartLoc = false;
|
|
||||||
|
|
||||||
Entities.Dto.Outputs.Result res2 = await _wareHouseService.CommonCreatePretask(commonCreatePretaskInput2);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
{
|
{
|
||||||
"Cache": {
|
"Cache": {
|
||||||
"CacheType": "RedisCache", //MemoryCache
|
"CacheType": "RedisCache", //MemoryCache
|
||||||
"ip": "127.0.0.1",
|
"ip": "192.168.11.109",
|
||||||
"port": 6379,
|
"port": 6379,
|
||||||
"password": "05jWEoJa8v",
|
"password": "05jWEoJa8v",
|
||||||
"RedisConnectionString": "{0}:{1},password={2}, poolsize=500,ssl=false,defaultDatabase=0"
|
"RedisConnectionString": "{0}:{1},password={2}, poolsize=500,ssl=false,defaultDatabase=0"
|
||||||
},
|
},
|
||||||
"Redis": {
|
"Redis": {
|
||||||
"ip": "127.0.0.1",
|
"ip": "192.168.11.109",
|
||||||
"port": 6379,
|
"port": 6379,
|
||||||
"password": "05jWEoJa8v",
|
"password": "05jWEoJa8v",
|
||||||
"RedisConnectionString": "{0}:{1},password={2}, poolsize=500,ssl=false,defaultDatabase=0"
|
"RedisConnectionString": "{0}:{1},password={2}, poolsize=500,ssl=false,defaultDatabase=0"
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
"ConnectionStrings": {
|
"ConnectionStrings": {
|
||||||
"ConfigId": "default",
|
"ConfigId": "default",
|
||||||
"DBType": "PostgreSQL", //MySql;SqlServer;Oracle;PostgreSQL;Dm;Kdbndp;Sqlite;
|
"DBType": "PostgreSQL", //MySql;SqlServer;Oracle;PostgreSQL;Dm;Kdbndp;Sqlite;
|
||||||
//"Host": "192.168.11.109",
|
"Host": "192.168.11.109",
|
||||||
"Host": "127.0.0.1",
|
//"Host": "127.0.0.1",
|
||||||
"Port": "5432",
|
"Port": "5432",
|
||||||
//"DBName": "tianyi_db",
|
//"DBName": "tianyi_db",
|
||||||
//"UserName": "postgres",
|
//"UserName": "postgres",
|
||||||
|
|||||||
Reference in New Issue
Block a user