update 物料消息SAP过账成功后,更新BOX的凭证

This commit is contained in:
18110972313 2025-05-22 15:30:21 +08:00
parent 939b3aed5b
commit 2aa6a70e57
2 changed files with 33 additions and 19 deletions

View File

@ -2716,12 +2716,12 @@ public class ToSAPServiceImpl {
}
//MES上报工单消耗数据-261工单投料
public String mesMaterialConsume( String user, String payMentDate) throws Exception {
public String mesMaterialConsume( String user, String payMentDate, EventInfo eventInfo) throws Exception {
String rcode;
String undoId = "";
String rmsg = null;
List<String> materialPackingNameList = new ArrayList<String>();
try {
JSONObject sendData = new JSONObject(true);
@ -2763,7 +2763,7 @@ public class ToSAPServiceImpl {
body.put("USNAM", user);
//查询临时表TEMP_MESCONSUME从里面取数据
//String sql = "SELECT T.MATERIALSPECNAME, T.ERPFACTORY, T.ERPLOCATION, T.QTY, T.UNIT,T.WO,T.SHIPREQUESTNAME,M.RESERVEDPROJECTNUMB FROM TEMP_MESCONSUME T LEFT JOIN MATERIALSHIPREQUESTDETAIL M ON M.SHIPREQUESTNAME = T.SHIPREQUESTNAME AND M.MATERIALSPECNAME = T.MATERIALSPECNAME";
String sql = "SELECT T.MATERIALSPECNAME, T.ERPFACTORY, T.ERPLOCATION, T.QTY, T.UNIT,T.WO,T.SHIPREQUESTNAME,M.SHIPREQUESTDETAILNAME FROM TEMP_MESCONSUME T LEFT JOIN MATERIALSHIPREQUESTDETAIL M ON M.SHIPREQUESTNAME = T.SHIPREQUESTNAME AND M.MATERIALSPECNAME = T.MATERIALSPECNAME";
String sql = "SELECT T.MATERIALPACKINGNAME, T.MATERIALSPECNAME, T.ERPFACTORY, T.ERPLOCATION, T.QTY, T.UNIT,T.WO,T.SHIPREQUESTNAME,M.SHIPREQUESTDETAILNAME FROM TEMP_MESCONSUME T LEFT JOIN MATERIALSHIPREQUESTDETAIL M ON M.SHIPREQUESTNAME = T.SHIPREQUESTNAME AND M.MATERIALSPECNAME = T.MATERIALSPECNAME";
List<Map<String, Object>> maps = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, new HashMap<String,Object>());
@ -2800,7 +2800,10 @@ public class ToSAPServiceImpl {
item.put("ZLLITEM", maps.get(i).get("SHIPREQUESTDETAILNAME"));
//AUFNR 订单号
item.put("AUFNR", maps.get(i).get("WO"));
String materialPackingName = maps.get(i).get("MATERIALPACKINGNAME") == null ? "" : maps.get(i).get("MATERIALPACKINGNAME").toString();
if (StringUtils.isNotEmpty(materialPackingName)){
materialPackingNameList.add(materialPackingName);
}
}
itemArray.add(item);
@ -2816,6 +2819,18 @@ public class ToSAPServiceImpl {
if ("S".equals(rcode)) {
undoId = returnJsonObject.get("MBLNR").toString()+"_"+returnJsonObject.get("MJAHR").toString();//将物料凭证号与凭证年度拼在一起
if (materialPackingNameList.size() > 0 && StringUtils.isNotEmpty(undoId)){
for (String materialPackingName : materialPackingNameList) {
MaterialPackingKey materialPackingKey = new MaterialPackingKey("SDK", materialPackingName);
SetEventInfo setEventInfo = new SetEventInfo();
Map<String, Object> updateMap = new HashMap<>();
updateMap.put("unDoID", undoId);
setEventInfo.setUserColumns(updateMap);
MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPackingKey, eventInfo, setEventInfo);
//插入凭证信息
SaveUnDoInfo(materialPackingKey.getMaterialPackingName(),payMentDate);
}
}
}
//将log写到表里
ErpMessageLog erplog = new ErpMessageLog();
@ -6740,21 +6755,20 @@ public class ToSAPServiceImpl {
List<Map<String, Object>> queryBoxIdForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(queryBoxIdsql, hashBoxIdMap);
for (Map<String, Object> map : queryBoxIdForList) {
MaterialPackingKey materialPackingKey = new MaterialPackingKey(map.get("SITENAME").toString(), map.get("MATERIALPACKINGNAME").toString());
materialPackingKeyList.add(materialPackingKey);
SetEventInfo setEventInfo = new SetEventInfo();
Map<String, Object> updateMap = new HashMap<>();
updateMap.put("unDoID", undoId);
updateMap.put("packingState","Released");
updateMap.put("stockState","Stocked");
updateMap.put("messageId",opCode);
updateMap.put("shipRequestName", "");
updateMap.put("shipRequestDetailName", "");
setEventInfo.setUserColumns(updateMap);
MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPackingKey, eventInfo, setEventInfo);
//插入凭证信息
SaveUnDoInfo(materialPackingKey.getMaterialPackingName(),commitDate);
}
SetEventInfo setEventInfo = new SetEventInfo();
Map<String, Object> updateMap = new HashMap<>();
updateMap.put("unDoID", undoId);
updateMap.put("packingState","Released");
updateMap.put("stockState","Stocked");
updateMap.put("messageId",opCode);
updateMap.put("shipRequestName", "");
updateMap.put("shipRequestDetailName", "");
setEventInfo.setUserColumns(updateMap);
MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPackingKeyList, eventInfo, setEventInfo);
}
//插入凭证信息
SaveUnDoInfo(deliveryName,commitDate);
} catch (Exception e) {
log.info(e.getMessage(), e);
throw new RuntimeException(exceptionMsg + rmsg);

View File

@ -67,7 +67,7 @@ public class MESToWMSServiceImpl implements MESToWMSService {
loginfo.setSendMsg(in.toJSONString());
loginfo.setEventName("materialConsume_Request");
String siteName = System.getProperty("company", "SDK");
EventInfo eventInfo = new com.cim.idm.wmsextend.generic.util.EventInfoUtil().makeEventInfo("MES消耗UNDOID", "MES", "MES消耗UNDOID", "", "");
List<String> boxIdList = new ArrayList<>();
List<String> qtyList = new ArrayList<>();
@ -146,7 +146,7 @@ public class MESToWMSServiceImpl implements MESToWMSService {
}
// 将工单的物料消耗数据传给SAP
String undoId = toSAPService.mesMaterialConsume("MES",payMentDate);
String undoId = toSAPService.mesMaterialConsume("MES",payMentDate, eventInfo);
Map<String, Object> undoidMap = new HashMap<>();
undoidMap.put("undoid", undoId);
result = AjaxResult.me().setSuccess(true).setErrorCode(200).setMessage("执行成功").setResultObj(undoidMap);