pang.jiabao
2025-07-20 504b8cb910483dd7771984682488e8d5e7826d42
深库位出库被堵塞移库修改
3个文件已修改
42 ■■■■■ 已修改文件
src/main/java/com/zy/mapper/LocMastMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/service/impl/MainServiceImpl.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/LocMastMapper.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/mapper/LocMastMapper.java
@@ -22,6 +22,8 @@
    LocMast queryFreeLocMast(@Param("row") Integer row, @Param("locType1") Short locType1);
    LocMast queryFreeLocMastNew(@Param("row") Integer row, @Param("model") String model);
    @Select("select loc_no from asr_loc_mast where 1=1 and loc_sts = 'O' and crn_no = #{crnNo}")
    List<String> queryGroupEmptyStock(Integer crnNo);
@@ -35,4 +37,8 @@
    @Select("select count(*) as count from asr_loc_mast where 1=1 and loc_sts = 'O' and loc_type1 = #{locType1} and crn_no = #{crnNo}")
    Integer selectEmptyLocCount(@Param("locType1") Short locType1, @Param("crnNo") Integer crnNo);
    /**
     * 根据物料名称查询桶型
     */
    String selectMatMatnrByMaktx(@Param("maktx") String maktx);
}
src/main/java/com/zy/service/impl/MainServiceImpl.java
@@ -118,6 +118,9 @@
    private WaitPakinMapper waitPakinMapper;
    @Autowired
    private LocMastService locMastService;
    @Resource
    private LocMastMapper locMastMapper;
    @Autowired
    private StaDescService staDescService;
    @Autowired
@@ -898,7 +901,7 @@
                                }
                            }
                        } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
                        } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("M")|| shallowLoc.getLocSts().equals("Z")) {
                            News.warnNoLog(""+mark+" - 2"+" - 9"+" - // F、D  库位状态={}",shallowLoc.getLocSts());
//                            WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
                            //2022-08-16 modify,不根据updmk标记移库任务(容易被取消导致堵塞),查询工作档是否存在任务
@@ -1526,13 +1529,25 @@
     */
    private synchronized void moveLocForDeepLoc(CrnSlave crn, LocMast shallowLoc,Integer mark) {
        // 只有208L能放11层
        String model = null;
        if(shallowLoc.getLocSts().equals("F")) {
            LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", shallowLoc.getLocNo()));
            if(locDetl != null && locDetl.getModel() != null) {
                String matModel = locMastMapper.selectMatMatnrByMaktx(locDetl.getModel());
                if(matModel != null && matModel.equals("208L")) {
                    model = "208L";
                }
            }
        }
        try {
            News.warnNoLog(""+mark+"moveLocForDeepLoc"+" - 0"+" - 开始执行:因双深库位阻塞,对浅库位进行移转(立即执行版)");
            List<Integer> rows = locMastService.queryDistinctRow(crn.getId());
            LocMast loc = null;
            for (Integer row : rows) {
                if (Utils.isDeepLoc(slaveProperties, row)) {
                    loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType2());
//                    loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType2());
                    loc = locMastMapper.queryFreeLocMastNew(row,model);
                    if (loc != null) {
                        if (Utils.isDeepLoc(slaveProperties, loc.getLocNo())) {
@@ -1551,8 +1566,8 @@
            if (null == loc) {
                for (Integer row : rows) {
                    if (Utils.isShallowLoc(slaveProperties, row)) {
                        loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType2());
//                        loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType2());
                        loc = locMastMapper.queryFreeLocMastNew(row,model);
                        if (null != loc) {//对应深库位非在库状态,不能移库
                            String deepLoc = Utils.getDeepLoc(slaveProperties, loc.getLocNo());
                            LocMast deepLoc1 = locMastService.selectById(deepLoc);
src/main/resources/mapper/LocMastMapper.xml
@@ -58,5 +58,18 @@
        select top 1 * from asr_loc_mast where crn_no = #{crnNo} and loc_sts = 'O'
        ORDER BY NEWID()
    </select>
    <select id="queryFreeLocMastNew" resultType="com.zy.entity.LocMast">
        select top 1 *
        from asr_loc_mast
        where row1=#{row}
        and loc_sts='O'
        <if test="model != null">
            and lev1 not in (11)
        </if>
        order by NEWID(),lev1 asc,bay1 asc
    </select>
    <select id="selectMatMatnrByMaktx" resultType="java.lang.String">
        select model from man_mat where maktx  = #{maktx}
    </select>
</mapper>