From 5b999730e081bb5ba934ebf361280ca477a0e714 Mon Sep 17 00:00:00 2001
From: cuijian <cuijian@xalxzn.com>
Date: 星期四, 14 八月 2025 17:03:04 +0800
Subject: [PATCH] 工厂建模功能调整
---
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