erp原材料调拨、委外调整
This commit is contained in:
@@ -370,6 +370,7 @@ namespace Tnb.WarehouseMgr
|
||||
wmsPurchaseOrderD.create_id = WmsWareHouseConst.ErpUserId;
|
||||
wmsPurchaseOrderD.create_time = DateTime.Now;
|
||||
wmsPurchaseOrderD.actual_quantity = 0;
|
||||
wmsPurchaseOrderD.lineno = detail.lineno;
|
||||
|
||||
var material = await db.Queryable<BasMaterial>().Where(p => p.code == detail.material_code).FirstAsync();
|
||||
if (material != null)
|
||||
@@ -437,8 +438,8 @@ namespace Tnb.WarehouseMgr
|
||||
try
|
||||
{
|
||||
await db.Ado.BeginTranAsync();
|
||||
WmsOutsourceH wmsOutsourceOrderH = new WmsOutsourceH();
|
||||
string Code = await _billRuleService.GetBillNumber("Purchase");
|
||||
WmsOutsourceOrderH wmsOutsourceOrderH = new WmsOutsourceOrderH();
|
||||
string Code = await _billRuleService.GetBillNumber("WmsOutsourceOrder");
|
||||
|
||||
wmsOutsourceOrderH.outsource_order = Code;
|
||||
wmsOutsourceOrderH.erp_bill_code = input.outsource_order;
|
||||
@@ -460,10 +461,10 @@ namespace Tnb.WarehouseMgr
|
||||
await db.Insertable(wmsOutsourceOrderH).ExecuteCommandAsync();
|
||||
|
||||
|
||||
List<WmsOutsourceD> wmsOutsourceOrderDs = new List<WmsOutsourceD>();
|
||||
List<WmsOutsourceOrderD> wmsOutsourceOrderDs = new List<WmsOutsourceOrderD>();
|
||||
foreach (var detail in input.details)
|
||||
{
|
||||
WmsOutsourceD wmsOutsourceOrderD = new WmsOutsourceD();
|
||||
WmsOutsourceOrderD wmsOutsourceOrderD = new WmsOutsourceOrderD();
|
||||
|
||||
wmsOutsourceOrderD.fk_wms_outsource_order_id = wmsOutsourceOrderH.id;
|
||||
wmsOutsourceOrderD.matcode = detail.material_code;
|
||||
@@ -476,7 +477,7 @@ namespace Tnb.WarehouseMgr
|
||||
wmsOutsourceOrderD.create_id = WmsWareHouseConst.ErpUserId;
|
||||
wmsOutsourceOrderD.create_time = DateTime.Now;
|
||||
wmsOutsourceOrderD.actual_quantity = 0;
|
||||
|
||||
wmsOutsourceOrderD.lineno = detail.lineno;
|
||||
var material = await db.Queryable<BasMaterial>().Where(p => p.code == detail.material_code).FirstAsync();
|
||||
if (material != null)
|
||||
{
|
||||
@@ -797,24 +798,31 @@ namespace Tnb.WarehouseMgr
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 原材料调拨入库单
|
||||
/// 调拨出库单同步
|
||||
/// </summary>
|
||||
[HttpPost, NonUnify, AllowAnonymous]
|
||||
public async Task<Entities.Dto.Outputs.Result> RawmatTransferInstock(RawMatTransferInstockInput input)
|
||||
public async Task<Entities.Dto.Outputs.Result> TransferOutstock(TransferOutstockInput input)
|
||||
{
|
||||
LoggerErp2Mes.LogInformation($"【RawMatTransferInstock】ERP传入数据:{JsonConvert.SerializeObject(input)}");
|
||||
LoggerErp2Mes.LogInformation($"【TransferOutstock】ERP传入数据:{JsonConvert.SerializeObject(input)}");
|
||||
var db = _repository.AsSugarClient();
|
||||
|
||||
if (string.IsNullOrEmpty(input.erp_pk))
|
||||
{
|
||||
_LoggerErp2Mes.LogWarning($"【RawMatTransferInstock】主表主键不能为空!");
|
||||
_LoggerErp2Mes.LogWarning($"【TransferOutstock】主表主键不能为空!");
|
||||
return await ToApiResult(HttpStatusCode.InternalServerError, $"主表主键不能为空!");
|
||||
}
|
||||
|
||||
BasWarehouse warehouse_instock = await db.Queryable<BasWarehouse>().Where(r => r.whcode == input.warehouse_instock).FirstAsync();
|
||||
if (warehouse_instock == null)
|
||||
{
|
||||
_LoggerErp2Mes.LogWarning($"【MaterialTransfer】无法查询到入库仓库{input.warehouse_instock}的档案记录!");
|
||||
return await ToApiResult(HttpStatusCode.InternalServerError, $"无法查询到入库仓库{input.warehouse_instock}的档案记录!");
|
||||
}
|
||||
|
||||
int count_erp_line_pk = input.details.Where(r => string.IsNullOrEmpty(r.erp_line_pk)).Count();
|
||||
if (count_erp_line_pk > 0)
|
||||
{
|
||||
_LoggerErp2Mes.LogWarning($@"【RawMatTransferInstock】子表主键不能为空!");
|
||||
_LoggerErp2Mes.LogWarning($@"【TransferOutstock】子表主键不能为空!");
|
||||
throw new AppFriendlyException($@"子表主键不能为空!", 500);
|
||||
}
|
||||
|
||||
@@ -825,66 +833,76 @@ namespace Tnb.WarehouseMgr
|
||||
}).Distinct();
|
||||
if (wmsPurchaseOrdersDistinct.Count() < input.details.Count)
|
||||
{
|
||||
_LoggerErp2Mes.LogWarning($@"【RawMatTransferInstock】表体存在物料和批号重复的明细!");
|
||||
_LoggerErp2Mes.LogWarning($@"【TransferOutstock】表体存在物料和批号重复的明细!");
|
||||
throw new AppFriendlyException($@"表体存在物料和批号重复的明细!", 500);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
await db.Ado.BeginTranAsync();
|
||||
WmsRawmatTransferinstockH wmsRawmatTransferinstockH = new WmsRawmatTransferinstockH();
|
||||
string Code = await _billRuleService.GetBillNumber("RawMatTransferInstock");
|
||||
|
||||
wmsRawmatTransferinstockH.bill_code = Code;
|
||||
wmsRawmatTransferinstockH.erp_bill_code = input.outsource_order;
|
||||
wmsRawmatTransferinstockH.contact_person = input.contact_person;
|
||||
wmsRawmatTransferinstockH.tel = input.tel;
|
||||
wmsRawmatTransferinstockH.outstockorg_code = input.outstockorg_code;
|
||||
wmsRawmatTransferinstockH.erp_pk = input.erp_pk;
|
||||
wmsRawmatTransferinstockH.create_id = WmsWareHouseConst.ErpUserId;
|
||||
wmsRawmatTransferinstockH.create_time = DateTime.Now;
|
||||
|
||||
await db.Insertable(wmsRawmatTransferinstockH).ExecuteCommandAsync();
|
||||
|
||||
|
||||
List<WmsRawmatTransferinstockD> wmsRawmatTransferinstockDs = new List<WmsRawmatTransferinstockD>();
|
||||
foreach (var detail in input.details)
|
||||
string Code = "";
|
||||
switch (warehouse_instock.id)
|
||||
{
|
||||
WmsRawmatTransferinstockD msRawmatTransferinstockD = new WmsRawmatTransferinstockD();
|
||||
case WmsWareHouseConst.WAREHOUSE_YCL_ID:
|
||||
{
|
||||
WmsRawmatTransferinstockH wmsRawmatTransferinstockH = new WmsRawmatTransferinstockH();
|
||||
Code = await _billRuleService.GetBillNumber("WmsRawMatTransferInstock");
|
||||
|
||||
msRawmatTransferinstockD.bill_id = wmsRawmatTransferinstockH.id;
|
||||
msRawmatTransferinstockD.matcode = detail.material_code;
|
||||
msRawmatTransferinstockD.unit = detail.unit_code;
|
||||
msRawmatTransferinstockD.qty = detail.qty;
|
||||
msRawmatTransferinstockD.stock_location = detail.stock_location;
|
||||
msRawmatTransferinstockD.code_batch = detail.code_batch;
|
||||
msRawmatTransferinstockD.delivery_date = detail.delivery_date.Value.ToString("yyyy-MM-dd HH:mm:ss");
|
||||
msRawmatTransferinstockD.erp_line_pk = detail.erp_line_pk;
|
||||
msRawmatTransferinstockD.create_id = WmsWareHouseConst.ErpUserId;
|
||||
msRawmatTransferinstockD.create_time = DateTime.Now;
|
||||
msRawmatTransferinstockD.actual_qty = 0;
|
||||
wmsRawmatTransferinstockH.bill_code = Code;
|
||||
wmsRawmatTransferinstockH.erp_bill_code = input.outsource_order;
|
||||
wmsRawmatTransferinstockH.contact_person = input.contact_person;
|
||||
wmsRawmatTransferinstockH.tel = input.tel;
|
||||
wmsRawmatTransferinstockH.outstockorg_code = input.outstockorg_code;
|
||||
wmsRawmatTransferinstockH.erp_pk = input.erp_pk;
|
||||
wmsRawmatTransferinstockH.create_id = WmsWareHouseConst.ErpUserId;
|
||||
wmsRawmatTransferinstockH.create_time = DateTime.Now;
|
||||
|
||||
var material = await db.Queryable<BasMaterial>().Where(p => p.code == detail.material_code).FirstAsync();
|
||||
if (material != null)
|
||||
{
|
||||
msRawmatTransferinstockD.matcode_id = material.id;
|
||||
msRawmatTransferinstockD.matspecification = material.material_specification;
|
||||
}
|
||||
await db.Insertable(wmsRawmatTransferinstockH).ExecuteCommandAsync();
|
||||
|
||||
wmsRawmatTransferinstockDs.Add(msRawmatTransferinstockD);
|
||||
|
||||
List<WmsRawmatTransferinstockD> wmsRawmatTransferinstockDs = new List<WmsRawmatTransferinstockD>();
|
||||
foreach (var detail in input.details)
|
||||
{
|
||||
WmsRawmatTransferinstockD msRawmatTransferinstockD = new WmsRawmatTransferinstockD();
|
||||
|
||||
msRawmatTransferinstockD.bill_id = wmsRawmatTransferinstockH.id;
|
||||
msRawmatTransferinstockD.matcode = detail.material_code;
|
||||
msRawmatTransferinstockD.unit = detail.unit_code;
|
||||
msRawmatTransferinstockD.qty = detail.qty;
|
||||
msRawmatTransferinstockD.stock_location = detail.stock_location;
|
||||
msRawmatTransferinstockD.code_batch = detail.code_batch;
|
||||
msRawmatTransferinstockD.delivery_date = detail.delivery_date.Value.ToString("yyyy-MM-dd HH:mm:ss");
|
||||
msRawmatTransferinstockD.erp_line_pk = detail.erp_line_pk;
|
||||
msRawmatTransferinstockD.create_id = WmsWareHouseConst.ErpUserId;
|
||||
msRawmatTransferinstockD.create_time = DateTime.Now;
|
||||
msRawmatTransferinstockD.actual_qty = 0;
|
||||
msRawmatTransferinstockD.lineno = detail.lineno;
|
||||
var material = await db.Queryable<BasMaterial>().Where(p => p.code == detail.material_code).FirstAsync();
|
||||
if (material != null)
|
||||
{
|
||||
msRawmatTransferinstockD.matcode_id = material.id;
|
||||
msRawmatTransferinstockD.matspecification = material.material_specification;
|
||||
}
|
||||
|
||||
wmsRawmatTransferinstockDs.Add(msRawmatTransferinstockD);
|
||||
}
|
||||
|
||||
await db.Insertable(wmsRawmatTransferinstockDs).ExecuteCommandAsync();
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
await db.Insertable(wmsRawmatTransferinstockDs).ExecuteCommandAsync();
|
||||
|
||||
await db.Ado.CommitTranAsync();
|
||||
|
||||
LoggerErp2Mes.LogInformation($"【RawMatTransferInstock】成功生成单据:{Code}");
|
||||
LoggerErp2Mes.LogInformation($"【TransferOutstock】成功生成单据:{Code}");
|
||||
return await ToApiResult(HttpStatusCode.OK, "成功");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LoggerErp2Mes.LogError($"【RawMatTransferInstock】{ex.Message}");
|
||||
LoggerErp2Mes.LogError($"【RawMatTransferInstock】{ex.StackTrace}");
|
||||
LoggerErp2Mes.LogError($"【TransferOutstock】{ex.Message}");
|
||||
LoggerErp2Mes.LogError($"【TransferOutstock】{ex.StackTrace}");
|
||||
await db.Ado.RollbackTranAsync();
|
||||
return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user