bug修复

This commit is contained in:
guo 2024-02-28 14:02:07 +08:00
parent 2c47db34f5
commit 294db15d20
12 changed files with 406 additions and 179 deletions

View File

@ -0,0 +1,90 @@
package com.zhgd.xmgl.async;
import com.zhgd.xmgl.call.HikvisionCall;
import com.zhgd.xmgl.call.HousingDataCall;
import com.zhgd.xmgl.call.WkServiceuCall;
import com.zhgd.xmgl.modules.basicdata.service.INoticeService;
import com.zhgd.xmgl.modules.car.entity.CarInfo;
import com.zhgd.xmgl.modules.project.service.IProjectUfaceConfigService;
import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
@Slf4j
@Component
public class AsyncHikvision {
@Autowired
private WorkerInfoMapper workerInfoMapper;
@Autowired
private HousingDataCall housingDataCall;
@Autowired
private INoticeService noticeService;
@Autowired
private IProjectUfaceConfigService projectUfaceConfigService;
@Autowired
private WkServiceuCall wkServiceuCall;
@Autowired
HikvisionCall hikvisionCall;
/**
* 添加劳务人员-海康
*
* @param workerInfo
*/
@Async
public void addWorkerForHikvision(WorkerInfo workerInfo) {
try {
hikvisionCall.addWorkerForHikvision(workerInfo);
} catch (Exception e) {
e.printStackTrace();
}
}
@Async
public void editWorkerForHikvision(WorkerInfo workerInfo) {
try {
hikvisionCall.editWorkerForHikvision(workerInfo);
} catch (Exception e) {
e.printStackTrace();
}
}
@Async
public void deleteWorkerForHikvision(WorkerInfo workerInfo) {
try {
hikvisionCall.deleteWorkerForHikvision(workerInfo);
} catch (Exception e) {
e.printStackTrace();
}
}
@Async
public void addCarInfoForHikvision(CarInfo carInfo) {
try {
hikvisionCall.addCarInfoForHikvision(carInfo);
} catch (Exception e) {
e.printStackTrace();
}
}
@Async
public void editCarInfoForHikvision(CarInfo carInfo) {
try {
hikvisionCall.editCarInfoForHikvision(carInfo);
} catch (Exception e) {
e.printStackTrace();
}
}
@Async
public void deleteCarInfoForHikvision(CarInfo carInfo) {
try {
hikvisionCall.deleteCarInfoForHikvision(carInfo);
} catch (Exception e) {
e.printStackTrace();
}
}
}

View File

@ -5,6 +5,7 @@ import com.zhgd.xmgl.call.HousingDataCall;
import com.zhgd.xmgl.call.WkServiceuCall;
import com.zhgd.xmgl.modules.basicdata.entity.Notice;
import com.zhgd.xmgl.modules.basicdata.service.INoticeService;
import com.zhgd.xmgl.modules.car.entity.CarInfo;
import com.zhgd.xmgl.modules.project.entity.ProjectEnterprise;
import com.zhgd.xmgl.modules.project.entity.ProjectUfaceConfig;
import com.zhgd.xmgl.modules.project.service.IProjectUfaceConfigService;
@ -210,25 +211,4 @@ public class AsyncWorker {
}
}
/**
* 添加劳务人员-海康
*
* @param workerInfo
*/
@Async
public void addWorkerForHikvision(WorkerInfo workerInfo) {
//try {
// hikvisionCall.addWorkerForHikvision(workerInfo);
//} catch (Exception e) {
// e.printStackTrace();
//}
}
public void editWorkerForHikvision(WorkerInfo workerInfo) {
//try {
// hikvisionCall.editWorkerForHikvision(workerInfo);
//} catch (Exception e) {
// e.printStackTrace();
//}
}
}

View File

@ -0,0 +1,26 @@
package com.zhgd.xmgl.base;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class HikvisionCarInfo {
@JsonProperty("clientId")
private Long clientId;
@JsonProperty("plateNo")
private String plateNo;
@JsonProperty("personId")
private String personId;
@JsonProperty("plateType")
private String plateType;
@JsonProperty("plateColor")
private String plateColor;
@JsonProperty("vehicleType")
private String vehicleType;
@JsonProperty("vehicleColor")
private String vehicleColor;
@JsonProperty("description")
private String description;
}

View File

@ -1,19 +1,27 @@
package com.zhgd.xmgl.call;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.hikvision.artemis.sdk.ArtemisHttpUtil;
import com.hikvision.artemis.sdk.config.ArtemisConfig;
import com.zhgd.xmgl.base.HikvisionCarInfo;
import com.zhgd.xmgl.modules.car.entity.CarInfo;
import com.zhgd.xmgl.modules.project.entity.Project;
import com.zhgd.xmgl.modules.project.mapper.ProjectMapper;
import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
import com.zhgd.xmgl.util.Base64Util;
import com.zhgd.xmgl.util.HikvisionUtil;
import com.zhgd.xmgl.util.PathUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.*;
@Slf4j
@Component
@ -21,6 +29,9 @@ public class HikvisionCall {
@Value("${upload.image.url.prefix:}")
private String imageUrlPrefix;
@Autowired
private ProjectMapper projectMapper;
public static String GetCameraPreviewURL() {
/**
@ -68,37 +79,18 @@ public class HikvisionCall {
}
public void addWorkerForHikvision(WorkerInfo workerInfo) {
/**
* STEP1设置平台参数根据实际情况,设置host appkey appsecret 三个参数.
*/
ArtemisConfig.host = "127.0.0.1:443"; // 平台的ip端口
ArtemisConfig.appKey = "29180881"; // 密钥appkey
ArtemisConfig.appSecret = "XO0wCAYGi4KV70ybjznx";// 密钥appSecret
/**
* STEP2设置OpenAPI接口的上下文
*/
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, workerInfo.getProjectSn()));
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return;
}
final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/resource/v2/person/single/add";
String host = "https://" + project.getArtemisConfigHost();
String body = getWorkerJson(workerInfo);
HikvisionUtil.doPost(host, path, body, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
}
/**
* STEP3设置接口的URI地址
*/
final String previewURLsApi = ARTEMIS_PATH + "/api/resource/v2/person/single/add";
Map<String, String> path = new HashMap<String, String>(2) {
{
put("https://", previewURLsApi);//根据现场环境部署确认是http还是https
}
};
/**
* STEP4设置参数提交方式
*/
String contentType = "application/json";
/**
* STEP5组装请求参数
*/
private String getWorkerJson(WorkerInfo workerInfo) {
JSONObject jsonBody = new JSONObject();
jsonBody.put("personId", workerInfo.getId());
jsonBody.put("personName", workerInfo.getWorkerName());
@ -116,69 +108,135 @@ public class HikvisionCall {
faceList.add(faceMap);
jsonBody.put("faces", faceList);
String body = jsonBody.toJSONString();
/**
* STEP6调用接口
*/
String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, contentType, null);// post请求application/json类型参数
log.info("海康rs:{}", result);
return body;
}
public void editWorkerForHikvision(WorkerInfo workerInfo) {
/**
* STEP1设置平台参数根据实际情况,设置host appkey appsecret 三个参数.
*/
ArtemisConfig.host = "127.0.0.1:443"; // 平台的ip端口
ArtemisConfig.appKey = "29180881"; // 密钥appkey
ArtemisConfig.appSecret = "XO0wCAYGi4KV70ybjznx";// 密钥appSecret
/**
* STEP2设置OpenAPI接口的上下文
*/
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, workerInfo.getProjectSn()));
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return;
}
final String ARTEMIS_PATH = "/artemis";
/**
* STEP3设置接口的URI地址
*/
final String previewURLsApi = ARTEMIS_PATH + "/api/resource/v1/person/single/update";
Map<String, String> path = new HashMap<String, String>(2) {
{
put("https://", previewURLsApi);//根据现场环境部署确认是http还是https
}
};
/**
* STEP4设置参数提交方式
*/
String contentType = "application/json";
/**
* STEP5组装请求参数
*/
JSONObject jsonBody = new JSONObject();
jsonBody.put("personId", workerInfo.getId());
jsonBody.put("personName", workerInfo.getWorkerName());
jsonBody.put("gender", workerInfo.getSex());
jsonBody.put("orgIndexCode", "todo");//todo
jsonBody.put("birthday", workerInfo.getBirthday());
jsonBody.put("phoneNo", workerInfo.getPhoneNumber());
jsonBody.put("email", workerInfo.getPersonMail());
jsonBody.put("certificateType", "111");
jsonBody.put("certificateNo", workerInfo.getIdCard());
jsonBody.put("jobNo", workerInfo.getPersonSn());
ArrayList<HashMap<String, String>> faceList = new ArrayList<>();
HashMap<String, String> faceMap = new HashMap<>();
faceMap.put("faceData", Base64Util.convertFileToBase64(PathUtil.reviseSlash(imageUrlPrefix + "/" + workerInfo.getFieldAcquisitionUrl())));
faceList.add(faceMap);
jsonBody.put("faces", faceList);
String body = jsonBody.toJSONString();
/**
* STEP6调用接口
*/
String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, contentType, null);// post请求application/json类型参数
//HikvisionUtil.doPost("https://"+previewURLsApi,)
log.info("海康rs:{}", result);
final String path = ARTEMIS_PATH + "/api/resource/v1/person/single/update";
String host = "https://" + project.getArtemisConfigHost();
String body = getWorkerJson(workerInfo);
HikvisionUtil.doPost(host, path, body, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
}
public void deleteWorkerForHikvision(WorkerInfo workerInfo) {
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, workerInfo.getProjectSn()));
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return;
}
final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/resource/v1/person/batch/delete";
String host = "https://" + project.getArtemisConfigHost();
JSONObject jsonBody = new JSONObject();
jsonBody.put("personIds", Arrays.asList(workerInfo.getId()));
String body = jsonBody.toJSONString();
HikvisionUtil.doPost(host, path, body, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
}
public void addCarInfoForHikvision(CarInfo carInfo) {
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, carInfo.getProjectSn()));
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return;
}
final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/resource/v1/vehicle/batch/add";
String host = "https://" + project.getArtemisConfigHost();
HikvisionCarInfo hikvisionCarInfo = getHikvisionCarInfo(carInfo);
JsonArray array = new JsonArray();
array.add(BeanUtil.toBean(hikvisionCarInfo, JsonObject.class));
String body = array.toString();
HikvisionUtil.doPost(host, path, body, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
}
private HikvisionCarInfo getHikvisionCarInfo(CarInfo carInfo) {
HikvisionCarInfo hikvisionCarInfo = new HikvisionCarInfo();
hikvisionCarInfo.setClientId(carInfo.getId());
hikvisionCarInfo.setPlateNo(carInfo.getCarNumber());
hikvisionCarInfo.setPersonId(carInfo.getDriverName());
hikvisionCarInfo.setPlateType(null);
hikvisionCarInfo.setPlateColor(null);
hikvisionCarInfo.setVehicleType(null);
hikvisionCarInfo.setVehicleColor(getVehicleColor(carInfo.getCarColor()));
hikvisionCarInfo.setDescription(null);
return hikvisionCarInfo;
}
private String getVehicleColor(String carColor) {
if (StringUtils.isBlank(carColor)) {
return null;
}
switch (carColor) {
case "其他颜色":
return "0";
case "白色":
return "1";
case "银色":
return "2";
case "灰色":
return "3";
case "黑色":
return "4";
case "红色":
return "5";
case "深蓝色":
return "6";
case "蓝色":
return "7";
case "黄色":
return "8";
case "绿色":
return "9";
case "棕色":
return "10";
case "粉色":
return "11";
case "紫色":
return "12";
case "深灰":
return "13";
case "杏色":
return "14";
case "未识别的车辆颜色":
return "255";
default:
return null;
}
}
public void editCarInfoForHikvision(CarInfo carInfo) {
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, carInfo.getProjectSn()));
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return;
}
final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/resource/v1/vehicle/single/update";
String host = "https://" + project.getArtemisConfigHost();
HikvisionCarInfo hikvisionCarInfo = getHikvisionCarInfo(carInfo);
JsonArray array = new JsonArray();
array.add(BeanUtil.toBean(hikvisionCarInfo, JsonObject.class));
String body = array.toString();
HikvisionUtil.doPost(host, path, body, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
}
public void deleteCarInfoForHikvision(CarInfo carInfo) {
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, carInfo.getProjectSn()));
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
return;
}
final String ARTEMIS_PATH = "/artemis";
final String path = ARTEMIS_PATH + "/api/resource/v1/vehicle/single/update";
String host = "https://" + project.getArtemisConfigHost();
JSONObject jo = new JSONObject();
JsonArray array = new JsonArray();
String body = array.toString();
array.add(carInfo.getId());
jo.put("vehicleIds", array);
HikvisionUtil.doPost(host, path, body, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
}
}

View File

@ -2,8 +2,8 @@ package com.zhgd.xmgl.modules.basicdata.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.xmgl.modules.basicdata.entity.dto.ModuleListPageDto;
import com.zhgd.xmgl.modules.basicdata.entity.BaseModule;
import com.zhgd.xmgl.modules.basicdata.entity.dto.ModuleListPageDto;
import com.zhgd.xmgl.modules.basicdata.service.IBaseModuleService;
import com.zhgd.xmgl.util.MessageUtil;
import io.swagger.annotations.Api;
@ -13,10 +13,7 @@ import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
@ -177,5 +174,12 @@ public class BaseModuleController {
return result;
}
/**
* 复制模块和菜单copy一份模块系统版本
*/
@GetMapping("copyModuleAndMenu")
public void copyModuleAndMenu() {
baseModuleService.copyModuleAndMenu();
}
}

View File

@ -25,4 +25,6 @@ public interface IBaseModuleService extends IService<BaseModule> {
List<BaseModule> getModuleList(Map<String, Object> map);
Page<BaseModule> getModuleListByPage(ModuleListPageDto dto);
void copyModuleAndMenu();
}

View File

@ -1,13 +1,17 @@
package com.zhgd.xmgl.modules.basicdata.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhgd.xmgl.modules.basicdata.entity.dto.ModuleListPageDto;
import com.zhgd.xmgl.modules.basicdata.entity.BaseMenu;
import com.zhgd.xmgl.modules.basicdata.entity.BaseModule;
import com.zhgd.xmgl.modules.basicdata.entity.CompanyConfig;
import com.zhgd.xmgl.modules.basicdata.entity.dto.ModuleListPageDto;
import com.zhgd.xmgl.modules.basicdata.mapper.BaseMenuMapper;
import com.zhgd.xmgl.modules.basicdata.mapper.BaseModuleMapper;
import com.zhgd.xmgl.modules.basicdata.mapper.CompanyConfigMapper;
import com.zhgd.xmgl.modules.basicdata.service.IBaseAuthorityService;
import com.zhgd.xmgl.modules.basicdata.service.IBaseModuleService;
import org.apache.commons.collections.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -16,6 +20,8 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* @Description: 模块
@ -29,7 +35,11 @@ public class BaseModuleServiceImpl extends ServiceImpl<BaseModuleMapper, BaseMod
@Autowired
private BaseModuleMapper baseModuleMapper;
@Autowired
private BaseMenuMapper baseMenuMapper;
@Autowired
private CompanyConfigMapper companyConfigMapper;
@Autowired
private IBaseAuthorityService baseAuthorityService;
@Override
public List<BaseModule> getCompanyModuleList(Map<String, Object> map) {
@ -75,4 +85,26 @@ public class BaseModuleServiceImpl extends ServiceImpl<BaseModuleMapper, BaseMod
}
return baseModuleMapper.getModuleListByPage(page, dto);
}
@Override
public void copyModuleAndMenu() {
List<BaseModule> baseModules = baseModuleMapper.selectList(new LambdaQueryWrapper<BaseModule>().eq(BaseModule::getStyleType, 1));
List<BaseMenu> baseMenus = baseMenuMapper.selectList(new LambdaQueryWrapper<BaseMenu>().in(BaseMenu::getModuleId, baseModules.stream().map(BaseModule::getModuleId).collect(Collectors.toList())));
Map<Long, List<BaseMenu>> moduleIdMap = baseMenus.stream().collect(Collectors.groupingBy(BaseMenu::getModuleId));
for (BaseModule baseModule : baseModules) {
List<BaseMenu> baseMenuList = moduleIdMap.get(baseModule.getModuleId());
baseModule.setStyleType(7);
baseModule.setModuleId(null);
baseModuleMapper.insert(baseModule);
if (baseMenuList != null) {
for (BaseMenu baseMenu : baseMenuList) {
baseMenu.setMenuId(null);
baseMenu.setModuleId(baseModule.getModuleId());
baseMenuMapper.insert(baseMenu);
// 同步权限表里的信息
baseAuthorityService.saveOrUpdateAuthority(baseMenu.getMenuId(), "menu");
}
}
}
}
}

View File

@ -91,18 +91,8 @@ public class CarInfoController {
@ApiImplicitParam(name = "id", value = "车辆黑白名单管理ID", paramType = "body", required = true, dataType = "Integer")
@PostMapping(value = "/delete")
public Result<CarInfo> delete(@RequestBody Map<String,Object> map) {
Result<CarInfo> result = new Result<CarInfo>();
CarInfo carInfo = carInfoService.getById(MapUtils.getString(map,"id"));
if(carInfo==null) {
result.error500(MessageUtil.get("notFindErr"));
}else {
boolean ok = carInfoService.removeById(MapUtils.getString(map,"id"));
if(ok) {
result.successMsg(MessageUtil.get("deleteSucess"));
}
}
return result;
carInfoService.delete(map);
return Result.ok();
}

View File

@ -24,4 +24,6 @@ public interface ICarInfoService extends IService<CarInfo> {
void deleteProjectCarData(String projectSn);
Map<String, Object> selectCarTypeCount(Map<String, Object> map);
void delete(Map<String, Object> map);
}

View File

@ -4,8 +4,11 @@ import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhgd.jeecg.common.execption.OpenAlertException;
import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.async.AsyncHikvision;
import com.zhgd.xmgl.async.AsyncWorker;
import com.zhgd.xmgl.modules.car.entity.*;
import com.zhgd.xmgl.modules.car.mapper.*;
import com.zhgd.xmgl.modules.car.service.ICarInfoService;
@ -15,8 +18,6 @@ import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
@ -26,7 +27,7 @@ import java.util.Map;
/**
* @Description: 车辆黑白名单管理
* @author pds
* @date 2020-09-29
* @date 2020-09-29
* @version V1.0
*/
@Service
@ -48,22 +49,26 @@ public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> impl
private CarWashCurrentDataMapper carWashCurrentDataMapper;
@Autowired
private WorkerInfoMapper workerInfoMapper;
@Autowired
private AsyncWorker asyncWorker;
@Autowired
private AsyncHikvision asyncHikvision;
@Override
public IPage<EntityMap> selectCarList(Map<String, Object> map) {
int pageNo = Integer.parseInt(map.getOrDefault("pageNo", 1).toString());
int pageSize = Integer.parseInt(map.getOrDefault("pageSize", 10).toString());
if(StringUtils.isEmpty(MapUtils.getString(map,"isBlack"))){
if (StringUtils.isEmpty(MapUtils.getString(map, "isBlack"))) {
map.remove("isBlack");
}
Page<EntityMap> page = new Page<>(pageNo, pageSize);
List<EntityMap> list=carInfoMapper.selectCarList(page, map);
if(list!=null&&list.size()>0){
for(EntityMap entityMap:list){
String workerName=workerInfoMapper.selectCarDriverNameByWorkerId(MapUtils.getString(entityMap,"driverWorkerId"));
entityMap.put("driver_worker_name",workerName);
List<EntityMap> list = carInfoMapper.selectCarList(page, map);
if (list != null && list.size() > 0) {
for (EntityMap entityMap : list) {
String workerName = workerInfoMapper.selectCarDriverNameByWorkerId(MapUtils.getString(entityMap, "driverWorkerId"));
entityMap.put("driver_worker_name", workerName);
if (StringUtils.isBlank(workerName)) {
entityMap.put("driver_worker_name",MapUtils.getString(entityMap,"driverName"));
entityMap.put("driver_worker_name", MapUtils.getString(entityMap, "driverName"));
}
String addTime = MapUtils.getString(entityMap, "addTime");
if (StringUtils.isNotBlank(addTime)) {
@ -77,84 +82,103 @@ public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> impl
@Override
public void addCarInfo(CarInfo carInfo) {
QueryWrapper<CarInfo> queryWrapper=new QueryWrapper<>();
queryWrapper.lambda().eq(CarInfo::getProjectSn,carInfo.getProjectSn())
.eq(CarInfo::getCarNumber,carInfo.getCarNumber());
int count=carInfoMapper.selectCount(queryWrapper);
if(count>0){
QueryWrapper<CarInfo> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(CarInfo::getProjectSn, carInfo.getProjectSn())
.eq(CarInfo::getCarNumber, carInfo.getCarNumber());
int count = carInfoMapper.selectCount(queryWrapper);
if (count > 0) {
throw new OpenAlertException(MessageUtil.get("carNumberExistErr"));
}
carInfoMapper.insert(carInfo);
//同步海康
asyncHikvision.addCarInfoForHikvision(carInfo);
}
@Override
public void editCarInfo(CarInfo carInfo) {
QueryWrapper<CarInfo> queryWrapper=new QueryWrapper<>();
queryWrapper.lambda().eq(CarInfo::getProjectSn,carInfo.getProjectSn())
.eq(CarInfo::getCarNumber,carInfo.getCarNumber())
.ne(CarInfo::getId,carInfo.getId());
int count=carInfoMapper.selectCount(queryWrapper);
if(count>0){
QueryWrapper<CarInfo> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(CarInfo::getProjectSn, carInfo.getProjectSn())
.eq(CarInfo::getCarNumber, carInfo.getCarNumber())
.ne(CarInfo::getId, carInfo.getId());
int count = carInfoMapper.selectCount(queryWrapper);
if (count > 0) {
throw new OpenAlertException(MessageUtil.get("carNumberExistErr"));
}
carInfoMapper.updateById(carInfo);
//同步海康
asyncHikvision.editCarInfoForHikvision(carInfo);
}
@Override
public void deleteProjectCarData(String projectSn) {
//删除车辆黑白名单
QueryWrapper<CarInfo> queryWrapper=new QueryWrapper<>();
queryWrapper.lambda().eq(CarInfo::getProjectSn,projectSn);
QueryWrapper<CarInfo> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(CarInfo::getProjectSn, projectSn);
carInfoMapper.delete(queryWrapper);
//删除车辆相机
QueryWrapper<CarCamera> queryWrapper2=new QueryWrapper<>();
queryWrapper2.lambda().eq(CarCamera::getProjectSn,projectSn);
QueryWrapper<CarCamera> queryWrapper2 = new QueryWrapper<>();
queryWrapper2.lambda().eq(CarCamera::getProjectSn, projectSn);
carCameraMapper.delete(queryWrapper2);
//删除车辆进出闸门
QueryWrapper<CarPassGate> queryWrapper3=new QueryWrapper<>();
queryWrapper3.lambda().eq(CarPassGate::getProjectSn,projectSn);
QueryWrapper<CarPassGate> queryWrapper3 = new QueryWrapper<>();
queryWrapper3.lambda().eq(CarPassGate::getProjectSn, projectSn);
carPassGateMapper.delete(queryWrapper3);
//删除车辆通行记录
QueryWrapper<CarPassRecord> queryWrapper4=new QueryWrapper<>();
queryWrapper4.lambda().eq(CarPassRecord::getProjectSn,projectSn);
QueryWrapper<CarPassRecord> queryWrapper4 = new QueryWrapper<>();
queryWrapper4.lambda().eq(CarPassRecord::getProjectSn, projectSn);
carPassRecordMapper.delete(queryWrapper4);
//删除车辆类型
QueryWrapper<CarType> queryWrapper5=new QueryWrapper<>();
queryWrapper5.lambda().eq(CarType::getProjectSn,projectSn);
QueryWrapper<CarType> queryWrapper5 = new QueryWrapper<>();
queryWrapper5.lambda().eq(CarType::getProjectSn, projectSn);
carTypeMapper.delete(queryWrapper5);
//删除车辆冲洗设备
QueryWrapper<CarWashDev> queryWrapper6=new QueryWrapper<>();
queryWrapper6.lambda().eq(CarWashDev::getProjectSn,projectSn);
QueryWrapper<CarWashDev> queryWrapper6 = new QueryWrapper<>();
queryWrapper6.lambda().eq(CarWashDev::getProjectSn, projectSn);
carWashDevMapper.delete(queryWrapper6);
//删除车辆冲洗实时数据
QueryWrapper<CarWashCurrentData> queryWrapper7=new QueryWrapper<>();
queryWrapper7.lambda().eq(CarWashCurrentData::getProjectSn,projectSn);
QueryWrapper<CarWashCurrentData> queryWrapper7 = new QueryWrapper<>();
queryWrapper7.lambda().eq(CarWashCurrentData::getProjectSn, projectSn);
carWashCurrentDataMapper.delete(queryWrapper7);
}
@Override
public Map<String, Object> selectCarTypeCount(Map<String, Object> map) {
Map<String, Object> data=new HashMap<>();
Map<String, Object> data = new HashMap<>();
//查询项目下各种车辆类型的车辆数黑名单和白名单数
List<Map<String, Object>> list=carInfoMapper.selectCarTypeCount(map);
List<Map<String, Object>> list = carInfoMapper.selectCarTypeCount(map);
//总数
Integer totalCar=0;
Integer totalCar = 0;
//白名单车辆总数
Integer totalBlackNum=0;
Integer totalBlackNum = 0;
//黑名单车辆总数
Integer totalWhiteNum=0;
if(list!=null&&list.size()>0){
for (Map<String, Object> carData:list){
totalCar=totalCar+MapUtils.getInteger(carData,"carTypeNum",0);
totalBlackNum=totalBlackNum+MapUtils.getInteger(carData,"blackNum",0);
totalWhiteNum=totalWhiteNum+MapUtils.getInteger(carData,"whiteNum",0);
Integer totalWhiteNum = 0;
if (list != null && list.size() > 0) {
for (Map<String, Object> carData : list) {
totalCar = totalCar + MapUtils.getInteger(carData, "carTypeNum", 0);
totalBlackNum = totalBlackNum + MapUtils.getInteger(carData, "blackNum", 0);
totalWhiteNum = totalWhiteNum + MapUtils.getInteger(carData, "whiteNum", 0);
}
}
data.put("totalCar",totalCar);
data.put("totalBlackNum",totalBlackNum);
data.put("totalWhiteNum",totalWhiteNum);
data.put("list",list);
data.put("totalCar", totalCar);
data.put("totalBlackNum", totalBlackNum);
data.put("totalWhiteNum", totalWhiteNum);
data.put("list", list);
return data;
}
@Override
public void delete(Map<String, Object> map) {
CarInfo carInfo = getById(MapUtils.getString(map, "id"));
if (carInfo == null) {
throw new OpenAlertException(MessageUtil.get("notFindErr"));
}
String id = MapUtils.getString(map, "id");
carInfoMapper.deleteById(id);
//同步海康
asyncHikvision.deleteCarInfoForHikvision(carInfo);
}
}

View File

@ -310,6 +310,16 @@ public class Project implements Serializable {
@JsonIgnore
@ApiModelProperty(value = "是否同步到海康")
private Integer syncHikvision;
@JsonIgnore
@ApiModelProperty(value = "海康host")
private String artemisConfigHost;
@JsonIgnore
@ApiModelProperty(value = "海康appKey")
private String artemisConfigAppKey;
@JsonIgnore
@ApiModelProperty(value = "海康appSecret")
private String artemisConfigAppSecret;
/**
* runde平台token

View File

@ -19,6 +19,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhgd.jeecg.common.api.vo.Result;
import com.zhgd.jeecg.common.execption.OpenAlertException;
import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.async.AsyncHikvision;
import com.zhgd.xmgl.async.AsyncJiLianDa;
import com.zhgd.xmgl.async.AsyncWorker;
import com.zhgd.xmgl.modules.basicdata.entity.Company;
@ -117,6 +118,8 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
@Autowired
private AsyncWorker asyncWorker;
@Autowired
private AsyncHikvision asyncHikvision;
@Autowired
private IWorkerPhotoFeaturesService workerPhotoFeaturesService;
@Autowired
private GovtOpenApiService govtOpenApiService;
@ -313,7 +316,7 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
.eq(WorkerInfoDelete::getIdCard, workerInfo.getIdCard())
);
//同步海康
asyncWorker.editWorkerForHikvision(workerInfo);
asyncHikvision.addWorkerForHikvision(workerInfo);
return workerInfo;
}
@ -372,6 +375,8 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
}
asyncJiLianDa.saveWorkerInfo(workerInfo);
//同步海康
asyncHikvision.editWorkerForHikvision(workerInfo);
return workerInfo;
}
@ -403,6 +408,10 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
WorkerInfoDelete entity = new WorkerInfoDelete();
BeanUtil.copyProperties(workerInfo, entity);
workerInfoDeleteMapper.insert(entity);
//同步海康
asyncHikvision.deleteWorkerForHikvision(workerInfo);
}
private void checkExistAccount(String id) {