bug修改

This commit is contained in:
GUO 2024-05-27 22:58:57 +08:00
parent be7f25d191
commit 9cccc03f48
3 changed files with 37 additions and 27 deletions

View File

@ -2,7 +2,6 @@ package com.zhgd.xmgl.modules.car.service;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.xmgl.modules.car.entity.CarInfo; import com.zhgd.xmgl.modules.car.entity.CarInfo;
import com.zhgd.xmgl.modules.car.entity.vo.CountCarModuleTypeVo; import com.zhgd.xmgl.modules.car.entity.vo.CountCarModuleTypeVo;
import com.zhgd.xmgl.modules.project.entity.Project; import com.zhgd.xmgl.modules.project.entity.Project;
@ -24,7 +23,7 @@ public interface ICarInfoService extends IService<CarInfo> {
void addCarInfo(CarInfo carInfo); void addCarInfo(CarInfo carInfo);
void deleteOrUpdateExpiredCar(Project project, CarInfo carInfo); void deleteOrUpdateCar(Project project, CarInfo carInfo);
void editCarInfo(CarInfo carInfo); void editCarInfo(CarInfo carInfo);

View File

@ -94,16 +94,16 @@ public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> impl
throw new OpenAlertException("该车辆已添加,请勿重复添加!"); throw new OpenAlertException("该车辆已添加,请勿重复添加!");
} }
addCarInfoForApprovalFlow(c); addCarInfoForApprovalFlow(c);
CarInfo expiredCar = carInfoMapper.selectOne(new LambdaQueryWrapper<CarInfo>() Date now = new Date();
.ne(CarInfo::getCarModuleType, 1) if (DateUtil.compare(carInfo.getReserveStartTime(), now) < 0 && DateUtil.compare(carInfo.getReserveEndTime(), now) > 0) {
.eq(CarInfo::getCarNumber, c.getCarNumber()) log.info("车辆在有效期内,不需要更新,车牌号:{}", c.getCarNumber());
.eq(CarInfo::getProjectSn, c.getProjectSn()) return;
.lt(CarInfo::getReserveEndTime, DateUtil.now())
);
if (expiredCar != null) {
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getSyncHikvision, 1));
deleteOrUpdateExpiredCar(project, expiredCar);
} }
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getSyncHikvision, 1));
if (project == null) {
return;
}
deleteOrUpdateCar(project, carInfo);
} else { } else {
carInfoMapper.insert(c); carInfoMapper.insert(c);
//同步海康 //同步海康
@ -128,22 +128,31 @@ public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> impl
carInfoApprovalFlowMapper.insert(flow); carInfoApprovalFlowMapper.insert(flow);
} }
/**
* 过期或者未来车的更新或者删除
*
* @param project
* @param car
*/
@Override @Override
public void deleteOrUpdateExpiredCar(Project project, CarInfo expiredCar) { public void deleteOrUpdateCar(Project project, CarInfo car) {
log.info("删除/更新过期的车辆,并下发新的预约时间的车辆到海康,车牌号:{}", expiredCar.getCarNumber()); log.info("删除/更新过期或未来的车辆,并下发新的预约时间的车辆到海康,车牌号:{}", car.getCarNumber());
CarInfoApprovalFlow flow = carInfoApprovalFlowMapper.selectOne(new LambdaQueryWrapper<CarInfoApprovalFlow>() CarInfoApprovalFlow fit = carInfoApprovalFlowMapper.selectOne(new LambdaQueryWrapper<CarInfoApprovalFlow>()
.eq(CarInfoApprovalFlow::getCarNumber, expiredCar.getCarNumber()) .eq(CarInfoApprovalFlow::getCarNumber, car.getCarNumber())
.eq(CarInfoApprovalFlow::getProjectSn, project.getProjectSn()) .eq(CarInfoApprovalFlow::getProjectSn, project.getProjectSn())
.gt(CarInfoApprovalFlow::getReserveEndTime, DateUtil.now()) .gt(CarInfoApprovalFlow::getReserveEndTime, DateUtil.now())
.orderByAsc(CarInfoApprovalFlow::getReserveStartTime) .orderByAsc(CarInfoApprovalFlow::getReserveStartTime)
.last("limit 1") .last("limit 1")
); );
if (flow != null) { if (fit != null) {
expiredCar.setReserveEndTime(flow.getReserveEndTime()); boolean notEqTime = DateUtil.compare(car.getReserveStartTime(), fit.getReserveStartTime()) != 0 || DateUtil.compare(car.getReserveEndTime(), fit.getReserveEndTime()) != 0;
expiredCar.setReserveStartTime(flow.getReserveStartTime()); if (notEqTime) {
this.editCarInfo(expiredCar); car.setReserveEndTime(fit.getReserveEndTime());
car.setReserveStartTime(fit.getReserveStartTime());
this.editCarInfo(car);
}
} else { } else {
deleteCar(expiredCar); deleteCar(car);
} }
} }
@ -240,9 +249,10 @@ public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> impl
if (Objects.equals(carInfo.getCarModuleType(), 1)) { if (Objects.equals(carInfo.getCarModuleType(), 1)) {
deleteCar(carInfo); deleteCar(carInfo);
} else { } else {
carInfoMapper.deleteById(carInfo.getId());
deleteFromApprovalFlowIf(carInfo); deleteFromApprovalFlowIf(carInfo);
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getSyncHikvision, 1)); Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getSyncHikvision, 1));
deleteOrUpdateExpiredCar(project, carInfo); deleteOrUpdateCar(project, carInfo);
} }
} }

View File

@ -4,11 +4,11 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zhgd.xmgl.modules.car.entity.CarInfo; import com.zhgd.xmgl.modules.car.entity.CarInfo;
import com.zhgd.xmgl.modules.car.mapper.CarInfoApprovalFlowMapper;
import com.zhgd.xmgl.modules.car.mapper.CarInfoMapper; import com.zhgd.xmgl.modules.car.mapper.CarInfoMapper;
import com.zhgd.xmgl.modules.car.service.impl.CarInfoServiceImpl; import com.zhgd.xmgl.modules.car.service.impl.CarInfoServiceImpl;
import com.zhgd.xmgl.modules.project.entity.Project; import com.zhgd.xmgl.modules.project.entity.Project;
import com.zhgd.xmgl.modules.project.mapper.ProjectMapper; import com.zhgd.xmgl.modules.project.mapper.ProjectMapper;
import com.zhgd.xmgl.modules.car.mapper.CarInfoApprovalFlowMapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
@ -40,16 +40,17 @@ public class CarInfoTask {
public void deleteOrUpdateExpiredCar() { public void deleteOrUpdateExpiredCar() {
List<Project> projects = projectMapper.selectList(new LambdaQueryWrapper<Project>().eq(Project::getSyncHikvision, 1)); List<Project> projects = projectMapper.selectList(new LambdaQueryWrapper<Project>().eq(Project::getSyncHikvision, 1));
for (Project project : projects) { for (Project project : projects) {
List<CarInfo> expiredCars = carInfoMapper.selectList(new LambdaQueryWrapper<CarInfo>() //过期或者未来车
List<CarInfo> cars = carInfoMapper.selectList(new LambdaQueryWrapper<CarInfo>()
.ne(CarInfo::getCarModuleType, 1) .ne(CarInfo::getCarModuleType, 1)
.eq(CarInfo::getProjectSn, project.getProjectSn()) .eq(CarInfo::getProjectSn, project.getProjectSn())
.lt(CarInfo::getReserveEndTime, DateUtil.now()) .and(w -> w.lt(CarInfo::getReserveEndTime, DateUtil.now()).or().gt(CarInfo::getReserveStartTime, DateUtil.now()))
); );
if (CollUtil.isEmpty(expiredCars)) { if (CollUtil.isEmpty(cars)) {
return; return;
} }
for (CarInfo carInfo : expiredCars) { for (CarInfo carInfo : cars) {
carInfoService.deleteOrUpdateExpiredCar(project, carInfo); carInfoService.deleteOrUpdateCar(project, carInfo);
} }
} }