齐套出库、分拣业务代码调整

This commit is contained in:
alex
2023-06-30 19:13:24 +08:00
parent 280abeac1d
commit 0d13eb93aa
6 changed files with 68 additions and 15 deletions

View File

@@ -180,6 +180,10 @@ namespace Tnb.WarehouseMgr.Entities.Consts
/// 条码打印状态-已完成 /// 条码打印状态-已完成
/// </summary> /// </summary>
public const string BARCODE_PRINT_STATUS_COMPLETE_ID = "26191372853541"; public const string BARCODE_PRINT_STATUS_COMPLETE_ID = "26191372853541";
/// <summary>
/// 载具规格-料架
/// </summary>
public const string CARRY_LJSTD_ID = "26037267399717";
} }
} }

View File

@@ -49,11 +49,6 @@ public partial class WmsCarrybindCode : BaseEntity<string>
/// </summary> /// </summary>
public decimal? codeqty { get; set; } public decimal? codeqty { get; set; }
/// <summary>
/// 行号
/// </summary>
public int? no { get; set; }
/// <summary> /// <summary>
/// 子载具ID /// 子载具ID
/// </summary> /// </summary>

View File

@@ -31,7 +31,7 @@ namespace Tnb.WarehouseMgr
/// </summary> /// </summary>
[OverideVisualDev(ModuleConsts.MODULE_WMSKITTINGINSTK_ID)] [OverideVisualDev(ModuleConsts.MODULE_WMSKITTINGINSTK_ID)]
[ServiceModule(BizTypeId)] [ServiceModule(BizTypeId)]
public class WmsKittingInStkService : BaseWareHouseService public class WmsKittingInStkService : BaseWareHouseService, IWmsKittingInStkService
{ {
private const string BizTypeId = "26165655816741"; private const string BizTypeId = "26165655816741";
private readonly ISqlSugarClient _db; private readonly ISqlSugarClient _db;
@@ -125,7 +125,7 @@ namespace Tnb.WarehouseMgr
carryCodes = input.data["tablefield130"].ToObject<List<WmsCarryCode>>(); carryCodes = input.data["tablefield130"].ToObject<List<WmsCarryCode>>();
} }
} }
List<WmsPretaskCode> pretaskCodes = new(); List<WmsPretaskCode> pretaskCodes = new();
foreach (var pt in preTasks) foreach (var pt in preTasks)
{ {
@@ -166,8 +166,10 @@ namespace Tnb.WarehouseMgr
await _db.Updateable<WmsKittingInstock>().SetColumns(it => new WmsKittingInstock { status = WmsWareHouseConst.BILLSTATUS_ON_ID }).Where(it => it.id == preTaskUpInput.RquireId).ExecuteCommandAsync(); await _db.Updateable<WmsKittingInstock>().SetColumns(it => new WmsKittingInstock { status = WmsWareHouseConst.BILLSTATUS_ON_ID }).Where(it => it.id == preTaskUpInput.RquireId).ExecuteCommandAsync();
var status = ((int)EnumCarryStatus.).ToString(); var status = ((int)EnumCarryStatus.).ToString();
var carry = await _db.Queryable<WmsCarryH>().SingleAsync(it => it.id == input.data[nameof(WmsHandleH.carry_id)].ToString()); var carry = await _db.Queryable<WmsCarryH>().SingleAsync(it => it.id == input.data[nameof(WmsHandleH.carry_id)].ToString());
if (carry?.out_status != status) { if (carry?.out_status != status)
if (carryCodes?.Count>0) { {
if (carryCodes?.Count > 0)
{
carryCodes.ForEach(x => carryCodes.ForEach(x =>
{ {
x.id = SnowflakeIdHelper.NextId(); x.id = SnowflakeIdHelper.NextId();
@@ -176,7 +178,7 @@ namespace Tnb.WarehouseMgr
x.create_time = DateTime.Now; x.create_time = DateTime.Now;
}); });
await _db.Insertable(carryCodes).ExecuteCommandAsync(); await _db.Insertable(carryCodes).ExecuteCommandAsync();
} }
} }
await _wareHouseService.GenInStockTaskHandleAfter(preTaskUpInput, await _wareHouseService.GenInStockTaskHandleAfter(preTaskUpInput,
it => new WmsCarryH it => new WmsCarryH
@@ -207,6 +209,28 @@ namespace Tnb.WarehouseMgr
{ {
if (input == null) throw new ArgumentNullException(nameof(input)); if (input == null) throw new ArgumentNullException(nameof(input));
var row = await _db.Updateable<WmsKittingInstock>().SetColumns(it => new WmsKittingInstock { status = WmsWareHouseConst.BILLSTATUS_COMPLETE_ID }).Where(it => it.id == input.requireId).ExecuteCommandAsync(); var row = await _db.Updateable<WmsKittingInstock>().SetColumns(it => new WmsKittingInstock { status = WmsWareHouseConst.BILLSTATUS_COMPLETE_ID }).Where(it => it.id == input.requireId).ExecuteCommandAsync();
var kittingIn = await _db.Queryable<WmsKittingInstock>().SingleAsync(it => it.id == input.requireId);
if (kittingIn != null)
{
var kittingOut = await _db.Queryable<WmsKittingoutH>().SingleAsync(it => it.id == kittingIn.source_id);
if (kittingOut != null)
{
var locaion = await _db.Queryable<BasLocation>().SingleAsync(it => it.id == kittingOut.location_id);
if (locaion != null && locaion.is_type.ToEnum<EnumLocationType>() != EnumLocationType.)
{
kittingOut.status = WmsWareHouseConst.BILLSTATUS_TOBESHIPPED_ID;
}
else
{
kittingOut.status = WmsWareHouseConst.BILLSTATUS_COMPLETE_ID;
}
kittingOut.carry_id = kittingIn.carry_id;
kittingOut.carry_code = kittingIn.carry_code;
await _db.Updateable(kittingOut).UpdateColumns(it => new { it.status, it.carry_id, it.carry_code }).ExecuteCommandAsync();
}
}
if (row < 1) throw Oops.Oh(ErrorCode.COM1001); if (row < 1) throw Oops.Oh(ErrorCode.COM1001);
} }
} }

View File

@@ -51,7 +51,11 @@ namespace Tnb.WarehouseMgr
_billRullService = billRullService; _billRullService = billRullService;
_wmsKittingInStkService = wmsKittingInStkService; _wmsKittingInStkService = wmsKittingInStkService;
} }
/// <summary>
/// 机器人完成任务后回调接口
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost] [HttpPost]
public async Task RobotCallback(RobotCallBackInput input) public async Task RobotCallback(RobotCallBackInput input)
{ {
@@ -92,6 +96,9 @@ namespace Tnb.WarehouseMgr
visualDevModelCrInput.data[nameof(WmsKittingInstock.status)] = WmsWareHouseConst.BILLSTATUS_ADD_ID; visualDevModelCrInput.data[nameof(WmsKittingInstock.status)] = WmsWareHouseConst.BILLSTATUS_ADD_ID;
visualDevModelCrInput.data[nameof(WmsKittingInstock.create_id)] = _userManager.UserId; visualDevModelCrInput.data[nameof(WmsKittingInstock.create_id)] = _userManager.UserId;
visualDevModelCrInput.data[nameof(WmsKittingInstock.create_time)] = DateTime.Now; visualDevModelCrInput.data[nameof(WmsKittingInstock.create_time)] = DateTime.Now;
visualDevModelCrInput.data[nameof(WmsKittingInstock.location_id)] = carry.location_id;
visualDevModelCrInput.data[nameof(WmsKittingInstock.bill_code)] = _billRullService.GetBillNumber("WmsKittingInStk").GetAwaiter().GetResult();
visualDevModelCrInput.data[nameof(WmsKittingInstock.source_id)] = kittingout.id;
var location = await _db.Queryable<BasLocation>().SingleAsync(it => it.id == kittingout.location_id); var location = await _db.Queryable<BasLocation>().SingleAsync(it => it.id == kittingout.location_id);

View File

@@ -278,6 +278,11 @@ namespace Tnb.WarehouseMgr
} }
} }
await _db.Updateable(curSortingDetails).ExecuteCommandAsync(); await _db.Updateable(curSortingDetails).ExecuteCommandAsync();
if(curSortingDetails.All(it=>it.line_status == WmsWareHouseConst.BILLSTATUS_COMPLETE_ID))
{
await _db.Updateable<WmsSetsortingH>().SetColumns(it => new WmsSetsortingH { status = WmsWareHouseConst.BILLSTATUS_COMPLETE_ID }).Where(it => it.id == input.requireId).ExecuteCommandAsync();
}
var carry = await _db.Queryable<WmsCarryH>().SingleAsync(it => it.id == carryId); var carry = await _db.Queryable<WmsCarryH>().SingleAsync(it => it.id == carryId);
if (carry != null) if (carry != null)
{ {

View File

@@ -203,6 +203,8 @@ namespace Tnb.WarehouseMgr
await _db.Ado.BeginTranAsync(); await _db.Ado.BeginTranAsync();
var carryId = input.carryIds[^input.carryIds.Count]; var carryId = input.carryIds[^input.carryIds.Count];
var carry = await _db.Queryable<WmsCarryH>().SingleAsync(it => it.id == carryId);
var kods = await _db.Queryable<WmsKittingoutD>().Where(it => it.bill_id == input.requireId).ToListAsync(); var kods = await _db.Queryable<WmsKittingoutD>().Where(it => it.bill_id == input.requireId).ToListAsync();
//当前载具对应的所有条码插入 //当前载具对应的所有条码插入
var carryCodes = await _db.Queryable<WmsCarryCode>().Where(it => it.carry_id == carryId).ToListAsync(); var carryCodes = await _db.Queryable<WmsCarryCode>().Where(it => it.carry_id == carryId).ToListAsync();
@@ -242,11 +244,27 @@ namespace Tnb.WarehouseMgr
} }
await _db.Updateable(curKittingoutDetails).ExecuteCommandAsync(); await _db.Updateable(curKittingoutDetails).ExecuteCommandAsync();
var isOk = await _db.Updateable<WmsKittingoutH>().SetColumns(it => new WmsKittingoutH { status = WmsWareHouseConst.BILLSTATUS_COMPLETE_ID }).Where(it => it.id == input.requireId).ExecuteCommandHasChangeAsync(); var isOk = await _db.Updateable<WmsKittingoutH>().SetColumns(it => new WmsKittingoutH { status = WmsWareHouseConst.BILLSTATUS_COMPLETE_ID }).Where(it => it.id == input.requireId).ExecuteCommandHasChangeAsync();
var carry = await _db.Queryable<WmsCarryH>().SingleAsync(it => it.id == carryId); //if (carry != null)
if (carry != null) //{
// row = await _carryService.UpdateNullCarry(carry);
// isOk = row > 0;
//}
//判断当前载具是否为料架,如果是料架 清空所有料架/料箱数据,
if (carry.carrystd_id == WmsWareHouseConst.CARRY_LJSTD_ID)
{ {
row = await _carryService.UpdateNullCarry(carry); var carryds = await _db.Queryable<WmsCarryD>().Where(it => it.id == carryId).ToListAsync();
isOk = row > 0; var mids = carryds.Select(x => x.membercarry_id).ToList();
var carrys = await _db.Queryable<WmsCarryH>().Where(it => mids.Contains(it.id)).ToListAsync();
carrys.Add(carry);
if (carrys?.Count > 0)
{
var tasks = new List<Task<int>>();
foreach (var carryIt in carrys)
{
tasks.Add(_carryService.UpdateNullCarry(carryIt));
}
await Task.WhenAll(tasks);
}
} }
if (!isOk) throw Oops.Oh(ErrorCode.COM1001); if (!isOk) throw Oops.Oh(ErrorCode.COM1001);