| | |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Comparator; |
| | |
| | | @Service |
| | | public class CommonService { |
| | | |
| | | private static final long OUT_STATION_ROUTE_CACHE_SECONDS = 60 * 60 * 24 * 30; |
| | | private static final long OUT_STATION_ROUTE_CACHE_SECONDS = 60 * 60 * 24 * 7; |
| | | |
| | | @Autowired |
| | | private WrkMastService wrkMastService; |
| | |
| | | return true; |
| | | } |
| | | |
| | | @Transactional |
| | | public boolean cancelTask(CancelTaskParam param) { |
| | | WrkMast wrkMast = null; |
| | | Integer wrkNo = param.getWrkNo(); |
| | |
| | | throw new CoolException("任务不存在"); |
| | | } |
| | | |
| | | boolean cancelSuccess = false; |
| | | if (wrkMast.getIoType().equals(WrkIoType.IN.id) && !wrkMast.getWrkSts().equals(WrkStsType.NEW_INBOUND.sts)) { |
| | | cancelSuccess = true; |
| | | } else if (wrkMast.getIoType().equals(WrkIoType.OUT.id) && !wrkMast.getWrkSts().equals(WrkStsType.NEW_OUTBOUND.sts)) { |
| | | cancelSuccess = true; |
| | | } else if (wrkMast.getIoType().equals(WrkIoType.LOC_MOVE.id) && !wrkMast.getWrkSts().equals(WrkStsType.NEW_LOC_MOVE.sts)) { |
| | | cancelSuccess = true; |
| | | } else if (wrkMast.getIoType().equals(WrkIoType.CRN_MOVE.id) && !wrkMast.getWrkSts().equals(WrkStsType.NEW_CRN_MOVE.sts)) { |
| | | cancelSuccess = true; |
| | | Long expectedWrkSts; |
| | | if (wrkMast.getIoType().equals(WrkIoType.IN.id)) { |
| | | expectedWrkSts = WrkStsType.NEW_INBOUND.sts; |
| | | } else if (wrkMast.getIoType().equals(WrkIoType.OUT.id)) { |
| | | expectedWrkSts = WrkStsType.NEW_OUTBOUND.sts; |
| | | } else if (wrkMast.getIoType().equals(WrkIoType.LOC_MOVE.id)) { |
| | | expectedWrkSts = WrkStsType.NEW_LOC_MOVE.sts; |
| | | } else if (wrkMast.getIoType().equals(WrkIoType.CRN_MOVE.id)) { |
| | | expectedWrkSts = WrkStsType.NEW_CRN_MOVE.sts; |
| | | } else { |
| | | throw new CoolException("任务类型不支持取消"); |
| | | } |
| | | |
| | | if (cancelSuccess) { |
| | | if (!expectedWrkSts.equals(wrkMast.getWrkSts())) { |
| | | throw new CoolException("任务已执行,取消失败"); |
| | | } |
| | | |
| | | wrkMast.setMk("taskCancel"); |
| | | wrkMast.setModiTime(new Date()); |
| | | wrkMastService.updateById(wrkMast); |
| | | boolean updated = wrkMastService.update(null, new UpdateWrapper<WrkMast>() |
| | | .eq("wrk_no", wrkMast.getWrkNo()) |
| | | .eq("wrk_sts", expectedWrkSts) |
| | | .set("mk", "taskCancel") |
| | | .set("modi_time", new Date())); |
| | | if (!updated) { |
| | | throw new CoolException("任务状态已变化,取消失败"); |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | @Transactional |
| | | public boolean forceCancelTask(CancelTaskParam param) { |
| | | WrkMast wrkMast = null; |
| | | Integer wrkNo = param.getWrkNo(); |
| | | String taskNo = param.getTaskNo();//wms任务号 |
| | | |
| | | if (wrkNo == null) { |
| | | if (!Cools.isEmpty(taskNo)) { |
| | | wrkMast = wrkMastService.getOne(new QueryWrapper<WrkMast>().eq("wms_wrk_no", taskNo)); |
| | | } |
| | | } else { |
| | | wrkMast = wrkMastService.selectByWorkNo(wrkNo); |
| | | } |
| | | |
| | | if (wrkMast == null) { |
| | | throw new CoolException("任务不存在"); |
| | | } |
| | | |
| | | boolean updated = wrkMastService.update(null, new UpdateWrapper<WrkMast>() |
| | | .eq("wrk_no", wrkMast.getWrkNo()) |
| | | .set("mk", "taskForceCancel") |
| | | .set("modi_time", new Date())); |
| | | if (!updated) { |
| | | throw new CoolException("任务强制取消失败"); |
| | | } |
| | | return true; |
| | | } |
| | | |