pang.jiabao
2024-10-24 c7338c0fc1513507c05c1a7fd00bff8c11ad5d1e
生成移库时寻找库位不占用备货区
7个文件已修改
54 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/mapper/LocMastMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/LocMastService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/mapper/ConfigMapper.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/ConfigMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/LocMastMapper.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -22,6 +22,11 @@
    LocMast queryFreeLocMast(@Param("row") Integer row, @Param("locType1") Short locType1);
    /**
     * 检索可用库位,不占用备货区
     */
    LocMast queryFreeLocMastNotBay(@Param("row") Integer row, @Param("locType1") Short locType1,@Param("bay") Integer bay);
    @Select("select loc_no from asr_loc_mast where 1=1 and loc_sts = 'O' and crn_no = #{crnNo}")
    List<String> queryGroupEmptyStock(Integer crnNo);
src/main/java/com/zy/asrs/service/LocMastService.java
@@ -18,6 +18,11 @@
    LocMast queryFreeLocMast(Integer row, Short locType1);
    /**
     * 检索可用库位,不占用备货区
     */
    LocMast queryFreeLocMastNotBay(Integer row, Short locType1, Integer bay);
    /**
     * 获取同组货架的空库位
     * @param sourceLocNo 源库位
     * @return 同组空库位集合
src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -23,6 +23,11 @@
    }
    @Override
    public LocMast queryFreeLocMastNotBay(Integer row, Short locType1, Integer bay) {
        return this.baseMapper.queryFreeLocMastNotBay(row, locType1,bay);
    }
    @Override
    public List<String> queryGroupEmptyStock(String sourceLocNo) {
        if (Cools.isEmpty(sourceLocNo)) {
            return null;
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -38,6 +38,8 @@
import com.zy.core.thread.LedThread;
import com.zy.core.thread.RgvThread;
import com.zy.core.thread.SiemensDevpThread;
import com.zy.system.entity.Config;
import com.zy.system.mapper.ConfigMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -45,6 +47,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import javax.annotation.Resource;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@@ -100,6 +103,9 @@
    private BasRgvMapMapper basRgvMapMapper;
    @Autowired
    private RgvOneSignMapper rgvOneSignMapper;
    @Resource
    private ConfigMapper configMapper;
    @Value("${wms.url}")
    private String wmsUrl;
@@ -2714,9 +2720,18 @@
        try {
            List<Integer> rows = locMastService.queryDistinctRow(crn.getId());
            LocMast loc = null;
            // 获取备货区配置
            Config config = configMapper.selectConfigByCode("auto_stock_up");
            if (config == null) {
                return;
            }
            // 备货取是前几列
            int bay1 = Integer.parseInt(config.getValue());
            for (Integer row : rows) {
                if (Utils.isDeepLoc(slaveProperties, row)) {
                    loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
                    loc = locMastService.queryFreeLocMastNotBay(row, shallowLoc.getLocType1(),bay1);
                    if (loc != null) {
                        if (Utils.isDeepLoc(slaveProperties, loc.getLocNo())) {
@@ -2735,7 +2750,7 @@
            if (null == loc) {
                for (Integer row : rows) {
                    if (Utils.isShallowLoc(slaveProperties, row)) {
                        loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
                        loc = locMastService.queryFreeLocMastNotBay(row, shallowLoc.getLocType1(),bay1);
                        if (null != loc) {//对应深库位非在库状态,不能移库
                            String deepLoc = Utils.getDeepLoc(slaveProperties, loc.getLocNo());
src/main/java/com/zy/system/mapper/ConfigMapper.java
@@ -3,10 +3,14 @@
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.zy.system.entity.Config;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface ConfigMapper extends BaseMapper<Config> {
    /**
     * 根据编码查询配置详情
     */
    Config selectConfigByCode(@Param("code") String code);
}
src/main/resources/mapper/ConfigMapper.xml
@@ -12,5 +12,8 @@
        <result column="status" property="status" />
    </resultMap>
    <select id="selectConfigByCode" resultType="com.zy.system.entity.Config">
        select Top 1 * from sys_config where code = #{code}
    </select>
</mapper>
src/main/resources/mapper/LocMastMapper.xml
@@ -58,5 +58,16 @@
        select top 1 * from asr_loc_mast where crn_no = #{crnNo} and loc_sts = 'O'
        ORDER BY NEWID()
    </select>
    <select id="queryFreeLocMastNotBay" resultMap="BaseResultMap">
        select top 1 *
        from asr_loc_mast
        where row1=#{row}
        and loc_sts='O'
        and bay1 > #{bay}
        <if test="locType1 != null">
            and loc_type1 = #{locType1}
        </if>
        order by NEWID(),lev1 asc,bay1 asc
    </select>
</mapper>