电梯日志优化erp同步调整

This commit is contained in:
2024-08-23 16:04:58 +08:00
parent 39fac9920c
commit fd150f1804
11 changed files with 173 additions and 82 deletions

View File

@@ -1,5 +1,4 @@
using System.Collections.Generic;
using System.Linq;

using System.Text;
using Aop.Api.Domain;
using JNPF.Common.Enums;
@@ -1088,7 +1087,18 @@ namespace Tnb.WarehouseMgr
wmsRawmatTransferinstockH.erp_bill_code = input.transfer_order;
wmsRawmatTransferinstockH.contact_person = input.contact_person;
wmsRawmatTransferinstockH.tel = input.tel;
wmsRawmatTransferinstockH.outstockorg_code = input.outstockorg_code;
var org_erpExtendField = await db.Queryable<ErpExtendField>().Where(a => a.pk_org == input.outstockorg_code).FirstAsync();
if (org_erpExtendField != null)
{
wmsRawmatTransferinstockH.outstockorg_id = org_erpExtendField.pk_org_v;
wmsRawmatTransferinstockH.outstockorg_code = org_erpExtendField.pk_org;
}
else
{
_LoggerErp2Mes.LogWarning($@"【TransferOutstock】表头明细中组织{input.outstockorg_code}在wms系统中未找到");
throw new AppFriendlyException($@"表头明细中组织{input.outstockorg_code}在wms系统中未找到", 500);
}
wmsRawmatTransferinstockH.erp_pk = input.erp_pk;
wmsRawmatTransferinstockH.create_id = WmsWareHouseConst.ErpUserId;
wmsRawmatTransferinstockH.create_time = DateTime.Now;
@@ -1146,7 +1156,17 @@ namespace Tnb.WarehouseMgr
wmsTransferInstockH.bill_code = Code;
wmsTransferInstockH.erp_bill_code = input.transfer_order;
wmsTransferInstockH.outstockorg_code = input.outstockorg_code;
var org_erpExtendField = await db.Queryable<ErpExtendField>().Where(a => a.pk_org == input.outstockorg_code).FirstAsync();
if (org_erpExtendField != null)
{
wmsTransferInstockH.outstockorg_id = org_erpExtendField.pk_org_v;
wmsTransferInstockH.outstockorg_code = org_erpExtendField.pk_org;
}
else
{
_LoggerErp2Mes.LogWarning($@"【TransferOutstock】表头明细中组织{input.outstockorg_code}在wms系统中未找到");
throw new AppFriendlyException($@"表头明细中组织{input.outstockorg_code}在wms系统中未找到", 500);
}
wmsTransferInstockH.incoming_ware = warehouse_instock.id;
wmsTransferInstockH.org_id = WmsWareHouseConst.AdministratorOrgId;
wmsTransferInstockH.erp_pk = input.erp_pk;
@@ -1255,22 +1275,7 @@ namespace Tnb.WarehouseMgr
throw new AppFriendlyException($@"表体存在物料和批号重复的明细!", 500);
}
WmsErpWarehouserelaH wmsErpWarehouserelaH = await db.Queryable<WmsErpWarehouserelaH>().Where(r => r.erp_warehousecode == input.warehouse_outstock).FirstAsync();
if (wmsErpWarehouserelaH == null)
{
_LoggerErp2Mes.LogWarning($@"【TransferOrder】不存在erp仓库类型{input.warehouse_outstock}对应wms系统的映射关系");
throw new AppFriendlyException($@"不存在erp仓库类型{input.warehouse_outstock}对应wms系统的映射关系", 500);
}
string warehouse_outstock_code = wmsErpWarehouserelaH.wms_warehousecode;
BasWarehouse warehouse_outstock = await db.Queryable<BasWarehouse>().Where(r => r.whcode == warehouse_outstock_code).FirstAsync();
if (warehouse_outstock == null)
{
_LoggerErp2Mes.LogWarning($"【TransferOrder】无法查询到出库仓库{warehouse_outstock_code}的档案记录!");
return await ToApiResult(HttpStatusCode.InternalServerError, $"无法查询到出库仓库{warehouse_outstock_code}的档案记录!");
}
await db.Ado.BeginTranAsync();
WmsTransferOrderH wmsTransferOrderH = new WmsTransferOrderH();
string Code = await _billRuleService.GetBillNumber("WmsTransferOrder");
@@ -1283,7 +1288,6 @@ namespace Tnb.WarehouseMgr
wmsTransferOrderH.create_id = WmsWareHouseConst.ErpUserId;
wmsTransferOrderH.create_time = DateTime.Now;
wmsTransferOrderH.org_id = WmsWareHouseConst.AdministratorOrgId;
wmsTransferOrderH.erp_wh_type = input.warehouse_outstock;
var _erpExtendField = await db.Queryable<ErpExtendField>().InnerJoin<DictionaryDataEntity>((a, b) => a.table_id == b.Id)
.Where((a, b) => a.transaction_type_id == input.transaction_type).Select((a, b) => b).FirstAsync();
@@ -1322,6 +1326,7 @@ namespace Tnb.WarehouseMgr
wmsTransferOrderD.create_id = WmsWareHouseConst.ErpUserId;
wmsTransferOrderD.create_time = DateTime.Now;
wmsTransferOrderD.lineno = detail.lineno;
wmsTransferOrderD.erp_wh_type = detail.warehouse_outstock;
var material = await db.Queryable<BasMaterial>().Where(p => p.code == detail.material_code).FirstAsync();
if (material != null)
@@ -1337,7 +1342,37 @@ namespace Tnb.WarehouseMgr
await db.Insertable(wmsTransferOrderDs).ExecuteCommandAsync();
if (warehouse_outstock.id == WmsWareHouseConst.WAREHOUSE_YCL_ID)
Dictionary<string, object> dic_WmsErpWarehouseidrelaH = await db.Queryable<WmsErpWarehouserelaH>()
.LeftJoin<BasWarehouse>((a, b) => a.wms_warehousecode == b.whcode)
.Select((a, b) => new
{
a.erp_warehousecode,
b.id,
b.whcode
})
.ToDictionaryAsync(k => k.erp_warehousecode, v => v.id);
foreach (var key in dic_WmsErpWarehouseidrelaH.Keys)
{
if (dic_WmsErpWarehouseidrelaH[key] == null)
{
_LoggerErp2Mes.LogWarning($"【TransferOrder】无法查询到出库仓库{key}的档案记录!");
return await ToApiResult(HttpStatusCode.InternalServerError, $"无法查询到出库仓库{key}的档案记录!");
}
}
Dictionary<string, object> dic_WmsErpWarehousecoderelaH = await db.Queryable<WmsErpWarehouserelaH>()
.LeftJoin<BasWarehouse>((a, b) => a.wms_warehousecode == b.whcode)
.Select((a, b) => new
{
a.erp_warehousecode,
b.id,
b.whcode
})
.ToDictionaryAsync(k => k.erp_warehousecode, v => v.whcode);
List<TransferOrderInputDetail> details_WAREHOUSE_YCL_ID = input.details.Where(r => dic_WmsErpWarehouseidrelaH[r.warehouse_outstock].ToString() == WmsWareHouseConst.WAREHOUSE_YCL_ID).ToList();
List<TransferOrderInputDetail> details_WAREHOUSE_CP_ID = input.details.Where(r => dic_WmsErpWarehouseidrelaH[r.warehouse_outstock].ToString() == WmsWareHouseConst.WAREHOUSE_YCL_ID).ToList();
if (details_WAREHOUSE_YCL_ID.Count > 0)
{
WmsRawmatTransferoutstockH wmsRawmatTransferoutstockH = new WmsRawmatTransferoutstockH();
string code = await _billRuleService.GetBillNumber("RawmatTransferoutstock");
@@ -1346,15 +1381,14 @@ namespace Tnb.WarehouseMgr
wmsRawmatTransferoutstockH.create_time = DateTime.Now;
wmsRawmatTransferoutstockH.biller = input.biller;
wmsRawmatTransferoutstockH.dept_code = input.dept_code;
wmsRawmatTransferoutstockH.warehouse_code = warehouse_outstock.whcode;
wmsRawmatTransferoutstockH.warehouse_code = dic_WmsErpWarehousecoderelaH[details_WAREHOUSE_YCL_ID[0].warehouse_outstock].ToString();
wmsRawmatTransferoutstockH.erp_pk = input.erp_pk;
wmsRawmatTransferoutstockH.transfer_order_id = wmsTransferOrderH.bill_code;
wmsRawmatTransferoutstockH.transfer_order_id = wmsTransferOrderH.id;
wmsRawmatTransferoutstockH.issuance_status = "0";
wmsRawmatTransferoutstockH.transaction_type = _erpExtendField.EnCode;
wmsRawmatTransferoutstockH.org_id = WmsWareHouseConst.AdministratorOrgId;
wmsRawmatTransferoutstockH.erp_wh_type = input.warehouse_outstock;
List<WmsRawmatTransferoutstockD> wmsRawmatTransferoutstockDs = new List <WmsRawmatTransferoutstockD>();
foreach (var detail in input.details)
foreach (var detail in details_WAREHOUSE_YCL_ID)
{
WmsRawmatTransferoutstockD wmsRawmatTransferoutstockD = new WmsRawmatTransferoutstockD();
wmsRawmatTransferoutstockD.bill_id = wmsRawmatTransferoutstockH.id;
@@ -1370,6 +1404,7 @@ namespace Tnb.WarehouseMgr
throw new AppFriendlyException($@"表体明细中单位{detail.unit_code}在wms系统中未找到", 500);
}
wmsRawmatTransferoutstockD.erp_wh_type = detail.warehouse_outstock;
wmsRawmatTransferoutstockD.qty = detail.qty;
wmsRawmatTransferoutstockD.code_batch = detail.code_batch;
wmsRawmatTransferoutstockD.erp_line_pk = detail.erp_line_pk;
@@ -1392,22 +1427,22 @@ namespace Tnb.WarehouseMgr
await db.Insertable(wmsRawmatTransferoutstockH).ExecuteCommandAsync();
await db.Insertable(wmsRawmatTransferoutstockDs).ExecuteCommandAsync();
}
else if(warehouse_outstock.id == WmsWareHouseConst.WAREHOUSE_CP_ID)
if(details_WAREHOUSE_CP_ID.Count > 0)
{
WmsTransferOutstockH wmsTransferOutstockH = new WmsTransferOutstockH();
string code = await _billRuleService.GetBillNumber("WmsTransferOutstock");
wmsTransferOutstockH.bill_code = code;
wmsTransferOutstockH.create_id = WmsWareHouseConst.ErpUserId;
wmsTransferOutstockH.create_time = DateTime.Now;
wmsTransferOutstockH.warehouse_code = warehouse_outstock.whcode;
wmsTransferOutstockH.warehouse_code = dic_WmsErpWarehousecoderelaH[details_WAREHOUSE_CP_ID[0].warehouse_outstock].ToString();
wmsTransferOutstockH.erp_pk = input.erp_pk;
wmsTransferOutstockH.transfer_order_id = wmsTransferOrderH.bill_code;
wmsTransferOutstockH.transfer_order_id = wmsTransferOrderH.id;
wmsTransferOutstockH.issuance_status = "0";
wmsTransferOutstockH.transaction_type = _erpExtendField.EnCode;
wmsTransferOutstockH.org_id = WmsWareHouseConst.AdministratorOrgId;
wmsTransferOutstockH.erp_wh_type = input.warehouse_outstock;
List<WmsTransferOutstockD> wmsTransferOutstockDs = new List<WmsTransferOutstockD>();
foreach (var detail in input.details)
foreach (var detail in details_WAREHOUSE_CP_ID)
{
WmsTransferOutstockD wmsTransferOutstockD = new WmsTransferOutstockD();
wmsTransferOutstockD.bill_id = wmsTransferOutstockH.id;
@@ -1432,6 +1467,7 @@ namespace Tnb.WarehouseMgr
wmsTransferOutstockD.create_id = WmsWareHouseConst.ErpUserId;
wmsTransferOutstockD.create_time = DateTime.Now;
wmsTransferOutstockD.lineno = detail.lineno;
wmsTransferOutstockD.erp_wh_type = detail.warehouse_outstock;
var material = await db.Queryable<BasMaterial>().Where(p => p.code == detail.material_code).FirstAsync();
if (material != null)