Browse Source

fix:任务级联删除,任务进度条级联删除,缺陷记录调整

yanyuan
WangGuangYuan 2 weeks ago
parent
commit
1509f76acb
20 changed files with 231 additions and 13 deletions
  1. +12
    -0
      inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/mapper/ResultAnalysisMapper.java
  2. +2
    -0
      inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/IResultAnalysisService.java
  3. +7
    -0
      inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/ResultAnalysisServiceImpl.java
  4. +5
    -0
      inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/mapper/PatrolResultMapper.java
  5. +2
    -0
      inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/IPatrolResultService.java
  6. +7
    -0
      inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/impl/PatrolResultServiceImpl.java
  7. +3
    -0
      inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresultAux/mapper/PatrolResultAuxMapper.java
  8. +2
    -0
      inspect-main/inspect-main-task/src/main/java/com/inspect/resultmain/mapper/PatrolTaskResultMainMapper.java
  9. +9
    -4
      inspect-main/inspect-main-task/src/main/java/com/inspect/task/controller/PatrolTaskController.java
  10. +2
    -0
      inspect-main/inspect-main-task/src/main/java/com/inspect/task/mapper/PatrolTaskMapper.java
  11. +8
    -0
      inspect-main/inspect-main-task/src/main/java/com/inspect/task/service/IPatrolTaskService.java
  12. +61
    -0
      inspect-main/inspect-main-task/src/main/java/com/inspect/task/service/impl/PatrolTaskServiceImpl.java
  13. +8
    -1
      inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java
  14. +10
    -0
      inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/mapper/PatrolTaskStatusMapper.java
  15. +13
    -0
      inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolResultAuxMapper.xml
  16. +27
    -8
      inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolResultMapper.xml
  17. +7
    -0
      inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolTaskMapper.xml
  18. +7
    -0
      inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolTaskResultMainMapper.xml
  19. +16
    -0
      inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolTaskStatusMapper.xml
  20. +23
    -0
      inspect-main/inspect-main-task/src/main/resources/mapper/task/ResultAnalysisMapper.xml

+ 12
- 0
inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/mapper/ResultAnalysisMapper.java View File

@ -51,6 +51,18 @@ public interface ResultAnalysisMapper {
int deleteResultAnalysisByLineIds(Long[] lineIds);
int deleteResultAnalysisByTaskPatrolledIds(@Param("taskPatrolledIds") List<String> taskPatrolledIds);
/**
* 按任务编码删除结果分析(通过 patrol_result 的 line_id 关联 business_id)
*/
int deleteResultAnalysisByTaskCodes(@Param("taskCodes") List<String> taskCodes);
/**
* 按执行ID删除算法分析日志
*/
int deleteAnalyseLogByTaskPatrolledIds(@Param("taskPatrolledIds") List<String> taskPatrolledIds);
List<Map<String, String>> defectList1();
List<Map<String, String>> defectList2();


+ 2
- 0
inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/IResultAnalysisService.java View File

@ -47,6 +47,8 @@ public interface IResultAnalysisService {
int deleteResultAnalysisByLineId(Long lineId);
int deleteResultAnalysisByTaskPatrolledIds(List<String> taskPatrolledIds);
ResultAnalysis selectTaskAbnormalData(ResultAnalysis resultAnalysis);
Map<String, ResultAnalysis> selectTaskAbnormalDataBatch(List<String> taskPatrolledIds);


+ 7
- 0
inspect-main/inspect-main-task/src/main/java/com/inspect/analysis/service/impl/ResultAnalysisServiceImpl.java View File

@ -120,6 +120,13 @@ public class ResultAnalysisServiceImpl implements IResultAnalysisService {
return this.resultAnalysisMapper.deleteResultAnalysisByLineId(lineId);
}
public int deleteResultAnalysisByTaskPatrolledIds(List<String> taskPatrolledIds) {
if (taskPatrolledIds == null || taskPatrolledIds.isEmpty()) {
return 0;
}
return this.resultAnalysisMapper.deleteResultAnalysisByTaskPatrolledIds(taskPatrolledIds);
}
public ResultAnalysis selectTaskAbnormalData(ResultAnalysis resultAnalysis) {
return this.resultAnalysisMapper.selectTaskAbnormalData(resultAnalysis);
}


+ 5
- 0
inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/mapper/PatrolResultMapper.java View File

@ -87,6 +87,11 @@ public interface PatrolResultMapper {
int deletePatrolResultByLineIds(Long[] lineIds);
int deletePatrolResultByTaskPatrolledIds(@Param("taskPatrolledIds") List<String> taskPatrolledIds);
int deletePatrolResultByTaskCodes(@Param("taskCodes") List<String> taskCodes,
@Param("taskPatrolledIds") List<String> taskPatrolledIds);
int updatePatrolResultValue(PatrolResult patrolResult);
List<ResultValue> selectOilResultValue(PatrolResult patrolResult);


+ 2
- 0
inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/IPatrolResultService.java View File

@ -81,6 +81,8 @@ public interface IPatrolResultService {
int deletePatrolResultByLineId(Long lineId);
int deletePatrolResultByTaskPatrolledIds(List<String> taskPatrolledIds);
Map<String, String> getPatrolResultValue(PatrolResult patrolResult);
List<ResultValue> selectOilResultValue(PatrolResult patrolResult);


+ 7
- 0
inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/impl/PatrolResultServiceImpl.java View File

@ -256,6 +256,13 @@ public class PatrolResultServiceImpl implements IPatrolResultService {
return patrolResultMapper.deletePatrolResultByLineId(lineId);
}
public int deletePatrolResultByTaskPatrolledIds(List<String> taskPatrolledIds) {
if (taskPatrolledIds == null || taskPatrolledIds.isEmpty()) {
return 0;
}
return patrolResultMapper.deletePatrolResultByTaskPatrolledIds(taskPatrolledIds);
}
public Map<String, String> getPatrolResultValue(PatrolResult patrolResult) {
log.info("[RES] ???????????????????/getPatrolResultValue: patrolResult: {}", patrolResult.toString());
Map<String, String> map = new HashMap<>();


+ 3
- 0
inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresultAux/mapper/PatrolResultAuxMapper.java View File

@ -23,4 +23,7 @@ public interface PatrolResultAuxMapper {
int deletePatrolResultAuxByLineId(Long lineId);
int deletePatrolResultAuxByLineIds(Long[] lineIds);
int deletePatrolResultAuxByTaskCodes(@Param("taskCodes") List<String> taskCodes,
@Param("taskPatrolledIds") List<String> taskPatrolledIds);
}

+ 2
- 0
inspect-main/inspect-main-task/src/main/java/com/inspect/resultmain/mapper/PatrolTaskResultMainMapper.java View File

@ -29,6 +29,8 @@ public interface PatrolTaskResultMainMapper {
int deletePatrolTaskResultMainByLineIds(Long[] lineIds);
int deletePatrolTaskResultMainByTaskCodes(@Param("taskCodes") List<String> taskCodes);
List<PatrolTaskResultMain> selectMainFileStatus(@Param("list") List<String> patrolIds);
List<Long> selectLineIds(Long lineId);


+ 9
- 4
inspect-main/inspect-main-task/src/main/java/com/inspect/task/controller/PatrolTaskController.java View File

@ -575,8 +575,11 @@ public class PatrolTaskController extends BaseController {
public AjaxResult remove(@PathVariable Long[] taskIds) {
for (Long id : taskIds) {
logger.info("[CONTROLLER] remove task taskId: {}", id);
PatrolTask task = patrolTaskService.selectPatrolTaskByTaskId(id);
String taskCode = task != null && StringUtils.isNotEmpty(task.getTaskCode())
? task.getTaskCode() : String.valueOf(id);
PatrolTaskStatus patrolTaskStatus = new PatrolTaskStatus();
patrolTaskStatus.setTaskCode(String.valueOf(id));
patrolTaskStatus.setTaskCode(taskCode);
patrolTaskStatus.setTaskState("2");
List<PatrolTaskStatus> results = patrolTaskStatusService.selectPatrolTaskStatusList(patrolTaskStatus);
if (!results.isEmpty()) {
@ -584,8 +587,8 @@ public class PatrolTaskController extends BaseController {
}
}
patrolTaskService.deletePatrolTaskByTaskIds(taskIds);
patrolTaskInfoService.deletePatrolTaskInfoByMajorIds(taskIds);
// 事务内级联删除任务及其执行状态、巡视结果、结果分析等关联数据
int deleteCount = patrolTaskService.deletePatrolTaskWithRelatedData(taskIds);
// 原来每个 taskId 都做一次 KEYS 全库扫描,改为只扫描一次(SCAN 非阻塞)
Collection<String> taskCodeRedisKeys = redisService.scan(RedisConst.TASK_CODE_EX);
for (Long taskId : taskIds) {
@ -596,7 +599,9 @@ public class PatrolTaskController extends BaseController {
}
}
}
return toAjax(1);
AjaxResult result = AjaxResult.success();
result.put("deleteCount", deleteCount);
return result;
}
public String majorId(PatrolTask patrolTask) {


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

@ -45,6 +45,8 @@ public interface PatrolTaskMapper {
int deletePatrolTaskByTaskIds(Long[] taskIds);
List<String> selectTaskCodesByTaskIds(@Param("taskIds") Long[] taskIds);
List<Map<String, Long>> selectTaskRationalGroupByType();
Map<String, Object> selectChannelCodeByPatrolPointId(String patrolPointId);


+ 8
- 0
inspect-main/inspect-main-task/src/main/java/com/inspect/task/service/IPatrolTaskService.java View File

@ -40,6 +40,14 @@ public interface IPatrolTaskService {
int deletePatrolTaskByTaskIds(Long[] taskIds);
/**
* 删除巡视任务,并同步清理该任务产生的执行状态、巡视结果、结果分析等关联数据。
*
* @param taskIds 巡视任务ID集合
* @return 删除的任务数
*/
int deletePatrolTaskWithRelatedData(Long[] taskIds);
int deletePatrolTaskByTaskId(Long taskId);
List<Map<String, Long>> selectTaskRationalGroupByType();


+ 61
- 0
inspect-main/inspect-main-task/src/main/java/com/inspect/task/service/impl/PatrolTaskServiceImpl.java View File

@ -12,10 +12,14 @@ import com.inspect.base.core.utils.DateUtils;
import com.inspect.base.core.utils.HttpClientUtils;
import com.inspect.base.core.utils.StringUtils;
import com.inspect.calender.service.TaskCalendarGenerator;
import com.inspect.partrolresult.mapper.PatrolResultMapper;
import com.inspect.partrolresult.util.PrintUtil;
import com.inspect.partrolresultAux.mapper.PatrolResultAuxMapper;
import com.inspect.resultmain.controller.PatrolTaskResultMainController;
import com.inspect.resultmain.domain.PatrolTaskResultMain;
import com.inspect.resultmain.mapper.PatrolTaskResultMainMapper;
import com.inspect.task.domain.DeviceConvert;
import com.inspect.taskinfo.mapper.PatrolTaskInfoMapper;
import com.inspect.task.domain.PatrolData;
import com.inspect.task.domain.PatrolTask;
@ -34,6 +38,7 @@ import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@ -55,6 +60,18 @@ public class PatrolTaskServiceImpl implements IPatrolTaskService {
@Autowired
private SftpClient sftpClient;
@Autowired
private PatrolResultMapper patrolResultMapper;
@Autowired
private PatrolResultAuxMapper patrolResultAuxMapper;
@Autowired
private PatrolTaskResultMainMapper patrolTaskResultMainMapper;
@Autowired
private PatrolTaskInfoMapper patrolTaskInfoMapper;
final ResultAnalysisMapper resultAnalysisMapper;
@Autowired
@ -139,6 +156,50 @@ public class PatrolTaskServiceImpl implements IPatrolTaskService {
return count;
}
/**
* 删除巡视任务,并在同一事务内清理该任务产生的执行与结果数据。
* <p>
* 清理范围:patrol_task_status、patrol_result、result_analysis、patrol_result_aux、
* patrol_task_result_main、patrol_analyse_log、patrol_task_info。
* 报告(inspection_report)可能由多个任务合并生成,未做级联删除。
* <p>
* 兼容新建后立即删除:此时任务没有任何执行/结果数据,关联删除均按空集合跳过,
* 仅删除任务本身和任务点位。
*/
@Override
@Transactional(rollbackFor = Exception.class)
public int deletePatrolTaskWithRelatedData(Long[] taskIds) {
if (taskIds == null || taskIds.length == 0) {
return 0;
}
List<String> taskCodes = this.patrolTaskMapper.selectTaskCodesByTaskIds(taskIds).stream()
.filter(StringUtils::isNotEmpty)
.distinct()
.collect(Collectors.toList());
if (!taskCodes.isEmpty()) {
List<String> taskPatrolledIds = this.patrolTaskStatusMapper.selectTaskPatrolledIdsByTaskCodes(taskCodes).stream()
.filter(StringUtils::isNotEmpty)
.distinct()
.collect(Collectors.toList());
// 结果分析先删:按任务编码兜底清理 patrol_result.line_id 关联数据,再按执行ID直删
this.resultAnalysisMapper.deleteResultAnalysisByTaskCodes(taskCodes);
if (!taskPatrolledIds.isEmpty()) {
this.resultAnalysisMapper.deleteResultAnalysisByTaskPatrolledIds(taskPatrolledIds);
this.resultAnalysisMapper.deleteAnalyseLogByTaskPatrolledIds(taskPatrolledIds);
}
this.patrolResultMapper.deletePatrolResultByTaskCodes(taskCodes, taskPatrolledIds);
this.patrolResultAuxMapper.deletePatrolResultAuxByTaskCodes(taskCodes, taskPatrolledIds);
this.patrolTaskResultMainMapper.deletePatrolTaskResultMainByTaskCodes(taskCodes);
this.patrolTaskStatusMapper.deletePatrolTaskStatusByTaskCodes(taskCodes);
}
this.patrolTaskInfoMapper.deletePatrolTaskInfoByMajorIds(taskIds);
int count = this.patrolTaskMapper.deletePatrolTaskByTaskIds(taskIds);
taskCalendarGenerator.onTaskChange();
log.info("[TASK_DELETE] 任务及关联数据删除完成, taskIds: {}, taskCodes: {}, deleteCount: {}", taskIds, taskCodes, count);
return count;
}
public List<Map<String, Long>> selectTaskRationalGroupByType() {
return patrolTaskMapper.selectTaskRationalGroupByType();
}


+ 8
- 1
inspect-main/inspect-main-task/src/main/java/com/inspect/taskstatus/controller/PatrolTaskStatusController.java View File

@ -410,7 +410,12 @@ public class PatrolTaskStatusController extends BaseController {
// 删除任务状态数据
int deleteCount = this.patrolTaskStatusService.deletePatrolTaskStatusByTaskPatrolledIds(ids);
log.info("[TASK_STATUS_DELETE] 删除完成, taskPatrolledIds: {}, deleteCount: {}", ids, deleteCount);
// 同步删除巡视结果(patrol_result)和结果分析(result_analysis)数据
int patrolResultDeleteCount = this.patrolResultService.deletePatrolResultByTaskPatrolledIds(ids);
int resultAnalysisDeleteCount = this.resultAnalysisService.deleteResultAnalysisByTaskPatrolledIds(ids);
log.info("[TASK_STATUS_DELETE] 删除完成, taskPatrolledIds: {}, deleteCount: {}, patrolResultDeleteCount: {}, resultAnalysisDeleteCount: {}",
ids, deleteCount, patrolResultDeleteCount, resultAnalysisDeleteCount);
// 推送消息通知中恒(未启用或推送失败都不影响删除结果)
boolean pushSuccess = false;
@ -424,6 +429,8 @@ public class PatrolTaskStatusController extends BaseController {
}
AjaxResult result = AjaxResult.success();
result.put("deleteCount", deleteCount);
result.put("patrolResultDeleteCount", patrolResultDeleteCount);
result.put("resultAnalysisDeleteCount", resultAnalysisDeleteCount);
result.put("stationCode", stationCode);
result.put("pushSuccess", pushSuccess);
return result;


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

@ -48,6 +48,16 @@ public interface PatrolTaskStatusMapper {
*/
int deletePatrolTaskStatusByTaskPatrolledIds(@Param("taskPatrolledIds") List<String> taskPatrolledIds);
/**
* 按任务编码批量删除任务执行状态
*/
int deletePatrolTaskStatusByTaskCodes(@Param("taskCodes") List<String> taskCodes);
/**
* 按任务编码查询该任务所有执行的 task_patrolled_id
*/
List<String> selectTaskPatrolledIdsByTaskCodes(@Param("taskCodes") List<String> taskCodes);
List<PatrolTaskStatus> selectPatrolTaskStatusListByTaskPatrolledIds(@Param("taskPatrolledIds") List<String> taskPatrolledIds);
List<MonthlyTaskStatsDTO> countMonthlyStatsByYear(Integer year);


+ 13
- 0
inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolResultAuxMapper.xml View File

@ -181,4 +181,17 @@
#{lineId}
</foreach>
</delete>
<delete id="deletePatrolResultAuxByTaskCodes">
delete from patrol_result_aux where task_code in
<foreach item="taskCode" collection="taskCodes" open="(" separator="," close=")">
#{taskCode}
</foreach>
<if test="taskPatrolledIds != null and taskPatrolledIds.size() > 0">
or task_patrolled_id in
<foreach item="taskPatrolledId" collection="taskPatrolledIds" open="(" separator="," close=")">
#{taskPatrolledId}
</foreach>
</if>
</delete>
</mapper>

+ 27
- 8
inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolResultMapper.xml View File

@ -355,7 +355,7 @@
b.line_id,
a.device_name as point_name,
a.device_id as point_id,
a.create_time as patrol_time,
b.create_time as patrol_time,
b.point_status,
b.result_type as warn_status,
b.description as 'desc',
@ -378,12 +378,11 @@
b.res_value,
b.task_patrol_id,
a.task_name
from patrol_result a
inner join result_analysis b
on a.line_id = b.business_id
from result_analysis b
left join patrol_result a on a.line_id = b.business_id
and a.task_patrolled_id = b.task_patrol_id
and a.device_id = b.objectId
left join basedata_patrolpoint c on a.device_id = c.patrol_point_id
left join basedata_patrolpoint c on b.objectId = c.patrol_point_id
left join basedata_device d on c.device_id = d.device_id
left join basedata_area e on e.area_id = d.area_id
@ -411,12 +410,12 @@
<if test="taskName != null and taskName != ''">and a.task_name like concat('%', #{taskName}, '%')</if>
<if test="deviceName != null and deviceName != ''">and d.device_name like concat('%', #{deviceName}, '%')</if>
<if test="pointStatus != null and pointStatus != ''">and b.point_status = #{pointStatus}</if>
<if test="beginTime != null and beginTime != ''">and a.create_time &gt;= concat(#{beginTime}, ' 00:00:00')</if>
<if test="endTime != null and endTime != ''">and a.create_time &lt;= concat(#{endTime}, ' 23:59:59')</if>
<if test="beginTime != null and beginTime != ''">and b.create_time &gt;= concat(#{beginTime}, ' 00:00:00')</if>
<if test="endTime != null and endTime != ''">and b.create_time &lt;= concat(#{endTime}, ' 23:59:59')</if>
</where>
order by b.task_patrol_id, b.objectId, b.alg_type,
case b.filter when '1' then 1 when '0' then 2 else 3 end,
a.create_time, b.line_id
b.create_time, b.line_id
</select>
<resultMap type="com.inspect.system.base.openDomain.BasedataEqpBookMoMain" id="BasedataEqpBookResult">
<result property="eqpBookId" column="eqp_book_id"/>
@ -991,6 +990,26 @@
</foreach>
</delete>
<delete id="deletePatrolResultByTaskPatrolledIds">
delete from patrol_result where task_patrolled_id in
<foreach item="taskPatrolledId" collection="taskPatrolledIds" open="(" separator="," close=")">
#{taskPatrolledId}
</foreach>
</delete>
<delete id="deletePatrolResultByTaskCodes">
delete from patrol_result where task_code in
<foreach item="taskCode" collection="taskCodes" open="(" separator="," close=")">
#{taskCode}
</foreach>
<if test="taskPatrolledIds != null and taskPatrolledIds.size() > 0">
or task_patrolled_id in
<foreach item="taskPatrolledId" collection="taskPatrolledIds" open="(" separator="," close=")">
#{taskPatrolledId}
</foreach>
</if>
</delete>
<update id="updatePatrolResultValue" parameterType="PatrolResult">
update patrol_result
<trim prefix="SET" suffixOverrides=",">


+ 7
- 0
inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolTaskMapper.xml View File

@ -355,6 +355,13 @@
</foreach>
</delete>
<select id="selectTaskCodesByTaskIds" resultType="java.lang.String">
select task_code from patrol_task where task_id in
<foreach item="taskId" collection="taskIds" open="(" separator="," close=")">
#{taskId}
</foreach>
</select>
<select id="selectTaskRationalGroupByType" resultType="java.util.Map">
select p.type, COUNT(1) num
from patrol_task p


+ 7
- 0
inspect-main/inspect-main-task/src/main/resources/mapper/task/PatrolTaskResultMainMapper.xml View File

@ -279,4 +279,11 @@
#{lineId}
</foreach>
</delete>
<delete id="deletePatrolTaskResultMainByTaskCodes">
delete from patrol_task_result_main where task_code in
<foreach item="taskCode" collection="taskCodes" open="(" separator="," close=")">
#{taskCode}
</foreach>
</delete>
</mapper>

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

@ -594,4 +594,20 @@
#{taskPatrolledId}
</foreach>
</delete>
<delete id="deletePatrolTaskStatusByTaskCodes">
delete from patrol_task_status where task_code in
<foreach item="taskCode" collection="taskCodes" open="(" separator="," close=")">
#{taskCode}
</foreach>
</delete>
<select id="selectTaskPatrolledIdsByTaskCodes" resultType="java.lang.String">
select distinct task_patrolled_id from patrol_task_status
where task_code in
<foreach item="taskCode" collection="taskCodes" open="(" separator="," close=")">
#{taskCode}
</foreach>
and task_patrolled_id is not null and task_patrolled_id != ''
</select>
</mapper>

+ 23
- 0
inspect-main/inspect-main-task/src/main/resources/mapper/task/ResultAnalysisMapper.xml View File

@ -442,6 +442,29 @@
</foreach>
</delete>
<delete id="deleteResultAnalysisByTaskPatrolledIds">
delete from result_analysis where task_patrol_id in
<foreach item="taskPatrolledId" collection="taskPatrolledIds" open="(" separator="," close=")">
#{taskPatrolledId}
</foreach>
</delete>
<delete id="deleteResultAnalysisByTaskCodes">
delete from result_analysis where business_id in
(select line_id from patrol_result where task_code in
<foreach item="taskCode" collection="taskCodes" open="(" separator="," close=")">
#{taskCode}
</foreach>
)
</delete>
<delete id="deleteAnalyseLogByTaskPatrolledIds">
delete from patrol_analyse_log where task_patrol_id in
<foreach item="taskPatrolledId" collection="taskPatrolledIds" open="(" separator="," close=")">
#{taskPatrolledId}
</foreach>
</delete>
<select id="defectList1" resultType="java.util.Map">
SELECT COUNT(1) num,
ba.area_name,


Loading…
Cancel
Save