diff --git a/zi-wms-inf/src/main/java/com/cim/idm/service/impl/MESServiceImpl.java b/zi-wms-inf/src/main/java/com/cim/idm/service/impl/MESServiceImpl.java index 3f81290..dfcfc7e 100644 --- a/zi-wms-inf/src/main/java/com/cim/idm/service/impl/MESServiceImpl.java +++ b/zi-wms-inf/src/main/java/com/cim/idm/service/impl/MESServiceImpl.java @@ -237,7 +237,7 @@ public class MESServiceImpl implements MESService{ } public Boolean OutMaterialInfoSend_NEW2(String shipRequestName, String siteName, String receiveActNo, String wo, - String erpReceiveLocation,String erpReceiveFactory,List boxList) throws CustomException{ + String erpReceiveLocation,String erpReceiveFactory,List boxList,String user) throws CustomException{ //根据单据获取要发送MES的信息 String sql="SELECT * from(\r\n" + @@ -287,7 +287,7 @@ public class MESServiceImpl implements MESService{ // 写log ErpMessageLog erplog = new ErpMessageLog(); - erplog.setEventUser(""); + erplog.setEventUser(user); erplog.setServerName("WmsToMES"); erplog.setEventName("OutMaterialInfoSend"); erplog.setInterfaceTime(TimeStampUtil.getCurrentTime(TimeStampUtil.FORMAT_DEFAULT)); 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 cf9cfa7..a13ab6d 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 @@ -4660,6 +4660,7 @@ public class ToSAPServiceImpl { .append(" :AIMERPLOCATION AS UMLGO_RECIEVEERPLOCATION, ").append(SystemPropHelper.CR) .append(" MP.MATERIALQUANTITY , ").append(SystemPropHelper.CR) .append(" MP.UNIT, ").append(SystemPropHelper.CR) + .append(" MP.POCATEGORY, ").append(SystemPropHelper.CR) .append(" MP.PACKINGGRADE, ").append(SystemPropHelper.CR) .append(" MP.LOCATIONNAME AS NULL_RECIVELOCAITONNAME ").append(SystemPropHelper.CR) .append(" FROM ").append(SystemPropHelper.CR) @@ -4769,6 +4770,11 @@ public class ToSAPServiceImpl { // //ZLLITEM 自定义领料单行号 // item.put("ZLLITEM", mm.get("SHIPREQUESTDETAILNAME")); + // 如果是E库存的批次,需要设置SOBKZ为E + if("4".equals(mm.get("POCATEGORY"))) { + item.put("SOBKZ", "E"); + } + itemArray.add(item); } diff --git a/zi-wms-pda/src/main/java/com/cim/idm/controller/InvoiceController.java b/zi-wms-pda/src/main/java/com/cim/idm/controller/InvoiceController.java index 78e3dba..40497f0 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/controller/InvoiceController.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/controller/InvoiceController.java @@ -8,10 +8,7 @@ import com.cim.idm.framework.data.EventInfo; import com.cim.idm.model.*; import com.cim.idm.model.po.MaterialReceiveRequest; import com.cim.idm.service.QueryService; -import com.cim.idm.utils.AjaxResult; -import com.cim.idm.utils.EventInfoUtil; -import com.cim.idm.utils.PageResult; -import com.cim.idm.utils.ToUpperUtils; +import com.cim.idm.utils.*; import com.cim.idm.wmsextend.generic.errorHandler.CustomException; import com.cim.idm.wmspackage.materialpacking.MaterialPackingServiceProxy; import com.cim.idm.wmspackage.materialpacking.management.data.MaterialPackingKey; @@ -48,7 +45,7 @@ public class InvoiceController { @Autowired private QueryService queryService; - + CommonUtils untils=new CommonUtils(); /******************************************************************************************************************************/ /*****************************************调拨入库单********************************************************************************/ @@ -1834,18 +1831,8 @@ public class InvoiceController { List> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(ressSql, hashMap); // 如果是需要判定E库存的话,则进行判定 - String EStockSql = "SELECT ENUMVALUE FROM ENUMDEFVALUE WHERE ENUMNAME = 'EStockType'"; - List> EnumList = IDMFrameServiceProxy.getSqlTemplate().queryForList(EStockSql); - String enumvalue = EnumList.get(0).get("ENUMVALUE").toString(); - if("Y".equals(enumvalue)) { - for (int i = 0; i < queryForList.size(); i++) { + queryForList = untils.checkEStore(queryForList, shipRequestName); - String saleshiprequestname = queryForList.get(i).get("SALESHIPREQUESTNAME") == null ? "" : queryForList.get(i).get("SALESHIPREQUESTNAME").toString(); - if(!saleshiprequestname.isEmpty() && !saleshiprequestname.equals(shipRequestName)) { - queryForList.remove(i); - } - } - } return AjaxResult.me().setResultObj(queryForList); } diff --git a/zi-wms-pda/src/main/java/com/cim/idm/controller/PalletStockInAndOutController.java b/zi-wms-pda/src/main/java/com/cim/idm/controller/PalletStockInAndOutController.java index 87281d5..1fd15b3 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/controller/PalletStockInAndOutController.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/controller/PalletStockInAndOutController.java @@ -159,8 +159,11 @@ public class PalletStockInAndOutController { //List selectByKey = MaterialPackingServiceProxy.getMaterialPackingService().selectByKey(mpkeyList); // List detail = palletDto.getDetail(); - ProductIntoServiceImpl.fgStockInNew(mpkeyList, user, ReceiveRequestActNo, commitDate, opCode); - + + +// ProductIntoServiceImpl.fgStockInNew(mpkeyList, user, ReceiveRequestActNo, commitDate, opCode); + ProductIntoServiceImpl.fgStockInByManul(mpkeyList, user, ReceiveRequestActNo, commitDate, opCode); + // java.util.Calendar c = java.util.Calendar.getInstance(); // java.text.SimpleDateFormat f = new java.text.SimpleDateFormat( // "yyyyMMdd"); diff --git a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/InvoiceServiceImpl.java b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/InvoiceServiceImpl.java index 794cc7b..837d543 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/InvoiceServiceImpl.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/InvoiceServiceImpl.java @@ -767,6 +767,7 @@ public class InvoiceServiceImpl implements InvoiceService { bindMap.put("expiringDate", queryForList3.get(0).get("EXPIRINGDATE")); bindMap.put("ReceiveTime", queryForList3.get(0).get("RECEIVETIME")); bindMap.put("unit", queryForList3.get(0).get("UNIT")); + bindMap.put("CUSTOMNO", queryForList3.get(0).get("CUSTOMNO")); bindMap.put("ReceiveUser", makeEventInfo.getEventUser()); bindMap.put("ErpLocation", erpLocation); @@ -2101,6 +2102,10 @@ public class InvoiceServiceImpl implements InvoiceService { hashMap.put("SITENAME", "SDK"); hashMap.put("SHIPREQUESTNAME", shiprequestname); List> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, hashMap); + + //如果是需要判定E库存的话,则进行判定 + queryForList = untils.checkEStore(queryForList, shiprequestname); + return queryForList; }catch(Throwable e) { throw e; @@ -3258,8 +3263,15 @@ public class InvoiceServiceImpl implements InvoiceService { } //记录到拆分表 + String subsql = "SELECT RECEIVEREQUESTDETAILNAME FROM MATERIALPACKINGSUB WHERE RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME AND MATERIALPACKINGNAME = :MATERIALPACKINGNAME\n"; + Map subHashMap = new HashMap(); + subHashMap.put("RECEIVEREQUESTNAME", shipRequestName); + subHashMap.put("MATERIALPACKINGNAME", MATERIALPACKINGNAME); + List> ZKqueryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(subsql, subHashMap); + String preReceiverequestdetailname = ZKqueryForList.get(0).get("RECEIVEREQUESTDETAILNAME").toString(); + String shipRequestDetailName = qtyQueryForList.get(z).getShipRequestDetailName() == null ? "" : qtyQueryForList.get(z).getShipRequestDetailName().toString(); - untils.fahuoSplit(newPalletNo, shipRequestName, shipRequestDetailName, bigQty2); + untils.fahuoSplit(newPalletNo, shipRequestName, preReceiverequestdetailname, bigQty2); // 原条码扣减拆出的数量,用剩余数量更新原条码,条码不变,数量更新 SetEventInfo setEventInfo = new SetEventInfo(); @@ -3347,15 +3359,15 @@ public class InvoiceServiceImpl implements InvoiceService { hashMapZK.put("SHIPREQUESTNAME", shipRequestName); hashMapZK.put("SITENAME", siteName); List> ZKqueryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sqlZK.toString(), hashMapZK); - + List SUBList = new ArrayList<> (); for (int z = 0; z < ZKqueryForList.size(); z++) { String materialPackingName = ZKqueryForList.get(z).get("MATERIALPACKINGNAME").toString(); - materialPackingKeyList.add(materialPackingName); + SUBList.add(materialPackingName); MaterialPackingKey materialPackingKey = new MaterialPackingKey("SDK",materialPackingName); arrayList.add(materialPackingKey); } -// billCode = UnSourcedChangeLocation(arrayList,ERPRECEIVEFACTORY, -// ERPRECEIVELOCATION, "", eventUser, commitDate ); + billCode = UnSourcedChangeLocation(arrayList,ERPRECEIVEFACTORY, + ERPRECEIVELOCATION, "", eventUser, commitDate ); List mpKeyList = new ArrayList (); SetEventInfo setEventInfo = new SetEventInfo(); @@ -3373,7 +3385,7 @@ public class InvoiceServiceImpl implements InvoiceService { setEventInfo.setUserColumns(hashMapPack); MaterialPackingServiceProxy.getMaterialPackingService().setEvent(mpKeyList, makeEventInfo, setEventInfo); //抛送MES数据 - Boolean success = untils.sendMaterialInfoToMES_NEW2(shipRequestName, "", materialPackingKeyList,billCode,eventUser); + Boolean success = untils.sendMaterialInfoToMES_NEW2(shipRequestName, "", SUBList,billCode,eventUser); if (!success) { String undo = cancelShipInter(billCode, eventUser); diff --git a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/MaterialShipServiceImpl.java b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/MaterialShipServiceImpl.java index 48a33c5..5cdb720 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/MaterialShipServiceImpl.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/MaterialShipServiceImpl.java @@ -1030,6 +1030,7 @@ public class MaterialShipServiceImpl implements IMaterialShipService { public String TransferStockOut_NLCC(String shipRequestName, String siteName, String user,List boxList,String commitDate) throws Exception { String rcode; String undoId = ""; + String key01 = ""; String rmsg = null; String sql=" SELECT \r\n" + " count(*) AS ZROL, \r\n" + @@ -1140,15 +1141,21 @@ public class MaterialShipServiceImpl implements IMaterialShipService { org.json.JSONObject returnJsonObject = (org.json.JSONObject) receiveJsonObject.get("RETURN"); rcode = returnJsonObject.get("STATUS").toString(); rmsg = returnJsonObject.get("MSGTXT").toString(); + key01 = returnJsonObject.get("KEY01") == null ? "" : returnJsonObject.get("KEY01").toString(); // 返回单号,后面用单号冲销 if ("S".equals(rcode)) { - undoId = "S"; + if(key01.isEmpty()) { + undoId = "S"; + }else { + undoId = key01; + } + } //将log写到表里 ErpMessageLog erplog = new ErpMessageLog(); erplog.setEventUser(""); erplog.setServerName("WmsToErp"); - erplog.setEventName("调拨出库(NLCC)"); + erplog.setEventName("辅材出库-调拨出库(NLCC)"); erplog.setInterfaceTime(TimeStampUtil.getCurrentTime(TimeStampUtil.FORMAT_DEFAULT)); erplog.setMessageId(UUID.randomUUID().toString()); erplog.setSendMsg(sendData.toJSONString()); diff --git a/zi-wms-pda/src/main/java/com/cim/idm/utils/CommonUtils.java b/zi-wms-pda/src/main/java/com/cim/idm/utils/CommonUtils.java index 6ee906c..e71b92a 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/utils/CommonUtils.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/utils/CommonUtils.java @@ -245,6 +245,29 @@ public class CommonUtils { throw new GlobalException("物料为:"+materialSpecName+" 仓库为:"+erpLocation+" ,熟化对应不一致"); } } + + /** + * 检验是否是E库存,如果是E库存不显示,并把过滤的数据返回 + * @param queryForList + * @param shipRequestName + * @return + */ + public List> checkEStore(List> queryForList,String shipRequestName) + { + String EStockSql = "SELECT ENUMVALUE FROM ENUMDEFVALUE WHERE ENUMNAME = 'EStockType'"; + List> EnumList = IDMFrameServiceProxy.getSqlTemplate().queryForList(EStockSql); + String enumvalue = EnumList.get(0).get("ENUMVALUE").toString(); + if("Y".equals(enumvalue)) { + for (int i = 0; i < queryForList.size(); i++) { + + String saleshiprequestname = queryForList.get(i).get("SALESHIPREQUESTNAME") == null ? "" : queryForList.get(i).get("SALESHIPREQUESTNAME").toString(); + if(!saleshiprequestname.isEmpty() && !saleshiprequestname.equals(shipRequestName)) { + queryForList.remove(i); + } + } + } + return queryForList; + } /** * 检验是否是否有组织权限 @@ -809,7 +832,7 @@ public void SaveUnDoInfo_ForSap(List list, String undoid, EventInfo mak // 调用MESServiceImpl的OutMaterialInfoSend_NEW方法,发送物料信息到MES系统 success = mesService.OutMaterialInfoSend_NEW2(invoiceNo, "SDK", receiveActNo, "", sr.get(0).get("ERPRECEIVELOCATION")==null?"":sr.get(0).get("ERPRECEIVELOCATION").toString() - ,sr.get(0).get("ERPRECEIVEFACTORY")==null?"":sr.get(0).get("ERPRECEIVEFACTORY").toString(),boxList ); + ,sr.get(0).get("ERPRECEIVEFACTORY")==null?"":sr.get(0).get("ERPRECEIVEFACTORY").toString(),boxList,user ); } } catch (CustomException e) {