自动化立体仓库 - WMS系统
#
lsh
2024-12-17 6915c91a99e133e927993f8794c85bffaad4ce0c
#
4个文件已修改
146 ■■■■ 已修改文件
src/main/java/com/zy/asrs/entity/Order.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/OrderDetl.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/Order.java
@@ -315,6 +315,45 @@
        this.memo = memo;
    }
    public Order(Order order) {
        this.uuid = order.getUuid();
        this.orderNo = order.getOrderNo();
        this.orderTime = order.getOrderTime();
        this.docType = order.getDocType();
        this.itemId = order.getItemId();
        this.itemName = order.getItemName();
        this.allotItemId = order.getAllotItemId();
        this.defNumber = order.getDefNumber();
        this.number = order.getNumber();
        this.cstmr = order.getCstmr();
        this.cstmrName = order.getCstmrName();
        this.tel = order.getTel();
        this.operMemb = order.getOperMemb();
        this.totalFee = order.getTotalFee();
        this.discount = order.getDiscount();
        this.discountFee = order.getDiscountFee();
        this.otherFee = order.getOtherFee();
        this.actFee = order.getActFee();
        this.payType = order.getPayType();
        this.salesman = order.getSalesman();
        this.accountDay = order.getAccountDay();
        this.postFeeType = order.getPostFeeType();
        this.postFee = order.getPostFee();
        this.payTime = order.getPayTime();
        this.sendTime = order.getSendTime();
        this.shipName = order.getShipName();
        this.shipCode = order.getShipCode();
        this.settle = order.getSettle();
        this.status = order.getStatus();
        this.createBy = order.getCreateBy();
        this.createTime = order.getCreateTime();
        this.updateBy = order.getUpdateBy();
        this.updateTime = order.getUpdateTime();
        this.memo = order.getMemo();
        this.moveStatus = order.getMoveStatus();
        this.pakinPakoutStatus = order.getPakinPakoutStatus();
    }
//    Order order = new Order(
//            null,    // 编号[非空]
//            null,    // 订单编号
src/main/java/com/zy/asrs/entity/OrderDetl.java
@@ -354,6 +354,51 @@
        this.memo = memo;
    }
    public OrderDetl(OrderDetl orderDetl) {
        this.orderId = orderDetl.getOrderId();
        this.orderNo = orderDetl.getOrderNo();
        this.anfme = orderDetl.getAnfme();
        this.qty = orderDetl.getQty();
        this.matnr = orderDetl.getMatnr();
        this.maktx = orderDetl.getMaktx();
        this.batch = orderDetl.getBatch();
        this.specs = orderDetl.getSpecs();
        this.model = orderDetl.getModel();
        this.color = orderDetl.getColor();
        this.brand = orderDetl.getBrand();
        this.unit = orderDetl.getUnit();
        this.price = orderDetl.getPrice();
        this.sku = orderDetl.getSku();
        this.units = orderDetl.getUnits();
        this.barcode = orderDetl.getBarcode();
        this.origin = orderDetl.getOrigin();
        this.manu = orderDetl.getManu();
        this.manuDate = orderDetl.getManuDate();
        this.itemNum = orderDetl.getItemNum();
        this.safeQty = orderDetl.getSafeQty();
        this.weight = orderDetl.getWeight();
        this.manLength = orderDetl.getManLength();
        this.volume = orderDetl.getVolume();
        this.threeCode = orderDetl.getThreeCode();
        this.supp = orderDetl.getSupp();
        this.suppCode = orderDetl.getSuppCode();
        this.beBatch = orderDetl.getBeBatch();
        this.deadTime = orderDetl.getDeadTime();
        this.deadWarn = orderDetl.getDeadWarn();
        this.source = orderDetl.getSource();
        this.inspect = orderDetl.getInspect();
        this.danger = orderDetl.getDanger();
        this.status = orderDetl.getStatus();
        this.createBy = orderDetl.getCreateBy();
        this.createTime = orderDetl.getCreateTime();
        this.updateBy = orderDetl.getUpdateBy();
        this.updateTime = orderDetl.getUpdateTime();
        this.memo = orderDetl.getMemo();
        this.pakinPakoutStatus = orderDetl.getPakinPakoutStatus();
        this.lineNumber = orderDetl.getLineNumber();
    }
    public String getOrderId$(){
        OrderService service = SpringUtils.getBean(OrderService.class);
        Order order = service.selectById(this.orderId);
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
@@ -17,7 +17,7 @@
import java.util.List;
/**
 * Created by vincent on 2020/7/7
 * Created by IX on 2024/12/17
 */
@Slf4j
@Component
@@ -31,7 +31,7 @@
    private ApiLogService apiLogService;
    @Scheduled(cron = "0 0 1 * * ? ")
    public void clearApiLog(){
    public void clearApiLog() {
        try {
            apiLogService.clearWeekBefore();
        } catch (Exception e) {
@@ -39,20 +39,33 @@
        }
    }
//    @Scheduled(cron = "0/5 * * * * ? ")
    @Async("orderThreadPool")
    public void completeAndReport(){
    public void completeAndReportOrderInAndOutUtil() {
        String erpReport = Parameter.get().getErpReport();
        if (!Cools.isEmpty(erpReport) && erpReport.equals("true")) {
//            List<Order> orders = orderService.selectComplete();
            List<Order> orders = OrderInAndOutUtil.selectComplete(null);
            for (Order order : orders) {
                ReturnT<String> result = orderSyncHandler.start(order);
                ReturnT<String> result = orderSyncHandler.startOrderInAndOutUtil(order);
                if (!result.isSuccess()) {
                    log.error("单据[orderNo={}]转上报表失败", order.getOrderNo());
                }
            }
        }
    }
    //    @Scheduled(cron = "0/5 * * * * ? ")
    @Async("orderThreadPool")
    public void completeAndReportOrder() {
        String erpReport = Parameter.get().getErpReport();
        if (!Cools.isEmpty(erpReport) && erpReport.equals("true")) {
            List<Order> orders = orderService.selectComplete();
//            List<Order> orders = OrderInAndOutUtil.selectComplete(null);
            for (Order order : orders) {
                ReturnT<String> result = orderSyncHandler.startOrder(order);
                if (!result.isSuccess()) {
                    log.error("单据[orderNo={}]上报erp失败", order.getOrderNo());
                }
            }
        }
    }
}
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
@@ -44,15 +44,30 @@
    private ApiLogService apiLogService;
    @Autowired
    private DocTypeService docTypeService;
    @Transactional
    public ReturnT<String> start(Order order) {
    public ReturnT<String> startOrderInAndOutUtil(Order order) {
        DocType docType = docTypeService.selectById(order.getDocType());
        if (null == docType) {
            return SUCCESS;
        }
//        List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
        List<OrderDetl> orderDetls = OrderInAndOutUtil.selectByOrderId(order.getPakinPakoutStatus$(), order.getId());
        Order orderNew = new Order(order);
        orderService.insert(orderNew);
        for (OrderDetl orderDetl : orderDetls){
            OrderDetl orderDetlNew = new OrderDetl(orderDetl);
            orderDetlService.insert(orderDetlNew);
        }
        // 修改订单状态 4.完成 ===>> 6.已上报
        OrderInAndOutUtil.updateOrder(order.getPakinPakoutStatus$(),order.getId(),6L,null);
        return SUCCESS;
    }
    @Transactional
    public ReturnT<String> startOrder(Order order) {
        DocType docType = docTypeService.selectById(order.getDocType());
        if (null == docType) {
            return SUCCESS;
        }
        List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
        // 入库完成上报
        if (docType.getPakin() == 1) {
            MesPakinParam pakinParam = new MesPakinParam();
@@ -76,10 +91,9 @@
                if (jsonObject.getInteger("code").equals(200)) {
                    success = true;
                    // 修改订单状态 4.完成 ===>> 6.已上报
//                    if (!orderService.updateSettle(order.getId(), 6L, null)) {
//                        throw new CoolException("服务器内部错误,请联系管理员");
//                    }
                    OrderInAndOutUtil.updateOrder(order.getPakinPakoutStatus$(),order.getId(),6L,null);
                    if (!orderService.updateSettle(order.getId(), 6L, null)) {
                        throw new CoolException("服务器内部错误,请联系管理员");
                    }
                } else {
                    log.error("请求接口失败!!!url:{};request:{};response:{}", MesConstant.URL+MesConstant.PAKIN_URL, JSON.toJSONString(pakinParam), response);
                    throw new CoolException("上报mes系统失败");
@@ -131,10 +145,9 @@
                if (jsonObject.getInteger("code").equals(200)) {
                    success = true;
                    // 修改订单状态 4.完成 ===>> 6.已上报
//                    if (!orderService.updateSettle(order.getId(), 6L, null)) {
//                        throw new CoolException("服务器内部错误,请联系管理员");
//                    }
                    OrderInAndOutUtil.updateOrder(order.getPakinPakoutStatus$(),order.getId(),6L,null);
                    if (!orderService.updateSettle(order.getId(), 6L, null)) {
                        throw new CoolException("服务器内部错误,请联系管理员");
                    }
                } else {
                    log.error("请求接口失败!!!url:{};request:{};response:{}", MesConstant.URL+MesConstant.PAKOUT_URL, JSON.toJSONString(pakoutParam), response);
                    throw new CoolException("上报mes系统失败");