车辆临时修改
This commit is contained in:
parent
79a76b9c3c
commit
c7fd8184fe
@ -1454,8 +1454,8 @@ public class HikvisionCall {
|
|||||||
JSONArray ja = categorySearch(project);
|
JSONArray ja = categorySearch(project);
|
||||||
String categoryCode = getFixedCarGroupName(ja);
|
String categoryCode = getFixedCarGroupName(ja);
|
||||||
if (StringUtils.isBlank(categoryCode)) {
|
if (StringUtils.isBlank(categoryCode)) {
|
||||||
log.error("获取固定车的categoryCode失败:车牌号:{}", carInfo.getCarNumber());
|
log.error("获取固定车的群组失败:车牌号:{}", carInfo.getCarNumber());
|
||||||
throw new OpenPromptException("获取固定车的categoryCode失败");
|
throw new OpenPromptException("获取固定车的群组失败");
|
||||||
}
|
}
|
||||||
return categoryCode;
|
return categoryCode;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
package com.zhgd.xmgl.modules.car.service.impl;
|
package com.zhgd.xmgl.modules.car.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
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.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
@ -22,8 +21,6 @@ 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.worker.mapper.WorkerInfoMapper;
|
import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoMapper;
|
||||||
import com.zhgd.xmgl.modules.worker.service.impl.EnterpriseInfoServiceImpl;
|
import com.zhgd.xmgl.modules.worker.service.impl.EnterpriseInfoServiceImpl;
|
||||||
import com.zhgd.xmgl.modules.car.entity.CarInfoApprovalFlow;
|
|
||||||
import com.zhgd.xmgl.modules.car.mapper.CarInfoApprovalFlowMapper;
|
|
||||||
import com.zhgd.xmgl.util.MapBuilder;
|
import com.zhgd.xmgl.util.MapBuilder;
|
||||||
import com.zhgd.xmgl.util.MessageUtil;
|
import com.zhgd.xmgl.util.MessageUtil;
|
||||||
import com.zhgd.xmgl.util.PageUtil;
|
import com.zhgd.xmgl.util.PageUtil;
|
||||||
@ -33,10 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 车辆黑白名单管理
|
* @Description: 车辆黑白名单管理
|
||||||
@ -90,6 +84,7 @@ public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> impl
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addCarInfo(CarInfo c) {
|
public void addCarInfo(CarInfo c) {
|
||||||
|
checkTime(c);
|
||||||
QueryWrapper<CarInfo> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<CarInfo> queryWrapper = new QueryWrapper<>();
|
||||||
queryWrapper.lambda().eq(CarInfo::getProjectSn, c.getProjectSn())
|
queryWrapper.lambda().eq(CarInfo::getProjectSn, c.getProjectSn())
|
||||||
.eq(CarInfo::getCarNumber, c.getCarNumber());
|
.eq(CarInfo::getCarNumber, c.getCarNumber());
|
||||||
@ -99,6 +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>()
|
||||||
|
.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);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
carInfoMapper.insert(c);
|
carInfoMapper.insert(c);
|
||||||
//同步海康
|
//同步海康
|
||||||
@ -106,6 +111,12 @@ public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> impl
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void checkTime(CarInfo c) {
|
||||||
|
if (!Objects.equals(c.getCarModuleType(), 1) && DateUtil.compare(c.getReserveEndTime(), new Date()) < 0) {
|
||||||
|
throw new OpenAlertException("预约时间已过期");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 审批流添加临时车辆
|
* 审批流添加临时车辆
|
||||||
*
|
*
|
||||||
@ -115,29 +126,19 @@ public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> impl
|
|||||||
CarInfoApprovalFlow flow = new CarInfoApprovalFlow();
|
CarInfoApprovalFlow flow = new CarInfoApprovalFlow();
|
||||||
BeanUtil.copyProperties(c, flow);
|
BeanUtil.copyProperties(c, flow);
|
||||||
carInfoApprovalFlowMapper.insert(flow);
|
carInfoApprovalFlowMapper.insert(flow);
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void deleteOrUpdateExpiredCar(Project project, CarInfo expiredCar) {
|
public void deleteOrUpdateExpiredCar(Project project, CarInfo expiredCar) {
|
||||||
log.info("删除/更新过期的车辆,并下发新的预约时间的车辆到海康,车牌号:{}", expiredCar.getCarNumber());
|
log.info("删除/更新过期的车辆,并下发新的预约时间的车辆到海康,车牌号:{}", expiredCar.getCarNumber());
|
||||||
List<CarInfoApprovalFlow> approvalFlowCars = carInfoApprovalFlowMapper.selectList(new LambdaQueryWrapper<CarInfoApprovalFlow>()
|
CarInfoApprovalFlow flow = carInfoApprovalFlowMapper.selectOne(new LambdaQueryWrapper<CarInfoApprovalFlow>()
|
||||||
.eq(CarInfoApprovalFlow::getCarNumber, expiredCar.getCarNumber())
|
.eq(CarInfoApprovalFlow::getCarNumber, expiredCar.getCarNumber())
|
||||||
.eq(CarInfoApprovalFlow::getProjectSn, project.getProjectSn())
|
.eq(CarInfoApprovalFlow::getProjectSn, project.getProjectSn())
|
||||||
.gt(CarInfoApprovalFlow::getReserveEndTime, DateUtil.now())
|
.gt(CarInfoApprovalFlow::getReserveEndTime, DateUtil.now())
|
||||||
|
.orderByAsc(CarInfoApprovalFlow::getReserveStartTime)
|
||||||
.last("limit 1")
|
.last("limit 1")
|
||||||
);
|
);
|
||||||
if (CollUtil.isNotEmpty(approvalFlowCars)) {
|
if (flow != null) {
|
||||||
CarInfoApprovalFlow flow = approvalFlowCars.get(0);
|
|
||||||
expiredCar.setReserveEndTime(flow.getReserveEndTime());
|
expiredCar.setReserveEndTime(flow.getReserveEndTime());
|
||||||
expiredCar.setReserveStartTime(flow.getReserveStartTime());
|
expiredCar.setReserveStartTime(flow.getReserveStartTime());
|
||||||
this.editCarInfo(expiredCar);
|
this.editCarInfo(expiredCar);
|
||||||
@ -148,6 +149,7 @@ public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> impl
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void editCarInfo(CarInfo carInfo) {
|
public void editCarInfo(CarInfo carInfo) {
|
||||||
|
checkTime(carInfo);
|
||||||
QueryWrapper<CarInfo> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<CarInfo> queryWrapper = new QueryWrapper<>();
|
||||||
queryWrapper.lambda().eq(CarInfo::getProjectSn, carInfo.getProjectSn())
|
queryWrapper.lambda().eq(CarInfo::getProjectSn, carInfo.getProjectSn())
|
||||||
.eq(CarInfo::getCarNumber, carInfo.getCarNumber())
|
.eq(CarInfo::getCarNumber, carInfo.getCarNumber())
|
||||||
@ -230,15 +232,31 @@ public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> impl
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void delete(Map<String, Object> map) {
|
public void delete(Map<String, Object> map) {
|
||||||
CarInfo carInfo = getById(MapUtils.getString(map, "id"));
|
String id = MapUtils.getString(map, "id");
|
||||||
|
CarInfo carInfo = getById(id);
|
||||||
if (carInfo == null) {
|
if (carInfo == null) {
|
||||||
throw new OpenAlertException(MessageUtil.get("notFindErr"));
|
throw new OpenAlertException(MessageUtil.get("notFindErr"));
|
||||||
}
|
}
|
||||||
String id = MapUtils.getString(map, "id");
|
if (Objects.equals(carInfo.getCarModuleType(), 1)) {
|
||||||
carInfoMapper.deleteById(id);
|
carInfoMapper.deleteById(id);
|
||||||
|
//同步海康
|
||||||
|
asyncHikvision.deleteCarInfoForHikvision(carInfo);
|
||||||
|
} else {
|
||||||
|
deleteFromApprovalFlowIf(carInfo);
|
||||||
|
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getSyncHikvision, 1));
|
||||||
|
deleteOrUpdateExpiredCar(project, carInfo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//同步海康
|
private void deleteFromApprovalFlowIf(CarInfo carInfo) {
|
||||||
asyncHikvision.deleteCarInfoForHikvision(carInfo);
|
if (!Objects.equals(carInfo.getCarModuleType(), 1)) {
|
||||||
|
carInfoApprovalFlowMapper.delete(new LambdaQueryWrapper<CarInfoApprovalFlow>()
|
||||||
|
.eq(CarInfoApprovalFlow::getReserveStartTime, carInfo.getReserveStartTime())
|
||||||
|
.eq(CarInfoApprovalFlow::getReserveEndTime, carInfo.getReserveEndTime())
|
||||||
|
.eq(CarInfoApprovalFlow::getProjectSn, carInfo.getProjectSn())
|
||||||
|
.eq(CarInfoApprovalFlow::getCarNumber, carInfo.getCarNumber())
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -40,15 +40,15 @@ 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> carInfos = carInfoMapper.selectList(new LambdaQueryWrapper<CarInfo>()
|
List<CarInfo> expiredCars = 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())
|
.lt(CarInfo::getReserveEndTime, DateUtil.now())
|
||||||
);
|
);
|
||||||
if (CollUtil.isEmpty(carInfos)) {
|
if (CollUtil.isEmpty(expiredCars)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for (CarInfo carInfo : carInfos) {
|
for (CarInfo carInfo : expiredCars) {
|
||||||
carInfoService.deleteOrUpdateExpiredCar(project, carInfo);
|
carInfoService.deleteOrUpdateExpiredCar(project, carInfo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user