From b5d1c27ae5952d22bbee2e74b824470a3e55dc6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=B8=85?= <3115919733@qq.com> Date: Mon, 26 May 2025 09:05:43 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=85=A5=E5=BA=93=E5=BA=93=E5=AD=98?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E6=94=B9=E4=B8=BA=E5=9C=A8=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Impl/NoInvoiceManagerServiceImpl.java | 2 +- .../java/com/cim/idm/utils/CommonUtils.java | 91 +++++++++++++++++++ 2 files changed, 92 insertions(+), 1 deletion(-) diff --git a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/NoInvoiceManagerServiceImpl.java b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/NoInvoiceManagerServiceImpl.java index e58ba5d..a6127a0 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/NoInvoiceManagerServiceImpl.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/NoInvoiceManagerServiceImpl.java @@ -91,7 +91,7 @@ public class NoInvoiceManagerServiceImpl { commitDate,opCode,costName,lifnr); SDKMaterialPackingServiceImpl.updateUndoIdInByList(list, undoid, makeEventInfo,opCode); //更新库存状态 - commonUtils.SaveUnDoInfo_ForSap(strings,undoid,makeEventInfo); + commonUtils.SaveUnDoInfo_ForSap_qtr(strings,undoid,makeEventInfo); } 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 2642417..a5c7f32 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 @@ -685,6 +685,97 @@ public void SaveUnDoInfo_ForSap(List list, String undoid, EventInfo mak } } + /** + * 保存undo信息 + * 该方法用于更新和插入与物料包装相关的undo信息,根据提供的参数执行不同的数据库操作 + * + * @param list 包含物料包装名称的列表 + * @param undoid undo的标识符,用于区分不同的undo操作 + * @param makeEventInfo 包含事件信息的对象,用于更新物料包装的最后事件信息 + */ + public void SaveUnDoInfo_ForSap_qtr(List list, String undoid, EventInfo makeEventInfo) { + + // 更新事件名 + // 此SQL语句用于更新物料包装的最后事件名称、评论和时间 + String sqlu="UPDATE MATERIALPACKING m SET m.LASTEVENTNAME=:LASTEVENTNAME,m.LASTEVENTCOMMENT =:LASTEVENTCOMMENT,m.LASTEVENTTIME =SYSDATE \r\n" + + " WHERE m.SITENAME =:SITENAME AND m.MATERIALPACKINGNAME in (:BOXLIST)"; + Map bpu = new HashMap (); + bpu.put("LASTEVENTNAME", makeEventInfo.getEventName()); + bpu.put("LASTEVENTCOMMENT", makeEventInfo.getEventComment()); + bpu.put("SITENAME", "SDK"); + bpu.put("BOXLIST", list); + IDMFrameServiceProxy.getSqlTemplate().update(sqlu, bpu); + + // 销售交货单不返回凭证 + // 如果undoid不等于"S",则执行更新和插入操作,以记录undo信息 + if(!StringUtils.equals("S", undoid)) + { + // 更新undo信息 + // 此SQL语句用于更新物料包装的undoid,仅当库存状态为'Stocked'时 + String updateUndoInfo = "UPDATE MATERIALPACKING T SET T.unDoID = :unDoID WHERE T.MATERIALPACKINGNAME in (:MATERIALPACKINGNAME) " + + " AND STOCKSTATE = 'Stocked'"; + + Map map = new HashMap (); + map.put("MATERIALPACKINGNAME", list); + map.put("unDoID", undoid); + IDMFrameServiceProxy.getSqlTemplate().update(updateUndoInfo, map); + + + // 插入undo物料包装信息 + // 此SQL语句用于插入新的记录到BS_MATERIALPACKINGUNDOINFO表中,记录详细的undo信息 + String insertUnDOMaterialPackingInfo = "insert into BS_MATERIALPACKINGUNDOINFO (unDoID,preundoid,UNDODETAILNAME,undoidstate,UNDOIDDATE,PREERPLOCATION,PRELOCATIONNAME," + + "SITENAME, MATERIALPACKINGNAME, MATERIALPACKINGTYPE, CONTENTMATERIALTYPE," + + "MATERIALTYPE, MATERIALSPECNAME, SUPERMATERIALPACKINGNAME, PACKINGGRADE, SUBPACKINGQUANTITY, MATERIALCREATEQUANTITY," + + "MATERIALQUANTITY, PACKINGSTATE, OLDPACKINGSTATE, STOCKSTATE, OLDSTOCKSTATE, HOLDSTATE, AREANAME, LOCATIONNAME," + + "DURABLENAME, MATERIALPROCESSGROUPNAME, LASTEVENTNAME, LASTEVENTTIMEKEY, LASTEVENTTIME, LASTEVENTUSER," + + "LASTEVENTCOMMENT, CREATETIME, CREATEUSER, RECEIVEREQUESTNAME, RECEIVEREQUESTDETAILNAME," + + "MAKEDATE, RECEIVEACTNO, STOCKINTYPE, RECEIVETIME, RECEIVEUSER, SHIPREQUESTNAME, SHIPREQUESTDETAILNAME, SHIPTIME," + + "SHIPUSER, REASONCODETYPE, OQARESULTSTATE, OQARESULT, ERPLOCATION, ERPFACTORY, REASONCODE, CHARGE, SUPPLIERNAME,ETCSTATE,ERPEVENTTIME,NPFLAG)" + + "select unDoID,'' as preundoid,UNDODETAILNAME,'Created' as undoidstate,:UNDOIDDATE AS UNDOIDDATE, PREERPLOCATION,PRELOCATIONNAME," + + "SITENAME, MATERIALPACKINGNAME, MATERIALPACKINGTYPE, CONTENTMATERIALTYPE," + + "MATERIALTYPE, MATERIALSPECNAME, SUPERMATERIALPACKINGNAME, PACKINGGRADE, SUBPACKINGQUANTITY, MATERIALCREATEQUANTITY," + + "DECODE(MATERIALQUANTITY2,0,MATERIALQUANTITY,MATERIALQUANTITY2) MATERIALQUANTITY, PACKINGSTATE, OLDPACKINGSTATE, STOCKSTATE, OLDSTOCKSTATE, HOLDSTATE, AREANAME, LOCATIONNAME," + + "DURABLENAME, MATERIALPROCESSGROUPNAME, LASTEVENTNAME, LASTEVENTTIMEKEY, LASTEVENTTIME, LASTEVENTUSER," + + "LASTEVENTCOMMENT, CREATETIME, CREATEUSER, RECEIVEREQUESTNAME, RECEIVEREQUESTDETAILNAME," + + "MAKEDATE, RECEIVEACTNO, STOCKINTYPE, RECEIVETIME, RECEIVEUSER, SHIPREQUESTNAME, SHIPREQUESTDETAILNAME, SHIPTIME," + + "SHIPUSER, REASONCODETYPE, OQARESULTSTATE, OQARESULT, ERPLOCATION, ERPFACTORY, REASONCODE, CHARGE, SUPPLIERNAME,ETCSTATE,ERPEVENTTIME,NPFLAG" + + " from MATERIALPACKING " + + " where unDoID=:UNDOID"; + + Map bindMap_insert = new HashMap(); + bindMap_insert.put("UNDOIDDATE", ""); + bindMap_insert.put("UNDOID", undoid); + IDMFrameServiceProxy.getSqlTemplate() + .update(insertUnDOMaterialPackingInfo, bindMap_insert); + } + // 更新Box状态 + // 根据物料数量和包装数量,更新物料包装的状态和相关属性 + for (String s : list) { + MaterialPackingKey materialPackingKey = new MaterialPackingKey("SDK",s); + com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking selectByKey = MaterialPackingServiceProxy.getMaterialPackingService().selectByKey(materialPackingKey); + double materialQuantity = selectByKey.getMaterialQuantity(); + double materialQuantity2 = selectByKey.getMaterialQuantity2(); + BigDecimal fmaterialQuantity = new BigDecimal(materialQuantity); + BigDecimal fmaterialQuantity2 = new BigDecimal(materialQuantity2); + if (fmaterialQuantity.compareTo(fmaterialQuantity2) > 0 && fmaterialQuantity2.compareTo(BigDecimal.ZERO) != 0) { + Map hashMap = new HashMap (); + hashMap.put("materialQuantity", fmaterialQuantity.subtract(fmaterialQuantity2)); + hashMap.put("materialQuantity2", 0); + hashMap.put("shipRequestName", ""); + hashMap.put("shipRequestDetailName", ""); + SetEventInfo setEventInfo = new SetEventInfo(); + setEventInfo.setUserColumns(hashMap); + MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPackingKey, makeEventInfo, setEventInfo); + } else { + Map hashMap = new HashMap (); + hashMap.put("stockState", "Stocked"); + SetEventInfo setEventInfo = new SetEventInfo(); + setEventInfo.setUserColumns(hashMap); + MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPackingKey, makeEventInfo, setEventInfo); + } + } + + } public void SaveSplitUnDoInfo_ForSap(List list, String undoid, EventInfo makeEventInfo) { From 8290916c8dab145b70ae3ffcdb1f5ab117ee949f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=B8=85?= <3115919733@qq.com> Date: Mon, 26 May 2025 09:33:39 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E8=BD=AC=E5=B7=A5=E5=8D=95=E5=87=BA?= =?UTF-8?q?=E5=BA=93=E6=B7=BB=E5=8A=A0=E5=86=B2=E9=94=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cim/idm/service/Impl/MESToWMSServiceImpl.java | 15 +++++++++++++-- .../java/com/cim/idm/service/MESToWMSService.java | 2 +- 2 files changed, 14 insertions(+), 3 deletions(-) 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 1448e87..17498ba 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 @@ -53,6 +53,8 @@ public class MESToWMSServiceImpl implements MESToWMSService { @Autowired private MesToWmsDao mesToWmsDao; + @Autowired + private InvoiceServiceImpl invoiceService; @Override @Transactional @@ -666,7 +668,7 @@ public class MESToWMSServiceImpl implements MESToWMSService { */ @Override @Transactional - public AjaxResult workOrder_Request(JSONArray in) { + public AjaxResult workOrder_Request(JSONArray in) throws Exception { //转工单,按照批次先传MDC消耗请求SAP出库,再生成入库信息传SAP入库 log.info("Received work order request: {}", in.toJSONString()); //转换前工单formOrder,转换后工单toOrder,料号 materialSpecname,批次 charge @@ -707,7 +709,7 @@ public class MESToWMSServiceImpl implements MESToWMSService { * 出库方法 */ @Transactional - public String materialOutByMES(List materialSpecnameList, List chargeList) { + public String materialOutByMES(List materialSpecnameList, List chargeList) throws Exception { String result = ""; //调用Mybatis方法查询当前可出库存 List materialPackingList = mesToWmsDao.getMaterialPackingList(materialSpecnameList, chargeList); @@ -716,6 +718,15 @@ public class MESToWMSServiceImpl implements MESToWMSService { materialPackingList, "MES" ); + if (undoid != null) { + // 冲销 + String undo = invoiceService.cancelShipInter(undoid, "MES"); + if (undo == null || undo.isEmpty()) { + throw new GlobalException("下发mes失败后冲销失败!"); + } else { + throw new GlobalException("发送到mes失败!"); + } + } //更新MDC表状态 mesToWmsDao.updateMDCFlag(materialSpecnameList, chargeList, "T"); return undoid; diff --git a/zi-wms-pda/src/main/java/com/cim/idm/service/MESToWMSService.java b/zi-wms-pda/src/main/java/com/cim/idm/service/MESToWMSService.java index bbd030a..fbccc71 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/service/MESToWMSService.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/service/MESToWMSService.java @@ -40,7 +40,7 @@ public interface MESToWMSService { * @param in * @return */ - AjaxResult workOrder_Request(JSONArray in); + AjaxResult workOrder_Request(JSONArray in) throws Exception; @Transactional AjaxResult materialConsumeRequestSapcprkUndo(String undoId, String user, String payMentDate) throws Exception; From 71b82def928777d376a8191f35fab348310c4ebb Mon Sep 17 00:00:00 2001 From: 18110972313 <780768673@qq.com> Date: Mon, 26 May 2025 10:36:27 +0800 Subject: [PATCH 3/4] =?UTF-8?q?update=20=E6=96=B0=E6=96=99=E5=8F=B7?= =?UTF-8?q?=E6=A0=87=E7=AD=BE=E6=89=93=E5=8D=B0=E9=A1=B5=E9=9D=A2=EF=BC=8C?= =?UTF-8?q?=E7=94=B1MQ=E6=94=B9=E4=B8=BA=E7=9B=B4=E6=8E=A5=E8=B0=83?= =?UTF-8?q?=E6=89=93=E5=8D=B0=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zi-wms-environment/config/db/oracle.properties | 8 ++++---- .../com/cim/idm/controller/StorageController.java | 13 ++++++++++--- .../cim/idm/service/Impl/BSLabelServiceImpl.java | 11 +++++++---- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/zi-wms-environment/config/db/oracle.properties b/zi-wms-environment/config/db/oracle.properties index 4772909..552d6fc 100644 --- a/zi-wms-environment/config/db/oracle.properties +++ b/zi-wms-environment/config/db/oracle.properties @@ -22,7 +22,7 @@ db.Prd.url=jdbc:oracle:thin:@192.168.1.73:1526/test db.Prd.username=ziwms_sap_test db.Prd.password=adm2024 #MQ -mq.url=192.168.1.73:5672 -mq.username=zimes -mq.password=adm2024 -mq.virtual-host=/zimes \ No newline at end of file +#mq.url=192.168.1.73:5672 +#mq.username=zimes +#mq.password=adm2024 +#mq.virtual-host=/zimes \ No newline at end of file diff --git a/zi-wms-pda/src/main/java/com/cim/idm/controller/StorageController.java b/zi-wms-pda/src/main/java/com/cim/idm/controller/StorageController.java index 6c942d7..19b89e2 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/controller/StorageController.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/controller/StorageController.java @@ -94,12 +94,12 @@ public class StorageController { public AjaxResult getLocationName2(@RequestBody JSONObject in ) throws Exception { StorageSpec storageSpec = JSON.toJavaObject(in, StorageSpec.class); - //String erplocation = storageSpec.getErpLocation(); - String erpLocation = storageSpec.getErpLocation(); + String erplocation = storageSpec.getErpLocation(); + //String erpLocation = storageSpec.getErpLocation(); String areaName = ""; // String commitDate = storageSpec.getCommitDate(); //判断条码是否存在且状态是在库 - //String sql = "SELECT m.STORAGENAME ,m.DESCRIPTION || m.STORAGENAME DESCRIPTION FROM STORAGESPEC m WHERE m.ERPLOCATION = :ERPLOCATION ORDER BY STORAGENAME "; + String sql = "SELECT m.STORAGENAME ,m.DESCRIPTION || m.STORAGENAME DESCRIPTION FROM STORAGESPEC m WHERE m.ERPLOCATION = :ERPLOCATION ORDER BY STORAGENAME "; /*String sql = " SELECT\n" + "\tm.STORAGENAME,\n" + "\tm.STORAGENAME || ' ' || m.DESCRIPTION DESCRIPTION \n" + @@ -110,6 +110,7 @@ public class StorageController { "\tAND m.AREANAME =:AREANAME\n" + "ORDER BY\n" + "\tSTORAGENAME ";*/ + /* String sql = " SELECT * FROM ( " + " SELECT\n" + "\tm.STORAGENAME,\n" + @@ -122,6 +123,8 @@ public class StorageController { "ORDER BY\n" + "\tSTORAGENAME" + " ) WHERE ROWNUM <= 50 "; + */ + /* switch (erpLocation) { case "1010": case "1020": @@ -142,9 +145,13 @@ public class StorageController { default : break; } + */ Map bindMap = new HashMap(); + bindMap.put("ERPLOCATION",erplocation); + /* bindMap.put("SITENAME","SDK"); bindMap.put("AREANAME",areaName); + */ List> list = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, bindMap); if(Objects.isNull(list) || list.isEmpty()) { diff --git a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/BSLabelServiceImpl.java b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/BSLabelServiceImpl.java index ff07498..989d9e3 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/BSLabelServiceImpl.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/BSLabelServiceImpl.java @@ -1831,7 +1831,7 @@ public class BSLabelServiceImpl extends CommonServiceDAO im String printer = printName == null || "".equals(printName) ? getDefaultPrinter() : printName;// "\\\\ZXYNB10810864P.boe.com.cn\\TSC MA3400P"; String server = "LabelRequestURL"; String requestUrl = getRequestUrlByServer(server); - requestUrl = "0980b551-20a2-49ba-a1e8-950331ff9827"; +// requestUrl = "0980b551-20a2-49ba-a1e8-950331ff9827"; List params = getLabelAssignParameter("testLabel002"); String labelUrl = ""; String labelPath = getLabelAbsolutePath(labelAddress); @@ -1918,7 +1918,8 @@ public class BSLabelServiceImpl extends CommonServiceDAO im labelPrintPET.setStartTime(""); labelPrintPET.setEndTime(""); log.info("***************************PrintLabel Assign params is : " + params.toString()); - labelUrl = labelPrintRabbitMQ(labelPrintPET, requestUrl, pr, params); + //labelUrl = labelPrintRabbitMQ(labelPrintPET, requestUrl, pr, params); + labelUrl = labelPrint(labelPrintPET, requestUrl, pr, params); log.info("***************************PrintLabel Use URL is : " + requestUrl); }else { throw new CustomException(CustomExceptionCode.DATA_NOT_FOUND,"Undefined Execute Type : "); @@ -1994,7 +1995,8 @@ public class BSLabelServiceImpl extends CommonServiceDAO im obj.setSupplierno(queryForListProduct.get(0).get("supplierNo") != null ? queryForListProduct.get(0).get("supplierNo").toString() : ""); obj.setDescription(queryForListProduct.get(0).get("description") != null ? queryForListProduct.get(0).get("description").toString() : ""); log.info("***************************PrintLabel Assign params is : " + params.toString()); - labelUrl = labelPrintRabbitMQ(obj, requestUrl, pr, params); + //labelUrl = labelPrintRabbitMQ(obj, requestUrl, pr, params); + labelUrl = labelPrint(obj, requestUrl, pr, params); log.info("***************************PrintLabel Use URL is : " + requestUrl); }else if ("胶水原材.btw".equals(labelAddress)){ qeuryLabelDatasql = "SELECT\r\n" + @@ -2066,7 +2068,8 @@ public class BSLabelServiceImpl extends CommonServiceDAO im obj.setSupplierno(queryForListProduct.get(0).get("supplierNo") != null ? queryForListProduct.get(0).get("supplierNo").toString() : ""); obj.setDescription(queryForListProduct.get(0).get("description") != null ? queryForListProduct.get(0).get("description").toString() : ""); log.info("***************************PrintLabel Assign params is : " + params.toString()); - labelUrl = labelPrintRabbitMQ(obj, requestUrl, pr, params); + //labelUrl = labelPrintRabbitMQ(obj, requestUrl, pr, params); + labelUrl = labelPrint(obj, requestUrl, pr, params); log.info("***************************PrintLabel Use URL is : " + requestUrl); }else { throw new CustomException(CustomExceptionCode.DATA_NOT_FOUND, "未找到对应的标签模板"); From 3fa4ce1caca4eb6bc82779ad63f4d21021e3966a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=B8=85?= <3115919733@qq.com> Date: Mon, 26 May 2025 11:29:08 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=B8=9A=E5=8A=A9=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/cim/idm/service/impl/ToSAPServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 27a67ff..edf15c5 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 @@ -5947,9 +5947,9 @@ public class ToSAPServiceImpl { .append(" m.MESSAGEID ,").append(SystemPropHelper.CR) .append(" m.SALESHIPREQUESTNAME ,").append(SystemPropHelper.CR) .append(" m.SALESHIPREQUESTDETAILNAME ,").append(SystemPropHelper.CR) - .append(" sum(m.MATERIALQUANTITY) MATERIALQUANTITY").append(SystemPropHelper.CR) + .append(" sum(m.MATERIALQUANTITY) MATERIALQUANTITY,").append(SystemPropHelper.CR) .append(" m.OLDSALESHIPREQUESTNAME ,").append(SystemPropHelper.CR) - .append(" m.OLDSALESHIPREQUESTDETAILNAME ,").append(SystemPropHelper.CR) + .append(" m.OLDSALESHIPREQUESTDETAILNAME").append(SystemPropHelper.CR) .append(" FROM MATERIALPACKING m ").append(SystemPropHelper.CR) // .append(" WHERE m.RECEIVEACTNO = :RECEIVEACTNO AND m.SITENAME = :SITENAME ").append(SystemPropHelper.CR) .append(" WHERE m.MATERIALPACKINGNAME IN (:BOXLIST) AND m.SITENAME = :SITENAME").append(SystemPropHelper.CR)