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 6b967db..92ef62e 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 @@ -549,7 +549,7 @@ public class InvoiceServiceImpl implements InvoiceService { setEventInfo.setUserColumns(hashMapPack); MaterialPackingServiceProxy.getMaterialPackingService().setEvent(mpKeyList, makeEventInfo, setEventInfo); //抛送MES数据 - untils.sendMaterialInfoToMES_NEW2(shipRequestName, "", materialPackingKeyList); + untils.sendMaterialInfoToMES_NEW2(shipRequestName, "", materialPackingKeyList,billCode,eventUser); WlySaveUnDoInfo( billCode,commitDate); } @@ -562,7 +562,7 @@ public class InvoiceServiceImpl implements InvoiceService { } // billCode=toSAPService.ProductionStockOut_NEW(shipRequestName, "SDK", eventUser,materialPackingKeyList); //抛送MES数据 - untils.sendMaterialInfoToMES_NEW(shipRequestName, "", materialPackingKeyList); + untils.sendMaterialInfoToMES_NEW(shipRequestName, "", materialPackingKeyList,billCode,eventUser); //billCode = NCWServiceImpl.SaleOut2(shipRequestName, "SDK", eventUser,materialPackingKeyList,""); untils.SaveUnDoInfo_ForSap(materialPackingKeyList, billCode, makeEventInfo); } @@ -572,7 +572,7 @@ public class InvoiceServiceImpl implements InvoiceService { // billCode=toSAPService.orderStockOut(shipRequestName, "SDK", eventUser,materialPackingKeyList); billCode=orderStockOut(shipRequestName, "SDK", eventUser,materialPackingKeyList,commitDate); //抛送MES数据 - untils.sendMaterialInfoToMES_NEW(shipRequestName, "", materialPackingKeyList); + untils.sendMaterialInfoToMES_NEW(shipRequestName, "", materialPackingKeyList,billCode,eventUser); //更新MES管芯数据 new MESServiceImpl().updateDurable_ByCostcenter(shipRequestName, "SDK", eventUser, materialPackingKeyList); //billCode = NCWServiceImpl.SaleOut2(shipRequestName, "SDK", eventUser,materialPackingKeyList,""); @@ -3183,7 +3183,8 @@ public class InvoiceServiceImpl implements InvoiceService { hashMapPack.put("oldStockState", GenericServiceProxy.getConstantMap().STOCKSTATE_STOCKED); setEventInfo.setUserColumns(hashMapPack); MaterialPackingServiceProxy.getMaterialPackingService().setEvent(arrayList, mesEventInfo, setEventInfo); - }else if(!ERPRECEIVELOCATION.isEmpty()){ + } else { + if(!ERPRECEIVELOCATION.isEmpty()) { // 拆条码,查询MATERIALQUANTITY 与 MATERIALQUANTITY2是否相等,如果相等则未修改了数量,不相等则修改了数量 // 如果已修改数量,则进行拆条码 @@ -3254,98 +3255,112 @@ public class InvoiceServiceImpl implements InvoiceService { // } - //new MESServiceImpl().NeedReceiveMaterialInfoSend_NEW(shipRequestName, "SDK", materialPackingKeyList); - 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"; + //new MESServiceImpl().NeedReceiveMaterialInfoSend_NEW(shipRequestName, "SDK", materialPackingKeyList); + 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"; - // 转库到线边仓 + // 转库到线边仓 // String sqlZK = "SELECT b.MATERIALPACKINGNAME FROM MATERIALPACKINGSUB b WHERE b.MATERIALPACKINGNAME IN (:BOXLIST)"; - Map hashMapZK = new HashMap(); - hashMapZK.put("BOXLIST", materialPackingKeyList); - hashMapZK.put("SHIPREQUESTNAME", shipRequestName); - hashMapZK.put("SITENAME", siteName); - List> ZKqueryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sqlZK.toString(), hashMapZK); + 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); + 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); + } + billCode = UnSourcedChangeLocation(arrayList,ERPRECEIVEFACTORY, + ERPRECEIVELOCATION, "", eventUser, commitDate ); + + 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,billCode,eventUser); + + WlySaveUnDoInfo( billCode,commitDate); } - billCode = UnSourcedChangeLocation(arrayList,ERPRECEIVEFACTORY, - ERPRECEIVELOCATION, "", eventUser, commitDate ); + else + { - List mpKeyList = new ArrayList (); - SetEventInfo setEventInfo = new SetEventInfo(); - for (MaterialPackingKey materialPacking : arrayList) { - MaterialPackingKey key = materialPacking; - mpKeyList.add(key); + 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,eventUser); + //billCode = NCWServiceImpl.SaleOut2(shipRequestName, "SDK", eventUser,materialPackingKeyList,""); + untils.SaveUnDoInfo_ForSap(materialPackingKeyList, billCode, makeEventInfo); } - - 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); - - WlySaveUnDoInfo( billCode,commitDate); } break; @@ -3353,7 +3368,7 @@ public class InvoiceServiceImpl implements InvoiceService { // billCode=toSAPService.orderStockOut(shipRequestName, "SDK", eventUser,materialPackingKeyList); billCode=orderStockOut(shipRequestName, "SDK", eventUser,materialPackingKeyList,commitDate); //抛送MES数据 - untils.sendMaterialInfoToMES_NEW(shipRequestName, "", materialPackingKeyList); + untils.sendMaterialInfoToMES_NEW(shipRequestName, "", materialPackingKeyList,billCode,eventUser); //更新MES管芯数据 new MESServiceImpl().updateDurable_ByCostcenter(shipRequestName, "SDK", eventUser, materialPackingKeyList); //billCode = NCWServiceImpl.SaleOut2(shipRequestName, "SDK", eventUser,materialPackingKeyList,"");