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.call.WkServiceuCall;
|
||||||
import com.zhgd.xmgl.modules.basicdata.entity.Notice;
|
import com.zhgd.xmgl.modules.basicdata.entity.Notice;
|
||||||
import com.zhgd.xmgl.modules.basicdata.service.INoticeService;
|
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.ProjectEnterprise;
|
||||||
import com.zhgd.xmgl.modules.project.entity.ProjectUfaceConfig;
|
import com.zhgd.xmgl.modules.project.entity.ProjectUfaceConfig;
|
||||||
import com.zhgd.xmgl.modules.project.service.IProjectUfaceConfigService;
|
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;
|
package com.zhgd.xmgl.call;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
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.ArtemisHttpUtil;
|
||||||
import com.hikvision.artemis.sdk.config.ArtemisConfig;
|
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.modules.worker.entity.WorkerInfo;
|
||||||
import com.zhgd.xmgl.util.Base64Util;
|
import com.zhgd.xmgl.util.Base64Util;
|
||||||
import com.zhgd.xmgl.util.HikvisionUtil;
|
import com.zhgd.xmgl.util.HikvisionUtil;
|
||||||
import com.zhgd.xmgl.util.PathUtil;
|
import com.zhgd.xmgl.util.PathUtil;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
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.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Component
|
@Component
|
||||||
@ -21,6 +29,9 @@ public class HikvisionCall {
|
|||||||
@Value("${upload.image.url.prefix:}")
|
@Value("${upload.image.url.prefix:}")
|
||||||
private String imageUrlPrefix;
|
private String imageUrlPrefix;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ProjectMapper projectMapper;
|
||||||
|
|
||||||
public static String GetCameraPreviewURL() {
|
public static String GetCameraPreviewURL() {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -68,37 +79,18 @@ public class HikvisionCall {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void addWorkerForHikvision(WorkerInfo workerInfo) {
|
public void addWorkerForHikvision(WorkerInfo workerInfo) {
|
||||||
|
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, workerInfo.getProjectSn()));
|
||||||
/**
|
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||||
* STEP1:设置平台参数,根据实际情况,设置host appkey appsecret 三个参数.
|
return;
|
||||||
*/
|
}
|
||||||
ArtemisConfig.host = "127.0.0.1:443"; // 平台的ip端口
|
final String ARTEMIS_PATH = "/artemis";
|
||||||
ArtemisConfig.appKey = "29180881"; // 密钥appkey
|
final String path = ARTEMIS_PATH + "/api/resource/v2/person/single/add";
|
||||||
ArtemisConfig.appSecret = "XO0wCAYGi4KV70ybjznx";// 密钥appSecret
|
String host = "https://" + project.getArtemisConfigHost();
|
||||||
|
String body = getWorkerJson(workerInfo);
|
||||||
/**
|
HikvisionUtil.doPost(host, path, body, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||||
* STEP2:设置OpenAPI接口的上下文
|
|
||||||
*/
|
|
||||||
final String ARTEMIS_PATH = "/artemis";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 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
|
|
||||||
}
|
}
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
private String getWorkerJson(WorkerInfo workerInfo) {
|
||||||
* STEP4:设置参数提交方式
|
|
||||||
*/
|
|
||||||
String contentType = "application/json";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* STEP5:组装请求参数
|
|
||||||
*/
|
|
||||||
JSONObject jsonBody = new JSONObject();
|
JSONObject jsonBody = new JSONObject();
|
||||||
jsonBody.put("personId", workerInfo.getId());
|
jsonBody.put("personId", workerInfo.getId());
|
||||||
jsonBody.put("personName", workerInfo.getWorkerName());
|
jsonBody.put("personName", workerInfo.getWorkerName());
|
||||||
@ -116,69 +108,135 @@ public class HikvisionCall {
|
|||||||
faceList.add(faceMap);
|
faceList.add(faceMap);
|
||||||
jsonBody.put("faces", faceList);
|
jsonBody.put("faces", faceList);
|
||||||
String body = jsonBody.toJSONString();
|
String body = jsonBody.toJSONString();
|
||||||
/**
|
return body;
|
||||||
* STEP6:调用接口
|
|
||||||
*/
|
|
||||||
String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, contentType, null);// post请求application/json类型参数
|
|
||||||
log.info("海康rs:{}", result);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void editWorkerForHikvision(WorkerInfo workerInfo) {
|
public void editWorkerForHikvision(WorkerInfo workerInfo) {
|
||||||
/**
|
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, workerInfo.getProjectSn()));
|
||||||
* STEP1:设置平台参数,根据实际情况,设置host appkey appsecret 三个参数.
|
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||||
*/
|
return;
|
||||||
ArtemisConfig.host = "127.0.0.1:443"; // 平台的ip端口
|
}
|
||||||
ArtemisConfig.appKey = "29180881"; // 密钥appkey
|
|
||||||
ArtemisConfig.appSecret = "XO0wCAYGi4KV70ybjznx";// 密钥appSecret
|
|
||||||
|
|
||||||
/**
|
|
||||||
* STEP2:设置OpenAPI接口的上下文
|
|
||||||
*/
|
|
||||||
final String ARTEMIS_PATH = "/artemis";
|
final String ARTEMIS_PATH = "/artemis";
|
||||||
|
final String path = ARTEMIS_PATH + "/api/resource/v1/person/single/update";
|
||||||
/**
|
String host = "https://" + project.getArtemisConfigHost();
|
||||||
* STEP3:设置接口的URI地址
|
String body = getWorkerJson(workerInfo);
|
||||||
*/
|
HikvisionUtil.doPost(host, path, body, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||||
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";
|
|
||||||
|
|
||||||
/**
|
public void deleteWorkerForHikvision(WorkerInfo workerInfo) {
|
||||||
* STEP5:组装请求参数
|
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();
|
JSONObject jsonBody = new JSONObject();
|
||||||
jsonBody.put("personId", workerInfo.getId());
|
jsonBody.put("personIds", Arrays.asList(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();
|
String body = jsonBody.toJSONString();
|
||||||
/**
|
HikvisionUtil.doPost(host, path, body, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||||
* STEP6:调用接口
|
|
||||||
*/
|
|
||||||
String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, contentType, null);// post请求application/json类型参数
|
|
||||||
//HikvisionUtil.doPost("https://"+previewURLsApi,)
|
|
||||||
log.info("海康rs:{}", result);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.zhgd.jeecg.common.api.vo.Result;
|
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.BaseModule;
|
||||||
|
import com.zhgd.xmgl.modules.basicdata.entity.dto.ModuleListPageDto;
|
||||||
import com.zhgd.xmgl.modules.basicdata.service.IBaseModuleService;
|
import com.zhgd.xmgl.modules.basicdata.service.IBaseModuleService;
|
||||||
import com.zhgd.xmgl.util.MessageUtil;
|
import com.zhgd.xmgl.util.MessageUtil;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
@ -13,10 +13,7 @@ import io.swagger.annotations.ApiOperation;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections.MapUtils;
|
import org.apache.commons.collections.MapUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -177,5 +174,12 @@ public class BaseModuleController {
|
|||||||
return result;
|
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);
|
List<BaseModule> getModuleList(Map<String, Object> map);
|
||||||
|
|
||||||
Page<BaseModule> getModuleListByPage(ModuleListPageDto dto);
|
Page<BaseModule> getModuleListByPage(ModuleListPageDto dto);
|
||||||
|
|
||||||
|
void copyModuleAndMenu();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,13 +1,17 @@
|
|||||||
package com.zhgd.xmgl.modules.basicdata.service.impl;
|
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.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
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.BaseModule;
|
||||||
import com.zhgd.xmgl.modules.basicdata.entity.CompanyConfig;
|
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.BaseModuleMapper;
|
||||||
import com.zhgd.xmgl.modules.basicdata.mapper.CompanyConfigMapper;
|
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 com.zhgd.xmgl.modules.basicdata.service.IBaseModuleService;
|
||||||
import org.apache.commons.collections.MapUtils;
|
import org.apache.commons.collections.MapUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@ -16,6 +20,8 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.function.Function;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 模块
|
* @Description: 模块
|
||||||
@ -29,7 +35,11 @@ public class BaseModuleServiceImpl extends ServiceImpl<BaseModuleMapper, BaseMod
|
|||||||
@Autowired
|
@Autowired
|
||||||
private BaseModuleMapper baseModuleMapper;
|
private BaseModuleMapper baseModuleMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
private BaseMenuMapper baseMenuMapper;
|
||||||
|
@Autowired
|
||||||
private CompanyConfigMapper companyConfigMapper;
|
private CompanyConfigMapper companyConfigMapper;
|
||||||
|
@Autowired
|
||||||
|
private IBaseAuthorityService baseAuthorityService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<BaseModule> getCompanyModuleList(Map<String, Object> map) {
|
public List<BaseModule> getCompanyModuleList(Map<String, Object> map) {
|
||||||
@ -75,4 +85,26 @@ public class BaseModuleServiceImpl extends ServiceImpl<BaseModuleMapper, BaseMod
|
|||||||
}
|
}
|
||||||
return baseModuleMapper.getModuleListByPage(page, dto);
|
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")
|
@ApiImplicitParam(name = "id", value = "车辆黑白名单管理ID", paramType = "body", required = true, dataType = "Integer")
|
||||||
@PostMapping(value = "/delete")
|
@PostMapping(value = "/delete")
|
||||||
public Result<CarInfo> delete(@RequestBody Map<String,Object> map) {
|
public Result<CarInfo> delete(@RequestBody Map<String,Object> map) {
|
||||||
Result<CarInfo> result = new Result<CarInfo>();
|
carInfoService.delete(map);
|
||||||
CarInfo carInfo = carInfoService.getById(MapUtils.getString(map,"id"));
|
return Result.ok();
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -24,4 +24,6 @@ public interface ICarInfoService extends IService<CarInfo> {
|
|||||||
void deleteProjectCarData(String projectSn);
|
void deleteProjectCarData(String projectSn);
|
||||||
|
|
||||||
Map<String, Object> selectCarTypeCount(Map<String, Object> map);
|
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.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
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.execption.OpenAlertException;
|
||||||
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
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.entity.*;
|
||||||
import com.zhgd.xmgl.modules.car.mapper.*;
|
import com.zhgd.xmgl.modules.car.mapper.*;
|
||||||
import com.zhgd.xmgl.modules.car.service.ICarInfoService;
|
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.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@ -48,6 +49,10 @@ public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> impl
|
|||||||
private CarWashCurrentDataMapper carWashCurrentDataMapper;
|
private CarWashCurrentDataMapper carWashCurrentDataMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private WorkerInfoMapper workerInfoMapper;
|
private WorkerInfoMapper workerInfoMapper;
|
||||||
|
@Autowired
|
||||||
|
private AsyncWorker asyncWorker;
|
||||||
|
@Autowired
|
||||||
|
private AsyncHikvision asyncHikvision;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IPage<EntityMap> selectCarList(Map<String, Object> map) {
|
public IPage<EntityMap> selectCarList(Map<String, Object> map) {
|
||||||
@ -85,6 +90,9 @@ public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> impl
|
|||||||
throw new OpenAlertException(MessageUtil.get("carNumberExistErr"));
|
throw new OpenAlertException(MessageUtil.get("carNumberExistErr"));
|
||||||
}
|
}
|
||||||
carInfoMapper.insert(carInfo);
|
carInfoMapper.insert(carInfo);
|
||||||
|
|
||||||
|
//同步海康
|
||||||
|
asyncHikvision.addCarInfoForHikvision(carInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -98,6 +106,9 @@ public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> impl
|
|||||||
throw new OpenAlertException(MessageUtil.get("carNumberExistErr"));
|
throw new OpenAlertException(MessageUtil.get("carNumberExistErr"));
|
||||||
}
|
}
|
||||||
carInfoMapper.updateById(carInfo);
|
carInfoMapper.updateById(carInfo);
|
||||||
|
|
||||||
|
//同步海康
|
||||||
|
asyncHikvision.editCarInfoForHikvision(carInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -157,4 +168,17 @@ public class CarInfoServiceImpl extends ServiceImpl<CarInfoMapper, CarInfo> impl
|
|||||||
data.put("list", list);
|
data.put("list", list);
|
||||||
return data;
|
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
|
@JsonIgnore
|
||||||
@ApiModelProperty(value = "是否同步到海康")
|
@ApiModelProperty(value = "是否同步到海康")
|
||||||
private Integer syncHikvision;
|
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
|
* 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.api.vo.Result;
|
||||||
import com.zhgd.jeecg.common.execption.OpenAlertException;
|
import com.zhgd.jeecg.common.execption.OpenAlertException;
|
||||||
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
||||||
|
import com.zhgd.xmgl.async.AsyncHikvision;
|
||||||
import com.zhgd.xmgl.async.AsyncJiLianDa;
|
import com.zhgd.xmgl.async.AsyncJiLianDa;
|
||||||
import com.zhgd.xmgl.async.AsyncWorker;
|
import com.zhgd.xmgl.async.AsyncWorker;
|
||||||
import com.zhgd.xmgl.modules.basicdata.entity.Company;
|
import com.zhgd.xmgl.modules.basicdata.entity.Company;
|
||||||
@ -117,6 +118,8 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
|||||||
@Autowired
|
@Autowired
|
||||||
private AsyncWorker asyncWorker;
|
private AsyncWorker asyncWorker;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
private AsyncHikvision asyncHikvision;
|
||||||
|
@Autowired
|
||||||
private IWorkerPhotoFeaturesService workerPhotoFeaturesService;
|
private IWorkerPhotoFeaturesService workerPhotoFeaturesService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private GovtOpenApiService govtOpenApiService;
|
private GovtOpenApiService govtOpenApiService;
|
||||||
@ -313,7 +316,7 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
|||||||
.eq(WorkerInfoDelete::getIdCard, workerInfo.getIdCard())
|
.eq(WorkerInfoDelete::getIdCard, workerInfo.getIdCard())
|
||||||
);
|
);
|
||||||
//同步海康
|
//同步海康
|
||||||
asyncWorker.editWorkerForHikvision(workerInfo);
|
asyncHikvision.addWorkerForHikvision(workerInfo);
|
||||||
|
|
||||||
return workerInfo;
|
return workerInfo;
|
||||||
}
|
}
|
||||||
@ -372,6 +375,8 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
|||||||
}
|
}
|
||||||
asyncJiLianDa.saveWorkerInfo(workerInfo);
|
asyncJiLianDa.saveWorkerInfo(workerInfo);
|
||||||
|
|
||||||
|
//同步海康
|
||||||
|
asyncHikvision.editWorkerForHikvision(workerInfo);
|
||||||
|
|
||||||
return workerInfo;
|
return workerInfo;
|
||||||
}
|
}
|
||||||
@ -403,6 +408,10 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
|||||||
WorkerInfoDelete entity = new WorkerInfoDelete();
|
WorkerInfoDelete entity = new WorkerInfoDelete();
|
||||||
BeanUtil.copyProperties(workerInfo, entity);
|
BeanUtil.copyProperties(workerInfo, entity);
|
||||||
workerInfoDeleteMapper.insert(entity);
|
workerInfoDeleteMapper.insert(entity);
|
||||||
|
|
||||||
|
//同步海康
|
||||||
|
asyncHikvision.deleteWorkerForHikvision(workerInfo);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkExistAccount(String id) {
|
private void checkExistAccount(String id) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user