diff --git a/src/main/java/com/zhgd/xmgl/task/ExamTask.java b/src/main/java/com/zhgd/xmgl/task/ExamTask.java index 141e7802a..e06123667 100644 --- a/src/main/java/com/zhgd/xmgl/task/ExamTask.java +++ b/src/main/java/com/zhgd/xmgl/task/ExamTask.java @@ -3,13 +3,17 @@ package com.zhgd.xmgl.task; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.zhgd.xmgl.async.AsyncHikvision; import com.zhgd.xmgl.modules.basicdata.entity.SystemUser; import com.zhgd.xmgl.modules.basicdata.service.ISystemUserService; import com.zhgd.xmgl.modules.car.entity.CarInfo; +import com.zhgd.xmgl.modules.car.entity.CarInfoApprovalFlow; import com.zhgd.xmgl.modules.car.enums.CarInfoCarModuleTypeEnum; +import com.zhgd.xmgl.modules.car.service.ICarInfoApprovalFlowService; import com.zhgd.xmgl.modules.car.service.ICarInfoService; import com.zhgd.xmgl.modules.exam.entity.*; import com.zhgd.xmgl.modules.exam.service.*; @@ -22,12 +26,11 @@ import com.zhgd.xmgl.modules.xz.service.IXzMaterialService; import com.zhgd.xmgl.util.EmailUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; @Slf4j @@ -73,6 +76,10 @@ public class ExamTask { @Autowired private ICarInfoService carInfoService; + @Lazy + @Autowired + private ICarInfoApprovalFlowService carInfoApprovalFlowService; + @Autowired private EmailUtils emailUtils; @@ -101,10 +108,16 @@ public class ExamTask { if (carInfos.size() > 0) { carInfos = carInfos.stream().filter(c -> carNumber.contains(c.getCarNumber())).collect(Collectors.toList()); if (carInfos.size() > 0) { - carInfoService.removeByIds(carInfos.stream().map(c -> c.getId()).collect(Collectors.toSet())); + Map carMap = carInfos.stream().collect(Collectors.toMap(c -> c.getCarNumber() + ":" + c.getReserveStartTime() + ":" + c.getReserveEndTime(), c -> c, (c1, c2) -> c1)); + List flows = carInfoApprovalFlowService.list(new LambdaQueryWrapper().in(CarInfoApprovalFlow::getCarNumber, carInfos.stream().map(CarInfo::getCarNumber).collect(Collectors.toSet()))); + flows = flows.stream().filter(f -> + carMap.get(f.getCarNumber() + ":" + f.getReserveStartTime() + ":" + f.getReserveEndTime()) != null + ).collect(Collectors.toList()); + carInfoApprovalFlowService.removeByIds(flows.stream().map(c -> c.getId()).collect(Collectors.toSet())); for (CarInfo carInfo : carInfos) { //同步海康 - carInfoService.deleteCarInfoForHikvision(carInfo, false); + Project project = projectService.getProjectInfoBySn(carInfo.getProjectSn()); + carInfoService.deleteOrUpdateCar(project, carInfo, false); } } }