电梯日志优化erp同步调整
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user