bug修复
This commit is contained in:
parent
2c47db34f5
commit
294db15d20
90
src/main/java/com/zhgd/xmgl/async/AsyncHikvision.java
Normal file
90
src/main/java/com/zhgd/xmgl/async/AsyncHikvision.java
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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();
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
||||
26
src/main/java/com/zhgd/xmgl/base/HikvisionCarInfo.java
Normal file
26
src/main/java/com/zhgd/xmgl/base/HikvisionCarInfo.java
Normal 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;
|
||||
|
||||
}
|
||||
@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -25,4 +25,6 @@ public interface IBaseModuleService extends IService<BaseModule> {
|
||||
List<BaseModule> getModuleList(Map<String, Object> map);
|
||||
|
||||
Page<BaseModule> getModuleListByPage(ModuleListPageDto dto);
|
||||
|
||||
void copyModuleAndMenu();
|
||||
}
|
||||
|
||||
@ -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");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user