自动化立体仓库 - WMS系统
pang.jiabao
2024-07-06 0e8aae27274c1b1b7a283ba73963af78417202c3
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -13,7 +13,6 @@
import com.zy.asrs.entity.param.LocDetlAdjustParam;
import com.zy.asrs.entity.param.StockOutParam;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.OutboundAllocationUtil;
import com.zy.asrs.utils.Utils;
import com.zy.common.model.*;
import com.zy.common.model.enums.IoWorkType;
@@ -28,7 +27,6 @@
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
 * Created by vincent on 2020/6/11
@@ -403,7 +401,48 @@
        LocMast locMast = locMastService.selectById(taskDto.getLocNo());
        // 获取路径
        int ioType = taskDto.isAll() ? 101 : 103;
        StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo());
//        StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo());
        // 根据库位排号+出库站点,获取出库源站点
        int row = Integer.parseInt(locMast.getLocNo().substring(0, 2));
        int souresStaNo = 0;
        if (taskDto.getStaNo() < 3000) { // 二楼
            switch (row) {
                case 1: case 2: case 3:
                case 4: souresStaNo = 2062; break;
                case 5: case 6: case 7:
                case 8: souresStaNo = 2065; break;
                case 9: case 10: case 11:
                case 12: souresStaNo = 2068; break;
                case 13: case 14: case 15:
                case 16: souresStaNo = 2070; break;
                case 17: case 18: case 19:
                case 20: souresStaNo = 2073; break;
                case 21: case 22: case 23:
                case 24: souresStaNo = 2076; break;
                default:
            }
        } else { // 一楼
            switch (row) {
                case 1: case 2: case 3:
                case 4: souresStaNo = 3002; break;
                case 5: case 6: case 7:
                case 8: souresStaNo = 3003; break;
                case 9: case 10: case 11:
                case 12: souresStaNo = 3006; break;
                case 13: case 14: case 15:
                case 16: souresStaNo = 3008; break;
                case 17: case 18: case 19:
                case 20: souresStaNo = 3009; break;
                case 21: case 22: case 23:
                case 24: souresStaNo = 3012; break;
                default:
            }
        }
        if (souresStaNo == 0) {
            throw new CoolException("源站点转换异常:" + row);
        }
        // 生成工作号
        int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
        // 生成工作档
@@ -414,8 +453,8 @@
        wrkMast.setIoType(ioType); // 入出库状态
        wrkMast.setIoPri(13D); // 优先级:13
        wrkMast.setCrnNo(locMast.getCrnNo());
        wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 源站
        wrkMast.setStaNo(staDesc.getStnNo()); // 目标站
        wrkMast.setSourceStaNo(souresStaNo); // 源站
        wrkMast.setStaNo(taskDto.getStaNo()); // 目标站
        wrkMast.setSourceLocNo(taskDto.getLocNo()); // 源库位
        wrkMast.setFullPlt("Y"); // 满板:Y
        wrkMast.setPicking("N"); // 拣料
@@ -438,9 +477,17 @@
                orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null);
            }
            WrkDetl wrkDetl = new WrkDetl();
            wrkDetl.sync(orderDetl);
//            wrkDetl.sync(orderDetl);
            wrkDetl.setZpallet(wrkMast.getBarcode());
            wrkDetl.setIoTime(now);
            wrkDetl.setMatnr(locDto.getMatnr());
            wrkDetl.setMaktx(locDto.getMaktx());
            wrkDetl.setWeight(locDto.getWeight()); // 净重
            wrkDetl.setVolume(locDto.getVolume()); // 毛重
            wrkDetl.setOrigin(locDto.getOrigin()); // 木箱在托盘位置
            wrkDetl.setPrice(locDto.getPrice());
            wrkDetl.setSpecs(locDto.getSpecs());
            wrkDetl.setModel(locDto.getModel());
            wrkDetl.setWrkNo(workNo);
            wrkDetl.setBatch(locDto.getBatch());
            wrkDetl.setOrderNo(locDto.getOrderNo());