自动化立体仓库 - WMS系统
野心家
2025-01-08 3781b770ab12a34cc7861c4c4905e0ad2d4191db
完善erp对接:
1.下推-》2.查询-》3.保存-》4.提交-》5.审核
2个文件已添加
16个文件已修改
467 ■■■■ 已修改文件
src/main/java/com/zy/asrs/entity/Order.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/OrderDetl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/OrderMapper.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/OrderService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/ExecuteBillQueryScheduler.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/PushDowmOrderSyncScheduler.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/ReviewOrderSyncScheduler.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/SubmitOrderSyncScheduler.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/handler/ExecuteBillQueryHandler.java 205 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/handler/PushDowmOrderSyncHandler.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/handler/ReviewOrderSyncHandler.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java 89 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/handler/SubmitOrderSyncHandler.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/erp/kingdee/enums/KingDeeUtilType.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/OrderMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/Order.java
@@ -170,9 +170,9 @@
    private Integer accountDay;
    /**
     * 邮费支付类型 1: 在线支付  2: 货到付款
     * ERP下推ID
     */
    @ApiModelProperty(value= "邮费支付类型 1: 在线支付  2: 货到付款  ")
    @ApiModelProperty(value= "ERP下推ID")
    @TableField("post_fee_type")
    private Integer postFeeType;
src/main/java/com/zy/asrs/entity/OrderDetl.java
@@ -225,9 +225,9 @@
    private String suppCode;
    /**
     * 是否批次 1: 是  0: 否
     * 行ID
     */
    @ApiModelProperty(value= "是否批次 1: 是  0: 否  ")
    @ApiModelProperty(value= "行ID")
    @TableField("be_batch")
    private Integer beBatch;
src/main/java/com/zy/asrs/mapper/OrderMapper.java
@@ -25,6 +25,7 @@
    List<Order> selectCompleteMome1();
    List<Order> selectCompleteMome2();
    List<Order> selectCompleteMome3();
    List<Order> selectCompleteMome4();
    int addToLogTable(Order order);
    Integer checkDetlWorkQtyLess0(@Param("orderNo") String orderNo);
src/main/java/com/zy/asrs/service/OrderService.java
@@ -35,6 +35,8 @@
    List<Order> selectCompletemEmo3();
    List<Order> selectCompletemEmo4();
    List<Order> selectComplete2();
src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
@@ -184,6 +184,11 @@
    }
    @Override
    public List<Order> selectCompletemEmo4() {
        return this.baseMapper.selectCompleteMome4();
    }
    @Override
    public List<Order> selectComplete2() {
        return this.baseMapper.selectComplete2();
    }
src/main/java/com/zy/asrs/task/kingdee/ExecuteBillQueryScheduler.java
New file
@@ -0,0 +1,58 @@
package com.zy.asrs.task.kingdee;
import com.zy.asrs.entity.Order;
import com.zy.asrs.service.OrderService;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.task.kingdee.handler.ExecuteBillQueryHandler;
import com.zy.asrs.task.kingdee.handler.SaveOrderSyncHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
/**
 * Created by Monkey D. Luffy on 2023.10.21
 */
@Slf4j
@Component
public class ExecuteBillQueryScheduler {
    @Autowired
    private ExecuteBillQueryHandler executeBillQueryHandler;
    @Autowired
    private OrderService orderService;
    @Value("${erp.switch.SaveOrderSwitch}")
    private boolean SaveOrderSwitch;
    /**
     * 1.查询接口
     */
    @Scheduled(cron = "0/3 * * * * ? ")
    @Async("orderThreadPool")
    public synchronized void completeAndReport() {
        if (!SaveOrderSwitch) {
            return;
        }
        List<Order> orders = orderService.selectCompletemEmo1();
        for (Order order : orders) {
            try {
                ReturnT<String> result = executeBillQueryHandler.start(order);
                if (!result.isSuccess()) {
                    log.error("单据[orderNo={}]保存至erp失败", order.getOrderNo());
                }
            } catch (Exception e) {
                Order order1 = orderService.selectById(order.getId());
                order1.setUpdateTime(new Date());
                orderService.updateById(order1);
            }
        }
    }
}
src/main/java/com/zy/asrs/task/kingdee/PushDowmOrderSyncScheduler.java
@@ -27,8 +27,11 @@
    @Value("${erp.switch.PushDowmOrderSwitch}")
    private boolean PushDowmOrderSwitch;
    /**
     * 0.下推接口
     */
    @Scheduled(cron = "0/3 * * * * ? ")
    void login(){
    synchronized void  login(){
        if(!PushDowmOrderSwitch){
            return;
        }
src/main/java/com/zy/asrs/task/kingdee/ReviewOrderSyncScheduler.java
@@ -29,13 +29,16 @@
    @Value("${erp.switch.ReviewOrderSwitch}")
    private boolean ReviewOrderSwitch;
    /**
     * 4.审核接口
     */
    @Scheduled(cron = "0/3 * * * * ? ")
    @Async("orderThreadPool")
    public void completeAndReport(){
    public synchronized void completeAndReport(){
        if(!ReviewOrderSwitch){
            return;
        }
        List<Order> orders = orderService.selectCompletemEmo3();
        List<Order> orders = orderService.selectCompletemEmo4();
        for (Order order : orders) {
            try{
                ReturnT<String> result = reviewOrderSyncHandler.start(order);
src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java
@@ -29,13 +29,16 @@
    @Value("${erp.switch.SaveOrderSwitch}")
    private boolean SaveOrderSwitch;
    /**
     * 2.保存接口
     */
    @Scheduled(cron = "0/3 * * * * ? ")
    @Async("orderThreadPool")
    public void completeAndReport() {
    public synchronized void completeAndReport() {
        if (!SaveOrderSwitch) {
            return;
        }
        List<Order> orders = orderService.selectCompletemEmo1();
        List<Order> orders = orderService.selectCompletemEmo2();
        for (Order order : orders) {
            try {
src/main/java/com/zy/asrs/task/kingdee/SubmitOrderSyncScheduler.java
@@ -30,13 +30,16 @@
    @Value("${erp.switch.SubmitOrderSwitch}")
    private boolean SubmitOrderSwitch;
    /**
     * 3.提交接口
     */
    @Scheduled(cron = "0/3 * * * * ? ")
    @Async("orderThreadPool")
    public void completeAndReport(){
    public synchronized void completeAndReport(){
        if(!SubmitOrderSwitch){
            return;
        }
        List<Order> orders = orderService.selectCompletemEmo2();
        List<Order> orders = orderService.selectCompletemEmo3();
        for (Order order : orders) {
            try{
                ReturnT<String> result = submitOrderSyncHandler.start(order);
src/main/java/com/zy/asrs/task/kingdee/handler/ExecuteBillQueryHandler.java
New file
@@ -0,0 +1,205 @@
package com.zy.asrs.task.kingdee.handler;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.zy.asrs.entity.DocType;
import com.zy.asrs.entity.Order;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.service.ApiLogService;
import com.zy.asrs.service.DocTypeService;
import com.zy.asrs.service.OrderDetlService;
import com.zy.asrs.service.OrderService;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.common.utils.HttpHandler;
import com.zy.erp.kingdee.enums.KingDeeUtilType;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
/**
 * Created by Monkey D. Luffy on 2023.10.21
 */
@Slf4j
@Service
public class ExecuteBillQueryHandler extends AbstractHandler<String> {
    @Value("${erp.address.URL}")
    //端口
    private String URL;
    @Value("${erp.address.executeBillQuery}")
    //保存地址
    private String executeBillQuery;
    @Autowired
    private OrderService orderService;
    @Autowired
    private ApiLogService apiLogService;
    @Autowired
    private DocTypeService docTypeService;
    @Autowired
    private OrderDetlService orderDetlService;
    @Autowired
    private LoginAuthenticationHandler loginAuthenticationHandler;
    /**
     * 查询接口
     * 获取订单物料的ID
     *
     * @param order
     * @return
     */
    @Transactional
    public ReturnT<String> start(Order order) {
        List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
        if (Cools.isEmpty(orderDetls) || orderDetls.size() == 0) {
            return SUCCESS;
        }
        //登录金蝶r
        ReturnT<String> start = loginAuthenticationHandler.start();
        DocType docType = docTypeService.selectById(order.getDocType());
        if (null == docType) {
            return SUCCESS;
        }
        KingDeeUtilType kingDeeUtilType = KingDeeUtilType.get(docType.getDocName());
//        if (kingDeeUtilType.entryId!=2){
//            return SUCCESS;
//        }
        Date now = new Date();
        //条件拼接
        JSONObject data = new JSONObject();
        JSONObject jsonObject = new JSONObject();
//        jsonObject.put("Ids","100083");
        jsonObject.put("FormId", kingDeeUtilType.correspondingFormId);
        data.put("FormId", kingDeeUtilType.correspondingFormId);
        //查询字段 erp下发的订单ID、行ID、物料编号、数量
        jsonObject.put("FieldKeys", "fid,FEntity_FEntryID,FMaterialID.FNumber,"+kingDeeUtilType.anfme);
        List<JSONObject> filterStrings = new ArrayList<>();
        JSONObject filterString = new JSONObject();
        filterString.put("Left", "");
        filterString.put("FieldName", "FBILLNO");
        filterString.put("Compare", "=");
        filterString.put("Value", order.getShipCode());
        filterString.put("Right", "");
        filterString.put("Logic", "AND");
        filterStrings.add(filterString);
        jsonObject.put("FilterString", filterStrings);
        jsonObject.put("OrderString", "");
        jsonObject.put("TopRowCount", 0);
        jsonObject.put("StartRow", 0);
        jsonObject.put("Limit", 2000);
        jsonObject.put("SubSystemId", "");
        data.put("data", jsonObject);
        String add = data.toJSONString();
        //上报
        String response = "";
        boolean success = false;
        try {
            //获取Cookie值
            HashMap<String, Object> headers = new HashMap<>();
            headers.put("Cookie", start.getContent());
            response = new HttpHandler.Builder()
                    .setHeaders(headers)
                    .setUri(URL)
                    .setPath(executeBillQuery)
                    .setJson(add)
                    .setHttps(true)
                    .build()
                    .doPost();
            JSONArray jsonArray = JSON.parseArray(response);
            //保存完成原订单1转2 2.查询完成
            if (jsonArray.size() > 0) {
                for (int i = 0; i < jsonArray.size(); i++) {
                    for (OrderDetl orderDetl : orderDetls) {
                        JSONArray jsonArray1 = JSON.parseArray(jsonArray.get(i).toString());
                        if (jsonArray1.get(2).equals(orderDetl.getMatnr())) {
                            //跟新订单明细行号
                            orderDetl.setBeBatch(Integer.valueOf(jsonArray1.get(1).toString()));
                            if (Cools.isEmpty(orderDetl.getBatch())) {
                                orderDetlService.update(orderDetl, new EntityWrapper<OrderDetl>()
                                        .eq("order_no", order.getOrderNo())
                                        .eq("matnr", orderDetl.getMatnr()));
                            } else {
                                orderDetlService.update(orderDetl, new EntityWrapper<OrderDetl>()
                                        .eq("order_no", order.getOrderNo())
                                        .eq("matnr", orderDetl.getMatnr())
                                        .eq("batch", orderDetl.getBatch()));
                            }
                        }
                    }
                }
                //提交完成原订单1转2  2.查询完成
                success = true;
                order.setMemo("2");
                order.setUpdateTime(new Date());
                orderService.update(order, new EntityWrapper<Order>().eq("order_no", order.getOrderNo()));
            }
//            if (!bool1.equals("true") || !bool){
//                order.setSettle(7L);
//                order.setUpdateTime(new Date());
//                orderService.update(order,new EntityWrapper<Order>().eq("order_no",order.getOrderNo()));
//            }
        } catch (Exception e) {
            log.error("fail", e);
//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return FAIL.setMsg(e.getMessage());
        } finally {
            try {
                // 保存接口日志
                apiLogService.save(
                        "2.查询",
                        URL + executeBillQuery,
                        null,
                        "127.0.0.1",
                        add,
                        response,
                        success
                );
            } catch (Exception e) {
                log.error("", e);
            }
        }
        return SUCCESS;
    }
    public static Object findValueByKey(JSONObject json, String key) {
        Set<String> keySet = json.keySet();
        for (String k : keySet) {
            Object v = json.get(k);
            if (k.equals(key)) {
                return v;
            } else if (v instanceof JSONArray) {
                int size = ((JSONArray) v).size();
                for (int i = 0; i <= size - 1; i++) {
                    Object result = findValueByKey((JSONObject) ((JSONArray) v).get(i), key);
                    if (result != null) {
                        return result;
                    }
                }
            } else if (v instanceof JSONObject) {
                Object result = findValueByKey((JSONObject) v, key);
                if (result != null) {
                    return result;
                }
            }
        }
        return null;
    }
}
src/main/java/com/zy/asrs/task/kingdee/handler/PushDowmOrderSyncHandler.java
@@ -132,10 +132,12 @@
                if(bool){
                    //获取下推订单号
                    String number=rootNode.get("Result").get("ResponseStatus").get("SuccessEntitys").get(0).get("Number").asText();
                    int id=Integer.valueOf(rootNode.get("Result").get("ResponseStatus").get("SuccessEntitys").get(0).get("Id").asText());
                    success = true;
//                    order.setSettle(6L);
                    order.setMemo("1");
                    order.setShipCode(number);//下推订单号
                    order.setPostFeeType(id);//下推ID
                    order.setUpdateTime(new Date());
                    orderService.update(order,new EntityWrapper<Order>().eq("order_no",order.getOrderNo()));
@@ -150,7 +152,7 @@
            try {
                // 保存接口日志
                apiLogService.save(
                        "下推",
                        "1.下推",
                        URL+ pushDowmAudit,
                        null,
                        "127.0.0.1",
src/main/java/com/zy/asrs/task/kingdee/handler/ReviewOrderSyncHandler.java
@@ -64,11 +64,11 @@
        //条件拼接
        JSONObject dataJsonObject = new JSONObject();
        dataJsonObject.put("Numbers", "CGTL10124120003");
        dataJsonObject.put("ids", order.getPostFeeType());
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("data", dataJsonObject);
        jsonObject.put("FormId", kingDeeUtilType.ruleId);
        jsonObject.put("FormId", kingDeeUtilType.correspondingFormId);
        String add = jsonObject.toJSONString();
        //上报
        String response = "";
@@ -84,7 +84,7 @@
                    .setJson(add)
                    .build()
                    .doPost();
            JSONObject data = JSON.parseObject(response);
//            JSONObject data = JSON.parseObject(response);
            Object IsSuccess = findValueByKey(JSON.parseObject(response), "IsSuccess");
            String bool1 = IsSuccess.toString();
@@ -93,10 +93,10 @@
                JsonNode rootNode = objectMapper.readTree(response);
                boolean bool = rootNode.get("Result").get("ResponseStatus").get("IsSuccess").asBoolean();
                log.info("审核bool:" + bool);
                //审核完成原订单3转4  4.审核完成
                //审核完成原订单4转5  5.审核完成
                if (bool) {
                    success = true;
                    order.setMemo("4");//审核完成
                    order.setMemo("5");//审核完成
                    order.setUpdateTime(new Date());
@@ -123,7 +123,7 @@
            try {
                // 保存接口日志
                apiLogService.save(
                        " 审核",
                        "5.审核",
                        URL + outaddressAudit,
                        null,
                        "127.0.0.1",
src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java
@@ -71,73 +71,29 @@
//        }
        Date now = new Date();
        //条件拼接
        JSONObject jsonObjectFBillTypeID = new JSONObject();
        JSONObject jsonObjectFPickerId = new JSONObject();
        if (kingDeeUtilType.pakIn==1){
            jsonObjectFBillTypeID.put("FNUMBER","TLD01_SYS");
        }else {
            jsonObjectFBillTypeID.put("FNUMBER","TLD01_SYS");
            jsonObjectFPickerId.put("FStaffNumber","X0103_GLGW074_1");
        }
        JSONObject jsonObject=new JSONObject();
        jsonObject.put("FormId",kingDeeUtilType.correspondingFormId);
        JSONObject jsonObjectFStockOrgId = new JSONObject();
        jsonObjectFStockOrgId.put("FNUMBER","100");
        JSONObject model=new JSONObject();
        model.put("fid",order.getPostFeeType());
        JSONObject jsonObjectFOwnerIdHead = new JSONObject();
        jsonObjectFOwnerIdHead.put("FNUMBER","100");
        JSONObject jsonObjectFDEPTID = new JSONObject();
        jsonObjectFDEPTID.put("FNUMBER","CX");
        List<JSONObject> jsonObjects = new ArrayList<>();
        for (OrderDetl orderDetl:orderDetls){
            JSONObject jsonObjectFMATERIALID = new JSONObject();
            jsonObjectFMATERIALID.put("FNUMBER",orderDetl.getMatnr());
            JSONObject jsonObjectFSTOCKID = new JSONObject();
            jsonObjectFSTOCKID.put("FNUMBER","CK001");
            JSONObject jsonObjectFLOT = new JSONObject();
            jsonObjectFLOT.put("FNUMBER",orderDetl.getBatch());
            // 使用LinkedHashMap来保持插入顺序
            Map<String, Object> orderedMap = new LinkedHashMap<>();
            // 按照期望的顺序添加键值对
            orderedMap.put("FMATERIALID", jsonObjectFMATERIALID);
            orderedMap.put("FSTOCKID", jsonObjectFSTOCKID);
            orderedMap.put("FLOT", jsonObjectFLOT);
        JSONArray fEntitys = new JSONArray();
        for (OrderDetl orderDetl : orderDetls) {
            JSONObject fEntity = new JSONObject();
            fEntity.put("FEntryID",orderDetl.getBeBatch());
            //完成数量-已上报数量
            if(orderDetl.getQty().equals(0.0)){
                orderedMap.put("FQty", orderDetl.getQty());
                fEntity.put(kingDeeUtilType.anfme, orderDetl.getQty());
            }else{
                orderedMap.put("FQty", orderDetl.getQty()-orderDetl.getPrice());    // 将"FQty"放到最后
                fEntity.put(kingDeeUtilType.anfme, orderDetl.getQty()-orderDetl.getPrice());    // 将"FQty"放到最后
            }
            JSONObject jsonObjectEnd = new JSONObject(orderedMap);
            jsonObjects.add(jsonObjectEnd);
            fEntitys.add(fEntity);
        }
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("FBillTypeID",jsonObjectFBillTypeID);
        if (kingDeeUtilType.pakIn==0){
            jsonObject.put("FPickerId",jsonObjectFPickerId);
        }
        jsonObject.put("FDate",DateUtils.convert(now, DateUtils.yyyyMMdd_F));
        jsonObject.put("FStockOrgId",jsonObjectFStockOrgId);
        jsonObject.put("FOwnerTypeIdHead","BD_OwnerOrg");
        jsonObject.put("FOwnerIdHead",jsonObjectFOwnerIdHead);
        jsonObject.put("FDEPTID",jsonObjectFDEPTID);
        jsonObject.put("FEntity",jsonObjects);
        JSONObject jsonObjectModel = new JSONObject();
        jsonObjectModel.put("Model",jsonObject);
        JSONObject jsonObject1 = new JSONObject();
        jsonObject1.put("data", jsonObjectModel);
        jsonObject1.put("FormId",kingDeeUtilType.correspondingFormId);
        String add = jsonObject1.toJSONString();
        model.put("FEntity",fEntitys);
        JSONObject  data= new JSONObject();
        data.put("Model",model);
        jsonObject.put("data",data);
        String add = jsonObject.toJSONString();
        //上报
        String response = "";
        boolean success = false;
@@ -153,20 +109,19 @@
                    .setHttps(true)
                    .build()
                    .doPost();
            JSONObject data = JSON.parseObject(response);
//            JSONObject data = JSON.parseObject(response);
            Object IsSuccess = findValueByKey(JSON.parseObject(response), "IsSuccess");
            String bool1=IsSuccess.toString();
            boolean bool = false;
            //保存完成原订单1转2 2.保存完成
            //保存完成原订单2转3 3.保存完成
            if(bool1.equals("true")){
                ObjectMapper objectMapper =  new ObjectMapper();
                JsonNode rootNode = objectMapper.readTree(response);
                bool = rootNode.get("Result").get("ResponseStatus").get("IsSuccess").asBoolean();
                log.info("保存bool:"+bool);
                //提交完成原订单1转2  2.上报完成
                //提交完成原订单2转3  3.上报完成
                if(bool){
                    success = true;
                    order.setMemo("2");
                    order.setMemo("3");
                    order.setUpdateTime(new Date());
                    orderService.update(order,new EntityWrapper<Order>().eq("order_no",order.getOrderNo()));
@@ -203,7 +158,7 @@
            try {
                // 保存接口日志
                apiLogService.save(
                        "保存",
                        "3.保存",
                        URL+ outaddressSave,
                        null,
                        "127.0.0.1",
src/main/java/com/zy/asrs/task/kingdee/handler/SubmitOrderSyncHandler.java
@@ -62,11 +62,11 @@
//        }
        //条件拼接
        JSONObject jsonObject = new JSONObject();
//        jsonObject.put("Ids","100083");
        jsonObject.put("Numbers", order.getOrderNo());
        jsonObject.put("Ids",order.getPostFeeType());
//        jsonObject.put("Numbers", order.getOrderNo());
        JSONObject jsonObject1 = new JSONObject();
        jsonObject1.put("data", jsonObject);
        jsonObject1.put("FormId",kingDeeUtilType.ruleId);
        jsonObject1.put("FormId",kingDeeUtilType.correspondingFormId);
        String add = jsonObject1.toJSONString();
        //上报
        String response = "";
@@ -91,11 +91,11 @@
                JsonNode rootNode = objectMapper.readTree(response);
                boolean bool = rootNode.get("Result").get("ResponseStatus").get("IsSuccess").asBoolean();
                log.info("审核bool:"+bool);
                //提交完成原订单2转3  3.提交完成
                //提交完成原订单3转4  4.提交完成
                if(bool){
                    success = true;
//                    order.setSettle(7L);
                    order.setMemo("3");
                    order.setMemo("4");
                    order.setUpdateTime(new Date());
                    orderService.update(order,new EntityWrapper<Order>().eq("order_no",order.getOrderNo()));
                }
@@ -108,7 +108,7 @@
            try {
                // 保存接口日志
                apiLogService.save(
                        "提交",
                        "4.提交",
                        URL+ outaddressSubmit,
                        null,
                        "127.0.0.1",
src/main/java/com/zy/erp/kingdee/enums/KingDeeUtilType.java
@@ -2,39 +2,41 @@
public enum KingDeeUtilType {
    SAL_DELIVERYNOTICE1(1, "发货通知单-销售出库单","SAL_DELIVERYNOTICE","FQty","销售出库单","SAL_OUTSTOCK",0,"DeliveryNotice-Outstock",0),
    SAL_DELIVERYNOTICE1(1, "发货通知单-销售出库单","SAL_DELIVERYNOTICE","FRealQty","销售出库单","SAL_OUTSTOCK",0,"DeliveryNotice-Outstock",0),
    //米多青岛
    SAL_DELIVERYNOTICE2(2, "试用品发货通知单-其他出库单","SAL_DELIVERYNOTICE","","其他出库单","STK_MisDelivery",0,"731ce15d-c58d-4c21-96f9-d121c0a7b255",0),
    SAL_DELIVERYNOTICE2(2, "试用品发货通知单-其他出库单","SAL_DELIVERYNOTICE","FQty","其他出库单","STK_MisDelivery",0,"731ce15d-c58d-4c21-96f9-d121c0a7b255",0),
    /*
    * 退货通知单至销售退货单单据唯一标识:一级:SalReturnNotice-SalReturnstock  二级:a0ab8e5c-5224-4ba2-b31f-b061e64aa1a2
    * */
    SAL_RETURNNOTICE(3, "退货通知单-销售退货单","SAL_RETURNNOTICE","","销售退货单","SAL_RETURNSTOCK",1,"SalReturnNotice-SalReturnstock",0),
    SAL_RETURNNOTICE(3, "退货通知单-销售退货单","SAL_RETURNNOTICE","FRealQty","销售退货单","SAL_RETURNSTOCK",1,"SalReturnNotice-SalReturnstock",0),
    /*
    * 采购收料单至采购入库单唯一标识:一级:PUR_ReceiveBill-STK_InStock  二级:b60e30ca-634c-4f92-b874-db9837496705
    * */
    PUR_ReceiveBill(4, "收料通知单-采购入库单","PUR_ReceiveBill","","采购入库单","STK_InStock",1,"PUR_ReceiveBill-STK_InStock",0),
    PUR_ReceiveBill(4, "收料通知单-采购入库单","PUR_ReceiveBill","FRealQty","采购入库单","STK_InStock",1,"PUR_ReceiveBill-STK_InStock",0),
    /*
    * 退料申请单至采购退料单单据唯一标识:PUR_MRAPP-PUR_MRB
    * */
    PUR_MRAPP(5, "退料申请单-采购退料单","PUR_MRAPP","","采购退料单","TLD01_SYS",1,"PUR_MRB",0),
    PUR_MRAPP(5, "退料申请单-采购退料单","PUR_MRAPP","FRealQty","采购退料单","TLD01_SYS",1,"PUR_MRB",0),
    /*
    * 生产用料清单到生产领料单唯一标识:一级:PRD_PPBOM2PICKMTRL_NORMAL  二级:3539ff08-0c46-435d-a8cd-b6308b0b57b5
    * */
    PRD_PPBOM1(6, "生产用料清单-生产领料单","PRD_PPBOM","","生产领料单","PRD_PickMtrl",0,"PRD_PPBOM2PICKMTRL_NORMAL",1),
    PRD_PPBOM1(6, "生产用料清单-生产领料单","PRD_PPBOM","FActualQty","生产领料单","PRD_PickMtrl",0,"PRD_PPBOM2PICKMTRL_NORMAL",1),
//    PRD_PPBOM2(7, "生产用料清单-生产补料单","PRD_PPBOM","","生产补料单","PRD_FeedMtrl",1,"PRD_PPBOM2FEEDMTRL",1),
    PRD_PPBOM2(7, "生产用料清单-生产补料单","PRD_PPBOM","","生产领料单","PRD_PickMtrl",0,"PRD_PPBOM2PICKMTRL_NORMAL",1),
    PRD_PPBOM2(7, "生产用料清单-生产补料单","PRD_PPBOM","FActualQty","生产领料单","PRD_PickMtrl",0,"PRD_PPBOM2PICKMTRL_NORMAL",1),
    PRD_PPBOM3(8, "生产用料清单-生产退料单","PRD_PPBOM","","生产退料单","PRD_ReturnMtrl",1,"PRD_PPBOM2RETURNMTRL",11),
    PRD_PPBOM3(8, "生产用料清单-生产退料单","PRD_PPBOM","FQty","生产退料单","PRD_ReturnMtrl",1,"PRD_PPBOM2RETURNMTRL",11),
    PRD_MO(9, "生产订单-生产入库单","PRD_MO","","生产入库单","PRD_INSTOCK",1,"PRD_MO2INSTOCK",0),
    PRD_MO(9, "生产订单-生产入库单","PRD_MO","FRealQty","生产入库单","PRD_INSTOCK",1,"PRD_MO2INSTOCK",0),
    PRD_MORPT(10, "生产汇报单-生产入库单","PRD_MORPT","","生产入库单","PRD_INSTOCK",1,"PRD_MORPT2INSTOCK",0),
    PRD_MORPT(10, "生产汇报单-生产入库单","PRD_MORPT","FRealQty","生产入库单","PRD_INSTOCK",1,"PRD_MORPT2INSTOCK",0),
    STK_TRANSFERAPPLY1(11, "直接调拨单","STK_TRANSFERAPPLY","","直接调拨单","STK_TransferDirect",0,"StkTransferApply-StkTransferDirect",10),
    //下面数量字段没有校验
    STK_OUTSTOCKAPPLY(12, "研发领料出库申请单-研发领料出库单","STK_OUTSTOCKAPPLY","","研发领料出库单","",0,"STK_OutstockApplyTosTK_MisDelivery",0),
    STK_TRANSFERAPPLY1(11, "直接调拨单","STK_TRANSFERAPPLY","FQty","直接调拨单","STK_TransferDirect",0,"StkTransferApply-StkTransferDirect",10),
    STK_OUTSTOCKAPPLY(12, "研发领料出库申请单-研发领料出库单","STK_OUTSTOCKAPPLY","FQty","研发领料出库单","",0,"STK_OutstockApplyTosTK_MisDelivery",0),
    STK_ASSEMBLY1(13, "组装拆卸单1","STK_ASSEMBLY","","","",1,"",10),
src/main/resources/application.yml
@@ -80,13 +80,15 @@
    loginaddress: K3CLOUD/Kingdee.BOS.WebApi.ServicesStub.AuthService.ValidateUser.common.kdsvc
    #单据,商品档案地址
    inaddress: K3CLOUD/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery.common.kdsvc
    #单据下推地址
    #1.单据下推地址
    pushDowmAudit: K3cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Push.common.kdsvc
    #结果上报(保存)单地址
    #2.结果上报(保存)单地址
    outaddressSave: K3CLOUD/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save.common.kdsvc
    #结果上报(提交)单地址
    #3.查询接口调用地址
    executeBillQuery: K3CLOUD/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery.common.kdsvc
    #4.结果上报(提交)单地址
    outaddressSubmit: K3Cloud/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit.common.kdsvc
    #结果上报(审核)单地址
    #5.结果上报(审核)单地址
    outaddressAudit: K3CLOUD/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit.common.kdsvc
  #  登录账号管理
  login :
src/main/resources/mapper/OrderMapper.xml
@@ -130,6 +130,15 @@
          and status = 1
        order by update_time asc
    </select>
    <select id="selectCompleteMome4" resultMap="BaseResultMap">
        select top 5 *
        from man_order
        where 1=1
          and memo = '4'
          and status = 1
        order by update_time asc
    </select>
    <select id="selectInOrOutOrders" resultMap="BaseResultMap">
        SELECT * FROM man_order o left join man_doc_type d on o.doc_type = d.doc_id WHERE d.pakin = #{flag} and o.settle in (1,2)
    </select>