自动化立体仓库 - WMS系统
zhangc
2025-01-18 8ca385d65454fb8e993970a768ed3ad5c3a095ab
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -11,6 +11,7 @@
import com.zy.asrs.entity.param.LocDetlAdjustParam;
import com.zy.asrs.entity.param.StockOutParam;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.OrderUtils;
import com.zy.asrs.utils.Utils;
import com.zy.common.model.LocDto;
import com.zy.common.model.OrderDto;
@@ -31,6 +32,7 @@
import java.util.Iterator;
import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference;
/**
 * Created by vincent on 2020/6/11
@@ -507,6 +509,9 @@
            case 30:
                br = 3;
                break;
            case 31:
                br = 6;
                break;
            case 40:
                br = 5;
                break;
@@ -517,6 +522,7 @@
        if (agvBasDevp.getLocType1() != br) {
            throw new CoolException("站点类型和货架类型不符!");
        }
        AtomicReference<String> factory = new AtomicReference<>();
        if (containerType == 40) {
            locType = 5;
        } else if (containerType == 21 && agvBasDevp.getFloor() == 3) {
@@ -525,6 +531,8 @@
            locType = 2;
        } else if (containerType == 30) {
            locType = 3;
        } else if (containerType == 31) {
            locType = 6;
        } else {
            locType = agvBasDevp.getLocType1();
        }
@@ -553,6 +561,7 @@
        if (!Cools.isEmpty(agvWaitPakinList)) {
            AtomicBoolean isCurrLev = new AtomicBoolean(false);
            agvWaitPakinList.forEach(agvWaitPakin -> {
                factory.set(OrderUtils.getFactory(agvWaitPakin.getThreeCode()));
                if (!Cools.isEmpty(agvWaitPakin.getProcessSts())) {
                    if (agvWaitPakin.getProcessSts() == 1) {
                        isCurrLev.set(true);
@@ -623,6 +632,9 @@
        // 站点检测
        AgvBasDevp agvBasDevp = agvBasDevpService.selectById(station);
        if (Cools.isEmpty(agvBasDevp)) {
            throw new CoolException("站点信息不存在");
        }
        if (!agvBasDevp.getLocSts().equals("O")) {
            throw new CoolException("当前工作位状态为" + agvBasDevp.getLocSts() + ",无法进行空板出库");
        }
@@ -1242,6 +1254,9 @@
            throw new CoolException(matnr + "商品维护失败");
        }
        OrderDetl orderDetl = orderDetlService.selectItem(orderNo, mat.getMatnr(), batch, csocode);
        if (orderDetl == null) {
            throw new CoolException("订单明细不存在");
        }
        AgvWrkDetl wrkDetl = new AgvWrkDetl();
        wrkDetl.sync(mat);
        if (orderDetl != null) {
@@ -1324,6 +1339,10 @@
        wrkMast.setAppeTime(now);
        wrkMast.setModiUser(userId);
        wrkMast.setModiTime(now);
        if (!Cools.isEmpty(locNo) && Cools.isEmpty(pltType)) {
            AgvLocMast agvLocMast = agvLocMastService.selectById(locNo);
            pltType = agvLocMast.getPltType();
        }
        wrkMast.setPltType(pltType);
        wrkMast.setLogErrMemo("createWaitPainWrkMastStart");