src/main/java/com/zy/asrs/mapper/WrkMastMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/WrkMastService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/utils/Utils.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/WrkMastMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | 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>