自动化立体仓库 - WMS系统
#
Junjie
3 天以前 8de479c3fa16fd07d3565e1f77d73082431f7e49
src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java
@@ -11,6 +11,7 @@
import com.zy.asrs.utils.MatUtils;
import com.zy.nc.SendUtil;
import com.zy.nc.entity.*;
import com.zy.nc.service.NccSaleDbddWmsService;
import com.zy.nc.service.NccSaleXsfhmxWmsService;
import com.zy.nc.service.NccScPcdaWmsService;
import com.zy.nc.util.NcResultMessage;
@@ -49,6 +50,8 @@
    @Autowired
    private NccSaleXsfhmxWmsService nccSaleXsfhmxWmsService;
    @Autowired
    private NccSaleDbddWmsService  nccSaleDbddWmsService;
    @Value("${NYNC.ip}")
    private String nyncIp;
@@ -217,18 +220,53 @@
    }
    @Override
    public boolean reportTkrk(String matnr, String batch, String orderNo, Double anfme) {
        Object process1 = processTKRK(matnr, batch, orderNo, anfme);
        //发送请求
        NcResultMessage response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, saveRefDelivery, JSONObject.toJSONString(process1));
        log.info("退库入库response:{}", response);
        if (!Cools.isEmpty(response) && response.isSuccess()) {
            log.info("退库入库response:{}", response);
            return true;
        } else {
//            remark = response.getMessage() + "--" + response.getErrorStack().substring(0, 100);
            return false;
    public boolean reportTkrk(WaitPakin waitPakin) {
        String matnr = waitPakin.getMatnr();
        String batch = waitPakin.getBatch();
        String orderNo = waitPakin.getOrderNo();
        Double anfme = waitPakin.getAnfme();
        Object process1 = null;
        NcResultMessage response1 = null;
        boolean success1 = false;
        try {
            process1 = processTKRK(matnr, batch, orderNo, anfme, waitPakin.getCstateid());
            //发送请求
            response1 = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, saveRefDelivery, JSONObject.toJSONString(process1));
            log.info("退库入库response:{}", response1);
            if (!Cools.isEmpty(response1) && response1.isSuccess()) {
                log.info("退库入库response:{}", response1);
                success1 = true;
                return true;
            }
        } catch (Exception e) {
            e.printStackTrace();
            process1 = e.getMessage();
        } finally {
            reportApiLog(null, process1, process1, response1, "TKRK", nyncIp, saveRefDelivery, success1);
        }
        Object process2 = null;
        NcResultMessage response2 = null;
        boolean success2 = false;
        try {
            process2 = processDBTK(matnr, batch, orderNo, anfme, waitPakin.getCstateidVcode());
            //发送请求
            response2 = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, dbdd, JSONObject.toJSONString(process2));
            log.info("退库入库response:{}", response2);
            if (!Cools.isEmpty(response2) && response2.isSuccess()) {
                log.info("退库入库response:{}", response2);
                success2 = true;
                return true;
            }
        } catch (Exception e) {
            e.printStackTrace();
            process2 = e.getMessage();
        } finally {
            reportApiLog(null, process2, process2, response2, "DBRK", nyncIp, dbdd, success2);
        }
        return false;
    }
    @Override
@@ -309,6 +347,7 @@
            saleOutBodyVO.setVbatchcode(orderDetl.getBatch());
            saleOutBodyVO.setNshouldnum(flag ? -orderDetl.getQty() : orderDetl.getQty());
            saleOutBodyVO.setNnum(flag ? -orderDetl.getQty() : orderDetl.getQty());
            saleOutBodyVO.setCstateid(orderDetl.getCstateid());
            saleOutBodyVOList.add(saleOutBodyVO);
        }
        data.put("SaleOutHeadVO", saleOutHeadVO);
@@ -316,7 +355,7 @@
        return data;
    }
    private Object processTKRK(String matnr,String batch, String orderNo, Double anfme) {
    private Object processTKRK(String matnr, String batch, String orderNo, Double anfme, String cstateid) {
//        EntityWrapper<NccXsckmxTkWms> wrapper = new EntityWrapper<>();
//        wrapper.eq("VBATCHCODE", batch).eq("VSOURCEBILLCODE", orderNo);
//        NccXsckmxTkWms nccXsckmxTkWms = nccXsckmxTkWmsService.selectOne(wrapper);
@@ -328,7 +367,7 @@
                .eq("VBILLCODE", orderNo)
                .eq("WLBM", matnr)
        );
        if(null == nccSaleXsfhmxWms) {
        if (null == nccSaleXsfhmxWms) {
            throw new CoolException("未找到销售单据");
        }
@@ -347,10 +386,48 @@
        saleOutBodyVO.setVbatchcode(batch);
        saleOutBodyVO.setNnum(anfme * -1);
        saleOutBodyVO.setCstateid(cstateid);
        saleOutBodyVOList.add(saleOutBodyVO);
        data.put("SaleOutHeadVO", saleOutHeadVO);
        data.put("SaleOutBodyVO", saleOutBodyVOList);
        return data;
    }
    private Object processDBTK(String matnr, String batch, String orderNo, Double anfme, String cstateid) {
        List<NccSaleDbddWms> nccSaleDbddWmsList = nccSaleDbddWmsService.selectList(new EntityWrapper<NccSaleDbddWms>()
                .eq("wlbm", matnr)
                .eq("vbillcode", orderNo)
        );
        if (nccSaleDbddWmsList.isEmpty()) {
            throw new CoolException("调拨订单ERP数据为空");
        }
        NccSaleDbddWms nccSaleDbddWms = nccSaleDbddWmsList.get(0);
        //组装对象数据
        Map<String, Object> data = new HashMap<String, Object>();
        List<IaIjBillB> bids = new ArrayList<>();
        IaIjBillB iaIjBillB = new IaIjBillB();
//        NccScPcdaWms nccScPcdaWms = nccScPcdaWmsService.selectOne(new EntityWrapper<NccScPcdaWms>().eq("vbatchcode", batch).eq("wlbm", matnr));
//        if (nccScPcdaWms == null) {
//            throw new CoolException("批次[{}]物料[{}]未找到" + batch + "-" + matnr);
//        }
        Double weight = MatUtils.calcWeight(matnr, anfme);
        iaIjBillB.setBid(nccSaleDbddWms.getCbill_bid());
        iaIjBillB.setNassistnum(weight * -1);
        iaIjBillB.setNnum(anfme * -1);
        iaIjBillB.setVbatchcode(batch);
        iaIjBillB.setClocationid("");
        iaIjBillB.setCstateid(cstateid);
        bids.add(iaIjBillB);
        data.put("hid", nccSaleDbddWms.getCbillid());
        data.put("bids", bids);
        return data;
    }
@@ -451,11 +528,6 @@
            IaIjBillB iaIjBillB = new IaIjBillB();
            String remark = orderDetl.getRemark();
            if (!Cools.isEmpty(remark)) {
                NccScPcdaWms nccScPcdaWms = nccScPcdaWmsService.selectOne(new EntityWrapper<NccScPcdaWms>().eq("vbatchcode", orderDetl.getBatch()).eq("wlbm", orderDetl.getMatnr()));
                if (nccScPcdaWms == null) {
                    throw new CoolException("批次[{}]物料[{}]未找到" + orderDetl.getBatch() + orderDetl.getMatnr());
                }
                Double weight = MatUtils.calcWeight(orderDetl.getMatnr(), orderDetl.getQty());
                NccSaleDbddWms nccSaleDbddWms = JSONObject.parseObject(remark, NccSaleDbddWms.class);
                iaIjBillB.setBid(nccSaleDbddWms.getCbill_bid());
@@ -463,7 +535,7 @@
                iaIjBillB.setNnum(orderDetl.getQty());
                iaIjBillB.setVbatchcode(orderDetl.getBatch());
                iaIjBillB.setClocationid("");
                iaIjBillB.setCstateid(nccScPcdaWms.getVcode());
                iaIjBillB.setCstateid(orderDetl.getCstateidVcode());
                hid = nccSaleDbddWms.getCbillid();
            }