skyouc
2025-11-18 05ecec68b2214720730a4c5a7bdf5c9dd1b74313
出库站点区分高低库位优化
2个文件已修改
24 ■■■■■ 已修改文件
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/BasStation.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/utils/LocManageUtil.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/BasStation.java
@@ -61,6 +61,9 @@
    @ApiModelProperty(value= "可出")
    private Integer outAble = 0;
    @ApiModelProperty("站点类型 H:高, L:低")
    private String sType = "H";
    /**
     * 状态
     */
rsf-server/src/main/java/com/vincent/rsf/server/manager/utils/LocManageUtil.java
@@ -209,12 +209,18 @@
                                orderOutItemDto.setStaNos(maps);
                                //获取满足条件站点
                                Set<String> stationSet = deviceSites.stream().map(DeviceSite::getSite).collect(Collectors.toSet());
                                String sType = "H";
                                //获取高低站点类型
                                if (startsWithTwoChars(loc.getBarcode(), "31")) {
                                    sType = "L";
                                }
                                //已使用站点
                                Set<String> stas = stations.stream().map(BasStation::getStationName).collect(Collectors.toSet());
                                BasStationService basStationService = SpringUtils.getBean(BasStationService.class);
                                BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
                                        .eq(BasStation::getUseStatus, LocStsType.LOC_STS_TYPE_O.type)
                                        .in(BasStation::getStationName, stationSet)
                                        .eq(BasStation::getSType, sType)
                                        .notIn(!stas.isEmpty(), BasStation::getStationName, stas)
                                        .last("LIMIT 1"));
                                stations.add(basStation);
@@ -252,4 +258,19 @@
        return list;
    }
    /**
     * 检查字符串前两个字符是否包含指定内容
     *
     * @param str    要检查的字符串
     * @param target 目标字符串(长度应为2)
     * @return 是否包含
     */
    public static boolean startsWithTwoChars(String str, String target) {
        if (str == null || target == null || target.length() != 2) {
            return false;
        }
        return str.length() >= 2 && str.substring(0, 2).equals(target);
    }
}