自动化立体仓库 - WMS系统
1
zhang
4 天以前 c550c142bcd4b079ba0b4c23498f2bf7488e61a4
1
1个文件已修改
58 ■■■■■ 已修改文件
src/main/java/com/zy/common/service/CommonService.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/service/CommonService.java
@@ -123,7 +123,7 @@
     */
    @Transactional
    public StartupDto getLocNo(Integer staDescId, Integer sourceStaNo, FindLocNoAttributeVo findLocNoAttributeVo, LocTypeDto locTypeDto) {
        try {
        // try {
            Integer whsType = Utils.GetWhsType(sourceStaNo);
            RowLastno rowLastno = rowLastnoService.selectById(whsType);
            RowLastnoType rowLastnoType = rowLastnoTypeService.selectById(rowLastno.getTypeId());
@@ -132,7 +132,55 @@
             */
            switch (rowLastnoType.getType()) {
                case 1:
                Config crnSearchDetectTaskCountConfig = configService.selectConfigByCode("crnSearchDetectTaskCount");
                int crnSearchDetectTaskCount = Integer.parseInt(crnSearchDetectTaskCountConfig.getValue());
                Config applyInTaskTotalCountConfig = configService.selectConfigByCode("applyInTaskTotalCount");
                int applyInTaskTotalCount = Integer.parseInt(applyInTaskTotalCountConfig.getValue());
                int crnNo = 6;
                boolean flag = true;
                List<String> data = new ArrayList<>();
                while (crnNo > 0) {
                    List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
                            .eq("loc_sts", "O")
                            .eq("crn", crnNo)
                            .eq("whs_type", rowLastnoType.getType().longValue())
                            .eq("loc_type1", locTypeDto.getLocType1())
                            .eq("loc_type2", locTypeDto.getLocType2())
                    );
                    if (locMasts.size() <= 15) {
                        log.error(crnNo + "号堆垛机没有空库位!!! 尺寸规格: {}", JSON.toJSONString(locTypeDto));
                        data.add(crnNo + "号没有空库位;");
                    } else {
                        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
                                .eq("crn_no", crnNo)
                                .in("io_type", 1, 10, 53, 57)
                        );
                        if (wrkMasts.size() > crnSearchDetectTaskCount) {
                            log.error(crnNo + "号堆垛机已达到入库控制上限!!! 任务数量: {}, 控制数量:{}", wrkMasts.size(), crnSearchDetectTaskCount);
                            data.add(crnNo + "号入库控制上限;");
                            continue;
                        }
                        List<WrkMast> wrkMastsList = wrkMastService.selectList(new EntityWrapper<WrkMast>()
                                .eq("crn_no", crnNo)
                                .in("io_type", 1, 10, 53, 57, 101, 103, 107, 110)
                        );
                        if (wrkMastsList.size() > applyInTaskTotalCount) {
                            log.error(crnNo + "号堆垛机已达到申请入库时总任务数量上限(入库、出库)!!! 任务数量: {}, 控制数量:{}", wrkMastsList.size(), applyInTaskTotalCount);
                            data.add(crnNo + "号申请入库时总任务数量上限;");
                            continue;
                        }
                        flag = false;
                        break;
                    }
                    crnNo--;
                }
                if (!flag) {
                    return getLocNoRun(whsType, staDescId, sourceStaNo, findLocNoAttributeVo, 0, locTypeDto, 0);
                } else {
                    log.info("数据:{}", data);
                    throw new CoolException(data.toString());
                }
                case 2:
                    log.error("站点={} 未查询到对应的规则", sourceStaNo);
                    break;
@@ -148,9 +196,9 @@
                    break;
            }
        } catch (Exception e) {
            log.error("站点={} 未查询到对应的规则,{}", sourceStaNo,e.getMessage());
        }
//        } catch (Exception e) {
//            log.error("站点={} 未查询到对应的规则,{}", sourceStaNo, e.getMessage());
//        }
        return null;
    }
@@ -233,6 +281,7 @@
                );
                if (wrkMastsList.size() > applyInTaskTotalCount) {
                    log.error(crnNo + "号堆垛机已达到申请入库时总任务数量上限(入库、出库)!!! 任务数量: {}, 控制数量:{}", wrkMastsList.size(), applyInTaskTotalCount);
                    continue;
                }
                rowCount = locNecessaryParameters[0];
@@ -621,7 +670,6 @@
                locMast = locMastNew;
            }
        }
        // 获取目标站