diff --git a/zi-wms-inf/src/main/java/com/cim/idm/service/impl/QMSServiceImpl.java b/zi-wms-inf/src/main/java/com/cim/idm/service/impl/QMSServiceImpl.java index 043c88c..d0cc66c 100644 --- a/zi-wms-inf/src/main/java/com/cim/idm/service/impl/QMSServiceImpl.java +++ b/zi-wms-inf/src/main/java/com/cim/idm/service/impl/QMSServiceImpl.java @@ -177,6 +177,15 @@ public class QMSServiceImpl implements QMSService{ jsonObject.put("transferOrderNumber", receiveActNo); jsonObject.put("factoryArea", factoryArea); + /** + * 增加供应商编码和供应商名称 + * 2025-05-12 + */ + //供应商编码 + jsonObject.put("supplierCode", list.get(i).get("SUPPLIERCODE")); + //供应商名称 + jsonObject.put("supplierName", list.get(i).get("SUPPLIERNAME")); + String lots = list.get(i).get("LOTS") == null ? "" : list.get(i).get("LOTS").toString(); String[] split = lots.split("\\;"); JSONArray jsonArray2 = new JSONArray (); 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 382c404..a3961df 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 @@ -552,7 +552,13 @@ public class MaterialReceiveActController { EventInfoUtil util = new EventInfoUtil(); makeEventInfo = util.makeEventInfo("NormalStockInForSDK", user, "NormalStockInForSDK"); // 更新入库凭证 - SDKMaterialPackingServiceImpl.updateUndoIdByReceive(receiveRequestName, undoId, makeEventInfo); + //SDKMaterialPackingServiceImpl.updateUndoIdByReceive(receiveRequestName, undoId, makeEventInfo); + /** + * updateUndoIdByReceive和updateStockState都在MATERIALPACKINGHISTORY表插入了数据,导致有重复的入库记录 + * 为了不影响后续通过undoId作为条件处理其它业务,新建方法updateMaterialPackingUndoIdByReceive,只更新undoId,不插入MATERIALPACKINGHISTORY表 + * 2025-05-12 + */ + SDKMaterialPackingServiceImpl.updateMaterialPackingUndoIdByReceive(receiveRequestName, undoId); // 更新库存状态 SDKMaterialPackingServiceImpl.SaveUnDoInfo( undoId,commitDate); SDKMaterialPackingServiceImpl.updateStockState( makeEventInfo, undoId,opCode); diff --git a/zi-wms-pda/src/main/java/com/cim/idm/controller/SaleOutController.java b/zi-wms-pda/src/main/java/com/cim/idm/controller/SaleOutController.java index 66530b2..34b58e5 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/controller/SaleOutController.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/controller/SaleOutController.java @@ -1112,4 +1112,76 @@ public class SaleOutController { EventInfo eventInfo = new EventInfoUtil().makeEventInfo("auxiliaryDessign", user, "auxiliaryDessign", "", ""); return materialShipService.MaterialShipRequestAuxiliaryCancelConfirmStocking(eventInfo,siteName,shipRequestName,user); } + + /** + * 备货出库 + * 2025-05-12 + * @param in + * @return + * @throws Exception + */ + @Transactional + @RequestMapping(value = "/CompleteShipRequestStockUp", method = RequestMethod.POST) + public AjaxResult completeShipRequestStockUp(@RequestBody JSONObject in ) throws Exception{ + StockOutDto ms = JSON.toJavaObject(in, StockOutDto.class); + String shipRequestName = ms.getShipRequestName(); + String siteName = "SDK"; + String user = ms.getUser(); + String commitDate = ms.getCommitDate(); + String opCode = ms.getOpCode(); + String reMark = ms.getReMark(); + List boxList = new ArrayList<>(); + + Map hashMap = new HashMap (); + hashMap.put("SHIPREQUESTNAME", shipRequestName); + String sqlGetBox = " SELECT m.MATERIALPACKINGNAME,\n" + + " m.MATERIALQUANTITY,\n" + + " DECODE(NVL(m.MATERIALQUANTITY2, 0), 0 , m.MATERIALQUANTITY, m.MATERIALQUANTITY2) MATERIALQUANTITY2\n" + + "FROM MATERIALPACKING m\n" + + "WHERE " + + "m.SHIPREQUESTNAME =:SHIPREQUESTNAME\n" + + "AND m.STOCKSTATE = 'Stocked'\n" + + "AND m.MATERIALQUANTITY2 > 0\n" + + "AND NOT EXISTS (\n" + + " SELECT 1 FROM MATERIALSHIPREQUESTDETAIL mdl\n" + + " WHERE mdl.SHIPREQUESTNAME = m.SHIPREQUESTNAME\n" + + " AND mdl.MATERIALSPECNAME = m.MATERIALSPECNAME\n" + + " AND (m.ERPLOCATION = mdl.ERPRECEIVELOCATION AND mdl.ERPRECEIVELOCATION IS NOT NULL)\n" + + ") "; + List> sr = IDMFrameServiceProxy.getSqlTemplate().queryForList(sqlGetBox, hashMap); + if(sr.size()>0) + { + for(int i=0;i> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, hashMap); + if (queryForList != null && queryForList.size() > 0) { + String type = queryForList.get(0).get("SHIPREQUESTTYPE").toString(); + shipRequestType = type; + } else { + return AjaxResult.me().setSuccess(false).setMessage("找不到出库单据" + shipRequestName); + } + InvoiceServiceImpl invoiceServiceImpl=new InvoiceServiceImpl(); +// sendERPStockOut=invoiceServiceImpl.SendERPStockOut20240802(shipRequestName, siteName, user, boxList,commitDate,opCode); + sendERPStockOut=invoiceServiceImpl.StockUpOutSendSAPOrMES(shipRequestName, siteName, user, boxList,commitDate,opCode); +// sendERPStockOut="1"; + if (sendERPStockOut == null || "".equals(sendERPStockOut)) { + return AjaxResult.me().setSuccess(false).setMessage("过账失败"); + } + return AjaxResult.me().setResultObj(null); + } } 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 efc76d3..8143c54 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 @@ -2907,5 +2907,304 @@ public class InvoiceServiceImpl implements InvoiceService { } } } + @Transactional + public String StockUpOutSendSAPOrMES(String shipRequestName, String siteName, String eventUser, + List list , String commitDate, String opCode) throws Exception { + //判断单据类型调用不同的NC接口 + String sql = "SELECT m.SHIPREQUESTTYPE,m.SHIPREQUESTDETAILTYPE FROM MATERIALSHIPREQUEST m WHERE m.SHIPREQUESTNAME = :SHIPREQUESTNAME"; + Map hashMap = new HashMap (); + hashMap.put("SHIPREQUESTNAME", shipRequestName); + List materialPackingKeyList = new ArrayList<> (); + List arrayList = new ArrayList (); + List> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, hashMap); + String shipRequestType = queryForList.get(0).get("SHIPREQUESTTYPE").toString(); + String detailype = queryForList.get(0).get("SHIPREQUESTDETAILTYPE").toString(); + if ("4C".equals(shipRequestType)) { + String sql222 = "SELECT SUM(m.REQUESTQUANTITY - m.ASSIGNEDQUANTITY) QTY,MATERIALSPECNAME FROM MATERIALSHIPREQUESTDETAIL m WHERE m.SHIPREQUESTNAME = :SHIPREQUESTNAME GROUP BY MATERIALSPECNAME"; + List> queryForList2 = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql222, hashMap); + for (int i = 0; i < queryForList2.size(); i++) { + String string = queryForList2.get(i).get("QTY").toString(); + String MATERIALSPECNAME = queryForList2.get(i).get("MATERIALSPECNAME").toString(); + BigDecimal bigDecimal = new BigDecimal(string); + if (bigDecimal.compareTo(BigDecimal.ZERO) < 0 ) { + throw new CustomException( MATERIALSPECNAME + "销售不允许超发"); + } + } + } + //备份过账条码表的信息,并删除 + String bfSql = "INSERT\r\n" + + " INTO\r\n" + + " MATERIALPACKINGSUBHISTORY T (T.MATERIALPACKINGNAME,\r\n" + + " T.RECEIVEREQUESTNAME,\r\n" + + " T.RECEIVEREQUESTDETAILNAME,\r\n" + + " T.QTY)\r\n" + + "SELECT\r\n" + + " M.MATERIALPACKINGNAME,\r\n" + + " M.RECEIVEREQUESTNAME,\r\n" + + " M.RECEIVEREQUESTDETAILNAME,\r\n" + + " M.QTY\r\n" + + "FROM\r\n" + + " MATERIALPACKINGSUB M\r\n" + + "WHERE\r\n" + + " M.RECEIVEREQUESTNAME = :SHIPREQUESTNAME"; + String scSql = "DELETE FROM MATERIALPACKINGSUB WHERE RECEIVEREQUESTNAME = :SHIPREQUESTNAME"; + IDMFrameServiceProxy.getSqlTemplate().update(bfSql, hashMap); + IDMFrameServiceProxy.getSqlTemplate().update(scSql, hashMap); + EventInfoUtil eventInfoUtil = new EventInfoUtil(); + EventInfo makeEventInfo = eventInfoUtil.makeEventInfo("CompletedShipRequest", eventUser, "CompletedShipRequest"); + //循环过账批次 + for (int i = 0; i < list.size(); ++ i) { + String materialPackingName = list.get(i).getMaterialPackingName(); + String sdk_ID = list.get(i).getSDK_ID(); + String phase = list.get(i).getPHASE(); + String materialSpecName = list.get(i).getMaterialSpecName(); + // float materialQuantity = list.get(i).getMaterialQuantity(); + //重新获取下数量,通过sql查询取数 + String SLsQL = "SELECT m.MATERIALPACKINGNAME,m.MATERIALQUANTITY," + + "DECODE(NVL(m.MATERIALQUANTITY2,0), 0 ,m.MATERIALQUANTITY,m.MATERIALQUANTITY2) MATERIALQUANTITY2 FROM MATERIALPACKING m" + + " WHERE m.SHIPREQUESTNAME = :SHIPRQEUESTNAME AND MATERIALPACKINGNAME = :MATERIALPACKINGNAME "; + Map hashMap2 = new HashMap (); + hashMap2.put("SHIPRQEUESTNAME", shipRequestName); + hashMap2.put("MATERIALPACKINGNAME", materialPackingName); + String materialQuantity2 = list.get(i).getMaterialQuantity2() + ""; + List> queryForList3 = IDMFrameServiceProxy.getSqlTemplate().queryForList(SLsQL, hashMap2); + if (queryForList3 != null && queryForList3.size() > 0) { + materialQuantity2 = queryForList3.get(0).get("MATERIALQUANTITY2").toString(); + } else { + throw new CustomException("单据" + shipRequestName + "库存" + materialPackingName + "绑定关系不存在"); + } + //循环单据查询过帐表 + String pcSql = "SELECT SHIPREQUESTNAME, SHIPREQUESTDETAILNAME,\r\n" + + " m.MATERIALSPECNAME ,\r\n" + + " m.PHASE ,\r\n" + + " m.SDK_ID ,\r\n" + + " m.REQUESTQUANTITY ,\r\n" + + " m.ASSIGNEDQUANTITY ,\r\n" + + " (m.REQUESTQUANTITY - nvl(m.SALEOUTQUANTITY, 0) ) SALEOUTQUANTITY\r\n" + + "FROM\r\n" + + " MATERIALSHIPREQUESTDETAIL m\r\n" + + "WHERE\r\n" + + " m.MATERIALSPECNAME = :MATERIALSPECNAME\r\n" + + " AND SHIPREQUESTNAME = :SHIPREQUESTNAME ORDER BY TO_NUMBER(SHIPREQUESTDETAILNAME) ASC "; + hashMap.put("MATERIALSPECNAME", materialSpecName); + hashMap.put("SDK_ID", sdk_ID); + hashMap.put("PHASE", phase); + List> queryForList2 = IDMFrameServiceProxy.getSqlTemplate().queryForList(pcSql, hashMap); + BigDecimal pcQty = new BigDecimal(materialQuantity2);//批次数量 + BigDecimal temp; + for (int j = 0; j < queryForList2.size(); j++) { + String sq = queryForList2.get(j).get("SALEOUTQUANTITY").toString();//剩余发货数量 + String shipRequestDetailName = queryForList2.get(j).get("SHIPREQUESTDETAILNAME").toString();//行项 + BigDecimal saleQty = new BigDecimal(sq);//需要发货数量 + if (pcQty.compareTo(BigDecimal.ZERO) == 0 + || (saleQty.compareTo(BigDecimal.ZERO) == 0 && (j != queryForList2.size() - 1) ) + ) { + continue; + } + int compareTo = saleQty.compareTo(pcQty);//大于等于0则批次全发,小于0则需要拆分 + int compareToZero=saleQty.compareTo(BigDecimal.ZERO); + if (compareTo >= 0) { + untils.fahuoSplit(materialPackingName, shipRequestName, shipRequestDetailName, pcQty); + break; + } else {//需要拆行 + if( (j != queryForList2.size() - 1) && compareToZero>0) {//判断是否是最后一行,不是最后一行就不允许超发,发货数量等于请求数量即拆 + untils.fahuoSplit(materialPackingName, shipRequestName, shipRequestDetailName, saleQty); + pcQty = pcQty.subtract(saleQty); + continue; + } else { + untils.fahuoSplit(materialPackingName, shipRequestName, shipRequestDetailName, pcQty); + break; + } + } + } + materialPackingKeyList.add(materialPackingName); + } + //判断会有多少个仓库发货,不同仓库需要分开走账 + StringBuffer cklx = new StringBuffer(); + cklx.append("SELECT m.MATERIALPACKINGNAME,m.SITENAME FROM MATERIALPACKING m WHERE m.MATERIALPACKINGNAME IN "); + String str = ""; + str += "("; + for (String materialPacking : materialPackingKeyList) { + str += "'" + materialPacking + "',"; + } + str += "'')"; + // 查询MATERIALQUANTITY 与 MATERIALQUANTITY2是否相等,如果相等则未修改数量,不相等则修改数量 + List> packingQueryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(cklx.toString() + str, hashMap); + String billCode = ""; + switch (shipRequestType) { + case "NLCC" : //STO调拨出库 + + billCode=TransferStockOut_NLCC(shipRequestName, "SDK", eventUser,materialPackingKeyList,commitDate); + untils.SaveUnDoInfo_ForSap(materialPackingKeyList, billCode, makeEventInfo); + break; + + case "01"://生产领料 + case "02"://生产补料 + // 判断是否是现场仓 + String IsSql = "SELECT m.ERPRECEIVELOCATION,m.ERPLOCATION,m.ERPRECEIVEFACTORY FROM MATERIALSHIPREQUESTDETAIL m WHERE SHIPREQUESTNAME = :SHIPREQUESTNAME"; + Map bpc=new HashMap<>(); + bpc.put("SHIPREQUESTNAME", shipRequestName); + List> receiveList = IDMFrameServiceProxy.getSqlTemplate().queryForList(IsSql, bpc); + String ERPRECEIVELOCATION = receiveList.get(0).get("ERPRECEIVELOCATION") == null ? "" : receiveList.get(0).get("ERPRECEIVELOCATION").toString(); + String ERPLOCATION = receiveList.get(0).get("ERPLOCATION") == null ? "" : receiveList.get(0).get("ERPLOCATION").toString(); + String ERPRECEIVEFACTORY = receiveList.get(0).get("ERPRECEIVEFACTORY") == null ? "" : receiveList.get(0).get("ERPRECEIVEFACTORY").toString(); + + //判断是否为MES需要二次接收的物料 + String sqlc=" SELECT e.ENUMVALUE FROM MES_ENUMDEFVALUE e \r\n" + + " WHERE e.ENUMNAME ='ConfirmReceiveArea'\r\n" + + " AND e.ENUMVALUE in(\r\n" + + " SELECT p.AREANAME FROM MES_PRODUCTREQUEST p \r\n" + + " WHERE p.PRODUCTREQUESTNAME =(SELECT m.RECEIVEPRODUCTIONORDERNUMBER FROM MATERIALSHIPREQUESTDETAIL m \r\n" + + " WHERE m.SHIPREQUESTNAME=:SHIPREQUESTNAME AND RECEIVEPRODUCTIONORDERNUMBER IS NOT NULL AND ROWNUM=1))"; + + List> src=IDMFrameServiceProxy.getSqlTemplate().queryForList(sqlc, bpc); + + + //MES需要接收,则只抛送数据。 或如果是现场仓,先移到现场仓 + if(src.size()>0) { + billCode="Y"; + String sqlZK=" SELECT\r\n" + + " t.MATERIALSPECNAME,m.MATERIALPACKINGNAME,\r\n" + + " t.ERPFACTORY,\r\n" + + " t.ERPLOCATION,\r\n" + + " m2.SHIPREQUESTDETAILTYPE,\r\n" + + " t.UNIT,\r\n" + + " m1.COSTCENTER,\r\n" + + " m1.SHIPREQUESTNAME,\r\n" + + " m1.SHIPREQUESTDETAILNAME,\r\n" + + " m1.ERPRECEIVELOCATION,\r\n" + + " m1.ERPRECEIVEFACTORY,\r\n" + + " m1.SENDSALESORDER ,m1.SENDSALESORDERDETAILNO,\r\n" + + " CASE WHEN m1.SENDSALESORDER IS NOT NULL THEN 'E' ELSE '' END SOBKZ,\r\n" + + " (\r\n" + + " SELECT\r\n" + + " RECEIVEPRODUCTIONORDERNUMBER\r\n" + + " FROM\r\n" + + " MATERIALSHIPREQUESTDETAIL m5\r\n" + + " WHERE\r\n" + + " m5.SHIPREQUESTNAME =:SHIPREQUESTNAME\r\n" + + " AND m5.MATERIALSPECNAME = t.MATERIALSPECNAME\r\n" + + " ORDER BY\r\n" + + " m5.USEDATE,\r\n" + + " m5.SHIPREQUESTDETAILNAME FETCH FIRST ROW ONLY)RECEIVEPRODUCTIONORDERNUMBER,\r\n" + + " SUM(m.QTY) AS MATERIALQUANTITY\r\n" + + " FROM \r\n" + + " MATERIALPACKINGSUB m\r\n" + + " LEFT JOIN MATERIALPACKING T ON \r\n" + + " m.MATERIALPACKINGNAME = T.MATERIALPACKINGNAME\r\n" + + " AND m.RECEIVEREQUESTNAME = T.SHIPREQUESTNAME\r\n" + + " LEFT JOIN MATERIALSHIPREQUESTDETAIL M1 \r\n" + + " ON \r\n" + + " m.RECEIVEREQUESTNAME = M1.SHIPREQUESTNAME\r\n" + + " AND m.RECEIVEREQUESTDETAILNAME = M1.SHIPREQUESTDETAILNAME\r\n" + + " LEFT JOIN MATERIALSHIPREQUEST M2 \r\n" + + " ON \r\n" + + " M1.SHIPREQUESTNAME = M2.SHIPREQUESTNAME\r\n" + + " WHERE \r\n" + + " T.SHIPREQUESTNAME = :SHIPREQUESTNAME\r\n" + + " AND T.SITENAME = :SITENAME\r\n" + + " AND T.STOCKSTATE = 'Stocked'\r\n" + + " AND T.MATERIALPACKINGNAME IN (:BOXLIST)\r\n" + + " GROUP BY\r\n" + + " t.MATERIALSPECNAME,\r\n" + + " t.ERPFACTORY,\r\n" + + " t.ERPLOCATION,\r\n" + + " m2.SHIPREQUESTDETAILTYPE,\r\n" + + " t.UNIT,\r\n" + + " m1.COSTCENTER,\r\n" + + " m1.SHIPREQUESTNAME,m1.SENDSALESORDER ,m1.SENDSALESORDERDETAILNO,\r\n" + + " m1.SHIPREQUESTDETAILNAME,\r\n" + + " m1.ERPRECEIVELOCATION,\r\n" + + " m1.ERPRECEIVEFACTORY,m.MATERIALPACKINGNAME"; + + // 转库到线边仓 + Map hashMapZK = new HashMap(); + hashMapZK.put("BOXLIST", materialPackingKeyList); + hashMapZK.put("SHIPREQUESTNAME", shipRequestName); + hashMapZK.put("SITENAME", siteName); + List> ZKqueryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sqlZK.toString(), hashMapZK); + + for (int z = 0; z < ZKqueryForList.size(); z++) { + String materialPackingName = ZKqueryForList.get(z).get("MATERIALPACKINGNAME").toString(); + materialPackingKeyList.add(materialPackingName); + MaterialPackingKey materialPackingKey = new MaterialPackingKey("SDK",materialPackingName); + arrayList.add(materialPackingKey); + } + /*List mpKeyList = new ArrayList (); + SetEventInfo setEventInfo = new SetEventInfo(); + for (MaterialPackingKey materialPacking : arrayList) { + MaterialPackingKey key = materialPacking; + mpKeyList.add(key); + } + + Map hashMapPack = new HashMap (); + hashMapPack.put("erpLocation", ERPRECEIVELOCATION == null ? "" : ERPRECEIVELOCATION); + hashMapPack.put("erpFactory", ERPRECEIVEFACTORY == null ? "" : ERPRECEIVEFACTORY); + hashMapPack.put("locationName", ""); + hashMapPack.put("lastEventUser", eventUser); + hashMapPack.put("unDoID", billCode); + setEventInfo.setUserColumns(hashMapPack); + MaterialPackingServiceProxy.getMaterialPackingService().setEvent(mpKeyList, makeEventInfo, setEventInfo); + */ + //抛送MES数据 + untils.sendMaterialInfoToMES_NEW2(shipRequestName, "", materialPackingKeyList); + } + else + { + billCode=ProductionStockOut_NEW(shipRequestName, "SDK", eventUser,materialPackingKeyList,commitDate); + if (billCode.isEmpty()) { + throw new CustomException("SAP过账异常!"); + } +// billCode=toSAPService.ProductionStockOut_NEW(shipRequestName, "SDK", eventUser,materialPackingKeyList); + //抛送MES数据 + untils.sendMaterialInfoToMES_NEW(shipRequestName, "", materialPackingKeyList); + //billCode = NCWServiceImpl.SaleOut2(shipRequestName, "SDK", eventUser,materialPackingKeyList,""); + untils.SaveUnDoInfo_ForSap(materialPackingKeyList, billCode, makeEventInfo); + + } + break; + + case "06"://成本中心领料 + // billCode=toSAPService.orderStockOut(shipRequestName, "SDK", eventUser,materialPackingKeyList); + billCode=orderStockOut(shipRequestName, "SDK", eventUser,materialPackingKeyList,commitDate); + //抛送MES数据 + untils.sendMaterialInfoToMES_NEW(shipRequestName, "", materialPackingKeyList); + //更新MES管芯数据 + new MESServiceImpl().updateDurable_ByCostcenter(shipRequestName, "SDK", eventUser, materialPackingKeyList); + //billCode = NCWServiceImpl.SaleOut2(shipRequestName, "SDK", eventUser,materialPackingKeyList,""); + untils.SaveUnDoInfo_ForSap(materialPackingKeyList, billCode, makeEventInfo); + break; + case "09"://研发领料 +// billCode=toSAPService.orderStockOut(shipRequestName, "SDK", eventUser,materialPackingKeyList); +// billCode=orderStockOut(shipRequestName, "SDK", eventUser,materialPackingKeyList); +// //更新MES管芯数据 +// new MESServiceImpl().updateDurable_ByCostcenter(shipRequestName, "SDK", eventUser, materialPackingKeyList); +// //billCode = NCWServiceImpl.SaleOut2(shipRequestName, "SDK", eventUser,materialPackingKeyList,""); +// untils.SaveUnDoInfo_ForSap(materialPackingKeyList, billCode, makeEventInfo); + break; + case "ZLF0"://销售出库确认 (单据类型ZLF0~ZLF8) SD023(销售回传) + case "ZLF1": + case "ZLF2": + case "ZLF3": + case "ZLF4": + case "ZLF5": + case "ZLF6": + case "ZLF7": + case "ZLF8": +// billCode=toSAPService.saleStockOut_NEW(shipRequestName, "SDK", eventUser,materialPackingKeyList); + billCode=saleStockOut_NEW(shipRequestName, "SDK", eventUser,materialPackingKeyList,commitDate); + untils.SaveUnDoInfo_ForSap(materialPackingKeyList, billCode, makeEventInfo); + break; + case "08": // 委外 + case "OEM": // 委外 +// billCode=toSAPService.oemStockOut_NEW(shipRequestName, "SDK", eventUser,materialPackingKeyList); + billCode=oemStockOut_NEW(shipRequestName, "SDK", eventUser,materialPackingKeyList, commitDate); + untils.SaveUnDoInfo_ForSap(materialPackingKeyList, billCode, makeEventInfo); + break; + default : + break; + } + return billCode; + } } 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 965d9b9..e55e030 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 @@ -171,9 +171,10 @@ public class MESToWMSServiceImpl implements MESToWMSService { String shipRequestName = ""; for (int i = 0; i < in.size(); i++) { JSONObject jb = in.getJSONObject(i); - String charge = jb.get("charge").toString(); // 批号 +// String charge = jb.get("charge").toString(); // 批号 + String materialPackingName = jb.get("lotName").toString(); shipRequestName = jb.get("shipRequestName").toString(); // 领料单号 - boxIdList.add(charge); + boxIdList.add(materialPackingName); } diff --git a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/SDKMaterialPackingServiceImpl.java b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/SDKMaterialPackingServiceImpl.java index ea7e023..1ece19e 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/SDKMaterialPackingServiceImpl.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/SDKMaterialPackingServiceImpl.java @@ -458,4 +458,28 @@ public class SDKMaterialPackingServiceImpl extends CommonServiceDAO hashMap = new HashMap (); + hashMap.put("RECEIVEREQUESTNAME", receiveRequestName); + List> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, hashMap); + for (Map map : queryForList) { + SetEventInfo setEventInfo = new SetEventInfo(); + Map bindMap = new HashMap(); + bindMap.put("unDoID",UNDOID); + setEventInfo.setUserColumns(bindMap); + MaterialPackingKey materialPackingKey = new MaterialPackingKey(map.get("SITENAME").toString(), map.get("MATERIALPACKINGNAME").toString()); + //MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPackingKey, eventInfo, setEventInfo); + MaterialPacking materialPacking = new MaterialPacking(); + materialPacking.setKey(materialPackingKey); + materialPacking.setUnDoID(UNDOID); + MaterialPackingServiceProxy.getMaterialPackingService().update(materialPacking); + } + + } }