| | |
| | | |
| | | WrkMast selectPakoutEmpty(@Param("staNo")Integer outSite); |
| | | |
| | | List<WrkMast> selectLaneWrkMastIn();//查询入库任务 |
| | | |
| | | List<WrkMast> selectLaneWrkMastOut();//查询出库任务 |
| | | |
| | | |
| | | } |
| | |
| | | |
| | | int getOutToStn182(Integer devpNo); |
| | | |
| | | List<WrkMast> selectLaneWrkMast(Integer lane, Boolean pakIn);//查询指定巷道任务 |
| | | |
| | | } |
| | |
| | | private BasErrLogService basErrLogService; |
| | | @Autowired |
| | | private BasCrnErrorMapper basCrnErrorMapper; |
| | | @Autowired |
| | | private WrkMastService wrkMastService; |
| | | |
| | | @Value("${wms.url}") |
| | | private String wmsUrl; |
| | |
| | | continue; |
| | | } |
| | | |
| | | if (crnProtocol.getCrnNo() == 1) { |
| | | //判断堆垛机和当前任务是否处于一个巷道 |
| | | if (Utils.getLaneByLocNo(wrkMast.getLocNo()) != crnProtocol.getCrnLane()) { |
| | | //判断堆垛机所在巷道是否存在其他任务,如存在则优先执行 |
| | | List<WrkMast> currentWrkMasts = wrkMastService.selectLaneWrkMast(crnProtocol.getCrnLane(), false); |
| | | if (!currentWrkMasts.isEmpty()) { |
| | | continue;//当前堆垛机所在巷道存在任务 |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 双深库位且浅库位有货,则需先对浅库位进行库位移转 |
| | | if (Utils.isDeepLoc(slaveProperties, wrkMast.getLocNo())) { |
| | | News.warnNoLog(""+mark+" - 1"+" - 8"+" - 双深库位且浅库位有货,则需先对浅库位进行库位移转 : 开始执行 任务号={}",wrkMast.getWrkNo()); |
| | |
| | | break; |
| | | } |
| | | |
| | | if (crnProtocol.getCrnNo() == 1) { |
| | | //判断堆垛机和当前任务是否处于一个巷道 |
| | | if (Utils.getLaneByLocNo(wrkMast.getLocNo()) != crnProtocol.getCrnLane()) { |
| | | //判断堆垛机所在巷道是否存在其他任务,如存在则优先执行 |
| | | List<WrkMast> currentWrkMasts = wrkMastService.selectLaneWrkMast(crnProtocol.getCrnLane(), false); |
| | | if (!currentWrkMasts.isEmpty()) { |
| | | continue;//当前堆垛机所在巷道存在任务 |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 双深库位且浅库位有货,则需先对浅库位进行库位移转 |
| | | if (Utils.isDeepLoc(slaveProperties, wrkMast.getSourceLocNo())) { |
| | | News.warnNoLog(""+mark+" - 2"+" - 6"+" - 双深库位且浅库位有货,则需先对浅库位进行库位移转 : 开始执行 任务号={}",wrkMast.getWrkNo()); |
| | |
| | | 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 java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | @Service("wrkMastService") |
| | |
| | | public int getOutToStn182(Integer devpNo) { |
| | | return selectCount(new EntityWrapper<WrkMast>().eq("sta_no", devpNo).in("wrk_sts",11,12)); |
| | | } |
| | | |
| | | @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.getIoType() > 100 ? wrkMast.getSourceLocNo() : wrkMast.getLocNo()) == lane) { |
| | | list.add(wrkMast); |
| | | } |
| | | } |
| | | return list; |
| | | } |
| | | } |
| | |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 通过库位号获取所在巷道 |
| | | */ |
| | | public static int getLaneByLocNo(String locNo) { |
| | | int row = Utils.getRow(locNo); |
| | | switch (row) { |
| | | case 1: |
| | | case 2: |
| | | case 3: |
| | | return 1; |
| | | case 4: |
| | | case 5: |
| | | case 6: |
| | | return 2; |
| | | } |
| | | return 0; |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | SlaveProperties slaveProperties = new SlaveProperties(); |
| | | slaveProperties.setDoubleDeep(true); |
| | |
| | | */ |
| | | public Float yDuration; |
| | | |
| | | /** |
| | | * 堆垛机所在巷道 |
| | | */ |
| | | private Integer crnLane = 1; |
| | | |
| | | public void setMode(Short mode) { |
| | | this.mode = mode; |
| | | this.modeType = CrnModeType.get(mode); |
| | |
| | | crnProtocol.setyDistance(siemensNet.getByteTransform().TransInt16(result.Content, 44)); |
| | | crnProtocol.setxDuration(siemensNet.getByteTransform().TransInt16(result.Content, 48)); |
| | | crnProtocol.setyDuration(siemensNet.getByteTransform().TransInt16(result.Content, 52)); |
| | | if (slave.getId() == 1) { |
| | | crnProtocol.setCrnLane((int) siemensNet.getByteTransform().TransInt16(result.Content, 56)); |
| | | } |
| | | |
| | | OutputQueue.CRN.offer(MessageFormat.format("【{0}】[id:{1}] <<<<< 实时数据更新成功",DateUtils.convert(new Date()), slave.getId())); |
| | | |
| | |
| | | <select id="selectPakoutEmpty" resultMap="BaseResultMap"> |
| | | select top 1 * from dbo.asr_wrk_mast where io_type = 110 and sta_no = #{staNo} order by io_time,wrk_no |
| | | </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> |