diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWareHouseService.cs
index 0283042b..72e6fadf 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWareHouseService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr.Interfaces/IWareHouseService.cs
@@ -1,2 +1,2 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
-using System.Text;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Tnb.BasicData.Entities;
using Tnb.WarehouseMgr.Entities;
using Tnb.WarehouseMgr.Entities.Dto;
namespace Tnb.WarehouseMgr.Interfaces
{
///
/// 库房业务(出入库)接口
///
public interface IWareHouseService
{
///
/// 入库策略
///
///
///
Task> InStockStrategy([FromQuery] InStockStrategyQuery input);
///
/// 出库策略
///
///
///
//Task> OutStockStrategy([FromQuery] OutStockStrategyQuery input);
///
/// 路径算法
///
///
///
///
Task> PathAlgorithms(string pStartId, string pEndId);
///
/// 生成预任务
///
///
///
Task GenPreTask(List preTasks);
///
/// 生成预任务成功后操作
///
///
///
Task GenInStockTaskHandleAfter(GenPreTaskUpInput input,Expression> setCarryColumnsExp,Expression> setLocaionColumbExp);
}
}
\ No newline at end of file
+using System.Text;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Tnb.BasicData.Entities;
using Tnb.WarehouseMgr.Entities;
using Tnb.WarehouseMgr.Entities.Dto;
namespace Tnb.WarehouseMgr.Interfaces
{
///
/// 库房业务(出入库)接口
///
public interface IWareHouseService
{
///
/// 入库策略
///
///
///
Task> InStockStrategy([FromQuery] InStockStrategyQuery input);
///
/// 出库策略
///
///
///
//Task> OutStockStrategy([FromQuery] OutStockStrategyQuery input);
///
/// 路径算法
///
///
///
///
Task> PathAlgorithms(string pStartId, string pEndId);
///
/// 生成预任务
///
///
///
Task GenPreTask(List preTasks,List preTaskCodes);
///
/// 生成预任务成功后操作
///
///
///
Task GenInStockTaskHandleAfter(GenPreTaskUpInput input,Expression> setCarryColumnsExp,Expression> setLocaionColumbExp);
}
}
\ No newline at end of file
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs
index e5fe8fe1..50d91966 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs
@@ -461,16 +461,19 @@ namespace Tnb.WarehouseMgr
await _db.Ado.RollbackTranAsync();
}
}
-
///
/// 生成预任务
///
- ///
+ /// 预任务集合
+ /// 预任务编码集合
///
- ///
- public async Task GenPreTask(List preTasks)
+ public async Task GenPreTask(List preTasks, List preTaskCodes)
{
var row = await _db.Insertable(preTasks).ExecuteCommandAsync();
+ if (preTaskCodes?.Count > 0)
+ {
+ row = await _db.Insertable(preTaskCodes).ExecuteCommandAsync();
+ }
return row > 0;
}
///
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryMoveInStockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryMoveInStockService.cs
index 3af2bcd7..fa701e79 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryMoveInStockService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryMoveInStockService.cs
@@ -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();
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryMoveOutStockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryMoveOutStockService.cs
index f2de4c7c..5ded01a5 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryMoveOutStockService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryMoveOutStockService.cs
@@ -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();
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsDeliveryService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsDeliveryService.cs
index 82fff8ec..103d3016 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsDeliveryService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsDeliveryService.cs
@@ -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)
{
//不需要插入操作表
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyInstockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyInstockService.cs
index bb116c3c..b9052459 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyInstockService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyInstockService.cs
@@ -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();
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyOutstockService .cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyOutstockService .cs
index ebbfb40b..b5e68a47 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyOutstockService .cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsEmptyOutstockService .cs
@@ -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();
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryMoveInStockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryMoveInStockService.cs
index 2fc5c895..7aa45c35 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryMoveInStockService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryMoveInStockService.cs
@@ -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();
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryMoveOutStockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryMoveOutStockService.cs
index c040d761..7fffb397 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryMoveOutStockService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDACarryMoveOutStockService.cs
@@ -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();
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDADeliveryService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDADeliveryService.cs
index 7fb08b96..e75fab6a 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDADeliveryService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDADeliveryService.cs
@@ -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)
{
//不需要插入操作表
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAEmptyInstockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAEmptyInstockService.cs
index 5a3ece06..18b333d0 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAEmptyInstockService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAEmptyInstockService.cs
@@ -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();
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAEmptyOutstockService .cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAEmptyOutstockService .cs
index ddef6ac7..ab432e88 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAEmptyOutstockService .cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAEmptyOutstockService .cs
@@ -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();
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAInStockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAInStockService.cs
index 0ac8d457..1cbe6da2 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAInStockService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAInStockService.cs
@@ -63,13 +63,16 @@ namespace Tnb.WarehouseMgr
private async Task 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 pretaskCodes = new();
+ foreach (var pt in preTasks)
+ {
+ if (jArr?.Children().Count() > 0)
+ {
+ foreach (var jo in jArr.Children())
+ {
+ var ptc = pt.Adapt();
+ ptc.id = SnowflakeIdHelper.NextId();
+ ptc.bill_id = pt.id;
+ ptc.material_id = jo.Value(nameof(WmsPretaskCode.material_id));
+ ptc.material_code = jo.Value(nameof(WmsPretaskCode.material_code));
+ ptc.barcode = jo.Value(nameof(WmsPretaskCode.barcode));
+ ptc.codeqty = jo.Value(nameof(WmsPretaskCode.codeqty));
+ ptc.unit_id = jo.Value(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>();
- 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().FirstAsync(it => it.id == input.data[nameof(WmsInstockH.bill_code)].ToString());
+ var instockH = await _db.Queryable().FirstAsync(it => it.id == input.data["bill_id"].ToString());
if (instockH != null)
{
var handleH = instockH.Adapt();
@@ -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(nameof(WmsHandleCode.material_id));
- WmsHandleCode handleCode = new();
- handleCode.bill_id = operBillId;
- handleCode.material_id = materialId;
- handleCode.material_code = jo.Value(nameof(WmsHandleCode.material_code));
- handleCode.barcode = jo.Value(nameof(WmsHandleCode.barcode));
- handleCode.code_batch = jo.Value(nameof(WmsHandleCode.code_batch));
- handleCode.codeqty = jo.Value(nameof(WmsHandleCode.codeqty));
- handleCode.unit_id = _db.Queryable().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(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(nameof(WmsHandleCode.material_code));
+ handleCode.barcode = jo.Value(nameof(WmsHandleCode.barcode));
+ handleCode.code_batch = jo.Value(nameof(WmsHandleCode.code_batch));
+ handleCode.codeqty = jo.Value(nameof(WmsHandleCode.codeqty));
+ handleCode.unit_id = _db.Queryable().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>();
+ 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().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();
}
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDATransferService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDATransferService.cs
index 1b71e1a0..128b1b23 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDATransferService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDATransferService.cs
@@ -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>();
- 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>();
+ preTaskUpInput.PreTaskRecords.ForEach(x => x.id = SnowflakeIdHelper.NextId());
+ await _wareHouseService.GenTaskHandleAfter(preTaskUpInput);*/
}
}
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsTransferService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsTransferService.cs
index 772127de..d8f21d47 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsTransferService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsTransferService.cs
@@ -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)
{
//不需要插入操作表