bug修改

This commit is contained in:
guoshengxiong 2024-04-28 01:03:35 +08:00
parent f8191ed40a
commit 62a107d1df
10 changed files with 297 additions and 66 deletions

View File

@ -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 {

View File

@ -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");

View File

@ -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();

View File

@ -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<>();

View File

@ -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();
}
}

View File

@ -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;
}

View File

@ -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);
}

View File

@ -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>

View File

@ -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;
}

View File

@ -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);
}
}