新火炬后端单体项目初始化代码
zhangherong
7 天以前 1eefb88049771407e0d0f9c8711bd473e44a1ba6
art: SAP 生产订单报工、投料、关闭接口初始代码
已添加10个文件
已修改1个文件
426 ■■■■■ 文件已修改
src/main/java/org/jeecg/modules/sap/controller/SAPTestController.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/sap/dto/OrderLoadDTO.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/sap/dto/OrderReportDTO.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/sap/request/OrderLoadRequest.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/sap/request/OrderReportRequest.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/sap/service/OrderCloseService.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/sap/service/OrderLoadService.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/sap/service/OrderReportService.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/sap/service/impl/OrderCloseServiceImpl.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/sap/service/impl/OrderLoadServiceImpl.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/sap/service/impl/OrderReportServiceImpl.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/sap/controller/SAPTestController.java
@@ -4,14 +4,15 @@
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.sap.service.OrderBomSync;
import org.jeecg.modules.sap.service.OrderProcessSync;
import org.jeecg.modules.sap.service.ProductionOrderSync;
import org.jeecg.modules.sap.request.OrderLoadRequest;
import org.jeecg.modules.sap.request.OrderReportRequest;
import org.jeecg.modules.sap.service.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.math.BigDecimal;
import java.util.Map;
@Api(tags = "SAP集成测试")
@@ -41,6 +42,12 @@
    private OrderBomSync orderBomSync;
    @Autowired
    private OrderProcessSync orderProcessSync;
    @Autowired
    private OrderReportService orderReportService;
    @Autowired
    private OrderLoadService orderLoadService;
    @Autowired
    private OrderCloseService orderCloseService;
//    @ApiOperation(value = "SAP集成测试-测试接口", notes = "SAP集成测试-测试接口")
//    @GetMapping("/test")
@@ -71,4 +78,41 @@
        Map<String, Object> resultMap = orderProcessSync.syncOrderProcess(factoryCode, orderCode);
        return Result.ok(resultMap);
    }
    @ApiOperation(value = "SAP集成测试-工序报工", notes = "SAP集成测试-工序报工")
    @GetMapping("/productionOrderReport")
    public Result<?> productionOrderReport() throws Exception {
        OrderReportRequest request = new OrderReportRequest();
        request.setFactoryCode(factoryCode);
        request.setOrderCode("10711404");
        request.setWarehouseCode("7014"); //2# çº¿è¾¹åº“
        request.setProcessCode("0040");
        request.setQualifiedQuantity(new BigDecimal("180"));
        request.setScrapQuantity(new BigDecimal("0"));
        request.setKeyProcess("202505080102");
        Map<String, Object> resultMap = orderReportService.productionOrderReport(request);
        return Result.ok(resultMap);
    }
    @ApiOperation(value = "SAP集成测试-生产订单投料", notes = "SAP集成测试-生产订单投料")
    @GetMapping("/productionOrderLoad")
    public Result<?> productionOrderLoad() throws Exception {
        OrderLoadRequest request = new OrderLoadRequest();
        request.setFactoryCode(factoryCode);
        request.setOrderCode("10711404");
        request.setWarehouseCode("7014"); //2# çº¿è¾¹åº“
        request.setMaterialNumber("320013727");
        request.setQuantity(new BigDecimal("180"));
        request.setBatchNumber("202505080102");
        Map<String, Object> resultMap = orderLoadService.productionOrderLoad(request);
        return Result.ok(resultMap);
    }
    @ApiOperation(value = "SAP集成测试-生产订单关闭", notes = "SAP集成测试-生产订单关闭")
    @GetMapping("/productionOrderClose")
    public Result<?> productionOrderClose() throws Exception {
        String orderCode = "10711404";
        Map<String, Object> resultMap = orderCloseService.productionOrderClose(orderCode);
        return Result.ok(resultMap);
    }
}
src/main/java/org/jeecg/modules/sap/dto/OrderLoadDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,38 @@
package org.jeecg.modules.sap.dto;
import lombok.Data;
/**
 * æŠ•料返回结果
 */
@Data
public class OrderLoadDTO {
    /** æ¶ˆæ¯ç±»åž‹: S æˆåŠŸ,E é”™è¯¯,W è­¦å‘Š,I ä¿¡æ¯,A ä¸­æ–­ */
    private String TYPE;
    /** æ¶ˆæ¯ç±» */
    private String ID;
    /** æ¶ˆæ¯ç¼–号 */
    private String NUMBER;
    /** æ¶ˆæ¯æ–‡æœ¬ */
    private String MESSAGE;
    /** åº”用程序日志: æ—¥å¿—号  */
    private String LOG_NO;
    /** åº”用日志:内部邮件序列号 */
    private String LOG_MSG_NO;
    /** æ¶ˆæ¯å˜é‡ */
    private String MESSAGE_V1;
    /** æ¶ˆæ¯å˜é‡ */
    private String MESSAGE_V2;
    /** æ¶ˆæ¯å˜é‡ */
    private String MESSAGE_V3;
    /** æ¶ˆæ¯å˜é‡ */
    private String MESSAGE_V4;
    /** å‚数名称 */
    private String PARAMETER;
    /** å‚数中的行  */
    private String ROW;
    /** å‚数中的字段 */
    private String FIELD;
    /** å¼•发消息的逻辑系统 */
    private String SYSTEM;
}
src/main/java/org/jeecg/modules/sap/dto/OrderReportDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
package org.jeecg.modules.sap.dto;
import lombok.Data;
@Data
public class OrderReportDTO {
    /** æ¶ˆæ¯ç±»åž‹: S æˆåŠŸ,E é”™è¯¯,W è­¦å‘Š,I ä¿¡æ¯,A ä¸­æ–­ */
    private String TYPE;
    /** æ¶ˆæ¯ç±» */
    private String ID;
    /** æ¶ˆæ¯ç¼–号 */
    private String NUMBER;
    /** æ¶ˆæ¯æ–‡æœ¬ */
    private String MESSAGE;
    /** åº”用程序日志: æ—¥å¿—号  */
    private String LOG_NO;
    /** åº”用日志:内部邮件序列号 */
    private String LOG_MSG_NO;
    /** æ¶ˆæ¯å˜é‡ */
    private String MESSAGE_V1;
    /** æ¶ˆæ¯å˜é‡ */
    private String MESSAGE_V2;
    /** æ¶ˆæ¯å˜é‡ */
    private String MESSAGE_V3;
    /** æ¶ˆæ¯å˜é‡ */
    private String MESSAGE_V4;
    /** å‚数名称 */
    private String PARAMETER;
    /** å‚数中的行  */
    private String ROW;
    /** å‚数中的字段 */
    private String FIELD;
    /** å¼•发消息的逻辑系统 */
    private String SYSTEM;
    /** æ ‡è¯†ç¬¦: æ¡ç›®å†»ç»“ */
    private String FLG_LOCKED;
    /** æ“ä½œå®Œæˆçš„确认编号  */
    private String CONF_NO;
    /** ç¡®è®¤è®¡æ•°å™¨  */
    private String CONF_CNT;
}
src/main/java/org/jeecg/modules/sap/request/OrderLoadRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
package org.jeecg.modules.sap.request;
import lombok.Data;
import java.math.BigDecimal;
/**
 * æŠ•料请求参数
 */
@Data
public class OrderLoadRequest {
    /** MATNR ç‰©æ–™å· */
    private String materialNumber;
    /** WERKS ç‰©æ–™å· */
    private String factoryCode;
    /** LGORT åº“存地点 çº¿è¾¹ä»“编号  */
    private String warehouseCode;
    /** CHARG æ‰¹å·*/
    private String batchNumber;
    /** BWART ç§»åŠ¨ç±»åž‹(库存管理)*/
    private String moveType;
    /** MENGE æ•°é‡*/
    private BigDecimal quantity;
    /** MEINS åŸºæœ¬è®¡é‡å•位*/
    private String productionUnit;
    /** AUFNR è®¢å•号*/
    private String orderCode;
    /** SGTXT é¡¹ç›®æ–‡æœ¬ */
    private String itemContent;
    /** SOBKZ ç‰¹æ®Šåº“存标识 */
    private String specialStockFlag ;
    /** LIFNR ä¾›åº”商或债权人的帐号(供应商代码)*/
    private String supplierCode;
}
src/main/java/org/jeecg/modules/sap/request/OrderReportRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
package org.jeecg.modules.sap.request;
import lombok.Data;
import java.math.BigDecimal;
/**
 * ç”Ÿäº§è®¢å•工序报工、入库、不合格品
 * è¯·æ±‚ç±»
 */
@Data
public class OrderReportRequest {
    /** I_WERKS å·¥åŽ‚ */
    private String factoryCode;
    /** I_AUFNR è®¢å•号  */
    private String orderCode;
    /** I_VORNR å·¥åºç¼–号 */
    private String processCode;
    /** I_LMNGA åˆæ ¼æ•°é‡  */
    private BigDecimal qualifiedQuantity;
    /** I_LGORT åº“存地点 çº¿è¾¹ä»“编号  */
    private String warehouseCode;
    /** I_CHARG æ‰¹å· äº§å“æ‰¹æ¬¡å·ï¼ˆSAP8位,25070301) */
    private String batchNumber;
    /** I_SGTXT é¡¹ç›®æ–‡æœ¬  */
    private String itemContent;
    /** I_EQUNR è®¾å¤‡ç¼–号/资源编号  */
    private String equipmentCode;
    /** I_EXTID MES的产品二维码号,非必输  */
    private String qrCode;
    /** I_NC_QTY æŠ¥åºŸæ•°é‡  */
    private BigDecimal scrapQuantity;
    /** I_LOTNR å…³é”®å·¥åº/关键组件批次 */
    private String keyProcess;
    /** I_MODUL æ¨¡ç©´æ•°  */
    private String cavityNumber;
    /** I_SCRAP æŠ¥åºŸä¸šåŠ¡æ ‡è¯† */
    private String scrapFlag;
}
src/main/java/org/jeecg/modules/sap/service/OrderCloseService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
package org.jeecg.modules.sap.service;
import java.util.Map;
public interface OrderCloseService {
    /**
     * ç”Ÿäº§è®¢å•关闭
     * @param orderCode
     * @return
     * @throws Exception
     */
    Map<String, Object> productionOrderClose(String orderCode) throws Exception;
}
src/main/java/org/jeecg/modules/sap/service/OrderLoadService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
package org.jeecg.modules.sap.service;
import org.jeecg.modules.sap.request.OrderLoadRequest;
import java.util.Map;
public interface OrderLoadService {
    /**
     * ç”Ÿäº§è®¢å•投料
     * @param request
     * @return
     * @throws Exception
     */
    Map<String, Object> productionOrderLoad(OrderLoadRequest request) throws Exception;
}
src/main/java/org/jeecg/modules/sap/service/OrderReportService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package org.jeecg.modules.sap.service;
import org.jeecg.modules.sap.request.OrderReportRequest;
import java.util.Map;
/**
 * ç”Ÿäº§è®¢å•工序报工、入库、不合格品
 */
public interface OrderReportService {
    /**
     * å·¥åºæŠ¥å·¥ã€ç”Ÿäº§è®¢å•入库、不合格品处理
     * @param request
     * @return
     * @throws Exception
     */
    Map<String, Object> productionOrderReport(OrderReportRequest request) throws Exception;
}
src/main/java/org/jeecg/modules/sap/service/impl/OrderCloseServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,50 @@
package org.jeecg.modules.sap.service.impl;
import com.sap.conn.jco.JCoDestination;
import com.sap.conn.jco.JCoFunction;
import com.sap.conn.jco.JCoParameterList;
import com.sap.conn.jco.JCoRepository;
import lombok.extern.slf4j.Slf4j;
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.service.OrderCloseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
@Service
@Slf4j
public class OrderCloseServiceImpl implements OrderCloseService {
    @Autowired
    private SapRfcConnectionManager connectionManager;
    @Override
    @ApiLog(apiName = "生产订单关闭(ZPPF_019)", apiCategory = ApiLogCategoryEnum.SAP)
    public Map<String, Object> productionOrderClose(String orderCode) throws Exception {
        Map<String, Object> resultMap = new HashMap<>();
        JCoDestination destination = connectionManager.getDestination();
        JCoRepository repository = destination.getRepository();
        JCoFunction function = repository.getFunction(FunctionConst.ZPPF_019);
        if (function == null) {
            throw new RuntimeException("RFC å‡½æ•° ZPPF_019 æœªæ‰¾åˆ°ï¼");
        }
        //设置请求参数
        JCoParameterList importParameterList = function.getImportParameterList();
        importParameterList.setValue("AUFNR", orderCode);
        // æ‰§è¡Œè°ƒç”¨
        function.execute(destination);
        //获取返回结果
        String ztype = function.getExportParameterList().getTable("ZTYPE").toString();
        String zmess = function.getExportParameterList().getTable("ZMESS").toString();
        resultMap.put("zmess", zmess);
        resultMap.put("ztype", ztype);
        resultMap.put("importParameters", orderCode);
        resultMap.put("result", null);
        return resultMap;
    }
}
src/main/java/org/jeecg/modules/sap/service/impl/OrderLoadServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,66 @@
package org.jeecg.modules.sap.service.impl;
import com.sap.conn.jco.*;
import lombok.extern.slf4j.Slf4j;
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.request.OrderLoadRequest;
import org.jeecg.modules.sap.service.OrderLoadService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
@Service
@Slf4j
public class OrderLoadServiceImpl implements OrderLoadService {
    @Autowired
    private SapRfcConnectionManager connectionManager;
    @Override
    @ApiLog(apiName = "生产订单投料(ZMES_GOODSMVT_CREATE_2301)", apiCategory = ApiLogCategoryEnum.SAP)
    public Map<String, Object> productionOrderLoad(OrderLoadRequest request) throws Exception {
        Map<String, Object> resultMap = new HashMap<>();
        JCoDestination destination = connectionManager.getDestination();
        JCoRepository repository = destination.getRepository();
        JCoFunction function = repository.getFunction(FunctionConst.ZMES_GOODSMVT_CREATE_2301);
        if (function == null) {
            throw new RuntimeException("RFC å‡½æ•° ZMES_GOODSMVT_CREATE_2301 æœªæ‰¾åˆ°ï¼");
        }
        //设置请求参数
        JCoParameterList importParameterList = function.getImportParameterList();
        importParameterList.setValue("I_WERKS", request.getFactoryCode());
        importParameterList.setValue("I_AUFNR", request.getOrderCode());
        importParameterList.setValue("I_SGTXT", request.getItemContent());
        JCoTable table = function.getTableParameterList().getTable("T_ITEM");
        table.appendRow();
        table.setValue("MATNR", request.getMaterialNumber());
        table.setValue("WERKS", request.getFactoryCode());
        table.setValue("LGORT", request.getWarehouseCode());
        table.setValue("CHARG", request.getBatchNumber());
        table.setValue("BWART", request.getMoveType());
        table.setValue("MENGE", request.getQuantity());
        table.setValue("MEINS", request.getProductionUnit());
        table.setValue("AUFNR", request.getOrderCode());
        table.setValue("SGTXT", request.getItemContent());
        table.setValue("SOBKZ", request.getSpecialStockFlag());
        table.setValue("LIFNR", request.getSupplierCode());
        // æ‰§è¡Œè°ƒç”¨
        function.execute(destination);
        //获取返回结果
        JCoTable eReturn = function.getExportParameterList().getTable("E_RETURN");
        JCoTable tReturn1 = function.getTableParameterList().getTable("T_RETURN");
        String zmess = "";
        String ztype = "";//S æ ‡è¯† æˆåŠŸ
        resultMap.put("zmess", zmess);
        resultMap.put("ztype", ztype);
        resultMap.put("importParameters", request);
        resultMap.put("result", null);
        return resultMap;
    }
}
src/main/java/org/jeecg/modules/sap/service/impl/OrderReportServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,62 @@
package org.jeecg.modules.sap.service.impl;
import com.sap.conn.jco.*;
import lombok.extern.slf4j.Slf4j;
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.request.OrderReportRequest;
import org.jeecg.modules.sap.service.OrderReportService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
@Service
@Slf4j
public class OrderReportServiceImpl implements OrderReportService {
    @Autowired
    private SapRfcConnectionManager connectionManager;
    @Override
    @ApiLog(apiName = "工序报工、生产订单入库、不合格品处理(ZMES_PRODORDCONF_CREATE_TT2301)", apiCategory = ApiLogCategoryEnum.SAP)
    public Map<String, Object> productionOrderReport(OrderReportRequest request) throws Exception {
        Map<String, Object> resultMap = new HashMap<>();
        JCoDestination destination = connectionManager.getDestination();
        JCoRepository repository = destination.getRepository();
        JCoFunction function = repository.getFunction(FunctionConst.ZMES_PRODORDCONF_CREATE_TT2301);
        if (function == null) {
            throw new RuntimeException("RFC å‡½æ•° ZMES_PRODORDCONF_CREATE_TT2301 æœªæ‰¾åˆ°ï¼");
        }
        //设置请求参数
        JCoParameterList importParameterList = function.getImportParameterList();
        importParameterList.setValue("I_WERKS", request.getFactoryCode());
        importParameterList.setValue("I_AUFNR", request.getOrderCode());
        importParameterList.setValue("I_VORNR", request.getProcessCode());
        importParameterList.setValue("I_LMNGA", request.getQualifiedQuantity());
        importParameterList.setValue("I_LGORT", request.getWarehouseCode());
        importParameterList.setValue("I_CHARG", request.getBatchNumber());
        importParameterList.setValue("I_SGTXT", request.getItemContent());
        importParameterList.setValue("I_EQUNR", request.getEquipmentCode());
        importParameterList.setValue("I_EXTID", request.getQrCode());
        importParameterList.setValue("I_NC_QTY", request.getScrapQuantity());
        importParameterList.setValue("I_LOTNR", request.getKeyProcess());
        importParameterList.setValue("I_MODUL", request.getCavityNumber());
        importParameterList.setValue("I_SCRAP", request.getScrapFlag());
        // æ‰§è¡Œè°ƒç”¨
        function.execute(destination);
        //获取返回结果
        JCoTable eReturn = function.getExportParameterList().getTable("E_RETURN");
        JCoTable tReturn1 = function.getTableParameterList().getTable("T_RETURN");
        String zmess = "";
        String ztype = "";//S æ ‡è¯† æˆåŠŸ
        resultMap.put("zmess", zmess);
        resultMap.put("ztype", ztype);
        resultMap.put("importParameters", request);
        resultMap.put("result", null);
        return resultMap;
    }
}