bug修改
This commit is contained in:
parent
f8191ed40a
commit
62a107d1df
@ -8,9 +8,6 @@ import org.springframework.web.servlet.ModelAndView;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
/**
|
||||
* 日志拦截器
|
||||
*/
|
||||
@Slf4j
|
||||
public class ThreadLocalInterceptor implements HandlerInterceptor {
|
||||
|
||||
|
||||
@ -9,6 +9,7 @@ import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.zhgd.jeecg.common.api.vo.Result;
|
||||
import com.zhgd.jeecg.common.execption.OpenAlertException;
|
||||
import com.zhgd.redis.lock.RedisRepository;
|
||||
@ -40,11 +41,14 @@ import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.javacrumbs.shedlock.core.SchedulerLock;
|
||||
import org.apache.commons.collections.MapUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import springfox.documentation.annotations.ApiIgnore;
|
||||
|
||||
@ -283,6 +287,7 @@ public class HikvisionCall {
|
||||
@ApiImplicitParam(name = "endTime", value = "结束时间", paramType = "body", required = true, dataType = "String"),
|
||||
})
|
||||
@PostMapping(value = "/getDoorEvents")
|
||||
@Async
|
||||
public Result getDoorEvents(@ApiIgnore @RequestBody HashMap<String, Object> paramMap) {
|
||||
String startTime = MapUtils.getString(paramMap, "startTime");
|
||||
String endTime = MapUtils.getString(paramMap, "endTime");
|
||||
@ -296,9 +301,6 @@ public class HikvisionCall {
|
||||
.eq(Project::getSyncHikvision, 1);
|
||||
if (StringUtils.isNotBlank(projectSn)) {
|
||||
queryWrapper.eq(Project::getProjectSn, projectSn);
|
||||
if (!redisRepository.setNx("getDoorEvents:projectSn" + projectSn, 1000 * 30L)) {
|
||||
return Result.ok("正在同步中请耐心等待通知!");
|
||||
}
|
||||
}
|
||||
List<Project> projects = projectMapper.selectList(queryWrapper);
|
||||
if (CollUtil.isEmpty(projects)) {
|
||||
@ -411,6 +413,7 @@ public class HikvisionCall {
|
||||
@ApiImplicitParam(name = "endTime", value = "结束时间", paramType = "body", required = true, dataType = "String"),
|
||||
})
|
||||
@PostMapping(value = "/getCrossRecords")
|
||||
@Async
|
||||
public Result getCrossRecords(@ApiIgnore @RequestBody HashMap<String, Object> paramMap) {
|
||||
String startTime = MapUtils.getString(paramMap, "startTime");
|
||||
String endTime = MapUtils.getString(paramMap, "endTime");
|
||||
@ -424,9 +427,6 @@ public class HikvisionCall {
|
||||
.eq(Project::getSyncHikvision, 1);
|
||||
if (StringUtils.isNotBlank(projectSn)) {
|
||||
queryWrapper.eq(Project::getProjectSn, projectSn);
|
||||
if (!redisRepository.setNx("getCrossRecords:projectSn" + projectSn, 1000 * 30L)) {
|
||||
return Result.ok("正在同步中请耐心等待通知!");
|
||||
}
|
||||
}
|
||||
List<Project> projects = projectMapper.selectList(queryWrapper);
|
||||
if (CollUtil.isEmpty(projects)) {
|
||||
@ -540,6 +540,28 @@ public class HikvisionCall {
|
||||
return Result.ok("已在后台同步车辆通行数据,请耐心等待!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 定时一分钟获取海康数据
|
||||
*/
|
||||
@SchedulerLock(name = "getRecordForHikvision", lockAtMostFor = 1000 * 60 * 60, lockAtLeastFor = 1000 * 60 * 5)
|
||||
@Scheduled(cron = "0 0/1 * * * ?")
|
||||
@RequestMapping("getRecordForHikvision")
|
||||
public void getRecordForHikvision() {
|
||||
String startTime = DateUtil.formatDateTime(DateUtil.offsetMinute(new Date(), -2));
|
||||
String endTime = DateUtil.formatDateTime(new Date());
|
||||
List<Project> projects = projectMapper.selectList(new LambdaQueryWrapper<Project>()
|
||||
.eq(Project::getSyncHikvision, 1));
|
||||
for (Project project : projects) {
|
||||
log.info("定时获取海康记录,{}", project.getProjectName());
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
map.put("projectSn", project.getProjectSn());
|
||||
map.put("startTime", startTime);
|
||||
map.put("endTime", endTime);
|
||||
getDoorEvents(map);
|
||||
getCrossRecords(map);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 测试查询组织
|
||||
*
|
||||
@ -724,13 +746,18 @@ public class HikvisionCall {
|
||||
addWorkerFace(workerInfo, project);
|
||||
}
|
||||
|
||||
private void addWorkerFromHttp(WorkerInfo workerInfo, Project project) throws Exception {
|
||||
public void addWorkerFromHttp(WorkerInfo workerInfo, Project project) throws Exception {
|
||||
String rs = doAddWorkerFromHttp(workerInfo, project);
|
||||
sendNoticeForWorker("添加人员到海康isc", rs, workerInfo, 1, 1);
|
||||
}
|
||||
|
||||
public String doAddWorkerFromHttp(WorkerInfo workerInfo, Project project) throws Exception {
|
||||
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);
|
||||
String rs = HikvisionUtil.doPost(host, path, body, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
sendNoticeForWorker("添加人员到海康isc", rs, workerInfo, 1, 1);
|
||||
return rs;
|
||||
}
|
||||
|
||||
|
||||
@ -783,13 +810,18 @@ public class HikvisionCall {
|
||||
}
|
||||
}
|
||||
|
||||
private void editWorkerFromHttp(WorkerInfo workerInfo, Project project) throws Exception {
|
||||
public void editWorkerFromHttp(WorkerInfo workerInfo, Project project) throws Exception {
|
||||
String rs = doEditWorkerFromHttp(workerInfo, project);
|
||||
sendNoticeForWorker("更新人员到海康isc", rs, workerInfo, 1, 2);
|
||||
}
|
||||
|
||||
public String doEditWorkerFromHttp(WorkerInfo workerInfo, Project project) throws Exception {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v1/person/single/update";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
String body = getWorkerJson(workerInfo);
|
||||
String rs = HikvisionUtil.doPost(host, path, body, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
sendNoticeForWorker("更新人员到海康isc", rs, workerInfo, 1, 2);
|
||||
return rs;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -798,20 +830,25 @@ public class HikvisionCall {
|
||||
* @param workerInfo
|
||||
* @param project
|
||||
*/
|
||||
private void addWorkerFace(WorkerInfo workerInfo, Project project) throws Exception {
|
||||
public void addWorkerFace(WorkerInfo workerInfo, Project project) throws Exception {
|
||||
String fieldAcquisitionUrl = workerInfo.getFieldAcquisitionUrl();
|
||||
if (StringUtils.isNotBlank(fieldAcquisitionUrl)) {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v1/face/single/add";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("personId", String.valueOf(workerInfo.getId()));
|
||||
jo.put("faceData", Base64Util.convertFileToBase64(PathUtil.reviseSlash(basePath + "/" + fieldAcquisitionUrl)));
|
||||
String rs = HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
String rs = doAddWorkerFace(workerInfo, project);
|
||||
sendNoticeForWorker("添加人员照片到海康isc", rs, workerInfo, 2, 1);
|
||||
}
|
||||
}
|
||||
|
||||
public String doAddWorkerFace(WorkerInfo workerInfo, Project project) throws Exception {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v1/face/single/add";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("personId", String.valueOf(workerInfo.getId()));
|
||||
jo.put("faceData", Base64Util.convertFileToBase64(PathUtil.reviseSlash(basePath + "/" + workerInfo.getFieldAcquisitionUrl())));
|
||||
String rs = HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
return rs;
|
||||
}
|
||||
|
||||
private void sendNoticeForCarInfo(String title, String rs, CarInfo carInfo) {
|
||||
if (StringUtils.isBlank(rs)) {
|
||||
return;
|
||||
@ -909,6 +946,37 @@ public class HikvisionCall {
|
||||
}
|
||||
xzHikvisionSync.setIsSuccess(1);
|
||||
xzHikvisionSyncMapper.updateById(xzHikvisionSync);
|
||||
|
||||
Integer fail = xzHikvisionSyncMapper.selectCount(new LambdaQueryWrapper<XzHikvisionSync>()
|
||||
.eq(XzHikvisionSync::getProjectSn, projectSn)
|
||||
.eq(XzHikvisionSync::getWhoId, whoId)
|
||||
.eq(XzHikvisionSync::getCreateDate, now)
|
||||
.eq(XzHikvisionSync::getIsSuccess, 0)
|
||||
);
|
||||
if (fail == 0) {
|
||||
workerInfoMapper.update(null, new LambdaUpdateWrapper<WorkerInfo>()
|
||||
.eq(WorkerInfo::getId, whoId)
|
||||
.set(WorkerInfo::getSendSuccessStatus, 1)
|
||||
);
|
||||
} else {
|
||||
Integer sc = xzHikvisionSyncMapper.selectCount(new LambdaQueryWrapper<XzHikvisionSync>()
|
||||
.eq(XzHikvisionSync::getProjectSn, projectSn)
|
||||
.eq(XzHikvisionSync::getWhoId, whoId)
|
||||
.eq(XzHikvisionSync::getCreateDate, now)
|
||||
.eq(XzHikvisionSync::getIsSuccess, 1)
|
||||
);
|
||||
if (sc == 0) {
|
||||
workerInfoMapper.update(null, new LambdaUpdateWrapper<WorkerInfo>()
|
||||
.eq(WorkerInfo::getId, whoId)
|
||||
.set(WorkerInfo::getSendSuccessStatus, 2)
|
||||
);
|
||||
} else {
|
||||
workerInfoMapper.update(null, new LambdaUpdateWrapper<WorkerInfo>()
|
||||
.eq(WorkerInfo::getId, whoId)
|
||||
.set(WorkerInfo::getSendSuccessStatus, 3)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -949,7 +1017,12 @@ public class HikvisionCall {
|
||||
deleteWorkerFromHttp(workerInfo, project);
|
||||
}
|
||||
|
||||
private void deleteWorkerFromHttp(WorkerInfo workerInfo, Project project) throws Exception {
|
||||
public void deleteWorkerFromHttp(WorkerInfo workerInfo, Project project) throws Exception {
|
||||
String rs = doDeleteWorkerFromHttp(workerInfo, project);
|
||||
sendNoticeForWorker("删除人员到海康isc", rs, workerInfo, 1, 3);
|
||||
}
|
||||
|
||||
public String doDeleteWorkerFromHttp(WorkerInfo workerInfo, Project project) throws Exception {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v1/person/batch/delete";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
@ -957,7 +1030,7 @@ public class HikvisionCall {
|
||||
jsonBody.put("personIds", Arrays.asList(workerInfo.getId()));
|
||||
String body = jsonBody.toJSONString();
|
||||
String rs = HikvisionUtil.doPost(host, path, body, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
sendNoticeForWorker("删除人员到海康isc", rs, workerInfo, 1, 3);
|
||||
return rs;
|
||||
}
|
||||
|
||||
private void deleteWorkerFace(WorkerInfo workerInfo, Project project) throws Exception {
|
||||
@ -1024,9 +1097,6 @@ public class HikvisionCall {
|
||||
jo.put("paramName", "personId");
|
||||
jo.put("paramValue", Arrays.asList(String.valueOf(workerInfo.getId())));
|
||||
String rs = HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
if (rs == null) {
|
||||
throw new OpenAlertException("海康查询人员网络异常,名称:" + workerInfo.getWorkerName());
|
||||
}
|
||||
JSONObject joData = HikvisionUtil.getJSONObjectData(rs);
|
||||
if (joData != null) {
|
||||
Integer total = joData.getInteger("total");
|
||||
|
||||
@ -198,7 +198,7 @@ public class HiddenDangerInspectRecordServiceImpl extends ServiceImpl<HiddenDang
|
||||
return;
|
||||
}
|
||||
Double ds = item.getDeductScore();
|
||||
if (ds == null) {
|
||||
if (ds == null || ds == 0) {
|
||||
return;
|
||||
}
|
||||
Long changeUser = hiddenDangerInspectRecord.getChangeUser();
|
||||
|
||||
@ -472,7 +472,7 @@ public class AiAnalyseHardWareAlarmRecordServiceImpl extends ServiceImpl<AiAnaly
|
||||
workerInfoToAiAnalyseHardWareAlarmRecordMapper.insert(entity);
|
||||
//扣分
|
||||
Double deductScore = taskProgressMaterialRel.getDeductScore();
|
||||
if (deductScore == null) {
|
||||
if (deductScore == null || deductScore == 0) {
|
||||
return;
|
||||
}
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
|
||||
@ -1,27 +1,23 @@
|
||||
package com.zhgd.xmgl.modules.xz.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.zhgd.jeecg.common.api.vo.Result;
|
||||
import com.zhgd.xmgl.modules.xz.entity.XzHikvisionSync;
|
||||
import com.zhgd.xmgl.modules.xz.service.IXzHikvisionSyncService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import springfox.documentation.annotations.ApiIgnore;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.zhgd.jeecg.common.api.vo.Result;
|
||||
import org.apache.commons.collections.MapUtils;
|
||||
|
||||
import org.simpleframework.xml.core.Validate;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import org.apache.commons.collections.MapUtils;
|
||||
import org.simpleframework.xml.core.Validate;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import springfox.documentation.annotations.ApiIgnore;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
/**
|
||||
@ -65,6 +61,12 @@ public class XzHikvisionSyncController {
|
||||
return Result.success(xzHikvisionSyncService.queryList(paramMap));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "查询最新一波星纵-海康同步数据信息", notes = "查询最新一波星纵-海康同步数据信息", httpMethod = "POST")
|
||||
@PostMapping(value = "/getNewestList")
|
||||
public Result<List<XzHikvisionSync>> getNewestList(@ApiIgnore @RequestBody HashMap<String, Object> paramMap) {
|
||||
return Result.success(xzHikvisionSyncService.getNewestList(paramMap));
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加
|
||||
*
|
||||
@ -125,4 +127,11 @@ public class XzHikvisionSyncController {
|
||||
return result;
|
||||
}
|
||||
|
||||
@ApiOperation(value = "重试", notes = "重试", httpMethod = "POST")
|
||||
@ApiImplicitParam(name = "id", value = "星纵-海康同步数据ID", paramType = "query", required = true, dataType = "Long")
|
||||
@PostMapping(value = "/retry")
|
||||
public Result retry(@ApiIgnore @RequestBody Map<String, Object> paramMap) throws Exception {
|
||||
xzHikvisionSyncService.retry(paramMap);
|
||||
return Result.ok();
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,18 +1,18 @@
|
||||
package com.zhgd.xmgl.modules.xz.entity;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Description: 星纵-海康同步数据
|
||||
@ -72,17 +72,24 @@ public class XzHikvisionSync implements Serializable {
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss.SSS")
|
||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss.SSS")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS")
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private java.util.Date createDate;
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@Excel(name = "更新时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "更新时间", width = 20, format = "yyyy-MM-dd HH:mm:ss.SSS")
|
||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss.SSS")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS")
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
private java.util.Date updateDate;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "详情")
|
||||
private java.lang.String detail;
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "设备名称")
|
||||
private java.lang.String devName;
|
||||
}
|
||||
|
||||
@ -4,6 +4,9 @@ import org.apache.ibatis.annotations.Mapper;
|
||||
import com.zhgd.xmgl.modules.xz.entity.XzHikvisionSync;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 星纵-海康同步数据
|
||||
* @author: pds
|
||||
@ -13,4 +16,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
@Mapper
|
||||
public interface XzHikvisionSyncMapper extends BaseMapper<XzHikvisionSync> {
|
||||
|
||||
List<XzHikvisionSync> getNewestList(HashMap<String, Object> paramMap);
|
||||
}
|
||||
|
||||
@ -1,4 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.zhgd.xmgl.modules.xz.mapper.XzHikvisionSyncMapper">
|
||||
<select id="getNewestList" resultType="com.zhgd.xmgl.modules.xz.entity.XzHikvisionSync">
|
||||
select t1.*,dev_name from xz_hikvision_sync t1
|
||||
join (select max( create_date ) create_date,who_id from xz_hikvision_sync where who_id = #{whoId}) t2 on
|
||||
t1.create_date=t2.create_date and t1.who_id=t2.who_id
|
||||
left join uface_dev ud on t1.device_sn = ud.dev_sn
|
||||
where t1.who_id = #{whoId}
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Description: 星纵-海康同步数据
|
||||
@ -24,4 +25,8 @@ public interface IXzHikvisionSyncService extends IService<XzHikvisionSync> {
|
||||
void edit(XzHikvisionSync xzHikvisionSync);
|
||||
|
||||
void delete(String id);
|
||||
|
||||
List<XzHikvisionSync> getNewestList(HashMap<String, Object> paramMap);
|
||||
|
||||
void retry(Map<String, Object> paramMap) throws Exception;
|
||||
}
|
||||
|
||||
@ -1,23 +1,34 @@
|
||||
package com.zhgd.xmgl.modules.xz.service.impl;
|
||||
|
||||
import com.zhgd.jeecg.common.execption.OpenAlertException;
|
||||
import com.zhgd.xmgl.modules.xz.entity.XzHikvisionSync;
|
||||
import com.zhgd.xmgl.modules.xz.mapper.XzHikvisionSyncMapper;
|
||||
import com.zhgd.xmgl.modules.xz.service.IXzHikvisionSyncService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
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.zhgd.jeecg.common.system.query.QueryGenerator;
|
||||
import com.zhgd.xmgl.util.PageUtil;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.zhgd.jeecg.common.execption.OpenAlertException;
|
||||
import com.zhgd.jeecg.common.system.query.QueryGenerator;
|
||||
import com.zhgd.xmgl.call.HikvisionCall;
|
||||
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.mapper.WorkerInfoMapper;
|
||||
import com.zhgd.xmgl.modules.xz.entity.XzHikvisionSync;
|
||||
import com.zhgd.xmgl.modules.xz.mapper.XzHikvisionSyncMapper;
|
||||
import com.zhgd.xmgl.modules.xz.service.IXzHikvisionSyncService;
|
||||
import com.zhgd.xmgl.util.PageUtil;
|
||||
import com.zhgd.xmgl.util.RefUtil;
|
||||
import com.zhgd.xmgl.util.ThreadLocalUtil;
|
||||
import org.apache.commons.collections.MapUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Propagation;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import com.zhgd.xmgl.util.RefUtil;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Description: 星纵-海康同步数据
|
||||
@ -28,8 +39,14 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
@Service
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public class XzHikvisionSyncServiceImpl extends ServiceImpl<XzHikvisionSyncMapper, XzHikvisionSync> implements IXzHikvisionSyncService {
|
||||
@Autowired
|
||||
private HikvisionCall hikvisionCall;
|
||||
@Autowired
|
||||
private XzHikvisionSyncMapper xzHikvisionSyncMapper;
|
||||
@Autowired
|
||||
private WorkerInfoMapper workerInfoMapper;
|
||||
@Autowired
|
||||
private ProjectMapper projectMapper;
|
||||
|
||||
@Override
|
||||
public IPage<XzHikvisionSync> queryPageList(HashMap<String, Object> paramMap) {
|
||||
@ -81,5 +98,120 @@ public class XzHikvisionSyncServiceImpl extends ServiceImpl<XzHikvisionSyncMappe
|
||||
baseMapper.deleteById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<XzHikvisionSync> getNewestList(HashMap<String, Object> paramMap) {
|
||||
List<XzHikvisionSync> newestList = baseMapper.getNewestList(paramMap);
|
||||
for (XzHikvisionSync xzHikvisionSync : newestList) {
|
||||
Integer operate = xzHikvisionSync.getOperate();
|
||||
Integer type = xzHikvisionSync.getType();
|
||||
Integer isSuccess = xzHikvisionSync.getIsSuccess();
|
||||
String devName = xzHikvisionSync.getDevName();
|
||||
String deviceSn = xzHikvisionSync.getDeviceSn();
|
||||
if (StrUtil.isBlank(deviceSn)) {
|
||||
xzHikvisionSync.setDetail(StrUtil.format("{}{}到ISC{}", getOperateName(operate), getTypeName(type), getIsSuccessName(isSuccess)));
|
||||
} else {
|
||||
xzHikvisionSync.setDetail(StrUtil.format("{}{}到{}{}", getOperateNameForDev(operate), getTypeName(type), devName, getIsSuccessName(isSuccess)));
|
||||
}
|
||||
}
|
||||
return newestList;
|
||||
}
|
||||
|
||||
private String getIsSuccessName(Integer isSuccess) {
|
||||
return isSuccess == 1 ? "成功" : "失败";
|
||||
}
|
||||
|
||||
private String getTypeName(Integer type) {
|
||||
switch (type) {
|
||||
case 1:
|
||||
return "人员";
|
||||
case 2:
|
||||
return "人员照片";
|
||||
case 3:
|
||||
return "人员权限";
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private String getOperateNameForDev(Integer operate) {
|
||||
switch (operate) {
|
||||
case 1:
|
||||
return "下发";
|
||||
case 3:
|
||||
return "取消下发";
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private String getOperateName(Integer operate) {
|
||||
switch (operate) {
|
||||
case 1:
|
||||
return "新增";
|
||||
case 2:
|
||||
return "修改";
|
||||
case 3:
|
||||
return "删除";
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(propagation = Propagation.NOT_SUPPORTED)
|
||||
public void retry(Map<String, Object> paramMap) throws Exception {
|
||||
Long id = MapUtils.getLong(paramMap, "id");
|
||||
XzHikvisionSync xzHikvisionSync = baseMapper.selectById(id);
|
||||
if (xzHikvisionSync == null) {
|
||||
throw new OpenAlertException("未找到对应实体");
|
||||
}
|
||||
Long whoId = xzHikvisionSync.getWhoId();
|
||||
WorkerInfo workerInfo = workerInfoMapper.selectById(whoId);
|
||||
Project p = projectMapper.selectOne(new LambdaQueryWrapper<Project>()
|
||||
.eq(Project::getProjectSn, workerInfo.getProjectSn())
|
||||
.eq(Project::getSyncHikvision, 1)
|
||||
);
|
||||
if (workerInfo == null) {
|
||||
return;
|
||||
}
|
||||
if (p == null) {
|
||||
return;
|
||||
}
|
||||
if (xzHikvisionSync.getType() == 1) {
|
||||
if (xzHikvisionSync.getOperate() == 1) {
|
||||
hikvisionCall.addWorkerFromHttp(workerInfo, p);
|
||||
} else if (xzHikvisionSync.getOperate() == 2) {
|
||||
hikvisionCall.editWorkerFromHttp(workerInfo, p);
|
||||
} else if (xzHikvisionSync.getOperate() == 3) {
|
||||
hikvisionCall.deleteWorkerFromHttp(workerInfo, p);
|
||||
}
|
||||
} else if (xzHikvisionSync.getType() == 2) {
|
||||
if (xzHikvisionSync.getOperate() == 1) {
|
||||
hikvisionCall.addWorkerFace(workerInfo, p);
|
||||
} else if (xzHikvisionSync.getOperate() == 2) {
|
||||
hikvisionCall.editWorkerFromHttp(workerInfo, p);
|
||||
} else if (xzHikvisionSync.getOperate() == 3) {
|
||||
hikvisionCall.deleteWorkerFromHttp(workerInfo, p);
|
||||
}
|
||||
} else if (xzHikvisionSync.getType() == 3) {
|
||||
StringBuilder sucSb = new StringBuilder();
|
||||
StringBuilder failSb = new StringBuilder();
|
||||
if (xzHikvisionSync.getOperate() == 1) {
|
||||
hikvisionCall.updatePersonAuth(workerInfo, xzHikvisionSync.getDeviceSn(), sucSb, failSb, 0);
|
||||
} else if (xzHikvisionSync.getOperate() == 3) {
|
||||
hikvisionCall.updatePersonAuth(workerInfo, xzHikvisionSync.getDeviceSn(), sucSb, failSb, 2);
|
||||
}
|
||||
}
|
||||
|
||||
XzHikvisionSync xzHikvisionSync1 = baseMapper.selectById(id);
|
||||
if (xzHikvisionSync1.getIsSuccess() == 0) {
|
||||
throw new OpenAlertException("重试失败");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
Date val = new Date();
|
||||
ThreadLocalUtil.addInKey("now", val);
|
||||
Date now = ThreadLocalUtil.getNotNull().getDate("now");
|
||||
System.out.println(val == now);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user