From 8587d23b6a587fa3163cdcddfc0a875b70c4f2dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=AD=E9=A3=9E?= Date: Fri, 9 May 2025 16:55:35 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E8=B4=A8=E6=A3=80=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B1=E6=97=B6=E8=87=AA=E5=8A=A8=E8=BD=AC?= =?UTF-8?q?=E4=BB=93=E9=80=BB=E8=BE=91=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../management/data/MaterialPacking.java | 9 +++++++++ .../com/cim/idm/service/impl/MESServiceImpl.java | 10 ++++++---- .../com/cim/idm/service/impl/ToSAPServiceImpl.java | 7 ++++++- .../idm/controller/AllocateStockInController.java | 2 +- .../controller/MaterialReceiveActController.java | 4 +++- .../java/com/cim/idm/controller/QMSController.java | 2 ++ .../com/cim/idm/controller/SAPToWMSController.java | 4 ++-- .../com/cim/idm/model/MaterialreceiveActDto.java | 2 ++ .../com/cim/idm/service/AllocateStockInService.java | 2 +- .../service/Impl/AllocateStockInServiceImpl.java | 4 +++- .../cim/idm/service/Impl/InvoiceServiceImpl.java | 13 +++++++++---- .../main/java/com/cim/idm/utils/CommonUtils.java | 2 +- .../main/resources/com/cim/idm/dao/DeliveryDao.xml | 2 +- .../main/resources/com/cim/idm/dao/FgStockInDao.xml | 1 + .../service/MaterialPackingServiceImpl.java | 5 ++++- 15 files changed, 51 insertions(+), 18 deletions(-) diff --git a/zi-wms-data/src/main/java/com/cim/idm/wmspackage/materialpacking/management/data/MaterialPacking.java b/zi-wms-data/src/main/java/com/cim/idm/wmspackage/materialpacking/management/data/MaterialPacking.java index 5377fcd..737b1e6 100644 --- a/zi-wms-data/src/main/java/com/cim/idm/wmspackage/materialpacking/management/data/MaterialPacking.java +++ b/zi-wms-data/src/main/java/com/cim/idm/wmspackage/materialpacking/management/data/MaterialPacking.java @@ -111,6 +111,7 @@ public class MaterialPacking extends FieldAccessor implements DataInfo bodyJSonData = new HashMap<>(); MainData.put("HEAD",headJSonData); MainData.put("BODY",bodyJSonData); + headJSonData.put("INTF_ID","MM068"); headJSonData.put("SRC_SYSTEM","WMS"); headJSonData.put("DEST_SYSTEM","SAP"); @@ -886,6 +887,11 @@ public class ToSAPServiceImpl { bodyJSonData.put("MBLNR", MBLNR); bodyJSonData.put("MJAHR", MJAHR); + //过账日期 + bodyJSonData.put("BUDAT", "20250430"); + //凭证日期 + bodyJSonData.put("BLDAT", "20250430"); + String sendData = MainData.toJSONString(); return sendData; } @@ -5197,7 +5203,6 @@ public class ToSAPServiceImpl { item.put("KOSTL", cqueryForList.get(0).get("COSTCENTER") == null ? "" : cqueryForList.get(0).get("COSTCENTER")); //成本中心 item.put("AUFNR", mm.get("SHIPREQUESTNAME")); // //从mes_ship表获取的单据号 item.put("AUFPS", mm.get("SHIPREQUESTDETAILNAME")); // //从mes_ship表获取的单据号 - item.put("AUFPS", mm.get("")); //移动原因 } if(moveType.equals("262")) { item.put("AUFNR", mm.get("PRODUCTORDER"));; //生产工单 diff --git a/zi-wms-pda/src/main/java/com/cim/idm/controller/AllocateStockInController.java b/zi-wms-pda/src/main/java/com/cim/idm/controller/AllocateStockInController.java index 78e209f..a674de7 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/controller/AllocateStockInController.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/controller/AllocateStockInController.java @@ -45,7 +45,7 @@ public class AllocateStockInController { @ApiParam(value = "调拨入库参数", required = true) @RequestBody BarcodeListByInvoice barcodeListByInvoice) { log.info("AllocateStockInController commit {}", barcodeListByInvoice); try { - allocateStockInService.allocateStockIn(barcodeListByInvoice.getShipRequestName(), + allocateStockInService.allocateStockIn(barcodeListByInvoice.getErpFactory(),barcodeListByInvoice.getShipRequestName(), barcodeListByInvoice.getSiteName(), barcodeListByInvoice.getUserId(), barcodeListByInvoice.getErpLocation(),barcodeListByInvoice.getLocationName(),barcodeListByInvoice.getCommitDate()); diff --git a/zi-wms-pda/src/main/java/com/cim/idm/controller/MaterialReceiveActController.java b/zi-wms-pda/src/main/java/com/cim/idm/controller/MaterialReceiveActController.java index bdc6597..382c404 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/controller/MaterialReceiveActController.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/controller/MaterialReceiveActController.java @@ -197,6 +197,8 @@ public class MaterialReceiveActController { String salesperson = box.getSALESPERSON(); String business_UNIT = box.getBUSINESS_UNIT(); String career_ASSISTANCE = box.getCAREER_ASSISTANCE(); + + String POCATEGORY = box.getPOCATEGORY(); makeEventInfo = new EventInfoUtil().makeEventInfo("TrackOutBox", user, "TrackOutBox"); //判断数量卡控是否正确 @@ -221,7 +223,7 @@ public class MaterialReceiveActController { receiveActNo, makeDate, shipRequestName, shipRequestDetailName, reasonCodeType, reasonCode, erpLocation, erpFactory, charge, supplierName, npFlag, expirationDay, supplierCharge, sdkid, locationName, phase, specName, materialUnit, is_BATCH, iqcflag, funit, fqty, remark, truegg, - salesperson,career_ASSISTANCE,business_UNIT); + salesperson,career_ASSISTANCE,business_UNIT,POCATEGORY); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); diff --git a/zi-wms-pda/src/main/java/com/cim/idm/controller/QMSController.java b/zi-wms-pda/src/main/java/com/cim/idm/controller/QMSController.java index ed30bd1..c7fee64 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/controller/QMSController.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/controller/QMSController.java @@ -493,6 +493,7 @@ public class QMSController { if ("PREOQA".equals(qqAresults) && "OK".equals(pqcResult) || "PREOQA".equals(qqAresults) && "NG".equals(pqcResult)) { sapBoxList.add( queryForList.get(0).get("MATERIALPACKINGNAME").toString()); } + bindMap.put("preOqaResult", qqAresults); } } else if (drkSqlList != null && drkSqlList.size() > 0) { String update = "UPDATE BS_MES_SHIPPED SET PACKINGGRADE = :PACKINGGRADE,IQCFLAG = 'Y' WHERE CHARGE = :BATCH AND PRODCUTSPECNAME = :MATERIALSPECNAME"; @@ -502,6 +503,7 @@ public class QMSController { if ("PREOQA".equals(qqAresults) && "OK".equals(pqcResult) || "PREOQA".equals(qqAresults) && "NG".equals(pqcResult)) { sapBoxList.add( queryForList.get(0).get("MATERIALPACKINGNAME").toString()); } + bindMap.put("preOqaResult", qqAresults); success ++; } else { errorCode += commonNumber + "," + materialCode + ";"; diff --git a/zi-wms-pda/src/main/java/com/cim/idm/controller/SAPToWMSController.java b/zi-wms-pda/src/main/java/com/cim/idm/controller/SAPToWMSController.java index c38b909..f81c0f0 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/controller/SAPToWMSController.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/controller/SAPToWMSController.java @@ -647,7 +647,7 @@ public class SAPToWMSController { for (int i=0; i < Items.size(); i++) { Map item = (Map)Items.get(i); String receiveRequestDetailName = MapUtils.getString(item, "EBELP"); // 订单行项目 - String pstyp = MapUtils.getString(item, "PSTYP"); // 项目类别 L表示委外订单(O库存), K是寄售(K库存) --供应商 + String pstyp = MapUtils.getString(item, "PSTYP"); // 项目类别 3(L)表示委外订单(O库存), 2 (K)是寄售(K库存) --供应商 String knttp = MapUtils.getString(item, "KNTTP"); // 科目分配类别 E/M代表销售 String materialSpecName = MapUtils.getString(item, "MATNR"); // 物料编号 String description = MapUtils.getString(item, "TXZ01"); //物料描述 @@ -727,7 +727,7 @@ public class SAPToWMSController { createInfo.setReceiveRequestName(receiveRequestName); createInfo.setReceiveRequestDetailName(receiveRequestDetailName); createInfo.setReceiveRequestDetailType(knttp); //针对销售订单 E库存 - createInfo.setPocategory(pstyp); //针对 供应商的, L表示委外订单, K表示寄售 + createInfo.setPocategory(pstyp); //针对 供应商的, 3表示委外订单, 2表示寄售 createInfo.setMaterialSpecName(materialSpecName); createInfo.setErpLocation(erpLocation); // 处理精度丢失 diff --git a/zi-wms-pda/src/main/java/com/cim/idm/model/MaterialreceiveActDto.java b/zi-wms-pda/src/main/java/com/cim/idm/model/MaterialreceiveActDto.java index 2af94fc..5b49efa 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/model/MaterialreceiveActDto.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/model/MaterialreceiveActDto.java @@ -44,4 +44,6 @@ public class MaterialreceiveActDto { private String SALESPERSON;//业务 private String CAREER_ASSISTANCE;//业助 private String BUSINESS_UNIT; //事业部 + + private String POCATEGORY; //针对 供应商的, 3表示委外订单, 2表示寄售 } diff --git a/zi-wms-pda/src/main/java/com/cim/idm/service/AllocateStockInService.java b/zi-wms-pda/src/main/java/com/cim/idm/service/AllocateStockInService.java index 39381f1..53bd2fd 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/service/AllocateStockInService.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/service/AllocateStockInService.java @@ -11,5 +11,5 @@ public interface AllocateStockInService { * @return * @throws Exception */ - public String allocateStockIn(String shipRequestName, String siteName, String user,String erpLocation ,String locationName, String commitDate) throws Exception; + public String allocateStockIn(String erpFactory,String shipRequestName, String siteName, String user,String erpLocation ,String locationName, String commitDate) throws Exception; } diff --git a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/AllocateStockInServiceImpl.java b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/AllocateStockInServiceImpl.java index 37d57f9..18e2ced 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/AllocateStockInServiceImpl.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/AllocateStockInServiceImpl.java @@ -40,10 +40,11 @@ public class AllocateStockInServiceImpl implements AllocateStockInService { */ @Override @Transactional - public String allocateStockIn(String shipRequestName, String siteName, String user, String erpLocation,String locationName,String commitDate) throws Exception { + public String allocateStockIn(String erpFactory,String shipRequestName, String siteName, String user, String erpLocation,String locationName,String commitDate) throws Exception { log.debug("AllocateStockInServiceImpl.allocateStockIn {} {} {} {}", shipRequestName, siteName, user, erpLocation); //提交SAP过账 String undoId = toSAPServiceImpl.AlloctionStockIn(shipRequestName, siteName, user, erpLocation,commitDate); + //基于单据获取要操作的Box List boxList = toSapDao.getBoxListByShipRequestName(shipRequestName); //保存物料凭证 @@ -59,6 +60,7 @@ public class AllocateStockInServiceImpl implements AllocateStockInService { SetEventInfo setEventInfo = new SetEventInfo(); Map hashMap = new HashMap<>(); hashMap.put("stockState", "Stocked"); + hashMap.put("erpFactory", erpFactory); hashMap.put("erpLocation", erpLocation); hashMap.put("locationName", locationName); hashMap.put("shipRequestName", ""); 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 ea2e4a4..50f05c7 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 @@ -360,7 +360,7 @@ public class InvoiceServiceImpl implements InvoiceService { switch (shipRequestType) { case "NLCC" : //STO调拨出库 - billCode=TransferStockOut_NLCC(shipRequestName, "SDK", eventUser,materialPackingKeyList); + billCode=TransferStockOut_NLCC(shipRequestName, "SDK", eventUser,materialPackingKeyList,commitDate); //makeEventInfo = eventInfoUtil.makeEventInfo("CompleteShipRequest", eventUser, "CompleteShipRequest:"+shipRequestType); untils.SaveUnDoInfo_ForSap(materialPackingKeyList, billCode, makeEventInfo); break; @@ -992,7 +992,7 @@ public class InvoiceServiceImpl implements InvoiceService { IDMFrameServiceProxy.getSqlTemplate().update(scSql, hashMap); } //重写STO业务销售交货单过账。zd.2024.8.14 - public String TransferStockOut_NLCC(String shipRequestName, String siteName, String user,List boxList) throws Exception { + public String TransferStockOut_NLCC(String shipRequestName, String siteName, String user,List boxList, String commitDate) throws Exception { String rcode; String undoId = ""; String rmsg = null; @@ -1050,10 +1050,15 @@ public class InvoiceServiceImpl implements InvoiceService { */ //交货单号 body.put("VBELN", shipRequestName); + + SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat outputFormat = new SimpleDateFormat("yyyyMMdd"); + Date date = inputFormat.parse(commitDate); + String outputDate = outputFormat.format(date); //实际过账日期 - body.put("WADAT_IST", TimeStampUtil.getCurrentTime("yyyyMMdd"));//yyyyMMddhhmmss + body.put("WADAT_IST", outputDate);//yyyyMMdd //发送日期 - body.put("Z_SENDDATE", TimeStampUtil.getCurrentTime("yyyyMMdd")); + body.put("Z_SENDDATE", outputDate); //操作类型(过账) body.put("Z_OPTION", "1"); 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 ca77411..f841215 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 @@ -698,7 +698,7 @@ public void SaveUnDoInfo_ForSap(List list, String undoid, EventInfo mak // 定义SQL查询语句,用于获取物料接收位置和接收工厂信息 String sql="SELECT m.ERPRECEIVELOCATION,m.ERPRECEIVEFACTORY FROM MATERIALSHIPREQUEST a,MATERIALSHIPREQUESTDETAIL m \r\n" + " WHERE m.SHIPREQUESTNAME =:SHIPREQUESTNAME and m.SHIPREQUESTNAME=a.SHIPREQUESTNAME " - + " AND a.SHIPREQUESTDETAILTYPE in('311','261')"; + + " AND a.SHIPREQUESTDETAILTYPE in('311','261','201')"; // 创建参数映射,用于执行SQL查询 Map bp=new HashMap<>(); bp.put("SHIPREQUESTNAME", invoiceNo); diff --git a/zi-wms-pda/src/main/resources/com/cim/idm/dao/DeliveryDao.xml b/zi-wms-pda/src/main/resources/com/cim/idm/dao/DeliveryDao.xml index c85c0dd..e3507a0 100644 --- a/zi-wms-pda/src/main/resources/com/cim/idm/dao/DeliveryDao.xml +++ b/zi-wms-pda/src/main/resources/com/cim/idm/dao/DeliveryDao.xml @@ -136,7 +136,7 @@ m.REMARK REMARK, m.SALESMAN SALESPERSON, m.SALESASSISTANT CAREER_ASSISTANCE, m.BUSINESSDIVISION BUSINESS_UNIT, -- m2.STOCKORGNO AS ERPFACTORY, COALESCE(m2.STOCKORGNO, m.ERPFACTORY) AS ERPFACTORY, - m2.SUPPLIERNO, + m2.SUPPLIERNO,m.POCATEGORY, m3.WIDTH AS DESCRIPTION, m3.MATERIALUNITDESC, m3.WIDTH SPECNAME, m3.PHASE, m3.DESC_CN, DECODE( m3.IS_BATCH, 'Y', '是' , '否' ) IS_BATCH, CASE WHEN m3.EXPIRATION_RULES = '0' THEN '入厂保质期' WHEN m3.EXPIRATION_RULES = '1' THEN '出厂保质期' ELSE '未定义' END AS REPLACED_VALUE, DECODE( m4.IQCFLAG, 'Y', '是', '否' ) IQCFLAG, diff --git a/zi-wms-pda/src/main/resources/com/cim/idm/dao/FgStockInDao.xml b/zi-wms-pda/src/main/resources/com/cim/idm/dao/FgStockInDao.xml index 217d351..90fc2b3 100644 --- a/zi-wms-pda/src/main/resources/com/cim/idm/dao/FgStockInDao.xml +++ b/zi-wms-pda/src/main/resources/com/cim/idm/dao/FgStockInDao.xml @@ -32,6 +32,7 @@ 'Created' stockState, 'Created' OldStockState, 'N' HoldState, + 'Box' MATERIALPACKINGTYPE, T.DURABLETYPE durableType, #{erpFactory} ERPFactory, #{erpLocation} ERPLOCATION, diff --git a/zi-wms-service/src/main/java/com/cim/idm/mwmsextend/materialpacking/service/MaterialPackingServiceImpl.java b/zi-wms-service/src/main/java/com/cim/idm/mwmsextend/materialpacking/service/MaterialPackingServiceImpl.java index 889ee23..e7f5690 100644 --- a/zi-wms-service/src/main/java/com/cim/idm/mwmsextend/materialpacking/service/MaterialPackingServiceImpl.java +++ b/zi-wms-service/src/main/java/com/cim/idm/mwmsextend/materialpacking/service/MaterialPackingServiceImpl.java @@ -6520,7 +6520,7 @@ public void updateComplete(EventInfo eventInfo,String siteName,String invoiceNo, String charge, String supplierName, String NPFlag,String expirationDay,String supplierCharge,String sdkid, String locationName,String phase,String specName,String materialUnit, String IS_BATCH,String IQCFLAG,String funit,String fqty,String remark,String truegg, - String SALESPERSON, String CAREER_ASSISTANCE, String BUSINESS_UNIT) throws Exception { + String SALESPERSON, String CAREER_ASSISTANCE, String BUSINESS_UNIT, String POCATEGORY) throws Exception { String lastEventTimeKey = ""; List listMaterialPacking = new ArrayList(); @@ -6713,6 +6713,9 @@ public void updateComplete(EventInfo eventInfo,String siteName,String invoiceNo, bindMap.put("supplierName", supplierName); bindMap.put("npFlag", NPFlag); bindMap.put("locationName", locationName ); + + bindMap.put("POCATEGORY", POCATEGORY ); // 供应商 3表示委外订单, 2表示寄售 + materialPacking.setUserColumns(bindMap); listMaterialPacking.add(materialPacking);