diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/ModuleConsts.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/ModuleConsts.cs
index 9ebfe36f..f3c226da 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/ModuleConsts.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Consts/ModuleConsts.cs
@@ -48,7 +48,7 @@ public class ModuleConsts
/// 模块标识-PDA空载具入库
///
public const string MODULE_WMSEMPTYINSTKPDA_ID = "26475795363877";
-
+
///
/// 模块标识-PDA载具更换
///
@@ -144,5 +144,13 @@ public class ModuleConsts
/// 模块标识-空载具入库
///
public const string MODULE_WMSEMPTYINSTOCK_ID = "26120915344165";
+ ///
+ /// 模块标识-预任务申请
+ ///
+ public const string MODULE_WMSPRETASK_ID = "26126898582309";
+ ///
+ /// 模块标识-任务执行
+ ///
+ public const string MODULE_WMSDISTASK_ID = "26128621455141";
}
\ No newline at end of file
diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/Constraints/ITaskManagerDel.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/Constraints/ITaskManagerDel.cs
new file mode 100644
index 00000000..24ca34f1
--- /dev/null
+++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/Constraints/ITaskManagerDel.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Tnb.WarehouseMgr.Entities.Entity
+{
+ public interface ITaskManagerDel
+ {
+ string startlocation_id { get; set; }
+ string endlocation_id { get; set; }
+ string carry_id { get; set; }
+ }
+}
diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsDistaskH.part.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsDistaskH.part.cs
index cf9870e0..e380d56d 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsDistaskH.part.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsDistaskH.part.cs
@@ -1,13 +1,14 @@
using JNPF.Common.Contracts;
using JNPF.Common.Security;
using SqlSugar;
+using Tnb.WarehouseMgr.Entities.Entity;
namespace Tnb.WarehouseMgr.Entities;
///
/// 任务执行主表
///
-public partial class WmsDistaskH
+public partial class WmsDistaskH : ITaskManagerDel
{
///
/// 载具状态
diff --git a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsPretaskH.part.cs b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsPretaskH.part.cs
index 5136949b..aa14821e 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsPretaskH.part.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr.Entities/Entity/WmsPretaskH.part.cs
@@ -1,13 +1,14 @@
using JNPF.Common.Contracts;
using JNPF.Common.Security;
using SqlSugar;
+using Tnb.WarehouseMgr.Entities.Entity;
namespace Tnb.WarehouseMgr.Entities;
///
/// 预任务申请主表
///
-public partial class WmsPretaskH
+public partial class WmsPretaskH : ITaskManagerDel
{
///
/// 单次搬运数量
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/TaskManagerDelBase.cs b/WarehouseMgr/Tnb.WarehouseMgr/TaskManagerDelBase.cs
new file mode 100644
index 00000000..73ab5f78
--- /dev/null
+++ b/WarehouseMgr/Tnb.WarehouseMgr/TaskManagerDelBase.cs
@@ -0,0 +1,56 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using JNPF.Common.Contracts;
+using SqlSugar;
+using Tnb.BasicData.Entities;
+using Tnb.WarehouseMgr.Entities;
+using Tnb.WarehouseMgr.Entities.Entity;
+
+namespace Tnb.WarehouseMgr
+{
+ public class TaskManagerDelBase : BaseWareHouseService where T : BaseEntity, ITaskManagerDel, new()
+ {
+ private readonly ISqlSugarClient _db;
+
+ public TaskManagerDelBase(ISqlSugarClient db)
+ {
+ _db = db;
+ OverideFuncs.DeleteAsync = UnLockLocationAndCarry;
+ }
+ private async Task UnLockLocationAndCarry(string id)
+ {
+ try
+ {
+ await _db.Ado.BeginTranAsync();
+
+ var preTask = await _db.Queryable().SingleAsync(it => it.id == id);
+ if (preTask != null)
+ {
+ var locIds = new[] { preTask.startlocation_id, preTask.endlocation_id };
+ var locs = await _db.Queryable().Where(it => locIds.Contains(it.id)).ToListAsync();
+ if (locs?.Count > 0)
+ {
+ locs.ForEach(it => { it.is_lock = 0; });
+ await _db.Updateable(locs).UpdateColumns(it => it.is_lock).ExecuteCommandAsync();
+ }
+ var carry = await _db.Queryable().SingleAsync(it => it.id == preTask.carry_id);
+ if (carry != null)
+ {
+ carry.is_lock = 0;
+ await _db.Updateable(carry).UpdateColumns(it => it.is_lock).ExecuteCommandAsync();
+ }
+ await _db.Deleteable(preTask).ExecuteCommandAsync();
+ }
+ await _db.Ado.CommitTranAsync();
+ }
+ catch (Exception)
+ {
+ await _db.Ado.RollbackTranAsync();
+ throw;
+ }
+ }
+ }
+}
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs
index 0af932f0..c2114d31 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs
@@ -488,6 +488,9 @@ namespace Tnb.WarehouseMgr
}
}
+
+
+
///
/// 生成预任务
///
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsDistaskService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsDistaskService.cs
new file mode 100644
index 00000000..28bc827f
--- /dev/null
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsDistaskService.cs
@@ -0,0 +1,52 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using JNPF.VisualDev;
+using SqlSugar;
+using Tnb.WarehouseMgr.Entities;
+using Tnb.WarehouseMgr.Entities.Consts;
+using Tnb.WarehouseMgr.Entities.Entity;
+
+namespace Tnb.WarehouseMgr
+{
+ [OverideVisualDev(ModuleConsts.MODULE_WMSDISTASK_ID)]
+ public class WmsDistaskService : BaseWareHouseService
+ {
+ private readonly ISqlSugarClient _db;
+
+ public WmsDistaskService(ISqlSugarRepository repository)
+ {
+ _db = repository.AsSugarClient();
+ OverideFuncs.DeleteAsync = Delete;
+ }
+
+ private async Task Delete(string id)
+ {
+ try
+ {
+ await _db.Ado.BeginTranAsync();
+
+ var disTask = await _db.Queryable().SingleAsync(it => it.id == id);
+ if (disTask != null)
+ {
+ var preTask = await _db.Queryable().SingleAsync(it => it.id == disTask.pretask_id);
+ if (preTask != null)
+ {
+ preTask.status = WmsWareHouseConst.PRETASK_BILL_STATUS_DXF_ID;
+ await _db.Updateable(preTask).UpdateColumns(it => it.status).ExecuteCommandAsync();
+ }
+ await _db.Deleteable(disTask).ExecuteCommandAsync();
+ }
+
+ await _db.Ado.CommitTranAsync();
+ }
+ catch (Exception)
+ {
+ await _db.Ado.RollbackTranAsync();
+ throw;
+ }
+ }
+ }
+}
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsInStockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsInStockService.cs
index 9a5da81b..1cfec063 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsInStockService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsInStockService.cs
@@ -221,12 +221,12 @@ namespace Tnb.WarehouseMgr
await _db.Updateable(instockDetails).ExecuteCommandAsync();
var instock = await _db.Queryable().SingleAsync(it => it.id == input.requireId);
if (instock.IsNull()) ArgumentNullException.ThrowIfNull(nameof(instock));
- if (instock?.sync_status != WmsWareHouseConst.SYNC_STATUS_NONEEDSYNC)
+ if (instock.sync_status != WmsWareHouseConst.SYNC_STATUS_NONEEDSYNC)
{
//如果是自动单据,需要回更上层系统
- Dictionary pars = new() { { nameof(WmsInstockH.source_id), instock!.source_id } };
+ Dictionary pars = new() { { nameof(WmsInstockH.source_id), instock?.source_id ?? string.Empty } };
var callBackRes = await _prdInstockService.SyncInstock(pars);
- instock.sync_status = callBackRes == true ? WmsWareHouseConst.SYNC_STATUS__SYNCCOMPLETE : WmsWareHouseConst.SYNC_STATUS__SYNCFAILED;
+ instock!.sync_status = callBackRes == true ? WmsWareHouseConst.SYNC_STATUS__SYNCCOMPLETE : WmsWareHouseConst.SYNC_STATUS__SYNCFAILED;
await _db.Updateable(instock).UpdateColumns(it => it.sync_status).ExecuteCommandAsync();
}
var allInstockDetails = await _db.Queryable().Where(it => it.bill_id == input.requireId).ToListAsync();
@@ -348,22 +348,22 @@ namespace Tnb.WarehouseMgr
WmsPretaskH preTask = new();
preTask.org_id = _userManager.User.OrganizeId;
- preTask.startlocation_id = sPoint?.location_id!;
- preTask.startlocation_code = sPoint?.location_code!;
- preTask.endlocation_id = ePoint?.location_id!;
- preTask.endlocation_code = ePoint?.location_code!;
+ preTask.startlocation_id = sPoint?.location_id ?? string.Empty;
+ preTask.startlocation_code = sPoint?.location_code ?? string.Empty;
+ preTask.endlocation_id = ePoint?.location_id ?? string.Empty;
+ preTask.endlocation_code = ePoint?.location_code ?? string.Empty;
preTask.start_floor = sPoint?.floor.ToString();
preTask.end_floor = ePoint?.floor.ToString();
preTask.bill_code = _billRullService.GetBillNumber(WmsWareHouseConst.WMS_PRETASK_H_ENCODE).GetAwaiter().GetResult();
preTask.status = WmsWareHouseConst.PRETASK_BILL_STATUS_DXF_ID;
- preTask.biz_type = instock.biz_type;
+ preTask.biz_type = instock?.biz_type ?? string.Empty;
preTask.task_type = WmsWareHouseConst.WMS_PRETASK_INSTOCK_TYPE_ID;
- preTask.carry_id = instock.carry_id!;
- preTask.carry_code = instock.carry_code!;
- preTask.area_id = sPoint?.area_id!;
+ preTask.carry_id = instock?.carry_id ?? string.Empty;
+ preTask.carry_code = instock?.carry_code ?? string.Empty;
+ preTask.area_id = sPoint?.area_id ?? string.Empty;
preTask.area_code = it.Key;
- preTask.require_id = instock.id;
- preTask.require_code = instock.bill_code;
+ preTask.require_id = instock?.id ?? string.Empty;
+ preTask.require_code = instock?.bill_code ?? string.Empty;
preTask.create_id = _userManager.UserId;
preTask.create_time = DateTime.Now;
return preTask;
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPretaskService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPretaskService.cs
new file mode 100644
index 00000000..d8668c42
--- /dev/null
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPretaskService.cs
@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.InteropServices;
+using System.Text;
+using System.Threading.Tasks;
+using JNPF.VisualDev;
+using NPOI.SS.Formula.Functions;
+using SqlSugar;
+using Tnb.BasicData.Entities;
+using Tnb.WarehouseMgr.Entities;
+
+namespace Tnb.WarehouseMgr
+{
+ [OverideVisualDev(ModuleConsts.MODULE_WMSPRETASK_ID)]
+ public class WmsPretaskService : TaskManagerDelBase
+ {
+ public WmsPretaskService(ISqlSugarRepository repository) : base(repository.AsSugarClient())
+ {
+
+ }
+ }
+}
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs
index 79fff1cd..fbfbc76b 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmskittingOutService.cs
@@ -290,7 +290,7 @@ namespace Tnb.WarehouseMgr
// isOk = row > 0;
//}
//判断当前载具是否为料架,如果是料架 清空所有料架/料箱数据,
- if (carry.carrystd_id == WmsWareHouseConst.CARRY_LJSTD_ID)
+ if (carry.carrystd_id == WmsWareHouseConst.CARRY_LJSTD_ID && carryMIds?.Count > 0)
{
var carrys = await _db.Queryable().Where(it => carryMIds.Contains(it.id)).ToListAsync();
carrys.Add(carry);
@@ -325,7 +325,7 @@ namespace Tnb.WarehouseMgr
public async Task MESKittingOutStk(List input)
{
var isSuccessFul = false;
- if (input.IsNull()) throw new ArgumentNullException("input");
+ if (input.IsNull()) throw new ArgumentNullException(nameof(input));
try
{