diff --git a/WarehouseMgr/Tnb.WarehouseMgr/FileName.cs b/WarehouseMgr/Tnb.WarehouseMgr/FileName.cs
new file mode 100644
index 00000000..cceec65c
--- /dev/null
+++ b/WarehouseMgr/Tnb.WarehouseMgr/FileName.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Tnb.WarehouseMgr
+{
+ internal class FileName
+ {
+ }
+}
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsBindService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsBindService.cs
index 6d961624..4d26d13a 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsBindService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsBindService.cs
@@ -41,7 +41,7 @@ namespace Tnb.WarehouseMgr
}
///
- /// 更换载具
+ /// 绑定操作
///
///
/// 输入参数:
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryBindService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryBindService.cs
index 69ae0583..b208f687 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryBindService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryBindService.cs
@@ -27,7 +27,7 @@ using Tnb.WarehouseMgr.Interfaces;
namespace Tnb.WarehouseMgr
{
///
- /// 载具移出
+ /// 载具绑定
///
[OverideVisualDev(ModuleConsts.MODULE_WMSCARRYREPLACE_ID)]
public class WmsCarryBindService : BaseWareHouseService
@@ -51,7 +51,7 @@ namespace Tnb.WarehouseMgr
_billRullService = billRullService;
OverideFuncs.CreateAsync = CarryBind;
}
-
+
private async Task CarryBind(VisualDevModelDataCrInput input)
{
var isOk = false;
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryService.cs
index 0c5d3c2c..7e065bb3 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryService.cs
@@ -139,6 +139,13 @@ namespace Tnb.WarehouseMgr
carryObj.source_id = null;
carryObj.source_code = null;
row = await _db.Updateable(carryObj).ExecuteCommandAsync();
+ //删除对应明细表
+ //删除载具明细
+ await _db.Deleteable().Where(it => it.carry_id == carryObj.id).ExecuteCommandHasChangeAsync();
+ //删除载具分拣物料明细
+ await _db.Deleteable().Where(it => it.carry_id == carryObj.id).ExecuteCommandHasChangeAsync();
+ //删除载具条码
+ await _db.Deleteable().Where(it => it.carry_id == carryObj.id).ExecuteCommandHasChangeAsync();
}
catch (Exception ex)
{
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryUnbindService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryUnbindService.cs
index 5249d3df..2635baee 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryUnbindService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsCarryUnbindService.cs
@@ -27,7 +27,7 @@ using Tnb.WarehouseMgr.Interfaces;
namespace Tnb.WarehouseMgr
{
///
- /// 载具移出
+ /// 载具解绑
///
[OverideVisualDev(ModuleConsts.MODULE_WMSCARRYREPLACE_ID)]
public class WmsCarryUnbindService : BaseWareHouseService
@@ -51,7 +51,7 @@ namespace Tnb.WarehouseMgr
_wareHouseService = wareHouseService;
OverideFuncs.CreateAsync = CarryUnbind;
}
-
+ [HttpPost]
private async Task CarryUnbind(VisualDevModelDataCrInput input)
{
var isOk = false;
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDADeliveryService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDADeliveryService.cs
index 181110f0..2ecb1828 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDADeliveryService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDADeliveryService.cs
@@ -62,7 +62,6 @@ namespace Tnb.WarehouseMgr
///
///
///
- [HttpGet]
public async Task GetUnStoreLocationListByCarryId([FromRoute] string carryId)
{
var items = await _db.Queryable().LeftJoin((a, b) => a.location_id == b.id)
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAFeedingService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAFeedingService.cs
new file mode 100644
index 00000000..c38cd6f9
--- /dev/null
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAFeedingService.cs
@@ -0,0 +1,196 @@
+using JNPF.Common.Contracts;
+using JNPF.Common.Core.Manager;
+using JNPF.Common.Dtos.VisualDev;
+using JNPF.Common.Enums;
+using JNPF.Common.Security;
+using JNPF.DependencyInjection;
+using JNPF.DynamicApiController;
+using JNPF.FriendlyException;
+using JNPF.Logging;
+using JNPF.Systems.Interfaces.System;
+using JNPF.VisualDev;
+using Mapster;
+using Microsoft.AspNetCore.Mvc;
+using SqlSugar;
+using Tnb.BasicData.Entities;
+using Tnb.Common.Utils;
+using Tnb.WarehouseMgr.Entities;
+using Tnb.WarehouseMgr.Entities.Consts;
+using Tnb.WarehouseMgr.Entities.Dto;
+using Tnb.WarehouseMgr.Entities.Enums;
+using Tnb.WarehouseMgr.Interfaces;
+
+namespace Tnb.WarehouseMgr
+{
+ ///
+ /// 载具服务
+ ///
+ [OverideVisualDev(ModuleId)]
+ public class WmsPDAFeedingService : BaseWareHouseService, IWmsCarryService, IWmsFeedingService
+ {
+ private const string ModuleId = "26188532491557";
+ private readonly ISqlSugarClient _db;
+ private readonly IUserManager _userManager;
+ private readonly IBillRullService _billRullService;
+ private readonly WmsCarryService _wmsCarryService;
+ private static Dictionary dicMaterial = new Dictionary();
+ public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc();
+ public WmsPDAFeedingService(ISqlSugarRepository repository, IUserManager userManager, IBillRullService billRullService,WmsCarryService wmsCarryService)
+ {
+ _db = repository.AsSugarClient();
+ _userManager = userManager;
+ _billRullService = billRullService;
+ _wmsCarryService = wmsCarryService;
+ OverideFuncs.CreateAsync = WmsPDAFeeding;
+ }
+ [HttpPost]
+ private async Task WmsPDAFeeding(VisualDevModelDataCrInput input)
+ {
+ var isOk = false;
+ try
+ {
+ await _db.Ado.BeginTranAsync();
+ var oldCarryId = input.data.ContainsKey("carry_id") ? input.data["carry_id"]?.ToString() : "";
+ var newCarryId = input.data.ContainsKey("newcarry_id") ? input.data["newcarry_id"]?.ToString() : "";
+ var oldCarry = await _db.Queryable().FirstAsync(it => it.id == oldCarryId);
+ var newCarry = await _db.Queryable().FirstAsync(it => it.id == newCarryId);
+ if (oldCarry != null && newCarry != null)
+ {
+ ExChangeCarryInput carryInput = new() { old_carry_id = oldCarry.id, new_carry_id = newCarry.id };
+ isOk = await _updateSubCarry(carryInput);
+ isOk = await _updateSubCarry(carryInput);
+ isOk = await _updateSubCarry(carryInput);
+
+
+ newCarry.status = oldCarry.status;
+ newCarry.carry_status = oldCarry.carry_status;
+ newCarry.location_id = oldCarry.location_id;
+ newCarry.location_code = oldCarry.location_code;
+ newCarry.is_lock = oldCarry.is_lock;
+ newCarry.out_status = oldCarry.out_status;
+ newCarry.is_check = oldCarry.is_check;
+ newCarry.bale_num = oldCarry.bale_num;
+ newCarry.collocation_scheme_id = oldCarry.collocation_scheme_id;
+ newCarry.collocation_scheme_code = oldCarry.collocation_scheme_code;
+ newCarry.source_id = oldCarry.source_id;
+ newCarry.source_code = oldCarry.source_code;
+ newCarry.create_id = _userManager.UserId;
+ newCarry.create_time = DateTime.Now;
+ var row = await _db.Updateable(newCarry).ExecuteCommandAsync();
+ WmsCarryReplaceH wmsCarryReplaceH = oldCarry.Adapt();
+ wmsCarryReplaceH.id = SnowflakeIdHelper.NextId();
+ wmsCarryReplaceH.org_id = oldCarry.org_id;
+ wmsCarryReplaceH.bill_code = await _billRullService.GetBillNumber(WmsCarryConst.WMS_CARRY_REPLACE_ENCODE);
+ wmsCarryReplaceH.carry_id = oldCarry.id;
+ wmsCarryReplaceH.carry_code = oldCarry.carry_code;
+ wmsCarryReplaceH.newcarry_id = newCarry.id;
+ wmsCarryReplaceH.newcarry_code = newCarry.carry_code;
+ row = await _db.Insertable(wmsCarryReplaceH).ExecuteCommandAsync();
+ row = await UpdateNullCarry(oldCarry);
+ isOk = (row > 0);
+ if (!isOk) throw Oops.Oh(ErrorCode.COM1001);
+ }
+ else
+ {
+ if (oldCarry == null)
+ {
+ throw new AppFriendlyException("没有可用的旧载具", 500);
+ }
+ if (newCarry == null)
+ {
+ throw new AppFriendlyException("没有可用的新载具", 500);
+ }
+
+ }
+ await _db.Ado.CommitTranAsync();
+ }
+ catch (Exception ex)
+ {
+ Log.Error("载具更换失败", ex);
+ await _db.Ado.RollbackTranAsync();
+ throw;
+ }
+ return isOk;
+ }
+
+ public async Task UpdateNullCarry(WmsCarryH carryObj)
+ {
+ var row = -1;
+ try
+ {
+ carryObj.status = 0;
+ carryObj.carry_status = "0";
+ carryObj.location_id = null;
+ carryObj.location_code = null;
+ carryObj.out_status = "0";
+ carryObj.is_check = 0;
+ carryObj.status = 1;
+ carryObj.bale_num = null;
+ carryObj.collocation_scheme_id = null;
+ carryObj.collocation_scheme_code = null;
+ carryObj.source_id = null;
+ carryObj.source_code = null;
+ row = await _db.Updateable(carryObj).ExecuteCommandAsync();
+ }
+ catch (Exception ex)
+ {
+
+ }
+ return row;
+ }
+
+ private async Task _updateSubCarry(ExChangeCarryInput input) where T : BaseEntity, IWmsCarryEntity, new()
+ {
+ var row = -1;
+ var items = await _db.Queryable().Where(it => it.carry_id == input.old_carry_id).ToListAsync();
+ if (items?.Count > 0)
+ {
+ List newItems = DeepCopyHelper.DeepCopyList(items);
+ if (newItems?.Count > 0)
+ {
+ newItems.ForEach(x =>
+ {
+ x.id = SnowflakeIdHelper.NextId();
+ x.carry_id = input.new_carry_id;
+
+ });
+ row = await _db.Insertable(newItems).ExecuteCommandAsync();
+ }
+ if (row > 0)
+ {
+ row = await _db.Deleteable(items).ExecuteCommandAsync();
+ }
+ }
+ return (row > 0);
+ }
+
+
+
+ ///
+ /// 根据载具Id获取载具条码记录
+ ///
+ ///
+ ///
+
+ public async Task GetCarryCodeList([FromRoute] string carryId)
+ {
+ if (dicMaterial.Count < 1)
+ {
+ dicMaterial = await _db.Queryable().ToDictionaryAsync(x => x.id, x => x.name);
+ }
+ var items = await _db.Queryable().Where(a => a.carry_id == carryId)
+ .Select(a => new CarryCodeDetailOutput
+ {
+ barcode = a.barcode,
+ code_batch = a.code_batch,
+ codeqty = a.codeqty,
+ material_code = a.material_code,
+ material_id = a.material_id,
+ unit_id = a.unit_id,
+ })
+ .Mapper(it => it.material_name = dicMaterial.ContainsKey(it.material_id) ? dicMaterial[it.material_id].ToString()! : "")
+ .ToListAsync();
+ return items;
+ }
+ }
+}
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAInStockService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAInStockService.cs
index 5220668d..29a800fc 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAInStockService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDAInStockService.cs
@@ -30,7 +30,7 @@ using Tnb.WarehouseMgr.Interfaces;
namespace Tnb.WarehouseMgr
{
///
- /// 载具移入
+ /// PDA载具移入
///
[OverideVisualDev(ModuleConsts.MODULE_WMSINSTOCKPDA_ID)]
[ServiceModule(BizTypeId)]
diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDATransferService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDATransferService.cs
index 5e5d7670..a94f9f36 100644
--- a/WarehouseMgr/Tnb.WarehouseMgr/WmsPDATransferService.cs
+++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsPDATransferService.cs
@@ -28,7 +28,7 @@ namespace Tnb.WarehouseMgr
{
///
- /// 库内转移
+ /// PDA库内转移
///
[OverideVisualDev(ModuleConsts.MODULE_WMSTRANSFER_ID)]
[ServiceModule(BizTypeId)]