| | |
| | | break; |
| | | case ORI_STA: |
| | | sta = staService.getById(currTask.getOriSta()); |
| | | success = staReserveService.waitingStaReserve(sta, currTask, 1, StaReserveType.OUT); |
| | | boolean reserveWaitingOk = staReserveService.waitingStaReserve(sta, currTask, 1, StaReserveType.OUT); |
| | | if (!reserveWaitingOk) { |
| | | break; |
| | | } |
| | | |
| | | boolean permit = conveyorStationService.allowAgvWork(sta, currTask, currSeg, StaReserveType.OUT); |
| | | if (!permit) { |
| | | // reserve rollback |
| | | staReserveService.rollbackWaitingToReserved(sta, currTask, StaReserveType.OUT); |
| | | break; |
| | | } |
| | | |
| | | // load sta |
| | | // remove expiredTime |
| | | success = true; |
| | | break; |
| | | case DEST_STA: |
| | | // place sta |
| | |
| | | , @Param("extendMs") Long extendMs |
| | | ); |
| | | |
| | | int updateStateBackToWaiting( |
| | | @Param("taskId") Long taskId |
| | | , @Param("staId") Long staId |
| | | , @Param("type") String type |
| | | , @Param("state") String state |
| | | , @Param("extendMs") Long extendMs |
| | | ); |
| | | |
| | | } |
| | |
| | | |
| | | Boolean waitingStaReserve(Sta sta, Task task, Integer qty, StaReserveType type); |
| | | |
| | | Boolean rollbackWaitingToReserved(Sta sta, Task currTask, StaReserveType staReserveType); |
| | | |
| | | |
| | | void confirmStaReserve(Sta sta, Task task, Integer qty, StaReserveType type); |
| | | |
| | |
| | | } |
| | | |
| | | @Override |
| | | public Boolean rollbackWaitingToReserved(Sta sta, Task currTask, StaReserveType staReserveType) { |
| | | |
| | | rollbackWaitingToReserved |
| | | |
| | | return null; |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void confirmStaReserve(Sta sta, Task task, Integer qty, StaReserveType type) { |
| | | qty = Optional.ofNullable(qty).orElse(DEFAULT_QTY); |
| | |
| | | -- AND state IN ('RESERVED','WAITING') |
| | | </update> |
| | | |
| | | <update id="updateStateBackToWaiting"> |
| | | UPDATE man_sta_reserve |
| | | SET state = #{state}, |
| | | expire_time = DATE_ADD(NOW(), INTERVAL (#{reservedExtendMs} * 1000) MICROSECOND), |
| | | update_time = NOW() |
| | | WHERE task_id = #{taskId} |
| | | AND sta_id = #{staId} |
| | | AND type = #{type} |
| | | AND deleted = 0 |
| | | AND status = 1 |
| | | -- AND state = 'WAITING' |
| | | </update> |
| | | |
| | | </mapper> |