From afb71a0770acc36a6e062aecf2dfc1c92d2d80a7 Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期二, 12 八月 2025 11:59:09 +0800 Subject: [PATCH] art: SAP 物料请求预留号接口调试 --- src/main/java/org/jeecg/modules/sap/service/impl/ProductionOrderSyncImpl.java | 204 ++++++++++++++++++++++++++++++-------------------- 1 files changed, 123 insertions(+), 81 deletions(-) diff --git a/src/main/java/org/jeecg/modules/sap/service/impl/ProductionOrderSyncImpl.java b/src/main/java/org/jeecg/modules/sap/service/impl/ProductionOrderSyncImpl.java index ed2c10b..2f39fda 100644 --- a/src/main/java/org/jeecg/modules/sap/service/impl/ProductionOrderSyncImpl.java +++ b/src/main/java/org/jeecg/modules/sap/service/impl/ProductionOrderSyncImpl.java @@ -1,16 +1,25 @@ package org.jeecg.modules.sap.service.impl; -import com.sap.conn.jco.*; +import com.sap.conn.jco.JCoDestination; +import com.sap.conn.jco.JCoFunction; +import com.sap.conn.jco.JCoRepository; +import com.sap.conn.jco.JCoTable; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.jeecg.common.aspect.annotation.ApiLog; +import org.jeecg.common.constant.ApiLogCategoryEnum; import org.jeecg.config.sap.SapRfcConnectionManager; import org.jeecg.modules.sap.FunctionConst; import org.jeecg.modules.sap.dto.ProductionOrderDTO; +import org.jeecg.modules.sap.request.ProductionOrderSyncRequest; import org.jeecg.modules.sap.service.ProductionOrderSync; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 鐢熸垚璁㈠崟鍚屾鏈嶅姟 @@ -18,98 +27,131 @@ @Service @Slf4j public class ProductionOrderSyncImpl implements ProductionOrderSync { - //鏂扮伀鐐伐鍘傜紪鐮� - private static final String factoryCode = "2301"; - //鏍囧噯鐢熶骇璁㈠崟 - private static final String orderTypeCode1 = "Z001"; - //杩斿伐璁㈠崟 鏆傛椂涓嶇敤 - private static final String orderTypeCode2 = "Z002"; - //鍏垎鍘傝皟搴﹀憳 -// private static final String productionManager = "012"; - private static final String productionManager = "010"; - //鐢熶骇璁㈠崟鐘舵�� CRTD 鏂板缓锛孯EL 涓嬭揪锛孴ECO 鍏抽棴 瀹為檯涓婏紝鍙湁REL鐘舵�佺殑宸ュ崟鎵嶅彲浠ヨ繘琛屾搷浣� - private static final String orderStatus = "REL"; @Autowired private SapRfcConnectionManager connectionManager; - @Override - public void syncProductionOrder() { + @ApiLog(apiName = "鐢熶骇璁㈠崟鍚屾(ZPPF_033_1)", apiCategory = ApiLogCategoryEnum.SAP) + public Map<String, Object> syncProductionOrder(ProductionOrderSyncRequest request) throws Exception { + Map<String, Object> resultMap = new HashMap<>(); JCoDestination destination = connectionManager.getDestination(); - try { - JCoRepository repository = destination.getRepository(); - JCoFunction function = repository.getFunction(FunctionConst.ZPPF_033_1); - if (function == null) { - throw new RuntimeException("RFC 鍑芥暟 ZPPF_033_1 鏈壘鍒帮紒"); + JCoRepository repository = destination.getRepository(); + JCoFunction function = repository.getFunction(FunctionConst.ZPPF_033_1); + if (function == null) { + throw new RuntimeException("RFC 鍑芥暟 ZPPF_033_1 鏈壘鍒帮紒"); + } + // 璁剧疆杈撳叆鍙傛暟 + //璁㈠崟鍙锋煡璇㈡潯浠� + if (StringUtils.isNotBlank(request.getOrderCode())) { + JCoTable AUFNRTable = function.getTableParameterList().getTable("ZTAB_AUFNR"); + String[] split = request.getOrderCode().split(","); + for (String code : split) { + AUFNRTable.appendRow(); + AUFNRTable.setValue("AUFNR", code); } - // 璁剧疆杈撳叆鍙傛暟 - //璁㈠崟鍙锋煡璇㈡潯浠� -// JCoTable AUFNRTable = function.getTableParameterList().getTable("ZTAB_AUFNR"); - //璁㈠崟绫诲瀷 鏍囧噯鐢熶骇璁㈠崟 + } + //璁㈠崟绫诲瀷 鏍囧噯鐢熶骇璁㈠崟 + if (StringUtils.isNotBlank(request.getOrderTypeCode())) { JCoTable AUARTTable = function.getTableParameterList().getTable("ZTAB_AUART"); - AUARTTable.appendRow(); - AUARTTable.setValue("AUART", orderTypeCode1); - //鍏垎鍘傝皟搴� + String[] split = request.getOrderTypeCode().split(","); + for (String code : split) { + AUARTTable.appendRow(); + AUARTTable.setValue("AUART", code); + } + } + if (StringUtils.isNotBlank(request.getProductionManager())) { JCoTable FEVORTable = function.getTableParameterList().getTable("ZTAB_FEVOR"); - FEVORTable.appendRow(); - FEVORTable.setValue("FEVOR", productionManager); + String[] split = request.getProductionManager().split(","); + for (String code : split) { + FEVORTable.appendRow(); + FEVORTable.setValue("FEVOR", code); + } + } + if (StringUtils.isNotBlank(request.getFactoryCode())) { //鏂扮伀鐐� JCoTable WERKSTable = function.getTableParameterList().getTable("ZTAB_WERKS"); - WERKSTable.appendRow(); - WERKSTable.setValue("WERKS", factoryCode); - //璁㈠崟鐘舵�� - JCoTable TXT04Table = function.getTableParameterList().getTable("ZTAB_TXT04"); - TXT04Table.appendRow(); - TXT04Table.setValue("TXT04", orderStatus); - // 鎵ц璋冪敤 - function.execute(destination); - //鑾峰彇杩斿洖缁撴灉 - String zmess = function.getExportParameterList().getValue("ZMESS").toString(); - String ztype = function.getExportParameterList().getValue("ZTYPE").toString();//S 鏍囪瘑 鎴愬姛 - if(!"S".equals(ztype)){ - log.error("鑾峰彇璁㈠崟淇℃伅澶辫触锛孼TYPE={}, ZMESS={}", ztype, zmess); - return; + String[] split = request.getFactoryCode().split(","); + for (String code : split) { + WERKSTable.appendRow(); + WERKSTable.setValue("WERKS", code); } - // 鑾峰彇杈撳嚭鍙傛暟 - JCoTable outputTable = function.getTableParameterList().getTable("ZTAB_OUT"); - int numRows = outputTable.getNumRows(); - List<ProductionOrderDTO> resultList = new ArrayList<>(); - ProductionOrderDTO dto; - for (int i = 0; i < numRows; i++) { - outputTable.setRow(i); - dto = new ProductionOrderDTO(); - dto.setKDPOS(outputTable.getString("KDPOS")); - dto.setCHARG(outputTable.getString("CHARG")); - dto.setMAKTX(outputTable.getString("MAKTX")); - dto.setMATNR(outputTable.getString("MATNR")); - dto.setKDAUF(outputTable.getString("KDAUF")); - dto.setAUFNR(outputTable.getString("AUFNR")); - dto.setDAUAT(outputTable.getString("DAUAT")); - dto.setGAMNG(outputTable.getString("GAMNG")); - dto.setGMEIN(outputTable.getString("GMEIN")); - dto.setAPRIO(outputTable.getString("APRIO")); - dto.setAUFPL(outputTable.getString("AUFPL")); - dto.setSTLNR(outputTable.getString("STLNR")); - dto.setDWERK(outputTable.getString("DWERK")); - dto.setNAME1(outputTable.getString("NAME1")); - dto.setFEVOR(outputTable.getString("FEVOR")); - dto.setTXT(outputTable.getString("TXT")); - dto.setUSNAM(outputTable.getString("USNAM")); - dto.setUDATE(outputTable.getString("UDATE")); - dto.setLAEDA(outputTable.getString("LAEDA")); - dto.setTIMES(outputTable.getString("TIMES")); - dto.setTXT04(outputTable.getString("TXT04")); - dto.setTXT30(outputTable.getString("TXT30")); - dto.setGSTRP(outputTable.getString("GSTRP")); - dto.setGLTRP(outputTable.getString("GLTRP")); - - //娣诲姞缁撴灉闆� - resultList.add(dto); - log.info(dto.toString()); - } - } catch (JCoException e) { - log.error(e.getMessage(), e); } + if (StringUtils.isNotBlank(request.getOrderStatus())) { + //鏂扮伀鐐� + JCoTable TXT04Table = function.getTableParameterList().getTable("ZTAB_TXT04"); + String[] split = request.getOrderStatus().split(","); + for (String code : split) { + TXT04Table.appendRow(); + TXT04Table.setValue("TXT04", code); + } + } + if (StringUtils.isNotBlank(request.getCreateTimeLow())) { + JCoTable UDATETable = function.getTableParameterList().getTable("ZTAB_UDATE"); + UDATETable.appendRow(); + UDATETable.setValue("LOW", request.getCreateTimeLow()); + } + if (StringUtils.isNotBlank(request.getCreateTimeHigh())) { + JCoTable UDATETable = function.getTableParameterList().getTable("ZTAB_UDATE"); + UDATETable.appendRow(); + UDATETable.setValue("HIGH", request.getCreateTimeHigh()); + } + if (StringUtils.isNotBlank(request.getUpdateTimeLow())) { + JCoTable LAEDATable = function.getTableParameterList().getTable("ZTAB_LAEDA"); + LAEDATable.appendRow(); + LAEDATable.setValue("LOW", request.getUpdateTimeLow()); + } + if (StringUtils.isNotBlank(request.getUpdateTimeHigh())) { + JCoTable LAEDATable = function.getTableParameterList().getTable("ZTAB_LAEDA"); + LAEDATable.appendRow(); + LAEDATable.setValue("HIGH", request.getUpdateTimeHigh()); + } + // 鎵ц璋冪敤 + function.execute(destination); + //鑾峰彇杩斿洖缁撴灉 + String zmess = function.getExportParameterList().getValue("ZMESS").toString(); + String ztype = function.getExportParameterList().getValue("ZTYPE").toString();//S 鏍囪瘑 鎴愬姛 + // 鑾峰彇杈撳嚭鍙傛暟 + JCoTable outputTable = function.getTableParameterList().getTable("ZTAB_OUT"); + int numRows = outputTable.getNumRows(); + List<ProductionOrderDTO> resultList = new ArrayList<>(); + ProductionOrderDTO dto; + for (int i = 0; i < numRows; i++) { + outputTable.setRow(i); + dto = new ProductionOrderDTO(); + dto.setKDPOS(outputTable.getString("KDPOS")); + dto.setCHARG(outputTable.getString("CHARG")); + dto.setMAKTX(outputTable.getString("MAKTX")); + dto.setMATNR(outputTable.getString("MATNR")); + dto.setKDAUF(outputTable.getString("KDAUF")); + dto.setAUFNR(outputTable.getString("AUFNR")); + dto.setDAUAT(outputTable.getString("DAUAT")); + dto.setGAMNG(outputTable.getString("GAMNG")); + dto.setGMEIN(outputTable.getString("GMEIN")); + dto.setAPRIO(outputTable.getString("APRIO")); + dto.setAUFPL(outputTable.getString("AUFPL")); + dto.setSTLNR(outputTable.getString("STLNR")); + dto.setDWERK(outputTable.getString("DWERK")); + dto.setNAME1(outputTable.getString("NAME1")); + dto.setFEVOR(outputTable.getString("FEVOR")); + dto.setTXT(outputTable.getString("TXT")); + dto.setUSNAM(outputTable.getString("USNAM")); + dto.setUDATE(outputTable.getString("UDATE")); + dto.setLAEDA(outputTable.getString("LAEDA")); + dto.setTIMES(outputTable.getString("TIMES")); + dto.setTXT04(outputTable.getString("TXT04")); + dto.setTXT30(outputTable.getString("TXT30")); + dto.setGSTRP(outputTable.getString("GSTRP")); + dto.setGLTRP(outputTable.getString("GLTRP")); + + //娣诲姞缁撴灉闆� + resultList.add(dto); + log.info(dto.toString()); + } + resultMap.put("zmess", zmess); + resultMap.put("ztype", ztype); + resultMap.put("importParameters", request); + resultMap.put("result", resultList); + return resultMap; } } -- Gitblit v1.9.3