自动化立体仓库 - WMS系统
zhangchao
2024-11-04 59f80df1e377e8775969ca4acadfa2eadd6e37ae
src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
@@ -54,6 +54,8 @@
    @Autowired
    private WaitPakinService waitPakinService;
    @Autowired
    private AgvWaitPakinService agvWaitPakinService;
    @Autowired
    private ManPakOutService manPakOutService;
    @Value("${u8.url}")
@@ -100,39 +102,15 @@
            }
        }
        // 如果 作业数量等于单据总数量 && 工作明细档中无该单据的数据 && AGV工作明细档中无该单据的数据
        boolean wrkDeltExist = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("order_no", orderNo)) < 1;
        boolean agvWrkDetlExist = agvWrkDetlService.selectCount(new EntityWrapper<AgvWrkDetl>().eq("order_no",orderNo)) < 1;
        boolean waitPakinExist = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("order_no",orderNo)) < 1;
        int count = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("order_no", orderNo));
        boolean wrkDeltExist = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().like("order_no", orderNo)) < 1;
        boolean agvWrkDetlExist = agvWrkDetlService.selectCount(new EntityWrapper<AgvWrkDetl>().like("order_no",orderNo)) < 1;
        boolean waitPakinExist = agvWaitPakinService.selectCount(new EntityWrapper<AgvWaitPakin>().like("order_no",orderNo)) < 1;
        ManPakOut manPakOut = manPakOutService.selectByOrderWithName(orderNo);
        boolean manPakoutExist = Cools.isEmpty(manPakOut) || manPakOut.getPayment() == 1;
        boolean manPakoutExist = Cools.isEmpty(manPakOut) ||  (manPakOut.getPayment() != null && manPakOut.getPayment() == 1);
        if (complete && wrkDeltExist && agvWrkDetlExist && waitPakinExist && manPakoutExist) {
            // 出库订单重新整理明细
//            DocType docType = docTypeService.selectById(order.getDocType());
//            if (null != docType && docType.getPakout() == 1) {
//                // 重组明细
//                if (!orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_id", order.getId()))) {
//                    throw new CoolException("重整出库订单【orderNo = " + order.getOrderNo() + "】明细失败");
//                }
//                List<WrkDetl> wrkDetls = wrkDetlService.selectAndLogByOrderNo(orderNo);
//                for (WrkDetl wrkDetl : wrkDetls) {
//                    OrderDetl orderDetl = new OrderDetl();
//                    orderDetl.sync(wrkDetl);
//                    orderDetl.setQty(orderDetl.getAnfme());
//                    orderDetl.setOrderId(order.getId());
//                    orderDetl.setOrderNo(orderNo);
//                    orderDetl.setStatus(1);
//                    orderDetl.setCreateTime(order.getCreateTime());
//                    orderDetl.setCreateBy(order.getCreateBy());
//                    orderDetl.setUpdateTime(order.getUpdateTime());
//                    orderDetl.setUpdateBy(order.getUpdateBy());
//                    if (!orderDetlService.insert(orderDetl)) {
//                        throw new CoolException("重整出库订单【orderNo = " + order.getOrderNo() + "】明细失败");
//                    }
//                }
//            }
            if (!this.updateSettle(order.getId(), 4L, null)) {
                throw new CoolException("修改订单【orderNo = " + order.getOrderNo() + "】状态为已完成失败");
            }
@@ -175,7 +153,7 @@
            }
            for (DetlDto detlDto : detlDtos) {
                // 修改订单明细数量
                if (!orderDetlService.increase(order.getId(), detlDto.getMatnr(), detlDto.getBatch(), detlDto.getAnfme())) {
                if (!orderDetlService.increase(order.getId(), detlDto.getMatnr(), detlDto.getBatch(), detlDto.getAnfme(),detlDto.getCsocode(),detlDto.getIsoseq())) {
                    throw new CoolException("修改单据明细数量失败");
                }
            }
@@ -198,17 +176,29 @@
        orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_id", orderId));
    }
    public void report(Long orderId, Long userId) {
    public void report(Long orderId, String username) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Order order = this.selectById(orderId);
        Map<String, String> param = new HashMap<>();
        Map<String, Object> param = new HashMap<>();
        param.put("id",order.getOrderNo());
        param.put("dDate",sdf.format(new Date()));
        param.put("cHandler",userId.toString());
        param.put("cHandler",username);
        List<Map<String,Object>> orderDetlsParam = new ArrayList<>();
        param.put("orderDetails",orderDetlsParam);
        List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(orderId);
        for (OrderDetl orderDetl : orderDetls){
            Map<String, Object> odMap = new HashMap<>();
            odMap.put("autoid",orderDetl.getItemNum());
            odMap.put("iQuantity",orderDetl.getQty());
            orderDetlsParam.add(odMap);
        }
        int code = doHttpRequest(param, "单据审核", url, orderReportPath, null, "127.0.0.1");
        //int code = doHttpRequest(param, "单据审核", "localhost:8080", "/test/report", null, "127.0.0.1");
        if(code == 200){
        if(code == 0){
            order.setSettle(6L);
            this.updateById(order);
        }
@@ -255,6 +245,13 @@
        return this.baseMapper.selectorderNoL(orderNo);
    }
    @Override
    public List<Order> selectToBeHistoryOrder() {
        return this.selectList(new EntityWrapper<Order>().eq("status",1).ge("settle",6));
        //return this.baseMapper.selectToBeHistoryOrder();
    }
    private int doHttpRequest(Object requestParam, String namespace, String url, String path, String appkey, String ip){
        String response = "";
        boolean success = false;