自动化立体仓库 - WMS系统
skyouc
8 小时以前 bfa307fb0fe82ce6f5a2ea354fcee43d9d1f0fa1
src/main/java/com/zy/common/service/CommonService.java
@@ -216,7 +216,97 @@
                .le("row1", rowLastno.geteRow())
                .eq("loc_type1", locTypeDto.getLocType1())
                .eq("loc_sts", "O")
                .orderAsc(Arrays.asList("lev1", "row1", "bay1"));
                .orderAsc(Arrays.asList( "row1", "bay1","lev1"));
        if (locTypeDto.getLocType1() != 2) {
            wrapper.eq("crn_no", crnNo);
        }
        locMast = locMastService.selectOne(wrapper);
        // int crnCountO = wrkMastService.selectCount(new
        // EntityWrapper<WrkMast>().eq("crn_no", crnNo).le("io_type", 100));
        // 生成工作号
        int workNo;
        if (whsType == 2) {
            // 生成工作号
            workNo = getWorkNo(3);
        } else {
            // 生成工作号
            workNo = getWorkNo(0);
        }
        // 返回dto
        startupDto.setWorkNo(workNo);
        startupDto.setCrnNo(locMast.getCrnNo());
        startupDto.setSourceStaNo(sourceStaNo);
        startupDto.setLocNo(locMast.getLocNo());
        return startupDto;
    }
    public StartupDto getChecklocNoRun(Integer whsType, Integer staDescId, Integer sourceStaNo,
                                  FindLocNoAttributeVo findLocNoAttributeVo, Integer moveCrnNo, LocTypeDto locTypeDto, int times) {
        staDescId = 1;
        // 初始化参数
        int crnNo = 0; // 堆垛机号
        int nearRow = 0; // 最浅库位排
        LocMast locMast = null; // 目标库位
        RowLastno rowLastno = rowLastnoService.selectById(whsType);
        if (Cools.isEmpty(rowLastno)) {
            throw new CoolException("数据异常,请联系管理员===>库位规则未知");
        }
        int minCount = Integer.MAX_VALUE;
        if (whsType == 2) {
            if (locTypeDto.getLocType1() == 2) {
                // 均衡分布堆垛机
                for (int i = 4; i <= 5; i++) {
                    int count = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("crn_no", i));
                    if (count < minCount) {
                        minCount = count;
                        crnNo = i;
                    }
                }
            } else {
                for (int i = 4; i <= 6; i++) {
                    int count = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("crn_no", i));
                    if (count < minCount) {
                        minCount = count;
                        crnNo = i;
                    }
                }
                if (crnNo == 6) {
                    return getDoubleLocNoRun(3, 1, sourceStaNo, findLocNoAttributeVo, null, locTypeDto, times);
                }
            }
        } else {
            // 均衡分布堆垛机
            for (int i = rowLastno.getsCrnNo(); i <= rowLastno.geteCrnNo(); i++) {
                int count = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("crn_no", i));
                if (count < minCount) {
                    minCount = count;
                    crnNo = i;
                }
            }
        }
        StartupDto startupDto = new StartupDto();
//        new EntityWrapper<LocMast>(new EntityWrapper<LocMast>()
//                .ge("row1", rowLastno.getsRow())
//                .le("row1", rowLastno.geteRow())
//                .eq("crn_no", crnNo)
//                .eq("loc_type1", locTypeDto.getLocType1())
//                .eq("loc_sts", "O")
//                .orderAsc(Arrays.asList("lev1", "row1", "bay1")))
        Wrapper<LocMast> wrapper = new EntityWrapper<LocMast>()
                .ge("row1", rowLastno.getsRow())
                .le("row1", rowLastno.geteRow())
                .eq("loc_type1", locTypeDto.getLocType1())
                .eq("loc_sts", "O")
                .orderAsc(Arrays.asList( "row1", "bay1","lev1"));
        if (locTypeDto.getLocType1() != 2) {
            wrapper.eq("crn_no", crnNo);