自动化立体仓库 - WMS系统
zhangchao
2024-10-22 e6bc9cbe21ed6f9de5c5701ab121aca94b2ba194
及时上报
3个文件已修改
82 ■■■■ 已修改文件
src/main/java/com/zy/asrs/entity/OrderDetl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/OrderDetl.java
@@ -299,6 +299,9 @@
    @TableField("process_sts")
    private Integer processSts;
    @TableField("report_qty")
    private Double reportQty;
    public OrderDetl() {}
    public OrderDetl(Long orderId, String orderNo, Double anfme, Double qty, String matnr, String maktx, String batch, String specs, String model, String color, String brand, String unit, Double price, String sku, Double units, String barcode, String origin, String manu, String manuDate, String itemNum, Double safeQty, Double weight, Double length, Double volume, String threeCode, String supp, String suppCode, Integer beBatch, String deadTime, Integer deadWarn, Integer source, Integer inspect, Integer danger, Integer status, Long createBy, Date createTime, Long updateBy, Date updateTime, String memo,Integer processSts) {
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
@@ -3,9 +3,8 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.Cools;
import com.zy.asrs.entity.AgvLocDetl;
import com.zy.asrs.entity.Order;
import com.zy.asrs.entity.OrderDetl;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.service.AgvLocDetlService;
import com.zy.asrs.service.ApiLogService;
import com.zy.asrs.service.OrderDetlService;
@@ -81,6 +80,23 @@
        }
    }
    @Scheduled(cron = "0/5 * * * * ? ")
    //@Async("orderThreadPool")
    public void reportOrder() {
        List<Order> orderList = orderService.selectList(new EntityWrapper<Order>().eq("settle", 2));
        orderList.forEach(order -> {
            if (order.getSettle() < 4L) {
                return;
            }
            orderSyncHandler.timelyStart(order);
        });
        orderList = orderService.selectList(new EntityWrapper<Order>().eq("settle", 4));
        orderList.forEach(order -> {
            orderSyncHandler.timelyStart(order);
        });
    }
    /*
    定时查询状态为2.作业中的单据,检查是否完成
     */
@@ -88,7 +104,7 @@
    public void completeOrder() {
        List<Order> orderList = orderService.selectList(new EntityWrapper<Order>().eq("settle", 2));
        orderList.forEach(order -> {
            orderService.checkComplete(order.getOrderNo(),null);
            orderService.checkComplete(order.getOrderNo(), null);
        });
    }
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
@@ -49,8 +49,8 @@
    @Transactional
    public ReturnT<String> start(Order order) {
        List<String> docNames = new ArrayList<>(Arrays.asList("银座采购入库单", "银座委外材料出库单", "银座委外入库单", "银座生产材料出库单"));
        //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())) {
@@ -82,6 +82,38 @@
        return SUCCESS;
    }
    @Transactional
    public void timelyStart(Order order) {
        List<String> docNames = new ArrayList<>(Arrays.asList("银座采购入库单", "银座委外材料出库单"));
        DocType docType = docTypeService.selectById(order.getDocType());
        if (docNames.contains(docType.getDocName())) {
            List<OrderDetl> orderDetlList = orderDetlService.selectByOrderId(order.getId());
            List<OrderDetl> report = new ArrayList<>();
            for (OrderDetl orderDetl : orderDetlList) {
                if (orderDetl.getQty() > 0 && orderDetl.getQty() > (orderDetl.getReportQty() == null ? 0D : orderDetl.getReportQty())) {
                    report.add(orderDetl);
                }
            }
            if (!Cools.isEmpty(report)) {
                ReportErpParam param = new ReportErpParam();
                mappingParam(order, param);
                mappingParamChildren(report, param);
                int code = doHttpRequest(param, "单据审核", url, orderReportPath, null, "127.0.0.1");
                if (code == 0) {
                    for (OrderDetl orderDetl : orderDetlList) {
                        orderDetl.setReportQty(orderDetl.getQty() - orderDetl.getReportQty());
                        orderDetlService.updateById(orderDetl);
                    }
                }
            }
        }
    }
    public void mappingParam(Order order, ReportErpParam param) {
        param.set操作系统号(order.getDefNumber());
        param.set操作单据(order.getDocType$());
@@ -102,7 +134,7 @@
            ReportErpParam.ChildInfo childInfo = new ReportErpParam.ChildInfo();
            childInfo.setIrowno(orderDetl.getItemNum());
            childInfo.setCInvCode(orderDetl.getMatnr());
            childInfo.setIQuantity(orderDetl.getQty() + "");
            childInfo.setIQuantity(orderDetl.getQty() - (orderDetl.getReportQty() == null ? 0D : orderDetl.getReportQty()) + "");
            childInfo.setCBatch(orderDetl.getBatch());
            childInfo.setINum(orderDetl.getLength() + "");
            childInfo.setIinvexchrate("");
@@ -122,12 +154,7 @@
        boolean success = false;
        try {
            response = new HttpHandler.Builder()
                    .setUri(url)
                    .setPath(path)
                    .setJson(JSONObject.toJSONString(requestParam))
                    .build()
                    .doPost();
            response = new HttpHandler.Builder().setUri(url).setPath(path).setJson(JSONObject.toJSONString(requestParam)).build().doPost();
            JSONObject jsonObject = JSON.parseObject(response);
            if (Cools.isEmpty(jsonObject.get("succeed"))) {
@@ -146,15 +173,7 @@
            log.error(e.getMessage());
            throw new CoolException("调用接口响应错误");
        } finally {
            apiLogService.save(
                    namespace,
                    url + path,
                    appkey,
                    ip,
                    JSON.toJSONString(JSONObject.toJSONString(requestParam)),
                    response,
                    success
            );
            apiLogService.save(namespace, url + path, appkey, ip, JSON.toJSONString(JSONObject.toJSONString(requestParam)), response, success);
        }
    }