Browse Source

/*增加任务暂停、恢复、终止机制*/

master
htjcAdmin 5 months ago
parent
commit
23b0433fcd
14 changed files with 287 additions and 63 deletions
  1. +3
    -0
      inspect-job/src/main/java/com/inspect/job/client/TaskExecClient.java
  2. +145
    -51
      inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java
  3. +43
    -0
      inspect-job/src/main/java/com/inspect/job/task/StatusMonitor.java
  4. +29
    -0
      inspect-job/src/main/java/com/inspect/job/task/TaskStatusManager.java
  5. +6
    -0
      inspect-main/inspect-main-task-exec/src/main/java/com/inspect/exec/controller/PatrolTaskExecController.java
  6. +8
    -4
      inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AnalysisServiceImpl.java
  7. +13
    -1
      inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/controller/PatrolResultController.java
  8. +5
    -4
      inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/AnalyseRemoteService.java
  9. +5
    -1
      inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/client/FeignJobTaskClient.java
  10. +10
    -2
      inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java
  11. +2
    -0
      inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/mapper/PatrolTaskStatusMapper.java
  12. +2
    -0
      inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/service/IPatrolTaskStatusService.java
  13. +11
    -0
      inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/service/impl/PatrolTaskStatusServiceImpl.java
  14. +5
    -0
      inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolTaskStatusMapper.xml

+ 3
- 0
inspect-job/src/main/java/com/inspect/job/client/TaskExecClient.java View File

@ -58,6 +58,9 @@ public interface TaskExecClient {
@PostMapping({"/exec/updatePatrolTaskExecRecord"})
int updatePatrolTaskExecRecord(PatrolTaskExecRecord record);
@PostMapping({"/exec/selectPatrolTaskStatusByTaskPatrolledId"})
PatrolTaskStatus selectPatrolTaskStatusByTaskPatrolledId(@RequestParam("taskPatrolledId") String taskPatrolledId);
@PostMapping({"/exec/selectPatrolTaskStatusList"})
List<PatrolTaskStatus> selectPatrolTaskStatusList(PatrolTaskStatus taskStatus);


+ 145
- 51
inspect-job/src/main/java/com/inspect/job/task/JobMainTask.java View File

@ -40,6 +40,10 @@ import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
import java.util.function.Supplier;
import feign.RetryableException;
import org.slf4j.Logger;
@ -126,6 +130,15 @@ public class JobMainTask {
final PatrolDeviceStateMapper patrolDeviceStateMapper;
private final Lock controlLock = new ReentrantLock();
private final Condition pauseCondition = controlLock.newCondition();
// 控制标志
private volatile boolean stop = false;
private volatile boolean pause = false;
// 用于状态查询线程
private final ScheduledExecutorService statusUpdater = Executors.newSingleThreadScheduledExecutor();
@Autowired
public JobMainTask(
ShaoXinBigModel shaoXinBigModel,
@ -147,6 +160,57 @@ public class JobMainTask {
threadPool = new ThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime, TimeUnit.SECONDS, new LinkedBlockingQueue<>(1000));
}
// 等待恢复
private void waitIfPaused() {
controlLock.lock();
try {
while (pause && !stop) {
pauseCondition.await(); // 所有线程阻塞在此
}
} catch (InterruptedException e) {
Thread.currentThread().interrupt(); // 不中断会引发潜在问题
} finally {
controlLock.unlock();
}
}
// 外部触发恢复
public void resumeIfPaused() {
controlLock.lock();
try {
if (pause) {
pause = false;
pauseCondition.signalAll(); // 唤醒所有暂停线程
}
} finally {
controlLock.unlock();
}
}
// 用于外部强制停止所有线程
public void stopAll() {
stop = true;
resumeIfPaused(); // 确保唤醒阻塞线程让它们能感知 stop = true
}
// 模拟查询状态
private int queryPatrolTaskStatus(final String taskPatrolId) {
int result = 0;
String taskPatrolledId = taskPatrolId.split(StringUtils.UNDERLINE)[1] + "_" + taskPatrolId.split(StringUtils.UNDERLINE)[2];
PatrolTaskStatus patrolTaskStatus = taskExecClient.selectPatrolTaskStatusByTaskPatrolledId(taskPatrolledId);
if(patrolTaskStatus == null) {
return result;
}
try {
result = Integer.parseInt(patrolTaskStatus.getPatrolStatus());
} catch (Exception e) {
result = -1;
}
return result;
}
private void startThread(
final PatrolTaskInfo patrolTaskInfo,
final PatrolPresetPos patrolPresetPos,
@ -418,42 +482,43 @@ public class JobMainTask {
myDelay(2000);
}
boolean taskHalted = false;
String taskPatrolledId = taskPatrolId.split(StringUtils.UNDERLINE)[1] + "_" + taskPatrolId.split(StringUtils.UNDERLINE)[2];
PatrolTaskStatus patrolTaskStatus = new PatrolTaskStatus();
patrolTaskStatus.setTaskPatrolledId(taskPatrolledId);
List<PatrolTaskStatus> list = taskExecClient.selectPatrolTaskStatusList(patrolTaskStatus);
if (!list.isEmpty()) {
if ("3".equals(list.get(0).getTaskState())) {//暂停
while (true) {
log.info("-----------------------task pause: {}", taskPatrolledId);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
list = taskExecClient.selectPatrolTaskStatusList(patrolTaskStatus);
if (!list.isEmpty()) {
log.info("-----------------------TaskState: {}", list.get(0).getTaskState());
if ("4".equals(list.get(0).getTaskState())) {//终止
log.info("-----------------------task terminate: {}", taskPatrolledId);
taskHalted = true;
break;
} else if ("2".equals(list.get(0).getTaskState())) {//正在执行
log.info("-----------------------task resume: {}", taskPatrolledId);
break;
}
} else {
log.info("-----------------------selectPatrolTaskStatusList is empty");
}
}
} else if ("4".equals(list.get(0).getTaskState())) {//终止
log.info("-----------------------task terminate: {}", taskPatrolledId);
taskHalted = true;
}
}
if (!taskHalted) {
// boolean taskHalted = false;
// String taskPatrolledId = taskPatrolId.split(StringUtils.UNDERLINE)[1] + "_" + taskPatrolId.split(StringUtils.UNDERLINE)[2];
// PatrolTaskStatus patrolTaskStatus = new PatrolTaskStatus();
// patrolTaskStatus.setTaskPatrolledId(taskPatrolledId);
// List<PatrolTaskStatus> list = taskExecClient.selectPatrolTaskStatusList(patrolTaskStatus);
// if (!list.isEmpty()) {
// if ("3".equals(list.get(0).getTaskState())) {//暂停
// while (true) {
// log.info("-----------------------task pause: {}", taskPatrolledId);
// try {
// Thread.sleep(1000);
// } catch (InterruptedException e) {
// }
//
// list = taskExecClient.selectPatrolTaskStatusList(patrolTaskStatus);
// if (!list.isEmpty()) {
// log.info("-----------------------TaskState: {}", list.get(0).getTaskState());
// if ("4".equals(list.get(0).getTaskState())) {//终止
// log.info("-----------------------task terminate: {}", taskPatrolledId);
// taskHalted = true;
// break;
// } else if ("2".equals(list.get(0).getTaskState())) {//正在执行
// log.info("-----------------------task resume: {}", taskPatrolledId);
// break;
// }
// } else {
// log.info("-----------------------selectPatrolTaskStatusList is empty");
// }
// }
// } else if ("4".equals(list.get(0).getTaskState())) {//终止
// log.info("-----------------------task terminate: {}", taskPatrolledId);
// taskHalted = true;
// }
// }
//
// if (!taskHalted)
{
StringBuffer fileTypes = new StringBuffer();
StringBuffer filePaths = new StringBuffer();
PatrolPresetAction patrolPresetAction = PatrolPresetAction.builder().isEnable("1").presetPosId(presetPos.getPresetPosId()).build();
@ -1008,8 +1073,18 @@ public class JobMainTask {
// patrolTaskInfo.setDevNo(task.getDevNo());
// taskExecClient.selectTaskInfoList(patrolTaskInfo);
taskExecClient.updatePatrolTaskStatus(patrolTask);
//threadPool.submit(() -> prePointExecImmediate(patrolTaskExecRecord, taskInfos));
prePointExecImmediate(patrolTaskExecRecord, taskInfos);
threadPool.submit(() -> prePointExecImmediate(patrolTaskExecRecord, taskInfos));
}
@PostMapping({"/resumeExecTask"})
public void resumeExecTask(final String taskId) {
log.info("resumeExecTask taskId: {}", taskId);
StatusMonitor monitor = TaskStatusManager.get(taskId);
if (monitor != null) {
synchronized (monitor) {
monitor.notifyAll();
}
}
}
private List<PatrolTaskInfo> getInfosByRecord(final PatrolTaskExecRecord record) {
@ -1223,29 +1298,48 @@ public class JobMainTask {
}
CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).join();
log.info("CompletableFuture Break Join!");
TaskStatusManager.remove(patrolTaskExecRecord.getOldTaskPatrolId());
log.info("CompletableFuture Break Join: taskPatrolId: {}", patrolTaskExecRecord.getOldTaskPatrolId());
}
private void handlePrePointBatch(final int threadCnt, final PatrolTaskExecRecord patrolTaskExecRecord, final List<PatrolTaskInfo> batch) {
asyncTaskPatrolPointCnt.getAndAdd(batch.size());
log.info("handlePrePointBatch threadCnt: {}, asyncTaskPatrolPointCnt: {}, batch size: {}, devNo: {}, taskId: {}",
threadCnt, asyncTaskPatrolPointCnt.get(), batch.size(), patrolTaskExecRecord.getDevNo(), patrolTaskExecRecord.getTaskId());
final String taskPatrolId = patrolTaskExecRecord.getOldTaskPatrolId();
StatusMonitor monitor = TaskStatusManager.get(patrolTaskExecRecord.getOldTaskPatrolId());
if (monitor == null) {
monitor = TaskStatusManager.register(taskPatrolId, () -> {
PatrolTaskStatus patrolTaskStatus = taskExecClient.selectPatrolTaskStatusByTaskPatrolledId(taskPatrolId);
int taskState;
try {
taskState = Integer.parseInt(patrolTaskStatus.getTaskState());
} catch (Exception e) {
taskState = -1;
}
return taskState;
});
}
for (final PatrolTaskInfo taskInfo : batch) {
log.info("handlePrePointBatch taskPatrolId: {}, patrolPointId: {}, lineId: {}", patrolTaskExecRecord.getTaskPatrolId(), taskInfo.getDeviceId(), taskInfo.getLineId());
prePointExec(patrolTaskExecRecord, taskInfo, batch.size());
String taskPatrolledId = patrolTaskExecRecord.getTaskPatrolId().split(StringUtils.UNDERLINE)[1] + "_" + patrolTaskExecRecord.getTaskPatrolId().split(StringUtils.UNDERLINE)[2];
PatrolTaskStatus patrolTaskStatus = new PatrolTaskStatus();
patrolTaskStatus.setTaskPatrolledId(taskPatrolledId);
List<PatrolTaskStatus> list = taskExecClient.selectPatrolTaskStatusList(patrolTaskStatus);
if (!list.isEmpty()) {
log.info("-----------------------handlePrePointBatch 2 TaskState: {}", list.get(0).getTaskState());
if ("4".equals(list.get(0).getTaskState())) {//终止
log.info("-----------------------handlePrePointBatch 2 task terminate: {}", taskPatrolledId);
return;
int status = monitor.getStatus();
if (status == Integer.parseInt(TaskStatus.HALTED.getCode())) {
log.info("task terminate taskPatrolId: {}", taskPatrolId);
break;
} else if (status == Integer.parseInt(TaskStatus.PAUSED.getCode())) {
synchronized (monitor) {
try {
log.info("task pause taskPatrolId: {}", taskPatrolId);
monitor.wait(); // 等待外部唤醒
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
} else {
log.info("-----------------------handlePrePointBatch 2 selectPatrolTaskStatusList is empty");
} else if(status == -1 || status == 0) {
log.info("task status error state taskPatrolId: {}", taskPatrolId);
}
prePointExec(patrolTaskExecRecord, taskInfo, batch.size());
}
}


+ 43
- 0
inspect-job/src/main/java/com/inspect/job/task/StatusMonitor.java View File

@ -0,0 +1,43 @@
package com.inspect.job.task;
import com.inspect.base.core.enums.TaskStatus;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Supplier;
public class StatusMonitor {
private final Supplier<Integer> statusSupplier;
private final AtomicInteger status = new AtomicInteger(Integer.parseInt(TaskStatus.RUNNING.getCode())); // 默认执行状态
private final Thread monitorThread;
private volatile boolean running = true;
public StatusMonitor(Supplier<Integer> statusSupplier) {
this.statusSupplier = statusSupplier;
monitorThread = new Thread(() -> {
while (running) {
try {
int newStatus = this.statusSupplier.get();
status.set(newStatus);
Thread.sleep(1000); // 每1秒更新一次状态
} catch (Exception e) {
e.printStackTrace(); // 可替换为日志
}
}
}, "status-monitor-thread");
monitorThread.setDaemon(true);
monitorThread.start();
}
public int getStatus() {
return status.get();
}
public void stop() {
running = false;
monitorThread.interrupt();
}
}

+ 29
- 0
inspect-job/src/main/java/com/inspect/job/task/TaskStatusManager.java View File

@ -0,0 +1,29 @@
package com.inspect.job.task;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Supplier;
public class TaskStatusManager {
private static final Logger log = LoggerFactory.getLogger(TaskStatusManager.class);
private static final ConcurrentHashMap<String, StatusMonitor> monitorMap = new ConcurrentHashMap<>();
public static StatusMonitor register(String taskId, Supplier<Integer> statusSupplier) {
return monitorMap.computeIfAbsent(taskId, id -> new StatusMonitor(statusSupplier));
}
public static StatusMonitor get(String taskId) {
return monitorMap.get(taskId);
}
public static void remove(String taskId) {
StatusMonitor monitor = monitorMap.remove(taskId);
if (monitor != null) {
log.info("TaskStatusManager removed: {} ", taskId);
monitor.stop();
}
}
}

+ 6
- 0
inspect-main/inspect-main-task-exec/src/main/java/com/inspect/exec/controller/PatrolTaskExecController.java View File

@ -227,6 +227,12 @@ public class PatrolTaskExecController extends BaseController {
return patrolTaskPointExecRecordService.selectPatrolTaskPointExecRecordList(patrolTaskPointExecRecord);
}
@PostMapping({"/selectPatrolTaskStatusByTaskPatrolledId"})
public PatrolTaskStatus selectPatrolTaskStatusByTaskPatrolledId(String taskPatrolledId) {
log.info("taskPatrolledId: {}", taskPatrolledId);
return patrolTaskStatusService.selectPatrolTaskStatusByTaskPatrolledId(taskPatrolledId);
}
@PostMapping({"/selectPatrolTaskStatusList"})
public List<PatrolTaskStatus> selectPatrolTaskStatusList(@RequestBody PatrolTaskStatus patrolTaskStatus) {
return patrolTaskStatusService.selectPatrolTaskStatusList(patrolTaskStatus);


+ 8
- 4
inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/AnalysisServiceImpl.java View File

@ -909,12 +909,16 @@ public class AnalysisServiceImpl implements IAnalysisService {
resultAnalysisList.size(), totalNumber, algorithmProgress, taskPatrolledId, patrolTaskStatus.getTaskProgress());
patrolTaskStatus.setTaskProgress("100.0");
patrolTaskStatus.setTaskState(TaskStatus.DONE.getCode());
patrolTaskStatusService.updatePatrolTaskStatus(patrolTaskStatus);
} else {
log.info(Color.GREEN + "RUNNING calcRemoteAlgorithmProgress: curNumber: {}, totalNumer: {}, algorithmProgress: {}, taskPatrolledId: {}" + Color.END,
resultAnalysisList.size(), totalNumber, algorithmProgress, taskPatrolledId);
patrolTaskStatus.setTaskState(TaskStatus.RUNNING.getCode());
log.info(Color.GREEN + "RUNNING calcRemoteAlgorithmProgress: curNumber: {}, totalNumer: {}, algorithmProgress: {}, taskPatrolledId: {}, status: {}" + Color.END,
resultAnalysisList.size(), totalNumber, algorithmProgress, taskPatrolledId, patrolTaskStatus.getTaskState());
if(TaskStatus.RUNNING.getCode().equals(patrolTaskStatus.getTaskState())) {
patrolTaskStatus.setTaskState(TaskStatus.RUNNING.getCode());
patrolTaskStatusService.updatePatrolTaskStatus(patrolTaskStatus);
}
}
patrolTaskStatusService.updatePatrolTaskStatus(patrolTaskStatus);
}
}


+ 13
- 1
inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/controller/PatrolResultController.java View File

@ -1172,7 +1172,19 @@ public class PatrolResultController extends BaseController {
redisService.deleteObjectOfTask(RedisConst.TASK_CURRENT_CODE, taskStatus.getTaskCode());
}
} else {
i = iPatrolTaskStatusService.updatePatrolTaskStatus(patrolTaskStatusItem);
List<PatrolTaskStatus> statusList = patrolTaskStatusService.selectPatrolTaskStatusList(PatrolTaskStatus.builder().taskPatrolledId(patrolTaskStatusItem.getTaskPatrolledId()).build());
if(!statusList.isEmpty()) {
PatrolTaskStatus taskStatus = statusList.get(0);
if(TaskStatus.RUNNING.getCode().equals(taskStatus.getTaskState())) {
logger.info(Color.CYAN + "updating patrol_task_status state, taskPatrolledId: {}, taskState: {}, taskCurCodeInRedis: {}" + Color.END,
patrolTaskStatusItem.getTaskPatrolledId(),
patrolTaskStatusItem.getTaskProgress(),
patrolTaskStatusItem.getTaskState(),
RedisConst.TASK_CURRENT_CODE + patrolTaskStatusItem.getTaskCode());
patrolTaskStatusItem.setTaskState(TaskStatus.RUNNING.getCode());
i = iPatrolTaskStatusService.updatePatrolTaskStatus(patrolTaskStatusItem);
}
}
}
if ("E100-001".equals(sendCode)) {
if ("100".equals(patrolTaskStatusItem.getTaskProgress())) {


+ 5
- 4
inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/AnalyseRemoteService.java View File

@ -82,14 +82,15 @@ public class AnalyseRemoteService {
//this.logService.log(new AnalyseLog(analyseReq.toString(), "0", taskPatrolId, filter, requestId));
try {
log.info("[CALL REMOTE ANALYZE] ===========> URL={} \n PARAMS={}", requestUrl, analyseReq);
log.info("CALL_REMOTE_ANALYZE URL: {}, PARAMS: {}", requestUrl, analyseReq);
String result = HttpClientUtils.sendPostAgain(requestUrl.concat(AnalyseConstants.ANALYSE_URI), analyseReq.toString());
log.info("[CALL REMOTE ANALYZE] <=========== result={}", result);
log.info("[CALL REMOTE ANALYZE] <=========== CODE={} \n PARAMS={}", JSONObject.parseObject(result).getString(AnalyseConstants.ANALYSE_CODE), result);
log.info("CALL_REMOTE_ANALYZE RESULT: {}", result);
// log.info("[CALL REMOTE ANALYZE] <=========== CODE={} \n PARAMS={}", JSONObject.parseObject(result).getString(AnalyseConstants.ANALYSE_CODE), result);
if (!"200".equals(JSONObject.parseObject(result).getString(AnalyseConstants.ANALYSE_CODE))) {
log.error("[CALL REMOTE ANALYZE] <=========== CALL FAIL: {}", result);
log.info("CALL_REMOTE_ANALYZE FAIL: {}", JSONObject.parseObject(result).getString(AnalyseConstants.ANALYSE_CODE));
}
} catch (Exception e) {
log.info("CALL_REMOTE_ANALYZE EXCEPTION: URL: {}, PARAMS: {}", requestUrl, analyseReq.getRequestId());
log.error("error", e);
HttpClientUtils.sendPostAgain("http://localhost:" + this.port + AnalyseConstants.ANALYSE_RET_URI, analyseReq.toErrorResultStr());
}


+ 5
- 1
inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/client/FeignJobTaskClient.java View File

@ -5,9 +5,13 @@ import com.inspect.task.domain.PatrolTask;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
@FeignClient("inspect-job")
public interface FeignJobTaskClient {
@PostMapping({"/jobtask/immediatelyExecTask"})
String immediatelyExecTask(@RequestBody PatrolTask var1);
String immediatelyExecTask(@RequestBody PatrolTask patrolTask);
@PostMapping({"/jobtask/resumeExecTask"})
void resumeExecTask(@RequestParam("taskId") String taskId);
}

+ 10
- 2
inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java View File

@ -709,16 +709,17 @@ public class PatrolTaskStatusController extends BaseController {
if (patrolTaskStatus == null) return error("no task: " + params.getLineId() + " exist");
String command = params.getCommand();
log.info("================================================================TASK STATUS CHANGE=============================================================");
log.info("[TASK] cmd: {}, task: {}", command, patrolTaskStatus);
log.info("[TASK] task_status_change cmd: {}, task: {}", command, patrolTaskStatus);
if (TaskStatus.DONE.getCode().equals(command)) {
patrolTaskStatus.setTaskState(TaskStatus.RUNNING.getCode());
} else if (TaskStatus.RUNNING.getCode().equals(command)) {
patrolTaskStatus.setTaskState(TaskStatus.PAUSED.getCode());
} else if (TaskStatus.PAUSED.getCode().equals(command)) {
patrolTaskStatus.setTaskState(TaskStatus.RUNNING.getCode());
feignJobTaskClient.resumeExecTask(patrolTaskStatus.getTaskPatrolledId());
} else {
patrolTaskStatus.setTaskState(TaskStatus.HALTED.getCode());
feignJobTaskClient.resumeExecTask(patrolTaskStatus.getTaskPatrolledId());
}
int res = patrolTaskStatusService.updatePatrolTaskStatus(patrolTaskStatus);
@ -751,6 +752,10 @@ public class PatrolTaskStatusController extends BaseController {
}
final String type = book.getType();
if(StringUtils.isEmpty(type)) {
continue;
}
if (posType.equals("0") && (type.equals("10") || type.equals("11"))) {
log.info("[DEBUG] receiveCode three: id: {}", book.getEqpBookId());
receiveCode = book.getMainSystemCode();
@ -779,6 +784,9 @@ public class PatrolTaskStatusController extends BaseController {
Set<String> wrjCode = new HashSet<>();//droneCode
for (BasedataEqpBookMoMain book : bookList) {
final String type = book.getType();
if(StringUtils.isEmpty(type)) {
continue;
}
if (!type.equals("1") && !type.equals("2") && !type.equals("3") && !type.equals("13")) {
continue;
}


+ 2
- 0
inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/mapper/PatrolTaskStatusMapper.java View File

@ -10,6 +10,8 @@ import java.util.List;
public interface PatrolTaskStatusMapper {
PatrolTaskStatus selectPatrolTaskStatusByLineId(Long lineId);
PatrolTaskStatus selectPatrolTaskStatusByTaskPatrolledId(String taskPatrolledId);
List<PatrolTaskStatus> selectPatrolTaskStatusList(PatrolTaskStatus patrolTaskStatus);
List<PatrolTaskStatus> selectPatrolTaskStatusCount(PatrolTaskStatus patrolTaskStatus);


+ 2
- 0
inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/service/IPatrolTaskStatusService.java View File

@ -8,6 +8,8 @@ import java.util.List;
public interface IPatrolTaskStatusService {
PatrolTaskStatus selectPatrolTaskStatusByLineId(Long lineId);
PatrolTaskStatus selectPatrolTaskStatusByTaskPatrolledId(String taskPatrolledId);
List<PatrolTaskStatus> selectPatrolTaskStatusList(PatrolTaskStatus patrolTaskStatus);
List<PatrolTaskStatus> selectPatrolTaskStatusCount(PatrolTaskStatus patrolTaskStatus);


+ 11
- 0
inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/service/impl/PatrolTaskStatusServiceImpl.java View File

@ -1,16 +1,21 @@
package com.inspect.taskstatus.service.impl;
import com.inspect.base.core.constant.Color;
import com.inspect.taskstatus.domain.PatrolTaskStatus;
import com.inspect.taskstatus.domain.TaskCount;
import com.inspect.taskstatus.mapper.PatrolTaskStatusMapper;
import com.inspect.taskstatus.service.IPatrolTaskStatusService;
import java.util.Date;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class PatrolTaskStatusServiceImpl implements IPatrolTaskStatusService {
private final Logger log = LoggerFactory.getLogger(this.getClass());
private final PatrolTaskStatusMapper patrolTaskStatusMapper;
@Autowired
@ -22,6 +27,10 @@ public class PatrolTaskStatusServiceImpl implements IPatrolTaskStatusService {
return this.patrolTaskStatusMapper.selectPatrolTaskStatusByLineId(lineId);
}
public PatrolTaskStatus selectPatrolTaskStatusByTaskPatrolledId(String taskPatrolledId) {
return this.patrolTaskStatusMapper.selectPatrolTaskStatusByTaskPatrolledId(taskPatrolledId);
}
public List<PatrolTaskStatus> selectPatrolTaskStatusList(PatrolTaskStatus patrolTaskStatus) {
return this.patrolTaskStatusMapper.selectPatrolTaskStatusList(patrolTaskStatus);
}
@ -45,6 +54,8 @@ public class PatrolTaskStatusServiceImpl implements IPatrolTaskStatusService {
}
public int updatePatrolTaskStatus(PatrolTaskStatus patrolTaskStatus) {
log.info(Color.RED + "$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" + Color.END);
log.info("patrolTaskStatus: {}", patrolTaskStatus);
return this.patrolTaskStatusMapper.updatePatrolTaskStatus(patrolTaskStatus);
}


+ 5
- 0
inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolTaskStatusMapper.xml View File

@ -189,6 +189,11 @@
where line_id = #{lineId}
</select>
<select id="selectPatrolTaskStatusByTaskPatrolledId" parameterType="String" resultMap="PatrolTaskStatusResult">
<include refid="selectPatrolTaskStatusVo"/>
where task_patrolled_id = #{taskPatrolledId}
</select>
<insert id="insertPatrolTaskStatus" parameterType="PatrolTaskStatus" useGeneratedKeys="true" keyProperty="lineId">
insert into patrol_task_status
<trim prefix="(" suffix=")" suffixOverrides=",">


Loading…
Cancel
Save