采购收货,销售发货业务代码提交

This commit is contained in:
yang.lee
2023-11-07 18:01:59 +08:00
parent 143f636b21
commit ea44abf6af
22 changed files with 1201 additions and 83 deletions

View File

@@ -24,7 +24,7 @@ namespace Tnb.WarehouseMgr
/// </summary>
[OverideVisualDev(ModuleConsts.MODULE_WMSSCANCODEINSTOCKPDA_ID)]
[ServiceModule(BizTypeId)]
public class WmsPDAScanInStockService : BaseWareHouseService, IPdaStroage
public class WmsPDAScanInStockService : BaseWareHouseService, IWmsPDAScanInStockService, IPdaStroage
{
private const string BizTypeId = "26191496816421";
private readonly ISqlSugarClient _db;
@@ -57,90 +57,126 @@ namespace Tnb.WarehouseMgr
try
{
await _db.Ado.BeginTranAsync();
WmsInstockCode item = input.data.Adapt<WmsInstockCode>();
if (item.codeqty == 0)
WmsInstockCode? item = null;
BasMaterial? mat = null;
WmsCarryH? carry = null;
BasLocation? loc = null;
string? carryCode = null;
if (input.data.ContainsKey(nameof(WmsInstockCode.barcode)))
{
throw new AppFriendlyException("请输入入库数量", 500);
item = input.data.Adapt<WmsInstockCode>();
if (item.codeqty == 0)
{
throw new AppFriendlyException("请输入入库数量", 500);
}
carryCode = item.barcode;
carry = await _db.Queryable<WmsCarryH>().FirstAsync(it => it.carry_code == carryCode);
if (carry == null)
{
throw new AppFriendlyException("载具有误", 500);
}
mat = await _db.Queryable<BasMaterial>().FirstAsync(it => it.code == item.material_code);
if (mat == null)
{
throw new AppFriendlyException("物料有误", 500);
}
loc = await _db.Queryable<BasLocation>().FirstAsync(it => it.location_code == item.extras);
if (loc == null)
{
throw new AppFriendlyException("库位有误", 500);
}
}
string carryCode = item.barcode;
WmsCarryH carry = await _db.Queryable<WmsCarryH>().FirstAsync(it => it.carry_code == carryCode);
if (carry == null)
{
throw new AppFriendlyException("载具有误", 500);
}
BasMaterial mat = await _db.Queryable<BasMaterial>().FirstAsync(it => it.code == item.material_code);
if (mat == null)
{
throw new AppFriendlyException("物料有误", 500);
}
BasLocation loc = await _db.Queryable<BasLocation>().FirstAsync(it => it.location_code == item.extras);
if (loc == null)
{
throw new AppFriendlyException("库位有误", 500);
}
var whId = input.data.ContainsKey(nameof(WmsPurchaseH.warehouse_id)) ? input.data[nameof(WmsPurchaseH.warehouse_id)] : null;
var billCode = input.data.ContainsKey(nameof(WmsPurchaseH.bill_code)) ? input.data[nameof(WmsPurchaseH.warehouse_id)] : null;
WmsInstockH instock = new()
{
id = SnowflakeIdHelper.NextId(),
org_id = _userManager.UserId,
carry_code = carryCode,
carry_id = carry.id,
location_id = loc.id,
carry_id = carry?.id ?? string.Empty,
location_id = loc?.id ?? string.Empty,
bill_code = _billRullService.GetBillNumber(WmsWareHouseConst.WMS_INSTOCK_ENCODE).GetAwaiter().GetResult(),
bill_type = WmsWareHouseConst.BILLTYPE_MATERIALINSTOCK_ID,
biz_type = WmsWareHouseConst.BIZTYPE_WMSINSTOCK_ID,
bill_date = DateTime.Today,
warehouse_id = "26103372441637",
warehouse_id = whId?.ToString() ?? "26103372441637",
status = WmsWareHouseConst.BILLSTATUS_ADD_ID,
generate_type = "0",
sync_status = WmsWareHouseConst.SYNC_STATUS_NONEEDSYNC,
print_status = WmsWareHouseConst.PRINT_STATUS_PRINTCOMPLETE,
is_check = 1,
purchase_code = billCode?.ToString() ?? string.Empty,
create_id = _userManager.UserId,
create_time = DateTime.Now,
};
WmsInstockD instockD = new()
var instockDs = new List<WmsInstockD>();
WmsInstockD? instockD = null;
if (mat != null)
{
id = SnowflakeIdHelper.NextId(),
bill_id = instock.id,
line_status = WmsWareHouseConst.BILLSTATUS_ADD_ID,
material_id = mat.id,
material_code = mat.code,
unit_id = mat.unit_id,
pr_qty = item.codeqty,
qty = 0,
code_batch = item.code_batch,
warehouse_id = "26103372441637",
print_qty = item.codeqty,
scan_qty = item.codeqty,
print_id = "",
create_id = _userManager.UserId,
create_time = DateTime.Now,
};
WmsInstockCode instockCode = new()
instockD = new()
{
id = SnowflakeIdHelper.NextId(),
bill_id = instock.id,
line_status = WmsWareHouseConst.BILLSTATUS_ADD_ID,
material_id = mat.id,
material_code = mat.code,
unit_id = mat.unit_id,
pr_qty = item.codeqty,
qty = 0,
code_batch = item.code_batch,
warehouse_id = "26103372441637",
print_qty = item.codeqty,
scan_qty = item.codeqty,
print_id = "",
create_id = _userManager.UserId,
create_time = DateTime.Now,
};
instockDs.Add(instockD);
}
else
{
id = SnowflakeIdHelper.NextId(),
bill_id = instock.id,
bill_d_id = instockD.id,
line_status = WmsWareHouseConst.BILLSTATUS_ADD_ID,
material_id = mat.id,
material_code = mat.code,
unit_id = mat.unit_id,
barcode = carryCode,
code_batch = item.code_batch,
codeqty = item.codeqty,
is_lock = 0,
is_end = 0,
create_id = _userManager.UserId,
create_time = DateTime.Now,
};
if (input.data.ContainsKey("details"))
{
instockDs = input.data["details"].Adapt<List<WmsInstockD>>();
}
}
WmsInstockCode? instockCode = null;
if (mat != null)
{
instockCode = new()
{
id = SnowflakeIdHelper.NextId(),
bill_id = instock.id,
bill_d_id = instockD?.id ?? string.Empty,
line_status = WmsWareHouseConst.BILLSTATUS_ADD_ID,
material_id = mat.id,
material_code = mat.code,
unit_id = mat.unit_id,
barcode = carryCode,
code_batch = item.code_batch,
codeqty = item.codeqty,
is_lock = 0,
is_end = 0,
create_id = _userManager.UserId,
create_time = DateTime.Now,
};
}
_ = await _db.Insertable(instock).ExecuteCommandAsync();
_ = await _db.Insertable(instockD).ExecuteCommandAsync();
_ = await _db.Insertable(instockCode).ExecuteCommandAsync();
_ = await _db.Insertable(instockDs).ExecuteCommandAsync();
if (instockCode != null)
{
_ = await _db.Insertable(instockCode).ExecuteCommandAsync();
}
InStockStrategyQuery inStockStrategyInput = new() { warehouse_id = "26103372441637", Size = 1 };