自动化立体仓库 - WMS系统
pang.jiabao
11 小时以前 8763d2f0bebddcbef6cdab7c94436457495b2caa
src/main/java/com/zy/common/service/CommonService.java
@@ -364,11 +364,18 @@
                basCrnp.setWrkNo(count);
                basCrnpList.add(basCrnp);
            }
            final String sortByType;
            Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "inLocCrn1PriorityAssign").eq("status", 1));
            if (!Cools.isEmpty(config.getValue()) && config.getValue().equals("Y")) {
                sortByType = "asc"; // 定义 1 → 2 → 3 的优先级
            } else {
                sortByType = "other"; // 定义 2 → 3 → 1 的优先级
            }
            basCrnpList = basCrnpList.stream().sorted(Comparator.comparing(BasCrnp::getWrkNo).thenComparing(BasCrnp::getCrnNo,((o1, o2) -> {
                // 定义 2 → 3 → 1 的优先级
                int order1 = getCustomOrder(o1);
                int order2 = getCustomOrder(o2);
                int order1 = getCustomOrder(o1,sortByType);
                int order2 = getCustomOrder(o2,sortByType);
                return Integer.compare(order1, order2);
            }))).collect(Collectors.toList());
@@ -444,12 +451,22 @@
    }
    // 辅助方法:定义 crn_no 的排序优先级
    private static int getCustomOrder(Integer crnNo) {
    private static int getCustomOrder(Integer crnNo, String sort) {
        switch (sort) {
            case "other":
        switch (crnNo) {
            case 2: return 1;  // 2 排第一
            case 3: return 2;  // 3 排第二
            case 1: return 3;  // 1 排第三
            default: return 4; // 其他值排最后(如果有)
                    case 2:
                        return 1;  // 2 排第一
                    case 3:
                        return 2;  // 3 排第二
                    case 1:
                        return 3;  // 1 排第三
                    default:
                        return 4; // 其他值排最后(如果有)
                }
            case "asc":
            default:
                return crnNo;
        }
    }