This commit is contained in:
2024-09-20 11:43:06 +08:00
2 changed files with 92 additions and 0 deletions

View File

@@ -613,6 +613,8 @@ namespace Tnb.WarehouseMgr
thirdWebapiRecord2.request_data = JsonConvert.SerializeObject(requestData2);
thirdWebapiRecord2.create_time = DateTime.Now;
thirdWebapiRecord2.remark = $"原材料转库单wms_material_transfer:{wmsMaterialTransfer.bill_code}";
await _db.Insertable(thirdWebapiRecord2).ExecuteCommandAsync();
}
break;
}

View File

@@ -1069,7 +1069,97 @@ namespace Tnb.WarehouseMgr
{
Logger.LogInformation("【WmsMaterialTransferService ModifyAsync】同步其它入库单到erp...");
List<WmsMaterialTransferD> dList = await _db.Queryable<WmsMaterialTransferD>().Where(x => x.bill_id == wmsMaterialTransferd.bill_id).OrderBy(x => x.id).ToListAsync();
DictionaryDataEntity unitData = await _db.Queryable<DictionaryTypeEntity>()
.LeftJoin<DictionaryDataEntity>((x, y) => x.Id == y.DictionaryTypeId)
.Where((x, y) => x.EnCode == DictConst.MeasurementUnit && (y.EnCode == wmsMaterialTransferd.unit_id || y.Id== wmsMaterialTransferd.unit_id))
.Select((x, y) => y)
.FirstAsync();
string unitId = unitData?.Id ?? "";
List<string> ids = new List<string>();
// 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(wmsCarryCodes[0].auxprop_gys);
ids.Add(unitId);
string userId = wmsMaterialTransfer.create_id ?? WmsWareHouseConst.AdministratorUserId;
ids.Add(userId);
List<ErpExtendField> erpExtendFields = await _db.Queryable<ErpExtendField>().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<WmsErpWarehouserelaH> erpWarehouserelaHs = await _db.Queryable<WmsErpWarehouserelaH>().Where(x => x.id != null).ToListAsync();
BasWarehouse outWarehouse = await _db.Queryable<BasWarehouse>().SingleAsync(x => x.id == wmsMaterialTransfer.warehouse_outstock);
BasWarehouse inWarehouse = await _db.Queryable<BasWarehouse>().SingleAsync(x => x.id == wmsMaterialTransfer.warehouse_instock);
string inwhcode = inWarehouse?.whcode ?? "";
string outwhcode = outWarehouse?.whcode ?? "";
string nowStr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
List<Dictionary<string, object>> requestData2 = new List<Dictionary<string, object>>();
Dictionary<string, object> erpRequestData2 = new Dictionary<string, object>();
erpRequestData2.Add("approver", erpCreateId);
erpRequestData2.Add("billmaker", erpCreateId);
erpRequestData2.Add("corpoid", erpOrg.corpoid);
erpRequestData2.Add("corpvid", erpOrg.corpvid);
erpRequestData2.Add("creationtime", nowStr);
erpRequestData2.Add("creator", erpCreateId);
erpRequestData2.Add("ctrantypeid", "0001H11000000000D310");
// erpRequestData2.Add("cwarehouseid",erpExtendFields.Find(x=>x.table_id==wmsMaterialTransfer.warehouse_instock)?.cotherwhid ?? "");
// erpRequestData2.Add("cwarehouseid", wmsMaterialTransfer.erp_warehouse_instock);
erpRequestData2.Add("cwarehouseid", erpWarehouserelaHs.Find(x => x.erp_warehousecode == wmsMaterialTransfer.erp_warehouse_instock)?.erp_warehouseid ?? "");
erpRequestData2.Add("cwhsmanagerid", "");
erpRequestData2.Add("dbilldate", nowStr);
erpRequestData2.Add("dmakedate", nowStr);
erpRequestData2.Add("ntotalnum", wmsMaterialTransferd.qty);
erpRequestData2.Add("pk_group", erpOrg.pk_group);
erpRequestData2.Add("pk_org", erpOrg.pk_org);
erpRequestData2.Add("pk_org_v", erpOrg.pk_org_v);
erpRequestData2.Add("vbillcode", wmsMaterialTransfer.bill_code);
erpRequestData2.Add("vtrantypecode", "4A-02");
List<Dictionary<string, object>> erpRequestDataDetails2 = new List<Dictionary<string, object>>();
erpRequestDataDetails2.Add(new Dictionary<string, object>()
{
["cbodytranstypecode"] = "4A-02",
["cbodywarehouseid"] = erpWarehouserelaHs.Find(x => x.erp_warehousecode == wmsMaterialTransfer.erp_warehouse_instock)?.erp_warehouseid ?? "",
//["cgeneralbid"] = erpWarehouserelaHs.Find(x => x.wms_warehousecode == whcode)?.erp_warehouseid ?? "",
["cgeneralbid"] = null,
["cgeneralhid"] = null,
["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"] = (wmsMaterialTransferDs.FindIndex(x => x.id == item.id) + 1) * 10,
["crowno"] = wmsMaterialTransferd.lineno,
["cunitid"] = erpExtendFields.Find(x => x.table_id == unitId)?.cunitid ?? "",
["cvendorid"] = erpExtendFields.Find(x => x.table_id == wmsCarryCodes[0]?.auxprop_gys)?.supplier_id ?? "",
["cvendorvid"] = erpExtendFields.Find(x => x.table_id == wmsCarryCodes[0]?.auxprop_gys)?.supplier_vid ?? "",
["dbizdate"] = nowStr,
["nnum"] = wmsMaterialTransferd.qty,
["pk_group"] = erpOrg.pk_group,
["pk_org"] = erpOrg.pk_org,
["pk_org_v"] = erpOrg.pk_org_v,
["csourcebillbid"] = wmsMaterialTransferd.erp_line_pk,
["csourcebillhid"] = wmsMaterialTransfer.erp_pk,
["vbatchcode"] = wmsMaterialTransferd.code_batch,
["vfree1"] = wmsCarryCodes[0].auxprop_xph,
});
erpRequestData2.Add("dtls", erpRequestDataDetails2);
requestData2.Add(erpRequestData2);
ThirdWebapiRecord thirdWebapiRecord2 = new ThirdWebapiRecord();
thirdWebapiRecord2.id = SnowflakeIdHelper.NextId();
thirdWebapiRecord2.third_name = WmsWareHouseConst.BIP;
thirdWebapiRecord2.name = "其它入库";
thirdWebapiRecord2.method = "POST";
// thirdWebapiRecord.url = config.value + "uapws/rest/generalin/save";
thirdWebapiRecord2.url = WmsWareHouseConst.BIP_DOMAIN + "uapws/rest/generalin/save";
thirdWebapiRecord2.request_data = JsonConvert.SerializeObject(requestData2);
thirdWebapiRecord2.create_time = DateTime.Now;
thirdWebapiRecord2.remark = $"原材料转库单wms_material_transfer:{wmsMaterialTransfer.bill_code}";
await _db.Insertable(thirdWebapiRecord2).ExecuteCommandAsync();
}
// 其它出库
else