自动化立体仓库 - WMS系统
1
zhangchao
2024-11-01 bf06377ea6bb5837430aeae88da5793ba44fe5b8
1
10个文件已修改
657 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/OpenController.java 337 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/Order.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/OrderLog.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/OrderProdSyncParam.java 179 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/OrderSyncParam.java 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/task/ActivateScheduler.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -1,18 +1,15 @@
package com.zy.asrs.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.core.annotations.AppAuth;
import com.core.common.BaseRes;
import com.core.common.Cools;
import com.core.common.R;
import com.core.exception.CoolException;
import com.zy.asrs.entity.DocType;
import com.zy.asrs.entity.param.CheckParam;
import com.zy.asrs.entity.param.MatSyncParam;
import com.zy.asrs.entity.param.OrderProdSyncParam;
import com.zy.asrs.entity.param.OrderSyncParam;
import com.zy.asrs.service.DocTypeService;
import com.zy.asrs.entity.param.*;
import com.zy.asrs.service.OpenService;
import com.zy.common.utils.Synchro;
import com.zy.common.web.BaseController;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -40,14 +37,12 @@
    @Autowired
    private OpenService openService;
    @Autowired
    private DocTypeService docTypeService;
    /**
     * 库存统计
     */
    @RequestMapping("/stock/default/v1")
    public R queryStock(@RequestHeader(required = false) String appkey, HttpServletRequest request) {
    public R queryStock(@RequestHeader(required = false) String appkey,
                        HttpServletRequest request) {
        auth(appkey, null, request);
        return R.ok().add(openService.queryStock());
    }
@@ -57,7 +52,9 @@
     */
    @PostMapping("/mat/v1")
    @AppAuth(memo = "物料同步接口")
    public synchronized R syncMatInfoErp(@RequestHeader(required = false) String appkey, @RequestBody(required = false) MatSyncParam param, HttpServletRequest request) {
    public synchronized R syncMatInfoErp(@RequestHeader(required = false) String appkey,
                                         @RequestBody(required = false) MatSyncParam param,
                                         HttpServletRequest request) {
        auth(appkey, param, request);
        if (Cools.isEmpty(param)) {
            return R.parse(BaseRes.PARAM);
@@ -86,26 +83,19 @@
    @PostMapping("/order/pak/default/v1")
    @AppAuth(memo = "生成退货补货单据")
    public synchronized R orderAccept(@RequestHeader(required = false) String appkey, @RequestBody(required = true) OrderSyncParam param, HttpServletRequest request) {
    public synchronized R orderAccept(@RequestHeader(required = false) String appkey,
                                      @RequestBody(required = true) OrderSyncParam param,
                                      HttpServletRequest request) {
        log.info("生成退货补货单据,{}", JSON.toJSONString(param));
        auth(appkey, param, request);
        if (Cools.isEmpty(param)) {
            return R.parse(BaseRes.PARAM);
        }
        DocType type = getType(param.get操作单据(), param.getChildren().get(0).getIQuantity());
        if (!Cools.isEmpty(type)) {
            if (type.getPakin() == 1) {
                openService.syncOrder(param, true, type.getDocName());
            } else {
                openService.syncOrder(param, false, type.getDocName());
            }
        } else {
            return R.ok("单据接受失败,不是约定的单据l类型");
        }
//        String docName = param.get操作单据();
//        boolean pakin = param.getPakin() == 1 ? true : false;
//
//        openService.syncOrder(param, pakin, docName);
        String docName = param.get操作单据();
        boolean pakin = param.getPakin() == 1 ? true : false;
        openService.syncOrder(param, pakin, docName);
        return R.ok("单据接受成功");
@@ -113,26 +103,64 @@
    @PostMapping("/order/pakin/default/v1")
    @AppAuth(memo = "生成入库单据")
    public synchronized R orderPakin(@RequestHeader(required = false) String appkey, @RequestBody(required = true) OrderSyncParam param, HttpServletRequest request) {
        log.info("生成入库单据,{}", JSON.toJSONString(param));
    public synchronized R orderPakin(@RequestHeader(required = false) String appkey,
                                     @RequestBody Map<String, Object> map,
                                     HttpServletRequest request) {
        log.info("生成入库单据,{}", JSON.toJSONString(map));
        OrderProdSyncParam param = JSON.parseObject(JSON.toJSONString(map), OrderProdSyncParam.class);
        auth(appkey, param, request);
        if (Cools.isEmpty(param)) {
            return R.parse(BaseRes.PARAM);
        }
//        String docName = !Cools.isEmpty(param.getOrderType()) ? param.getOrderType() : param.getChildren().get(0).getIQuantity() > 0 ? "银座采购入库单" : "银座采购退货单";
//        boolean pakin = param.getChildren().get(0).getIQuantity() > 0 ? true : false;
        DocType type = getType(param.get操作单据(), param.getChildren().get(0).getIQuantity());
        if (!Cools.isEmpty(type)) {
            if (type.getPakin() == 1) {
                openService.syncOrder(param, true, type.getDocName());
            } else {
                openService.syncOrder(param, false, type.getDocName());
            }
        } else {
            return R.ok("单据接受失败,不是约定的单据l类型");
        if (Cools.isEmpty(param.getOrderNo()) && Cools.isEmpty(param.getCPOID())) {
            return R.parse(BaseRes.PARAM);
        }
        String docName = param.get操作单据();
        switch (docName) {
            case "Purchase":
                mappingPakOutOrderParam(param, true, "银座采购入库单");
                break;
            case "MO":
                mappingPakInOrderParam(param, true, "银座委外生产订单");
                if (!Cools.isEmpty(param.getChildren())) {
                    mappingOrderParamChild(param, false, "银座委外生产材料出库单");
                }
                break;
            case "OM":
                mappingPakInOrderParam(param, true, "银座生产订单");
                if (!Cools.isEmpty(param.getChildren())) {
                    mappingOrderParamChild(param, false, "银座生产材料出库单");
                }
                break;
            case "采购入库单退货":
                mappingPakOutOrderParam(param, false, "银座采购入库单退货");
                break;
            case "委外入库单退货":
                mappingPakOutOrderParam(param, false, "银座委外入库单退货");
                break;
            case "其他出库单":
                mappingPakOutOrderParam(param, false, "其他出库单");
                break;
            case "其他入库单":
                mappingPakOutOrderParam(param, true, "其他入库单");
                break;
            case "委外材料出库退料":
                mappingPakOutOrderParam(param, true, "银座委外材料出库退料");
                break;
            case "生产材料出库退料":
                mappingPakOutOrderParam(param, true, "银座生产材料出库退料");
                break;
            case "委外材料出库补料":
                mappingPakOutOrderParam(param, false, "银座委外材料出库补料");
                break;
            case "生产材料出库补料":
                mappingPakOutOrderParam(param, false, "银座生产材料出库补料");
                break;
            default:
                log.info("未知的单据类型:{}", docName);
                break;
        }
        return R.ok("单据接受成功");
    }
@@ -142,7 +170,9 @@
     */
    @PostMapping("/check/default/v1")
    @AppAuth(memo = "库存盘点")
    public synchronized R checkLoc(@RequestHeader(required = false) String appkey, @RequestBody(required = true) CheckParam param, HttpServletRequest request) {
    public synchronized R checkLoc(@RequestHeader(required = false) String appkey,
                                   @RequestBody CheckParam param,
                                   HttpServletRequest request) {
        auth(appkey, param, request);
        if (Cools.isEmpty(param)) {
            return R.parse(BaseRes.PARAM);
@@ -154,60 +184,88 @@
    }
    public static void main(String[] args) {
        String jsonString = "\n" +
                "{\"操作系统号\": \"004\",\"操作单据\": \"Purchase\",\"操作类型\": \"\",\"cPOID\":\"PO10047790\",\"cVenCode\":\"2HLSL\",\"cPersonCode\":\"\",\"cSCCode\":\"\",\"cexch_name\":\"CNY\",\"nflat\":\"1.0\",\"ddate\":\"2024-10-31 00:00:00.0\",\"cMemo\":\"同2407G027\",\"states\":\"0\", \"children\": [{\"ivouchrowno\": \"1\",\"cInvCode\": \"102010400264\",\"dArriveDate\": \"2024-11-20 00:00:00\",\"iQuantity\": \"1220.0000000000\",\"iTaxPrice\": \"3.250000\",\"iPerTaxRate\": \"13.000000\",\"cbMemo\": \"\",\"bomid\": \"\",\"iNum\": \"\",\"cDefine22\": \"2501G023-1\",\"cSource\": \"\",\"Rstates\": \"0\",\"iorderdid\": \"\",\"cFree1\": \"\",\"id\": \"1000260272\"},{\"ivouchrowno\": \"2\",\"cInvCode\": \"102010400265\",\"dArriveDate\": \"2024-11-20 00:00:00\",\"iQuantity\": \"1220.0000000000\",\"iTaxPrice\": \"3.250000\",\"iPerTaxRate\": \"13.000000\",\"cbMemo\": \"\",\"bomid\": \"\",\"iNum\": \"\",\"cDefine22\": \"2501G023-1\",\"cSource\": \"\",\"Rstates\": \"0\",\"iorderdid\": \"\",\"cFree1\": \"\",\"id\": \"1000260273\"},{\"ivouchrowno\": \"3\",\"cInvCode\": \"102020100561\",\"dArriveDate\": \"2024-11-20 00:00:00\",\"iQuantity\": \"1200.0000000000\",\"iTaxPrice\": \"0.150000\",\"iPerTaxRate\": \"13.000000\",\"cbMemo\": \"\",\"bomid\": \"\",\"iNum\": \"\",\"cDefine22\": \"2501G023-1\",\"cSource\": \"\",\"Rstates\": \"0\",\"iorderdid\": \"\",\"cFree1\": \"\",\"id\": \"1000260274\"},{\"ivouchrowno\": \"4\",\"cInvCode\": \"102020100562\",\"dArriveDate\": \"2024-11-20 00:00:00\",\"iQuantity\": \"1200.0000000000\",\"iTaxPrice\": \"0.150000\",\"iPerTaxRate\": \"13.000000\",\"cbMemo\": \"\",\"bomid\": \"\",\"iNum\": \"\",\"cDefine22\": \"2501G023-1\",\"cSource\": \"\",\"Rstates\": \"0\",\"iorderdid\": \"\",\"cFree1\": \"\",\"id\": \"1000260275\"},{\"ivouchrowno\": \"5\",\"cInvCode\": \"102010101502\",\"dArriveDate\": \"2024-11-20 00:00:00\",\"iQuantity\": \"1220.0000000000\",\"iTaxPrice\": \"3.000000\",\"iPerTaxRate\": \"13.000000\",\"cbMemo\": \"\",\"bomid\": \"\",\"iNum\": \"\",\"cDefine22\": \"2501G023-2\",\"cSource\": \"\",\"Rstates\": \"0\",\"iorderdid\": \"\",\"cFree1\": \"\",\"id\": \"1000260276\"},{\"ivouchrowno\": \"6\",\"cInvCode\": \"102010101503\",\"dArriveDate\": \"2024-11-20 00:00:00\",\"iQuantity\": \"1220.0000000000\",\"iTaxPrice\": \"3.000000\",\"iPerTaxRate\": \"13.000000\",\"cbMemo\": \"\",\"bomid\": \"\",\"iNum\": \"\",\"cDefine22\": \"2501G023-2\",\"cSource\": \"\",\"Rstates\": \"0\",\"iorderdid\": \"\",\"cFree1\": \"\",\"id\": \"1000260277\"},{\"ivouchrowno\": \"7\",\"cInvCode\": \"102020100561\",\"dArriveDate\": \"2024-11-20 00:00:00\",\"iQuantity\": \"1200.0000000000\",\"iTaxPrice\": \"0.150000\",\"iPerTaxRate\": \"13.000000\",\"cbMemo\": \"\",\"bomid\": \"\",\"iNum\": \"\",\"cDefine22\": \"2501G023-2\",\"cSource\": \"\",\"Rstates\": \"0\",\"iorderdid\": \"\",\"cFree1\": \"\",\"id\": \"1000260278\"},{\"ivouchrowno\": \"8\",\"cInvCode\": \"102020100562\",\"dArriveDate\": \"2024-11-20 00:00:00\",\"iQuantity\": \"1200.0000000000\",\"iTaxPrice\": \"0.150000\",\"iPerTaxRate\": \"13.000000\",\"cbMemo\": \"\",\"bomid\": \"\",\"iNum\": \"\",\"cDefine22\": \"2501G023-2\",\"cSource\": \"\",\"Rstates\": \"0\",\"iorderdid\": \"\",\"cFree1\": \"\",\"id\": \"1000260279\"}]}";
        OrderProdSyncParam param = new OrderProdSyncParam();
        OrderProdSyncParam orderProdSyncParam = JSON.parseObject(jsonString, OrderProdSyncParam.class);
        System.out.println(orderProdSyncParam.getCPOID());
    }
    @PostMapping("/order/pakout/default/v1")
    //@AppAuth(memo = "同步工单单据")
    @AppAuth(memo = "同步工单单据")
    public synchronized R orderPakout(@RequestHeader(required = false) String appkey,
                                      //@RequestBody(required = false) HashMap<String,Object> param,
                                      @RequestBody(required = false) OrderProdSyncParam param, HttpServletRequest request) {
        log.info("同步工单单据,{}", JSON.toJSONString(param));
        ///auth(appkey, param, request);
                                      @RequestBody Map<String, Object> map) {
        log.info("同步工单单据,{}", JSON.toJSONString(map));
        OrderProdSyncParam param = JSON.parseObject(JSON.toJSONString(map), OrderProdSyncParam.class);
        auth(appkey, param, request);
        if (Cools.isEmpty(param)) {
            return R.parse(BaseRes.PARAM);
        }
        DocType type = getType(param.get操作单据(), param.getIQuantity());
        if (!Cools.isEmpty(type)) {
            if (param.get操作单据().equals("MO")) {
                mappingPakInOrderParam(param, true, type.getDocName());
        if (Cools.isEmpty(param.getOrderNo()) && Cools.isEmpty(param.getCPOID())) {
            return R.parse(BaseRes.PARAM);
        }
        String docName = param.get操作单据();
        switch (docName) {
            case "Purchase":
                mappingPakOutOrderParam(param, true, "银座采购入库单");
                break;
            case "MO":
                mappingPakInOrderParam(param, true, "银座委外生产订单");
                if (!Cools.isEmpty(param.getChildren())) {
                    mappingPakOutOrderParam(param, false, "银座生产材料出库单");
                    mappingOrderParamChild(param, false, "银座委外生产材料出库单");
                }
            } else if (param.get操作单据().equals("OM")) {
                mappingPakInOrderParam(param, true, type.getDocName());
                break;
            case "OM":
                mappingPakInOrderParam(param, true, "银座生产订单");
                if (!Cools.isEmpty(param.getChildren())) {
                    mappingPakOutOrderParam(param, false, "银座委外材料出库单");
                    mappingOrderParamChild(param, false, "银座生产材料出库单");
                }
            } else {
                if (type.getPakin() == 1) {
                    mappingPakInOrderParam(param, true, type.getDocName());
                    if (!Cools.isEmpty(param.getChildren())) {
                        mappingPakOutOrderParam(param, false, type.getDocName());
                    }
                } else {
                    mappingPakOutOrderParam(param, false, type.getDocName());
                }
            }
        } else {
            return R.ok("单据接受失败,不是约定的单据l类型");
                break;
            case "采购入库单退货":
                mappingPakOutOrderParam(param, false, "银座采购入库单退货");
                break;
            case "委外入库单退货":
                mappingPakOutOrderParam(param, false, "银座委外入库单退货");
                break;
            case "其他出库单":
                mappingPakOutOrderParam(param, false, "其他出库单");
                break;
            case "其他入库单":
                mappingPakOutOrderParam(param, true, "其他入库单");
                break;
            case "委外材料出库退料":
                mappingPakOutOrderParam(param, true, "银座委外材料出库退料");
                break;
            case "生产材料出库退料":
                mappingPakOutOrderParam(param, true, "银座生产材料出库退料");
                break;
            case "委外材料出库补料":
                mappingPakOutOrderParam(param, false, "银座委外材料出库补料");
                break;
            case "生产材料出库补料":
                mappingPakOutOrderParam(param, false, "银座生产材料出库补料");
                break;
            default:
                log.info("未知的单据类型:{}", docName);
                break;
        }
//        if (!Cools.eq("生产", param.getCVouchtype())) {
//            String docName = param.getIQuantity() > 0 ? "银座委外入库单" : "银座委外入库退货单";
//            //String docName = param.getIQuantity() > 0 ? "银座委外入库单" : "银座委外入库退货单";
//            boolean pakin = param.getIQuantity() > 0 ? true : false;
//            mappingPakInOrderParam(param, pakin, docName);
//            mappingPakInOrderParam(param, pakin, param.get操作单据());
//
//            if (!Cools.isEmpty(param.getChildren())) {
//                String docName1 = param.getChildren().get(0).getIQuantity() > 0 ? "银座委外材料出库单" : "银座委外材料退料单";
//                //String docName1 = param.getChildren().get(0).getIQuantity() > 0 ? "银座委外材料出库单" : "银座委外材料退料单";
//                boolean pakin1 = param.getChildren().get(0).getIQuantity() > 0 ? true : false;
//                mappingPakOutOrderParam(param, pakin1, docName1);
//                mappingPakOutOrderParam(param, pakin1, param.getChildren().get(0).get操作单据());
//            }
//
//        } else if (!Cools.isEmpty(param.getChildren())) {
//            String docName1 = param.getChildren().get(0).getIQuantity() > 0 ? "银座生产材料出库单" : "银座生产材料退料单";
//            //String docName1 = param.getChildren().get(0).getIQuantity() > 0 ? "银座生产材料出库单" : "银座生产材料退料单";
//            boolean pakin1 = param.getChildren().get(0).getIQuantity() > 0 ? true : false;
//            mappingPakOutOrderParam(param, pakin1, docName1);
//            mappingPakOutOrderParam(param, pakin1, param.get操作单据());
//        }
        return R.ok("单据接受成功");
@@ -216,7 +274,9 @@
    @PostMapping("/order/delete/default/v1")
    @AppAuth(memo = "单据删除审核")
    public synchronized R orderDelete(@RequestHeader(required = false) String appkey, @RequestBody(required = false) Map<String, Object> param, HttpServletRequest request) {
    public synchronized R orderDelete(@RequestHeader(required = false) String appkey,
                                      @RequestBody(required = false) Map<String, Object> param,
                                      HttpServletRequest request) {
        log.info("单据删除审核,{}", JSON.toJSONString(param));
        auth(appkey, param, request);
        if (Cools.isEmpty(param)) {
@@ -236,17 +296,22 @@
    private void mappingPakInOrderParam(OrderProdSyncParam param, boolean pakin, String docName) {
        //生成单据主体
        OrderSyncParam orderSyncParam = new OrderSyncParam();
        orderSyncParam.set操作系统号(param.get操作系统号());
        orderSyncParam.setcPOID(param.getOrderNoT());
        orderSyncParam.setDdate(param.getOrderTime());
        orderSyncParam.setcMemo(param.getCMemo());
        Synchro.Copy(param, orderSyncParam);
        if (Cools.isEmpty(orderSyncParam.getCPOID())) {
            orderSyncParam.setCPOID(param.getOrderNoT());
        }
        if (Cools.isEmpty(orderSyncParam.getDdate())) {
            orderSyncParam.setDdate(param.getOrderTime());
        }
        //生成单据明细
        OrderSyncParam.OrderDetl orderDetl = new OrderSyncParam.OrderDetl();
        orderDetl.setcInvCode(param.getCInvCode());
        orderDetl.setiQuantity(param.getIQuantity());
        orderDetl.setcDefine22(param.getDefine24());
        orderDetl.setbFree1(param.getBFree1());
        Synchro.Copy(param,orderDetl);
        //orderDetl.setcInvCode(param.getCInvCode());
        //orderDetl.setiQuantity(param.getIQuantity());
        orderDetl.setCDefine22(param.getIvouchrowno());
        //orderDetl.setbFree1(param.getBFree1());
        orderDetl.setId(param.getId());
        orderDetl.setIvouchrowno(param.getIvouchrowno());
@@ -264,26 +329,56 @@
        //return orderSyncParam;
    }
    private void mappingPakOutOrderParam(OrderProdSyncParam param, boolean pakin, String docName) {
        OrderSyncParam orderSyncParam = new OrderSyncParam();
        List<OrderProdSyncParam.ChildInfo> child = param.getChildren();
        //生成单据主体
        orderSyncParam.set操作系统号(param.get操作系统号());
        orderSyncParam.setcPOID(child.get(0).getOrderNoT());
        orderSyncParam.setDdate(param.getOrderTime());
        orderSyncParam.setcMemo(param.getCMemo());
        Synchro.Copy(param, orderSyncParam);
        if (Cools.isEmpty(orderSyncParam.getCPOID())) {
            orderSyncParam.setCPOID(param.getOrderNoT());
            orderSyncParam.setDdate(param.getOrderTime());
        }
        //生成单据明细
        List<OrderSyncParam.OrderDetl> orderDetls = new ArrayList<>();
        for (OrderProdSyncParam.ChildInfo childInfo : child) {
            OrderSyncParam.OrderDetl orderDetl = new OrderSyncParam.OrderDetl();
            orderDetl.setcInvCode(childInfo.getCInvCode());
            orderDetl.setiQuantity(childInfo.getIQuantity());
            Synchro.Copy(childInfo, orderDetl);
            //orderDetl.setcInvCode(childInfo.getCInvCode());
            //orderDetl.setiQuantity(childInfo.getIQuantity());
            orderDetl.setCsocode(param.getCsocode());
            orderDetl.setbFree1(childInfo.getBFree1());
            //orderDetl.setbFree1(childInfo.getBFree1());
            orderDetl.setId(childInfo.getIds());
            orderDetl.setIvouchrowno(childInfo.getIvouchrowno());
            orderDetls.add(orderDetl);
        }
        orderSyncParam.setChildren(orderDetls);
        openService.syncOrder(orderSyncParam, pakin, docName);
        //return orderSyncParam;
    }
    private void mappingOrderParamChild(OrderProdSyncParam param, boolean pakin, String docName) {
        OrderSyncParam orderSyncParam = new OrderSyncParam();
        List<OrderProdSyncParam.ChildInfo> child = param.getChildren();
        Synchro.Copy(param, orderSyncParam);
        orderSyncParam.setCPOID(child.get(0).getOrderNoT());
        orderSyncParam.setDdate(param.getOrderTime());
        //生成单据明细
        List<OrderSyncParam.OrderDetl> orderDetls = new ArrayList<>();
        for (OrderProdSyncParam.ChildInfo childInfo : child) {
            OrderSyncParam.OrderDetl orderDetl = new OrderSyncParam.OrderDetl();
            Synchro.Copy(childInfo, orderDetl);
            orderDetl.setCDefine22(param.getIvouchrowno());
            orderDetl.setCsocode(param.getCsocode());
            orderDetl.setId(childInfo.getIds());
            orderDetl.setIvouchrowno(childInfo.getIvouchrowno());
@@ -291,62 +386,8 @@
        }
        orderSyncParam.setChildren(orderDetls);
        openService.syncOrder(orderSyncParam, false, docName);
        openService.syncOrder(orderSyncParam, pakin, docName);
        //return orderSyncParam;
    }
    private DocType getType(String type, Double iQuantity) {
        DocType docType = new DocType();
        switch (type) {
            case "Purchase":
                docType.setDocName("银座采购入库单");
                docType.setPakin(1);
                break;
            case "MO":
                docType.setDocName("银座生产订单");
                docType.setPakin(0);
                break;
            case "OM":
                docType.setDocName("银座委外生产订单");
                docType.setPakin(0);
                break;
            case "采购入库单退货":
                docType.setDocName("银座采购入库单退货单");
                docType.setPakin(0);
                break;
            case "委外入库单退货":
                docType.setDocName("银座委外入库单退货单");
                docType.setPakin(1);
                break;
            case "生产材料出库退料":
                docType.setDocName("银座生产材料出库退料单");
                docType.setPakin(1);
                break;
            case "委外材料出库退料":
                docType.setDocName("银座委外材料出库退料单");
                docType.setPakin(1);
                break;
            case "生产材料出库补料":
                docType.setDocName("银座生产材料出库补料单");
                docType.setPakin(0);
                break;
            case "委外材料出库补料":
                docType.setDocName("银座委外材料出库补料单");
                docType.setPakin(0);
                break;
            case "其他入库单":
                docType.setDocName("银座其他入库单");
                docType.setPakin(1);
                break;
            case "其他出库单":
                docType.setDocName("银座其他出库单");
                docType.setPakin(0);
                break;
            default:
                docType = docTypeService.selectOrAdd(type, iQuantity > 0);
        }
        return docType;
    }
}
src/main/java/com/zy/asrs/entity/Order.java
@@ -272,6 +272,9 @@
    @TableField("in_time")
    private String InTime;
    @TableField("Upstreamcode")
    private String Upstreamcode;
    public Order() {}
    public Order(String uuid,String orderNo,String orderTime,Long docType,Long itemId,String itemName,Long allotItemId,String defNumber,String number,Long cstmr,String cstmrName,String tel,String operMemb,Double totalFee,Double discount,Double discountFee,Double otherFee,Double actFee,Integer payType,String salesman,Integer accountDay,Integer postFeeType,Double postFee,Date payTime,Date sendTime,String shipName,String shipCode,Long settle,Integer status,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) {
src/main/java/com/zy/asrs/entity/OrderLog.java
@@ -271,6 +271,9 @@
    @TableField("in_time")
    private String InTime;
    @TableField("Upstreamcode")
    private String Upstreamcode;
    public OrderLog() {}
    public OrderLog(String uuid,String orderNo,String orderTime,Long docType,Long itemId,String itemName,Long allotItemId,String defNumber,String number,Long cstmr,String cstmrName,String tel,String operMemb,Double totalFee,Double discount,Double discountFee,Double otherFee,Double actFee,Integer payType,String salesman,Integer accountDay,Integer postFeeType,Double postFee,Date payTime,Date sendTime,String shipName,String shipCode,Long settle,Integer status,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) {
src/main/java/com/zy/asrs/entity/param/OrderProdSyncParam.java
@@ -9,6 +9,27 @@
    private String 操作系统号;
    private String 操作单据;
    private String 操作类型;
    private String Upstreamcode;
    //入出库标记
    private Integer pakin;
    //单据类型
    private String orderType;
    //订单编号
    private String cPOID;
    //供应商编码
    private String cVenCode;
    //订单所有人
    private String cPersonCode;
    //交货方式
    private String cSCCode;
    //币种
    private String cexch_name;
    //汇率
    private Double nflat;
    //单据日期
    private String ddate;
    //工单号
    private String orderNo;
    //工单号T
@@ -39,88 +60,57 @@
    private String prodIndefine;
    //
    private String id;
    //子件信息
    private List<ChildInfo> children;
    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }
    public void setOrderNoT(String orderNoT) {
        this.orderNoT = orderNoT;
    }
    public void setOrderTime(String orderTime) {
        this.orderTime = orderTime;
    }
    public void setIvouchrowno(String ivouchrowno) {
        this.ivouchrowno = ivouchrowno;
    }
    public void setcInvCode(String cInvCode) {
        this.cInvCode = cInvCode;
    }
    public void setCsocode(String csocode) {
        this.csocode = csocode;
    }
    public void setiQuantity(Double iQuantity) {
        this.iQuantity = iQuantity;
    }
    public void setStates(Integer states) {
        this.states = states;
    }
    public void setbFree1(String bFree1) {
        this.bFree1 = bFree1;
    }
    public void setDefine24(String define24) {
        this.define24 = define24;
    }
    public void setcVouchtype(String cVouchtype) {
        this.cVouchtype = cVouchtype;
    }
    public void setChild(List<ChildInfo> children) {
        this.children = children;
    }
    public void set操作系统号(String 操作系统号) {
        this.操作系统号 = 操作系统号;
    }
    public void set操作单据(String 操作单据) {
        this.操作单据 = 操作单据;
    }
    public void set操作类型(String 操作类型) {
        this.操作类型 = 操作类型;
    }
    public void setcMemo(String cMemo) {
        this.cMemo = cMemo;
    }
    public void setSourceIndefine(String sourceIndefine) {
        this.sourceIndefine = sourceIndefine;
    }
    public void setProdIndefine(String prodIndefine) {
        this.prodIndefine = prodIndefine;
    }
    /**
     * 用于生成出库单据
     */
    @Data
    public static class ChildInfo{
        //ID
    public static class ChildInfo {
        private String 操作系统号;
        private String 操作单据;
        private String 操作类型;
        //订单行号
        private String ivouchrowno;
        //物料编码
        private String cInvCode;
        //批号
        private String batch;
        //需求时间
        private String dArriveDate;
        //需求数量
        private Double iQuantity;
        //含税单价
        private Double iTaxPrice;
        //税率
        private Double iPerTaxRate;
        //行备注
        private String cbMemo;
        //件数
        private Double iNum;
        //单据来源
        private String cSource;
        //生产订单号(销售订单号)
        private String cDefine22;
        //行状态
        private String Rstates;
        //销售订单号 (参照销售订单生成)
        private String csocode;
        //规格(自由项1)
        private String bFree1;
        //采购订单子表标识
        private String id;
        //销售订单子表标识
        private String iorderdid;
        //ID
        // private String id;
        //IDs
        private String ids;
        //工单号T
@@ -128,52 +118,17 @@
        //工单号
        private String orderNo;
        //物料编码
        private String cInvCode;
        //private String cInvCode;
        //数量
        private Double iQuantity;
        // private Double iQuantity;
        //规格(自由项1)
        private String bFree1;
        // private String bFree1;
        //单据行号
        private String ivouchrowno;
        // private String ivouchrowno;
        //子件号
        private String childNo;
        public void setId(String id) {
            this.id = id;
        }
        public void setIds(String ids) {
            this.ids = ids;
        }
        public void setOrderNoT(String orderNoT) {
            this.orderNoT = orderNoT;
        }
        public void setcInvCode(String cInvCode) {
            this.cInvCode = cInvCode;
        }
        public void setiQuantity(Double iQuantity) {
            this.iQuantity = iQuantity;
        }
        public void setbFree1(String bFree1) {
            this.bFree1 = bFree1;
        }
        public void setOrderNo(String orderNo) {
            this.orderNo = orderNo;
        }
        public void setIvouchrowno(String ivouchrowno) {
            this.ivouchrowno = ivouchrowno;
        }
        public void setChildNo(String childNo) {
            this.childNo = childNo;
        }
    }
}
src/main/java/com/zy/asrs/entity/param/OrderSyncParam.java
@@ -11,11 +11,12 @@
    private String 操作单据;
    private String 操作类型;
    //入出库标记
    private Integer pakin;
    //单据类型
    private String orderType;
    private String Upstreamcode;
    //订单编号
    private String cPOID;
    //供应商编码
@@ -37,57 +38,6 @@
    private List<OrderDetl> children;
    public void setcPOID(String cPOID) {
        this.cPOID = cPOID;
    }
    public void setcVenCode(String cVenCode) {
        this.cVenCode = cVenCode;
    }
    public void setcPersonCode(String cPersonCode) {
        this.cPersonCode = cPersonCode;
    }
    public void setcSCCode(String cSCCode) {
        this.cSCCode = cSCCode;
    }
    public void setCexch_name(String cexch_name) {
        this.cexch_name = cexch_name;
    }
    public void setNflat(Double nflat) {
        this.nflat = nflat;
    }
    public void setcMemo(String cMemo) {
        this.cMemo = cMemo;
    }
    public void setStates(Integer states) {
        this.states = states;
    }
    public void setDdate(String ddate) {
        this.ddate = ddate;
    }
    public void setChildren(List<OrderDetl> children) {
        this.children = children;
    }
    public void set操作系统号(String 操作系统号) {
        this.操作系统号 = 操作系统号;
    }
    public void set操作单据(String 操作单据) {
        this.操作单据 = 操作单据;
    }
    public void set操作类型(String 操作类型) {
        this.操作类型 = 操作类型;
    }
    @Data
    public static class OrderDetl {
@@ -137,65 +87,6 @@
            return Objects.hash(ivouchrowno, cInvCode, batch, dArriveDate, iQuantity, iTaxPrice, iPerTaxRate, cbMemo, iNum, cSource, cDefine22, Rstates, csocode, bFree1, id, iorderdid);
        }
        public void setIvouchrowno(String ivouchrowno) {
            this.ivouchrowno = ivouchrowno;
        }
        public void setcInvCode(String cInvCode) {
            this.cInvCode = cInvCode;
        }
        public void setdArriveDate(String dArriveDate) {
            this.dArriveDate = dArriveDate;
        }
        public void setiQuantity(Double iQuantity) {
            this.iQuantity = iQuantity;
        }
        public void setiTaxPrice(Double iTaxPrice) {
            this.iTaxPrice = iTaxPrice;
        }
        public void setiPerTaxRate(Double iPerTaxRate) {
            this.iPerTaxRate = iPerTaxRate;
        }
        public void setCbMemo(String cbMemo) {
            this.cbMemo = cbMemo;
        }
        public void setiNum(Double iNum) {
            this.iNum = iNum;
        }
        public void setcSource(String cSource) {
            this.cSource = cSource;
        }
        public void setcDefine22(String cDefine22) {
            this.cDefine22 = cDefine22;
        }
        public void setRstates(String rstates) {
            Rstates = rstates;
        }
        public void setCsocode(String csocode) {
            this.csocode = csocode;
        }
        public void setbFree1(String bFree1) {
            this.bFree1 = bFree1;
        }
        public void setId(String id) {
            this.id = id;
        }
        public void setIorderdid(String iorderdid) {
            this.iorderdid = iorderdid;
        }
    }
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -1001,7 +1001,7 @@
        order.setCreateTime(now);
        order.setUpdateTime(now);
        order.setUpstreamcode(param.getUpstreamcode());
        //订单状态
        order.setSettle(1L);
        //状态
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
@@ -72,10 +72,10 @@
                        continue;
                    }
                }
                ReturnT<String> result = orderSyncHandler.start(order);
                if (!result.isSuccess()) {
                    log.error("单据[orderNo={}]上报erp失败", order.getOrderNo());
                }
//                ReturnT<String> result = orderSyncHandler.start(order);
//                if (!result.isSuccess()) {
//                    log.error("单据[orderNo={}]上报erp失败", order.getOrderNo());
//                }
            }
        }
    }
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
@@ -92,7 +92,7 @@
    @Transactional
    public void timelyStart(Order order) {
        List<String> docNames = new ArrayList<>(Arrays.asList("银座采购入库单", "银座委外材料出库单","其他入库单","其他出库单"));
        List<String> docNames = new ArrayList<>(Arrays.asList("银座采购入库单", "银座委外材料出库单","银座生产材料出库单"));
        DocType docType = docTypeService.selectById(order.getDocType());
        if (docNames.contains(docType.getDocName())) {
src/main/java/com/zy/common/task/ActivateScheduler.java
@@ -18,8 +18,8 @@
public class ActivateScheduler {
//    @Scheduled(cron = "0/1 * 8 * * ? ") // 每天8点
    @Scheduled(cron = "* 0/1 * * * ? ") // 每分钟
    @PostConstruct
    //@Scheduled(cron = "* 0/1 * * * ? ") // 每分钟
    //@PostConstruct
    private void execute(){
        // 获取激活码
        String activationCode = SystemProperties.getActivationCode(OSinfo.getOSname().getActivationCodePath());
src/main/resources/application.yml
@@ -1,5 +1,5 @@
server:
  port: 8083
  port: 8080
  servlet:
    context-path: /@pom.build.finalName@
@@ -10,8 +10,8 @@
    enabled: false
  datasource:
    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
    url: jdbc:sqlserver://127.0.0.1:1433;databasename=phyzasrs
#    url: jdbc:sqlserver://192.168.4.15:1433;databasename=phyzasrs
    #url: jdbc:sqlserver://127.0.0.1:1433;databasename=phyzasrs
    url: jdbc:sqlserver://192.168.108.248:1433;databasename=phyzasrs
    username: sa
    password: sa@123
  mvc: