自动化立体仓库 - WMS系统
pang.jiabao
2025-03-26 5dac37cde0205be965c2b74dd1bddefc7f9cceda
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
@@ -46,6 +46,42 @@
    private ApiLogService apiLogService;
    @Autowired
    private DocTypeService docTypeService;
    @Transactional
    public ReturnT<String> startOrderIssuedOnceMore(Order order) {
        DocType docType = docTypeService.selectById(order.getDocType());
        if (null == docType) {
            return SUCCESS;
        }
        Order order1 = OrderInAndOutUtil.selectByNo(order.getPakinPakoutStatus$(), order.getOrderNo());
        if (!Cools.isEmpty(order1)){
            return FAIL.setMsg("请等待...订单执行档案正在转历史档案!!!");
        }
        List<OrderDetl> orderDetls = OrderInAndOutUtil.selectByOrderId(order.getPakinPakoutStatus$(), order.getId());
        if (!Cools.isEmpty(orderDetls) || !orderDetls.isEmpty()) {
            return FAIL.setMsg("请等待...订单执行明细档案正在转历史档案!!!");
        }
        // 单据明细档
        List<OrderDetl> orderDetlList = orderDetlService.selectByOrderId(order.getId());
        for (OrderDetl orderDetl : orderDetlList){
            if (orderDetl.getQty().equals(0D)){
                continue;
            }
            orderDetl.setWorkQty(orderDetl.getQty());
            orderDetl.setAnfme(orderDetl.getAnfme()-orderDetl.getQty());
            orderDetl.setQty(0D);
            orderDetlService.updateById(orderDetl);
        }
        // 修改订单状态 99.再次作业 ===>> 1.待作业
        if (!orderService.updateSettle(order.getId(), 1L, null)) {
            throw new CoolException("服务器内部错误,请联系管理员");
        }
        return SUCCESS;
    }
    @Transactional
    public ReturnT<String> startOrderIssued(Order order) {
        DocType docType = docTypeService.selectById(order.getDocType());
@@ -76,6 +112,7 @@
            }
        }
        for (OrderDetl orderDetl : orderDetlList){
            orderDetl.setWorkQty(0D);
            OrderInAndOutUtil.insertOrderDetl(order.getPakinPakoutStatus$(),order,orderDetl);
        }
        // 修改订单状态 1.未作业 ===>> 2.作业中
@@ -84,6 +121,7 @@
        }
        return SUCCESS;
    }
    @Transactional
    public ReturnT<String> startOrderInAndOutUtil(Order order) {
        DocType docType = docTypeService.selectById(order.getDocType());
@@ -133,6 +171,7 @@
        if (null == docType) {
            return SUCCESS;
        }
        long settle = 6L;
        List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
        // 入库完成上报
        if (docType.getPakin() == 1) {
@@ -141,23 +180,28 @@
            pakinParam.setLgortFrom("5008");
            pakinParam.setLgortTo("5006");
            for (OrderDetl orderDetl : orderDetls) {
                if (!orderDetl.getQty().equals(orderDetl.getAnfme())){
                    settle = 99L;//二次生成单据
                }
                String serial = Cools.isEmpty(orderDetl.getBatch()) ? "" : orderDetl.getBatch();
                pakinParam.getList().add(new MesPakinParam.Detl(orderDetl.getMatnr() + (Cools.isEmpty(serial) ? "" : "-" + serial), orderDetl.getAnfme()));
            }
            String response = "";
            boolean success = false;
            try {
                response = new HttpHandler.Builder()
                        .setUri(MesConstant.URL)
                        .setPath(MesConstant.PAKIN_URL)
                        .setJson(JSON.toJSONString(pakinParam))
                        .build()
                        .doPost();
                JSONObject jsonObject = JSON.parseObject(response);
                if (jsonObject.getInteger("code").equals(200)) {
//                response = new HttpHandler.Builder()
//                        .setUri(MesConstant.URL)
//                        .setPath(MesConstant.PAKIN_URL)
//                        .setJson(JSON.toJSONString(pakinParam))
//                        .build()
//                        .doPost();
//                JSONObject jsonObject = JSON.parseObject(response);
//                if (jsonObject.getInteger("code").equals(200)) {
                if (true) {
                    success = true;
                    // 修改订单状态 4.完成 ===>> 6.已上报
                    if (!orderService.updateSettle(order.getId(), 6L, null)) {
                    if (!orderService.updateSettle(order.getId(), settle, null)) {
                        throw new CoolException("服务器内部错误,请联系管理员");
                    }
                } else {
@@ -195,23 +239,27 @@
            }
            pakoutParam.setOrderNo(order.getOrderNo());
            for (OrderDetl orderDetl : orderDetls) {
                if (!orderDetl.getQty().equals(orderDetl.getAnfme())){
                    settle = 99L;//二次生成单据
                }
                String serial = Cools.isEmpty(orderDetl.getBatch()) ? "" : orderDetl.getBatch();
                pakoutParam.getList().add(new MesPakoutParam.Detl(orderDetl.getMatnr() + (Cools.isEmpty(serial) ? "" : "-" + serial), orderDetl.getAnfme()));
            }
            String response = "";
            boolean success = false;
            try {
                response = new HttpHandler.Builder()
                        .setUri(MesConstant.URL)
                        .setPath(MesConstant.PAKOUT_URL)
                        .setJson(JSON.toJSONString(pakoutParam))
                        .build()
                        .doPost();
                JSONObject jsonObject = JSON.parseObject(response);
                if (jsonObject.getInteger("code").equals(200)) {
//                response = new HttpHandler.Builder()
//                        .setUri(MesConstant.URL)
//                        .setPath(MesConstant.PAKOUT_URL)
//                        .setJson(JSON.toJSONString(pakoutParam))
//                        .build()
//                        .doPost();
//                JSONObject jsonObject = JSON.parseObject(response);
//                if (jsonObject.getInteger("code").equals(200)) {
                if (true) {
                    success = true;
                    // 修改订单状态 4.完成 ===>> 6.已上报
                    if (!orderService.updateSettle(order.getId(), 6L, null)) {
                    if (!orderService.updateSettle(order.getId(), settle, null)) {
                        throw new CoolException("服务器内部错误,请联系管理员");
                    }
                } else {