自动化立体仓库 - WMS系统
zhang
2025-05-22 1216681441c6275aa2779c961e3c83f5d8d3df02
src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java
@@ -12,6 +12,7 @@
import com.zy.asrs.service.ReportToThirdService;
import com.zy.nc.SendUtil;
import com.zy.nc.entity.NccCgCgdhdWms;
import com.zy.nc.entity.NccSaleDbddWms;
import com.zy.nc.entity.NccSaleXsfhmxWms;
import com.zy.nc.util.NcResultMessage;
import com.zy.nc.vo.*;
@@ -44,14 +45,27 @@
    @Value("${NYNC.saveRefDelivery}")
    private String saveRefDelivery;
    @Value("${NYNC.saveRefWhsTrans}")
    private String saveRefWhsTrans;
    @Value("${NYNC.purchasein}")
    private String purchasein;
    @Value("${NYNC.whstrans}")
    private String whstrans;
    @Value("${NYNC.generalout}")
    private String generalout;
    @Value("${NYNC.dbdd}")
    private String dbdd;
    @Override
    public void report(Order order, List<OrderDetl> orderDetls, DocType docType) {
        int step = (Cools.isEmpty(order.getStep()) || order.getStep() == 0) ? 0 : order.getStep();
        NcResultMessage response = null;
        Object process1 = null;
        Object process2 = null;
        Object process3 = null;
        try {
            switch (order.getDocType$().toString()) {
                case "销售发货":
@@ -59,78 +73,50 @@
                    //发送请求
                    response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, saveRefDelivery, JSONObject.toJSONString(process1));
                    if (!Cools.isEmpty(response) && response.isSuccess()) {
                        log.info("response:{}", response);
                        log.info("销售发货response:{}", response);
                        step = 10;
                    }
                    break;
                case "转库":
                    process1 = processQTRK(orderDetls);
                case "转库-入库":
                    process1 = processZKRK(orderDetls);
                    //发送请求
                    response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, saveRefDelivery, JSONObject.toJSONString(process1));
                    response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, saveRefWhsTrans, JSONObject.toJSONString(process1));
                    if (!Cools.isEmpty(response) && response.isSuccess()) {
                        log.info("response:{}", response);
                        log.info("转库-入库response:{}", response);
                        step = 10;
                    }
                    break;
                case "采购到货":
                    process1 = processCGDH(orderDetls);
                    List<Object> cg = new ArrayList<>();
                    cg.add(process1);
                    //发送请求
                    response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, saveRefDelivery, JSONObject.toJSONString(process1));
                    response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, purchasein, JSONObject.toJSONString(cg));
                    if (!Cools.isEmpty(response) && response.isSuccess()) {
                        log.info("response:{}", response);
                        log.info("采购到货response:{}", response);
                        step = 10;
                    }
                    break;
                case "产成品入库单":
                    if (step == 2) {
                        process3 = processQTRK(orderDetls);
                        //发送请求
                        response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, saveRefDelivery, JSONObject.toJSONString(process3));
                        if (!Cools.isEmpty(response) && response.isSuccess()) {
                            log.info("response:{}", response);
                            step = 10;
                        }
                    } else if (step == 1) {
                        process2 = processGENERALOUT(orderDetls);
                        //发送请求
                        response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, saveRefDelivery, JSONObject.toJSONString(process2));
                        if (!Cools.isEmpty(response) && response.isSuccess()) {
                            log.info("response:{}", response);
                            step = 2;
                        }
                        process3 = processQTRK(orderDetls);
                        //发送请求
                        response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, saveRefDelivery, JSONObject.toJSONString(process3));
                        if (!Cools.isEmpty(response) && response.isSuccess()) {
                            log.info("response:{}", response);
                            step = 10;
                        }
                    } else if (step == 0) {
                        process1 = processZK(orderDetls);
                        //发送请求
                        response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, saveRefDelivery, JSONObject.toJSONString(process1));
                        if (!Cools.isEmpty(response) && response.isSuccess()) {
                            log.info("response:{}", response);
                            step = 1;
                        }
                        process2 = processGENERALOUT(orderDetls);
                        //发送请求
                        response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, saveRefDelivery, JSONObject.toJSONString(process2));
                        if (!Cools.isEmpty(response) && response.isSuccess()) {
                            log.info("response:{}", response);
                            step = 2;
                        }
                        process3 = processQTRK(orderDetls);
                        //发送请求
                        response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, saveRefDelivery, JSONObject.toJSONString(process3));
                        if (!Cools.isEmpty(response) && response.isSuccess()) {
                            log.info("response:{}", response);
                            step = 10;
                        }
                case "转库-出库":
                    process1 = processGENERALOUT(orderDetls);
                    List<Object> zkck = new ArrayList<>();
                    zkck.add(process1);
                    //发送请求
                    response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, generalout, JSONObject.toJSONString(zkck));
                    if (!Cools.isEmpty(response) && response.isSuccess()) {
                        log.info("转库-出库response:{}", response);
                        step = 10;
                    }
                    break;
//                case "内部调拨":
//                    break;
                case "集团内部调拨":
                    process1 = processDBDD(orderDetls);
                    //发送请求
                    response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, dbdd, JSONObject.toJSONString(process1));
                    if (!Cools.isEmpty(response) && response.isSuccess()) {
                        log.info("集团内部调拨response:{}", response);
                        step = 10;
                    }
                    break;
                default:
                    throw new CoolException("不能识别的单据类型");
            }
@@ -190,6 +176,32 @@
        return data;
    }
    private Object processZKRK(List<OrderDetl> orderDetls) {
        //组装对象数据
        Map<String, Object> data = new HashMap<String, Object>();
        GeneralInHeadVO generalInHeadVO = new GeneralInHeadVO();
        generalInHeadVO.setPk_org("FYT");
        generalInHeadVO.setCwarehouseid("6101");
        GeneralInBodyVO generalInBodyVO = null;
        List<GeneralInBodyVO> generalInBodyVOS = new ArrayList<>();
        for (OrderDetl orderDetl : orderDetls) {
            generalInBodyVO = new GeneralInBodyVO();
            String remark = orderDetl.getRemark();
            if (!Cools.isEmpty(remark)) {
                NccSaleXsfhmxWms nccSaleXsfhmxWms = JSONObject.parseObject(remark, NccSaleXsfhmxWms.class);
                generalInBodyVO.setCsourcebillbid(nccSaleXsfhmxWms.getCdeliverybid());
                generalInBodyVO.setCsourcebillhid(nccSaleXsfhmxWms.getCdeliveryid());
                generalInBodyVO.setNnum(orderDetl.getQty());
                generalInBodyVO.setNshouldnum(orderDetl.getAnfme());
                generalInBodyVO.setVbatchcode(orderDetl.getBatch());
            }
            generalInBodyVOS.add(generalInBodyVO);
        }
        data.put("GeneralInHeadVO", generalInHeadVO);
        data.put("GeneralInBodyVO", generalInBodyVOS);
        return data;
    }
    private Object processQTRK(List<OrderDetl> orderDetls) {
        //组装对象数据
@@ -209,6 +221,7 @@
                generalInBodyVO.setCsourcebillbid(nccSaleXsfhmxWms.getCdeliverybid());
                generalInBodyVO.setCsourcebillhid(nccSaleXsfhmxWms.getCdeliveryid());
                generalInBodyVO.setNnum(orderDetl.getQty());
                generalInBodyVO.setNshouldnum(orderDetl.getAnfme());
                generalInBodyVO.setVbatchcode(orderDetl.getBatch());
                generalInBodyVO.setCmaterialoid(orderDetl.getMatnr());
            }
@@ -216,6 +229,32 @@
        }
        data.put("GeneralInHeadVO", generalInHeadVO);
        data.put("GeneralInBodyVO", generalInBodyVOS);
        return data;
    }
    private Object processDBDD(List<OrderDetl> orderDetls) {
        //组装对象数据
        Map<String, Object> data = new HashMap<String, Object>();
        IaIjBill iaIjBill = new IaIjBill();
        iaIjBill.setPk_org("FYT");
        //iaIjBill.setCwarehouseid("6101");
        IaIjBillB iaIjBillB = null;
        List<IaIjBillB> iaIjBillBS = new ArrayList<>();
        for (OrderDetl orderDetl : orderDetls) {
            iaIjBillB = new IaIjBillB();
            String remark = orderDetl.getRemark();
            if (!Cools.isEmpty(remark)) {
                NccSaleDbddWms nccSaleXsfhmxWms = JSONObject.parseObject(remark, NccSaleDbddWms.class);
                iaIjBillB.setCinventoryid(nccSaleXsfhmxWms.getWlbm());
                iaIjBillB.setCinventoryvid(nccSaleXsfhmxWms.getWlbm());
                iaIjBillB.setCsrcid(nccSaleXsfhmxWms.getCbillid());
                iaIjBillB.setNnum(orderDetl.getQty().intValue() + "");
                iaIjBillB.setPk_org("FYT");
            }
            iaIjBillBS.add(iaIjBillB);
        }
        data.put("ia_ijbill", iaIjBill);
        data.put("ia_ijbill_b", iaIjBillBS);
        return data;
    }
@@ -261,17 +300,18 @@
            String remark = orderDetl.getRemark();
            if (!Cools.isEmpty(remark)) {
                NccCgCgdhdWms nccCgCgdhdWms = JSONObject.parseObject(remark, NccCgCgdhdWms.class);
                ic_purchasein_b.setCsourcebillbid(nccCgCgdhdWms.getPkArriveorderB());
                ic_purchasein_b.setCsourcebillhid(nccCgCgdhdWms.getPkArriveorder());
                ic_purchasein_b.setCmaterialvid(orderDetl.getMaktx());
                ic_purchasein_h.setCvendorid(nccCgCgdhdWms.getGysbm());
                ic_purchasein_h.setCbizid(nccCgCgdhdWms.getDhlxbm());
                ic_purchasein_b.setCmaterialvid(orderDetl.getMatnr());
                ic_purchasein_b.setNnum(orderDetl.getQty());
                ic_purchasein_b.setNshouldassistnum(orderDetl.getQty());
                //ic_purchasein_b.setNorigprice(nccSaleXsfhmxWms.getNorigprice().doubleValue());
                //ic_purchasein_b.setNshouldassistnum(orderDetl.getQty());
                ic_purchasein_b.setVbatchcode(orderDetl.getBatch());
            }
            ic_purchasein_bs.add(ic_purchasein_b);
        }
        data.put("ic_purchasein_h", ic_purchasein_h);
        data.put("ic_purchasein_b", ic_purchasein_b);
        data.put("ic_purchasein_b", ic_purchasein_bs);
        return data;
    }
@@ -282,22 +322,24 @@
    private Object processGENERALOUT(List<OrderDetl> orderDetls) {
        //组装对象数据
        Map<String, Object> data = new HashMap<String, Object>();
        ic_purchasein_h ic_purchasein_h = new ic_purchasein_h();
        ic_purchasein_h.setPk_org("FYT");
        ic_purchasein_h.setCwarehouseid("6101");
        ic_purchasein_b ic_purchasein_b = null;
        List<ic_purchasein_b> ic_purchasein_bs = new ArrayList<>();
        ic_generalout_h generalout_h = new ic_generalout_h();
        generalout_h.setPk_org("FYT");
        generalout_h.setCwarehouseid("6101");
        ic_generalout_b generalout_b = null;
        List<ic_generalout_b> ic_purchasein_bs = new ArrayList<>();
        for (OrderDetl orderDetl : orderDetls) {
            ic_purchasein_b = new ic_purchasein_b();
            generalout_b = new ic_generalout_b();
            String remark = orderDetl.getRemark();
            if (!Cools.isEmpty(remark)) {
                NccSaleXsfhmxWms nccSaleXsfhmxWms = JSONObject.parseObject(remark, NccSaleXsfhmxWms.class);
                generalout_b.setMaterialvid(orderDetl.getMatnr());
                generalout_b.setNshouldassistnum(orderDetl.getQty());
                generalout_b.setVbatchcode(orderDetl.getBatch());
            }
            ic_purchasein_bs.add(ic_purchasein_b);
            ic_purchasein_bs.add(generalout_b);
        }
        data.put("ic_purchasein_h", ic_purchasein_h);
        data.put("ic_purchasein_b", ic_purchasein_b);
        data.put("ic_generalout_h", generalout_h);
        data.put("ic_generalout_b", ic_purchasein_bs);
        return data;
    }