#
tqs
2022-11-11 c74dc9e3a36f1f91d5dc1e867cd2b9faceac2d02
#
3个文件已修改
34 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/mapper/WrkMastMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/WrkMastMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
@@ -99,4 +99,10 @@
    List<WrkMast> selectPick17(@Param("staNo") Integer staNo, @Param("wrkNo") Integer wrkNo);
    /**
     * 查询工作档是否存在移库任务
     * @param crnNo
     * @return
     */
    WrkMast selectLocMoveData(@Param("crnNo")Integer crnNo);
}
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -701,6 +701,14 @@
                log.error("入库 ===>> 堆垛机站点在数据库不存在, 站点编号={}", crnStn.getStaNo());
                continue;
            }
            //加强判断,只要存在移库任务,说明出库任务未完全结束,不执行入库任务
            WrkMast one = wrkMastMapper.selectLocMoveData(slave.getId());
            if(!Cools.isEmpty(one)){
                log.error("入库 ===>> 存在移库未完成任务,不能入库。移库任务号={},堆垛机号={}", one.getWrkNo(), slave.getId());
                continue;
            }
            // 获取工作状态为 2,3,4,5,6 的入库工作档
            WrkMast wrkMast = wrkMastMapper.selectPakInStep23456(slave.getId(), staProtocol.getWorkNo().intValue(), crnStn.getStaNo());
            if(null == wrkMast) {
@@ -895,6 +903,23 @@
                continue;
            }
            //加强判断,确保因出库导致的移库整套任务全部结束后,才能执行下一笔出库任务。只有库位完成移库回去全部任务后,才认为当组出库任务完成
            WrkMast one = wrkMastMapper.selectLocMoveData(slave.getId());
            if(!Cools.isEmpty(one)){
                //存在移库任务,且在移出中,且移库源库位与待出库库位不在同一库位组,时跳出,确保移库/出库全套任务完成后,再执行下一笔
                if(one.getWrkSts() > 10 && (Utils.getGroupRow(wrkMast.getSourceLocNo()) != Utils.getGroupRow(one.getSourceLocNo())
                        && Utils.getBay(wrkMast.getSourceLocNo()) == Utils.getBay(one.getSourceLocNo())
                        && Utils.getLev(wrkMast.getSourceLocNo()) == Utils.getLev(one.getSourceLocNo()))){
                    continue;
                }
                //存在移库任务,且在移回中,且移库目标库位与待出库库位不在同一库位组,时跳出,确保移库/出库全套任务完成后,再执行下一笔
                if(one.getWrkSts() < 11  && (Utils.getGroupRow(wrkMast.getSourceLocNo()) != Utils.getGroupRow(one.getLocNo())
                        && Utils.getBay(wrkMast.getSourceLocNo()) == Utils.getBay(one.getLocNo())
                        && Utils.getLev(wrkMast.getSourceLocNo()) == Utils.getLev(one.getLocNo()))){
                    continue;
                }
            }
            //出库库位不是最外层库位,判断浅库位组是否都为空,或存在库位移转任务
            boolean flag = false;
            if(!locMastService.isOutMost(wrkMast.getSourceLocNo())){
src/main/resources/mapper/WrkMastMapper.xml
@@ -177,4 +177,7 @@
        </if>
    </select>
    <select id="selectLocMoveData" resultMap="BaseResultMap">
        select top 1 * from dbo.asr_wrk_mast where crn_no=#{crnNo} and io_type=11 order by io_pri desc,io_time,wrk_no asc
    </select>
</mapper>