自动化立体仓库 - WMS系统
#
luxiaotao1123
2022-09-27 ccaf80f21ea0a8375324df6bb2250b9ad11c5cdd
#
5个文件已修改
169 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/mapper/WrkMastMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/WrkMastService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/utils/Utils.java 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/WrkMastMapper.xml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.zy.asrs.entity.WrkMast;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@@ -16,4 +17,8 @@
    List<WrkMast> selectToBeHistoryData();
    WrkMast selectByLocNoOfPakin(@Param("locNo") String locNo);
    WrkMast selectBySourceLocNoOfPakout(@Param("sourceLocNo") String sourceLocNo);
}
src/main/java/com/zy/asrs/service/WrkMastService.java
@@ -15,6 +15,8 @@
    WrkMast selectByBarcode(String barcode);
    Double getIoPri(Integer ioType, String locNo);
    /**
     * 从工作档得到站点入库暂存数
     * @param crnNo
src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
@@ -6,6 +6,7 @@
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.mapper.WrkMastMapper;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.utils.Utils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -40,6 +41,61 @@
    }
    @Override
    public synchronized Double getIoPri(Integer ioType, String locNo) {
        Double defaultIoPri = null;
        if (Cools.isEmpty(ioType, locNo)) {
            return 15.0D;
        }
        if (ioType != 11) {
            // 入库
            if (ioType < 100) {
                List<String> groupOuterLoc = Utils.getGroupOuterLoc(locNo);
                if (!Cools.isEmpty(groupOuterLoc)) {
                    for (String outerLoc : groupOuterLoc) {
                        WrkMast wrkMast = this.baseMapper.selectByLocNoOfPakin(outerLoc);
                        if (wrkMast != null) {
                            defaultIoPri = defaultIoPri == null ? wrkMast.getIoPri() + 2 : defaultIoPri + 2;
                        }
                    }
                }
                List<String> groupInsideLoc = Utils.getGroupInsideLoc(locNo);
                if (!Cools.isEmpty(groupInsideLoc)) {
                    for (String insideLoc : groupInsideLoc) {
                        WrkMast wrkMast = this.baseMapper.selectByLocNoOfPakin(insideLoc);
                        if (wrkMast != null) {
                            defaultIoPri = defaultIoPri == null ? wrkMast.getIoPri() - 2 : defaultIoPri - 2;
                        }
                    }
                }
            // 出库
            } else {
                List<String> groupOuterLoc = Utils.getGroupOuterLoc(locNo);
                if (!Cools.isEmpty(groupOuterLoc)) {
                    for (String outerLoc : groupOuterLoc) {
                        WrkMast wrkMast = this.baseMapper.selectBySourceLocNoOfPakout(outerLoc);
                        if (wrkMast != null) {
                            defaultIoPri = defaultIoPri == null ? wrkMast.getIoPri() - 2 : defaultIoPri - 2;
                        }
                    }
                }
                List<String> groupInsideLoc = Utils.getGroupInsideLoc(locNo);
                if (!Cools.isEmpty(groupInsideLoc)) {
                    for (String insideLoc : groupInsideLoc) {
                        WrkMast wrkMast = this.baseMapper.selectBySourceLocNoOfPakout(insideLoc);
                        if (wrkMast != null) {
                            defaultIoPri = defaultIoPri == null ? wrkMast.getIoPri() + 2 : defaultIoPri + 2;
                        }
                    }
                }
            }
        // 移库
        } else {
//            @Deprecated
        }
        return defaultIoPri == null ? 15.0D : defaultIoPri;
    }
    @Override
    public int getStoreCount(Integer crnNo) {
        return selectCount(new EntityWrapper<WrkMast>().eq("crn_no", crnNo)
                .last(" and (wrk_sts in (1,2) or (wrk_sts=3 and wrk_no in (select wrk_no from asr_bas_devp)))"));
src/main/java/com/zy/asrs/utils/Utils.java
@@ -443,4 +443,92 @@
        }
    }
    // 注意顺序
    public static List<String> getGroupInsideLoc(String locNo){
        int row = getRow(locNo);
        switch (row) {
            case 1:
            case 21:
            case 14:
            case 15:
            case 7:
            case 8:
                return new ArrayList<>();
            case 2:
                return new ArrayList<String>() {{
                    add(zerofill(String.valueOf(1), 2) + locNo.substring(2));
                }};
            case 3:
                return new ArrayList<String>() {{
                    add(zerofill(String.valueOf(1), 2) + locNo.substring(2));
                    add(zerofill(String.valueOf(2), 2) + locNo.substring(2));
                }};
            case 4:
                return new ArrayList<String>() {{
                    add(zerofill(String.valueOf(7), 2) + locNo.substring(2));
                    add(zerofill(String.valueOf(6), 2) + locNo.substring(2));
                    add(zerofill(String.valueOf(5), 2) + locNo.substring(2));
                }};
            case 5:
                return new ArrayList<String>() {{
                    add(zerofill(String.valueOf(7), 2) + locNo.substring(2));
                    add(zerofill(String.valueOf(6), 2) + locNo.substring(2));
                }};
            case 6:
                return new ArrayList<String>() {{
                    add(zerofill(String.valueOf(7), 2) + locNo.substring(2));
                }};
            case 9:
                return new ArrayList<String>() {{
                    add(zerofill(String.valueOf(8), 2) + locNo.substring(2));
                }};
            case 10:
                return new ArrayList<String>() {{
                    add(zerofill(String.valueOf(8), 2) + locNo.substring(2));
                    add(zerofill(String.valueOf(9), 2) + locNo.substring(2));
                }};
            case 11:
                return new ArrayList<String>() {{
                    add(zerofill(String.valueOf(8), 2) + locNo.substring(2));
                    add(zerofill(String.valueOf(9), 2) + locNo.substring(2));
                    add(zerofill(String.valueOf(10), 2) + locNo.substring(2));
                }};
            case 12:
                return new ArrayList<String>() {{
                    add(zerofill(String.valueOf(14), 2) + locNo.substring(2));
                    add(zerofill(String.valueOf(13), 2) + locNo.substring(2));
                }};
            case 13:
                return new ArrayList<String>() {{
                    add(zerofill(String.valueOf(14), 2) + locNo.substring(2));
                }};
            case 16:
                return new ArrayList<String>() {{
                    add(zerofill(String.valueOf(15), 2) + locNo.substring(2));
                }};
            case 17:
                return new ArrayList<String>() {{
                    add(zerofill(String.valueOf(15), 2) + locNo.substring(2));
                    add(zerofill(String.valueOf(16), 2) + locNo.substring(2));
                }};
            case 18:
                return new ArrayList<String>() {{
                    add(zerofill(String.valueOf(15), 2) + locNo.substring(2));
                    add(zerofill(String.valueOf(16), 2) + locNo.substring(2));
                    add(zerofill(String.valueOf(17), 2) + locNo.substring(2));
                }};
            case 19:
                return new ArrayList<String>() {{
                    add(zerofill(String.valueOf(21), 2) + locNo.substring(2));
                    add(zerofill(String.valueOf(20), 2) + locNo.substring(2));
                }};
            case 20:
                return new ArrayList<String>() {{
                    add(zerofill(String.valueOf(21), 2) + locNo.substring(2));
                }};
            default:
                throw new RuntimeException("库位解析异常");
        }
    }
}
src/main/resources/mapper/WrkMastMapper.xml
@@ -78,4 +78,22 @@
        order by io_time,wrk_no asc
    </select>
    <select id="selectByLocNoOfPakin" resultMap="BaseResultMap">
        select top 1 *
        from asr_wrk_mast
        where 1=1
        and io_type &lt; 100 and io_type != 11
        and loc_no = #{locNo}
        and wrk_sts &lt; 9
    </select>
    <select id="selectBySourceLocNoOfPakout" resultMap="BaseResultMap">
        select top 1 *
        from asr_wrk_mast
        where 1=1
        and io_type > 100
        and source_loc_no = #{sourceLocNo}
        and wrk_sts &lt; 17
    </select>
</mapper>