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工单投料 //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 rcode;
String undoId = ""; String undoId = "";
String rmsg = null; String rmsg = null;
List<String> materialPackingNameList = new ArrayList<String>();
try { try {
JSONObject sendData = new JSONObject(true); JSONObject sendData = new JSONObject(true);
@ -2763,7 +2763,7 @@ public class ToSAPServiceImpl {
body.put("USNAM", user); body.put("USNAM", user);
//查询临时表TEMP_MESCONSUME从里面取数据 //查询临时表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.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>()); 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")); item.put("ZLLITEM", maps.get(i).get("SHIPREQUESTDETAILNAME"));
//AUFNR 订单号 //AUFNR 订单号
item.put("AUFNR", maps.get(i).get("WO")); 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); itemArray.add(item);
@ -2816,6 +2819,18 @@ public class ToSAPServiceImpl {
if ("S".equals(rcode)) { if ("S".equals(rcode)) {
undoId = returnJsonObject.get("MBLNR").toString()+"_"+returnJsonObject.get("MJAHR").toString();//将物料凭证号与凭证年度拼在一起 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写到表里 //将log写到表里
ErpMessageLog erplog = new ErpMessageLog(); ErpMessageLog erplog = new ErpMessageLog();
@ -6740,21 +6755,20 @@ public class ToSAPServiceImpl {
List<Map<String, Object>> queryBoxIdForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(queryBoxIdsql, hashBoxIdMap); List<Map<String, Object>> queryBoxIdForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(queryBoxIdsql, hashBoxIdMap);
for (Map<String, Object> map : queryBoxIdForList) { for (Map<String, Object> map : queryBoxIdForList) {
MaterialPackingKey materialPackingKey = new MaterialPackingKey(map.get("SITENAME").toString(), map.get("MATERIALPACKINGNAME").toString()); 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) { } catch (Exception e) {
log.info(e.getMessage(), e); log.info(e.getMessage(), e);
throw new RuntimeException(exceptionMsg + rmsg); throw new RuntimeException(exceptionMsg + rmsg);

View File

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