自动化立体仓库 - WMS系统
zwl
2025-10-22 a9f7a73efb4fc132ad2c9a353d300b708430e961
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
@@ -1,5 +1,6 @@
package com.zy.asrs.task.handler;
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.exception.CoolException;
import com.zy.asrs.entity.DocType;
@@ -43,7 +44,6 @@
    @Autowired
    private ExdInstockTargetService exdInstockTargetService;
    @Autowired
    private ExdOutstockTargetService exdOutstockTargetService;
@@ -54,6 +54,9 @@
            return SUCCESS;
        }
        List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
        if (orderDetls.isEmpty()) {
            return SUCCESS;
        }
        // 入库完成上报
        if (docType.getPakin() == 1) {
            ExdInstockTarget exdInstockTarge = null;
@@ -69,9 +72,9 @@
                exdInstockTarge.setWritor("WMS");
                exdInstockTarge.setStatus(0);
                exdInstockTargetService.insert(exdInstockTarge);
                if (!orderService.updateSettle(order.getId(), 6L, null)) {
                    throw new CoolException("服务器内部错误,请联系管理员");
                }
            }
            if (!orderService.updateSettle(order.getId(), 6L, null)) {
                throw new CoolException("服务器内部错误,请联系管理员");
            }
        } else if (docType.getPakout() == 1) {
            // 出库完成上报
@@ -82,8 +85,6 @@
                exdOutstockTarget.setFbillno(orderDetl.getOrderNo());
                if (order.getDocType() == 42) {
                    exdOutstockTarget.setFtrantype(41);
                } else if (order.getDocType() == 21) {
                    exdOutstockTarget.setFtrantype(81);
                } else {
                    exdOutstockTarget.setFtrantype(order.getDocType().intValue());
                }
@@ -94,9 +95,68 @@
                exdOutstockTarget.setWritor("WMS");
                exdOutstockTarget.setStatus(0);
                exdOutstockTargetService.insert(exdOutstockTarget);
                if (!orderService.updateSettle(order.getId(), 6L, null)) {
                    throw new CoolException("服务器内部错误,请联系管理员");
                }
            }
            if (!orderService.updateSettle(order.getId(), 6L, null)) {
                throw new CoolException("服务器内部错误,请联系管理员");
            }
        }
        return SUCCESS;
    }
    @Transactional
    public ReturnT<String> start1(Order order, OrderDetl orderDetl) {
        DocType docType = docTypeService.selectById(order.getDocType());
        if (null == docType) {
            return SUCCESS;
        }
        List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
        if (orderDetls.isEmpty()) {
            return SUCCESS;
        }
        double count = orderDetl.getQty() - (Cools.isEmpty(orderDetl.getUnits()) ? 0.0 : orderDetl.getUnits());
        if (docType.getPakout() == 1) {
            // 出库完成上报
            ExdOutstockTarget exdOutstockTarget = null;
            exdOutstockTarget = new ExdOutstockTarget();
            //订单内码
            exdOutstockTarget.setFinterid(orderDetl.getDeadWarn());
            //单号 = erp订单号+物料编号+上报次数
            exdOutstockTarget.setFbillno(orderDetl.getOrderNo() + "--" + orderDetl.getMatnr() + "--" + orderDetl.getInspect());
            //部门ID
            exdOutstockTarget.setFdeptid(0);
            //供应商/客户ID
            exdOutstockTarget.setFsupplyid(0);
            //制单用户ID
            exdOutstockTarget.setFbillerid(0);
            //细表ID
            exdOutstockTarget.setFentryid(0);
            //物料ID
            exdOutstockTarget.setFitemid(0);
            //源单数量
            exdOutstockTarget.setFqtymust(0.0);
            //出库数量
            //单据类型
            exdOutstockTarget.setFtrantype(21);
            //单据日期
            exdOutstockTarget.setFdate(DateUtils.convert(order.getOrderTime()));
            //红蓝字
            exdOutstockTarget.setFrob(orderDetl.getBeBatch());
            //操作用户
            exdOutstockTarget.setFuserid(Integer.getInteger(orderDetl.getColor()));
            //写入时间
            exdOutstockTarget.setWritetime(new Date());
            //写入者
            exdOutstockTarget.setWritor("WMS");
            //状态
            exdOutstockTarget.setStatus(0);
            if (exdOutstockTargetService.insert(exdOutstockTarget)) {
                orderDetl.setInspect((Cools.isEmpty(orderDetl.getInspect()) ? 1 : (orderDetl.getInspect() + 1)));
                orderDetl.setUnits(count + (Cools.isEmpty(orderDetl.getUnits()) ? 0.0 : orderDetl.getUnits()));
                orderDetlService.updateById(orderDetl);
            }
        }
        return SUCCESS;