diff --git a/zi-wms-inf/src/main/java/com/cim/idm/service/impl/ToSAPServiceImpl.java b/zi-wms-inf/src/main/java/com/cim/idm/service/impl/ToSAPServiceImpl.java index 10a5261..96def7b 100644 --- a/zi-wms-inf/src/main/java/com/cim/idm/service/impl/ToSAPServiceImpl.java +++ b/zi-wms-inf/src/main/java/com/cim/idm/service/impl/ToSAPServiceImpl.java @@ -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 materialPackingNameList = new ArrayList(); 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> maps = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, new HashMap()); @@ -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 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> queryBoxIdForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(queryBoxIdsql, hashBoxIdMap); for (Map map : queryBoxIdForList) { MaterialPackingKey materialPackingKey = new MaterialPackingKey(map.get("SITENAME").toString(), map.get("MATERIALPACKINGNAME").toString()); - materialPackingKeyList.add(materialPackingKey); + SetEventInfo setEventInfo = new SetEventInfo(); + Map 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 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); diff --git a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/MESToWMSServiceImpl.java b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/MESToWMSServiceImpl.java index e5bf7cb..8625c0a 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/MESToWMSServiceImpl.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/MESToWMSServiceImpl.java @@ -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 boxIdList = new ArrayList<>(); List 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 undoidMap = new HashMap<>(); undoidMap.put("undoid", undoId); result = AjaxResult.me().setSuccess(true).setErrorCode(200).setMessage("执行成功").setResultObj(undoidMap);