This commit is contained in:
FanLian
2023-06-16 11:25:41 +08:00
15 changed files with 90 additions and 56 deletions

View File

@@ -461,16 +461,19 @@ namespace Tnb.WarehouseMgr
await _db.Ado.RollbackTranAsync();
}
}
/// <summary>
/// 生成预任务
/// </summary>
/// <param name="preTasks"></param>
/// <param name="preTasks">预任务集合</param>
/// <param name="preTaskCodes">预任务编码集合</param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
public async Task<bool> GenPreTask(List<WmsPretaskH> preTasks)
public async Task<bool> GenPreTask(List<WmsPretaskH> preTasks, List<WmsPretaskCode> preTaskCodes)
{
var row = await _db.Insertable(preTasks).ExecuteCommandAsync();
if (preTaskCodes?.Count > 0)
{
row = await _db.Insertable(preTaskCodes).ExecuteCommandAsync();
}
return row > 0;
}
/// <summary>

View File

@@ -115,7 +115,7 @@ namespace Tnb.WarehouseMgr
preTask.create_time = DateTime.Now;
return preTask;
}).ToList();
var isOk = await _wareHouseService.GenPreTask(preTasks);
var isOk = await _wareHouseService.GenPreTask(preTasks,null);
if (isOk)
{
var preTaskUpInput = new GenPreTaskUpInput();
@@ -146,7 +146,6 @@ namespace Tnb.WarehouseMgr
it => new BasLocation { is_lock = 1 });
}
}
}
await _db.Ado.CommitTranAsync();

View File

@@ -113,7 +113,7 @@ namespace Tnb.WarehouseMgr
preTask.create_time = DateTime.Now;
return preTask;
}).ToList();
var isOk = await _wareHouseService.GenPreTask(preTasks);
var isOk = await _wareHouseService.GenPreTask(preTasks,null);
if (isOk)
{
var preTaskUpInput = new GenPreTaskUpInput();

View File

@@ -149,7 +149,7 @@ namespace Tnb.WarehouseMgr
preTask.create_time = DateTime.Now;
return preTask;
}).ToList();
var isOk = await _wareHouseService.GenPreTask(preTasks);
var isOk = await _wareHouseService.GenPreTask(preTasks,null);
if (isOk)
{
//不需要插入操作表

View File

@@ -114,7 +114,7 @@ namespace Tnb.WarehouseMgr
preTask.create_time = DateTime.Now;
return preTask;
}).ToList();
var isOk = await _wareHouseService.GenPreTask(preTasks);
var isOk = await _wareHouseService.GenPreTask(preTasks,null);
if (isOk)
{
var preTaskUpInput = new GenPreTaskUpInput();

View File

@@ -138,7 +138,7 @@ namespace Tnb.WarehouseMgr
preTask.create_time = DateTime.Now;
return preTask;
}).ToList();
var isOk = await _wareHouseService.GenPreTask(preTasks);
var isOk = await _wareHouseService.GenPreTask(preTasks,null);
if (isOk)
{
var preTaskUpInput = new GenPreTaskUpInput();

View File

@@ -116,7 +116,7 @@ namespace Tnb.WarehouseMgr
preTask.create_time = DateTime.Now;
return preTask;
}).ToList();
var isOk = await _wareHouseService.GenPreTask(preTasks);
var isOk = await _wareHouseService.GenPreTask(preTasks,null);
if (isOk)
{
var preTaskUpInput = new GenPreTaskUpInput();

View File

@@ -113,7 +113,7 @@ namespace Tnb.WarehouseMgr
preTask.create_time = DateTime.Now;
return preTask;
}).ToList();
var isOk = await _wareHouseService.GenPreTask(preTasks);
var isOk = await _wareHouseService.GenPreTask(preTasks,null);
if (isOk)
{
var preTaskUpInput = new GenPreTaskUpInput();

View File

@@ -148,7 +148,7 @@ namespace Tnb.WarehouseMgr
preTask.create_time = DateTime.Now;
return preTask;
}).ToList();
var isOk = await _wareHouseService.GenPreTask(preTasks);
var isOk = await _wareHouseService.GenPreTask(preTasks,null);
if (isOk)
{
//不需要插入操作表

View File

@@ -114,7 +114,7 @@ namespace Tnb.WarehouseMgr
preTask.create_time = DateTime.Now;
return preTask;
}).ToList();
var isOk = await _wareHouseService.GenPreTask(preTasks);
var isOk = await _wareHouseService.GenPreTask(preTasks,null);
if (isOk)
{
var preTaskUpInput = new GenPreTaskUpInput();

View File

@@ -138,7 +138,7 @@ namespace Tnb.WarehouseMgr
preTask.create_time = DateTime.Now;
return preTask;
}).ToList();
var isOk = await _wareHouseService.GenPreTask(preTasks);
var isOk = await _wareHouseService.GenPreTask(preTasks,null);
if (isOk)
{
var preTaskUpInput = new GenPreTaskUpInput();

View File

@@ -63,13 +63,16 @@ namespace Tnb.WarehouseMgr
private async Task<dynamic> ScanCodeInStock(VisualDevModelDataCrInput input)
{
try
{
await _db.Ado.BeginTranAsync();
//VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleConsts.MODULE_WMSINSTOCKPDA_ID, true);
//await _runService.Create(templateEntity, input);
JArray jArr = null;
if (input.data.ContainsKey("tablefield115"))
{
jArr = JArray.Parse(input.data["tablefield115"].ToString());
}
//入库取终点 //出库起点
var inStockStrategyInput = new InStockStrategyQuery { warehouse_id = input.data[nameof(InStockStrategyQuery.warehouse_id)].ToString(), Size = 1 };
var endLocations = await _wareHouseService.InStockStrategy(inStockStrategyInput);
@@ -95,7 +98,7 @@ namespace Tnb.WarehouseMgr
{
var sPoint = it.FirstOrDefault();
var ePoint = it.LastOrDefault();
WmsPretaskH preTask = new();
preTask.org_id = _userManager.User.OrganizeId;
preTask.startlocation_id = sPoint?.location_id;
@@ -118,7 +121,28 @@ namespace Tnb.WarehouseMgr
preTask.create_time = DateTime.Now;
return preTask;
}).ToList();
var isOk = await _wareHouseService.GenPreTask(preTasks);
//生成预任务条码信息
List<WmsPretaskCode> pretaskCodes = new();
foreach (var pt in preTasks)
{
if (jArr?.Children().Count() > 0)
{
foreach (var jo in jArr.Children())
{
var ptc = pt.Adapt<WmsPretaskCode>();
ptc.id = SnowflakeIdHelper.NextId();
ptc.bill_id = pt.id;
ptc.material_id = jo.Value<string>(nameof(WmsPretaskCode.material_id));
ptc.material_code = jo.Value<string>(nameof(WmsPretaskCode.material_code));
ptc.barcode = jo.Value<string>(nameof(WmsPretaskCode.barcode));
ptc.codeqty = jo.Value<int>(nameof(WmsPretaskCode.codeqty));
ptc.unit_id = jo.Value<string>(nameof(WmsPretaskCode.unit_id));
pretaskCodes.Add(ptc);
}
}
}
//生成预任务,同时如果包含条码信息同时插入条码记录
var isOk = await _wareHouseService.GenPreTask(preTasks, pretaskCodes);
if (isOk)
{
var preTaskUpInput = new GenPreTaskUpInput();
@@ -127,11 +151,11 @@ namespace Tnb.WarehouseMgr
preTaskUpInput.CarryStartLocationId = points.FirstOrDefault().location_id;
preTaskUpInput.CarryStartLocationCode = points.FirstOrDefault().location_code;
preTaskUpInput.LocationIds = points.Select(x => x.location_id).ToList();
//preTaskUpInput.PreTaskRecords = preTasks.Adapt<List<WmsHandleH>>();
if (input.data.ContainsKey(nameof(WmsInstockH.bill_code)) && input.data[nameof(WmsInstockH.bill_code)].IsNotEmptyOrNull())
if (input.data.ContainsKey("bill_id") && input.data["bill_id"].IsNotEmptyOrNull())
{
//创建预任务操作记录
var operBillId = string.Empty;
var instockH = await _db.Queryable<WmsInstockH>().FirstAsync(it => it.id == input.data[nameof(WmsInstockH.bill_code)].ToString());
var instockH = await _db.Queryable<WmsInstockH>().FirstAsync(it => it.id == input.data["bill_id"].ToString());
if (instockH != null)
{
var handleH = instockH.Adapt<WmsHandleH>();
@@ -141,31 +165,39 @@ namespace Tnb.WarehouseMgr
handleH.carry_code = input.data[nameof(WmsHandleH.carry_code)]?.ToString();
preTaskUpInput.PreTaskRecord = handleH;
}
if (input.data.ContainsKey("tablefield115"))
//创建预任务条码操作记录
jArr = JArray.Parse(input.data["tablefield115"].ToString());
if (jArr?.Children().Count() > 0)
{
JArray jArr = JArray.Parse(input.data["tablefield115"].ToString());
if (jArr?.Children().Count() > 0)
foreach (var jo in jArr.Children())
{
foreach (var jo in jArr.Children())
{
var materialId = jo.Value<string>(nameof(WmsHandleCode.material_id));
WmsHandleCode handleCode = new();
handleCode.bill_id = operBillId;
handleCode.material_id = materialId;
handleCode.material_code = jo.Value<string>(nameof(WmsHandleCode.material_code));
handleCode.barcode = jo.Value<string>(nameof(WmsHandleCode.barcode));
handleCode.code_batch = jo.Value<string>(nameof(WmsHandleCode.code_batch));
handleCode.codeqty = jo.Value<int>(nameof(WmsHandleCode.codeqty));
handleCode.unit_id = _db.Queryable<BasMaterial>().Single(it => it.id == materialId).unit_id;
handleCode.create_id = _userManager.UserId;
handleCode.create_time = DateTime.Now;
preTaskUpInput.PreTaskHandleCodes.Add(handleCode);
}
var materialId = jo.Value<string>(nameof(WmsHandleCode.material_id));
WmsHandleCode handleCode = new();
handleCode.org_id = _userManager.User.OrganizeId;
handleCode.bill_id = operBillId;
handleCode.material_id = materialId;
handleCode.material_code = jo.Value<string>(nameof(WmsHandleCode.material_code));
handleCode.barcode = jo.Value<string>(nameof(WmsHandleCode.barcode));
handleCode.code_batch = jo.Value<string>(nameof(WmsHandleCode.code_batch));
handleCode.codeqty = jo.Value<int>(nameof(WmsHandleCode.codeqty));
handleCode.unit_id = _db.Queryable<BasMaterial>().Single(it => it.id == materialId).unit_id;
handleCode.create_id = _userManager.UserId;
handleCode.create_time = DateTime.Now;
preTaskUpInput.PreTaskHandleCodes.Add(handleCode);
}
}
//生成载具条码记录
var carryCodes = preTaskUpInput.PreTaskHandleCodes.Adapt<List<WmsCarryCode>>();
carryCodes.ForEach(x =>
{
x.id = SnowflakeIdHelper.NextId();
x.is_out = 0;
});
//生成入库申请条码
await _db.Insertable(preTaskUpInput.PreTaskRecord).ExecuteCommandAsync();
}
await _db.Insertable(preTaskUpInput.PreTaskRecord).ExecuteCommandAsync();
await _db.Updateable<WmsCarryH>().SetColumns(it => new WmsCarryH { carry_code = input.data[nameof(WmsCarryH.carry_code)].ToString(), is_lock = (int)EnumCarryStatus., location_id = preTaskUpInput.CarryStartLocationId, location_code = preTaskUpInput.CarryStartLocationCode }).Where(it => it.id == preTaskUpInput.CarryId).ExecuteCommandAsync();
}

View File

@@ -112,19 +112,19 @@ namespace Tnb.WarehouseMgr
preTask.create_time = DateTime.Now;
return preTask;
}).ToList();
var isOk = await _wareHouseService.GenPreTask(preTasks);
var isOk = await _wareHouseService.GenPreTask(preTasks, null);
if (isOk)
{
//不需要插入操作表
/* var preTaskUpInput = new GenPreTaskUpInput();
preTaskUpInput.PreTaskId = input.data["ReturnIdentity"].ToString();
preTaskUpInput.CarryId = input.data[nameof(WmsCarryD.carry_id)]?.ToString()!;
preTaskUpInput.CarryStartLocationId = points.FirstOrDefault().location_id;
preTaskUpInput.CarryStartLocationCode = points.FirstOrDefault().location_code;
preTaskUpInput.LocationIds = points.Select(x => x.location_id).ToList();
preTaskUpInput.PreTaskRecords = preTasks.Adapt<List<WmsHandleH>>();
preTaskUpInput.PreTaskRecords.ForEach(x => x.id = SnowflakeIdHelper.NextId());
await _wareHouseService.GenTaskHandleAfter(preTaskUpInput);*/
//不需要插入操作表
/* var preTaskUpInput = new GenPreTaskUpInput();
preTaskUpInput.PreTaskId = input.data["ReturnIdentity"].ToString();
preTaskUpInput.CarryId = input.data[nameof(WmsCarryD.carry_id)]?.ToString()!;
preTaskUpInput.CarryStartLocationId = points.FirstOrDefault().location_id;
preTaskUpInput.CarryStartLocationCode = points.FirstOrDefault().location_code;
preTaskUpInput.LocationIds = points.Select(x => x.location_id).ToList();
preTaskUpInput.PreTaskRecords = preTasks.Adapt<List<WmsHandleH>>();
preTaskUpInput.PreTaskRecords.ForEach(x => x.id = SnowflakeIdHelper.NextId());
await _wareHouseService.GenTaskHandleAfter(preTaskUpInput);*/
}
}

View File

@@ -112,7 +112,7 @@ namespace Tnb.WarehouseMgr
preTask.create_time = DateTime.Now;
return preTask;
}).ToList();
var isOk = await _wareHouseService.GenPreTask(preTasks);
var isOk = await _wareHouseService.GenPreTask(preTasks,null);
if (isOk)
{
//不需要插入操作表