复用载具更换类,修改PDA投料
This commit is contained in:
@@ -27,7 +27,7 @@ namespace Tnb.WarehouseMgr
|
|||||||
/// PDA载具更换
|
/// PDA载具更换
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[OverideVisualDev(ModuleConsts.MODULE_WMSCARRYREPLACEPDA_ID)]
|
[OverideVisualDev(ModuleConsts.MODULE_WMSCARRYREPLACEPDA_ID)]
|
||||||
public class WmsPDACarryService : BaseWareHouseService, IWmsCarryService, IPdaStroage
|
public class WmsPDACarryService : WmsCarryService ,IPdaStroage
|
||||||
{
|
{
|
||||||
private readonly ISqlSugarClient _db;
|
private readonly ISqlSugarClient _db;
|
||||||
private readonly IUserManager _userManager;
|
private readonly IUserManager _userManager;
|
||||||
@@ -39,158 +39,10 @@ namespace Tnb.WarehouseMgr
|
|||||||
IUserManager userManager,
|
IUserManager userManager,
|
||||||
IBillRullService billRullService,
|
IBillRullService billRullService,
|
||||||
IRunService runService,
|
IRunService runService,
|
||||||
IVisualDevService visualDevService)
|
IVisualDevService visualDevService) : base(repository, userManager, billRullService, runService, visualDevService)
|
||||||
{
|
{
|
||||||
_db = repository.AsSugarClient();
|
|
||||||
_userManager = userManager;
|
|
||||||
_billRullService = billRullService;
|
|
||||||
_runService = runService;
|
|
||||||
_visualDevService = visualDevService;
|
|
||||||
OverideFuncs.CreateAsync = WMSPDACarryReplace;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// PDA载具更换
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="input">
|
|
||||||
/// 输入参数:
|
|
||||||
/// <br/>{
|
|
||||||
/// <br/> old_carry_id:老载具ID
|
|
||||||
/// <br/> new_carry_id:新载具ID
|
|
||||||
/// <br/>}
|
|
||||||
/// </param>
|
|
||||||
/// <returns></returns>
|
|
||||||
/// <exception cref="ArgumentNullException"></exception>
|
|
||||||
private async Task<dynamic> WMSPDACarryReplace(VisualDevModelDataCrInput input)
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
var isOk = false;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
await _db.Ado.BeginTranAsync();
|
|
||||||
|
|
||||||
VisualDevEntity? templateEntity = await _visualDevService.GetInfoById(ModuleConsts.MODULE_WMSCARRYREPLACEPDA_ID, true);
|
|
||||||
await _runService.Create(templateEntity, input);
|
|
||||||
|
|
||||||
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<WmsCarryH>().FirstAsync(it => it.id == oldCarryId);
|
|
||||||
var newCarry = await _db.Queryable<WmsCarryH>().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<WmsCarryD>(carryInput);
|
|
||||||
isOk = await _updateSubCarry<WmsCarryMat>(carryInput);
|
|
||||||
isOk = await _updateSubCarry<WmsCarryCode>(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>();
|
|
||||||
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<int> 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();
|
|
||||||
//删除对应明细表
|
|
||||||
//删除载具明细
|
|
||||||
await _db.Deleteable<WmsCarryD>().Where(it => it.carry_id == carryObj.id).ExecuteCommandHasChangeAsync();
|
|
||||||
//删除载具分拣物料明细
|
|
||||||
await _db.Deleteable<WmsCarryMat>().Where(it => it.carry_id == carryObj.id).ExecuteCommandHasChangeAsync();
|
|
||||||
//删除载具条码
|
|
||||||
await _db.Deleteable<WmsCarryCode>().Where(it => it.carry_id == carryObj.id).ExecuteCommandHasChangeAsync();
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
return row;
|
|
||||||
}
|
|
||||||
|
|
||||||
private async Task<bool> _updateSubCarry<T>(ExChangeCarryInput input) where T : BaseEntity<string>, IWmsCarryEntity, new()
|
|
||||||
{
|
|
||||||
var row = -1;
|
|
||||||
var items = await _db.Queryable<T>().Where(it => it.carry_id == input.old_carry_id).ToListAsync();
|
|
||||||
if (items?.Count > 0)
|
|
||||||
{
|
|
||||||
List<T> newItems = DeepCopyHelper<T>.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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -99,15 +99,6 @@ namespace Tnb.WarehouseMgr
|
|||||||
newCarry.create_id = _userManager.UserId;
|
newCarry.create_id = _userManager.UserId;
|
||||||
newCarry.create_time = DateTime.Now;
|
newCarry.create_time = DateTime.Now;
|
||||||
var row = await _db.Updateable(newCarry).ExecuteCommandAsync();
|
var row = await _db.Updateable(newCarry).ExecuteCommandAsync();
|
||||||
WmsCarryReplaceH wmsCarryReplaceH = oldCarry.Adapt<WmsCarryReplaceH>();
|
|
||||||
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);
|
row = await UpdateNullCarry(oldCarry);
|
||||||
isOk = (row > 0);
|
isOk = (row > 0);
|
||||||
if (!isOk) throw Oops.Oh(ErrorCode.COM1001);
|
if (!isOk) throw Oops.Oh(ErrorCode.COM1001);
|
||||||
|
|||||||
Reference in New Issue
Block a user