bug修改
This commit is contained in:
parent
be7f25d191
commit
9cccc03f48
@ -2,7 +2,6 @@ package com.zhgd.xmgl.modules.car.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
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.vo.CountCarModuleTypeVo;
|
||||
import com.zhgd.xmgl.modules.project.entity.Project;
|
||||
@ -24,7 +23,7 @@ public interface ICarInfoService extends IService<CarInfo> {
|
||||
|
||||
void addCarInfo(CarInfo carInfo);
|
||||
|
||||
void deleteOrUpdateExpiredCar(Project project, CarInfo carInfo);
|
||||
void deleteOrUpdateCar(Project project, CarInfo carInfo);
|
||||
|
||||
void editCarInfo(CarInfo carInfo);
|
||||
|
||||
|
||||
@ -94,16 +94,16 @@ public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> impl
|
||||
throw new OpenAlertException("该车辆已添加,请勿重复添加!");
|
||||
}
|
||||
addCarInfoForApprovalFlow(c);
|
||||
CarInfo expiredCar = carInfoMapper.selectOne(new LambdaQueryWrapper<CarInfo>()
|
||||
.ne(CarInfo::getCarModuleType, 1)
|
||||
.eq(CarInfo::getCarNumber, c.getCarNumber())
|
||||
.eq(CarInfo::getProjectSn, c.getProjectSn())
|
||||
.lt(CarInfo::getReserveEndTime, DateUtil.now())
|
||||
);
|
||||
if (expiredCar != null) {
|
||||
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getSyncHikvision, 1));
|
||||
deleteOrUpdateExpiredCar(project, expiredCar);
|
||||
Date now = new Date();
|
||||
if (DateUtil.compare(carInfo.getReserveStartTime(), now) < 0 && DateUtil.compare(carInfo.getReserveEndTime(), now) > 0) {
|
||||
log.info("车辆在有效期内,不需要更新,车牌号:{}", c.getCarNumber());
|
||||
return;
|
||||
}
|
||||
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getSyncHikvision, 1));
|
||||
if (project == null) {
|
||||
return;
|
||||
}
|
||||
deleteOrUpdateCar(project, carInfo);
|
||||
} else {
|
||||
carInfoMapper.insert(c);
|
||||
//同步海康
|
||||
@ -128,22 +128,31 @@ public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> impl
|
||||
carInfoApprovalFlowMapper.insert(flow);
|
||||
}
|
||||
|
||||
/**
|
||||
* 过期或者未来车的更新或者删除
|
||||
*
|
||||
* @param project
|
||||
* @param car
|
||||
*/
|
||||
@Override
|
||||
public void deleteOrUpdateExpiredCar(Project project, CarInfo expiredCar) {
|
||||
log.info("删除/更新过期的车辆,并下发新的预约时间的车辆到海康,车牌号:{}", expiredCar.getCarNumber());
|
||||
CarInfoApprovalFlow flow = carInfoApprovalFlowMapper.selectOne(new LambdaQueryWrapper<CarInfoApprovalFlow>()
|
||||
.eq(CarInfoApprovalFlow::getCarNumber, expiredCar.getCarNumber())
|
||||
public void deleteOrUpdateCar(Project project, CarInfo car) {
|
||||
log.info("删除/更新过期或未来的车辆,并下发新的预约时间的车辆到海康,车牌号:{}", car.getCarNumber());
|
||||
CarInfoApprovalFlow fit = carInfoApprovalFlowMapper.selectOne(new LambdaQueryWrapper<CarInfoApprovalFlow>()
|
||||
.eq(CarInfoApprovalFlow::getCarNumber, car.getCarNumber())
|
||||
.eq(CarInfoApprovalFlow::getProjectSn, project.getProjectSn())
|
||||
.gt(CarInfoApprovalFlow::getReserveEndTime, DateUtil.now())
|
||||
.orderByAsc(CarInfoApprovalFlow::getReserveStartTime)
|
||||
.last("limit 1")
|
||||
);
|
||||
if (flow != null) {
|
||||
expiredCar.setReserveEndTime(flow.getReserveEndTime());
|
||||
expiredCar.setReserveStartTime(flow.getReserveStartTime());
|
||||
this.editCarInfo(expiredCar);
|
||||
if (fit != null) {
|
||||
boolean notEqTime = DateUtil.compare(car.getReserveStartTime(), fit.getReserveStartTime()) != 0 || DateUtil.compare(car.getReserveEndTime(), fit.getReserveEndTime()) != 0;
|
||||
if (notEqTime) {
|
||||
car.setReserveEndTime(fit.getReserveEndTime());
|
||||
car.setReserveStartTime(fit.getReserveStartTime());
|
||||
this.editCarInfo(car);
|
||||
}
|
||||
} else {
|
||||
deleteCar(expiredCar);
|
||||
deleteCar(car);
|
||||
}
|
||||
}
|
||||
|
||||
@ -240,9 +249,10 @@ public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> impl
|
||||
if (Objects.equals(carInfo.getCarModuleType(), 1)) {
|
||||
deleteCar(carInfo);
|
||||
} else {
|
||||
carInfoMapper.deleteById(carInfo.getId());
|
||||
deleteFromApprovalFlowIf(carInfo);
|
||||
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getSyncHikvision, 1));
|
||||
deleteOrUpdateExpiredCar(project, carInfo);
|
||||
deleteOrUpdateCar(project, carInfo);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -4,11 +4,11 @@ import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
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.service.impl.CarInfoServiceImpl;
|
||||
import com.zhgd.xmgl.modules.project.entity.Project;
|
||||
import com.zhgd.xmgl.modules.project.mapper.ProjectMapper;
|
||||
import com.zhgd.xmgl.modules.car.mapper.CarInfoApprovalFlowMapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
@ -40,16 +40,17 @@ public class CarInfoTask {
|
||||
public void deleteOrUpdateExpiredCar() {
|
||||
List<Project> projects = projectMapper.selectList(new LambdaQueryWrapper<Project>().eq(Project::getSyncHikvision, 1));
|
||||
for (Project project : projects) {
|
||||
List<CarInfo> expiredCars = carInfoMapper.selectList(new LambdaQueryWrapper<CarInfo>()
|
||||
//过期或者未来车
|
||||
List<CarInfo> cars = carInfoMapper.selectList(new LambdaQueryWrapper<CarInfo>()
|
||||
.ne(CarInfo::getCarModuleType, 1)
|
||||
.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;
|
||||
}
|
||||
for (CarInfo carInfo : expiredCars) {
|
||||
carInfoService.deleteOrUpdateExpiredCar(project, carInfo);
|
||||
for (CarInfo carInfo : cars) {
|
||||
carInfoService.deleteOrUpdateCar(project, carInfo);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user