From 4a7330f5f85716f54d7652f1f591c206109d6933 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=AD=E9=A3=9E?= Date: Wed, 14 May 2025 13:08:41 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9=E8=BF=87=E8=B4=A6?= =?UTF-8?q?=E5=86=B2=E9=94=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../idm/service/impl/ToSAPServiceImpl.java | 2 +- .../cim/idm/controller/InvoiceController.java | 6 +-- .../controller/PurchaseReturnController.java | 2 +- .../idm/controller/SAPToWMSController.java | 2 +- .../cim/idm/controller/SaleOutController.java | 2 +- .../main/java/com/cim/idm/dao/ToSapDao.java | 3 ++ .../idm/service/Impl/InvoiceServiceImpl.java | 10 ++--- .../service/Impl/MaterialShipServiceImpl.java | 4 +- .../service/Impl/ProductIntoServiceImpl.java | 1 + .../java/com/cim/idm/utils/CommonUtils.java | 40 +++++++++++++++---- .../resources/com/cim/idm/dao/ToSapDao.xml | 12 ++++++ 11 files changed, 62 insertions(+), 22 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 68f5c8a..429beca 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 @@ -371,7 +371,7 @@ public class ToSAPServiceImpl { ErpMessageLog erplog = new ErpMessageLog(); erplog.setEventUser(user); erplog.setServerName("WmsToSAP"); - erplog.setEventName("MatailInReverse取消入库冲销"); + erplog.setEventName("冲销"); erplog.setInterfaceTime(TimeStampUtil.getCurrentTime(TimeStampUtil.FORMAT_DEFAULT)); // erplog.setMessageId(undoId); erplog.setMessageId(undoId); 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 774e6cf..d3a0a27 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 @@ -1965,7 +1965,7 @@ public class InvoiceController { // return AjaxResult.me().setSuccess(false).setMessage("只能超发一个不能出库了!"); // } // } - else if ("OEM".equals(shipRequestType)) { //委外出库 + else if ("OEM".equals(shipRequestType) || "08".equals(shipRequestType)) { //委外出库 if (dy0 < 0) {//只能超发一个 return AjaxResult.me().setSuccess(false).setMessage("只能超发一个不能出库了!"); } @@ -2149,7 +2149,7 @@ public class InvoiceController { // return AjaxResult.me().setSuccess(false).setMessage("只能超发一个不能出库了!"); // } // } - else if ("OEM".equals(shipRequestType)) { //委外出库 + else if ("OEM".equals(shipRequestType) || "08".equals(shipRequestType)) { //委外出库 if (dy0 < 0) {//只能超发一个 return AjaxResult.me().setSuccess(false).setMessage("只能超发一个不能出库了!"); } @@ -2319,7 +2319,7 @@ public class InvoiceController { // return AjaxResult.me().setSuccess(false).setMessage("只能超发一个不能出库了!"); // } // } - else if ("OEM".equals(shipRequestType)) { //委外出库 + else if ("OEM".equals(shipRequestType) || "08".equals(shipRequestType)) { //委外出库 if (dy0 < 0) {//只能超发一个 return AjaxResult.me().setSuccess(false).setMessage("只能超发一个不能出库了!"); } diff --git a/zi-wms-pda/src/main/java/com/cim/idm/controller/PurchaseReturnController.java b/zi-wms-pda/src/main/java/com/cim/idm/controller/PurchaseReturnController.java index 4e1ff77..b29eb93 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/controller/PurchaseReturnController.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/controller/PurchaseReturnController.java @@ -290,7 +290,7 @@ public class PurchaseReturnController { // return AjaxResult.me().setSuccess(false).setMessage("只能超发一个不能出库了!"); // } // } - else if ("OEM".equals(shipRequestType)) { //委外出库 + else if ("OEM".equals(shipRequestType) || "08".equals(shipRequestType)) { //委外出库 if (dy0 < 0) {//只能超发一个 return AjaxResult.me().setSuccess(false).setMessage("只能超发一个不能出库了!"); } 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 224c0b4..f6f994e 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 @@ -1292,7 +1292,7 @@ public class SAPToWMSController { String xloek= MapUtils.getString(item, "xloek"); // 删除标识 String auart= MapUtils.getString(item, "AUART"); // 接收生产订单类型 返工ZP05 复卷ZP01 - String lifnr= MapUtils.getString(item, "LIFNR"); // + String lifnr= MapUtils.getString(item, "LIFNR"); // 委外 MaterialShipRequestDetail mrd =new MaterialShipRequestDetail(); 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 091ab89..81133f5 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 @@ -577,7 +577,7 @@ public class SaleOutController { // return AjaxResult.me().setSuccess(false).setMessage("只能超发一个不能出库了!"); // } // } - else if ("OEM".equals(shipRequestType)) { //委外出库 + else if ("OEM".equals(shipRequestType) || "08".equals(shipRequestType)) { //委外出库 if (dy0 < 0) {//只能超发一个 return AjaxResult.me().setSuccess(false).setMessage("只能超发一个不能出库了!"); } diff --git a/zi-wms-pda/src/main/java/com/cim/idm/dao/ToSapDao.java b/zi-wms-pda/src/main/java/com/cim/idm/dao/ToSapDao.java index ff1d565..aead813 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/dao/ToSapDao.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/dao/ToSapDao.java @@ -18,6 +18,9 @@ public interface ToSapDao { //基于boxList更新物料凭证及库存状态 public void updateStockState(@Param("boxList") List boxList,@Param("stockState") String stockState,@Param("undoId") String undoId,@Param("user") String user) throws Exception; + + // 更新history + public void updateStockStateHistory(@Param("boxList") List boxList,@Param("stockState") String stockState,@Param("undoId") String undoId,@Param("user") String user) throws Exception; //基于boxList更新物料凭证及库存状态 public void updateLocationStockState(@Param("boxList") List boxList,@Param("stockState") String stockState,@Param("undoId") String undoId,@Param("aimErpFactory") String aimErpFactory,@Param("aimErpLocation") String aimErpLocation,@Param("aimLOcationName") String aimLOcationName,@Param("user") String user) throws Exception; 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 732ead0..475b8a5 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,""); @@ -3192,7 +3192,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); @@ -3203,7 +3203,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,""); 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 be18fb5..a04e893 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 @@ -883,7 +883,7 @@ public class MaterialShipServiceImpl implements IMaterialShipService { setEventInfo.setUserColumns(hashMapPack); MaterialPackingServiceProxy.getMaterialPackingService().setEvent(mpKeyList, eventInfo, setEventInfo); //抛送MES数据 - untils.sendMaterialInfoToMES_NEW2(shipRequestName, "", materialPackingKeyList); + untils.sendMaterialInfoToMES_NEW2(shipRequestName, "", materialPackingKeyList,billCode,user); WlySaveUnDoInfo( billCode,commitDate); } @@ -896,7 +896,7 @@ public class MaterialShipServiceImpl implements IMaterialShipService { } // billCode=toSAPService.ProductionStockOut_NEW(shipRequestName, "SDK", eventUser,materialPackingKeyList); //抛送MES数据 - untils.sendMaterialInfoToMES_NEW(shipRequestName, "", materialPackingKeyList); + untils.sendMaterialInfoToMES_NEW(shipRequestName, "", materialPackingKeyList,billCode,user); //billCode = NCWServiceImpl.SaleOut2(shipRequestName, "SDK", eventUser,materialPackingKeyList,""); untils.SaveUnDoInfo_ForSap(materialPackingKeyList, billCode, eventInfo); diff --git a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/ProductIntoServiceImpl.java b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/ProductIntoServiceImpl.java index 470722d..f0daad5 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/ProductIntoServiceImpl.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/ProductIntoServiceImpl.java @@ -351,6 +351,7 @@ public class ProductIntoServiceImpl implements FGStockInService { // undoID = toSAPService.FGStockIn(pc, user, commitDate, opCode); //更新物料凭证和库存状态 toSapDao.updateStockState(boxList, "Stocked", undoID, user); + toSapDao.updateStockStateHistory(boxList, "Stocked", undoID, user); } //更新过账流水 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 c93d0b0..349358f 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 @@ -4,6 +4,7 @@ import com.cim.idm.exception.GlobalException; import com.cim.idm.framework.IDMFrameServiceProxy; import com.cim.idm.framework.data.EventInfo; import com.cim.idm.service.impl.MESServiceImpl; +import com.cim.idm.service.impl.ToSAPServiceImpl; import com.cim.idm.wmsextend.generic.GenericServiceProxy; import com.cim.idm.wmsextend.generic.errorHandler.CustomException; import com.cim.idm.wmspackage.materialpacking.MaterialPackingServiceProxy; @@ -11,6 +12,7 @@ import com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking; import com.cim.idm.wmspackage.materialpacking.management.data.MaterialPackingKey; import com.cim.idm.wmspackage.materialpacking.management.info.SetEventInfo; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -29,6 +31,9 @@ import java.util.Objects; @RequestMapping("/CommonUtils") @EnableAutoConfiguration public class CommonUtils { + + @Autowired + private ToSAPServiceImpl toSAPService; /** * 查询库位所在的仓库 @@ -668,7 +673,7 @@ public void SaveUnDoInfo_ForSap(List list, String undoid, EventInfo mak * @param receiveActNo 收货活动编号,用于指定收货活动 * @param boxList 箱号列表,包含所有需要发送的物料箱号 */ - public void sendMaterialInfoToMES_NEW(String invoiceNo,String receiveActNo,List boxList){ + public void sendMaterialInfoToMES_NEW(String invoiceNo,String receiveActNo,List boxList,String billCode,String user){ // 定义SQL查询语句,用于获取物料接收位置和接收工厂信息 String sql="SELECT m.ERPRECEIVELOCATION,m.ERPRECEIVEFACTORY FROM MATERIALSHIPREQUEST a,MATERIALSHIPREQUESTDETAIL m \r\n" + " WHERE m.SHIPREQUESTNAME =:SHIPREQUESTNAME and m.SHIPREQUESTNAME=a.SHIPREQUESTNAME " @@ -685,17 +690,27 @@ public void SaveUnDoInfo_ForSap(List list, String undoid, EventInfo mak // 创建MESServiceImpl实例,用于调用发送物料信息到MES系统的方法 MESServiceImpl mesService=new MESServiceImpl() ; // 调用MESServiceImpl的OutMaterialInfoSend_NEW方法,发送物料信息到MES系统 - mesService.OutMaterialInfoSend_NEW(invoiceNo, "SDK", receiveActNo, "", + String code = mesService.OutMaterialInfoSend_NEW(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 ); + + if("1".equals(code)) { + String undo = toSAPService.cancelShipInter(billCode, user); + if (undo == null ) { + throw new GlobalException("报送ERP失败,请联系IT处理!"); + } + } + } } catch (CustomException e) { // 异常处理:打印异常堆栈跟踪信息 e.printStackTrace(); - } - } + } catch (Exception e) { + throw new RuntimeException(e); + } + } - public void sendMaterialInfoToMES_NEW2(String invoiceNo,String receiveActNo,List boxList){ + public void sendMaterialInfoToMES_NEW2(String invoiceNo,String receiveActNo,List boxList, String billCode, String user){ // 定义SQL查询语句,用于获取物料接收位置和接收工厂信息 String sql="SELECT m.ERPRECEIVELOCATION,m.ERPRECEIVEFACTORY FROM MATERIALSHIPREQUEST a,MATERIALSHIPREQUESTDETAIL m \r\n" + " WHERE m.SHIPREQUESTNAME =:SHIPREQUESTNAME and m.SHIPREQUESTNAME=a.SHIPREQUESTNAME " @@ -712,15 +727,24 @@ public void SaveUnDoInfo_ForSap(List list, String undoid, EventInfo mak // 创建MESServiceImpl实例,用于调用发送物料信息到MES系统的方法 MESServiceImpl mesService=new MESServiceImpl() ; // 调用MESServiceImpl的OutMaterialInfoSend_NEW方法,发送物料信息到MES系统 - mesService.OutMaterialInfoSend_NEW2(invoiceNo, "SDK", receiveActNo, "", + String code = 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 ); + + if("1".equals(code)) { + String undo = toSAPService.cancelShipInter(billCode, user); + if (undo == null ) { + throw new GlobalException("报送ERP失败,请联系IT处理!"); + } + } } } catch (CustomException e) { // 异常处理:打印异常堆栈跟踪信息 e.printStackTrace(); - } - } + } catch (Exception e) { + throw new RuntimeException(e); + } + } /** * 更新BOX信息并插入UNDOINFO diff --git a/zi-wms-pda/src/main/resources/com/cim/idm/dao/ToSapDao.xml b/zi-wms-pda/src/main/resources/com/cim/idm/dao/ToSapDao.xml index 86a2af1..4bd58e9 100644 --- a/zi-wms-pda/src/main/resources/com/cim/idm/dao/ToSapDao.xml +++ b/zi-wms-pda/src/main/resources/com/cim/idm/dao/ToSapDao.xml @@ -55,6 +55,18 @@ #{box.materialPackingName} + + + UPDATE MATERIALPACKINGHISTORY + SET STOCKSTATE = #{stockState},UNDOID = #{undoId}, ERPLOCATION = #{aimErpLocation}, LOCATIONNAME = #{aimLOcationName}, ERPFACTORY = #{aimErpFactory}, + EVENTTIME = SYSDATE, + EVENTUSER = #{user}, + EVENTNAME = '产成品入库FGStockIn' + WHERE MATERIALPACKINGNAME IN + + #{box.materialPackingName} + + UPDATE MATERIALPACKING m