update SAP物料消耗/冲销接口,增加ZEILE、SMBLN、SMBLP字段用于冲销时匹配原库存

This commit is contained in:
18110972313 2025-05-22 16:37:49 +08:00
parent 2aa6a70e57
commit a814ce7612

View File

@ -83,6 +83,7 @@ public class MaterialPackingServiceServiceImpl implements IMaterialPackingServic
String lgort = MapUtils.getString(data, "LGORT"); // ERP库存地点
String budatMkpf = MapUtils.getString(data, "BUDAT_MKPF"); // 过账日期
String mblnr = MapUtils.getString(data, "MBLNR"); // 物料凭证号
String zeile = MapUtils.getString(data, "ZEILE"); // 物料凭证号行号
if (StringUtils.isEmpty(aufnr) || StringUtils.isEmpty(werks) || StringUtils.isEmpty(matnr)
|| StringUtils.isEmpty(bwart) || StringUtils.isEmpty(menge) || StringUtils.isEmpty(meins)
|| StringUtils.isEmpty(lgort) || StringUtils.isEmpty(budatMkpf) || StringUtils.isEmpty(mblnr)) {
@ -178,6 +179,8 @@ public class MaterialPackingServiceServiceImpl implements IMaterialPackingServic
}
MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPackingKeyList, eventInfo, setEventInfoList);
} else if ("262".equals(bwart)) {
String smbln = MapUtils.getString(data, "SMBLN"); // 原始物料凭证号
String smblp = MapUtils.getString(data, "SMBLP"); // 原始物料凭证号行号
//反向 BWART=262冲销根据MBLNR增加对应的数量
String selcetMaterialpackingSql = " SELECT\n" +
"\tSITENAME, MATERIALPACKINGNAME, STOCKSTATE, MATERIALQUANTITY \n" +
@ -197,7 +200,7 @@ public class MaterialPackingServiceServiceImpl implements IMaterialPackingServic
selcetMaterialpackingMap.put("ERPLOCATION", lgort);
selcetMaterialpackingMap.put("UNIT", meins);
selcetMaterialpackingMap.put("MATERIALSPECNAME", matnr);
selcetMaterialpackingMap.put("UNDOID", mblnr);
selcetMaterialpackingMap.put("UNDOID", smbln);
List<Map<String, Object>> queryMaterialpackingList = IDMFrameServiceProxy.getSqlTemplate().queryForList(selcetMaterialpackingSql, selcetMaterialpackingMap);
for (int i = 0; i < queryMaterialpackingList.size(); i++) {
Map<String, Object> hashMap2 = new HashMap<String,Object>();
@ -217,7 +220,7 @@ public class MaterialPackingServiceServiceImpl implements IMaterialPackingServic
materialQuantity = materialQuantityDecimal.toString();
hashMap2.put("materialQuantity", materialQuantity);
hashMap2.put("materialCreateQuantity", materialQuantity);
//hashMap2.put("unDoID", mblnr);
hashMap2.put("unDoID", mblnr);
setEventInfo.setUserColumns(hashMap2);
setEventInfoList.add(setEventInfo);
MaterialPackingKey materialPackingKey = new MaterialPackingKey(siteName, materialPackingName);
@ -225,7 +228,7 @@ public class MaterialPackingServiceServiceImpl implements IMaterialPackingServic
break;
}
if (queryMaterialpackingList.isEmpty()){
throw new Exception("冲销失败,没有匹配该物料凭证:" + mblnr + "的消耗记录无法冲销");
throw new Exception("冲销失败,没有匹配该物料凭证:" + smbln + "的消耗记录无法冲销");
}else {
MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPackingKeyList, eventInfo, setEventInfoList);
}