diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs index 7676a20d..4804d64b 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WareHouseService.cs @@ -930,29 +930,55 @@ namespace Tnb.WarehouseMgr getdic.Add("ZS-C14-2", new string[] { "hxjC", "A1允许取满箱" }); - putdic.Add("ZS-A01-1", new string[] { "hxjA", "A3允许入空箱", }); - getdic.Add("ZS-A01-2", new string[] { "hxjA", "A3允许取满箱" }); + //putdic.Add("ZS-A01-1", new string[] { "hxjA", "A3允许入空箱", }); + //getdic.Add("ZS-A01-2", new string[] { "hxjA", "A3允许取满箱" }); - putdic.Add("ZS-A02-1", new string[] { "hxjA", "A4允许入空箱", }); - getdic.Add("ZS-A02-2", new string[] { "hxjA", "A4允许取满箱" }); + //putdic.Add("ZS-A02-1", new string[] { "hxjA", "A4允许入空箱", }); + //getdic.Add("ZS-A02-2", new string[] { "hxjA", "A4允许取满箱" }); - putdic.Add("ZS-A03-1", new string[] { "hxjA", "A5允许入空箱", }); - getdic.Add("ZS-A03-2", new string[] { "hxjA", "A5允许取满箱" }); + //putdic.Add("ZS-A03-1", new string[] { "hxjA", "A5允许入空箱", }); + //getdic.Add("ZS-A03-2", new string[] { "hxjA", "A5允许取满箱" }); + + //putdic.Add("ZS-D06-1", new string[] { "hxjA", "A6允许入空箱", }); + //getdic.Add("ZS-D06-2", new string[] { "hxjA", "A6允许取满箱" }); + + //putdic.Add("ZS-A05-1", new string[] { "hxjA", "A7允许入空箱", }); + //getdic.Add("ZS-A05-2", new string[] { "hxjA", "A7允许取满箱" }); + + //putdic.Add("ZS-A06-1", new string[] { "hxjA", "A8允许入空箱", }); + //getdic.Add("ZS-A06-2", new string[] { "hxjA", "A8允许取满箱" }); + + //putdic.Add("ZS-A07-1", new string[] { "hxjA", "A9允许入空箱", }); + //getdic.Add("ZS-A07-2", new string[] { "hxjA", "A9允许取满箱" }); + + //putdic.Add("ZS-A08-1", new string[] { "hxjA", "A10允许入空箱", }); + //getdic.Add("ZS-A08-2", new string[] { "hxjA", "A10允许取满箱" }); + + putdic.Add("ZS-D01-1", new string[] { "hxjA", "A1允许入空箱", }); + getdic.Add("ZS-D01-2", new string[] { "hxjA", "A1允许取满箱" }); + + putdic.Add("ZS-D02-1", new string[] { "hxjA", "A2允许入空箱", }); + getdic.Add("ZS-D02-2", new string[] { "hxjA", "A2允许取满箱" }); + + putdic.Add("ZS-D03-1", new string[] { "hxjA", "A3允许入空箱", }); + getdic.Add("ZS-D03-2", new string[] { "hxjA", "A3允许取满箱" }); + + putdic.Add("ZS-D04-1", new string[] { "hxjA", "A4允许入空箱", }); + getdic.Add("ZS-D04-2", new string[] { "hxjA", "A4允许取满箱" }); + + putdic.Add("ZS-D05-1", new string[] { "hxjA", "A5允许入空箱", }); + getdic.Add("ZS-D05-2", new string[] { "hxjA", "A5允许取满箱" }); putdic.Add("ZS-D06-1", new string[] { "hxjA", "A6允许入空箱", }); getdic.Add("ZS-D06-2", new string[] { "hxjA", "A6允许取满箱" }); - putdic.Add("ZS-A05-1", new string[] { "hxjA", "A7允许入空箱", }); - getdic.Add("ZS-A05-2", new string[] { "hxjA", "A7允许取满箱" }); + putdic.Add("ZS-D07-1", new string[] { "hxjA", "A7允许入空箱", }); + getdic.Add("ZS-D07-2", new string[] { "hxjA", "A7允许取满箱" }); - putdic.Add("ZS-A06-1", new string[] { "hxjA", "A8允许入空箱", }); - getdic.Add("ZS-A06-2", new string[] { "hxjA", "A8允许取满箱" }); + putdic.Add("ZS-D08-1", new string[] { "hxjA", "A8允许入空箱", }); + getdic.Add("ZS-D08-2", new string[] { "hxjA", "A8允许取满箱" }); - putdic.Add("ZS-A07-1", new string[] { "hxjA", "A9允许入空箱", }); - getdic.Add("ZS-A07-2", new string[] { "hxjA", "A9允许取满箱" }); - putdic.Add("ZS-A08-1", new string[] { "hxjA", "A10允许入空箱", }); - getdic.Add("ZS-A08-2", new string[] { "hxjA", "A10允许取满箱" }); putdic.Add("ZS-A09-1", new string[] { "hxjA", "A11允许入空箱", }); getdic.Add("ZS-A09-2", new string[] { "hxjA", "A11允许取满箱" }); @@ -1088,12 +1114,13 @@ namespace Tnb.WarehouseMgr putdic.Add("ZS-C13-1", new string[] { "hxjC", "A14AGV允许出空箱", "true" }); putdic.Add("ZS-C14-1", new string[] { "hxjC", "A1AGV允许出空箱", "true" }); - putdic.Add("ZS-A01-1", new string[] { "hxjA", "A3AGV允许出空箱", "true" }); - putdic.Add("ZS-A02-1", new string[] { "hxjA", "A4AGV允许出空箱", "true" }); - putdic.Add("ZS-A03-1", new string[] { "hxjA", "A5AGV允许出空箱", "true" }); - putdic.Add("ZS-D06-1", new string[] { "hxjA", "A6AGV允许出空箱", "true" }); - putdic.Add("ZS-A05-1", new string[] { "hxjA", "A7AGV允许出空箱", "true" }); - putdic.Add("ZS-A06-1", new string[] { "hxjA", "A8AGV允许出空箱", "true" }); + //putdic.Add("ZS-A01-1", new string[] { "hxjA", "A3AGV允许出空箱", "true" }); + //putdic.Add("ZS-A02-1", new string[] { "hxjA", "A4AGV允许出空箱", "true" }); + //putdic.Add("ZS-A03-1", new string[] { "hxjA", "A5AGV允许出空箱", "true" }); + //putdic.Add("ZS-D06-1", new string[] { "hxjA", "A6AGV允许出空箱", "true" }); + //putdic.Add("ZS-A05-1", new string[] { "hxjA", "A7AGV允许出空箱", "true" }); + //putdic.Add("ZS-A06-1", new string[] { "hxjA", "A8AGV允许出空箱", "true" }); + putdic.Add("ZS-A07-1", new string[] { "hxjA", "A9AGV允许出空箱", "true" }); putdic.Add("ZS-A08-1", new string[] { "hxjA", "A10AGV允许出空箱", "true" }); putdic.Add("ZS-A09-1", new string[] { "hxjA", "A11AGV允许出空箱", "true" }); @@ -1101,6 +1128,16 @@ namespace Tnb.WarehouseMgr putdic.Add("ZS-A11-1", new string[] { "hxjA", "A13AGV允许出空箱", "true" }); putdic.Add("ZS-A12-1", new string[] { "hxjA", "A14AGV允许出空箱", "true" }); + // D线 待改成配置 + putdic.Add("ZS-D01-1", new string[] { "hxjA", "A1AGV允许出空箱", "true" }); + putdic.Add("ZS-D02-1", new string[] { "hxjA", "A2AGV允许出空箱", "true" }); + putdic.Add("ZS-D03-1", new string[] { "hxjA", "A3AGV允许出空箱", "true" }); + putdic.Add("ZS-D04-1", new string[] { "hxjA", "A4AGV允许出空箱", "true" }); + putdic.Add("ZS-D05-1", new string[] { "hxjA", "A5AGV允许出空箱", "true" }); + putdic.Add("ZS-D06-1", new string[] { "hxjA", "A6AGV允许出空箱", "true" }); + putdic.Add("ZS-D07-1", new string[] { "hxjA", "A7AGV允许出空箱", "true" }); + putdic.Add("ZS-D08-1", new string[] { "hxjA", "A8AGV允许出空箱", "true" }); + if (action == "LOAD")//取货 { if (getdic.Keys.Contains(disTask.startlocation_code)) @@ -1212,19 +1249,29 @@ namespace Tnb.WarehouseMgr putdic.Add("ZS-C13-1", new string[] { "hxjC", "A14AGV允许出空箱", "true" }); putdic.Add("ZS-C14-1", new string[] { "hxjC", "A1AGV允许出空箱", "true" }); - putdic.Add("ZS-A01-1", new string[] { "hxjA", "A3AGV允许出空箱", "true" }); - putdic.Add("ZS-A02-1", new string[] { "hxjA", "A4AGV允许出空箱", "true" }); - putdic.Add("ZS-A03-1", new string[] { "hxjA", "A5AGV允许出空箱", "true" }); - putdic.Add("ZS-D06-1", new string[] { "hxjA", "A6AGV允许出空箱", "false" }); - putdic.Add("ZS-A05-1", new string[] { "hxjA", "A7AGV允许出空箱", "true" }); - putdic.Add("ZS-A06-1", new string[] { "hxjA", "A8AGV允许出空箱", "true" }); - putdic.Add("ZS-A07-1", new string[] { "hxjA", "A9AGV允许出空箱", "true" }); - putdic.Add("ZS-A08-1", new string[] { "hxjA", "A10AGV允许出空箱", "true" }); + //putdic.Add("ZS-A01-1", new string[] { "hxjA", "A3AGV允许出空箱", "true" }); + //putdic.Add("ZS-A02-1", new string[] { "hxjA", "A4AGV允许出空箱", "true" }); + //putdic.Add("ZS-A03-1", new string[] { "hxjA", "A5AGV允许出空箱", "true" }); + //putdic.Add("ZS-D06-1", new string[] { "hxjA", "A6AGV允许出空箱", "false" }); + //putdic.Add("ZS-A05-1", new string[] { "hxjA", "A7AGV允许出空箱", "true" }); + //putdic.Add("ZS-A06-1", new string[] { "hxjA", "A8AGV允许出空箱", "true" }); + //putdic.Add("ZS-A07-1", new string[] { "hxjA", "A9AGV允许出空箱", "true" }); + //putdic.Add("ZS-A08-1", new string[] { "hxjA", "A10AGV允许出空箱", "true" }); putdic.Add("ZS-A09-1", new string[] { "hxjA", "A11AGV允许出空箱", "true" }); putdic.Add("ZS-A10-1", new string[] { "hxjA", "A12AGV允许出空箱", "true" }); putdic.Add("ZS-A11-1", new string[] { "hxjA", "A13AGV允许出空箱", "false" }); putdic.Add("ZS-A12-1", new string[] { "hxjA", "A14AGV允许出空箱", "true" }); + // D线 待改成配置 + putdic.Add("ZS-D01-1", new string[] { "hxjA", "A1AGV允许出空箱", "false" }); + putdic.Add("ZS-D02-1", new string[] { "hxjA", "A2AGV允许出空箱", "false" }); + putdic.Add("ZS-D03-1", new string[] { "hxjA", "A3AGV允许出空箱", "false" }); + putdic.Add("ZS-D04-1", new string[] { "hxjA", "A4AGV允许出空箱", "false" }); + putdic.Add("ZS-D05-1", new string[] { "hxjA", "A5AGV允许出空箱", "false" }); + putdic.Add("ZS-D06-1", new string[] { "hxjA", "A6AGV允许出空箱", "false" }); + putdic.Add("ZS-D07-1", new string[] { "hxjA", "A7AGV允许出空箱", "false" }); + putdic.Add("ZS-D08-1", new string[] { "hxjA", "A8AGV允许出空箱", "false" }); + if (action == "LOAD")//取货 { if (getdic.Keys.Contains(disTask.startlocation_code)) diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialSignHService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialSignHService.cs index 566df54a..0384f930 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialSignHService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialSignHService.cs @@ -400,9 +400,101 @@ namespace Tnb.WarehouseMgr } case WmsWareHouseConst.BIZTYPE_WMSMATERIALTRANSFER_ID: { + Logger.LogInformation("【WmsMaterialSignHService ModifyAsync】同步其它出库单到erp..."); // todo 对接其它出库单 出库数量为签收数量 + WmsMaterialTransferD wmsMaterialTransferd = await _db.Queryable().Where(r => r.id == wmsDistaskH.source_id).FirstAsync(); + WmsMaterialTransfer wmsMaterialTransfer = await _db.Queryable().Where(r => r.id == wmsMaterialTransferd.bill_id).FirstAsync(); + List dList = await _db.Queryable().Where(x => x.bill_id == wmsMaterialTransferd.bill_id).OrderBy(x => x.id).ToListAsync(); + DictionaryDataEntity unitData = await _db.Queryable() + .LeftJoin((x, y) => x.Id == y.DictionaryTypeId) + .Where((x, y) => x.EnCode == DictConst.MeasurementUnit && y.EnCode == wmsMaterialTransferd.unit_id) + .Select((x, y) => y) + .FirstAsync(); + string unitId = unitData?.Id ?? ""; + List ids = new List(); + // ids.Add(wmsMaterialTransfer.create_id); + ids.Add(WmsWareHouseConst.AdministratorOrgId); + ids.Add(wmsMaterialTransfer.warehouse_outstock); + ids.Add(wmsMaterialTransfer.warehouse_instock); + ids.Add(wmsMaterialTransferd.material_id); + ids.Add(unitId); + string userId = wmsMaterialTransfer.create_id ?? WmsWareHouseConst.AdministratorUserId; + ids.Add(userId); + List erpExtendFields = await _db.Queryable().Where(x => ids.Contains(x.table_id)).ToListAsync(); + + ErpExtendField erpOrg = erpExtendFields.Find(x => x.table_id == (wmsMaterialTransfer.org_id ?? WmsWareHouseConst.AdministratorOrgId)); + string erpCreateId = erpExtendFields.Find(x => x.table_id == userId)?.user_id ?? WmsWareHouseConst.ERPUSERID; + List erpWarehouserelaHs = await _db.Queryable().Where(x => x.id != null).ToListAsync(); + BasWarehouse outWarehouse = await _db.Queryable().SingleAsync(x => x.id == wmsMaterialTransfer.warehouse_outstock); + BasWarehouse inWarehouse = await _db.Queryable().SingleAsync(x => x.id == wmsMaterialTransfer.warehouse_instock); + string inwhcode = inWarehouse?.whcode ?? ""; + string outwhcode = outWarehouse?.whcode ?? ""; + + + List> requestData = new List>(); + Dictionary erpRequestData = new Dictionary(); + string nowStr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + erpRequestData.Add("billmaker", erpCreateId); + erpRequestData.Add("cdptid", "1001A1100000001JFOPQ");// 先写死 + erpRequestData.Add("cdptvid", "0001A1100000000AOMIQ");// 先写死 + erpRequestData.Add("corpoid", erpOrg.corpoid); + erpRequestData.Add("corpvid", erpOrg.corpoid); + erpRequestData.Add("cothercalbodyoid", erpOrg.pk_org); + // erpRequestData.Add("cotherwhid", erpExtendFields.Find(x => x.table_id == wmsMaterialTransfer.warehouse_instock)?.cotherwhid ?? ""); + erpRequestData.Add("cotherwhid", erpWarehouserelaHs.Find(x => x.wms_warehousecode == inwhcode)?.erp_warehouseid ?? ""); + erpRequestData.Add("creationtime", nowStr); + erpRequestData.Add("creator", erpCreateId); + erpRequestData.Add("ctrantypeid", "0001H11000000000D31W"); + erpRequestData.Add("cwarehouseid", erpWarehouserelaHs.Find(x => x.wms_warehousecode == outwhcode)?.erp_warehouseid ?? ""); + erpRequestData.Add("dbilldate", nowStr); + erpRequestData.Add("dmakedate", nowStr); + erpRequestData.Add("ntotalnum", wmsCarryCodes.Sum(r => r.codeqty)); + erpRequestData.Add("pk_group", erpOrg.pk_group); + erpRequestData.Add("pk_org", erpOrg.pk_org); + erpRequestData.Add("pk_org_v", erpOrg.pk_org_v); + erpRequestData.Add("vbillcode", wmsMaterialTransfer.bill_code); + erpRequestData.Add("vtrantypecode", "4I-01");//其他出库 先写死 + List> erpRequestDataDetails = new List>(); + erpRequestDataDetails.Add(new Dictionary() + { + ["cbodytranstypecode"] = "4I-01", + ["cbodywarehouseid"] = erpWarehouserelaHs.Find(x => x.wms_warehousecode == outwhcode)?.erp_warehouseid ?? "", + ["cmaterialoid"] = erpExtendFields.Find(x => x.table_id == wmsMaterialTransferd.material_id)?.cmaterialoid ?? "", + ["cmaterialvid"] = erpExtendFields.Find(x => x.table_id == wmsMaterialTransferd.material_id)?.cmaterialvid ?? "", + ["corpoid"] = erpOrg.corpoid, + ["corpvid"] = erpOrg.corpvid, + ["crowno"] = wmsMaterialTransferd.lineno, + ["csourcebillbid"] = wmsMaterialTransferd.erp_line_pk, + ["csourcebillhid"] = wmsMaterialTransfer.erp_pk, + ["cunitid"] = erpExtendFields.Find(x => x.table_id == unitId)?.cunitid ?? "", + ["cvendorid"] = "", + ["cvendorvid"] = "", + ["dbizdate"] = nowStr, + ["nnum"] = wmsCarryCodes.Sum(r => r.codeqty), + ["nshouldnum"] = wmsMaterialTransferd.qty, + ["pk_group"] = erpOrg.pk_group, + ["pk_org"] = erpOrg.pk_org, + ["pk_org_v"] = erpOrg.pk_org_v, + ["vbatchcode"] = wmsMaterialTransferd.code_batch, + }); + erpRequestData.Add("dtls", erpRequestDataDetails); + requestData.Add(erpRequestData); + + BasFactoryConfig config = await _db.Queryable().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.BIPURL); + ThirdWebapiRecord thirdWebapiRecord = new ThirdWebapiRecord(); + thirdWebapiRecord.id = SnowflakeIdHelper.NextId(); + thirdWebapiRecord.third_name = WmsWareHouseConst.BIP; + thirdWebapiRecord.name = "其它出库"; + thirdWebapiRecord.method = "POST"; + // thirdWebapiRecord.url = config.value + "uapws/rest/generalout/save"; + thirdWebapiRecord.url = WmsWareHouseConst.BIP_DOMAIN + "uapws/rest/generalout/save"; + thirdWebapiRecord.request_data = JsonConvert.SerializeObject(requestData); + thirdWebapiRecord.create_time = DateTime.Now; + + await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync(); + Logger.LogInformation("【WmsMaterialTransferService ModifyAsync】同步其它出库单到erp成功"); if (!_wareHouseService.GetFloor1WXSGWOutstockLocation().Contains(carryLoc.id)) diff --git a/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialTransferService.cs b/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialTransferService.cs index 2b30dfef..87c3c95f 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialTransferService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/WmsMaterialTransferService.cs @@ -142,6 +142,7 @@ namespace Tnb.WarehouseMgr deliver_date = a.deliver_date, arrival_date = a.arrival_date, order_code = a.order_code, + erp_bill_code = a.erp_bill_code, }) .OrderBy("a.bill_code desc") .ToPagedListAsync(input.currentPage, input.pageSize); @@ -1027,97 +1028,100 @@ namespace Tnb.WarehouseMgr // 其它出库 else { - Logger.LogInformation("【WmsMaterialTransferService ModifyAsync】同步其它出库单到erp..."); - - List dList = await _db.Queryable().Where(x => x.bill_id == wmsMaterialTransferd.bill_id).OrderBy(x => x.id).ToListAsync(); - DictionaryDataEntity unitData = await _db.Queryable() - .LeftJoin((x, y) => x.Id == y.DictionaryTypeId) - .Where((x, y) => x.EnCode == DictConst.MeasurementUnit && y.EnCode == wmsMaterialTransferd.unit_id) - .Select((x, y) => y) - .FirstAsync(); - string unitId = unitData?.Id ?? ""; - List ids = new List(); - // ids.Add(wmsMaterialTransfer.create_id); - ids.Add(WmsWareHouseConst.AdministratorOrgId); - ids.Add(wmsMaterialTransfer.warehouse_outstock); - ids.Add(wmsMaterialTransfer.warehouse_instock); - ids.Add(wmsMaterialTransferd.material_id); - ids.Add(unitId); - string userId = wmsMaterialTransfer.create_id ?? WmsWareHouseConst.AdministratorUserId; - ids.Add(userId); - List erpExtendFields = await _db.Queryable().Where(x => ids.Contains(x.table_id)).ToListAsync(); - - ErpExtendField erpOrg = erpExtendFields.Find(x => x.table_id == (wmsMaterialTransfer.org_id ?? WmsWareHouseConst.AdministratorOrgId)); - string erpCreateId = erpExtendFields.Find(x => x.table_id == userId)?.user_id ?? WmsWareHouseConst.ERPUSERID; - List erpWarehouserelaHs = await _db.Queryable().Where(x=>x.id!=null).ToListAsync(); - BasWarehouse outWarehouse = await _db.Queryable().SingleAsync(x=>x.id==wmsMaterialTransfer.warehouse_outstock); - BasWarehouse inWarehouse = await _db.Queryable().SingleAsync(x=>x.id==wmsMaterialTransfer.warehouse_instock); - string inwhcode = inWarehouse?.whcode ?? ""; - string outwhcode = outWarehouse?.whcode ?? ""; - - - List> requestData = new List>(); - Dictionary erpRequestData = new Dictionary(); - string nowStr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); - erpRequestData.Add("billmaker", erpCreateId); - erpRequestData.Add("cdptid", "1001A1100000001JFOPQ");// 先写死 - erpRequestData.Add("cdptvid", "0001A1100000000AOMIQ");// 先写死 - erpRequestData.Add("corpoid", erpOrg.corpoid); - erpRequestData.Add("corpvid", erpOrg.corpoid); - erpRequestData.Add("cothercalbodyoid", erpOrg.pk_org); - // erpRequestData.Add("cotherwhid", erpExtendFields.Find(x => x.table_id == wmsMaterialTransfer.warehouse_instock)?.cotherwhid ?? ""); - erpRequestData.Add("cotherwhid", erpWarehouserelaHs.Find(x => x.wms_warehousecode == inwhcode)?.erp_warehouseid ?? ""); - erpRequestData.Add("creationtime", nowStr); - erpRequestData.Add("creator", erpCreateId); - erpRequestData.Add("ctrantypeid", "0001H11000000000D31W"); - erpRequestData.Add("cwarehouseid", erpWarehouserelaHs.Find(x => x.wms_warehousecode == outwhcode)?.erp_warehouseid ?? ""); - erpRequestData.Add("dbilldate", nowStr); - erpRequestData.Add("dmakedate", nowStr); - erpRequestData.Add("ntotalnum", wmsCarryCodes.Sum(r => r.codeqty)); - erpRequestData.Add("pk_group", erpOrg.pk_group); - erpRequestData.Add("pk_org", erpOrg.pk_org); - erpRequestData.Add("pk_org_v", erpOrg.pk_org_v); - erpRequestData.Add("vbillcode", wmsMaterialTransfer.bill_code); - erpRequestData.Add("vtrantypecode", "4I-01");//其他出库 先写死 - List> erpRequestDataDetails = new List>(); - erpRequestDataDetails.Add(new Dictionary() + // 原材料仓出库在签收后回传其它出库 + if (wmsMaterialTransfer.warehouse_outstock != WmsWareHouseConst.WAREHOUSE_YCL_ID) { - ["cbodytranstypecode"] = "4I-01", - ["cbodywarehouseid"] = erpWarehouserelaHs.Find(x => x.wms_warehousecode == outwhcode)?.erp_warehouseid ?? "", - ["cmaterialoid"] = erpExtendFields.Find(x => x.table_id == wmsMaterialTransferd.material_id)?.cmaterialoid ?? "", - ["cmaterialvid"] = erpExtendFields.Find(x => x.table_id == wmsMaterialTransferd.material_id)?.cmaterialvid ?? "", - ["corpoid"] = erpOrg.corpoid, - ["corpvid"] = erpOrg.corpvid, - ["crowno"] = wmsMaterialTransferd.lineno, - ["csourcebillbid"] = wmsMaterialTransferd.erp_line_pk, - ["csourcebillhid"] = wmsMaterialTransfer.erp_pk, - ["cunitid"] = erpExtendFields.Find(x => x.table_id == unitId)?.cunitid ?? "", - ["cvendorid"] = "", - ["cvendorvid"] = "", - ["dbizdate"] = nowStr, - ["nnum"] = wmsCarryCodes.Sum(r => r.codeqty), - ["nshouldnum"] = wmsMaterialTransferd.qty, - ["pk_group"] = erpOrg.pk_group, - ["pk_org"] = erpOrg.pk_org, - ["pk_org_v"] = erpOrg.pk_org_v, - ["vbatchcode"] = wmsMaterialTransferd.code_batch, - }); - erpRequestData.Add("dtls", erpRequestDataDetails); - requestData.Add(erpRequestData); + Logger.LogInformation("【WmsMaterialTransferService ModifyAsync】同步其它出库单到erp..."); + List dList = await _db.Queryable().Where(x => x.bill_id == wmsMaterialTransferd.bill_id).OrderBy(x => x.id).ToListAsync(); + DictionaryDataEntity unitData = await _db.Queryable() + .LeftJoin((x, y) => x.Id == y.DictionaryTypeId) + .Where((x, y) => x.EnCode == DictConst.MeasurementUnit && y.EnCode == wmsMaterialTransferd.unit_id) + .Select((x, y) => y) + .FirstAsync(); + string unitId = unitData?.Id ?? ""; + List ids = new List(); + // ids.Add(wmsMaterialTransfer.create_id); + ids.Add(WmsWareHouseConst.AdministratorOrgId); + ids.Add(wmsMaterialTransfer.warehouse_outstock); + ids.Add(wmsMaterialTransfer.warehouse_instock); + ids.Add(wmsMaterialTransferd.material_id); + ids.Add(unitId); + string userId = wmsMaterialTransfer.create_id ?? WmsWareHouseConst.AdministratorUserId; + ids.Add(userId); + List erpExtendFields = await _db.Queryable().Where(x => ids.Contains(x.table_id)).ToListAsync(); - BasFactoryConfig config = await _db.Queryable().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.BIPURL); - ThirdWebapiRecord thirdWebapiRecord = new ThirdWebapiRecord(); - thirdWebapiRecord.id = SnowflakeIdHelper.NextId(); - thirdWebapiRecord.third_name = WmsWareHouseConst.BIP; - thirdWebapiRecord.name = "其它出库"; - thirdWebapiRecord.method = "POST"; - // thirdWebapiRecord.url = config.value + "uapws/rest/generalout/save"; - thirdWebapiRecord.url = WmsWareHouseConst.BIP_DOMAIN + "uapws/rest/generalout/save"; - thirdWebapiRecord.request_data = JsonConvert.SerializeObject(requestData); - thirdWebapiRecord.create_time = DateTime.Now; + ErpExtendField erpOrg = erpExtendFields.Find(x => x.table_id == (wmsMaterialTransfer.org_id ?? WmsWareHouseConst.AdministratorOrgId)); + string erpCreateId = erpExtendFields.Find(x => x.table_id == userId)?.user_id ?? WmsWareHouseConst.ERPUSERID; + List erpWarehouserelaHs = await _db.Queryable().Where(x => x.id != null).ToListAsync(); + BasWarehouse outWarehouse = await _db.Queryable().SingleAsync(x => x.id == wmsMaterialTransfer.warehouse_outstock); + BasWarehouse inWarehouse = await _db.Queryable().SingleAsync(x => x.id == wmsMaterialTransfer.warehouse_instock); + string inwhcode = inWarehouse?.whcode ?? ""; + string outwhcode = outWarehouse?.whcode ?? ""; - await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync(); - Logger.LogInformation("【WmsMaterialTransferService ModifyAsync】同步其它出库单到erp成功"); + + List> requestData = new List>(); + Dictionary erpRequestData = new Dictionary(); + string nowStr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + erpRequestData.Add("billmaker", erpCreateId); + erpRequestData.Add("cdptid", "1001A1100000001JFOPQ");// 先写死 + erpRequestData.Add("cdptvid", "0001A1100000000AOMIQ");// 先写死 + erpRequestData.Add("corpoid", erpOrg.corpoid); + erpRequestData.Add("corpvid", erpOrg.corpoid); + erpRequestData.Add("cothercalbodyoid", erpOrg.pk_org); + // erpRequestData.Add("cotherwhid", erpExtendFields.Find(x => x.table_id == wmsMaterialTransfer.warehouse_instock)?.cotherwhid ?? ""); + erpRequestData.Add("cotherwhid", erpWarehouserelaHs.Find(x => x.wms_warehousecode == inwhcode)?.erp_warehouseid ?? ""); + erpRequestData.Add("creationtime", nowStr); + erpRequestData.Add("creator", erpCreateId); + erpRequestData.Add("ctrantypeid", "0001H11000000000D31W"); + erpRequestData.Add("cwarehouseid", erpWarehouserelaHs.Find(x => x.wms_warehousecode == outwhcode)?.erp_warehouseid ?? ""); + erpRequestData.Add("dbilldate", nowStr); + erpRequestData.Add("dmakedate", nowStr); + erpRequestData.Add("ntotalnum", wmsCarryCodes.Sum(r => r.codeqty)); + erpRequestData.Add("pk_group", erpOrg.pk_group); + erpRequestData.Add("pk_org", erpOrg.pk_org); + erpRequestData.Add("pk_org_v", erpOrg.pk_org_v); + erpRequestData.Add("vbillcode", wmsMaterialTransfer.bill_code); + erpRequestData.Add("vtrantypecode", "4I-01");//其他出库 先写死 + List> erpRequestDataDetails = new List>(); + erpRequestDataDetails.Add(new Dictionary() + { + ["cbodytranstypecode"] = "4I-01", + ["cbodywarehouseid"] = erpWarehouserelaHs.Find(x => x.wms_warehousecode == outwhcode)?.erp_warehouseid ?? "", + ["cmaterialoid"] = erpExtendFields.Find(x => x.table_id == wmsMaterialTransferd.material_id)?.cmaterialoid ?? "", + ["cmaterialvid"] = erpExtendFields.Find(x => x.table_id == wmsMaterialTransferd.material_id)?.cmaterialvid ?? "", + ["corpoid"] = erpOrg.corpoid, + ["corpvid"] = erpOrg.corpvid, + ["crowno"] = wmsMaterialTransferd.lineno, + ["csourcebillbid"] = wmsMaterialTransferd.erp_line_pk, + ["csourcebillhid"] = wmsMaterialTransfer.erp_pk, + ["cunitid"] = erpExtendFields.Find(x => x.table_id == unitId)?.cunitid ?? "", + ["cvendorid"] = "", + ["cvendorvid"] = "", + ["dbizdate"] = nowStr, + ["nnum"] = wmsCarryCodes.Sum(r => r.codeqty), + ["nshouldnum"] = wmsMaterialTransferd.qty, + ["pk_group"] = erpOrg.pk_group, + ["pk_org"] = erpOrg.pk_org, + ["pk_org_v"] = erpOrg.pk_org_v, + ["vbatchcode"] = wmsMaterialTransferd.code_batch, + }); + erpRequestData.Add("dtls", erpRequestDataDetails); + requestData.Add(erpRequestData); + + BasFactoryConfig config = await _db.Queryable().FirstAsync(x => x.enabled == 1 && x.key == FactoryConfigConst.BIPURL); + ThirdWebapiRecord thirdWebapiRecord = new ThirdWebapiRecord(); + thirdWebapiRecord.id = SnowflakeIdHelper.NextId(); + thirdWebapiRecord.third_name = WmsWareHouseConst.BIP; + thirdWebapiRecord.name = "其它出库"; + thirdWebapiRecord.method = "POST"; + // thirdWebapiRecord.url = config.value + "uapws/rest/generalout/save"; + thirdWebapiRecord.url = WmsWareHouseConst.BIP_DOMAIN + "uapws/rest/generalout/save"; + thirdWebapiRecord.request_data = JsonConvert.SerializeObject(requestData); + thirdWebapiRecord.create_time = DateTime.Now; + + await _db.Insertable(thirdWebapiRecord).ExecuteCommandAsync(); + Logger.LogInformation("【WmsMaterialTransferService ModifyAsync】同步其它出库单到erp成功"); + } } } catch(Exception ex)