#
Junjie
2023-11-15 06dcb0ea144ae13689545ada3496d01cf686d181
#
6个文件已修改
84 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/mapper/WrkMastMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/WrkMastService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/utils/Utils.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/WrkMastMapper.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
@@ -118,4 +118,8 @@
     * 查询是否是盘点出库,检料出库
     */
    WrkMast selectpj(@Param("staNo")Integer staNo,@Param("barcode")String barcode);
    List<WrkMast> selectLaneWrkMastIn();//查询入库任务
    List<WrkMast> selectLaneWrkMastOut();//查询出库任务
}
src/main/java/com/zy/asrs/service/WrkMastService.java
@@ -17,4 +17,6 @@
    int getOutToStn182(Integer devpNo);
    WrkMast selectpj(Integer staNo,String barcode);
    List<WrkMast> selectLaneWrkMast(Integer lane, Boolean pakIn);//查询指定巷道任务
}
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -67,6 +67,8 @@
    @Autowired
    private WrkMastMapper wrkMastMapper;
    @Autowired
    private WrkMastService wrkMastService;
    @Autowired
    private WrkDetlService wrkDetlService;
    @Autowired
    private WaitPakinMapper waitPakinMapper;
@@ -736,6 +738,15 @@
                continue;
            }
            //判断堆垛机和当前任务是否处于一个巷道
            if (Utils.getLaneByLocNo(wrkMast.getLocNo()) != crnProtocol.getCrnLane()) {
                //判断堆垛机所在巷道是否存在其他任务,如存在则优先执行
                List<WrkMast> wrkMasts = wrkMastService.selectLaneWrkMast(crnProtocol.getCrnLane(), true);
                if (!wrkMasts.isEmpty()) {
                    continue;//当前堆垛机所在巷道存在任务
                }
            }
            // 双深库位且浅库位有货,则需先对浅库位进行库位移转
            if (Utils.isDeepLoc(slaveProperties, wrkMast.getLocNo())) {
                String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getLocNo());
@@ -930,6 +941,15 @@
//                        return;
                    }
                    //判断堆垛机和当前任务是否处于一个巷道
                    if (Utils.getLaneByLocNo(wrkMast.getLocNo()) != crnProtocol.getCrnLane()) {
                        //判断堆垛机所在巷道是否存在其他任务,如存在则优先执行
                        List<WrkMast> laneWrkMasts = wrkMastService.selectLaneWrkMast(crnProtocol.getCrnLane(), false);
                        if (!laneWrkMasts.isEmpty()) {
                            continue;//当前堆垛机所在巷道存在任务
                        }
                    }
                    // 1.堆垛机开始移动
                    CrnCommand crnCommand = new CrnCommand();
                    crnCommand.setCrnNo(slave.getId()); // 堆垛机编号
src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
@@ -5,8 +5,11 @@
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 org.springframework.stereotype.Service;
import javax.rmi.CORBA.Util;
import java.util.ArrayList;
import java.util.List;
@Service("wrkMastService")
@@ -37,4 +40,26 @@
        return this.baseMapper.selectpj(staNo,barcode);
    }
    @Override
    public List<WrkMast> selectLaneWrkMast(Integer lane, Boolean pakIn) {
        List<WrkMast> list = new ArrayList<>();
        List<WrkMast> wrkMasts = null;
        if (pakIn) {
            wrkMasts = this.baseMapper.selectLaneWrkMastIn();
        }else {
            wrkMasts = this.baseMapper.selectLaneWrkMastOut();
        }
        if (wrkMasts == null) {
            return list;
        }
        for (WrkMast wrkMast : wrkMasts) {
            if (Utils.getLaneByLocNo(wrkMast.getLocNo()) == lane) {
                list.add(wrkMast);
            }
        }
        return list;
    }
}
src/main/java/com/zy/asrs/utils/Utils.java
@@ -161,6 +161,31 @@
    }
    /**
     * 通过库位号获取所在巷道
     */
    public static int getLaneByLocNo(String locNo) {
        int row = Utils.getRow(locNo);
        switch (row) {
            case 1:
            case 2:
            case 3:
            case 4:
                return 1;
            case 5:
            case 6:
            case 7:
            case 8:
                return 2;
            case 9:
            case 10:
            case 11:
            case 12:
                return 3;
        }
        return 0;
    }
    public static void main(String[] args) {
        SlaveProperties slaveProperties = new SlaveProperties();
        slaveProperties.setDoubleDeep(true);
src/main/resources/mapper/WrkMastMapper.xml
@@ -195,4 +195,12 @@
    <select id="selectpj" resultMap="BaseResultMap">
        select * from dbo.asr_wrk_mast where  wrk_sts =14 and barcode=#{barcode}
    </select>
    <select id="selectLaneWrkMastIn" resultMap="BaseResultMap">
        select * from dbo.asr_wrk_mast where wrk_sts=2 and (io_type=1 or io_type=10 or io_type=53 or io_type=54 or io_type=57) order by io_pri desc,io_time,wrk_no ASC
    </select>
    <select id="selectLaneWrkMastOut" resultMap="BaseResultMap">
        select * from dbo.asr_wrk_mast where wrk_sts in (11,12,13,14) and io_type>100 order by io_pri desc,io_time,wrk_no asc
    </select>
</mapper>