| | |
| | | package com.zy.core.service; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.core.common.Cools; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.domain.param.ManualRollbackTaskParam; |
| | |
| | | |
| | | saveWrkLog(wrkMast.getWrkNo()); |
| | | |
| | | wrkMast.setWrkSts(updateStatus); |
| | | wrkMast.setSendFailCount(nextFailCount); |
| | | wrkMast.setErrorTime(new Date()); |
| | | wrkMast.setErrorMemo(failMessage); |
| | | wrkMast.setSystemMsg(failMessage); |
| | | wrkMast.setModiTime(new Date()); |
| | | wrkMastService.updateById(wrkMast); |
| | | Long currentWrkSts = wrkMast.getWrkSts(); |
| | | Date now = new Date(); |
| | | boolean updated = wrkMastService.update(null, new UpdateWrapper<WrkMast>() |
| | | .set("wrk_sts", updateStatus) |
| | | .set("send_fail_count", nextFailCount) |
| | | .set("error_time", now) |
| | | .set("error_memo", failMessage) |
| | | .set("system_msg", failMessage) |
| | | .set("modi_time", now) |
| | | .eq("wrk_no", wrkMast.getWrkNo()) |
| | | .eq("wrk_sts", currentWrkSts)); |
| | | if (!updated) { |
| | | log.info("工作档状态已变化,跳过命令失败回滚。wrkNo={}", wrkMast.getWrkNo()); |
| | | return; |
| | | } |
| | | |
| | | if (manualRequired) { |
| | | News.taskError(wrkMast.getWrkNo(), "{}下发命令失败,已达到自动回滚上限({}),请在工作档手动回滚。原因: {}", deviceName, rollbackLimit, failMessage); |
| | |
| | | |
| | | saveWrkLog(wrkMast.getWrkNo()); |
| | | |
| | | wrkMast.setWrkSts(rollbackStatus); |
| | | wrkMast.setSendFailCount(0); |
| | | wrkMast.setSystemMsg("人工回滚完成,等待重新下发"); |
| | | wrkMast.setModiTime(new Date()); |
| | | wrkMastService.updateById(wrkMast); |
| | | Long currentWrkSts = wrkMast.getWrkSts(); |
| | | boolean updated = wrkMastService.update(null, new UpdateWrapper<WrkMast>() |
| | | .set("wrk_sts", rollbackStatus) |
| | | .set("send_fail_count", 0) |
| | | .set("system_msg", "人工回滚完成,等待重新下发") |
| | | .set("modi_time", new Date()) |
| | | .eq("wrk_no", wrkMast.getWrkNo()) |
| | | .eq("wrk_sts", currentWrkSts)); |
| | | if (!updated) { |
| | | throw new CoolException("任务状态已变化,请刷新后重试"); |
| | | } |
| | | News.taskInfo(wrkMast.getWrkNo(), "人工回滚完成,任务状态已恢复为待执行"); |
| | | return true; |
| | | } |
| | |
| | | |
| | | saveWrkLog(wrkMast.getWrkNo()); |
| | | |
| | | wrkMast.setSendFailCount(0); |
| | | wrkMast.setErrorTime(null); |
| | | wrkMast.setErrorMemo(null); |
| | | wrkMast.setSystemMsg(""); |
| | | wrkMast.setModiTime(new Date()); |
| | | wrkMastService.updateById(wrkMast); |
| | | boolean updated = wrkMastService.update(null, new UpdateWrapper<WrkMast>() |
| | | .set("send_fail_count", 0) |
| | | .set("error_time", null) |
| | | .set("error_memo", null) |
| | | .set("system_msg", "") |
| | | .set("modi_time", new Date()) |
| | | .eq("wrk_no", wrkMast.getWrkNo()) |
| | | .eq("wrk_sts", wrkMast.getWrkSts())); |
| | | if (!updated) { |
| | | log.info("工作档状态已变化,跳过清理下发失败标记。wrkNo={}", wrkMast.getWrkNo()); |
| | | } |
| | | } |
| | | |
| | | private WrkMast findWrkMast(Integer wrkNo, String taskNo) { |