车辆临时修改
This commit is contained in:
parent
79a76b9c3c
commit
c7fd8184fe
@ -1454,8 +1454,8 @@ public class HikvisionCall {
|
||||
JSONArray ja = categorySearch(project);
|
||||
String categoryCode = getFixedCarGroupName(ja);
|
||||
if (StringUtils.isBlank(categoryCode)) {
|
||||
log.error("获取固定车的categoryCode失败:车牌号:{}", carInfo.getCarNumber());
|
||||
throw new OpenPromptException("获取固定车的categoryCode失败");
|
||||
log.error("获取固定车的群组失败:车牌号:{}", carInfo.getCarNumber());
|
||||
throw new OpenPromptException("获取固定车的群组失败");
|
||||
}
|
||||
return categoryCode;
|
||||
}
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
package com.zhgd.xmgl.modules.car.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
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.worker.mapper.WorkerInfoMapper;
|
||||
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.MessageUtil;
|
||||
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.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @Description: 车辆黑白名单管理
|
||||
@ -90,6 +84,7 @@ public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> impl
|
||||
|
||||
@Override
|
||||
public void addCarInfo(CarInfo c) {
|
||||
checkTime(c);
|
||||
QueryWrapper<CarInfo> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.lambda().eq(CarInfo::getProjectSn, c.getProjectSn())
|
||||
.eq(CarInfo::getCarNumber, c.getCarNumber());
|
||||
@ -99,6 +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);
|
||||
}
|
||||
} else {
|
||||
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();
|
||||
BeanUtil.copyProperties(c, 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
|
||||
public void deleteOrUpdateExpiredCar(Project project, CarInfo expiredCar) {
|
||||
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::getProjectSn, project.getProjectSn())
|
||||
.gt(CarInfoApprovalFlow::getReserveEndTime, DateUtil.now())
|
||||
.orderByAsc(CarInfoApprovalFlow::getReserveStartTime)
|
||||
.last("limit 1")
|
||||
);
|
||||
if (CollUtil.isNotEmpty(approvalFlowCars)) {
|
||||
CarInfoApprovalFlow flow = approvalFlowCars.get(0);
|
||||
if (flow != null) {
|
||||
expiredCar.setReserveEndTime(flow.getReserveEndTime());
|
||||
expiredCar.setReserveStartTime(flow.getReserveStartTime());
|
||||
this.editCarInfo(expiredCar);
|
||||
@ -148,6 +149,7 @@ public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> impl
|
||||
|
||||
@Override
|
||||
public void editCarInfo(CarInfo carInfo) {
|
||||
checkTime(carInfo);
|
||||
QueryWrapper<CarInfo> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.lambda().eq(CarInfo::getProjectSn, carInfo.getProjectSn())
|
||||
.eq(CarInfo::getCarNumber, carInfo.getCarNumber())
|
||||
@ -230,15 +232,31 @@ public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> impl
|
||||
|
||||
@Override
|
||||
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) {
|
||||
throw new OpenAlertException(MessageUtil.get("notFindErr"));
|
||||
}
|
||||
String id = MapUtils.getString(map, "id");
|
||||
carInfoMapper.deleteById(id);
|
||||
if (Objects.equals(carInfo.getCarModuleType(), 1)) {
|
||||
carInfoMapper.deleteById(id);
|
||||
//同步海康
|
||||
asyncHikvision.deleteCarInfoForHikvision(carInfo);
|
||||
} else {
|
||||
deleteFromApprovalFlowIf(carInfo);
|
||||
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getSyncHikvision, 1));
|
||||
deleteOrUpdateExpiredCar(project, carInfo);
|
||||
}
|
||||
}
|
||||
|
||||
//同步海康
|
||||
asyncHikvision.deleteCarInfoForHikvision(carInfo);
|
||||
private void deleteFromApprovalFlowIf(CarInfo 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
|
||||
|
||||
@ -40,15 +40,15 @@ public class CarInfoTask {
|
||||
public void deleteOrUpdateExpiredCar() {
|
||||
List<Project> projects = projectMapper.selectList(new LambdaQueryWrapper<Project>().eq(Project::getSyncHikvision, 1));
|
||||
for (Project project : projects) {
|
||||
List<CarInfo> carInfos = carInfoMapper.selectList(new LambdaQueryWrapper<CarInfo>()
|
||||
List<CarInfo> expiredCars = carInfoMapper.selectList(new LambdaQueryWrapper<CarInfo>()
|
||||
.ne(CarInfo::getCarModuleType, 1)
|
||||
.eq(CarInfo::getProjectSn, project.getProjectSn())
|
||||
.lt(CarInfo::getReserveEndTime, DateUtil.now())
|
||||
);
|
||||
if (CollUtil.isEmpty(carInfos)) {
|
||||
if (CollUtil.isEmpty(expiredCars)) {
|
||||
return;
|
||||
}
|
||||
for (CarInfo carInfo : carInfos) {
|
||||
for (CarInfo carInfo : expiredCars) {
|
||||
carInfoService.deleteOrUpdateExpiredCar(project, carInfo);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user