Junjie
1 天以前 343c122adb54e01d4cd05ea382819bf071330589
src/main/java/com/zy/common/service/CommonService.java
@@ -31,7 +31,7 @@
@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;
@@ -124,7 +124,7 @@
        return true;
    }
    public boolean cancelTask(CancelTaskParam param) {
    public boolean cancelTask(CancelTaskParam param, boolean allowDirectCancel) {
        WrkMast wrkMast = null;
        Integer wrkNo = param.getWrkNo();
        String taskNo = param.getTaskNo();//wms任务号
@@ -141,24 +141,42 @@
            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;
        if (allowDirectCancel) {
            boolean updated = wrkMastService.update(null, new UpdateWrapper<WrkMast>()
                    .eq("wrk_no", wrkMast.getWrkNo())
                    .set("mk", "taskCancel")
                    .set("modi_time", new Date()));
            if (!updated) {
                throw new CoolException("任务取消失败");
            }
            return true;
        }
        if (cancelSuccess) {
        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 (!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;
    }
@@ -264,6 +282,10 @@
    }
    public CancelTaskBatchResult cancelTaskBatch(CancelTaskBatchParam param) {
        return cancelTaskBatch(param, false);
    }
    public CancelTaskBatchResult cancelTaskBatch(CancelTaskBatchParam param, boolean allowDirectCancel) {
        if (param == null) {
            throw new CoolException("参数不能为空");
        }
@@ -283,7 +305,7 @@
            boolean cancelStatus = false;
            try {
                cancelStatus = cancelTask(cancelTaskParam);
                cancelStatus = cancelTask(cancelTaskParam, allowDirectCancel);
            } catch (Exception e) {
            }