校验数据修改
This commit is contained in:
parent
afb7e04321
commit
1d8e375ae7
@ -17,6 +17,7 @@ import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
|
||||
import com.zhgd.xmgl.modules.worker.mapper.EnterpriseInfoMapper;
|
||||
import com.zhgd.xmgl.modules.worker.service.impl.WorkerInfoServiceImpl;
|
||||
import com.zhgd.xmgl.modules.x.mapper.XzHikvisionCompareDataMapper;
|
||||
import com.zhgd.xmgl.modules.x.service.impl.XzHikvisionCompareDataServiceImpl;
|
||||
import com.zhgd.xmgl.modules.xz.entity.XzHikvisionSync;
|
||||
import com.zhgd.xmgl.modules.xz.mapper.XzHikvisionSyncMapper;
|
||||
import com.zhgd.xmgl.security.util.SecurityUtils;
|
||||
@ -67,6 +68,9 @@ public class AsyncHikvision {
|
||||
@Lazy
|
||||
@Autowired
|
||||
private XzHikvisionCompareDataMapper xzHikvisionCompareDataMapper;
|
||||
@Lazy
|
||||
@Autowired
|
||||
private XzHikvisionCompareDataServiceImpl xzHikvisionCompareDataService;
|
||||
|
||||
public static Date getSyncLotNowOrSetIfNull() {
|
||||
Date now = ThreadLocalUtil.getNotNull().getDate("now");
|
||||
@ -285,7 +289,7 @@ public class AsyncHikvision {
|
||||
if (SecurityUtils.getUser() != null && SecurityUtils.getUser().getUserId() != null) {
|
||||
noticeService.addUserNotice(SecurityUtils.getUser().getUserId(), msg, title, type);
|
||||
}
|
||||
hikvisionCall.compareRetryFail();
|
||||
xzHikvisionCompareDataService.compareRetryFail();
|
||||
}
|
||||
|
||||
@Async("carInfoExecutor")
|
||||
|
||||
@ -0,0 +1,10 @@
|
||||
package com.zhgd.xmgl.async;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Slf4j
|
||||
@Component
|
||||
public class AsyncXzHikvisionCompareData {
|
||||
|
||||
}
|
||||
@ -51,8 +51,8 @@ import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoMapper;
|
||||
import com.zhgd.xmgl.modules.worker.service.IWorkerAttendancePresenceService;
|
||||
import com.zhgd.xmgl.modules.worker.service.IWorkerAttendanceService;
|
||||
import com.zhgd.xmgl.modules.worker.service.impl.WorkerAttendanceServiceImpl;
|
||||
import com.zhgd.xmgl.modules.x.entity.XzHikvisionCompareData;
|
||||
import com.zhgd.xmgl.modules.x.mapper.XzHikvisionCompareDataMapper;
|
||||
import com.zhgd.xmgl.modules.x.service.IXzHikvisionCompareDataService;
|
||||
import com.zhgd.xmgl.modules.xz.entity.XzHikvisionSync;
|
||||
import com.zhgd.xmgl.modules.xz.mapper.XzHikvisionSyncMapper;
|
||||
import com.zhgd.xmgl.modules.xz.service.impl.XzHikvisionSyncServiceImpl;
|
||||
@ -173,6 +173,10 @@ public class HikvisionCall {
|
||||
@Autowired
|
||||
private FrontierProtectionNoNetDataServiceImpl frontierProtectionNoNetDataService;
|
||||
|
||||
@Lazy
|
||||
@Autowired
|
||||
private IXzHikvisionCompareDataService xzHikvisionCompareDataService;
|
||||
|
||||
|
||||
/**
|
||||
* 获取图片
|
||||
@ -1083,9 +1087,9 @@ public class HikvisionCall {
|
||||
title += "失败";
|
||||
}
|
||||
if (success) {
|
||||
this.compareRetrySuc();
|
||||
xzHikvisionCompareDataService.compareRetrySuc();
|
||||
} else {
|
||||
this.compareRetryFail();
|
||||
xzHikvisionCompareDataService.compareRetryFail();
|
||||
}
|
||||
if (SecurityUtils.getUser() != null && SecurityUtils.getUser().getUserId() != null) {
|
||||
noticeService.addUserNotice(SecurityUtils.getUser().getUserId(), msg, title, type);
|
||||
@ -2285,24 +2289,6 @@ public class HikvisionCall {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询车辆列表v2
|
||||
*
|
||||
* @param project
|
||||
*/
|
||||
public void getCarList(Project project) throws Exception {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return;
|
||||
}
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v2/vehicle/advance/vehicleList";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("pageNo", 1);
|
||||
jo.put("pageSize", 1000);
|
||||
HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
}
|
||||
|
||||
|
||||
public String saveToLocal(String url) {
|
||||
if (StringUtils.isBlank(url)) {
|
||||
@ -2590,25 +2576,20 @@ public class HikvisionCall {
|
||||
}
|
||||
|
||||
/**
|
||||
* 数据校验重试失败
|
||||
* 获取组织下人员列表v2
|
||||
*
|
||||
* @param project
|
||||
* @return
|
||||
*/
|
||||
public void compareRetryFail() {
|
||||
JSONObject tlJo = ThreadLocalUtil.getByKey(Cts.TL_XZ_HIKVISION_COMPARE_DATA_RETRY);
|
||||
if (tlJo != null) {
|
||||
XzHikvisionCompareData data = BeanUtil.toBean(tlJo, XzHikvisionCompareData.class);
|
||||
data.setSyncResult(2);
|
||||
xzHikvisionCompareDataMapper.updateById(data);
|
||||
public JSONObject getWorkerListByOrg(Project project, JSONObject param) throws Exception {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return null;
|
||||
}
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v2/person/orgIndexCode/personList";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
return JSON.parseObject(HikvisionUtil.doPost(host, path, JSON.toJSONString(param), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 数据校验重试成功
|
||||
*/
|
||||
public void compareRetrySuc() {
|
||||
JSONObject tlJo = ThreadLocalUtil.getByKey(Cts.TL_XZ_HIKVISION_COMPARE_DATA_RETRY);
|
||||
if (tlJo != null) {
|
||||
XzHikvisionCompareData data = BeanUtil.toBean(tlJo, XzHikvisionCompareData.class);
|
||||
xzHikvisionCompareDataMapper.deleteById(data.getId());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -367,7 +367,7 @@ public class AsyncConfig {
|
||||
/** 线程池名前缀 */
|
||||
executor.setThreadNamePrefix("carInfoExecutor-");
|
||||
// 线程池对拒绝任务的处理策略
|
||||
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
|
||||
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.AbortPolicy());
|
||||
// 初始化
|
||||
executor.initialize();
|
||||
return executor;
|
||||
@ -453,7 +453,7 @@ public class AsyncConfig {
|
||||
public MdcThreadPoolTaskExecutor saveEventCallbackAiAsync() {
|
||||
MdcThreadPoolTaskExecutor executor = new MdcThreadPoolTaskExecutor();
|
||||
/** 核心线程数(默认线程数) */
|
||||
executor.setCorePoolSize(maxPoolSize);
|
||||
executor.setCorePoolSize(corePoolSize);
|
||||
/** 最大线程数 */
|
||||
executor.setMaxPoolSize(maxPoolSize);
|
||||
executor.setQueueCapacity(100000);
|
||||
@ -472,7 +472,7 @@ public class AsyncConfig {
|
||||
public MdcThreadPoolTaskExecutor getRecordForHikvisionTask() {
|
||||
MdcThreadPoolTaskExecutor executor = new MdcThreadPoolTaskExecutor();
|
||||
/** 核心线程数(默认线程数) */
|
||||
executor.setCorePoolSize(160);
|
||||
executor.setCorePoolSize(1);
|
||||
/** 最大线程数 */
|
||||
executor.setMaxPoolSize(160);
|
||||
executor.setQueueCapacity(100000);
|
||||
@ -487,5 +487,24 @@ public class AsyncConfig {
|
||||
return executor;
|
||||
}
|
||||
|
||||
@Bean("syncXzHikvisionCompareData")
|
||||
public MdcThreadPoolTaskExecutor syncXzHikvisionCompareData() {
|
||||
MdcThreadPoolTaskExecutor executor = new MdcThreadPoolTaskExecutor();
|
||||
/** 核心线程数(默认线程数) */
|
||||
executor.setCorePoolSize(2);
|
||||
/** 最大线程数 */
|
||||
executor.setMaxPoolSize(2);
|
||||
executor.setQueueCapacity(10);
|
||||
/** 允许线程空闲时间(单位:默认为秒) */
|
||||
executor.setKeepAliveSeconds(60);
|
||||
/** 线程池名前缀 */
|
||||
executor.setThreadNamePrefix("syncXzHikvisionCompareData-");
|
||||
// 线程池对拒绝任务的处理策略
|
||||
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.AbortPolicy());
|
||||
// 初始化
|
||||
executor.initialize();
|
||||
return executor;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -22,4 +22,6 @@ public interface Cts {
|
||||
* 数据校验重试是否成功
|
||||
*/
|
||||
String TL_XZ_HIKVISION_COMPARE_DATA_RETRY = "tl_xz_hikvision_compare_data";
|
||||
String TYPE = "type";
|
||||
String TEAM_ID = "teamId";
|
||||
}
|
||||
|
||||
@ -19,12 +19,16 @@ import org.apache.ibatis.annotations.Select;
|
||||
/**
|
||||
* @Description: 人员班组
|
||||
* @author: pds
|
||||
* @date: 2020-08-13
|
||||
* @date: 2020-08-13
|
||||
* @version: V1.0
|
||||
*/
|
||||
@Mapper
|
||||
public interface TeamInfoMapper extends BaseMapper<TeamInfo> {
|
||||
|
||||
/**
|
||||
* 查询企业下的班组列表
|
||||
* @param map
|
||||
* @return
|
||||
*/
|
||||
List<TeamInfo> getTeamInfoList(Map<String, Object> map);
|
||||
|
||||
EntityMap selectTeamInfoById(@Param("teamId") Long teamId);
|
||||
@ -33,7 +37,7 @@ public interface TeamInfoMapper extends BaseMapper<TeamInfo> {
|
||||
|
||||
List<Map<String, Object>> selectEnterpriseTeamList(Map<String, Object> map);
|
||||
|
||||
EntityMap getTeamInfo(@Param("teamId")Long teamId);
|
||||
EntityMap getTeamInfo(@Param("teamId") Long teamId);
|
||||
|
||||
List<EntityMap> selectTeamInfoBySnList(@Param("projectSn") String projectSn);
|
||||
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
package com.zhgd.xmgl.modules.worker.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.zhgd.jeecg.common.mybatis.EntityMap;
|
||||
import com.zhgd.xmgl.modules.worker.entity.TeamInfo;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.zhgd.xmgl.modules.worker.entity.dto.ModGroupDto;
|
||||
|
||||
import java.util.List;
|
||||
@ -11,7 +11,7 @@ import java.util.Map;
|
||||
/**
|
||||
* @Description: 人员班组
|
||||
* @author: pds
|
||||
* @date: 2020-08-13
|
||||
* @date: 2020-08-13
|
||||
* @version: V1.0
|
||||
*/
|
||||
public interface ITeamInfoService extends IService<TeamInfo> {
|
||||
@ -20,8 +20,14 @@ public interface ITeamInfoService extends IService<TeamInfo> {
|
||||
|
||||
void bathDeleteTeamInfo(String projectSn);
|
||||
|
||||
Map<String,Object> getTeamInfoList(Map<String, Object> map);
|
||||
Map<String, Object> getTeamInfoList(Map<String, Object> map);
|
||||
|
||||
/**
|
||||
* 查询列表
|
||||
*
|
||||
* @param map
|
||||
* @return
|
||||
*/
|
||||
List<TeamInfo> getProjectTeamList(Map<String, Object> map);
|
||||
|
||||
TeamInfo editTeamInfo(TeamInfo teamInfo);
|
||||
|
||||
@ -1,49 +1,24 @@
|
||||
package com.zhgd.xmgl.modules.x.controller;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
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.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.io.IOException;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.net.URLDecoder;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.zhgd.jeecg.common.api.vo.Result;
|
||||
import com.zhgd.jeecg.common.system.query.QueryGenerator;
|
||||
import com.zhgd.jeecg.common.util.oConvertUtils;
|
||||
import org.apache.commons.collections.MapUtils;
|
||||
import com.zhgd.xmgl.modules.x.entity.XzHikvisionCompareData;
|
||||
import com.zhgd.xmgl.modules.x.service.IXzHikvisionCompareDataService;
|
||||
|
||||
import org.simpleframework.xml.core.Validate;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import org.jeecgframework.poi.excel.ExcelImportUtil;
|
||||
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
|
||||
import org.jeecgframework.poi.excel.entity.ExportParams;
|
||||
import org.jeecgframework.poi.excel.entity.ImportParams;
|
||||
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
|
||||
|
||||
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 org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import springfox.documentation.annotations.ApiIgnore;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
/**
|
||||
@ -58,93 +33,102 @@ import com.alibaba.fastjson.JSON;
|
||||
@Slf4j
|
||||
@Api(tags = "星纵-海康数据校验失败记录相关Api")
|
||||
public class XzHikvisionCompareDataController {
|
||||
@Autowired
|
||||
private IXzHikvisionCompareDataService xzHikvisionCompareDataService;
|
||||
@Autowired
|
||||
private IXzHikvisionCompareDataService xzHikvisionCompareDataService;
|
||||
|
||||
/**
|
||||
* 分页列表查询
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "分页列表查询星纵-海康数据校验失败记录信息", notes = "分页列表查询星纵-海康数据校验失败记录信息", httpMethod = "GET")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"),
|
||||
})
|
||||
@GetMapping(value = "/page")
|
||||
public Result<IPage<XzHikvisionCompareData>> queryPageList(@ApiIgnore @RequestParam HashMap<String, Object> param) {
|
||||
return Result.success(xzHikvisionCompareDataService.queryPageList(param));
|
||||
}
|
||||
/**
|
||||
* 分页列表查询
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "分页列表查询星纵-海康数据校验失败记录信息", notes = "分页列表查询星纵-海康数据校验失败记录信息", httpMethod = "GET")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"),
|
||||
@ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"),
|
||||
})
|
||||
@GetMapping(value = "/page")
|
||||
public Result<IPage<XzHikvisionCompareData>> queryPageList(@ApiIgnore @RequestParam HashMap<String, Object> param) {
|
||||
return Result.success(xzHikvisionCompareDataService.queryPageList(param));
|
||||
}
|
||||
|
||||
/**
|
||||
* 列表查询
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "列表查询星纵-海康数据校验失败记录信息", notes = "列表查询星纵-海康数据校验失败记录信息", httpMethod = "GET")
|
||||
@GetMapping(value = "/list")
|
||||
public Result<List<XzHikvisionCompareData>> queryList(@ApiIgnore @RequestParam HashMap<String, Object> param) {
|
||||
return Result.success(xzHikvisionCompareDataService.queryList(param));
|
||||
}
|
||||
/**
|
||||
* 列表查询
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "列表查询星纵-海康数据校验失败记录信息", notes = "列表查询星纵-海康数据校验失败记录信息", httpMethod = "GET")
|
||||
@GetMapping(value = "/list")
|
||||
public Result<List<XzHikvisionCompareData>> queryList(@ApiIgnore @RequestParam HashMap<String, Object> param) {
|
||||
return Result.success(xzHikvisionCompareDataService.queryList(param));
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加
|
||||
*
|
||||
* @param xzHikvisionCompareData
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "添加星纵-海康数据校验失败记录信息", notes = "添加星纵-海康数据校验失败记录信息", httpMethod = "POST")
|
||||
@PostMapping(value = "/add")
|
||||
public Result<XzHikvisionCompareData> add(@RequestBody @Validate XzHikvisionCompareData xzHikvisionCompareData) {
|
||||
xzHikvisionCompareDataService.add(xzHikvisionCompareData);
|
||||
return Result.ok();
|
||||
}
|
||||
/**
|
||||
* 添加
|
||||
*
|
||||
* @param xzHikvisionCompareData
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "添加星纵-海康数据校验失败记录信息", notes = "添加星纵-海康数据校验失败记录信息", httpMethod = "POST")
|
||||
@PostMapping(value = "/add")
|
||||
public Result<XzHikvisionCompareData> add(@RequestBody @Validate XzHikvisionCompareData xzHikvisionCompareData) {
|
||||
xzHikvisionCompareDataService.add(xzHikvisionCompareData);
|
||||
return Result.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param xzHikvisionCompareData
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "编辑星纵-海康数据校验失败记录信息", notes = "编辑星纵-海康数据校验失败记录信息", httpMethod = "POST")
|
||||
@PostMapping(value = "/edit")
|
||||
public Result<XzHikvisionCompareData> edit(@RequestBody XzHikvisionCompareData xzHikvisionCompareData) {
|
||||
xzHikvisionCompareDataService.edit(xzHikvisionCompareData);
|
||||
return Result.ok();
|
||||
}
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param xzHikvisionCompareData
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "编辑星纵-海康数据校验失败记录信息", notes = "编辑星纵-海康数据校验失败记录信息", httpMethod = "POST")
|
||||
@PostMapping(value = "/edit")
|
||||
public Result<XzHikvisionCompareData> edit(@RequestBody XzHikvisionCompareData xzHikvisionCompareData) {
|
||||
xzHikvisionCompareDataService.edit(xzHikvisionCompareData);
|
||||
return Result.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过id删除
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "删除星纵-海康数据校验失败记录信息", notes = "删除星纵-海康数据校验失败记录信息", httpMethod = "POST")
|
||||
@ApiImplicitParam(name = "id", value = "星纵-海康数据校验失败记录ID", paramType = "body", required = true, dataType = "String", example = "{\"id\":\"1\"}")
|
||||
@PostMapping(value = "/delete")
|
||||
public Result<XzHikvisionCompareData> delete(@ApiIgnore @RequestBody HashMap<String, Object> map) {
|
||||
xzHikvisionCompareDataService.delete(MapUtils.getString(map, "id"));
|
||||
return Result.ok();
|
||||
}
|
||||
/**
|
||||
* 通过id删除
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "删除星纵-海康数据校验失败记录信息", notes = "删除星纵-海康数据校验失败记录信息", httpMethod = "POST")
|
||||
@ApiImplicitParam(name = "id", value = "星纵-海康数据校验失败记录ID", paramType = "body", required = true, dataType = "String", example = "{\"id\":\"1\"}")
|
||||
@PostMapping(value = "/delete")
|
||||
public Result<XzHikvisionCompareData> delete(@ApiIgnore @RequestBody HashMap<String, Object> map) {
|
||||
xzHikvisionCompareDataService.delete(MapUtils.getString(map, "id"));
|
||||
return Result.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过id查询
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "通过id查询星纵-海康数据校验失败记录信息", notes = "通过id查询星纵-海康数据校验失败记录信息", httpMethod = "GET")
|
||||
@ApiImplicitParam(name = "id", value = "星纵-海康数据校验失败记录ID", paramType = "query", required = true, dataType = "Integer")
|
||||
@GetMapping(value = "/queryById")
|
||||
public Result<XzHikvisionCompareData> queryById(@RequestParam(name = "id", required = true) String id) {
|
||||
return Result.success(xzHikvisionCompareDataService.queryById(id));
|
||||
}
|
||||
/**
|
||||
* 通过id查询
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "通过id查询星纵-海康数据校验失败记录信息", notes = "通过id查询星纵-海康数据校验失败记录信息", httpMethod = "GET")
|
||||
@ApiImplicitParam(name = "id", value = "星纵-海康数据校验失败记录ID", paramType = "query", required = true, dataType = "Integer")
|
||||
@GetMapping(value = "/queryById")
|
||||
public Result<XzHikvisionCompareData> queryById(@RequestParam(name = "id", required = true) String id) {
|
||||
return Result.success(xzHikvisionCompareDataService.queryById(id));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "同步或重试", notes = "同步或重试", httpMethod = "GET")
|
||||
@ApiImplicitParam(name = "ids", value = "星纵-海康数据校验失败记录ID(多个逗号分割)", paramType = "body", required = true, dataType = "String")
|
||||
@GetMapping(value = "/sync")
|
||||
public Result sync(@ApiIgnore @RequestBody HashMap<String, Object> map) throws Exception {
|
||||
xzHikvisionCompareDataService.sync(MapUtils.getString(map, "ids"));
|
||||
return Result.ok("已在后台同步和重试中");
|
||||
}
|
||||
@ApiOperation(value = "同步或重试", notes = "同步或重试", httpMethod = "POST")
|
||||
@ApiImplicitParam(name = "ids", value = "星纵-海康数据校验失败记录ID(多个逗号分割)", paramType = "body", required = true, dataType = "String")
|
||||
@PostMapping(value = "/sync")
|
||||
public Result sync(@ApiIgnore @RequestBody HashMap<String, Object> map) throws Exception {
|
||||
xzHikvisionCompareDataService.sync(MapUtils.getString(map, "ids"));
|
||||
return Result.ok("已在后台同步和重试中");
|
||||
}
|
||||
|
||||
@ApiOperation(value = "检查校验过程是否有异常情况", notes = "检查校验过程是否有异常情况", httpMethod = "POST")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "projectSn", value = "项目sn", paramType = "body", required = true, dataType = "String"),
|
||||
@ApiImplicitParam(name = "type", value = "类型1组织2人员信息3人员照片4车辆信息", paramType = "body", required = true, dataType = "Integer"),
|
||||
})
|
||||
@PostMapping(value = "/checkCompareDataException")
|
||||
public Result<JSONObject> checkCompareDataException(@ApiIgnore @RequestBody Map<String, Object> param) {
|
||||
return Result.success(xzHikvisionCompareDataService.checkCompareDataException(param));
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,15 +1,11 @@
|
||||
package com.zhgd.xmgl.modules.x.entity;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import liquibase.pro.packaged.id;
|
||||
import lombok.Data;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
@ -39,11 +35,11 @@ public class XzHikvisionCompareData implements Serializable {
|
||||
@ApiModelProperty(value = "所属项目SN")
|
||||
private java.lang.String projectSn;
|
||||
/**
|
||||
* 企业名称
|
||||
* 组织名称
|
||||
*/
|
||||
@Excel(name = "企业名称", width = 15)
|
||||
@ApiModelProperty(value = "企业名称")
|
||||
private java.lang.String enterpriseName;
|
||||
@Excel(name = "组织名称", width = 15)
|
||||
@ApiModelProperty(value = "组织名称")
|
||||
private java.lang.String orgName;
|
||||
/**
|
||||
* 是否存在isc平台
|
||||
*/
|
||||
@ -87,7 +83,7 @@ public class XzHikvisionCompareData implements Serializable {
|
||||
@ApiModelProperty(value = "类型1组织2人员信息3人员照片4车辆信息")
|
||||
private java.lang.Integer type;
|
||||
/**
|
||||
* 类型1企业2部门3班组
|
||||
* 类型1企业2部门3班组4人员5人员图片
|
||||
*/
|
||||
private java.lang.Integer ourType;
|
||||
/**
|
||||
|
||||
@ -1,11 +1,15 @@
|
||||
package com.zhgd.xmgl.modules.x.service;
|
||||
|
||||
import com.zhgd.xmgl.modules.x.entity.XzHikvisionCompareData;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.zhgd.xmgl.modules.project.entity.Project;
|
||||
import com.zhgd.xmgl.modules.x.entity.XzHikvisionCompareData;
|
||||
import com.zhgd.xmgl.task.HikvisionTask;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Description: 星纵-海康数据校验失败记录
|
||||
@ -28,4 +32,31 @@ public interface IXzHikvisionCompareDataService extends IService<XzHikvisionComp
|
||||
XzHikvisionCompareData queryById(String id);
|
||||
|
||||
void sync(String ids) throws Exception;
|
||||
|
||||
void compareRetryFail();
|
||||
|
||||
void compareRetrySuc();
|
||||
|
||||
void addCompareDataForEnterprise(Project project, String orgName, int existIsc, int existMyPlatform, String uniqueId);
|
||||
|
||||
void addCompareDataForDepartment(Project project, String orgName, int existIsc, int existMyPlatform, String uniqueId);
|
||||
|
||||
void addCompareDataForTeam(Project project, String orgName, int existIsc, int existMyPlatform, String uniqueId);
|
||||
|
||||
void addCompareDataForWorker(Project project, String workerName, int existIsc, int existMyPlatform, String uniqueId, String idCard);
|
||||
|
||||
void addCompareDataForFace(Project project, String workerName, int existIsc, int existMyPlatform, String uniqueId, String idCard);
|
||||
|
||||
void addCompareDataForCar(Project project, String carNumber, int existIsc, int existMyPlatform, String uniqueId);
|
||||
|
||||
|
||||
void addExceptionShowIfNull(String projectSn);
|
||||
|
||||
/**
|
||||
* @param projectSn
|
||||
* @param type key:1组织2人员信息3人员照片4车辆信息
|
||||
*/
|
||||
void addSuccessShow(String projectSn, String type);
|
||||
|
||||
JSONObject checkCompareDataException(Map<String, Object> param);
|
||||
}
|
||||
|
||||
@ -3,6 +3,7 @@ package com.zhgd.xmgl.modules.x.service.impl;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
@ -11,9 +12,11 @@ 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.system.query.QueryGenerator;
|
||||
import com.zhgd.redis.lock.RedisRepository;
|
||||
import com.zhgd.xmgl.async.AsyncHikvision;
|
||||
import com.zhgd.xmgl.call.HikvisionCall;
|
||||
import com.zhgd.xmgl.constant.Cts;
|
||||
import com.zhgd.xmgl.modules.project.entity.Project;
|
||||
import com.zhgd.xmgl.modules.project.entity.vo.ProjectInfoExtVo;
|
||||
import com.zhgd.xmgl.modules.project.service.impl.ProjectServiceImpl;
|
||||
import com.zhgd.xmgl.modules.worker.entity.EnterpriseInfo;
|
||||
@ -23,14 +26,17 @@ import com.zhgd.xmgl.modules.x.mapper.XzHikvisionCompareDataMapper;
|
||||
import com.zhgd.xmgl.modules.x.service.IXzHikvisionCompareDataService;
|
||||
import com.zhgd.xmgl.util.*;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.MapUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Description: 星纵-海康数据校验失败记录
|
||||
@ -55,6 +61,9 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
|
||||
@Lazy
|
||||
@Autowired
|
||||
private ProjectServiceImpl projectService;
|
||||
@Lazy
|
||||
@Autowired
|
||||
private RedisRepository redisRepository;
|
||||
|
||||
@Override
|
||||
public IPage<XzHikvisionCompareData> queryPageList(HashMap<String, Object> param) {
|
||||
@ -120,6 +129,7 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
|
||||
List<String> idList = StrUtil.split(ids, ",");
|
||||
for (String id : idList) {
|
||||
XzHikvisionCompareData data = baseMapper.selectById(id);
|
||||
Assert.notNull(data, "数据不存在");
|
||||
ThreadLocalUtil.addInKeyIfNotExist(Cts.TL_XZ_HIKVISION_COMPARE_DATA_RETRY, data);
|
||||
ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(new MapBuilder<String, Object>().put(Cts.PROJECT_SN, data.getProjectSn()).build());
|
||||
EnterpriseInfo enterpriseInfo = BeanUtil.toBean(enterpriseInfoService.getEnterpriseInfoById(new MapBuilder<String, Object>()
|
||||
@ -130,7 +140,7 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
|
||||
//同步海康
|
||||
asyncHikvision.editEnterpriseInfoForHikvision(enterpriseInfo);
|
||||
} else {
|
||||
asyncHikvision.deleteEnterpriseInfoForHikvision(data.getUniqueId(), data.getProjectSn(), enterpriseInfo.getEnterpriseName());
|
||||
asyncHikvision.deleteEnterpriseInfoForHikvision(data.getUniqueId(), data.getProjectSn(), data.getOrgName());
|
||||
}
|
||||
} else if (data.getExistIsc() == 0 && data.getExistMyPlatform() == 1) {
|
||||
//查询id是否存在isc,存在就更新,不存在就新增
|
||||
@ -147,9 +157,137 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
|
||||
asyncHikvision.editEnterpriseInfoForHikvision(enterpriseInfo);
|
||||
}
|
||||
} else {
|
||||
log.error("同步海康失败,失败原因:{}", rtJo.toJSONString());
|
||||
log.error("校验数据同步海康失败,失败原因:{}", rtJo.toJSONString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 数据校验重试失败
|
||||
*/
|
||||
@Override
|
||||
public void compareRetryFail() {
|
||||
JSONObject tlJo = ThreadLocalUtil.getByKey(Cts.TL_XZ_HIKVISION_COMPARE_DATA_RETRY);
|
||||
if (tlJo != null) {
|
||||
XzHikvisionCompareData data = BeanUtil.toBean(tlJo, XzHikvisionCompareData.class);
|
||||
data.setSyncResult(2);
|
||||
xzHikvisionCompareDataMapper.updateById(data);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 数据校验重试成功
|
||||
*/
|
||||
@Override
|
||||
public void compareRetrySuc() {
|
||||
JSONObject tlJo = ThreadLocalUtil.getByKey(Cts.TL_XZ_HIKVISION_COMPARE_DATA_RETRY);
|
||||
if (tlJo != null) {
|
||||
XzHikvisionCompareData data = BeanUtil.toBean(tlJo, XzHikvisionCompareData.class);
|
||||
xzHikvisionCompareDataMapper.deleteById(data.getId());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addCompareDataForEnterprise(Project project, String orgName, int existIsc, int existMyPlatform, String uniqueId) {
|
||||
XzHikvisionCompareData data = new XzHikvisionCompareData();
|
||||
data.setProjectSn(project.getProjectSn());
|
||||
data.setOrgName(orgName);
|
||||
data.setExistIsc(existIsc);
|
||||
data.setExistMyPlatform(existMyPlatform);
|
||||
data.setType(1);
|
||||
data.setOurType(1);
|
||||
data.setUniqueId(uniqueId);
|
||||
baseMapper.insert(data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addCompareDataForDepartment(Project project, String orgName, int existIsc, int existMyPlatform, String uniqueId) {
|
||||
XzHikvisionCompareData data = new XzHikvisionCompareData();
|
||||
data.setProjectSn(project.getProjectSn());
|
||||
data.setOrgName(orgName);
|
||||
data.setExistIsc(existIsc);
|
||||
data.setExistMyPlatform(existMyPlatform);
|
||||
data.setType(1);
|
||||
data.setOurType(2);
|
||||
data.setUniqueId(uniqueId);
|
||||
baseMapper.insert(data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addCompareDataForTeam(Project project, String orgName, int existIsc, int existMyPlatform, String uniqueId) {
|
||||
XzHikvisionCompareData data = new XzHikvisionCompareData();
|
||||
data.setProjectSn(project.getProjectSn());
|
||||
data.setOrgName(orgName);
|
||||
data.setExistIsc(existIsc);
|
||||
data.setExistMyPlatform(existMyPlatform);
|
||||
data.setType(1);
|
||||
data.setOurType(3);
|
||||
data.setUniqueId(uniqueId);
|
||||
baseMapper.insert(data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addCompareDataForWorker(Project project, String workerName, int existIsc, int existMyPlatform, String uniqueId, String idCard) {
|
||||
XzHikvisionCompareData data = new XzHikvisionCompareData();
|
||||
data.setProjectSn(project.getProjectSn());
|
||||
data.setWorkerName(workerName);
|
||||
data.setIdCard(idCard);
|
||||
data.setExistIsc(existIsc);
|
||||
data.setExistMyPlatform(existMyPlatform);
|
||||
data.setType(2);
|
||||
data.setOurType(4);
|
||||
data.setUniqueId(uniqueId);
|
||||
baseMapper.insert(data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addCompareDataForFace(Project project, String workerName, int existIsc, int existMyPlatform, String uniqueId, String idCard) {
|
||||
XzHikvisionCompareData data = new XzHikvisionCompareData();
|
||||
data.setProjectSn(project.getProjectSn());
|
||||
data.setWorkerName(workerName);
|
||||
data.setIdCard(idCard);
|
||||
data.setExistIsc(existIsc);
|
||||
data.setExistMyPlatform(existMyPlatform);
|
||||
data.setType(3);
|
||||
data.setOurType(5);
|
||||
data.setUniqueId(uniqueId);
|
||||
baseMapper.insert(data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addCompareDataForCar(Project project, String carNumber, int existIsc, int existMyPlatform, String uniqueId) {
|
||||
XzHikvisionCompareData data = new XzHikvisionCompareData();
|
||||
data.setProjectSn(project.getProjectSn());
|
||||
data.setCarNumber(carNumber);
|
||||
data.setExistIsc(existIsc);
|
||||
data.setExistMyPlatform(existMyPlatform);
|
||||
data.setType(1);
|
||||
data.setOurType(1);
|
||||
data.setUniqueId(uniqueId);
|
||||
baseMapper.insert(data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addExceptionShowIfNull(String projectSn) {
|
||||
Map<String, Object> map = redisRepository.getHashValue(Cts.REDIS_HIKVISION_COMPARE_DATA + projectSn);
|
||||
System.out.println();
|
||||
//redisRepository.putHashValue(Cts.REDIS_HIKVISION_COMPARE_DATA + project.getProjectSn(), "1", JSON.toJSONString(new MapBuilder<String, Object>().put(Cts.SUCCESS, false).put(Cts.MSG, rtJo).build()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addSuccessShow(String projectSn, String type) {
|
||||
redisRepository.putHashValue(Cts.REDIS_HIKVISION_COMPARE_DATA + projectSn, type, JSON.toJSONString(new MapBuilder<String, Object>().put(Cts.SUCCESS, true).put(Cts.MSG, "").build()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject checkCompareDataException(Map<String, Object> param) {
|
||||
String projectSn = MapUtils.getString(param, Cts.PROJECT_SN);
|
||||
Integer type = MapUtils.getInteger(param, Cts.TYPE);
|
||||
Object hashValues = redisRepository.getHashValues(Cts.REDIS_HIKVISION_COMPARE_DATA + projectSn, String.valueOf(type));
|
||||
if (hashValues == null) {
|
||||
return new JoBuilder().put(Cts.SUCCESS, true).put(Cts.MSG, "未执行校验数据").build();
|
||||
}
|
||||
return (JSONObject) hashValues;
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,19 +2,30 @@ package com.zhgd.xmgl.task;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.gexin.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.zhgd.redis.lock.RedisRepository;
|
||||
import com.zhgd.xmgl.call.HikvisionCall;
|
||||
import com.zhgd.xmgl.constant.Cts;
|
||||
import com.zhgd.xmgl.modules.car.entity.CarInfo;
|
||||
import com.zhgd.xmgl.modules.car.service.impl.CarInfoServiceImpl;
|
||||
import com.zhgd.xmgl.modules.project.entity.Project;
|
||||
import com.zhgd.xmgl.modules.project.mapper.ProjectMapper;
|
||||
import com.zhgd.xmgl.modules.worker.entity.DepartmentInfo;
|
||||
import com.zhgd.xmgl.modules.worker.entity.EnterpriseInfo;
|
||||
import com.zhgd.xmgl.modules.worker.entity.TeamInfo;
|
||||
import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
|
||||
import com.zhgd.xmgl.modules.worker.mapper.DepartmentInfoMapper;
|
||||
import com.zhgd.xmgl.modules.worker.service.ITeamInfoService;
|
||||
import com.zhgd.xmgl.modules.worker.service.impl.DepartmentInfoServiceImpl;
|
||||
import com.zhgd.xmgl.modules.worker.service.impl.EnterpriseInfoServiceImpl;
|
||||
import com.zhgd.xmgl.modules.worker.service.impl.WorkerInfoServiceImpl;
|
||||
import com.zhgd.xmgl.modules.x.entity.XzHikvisionCompareData;
|
||||
import com.zhgd.xmgl.modules.x.mapper.XzHikvisionCompareDataMapper;
|
||||
import com.zhgd.xmgl.modules.x.service.IXzHikvisionCompareDataService;
|
||||
import com.zhgd.xmgl.util.HikvisionUtil;
|
||||
import com.zhgd.xmgl.util.MapBuilder;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@ -27,7 +38,8 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
@ -45,12 +57,31 @@ public class HikvisionTask {
|
||||
@Lazy
|
||||
@Autowired
|
||||
private EnterpriseInfoServiceImpl enterpriseInfoService;
|
||||
@Lazy
|
||||
@Autowired
|
||||
private CarInfoServiceImpl carInfoService;
|
||||
@Lazy
|
||||
@Autowired
|
||||
private DepartmentInfoServiceImpl departmentInfoService;
|
||||
@Lazy
|
||||
@Autowired
|
||||
private ITeamInfoService teamInfoService;
|
||||
@Lazy
|
||||
@Autowired
|
||||
private WorkerInfoServiceImpl workerInfoService;
|
||||
|
||||
@Lazy
|
||||
@Autowired
|
||||
private XzHikvisionCompareDataMapper xzHikvisionCompareDataMapper;
|
||||
@Lazy
|
||||
@Autowired
|
||||
private RedisRepository redisRepository;
|
||||
@Lazy
|
||||
@Autowired
|
||||
private IXzHikvisionCompareDataService xzHikvisionCompareDataService;
|
||||
@Lazy
|
||||
@Autowired
|
||||
private DepartmentInfoMapper departmentInfoMapper;
|
||||
|
||||
/**
|
||||
* 数据校验同步
|
||||
@ -61,70 +92,180 @@ public class HikvisionTask {
|
||||
public void dataCompare() throws Exception {
|
||||
List<Project> projects = projectMapper.selectList(new LambdaQueryWrapper<Project>().eq(Project::getSyncHikvision, 1));
|
||||
for (Project project : projects) {
|
||||
compareHikvision(project);
|
||||
try {
|
||||
xzHikvisionCompareDataMapper.delete(new LambdaQueryWrapper<XzHikvisionCompareData>()
|
||||
.eq(XzHikvisionCompareData::getProjectSn, project.getProjectSn()));
|
||||
compareHikvisionForEnterpriseEtc(project);
|
||||
compareHikvisionForCar(project);
|
||||
} catch (Exception e) {
|
||||
log.error("数据校验同步失败,projectSn:{} ", project.getProjectSn(), e);
|
||||
xzHikvisionCompareDataService.addExceptionShowIfNull(project.getProjectSn());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void compareHikvision(Project project) throws Exception {
|
||||
private void compareHikvisionForEnterpriseEtc(Project project) throws Exception {
|
||||
//对比企业
|
||||
JSONObject param = new JSONObject();
|
||||
HikvisionUtil.addPageParamIfAbsent(param);
|
||||
param.put("parentOrgIndexCode", project.getProjectSn());
|
||||
JSONObject rtJo = hikvisionCall.getSubOrgListByParentOrg(project, param);
|
||||
List<EnterpriseInfo> enterpriseInfos = BeanUtil.copyToList(enterpriseInfoService.getEnterpriseInfoList(new MapBuilder<String, Object>().put(Cts.PROJECT_SN, project.getProjectSn()).build()), EnterpriseInfo.class);
|
||||
if (HikvisionUtil.isSuccess(rtJo)) {
|
||||
JSONObject dataJo = HikvisionUtil.getJSONObjectData(rtJo);
|
||||
JSONArray listJa = dataJo.getJSONArray("list");
|
||||
if (CollUtil.isEmpty(listJa)) {
|
||||
for (EnterpriseInfo enterpriseInfo : enterpriseInfos) {
|
||||
XzHikvisionCompareData data = new XzHikvisionCompareData();
|
||||
data.setProjectSn(project.getProjectSn());
|
||||
data.setEnterpriseName(enterpriseInfo.getEnterpriseName());
|
||||
data.setExistIsc(0);
|
||||
data.setExistMyPlatform(1);
|
||||
data.setType(1);
|
||||
data.setOurType(1);
|
||||
xzHikvisionCompareDataMapper.insert(data);
|
||||
}
|
||||
} else {
|
||||
HashSet<String> nameSet = new HashSet<>();
|
||||
enterpriseInfos.forEach(enterpriseInfo -> nameSet.add(enterpriseInfo.getEnterpriseName()));
|
||||
listJa.forEach(o -> nameSet.add(((JSONObject) o).getString("orgName")));
|
||||
Set<String> iscSet = listJa.stream().map(o -> ((JSONObject) o).getString("orgName")).collect(Collectors.toSet());
|
||||
Set<String> mySet = enterpriseInfos.stream().map(EnterpriseInfo::getEnterpriseName).collect(Collectors.toSet());
|
||||
nameSet.forEach(s -> {
|
||||
if (mySet.contains(s) || !iscSet.contains(s)) {
|
||||
XzHikvisionCompareData data = new XzHikvisionCompareData();
|
||||
data.setProjectSn(project.getProjectSn());
|
||||
data.setEnterpriseName(s);
|
||||
data.setExistIsc(0);
|
||||
data.setExistMyPlatform(1);
|
||||
data.setType(1);
|
||||
data.setOurType(1);
|
||||
xzHikvisionCompareDataMapper.insert(data);
|
||||
} else if (!mySet.contains(s) || iscSet.contains(s)) {
|
||||
XzHikvisionCompareData data = new XzHikvisionCompareData();
|
||||
data.setProjectSn(project.getProjectSn());
|
||||
data.setEnterpriseName(s);
|
||||
data.setExistIsc(1);
|
||||
data.setExistMyPlatform(0);
|
||||
data.setType(1);
|
||||
data.setOurType(1);
|
||||
xzHikvisionCompareDataMapper.insert(data);
|
||||
}
|
||||
});
|
||||
JSONObject dataJo = HikvisionUtil.getJSONObjectData(rtJo);
|
||||
JSONArray listJa = dataJo.getJSONArray("list");
|
||||
if (CollUtil.isEmpty(listJa)) {
|
||||
for (EnterpriseInfo enterpriseInfo : enterpriseInfos) {
|
||||
xzHikvisionCompareDataService.addCompareDataForEnterprise(project, enterpriseInfo.getEnterpriseName(), 0, 1, String.valueOf(enterpriseInfo.getId()));
|
||||
compareHikvisionForDepartmentAndTeamEtc(project, String.valueOf(enterpriseInfo.getId()));
|
||||
}
|
||||
} else {
|
||||
log.error("数据校验同步失败,调用海康ISC获取企业列表失败,projectSn:{} ,err:{}", project.getProjectSn(), JSON.toJSONString(rtJo));
|
||||
//key:1组织2人员信息3人员照片4车辆信息
|
||||
addException(project, rtJo);
|
||||
//isc存在,平台也存在
|
||||
HashSet<String> nameSet = new HashSet<>();
|
||||
enterpriseInfos.forEach(enterpriseInfo -> nameSet.add(enterpriseInfo.getEnterpriseName()));
|
||||
listJa.forEach(o -> nameSet.add(((JSONObject) o).getString("orgName")));
|
||||
Map<String, JSONObject> iscMap = listJa.stream().collect(Collectors.toMap(o -> ((JSONObject) o).getString("orgName"), o -> (JSONObject) o, (o, o2) -> o2));
|
||||
Map<String, EnterpriseInfo> myMap = enterpriseInfos.stream().collect(Collectors.toMap(EnterpriseInfo::getEnterpriseName, Function.identity(), (o, o2) -> o2));
|
||||
for (String name : nameSet) {
|
||||
String orgIndex = null;
|
||||
if (myMap.containsKey(name) && !iscMap.containsKey(name)) {
|
||||
orgIndex = String.valueOf(myMap.get(name).getId());
|
||||
xzHikvisionCompareDataService.addCompareDataForEnterprise(project, name, 0, 1, orgIndex);
|
||||
} else if (!myMap.containsKey(name) && iscMap.containsKey(name)) {
|
||||
orgIndex = iscMap.get(name).getString("orgIndexCode");
|
||||
xzHikvisionCompareDataService.addCompareDataForEnterprise(project, name, 1, 0, orgIndex);
|
||||
} else {
|
||||
orgIndex = String.valueOf(myMap.get(name).getId());
|
||||
}
|
||||
compareHikvisionForDepartmentAndTeamEtc(project, orgIndex);
|
||||
}
|
||||
}
|
||||
xzHikvisionCompareDataService.addSuccessShow(project.getProjectSn(), "1");
|
||||
}
|
||||
|
||||
private void compareHikvisionForDepartmentAndTeamEtc(Project project, String orgIndex) throws Exception {
|
||||
JSONObject param = new JSONObject();
|
||||
HikvisionUtil.addPageParamIfAbsent(param);
|
||||
param.put("parentOrgIndexCode", orgIndex);
|
||||
JSONObject rtJo = hikvisionCall.getSubOrgListByParentOrg(project, param);
|
||||
List<TeamInfo> teamList = teamInfoService.getProjectTeamList(new MapBuilder<String, Object>()
|
||||
.put(Cts.PROJECT_SN, project.getProjectSn()).put(Cts.ENTERPRISE_ID, orgIndex).build());
|
||||
List<DepartmentInfo> departmentInfoList = departmentInfoMapper.getDepartmentInfoList(new MapBuilder<String, Object>()
|
||||
.put(Cts.PROJECT_SN, project.getProjectSn()).put(Cts.ENTERPRISE_ID, orgIndex).build());
|
||||
JSONObject dataJo = HikvisionUtil.getJSONObjectData(rtJo);
|
||||
JSONArray listJa = dataJo.getJSONArray("list");
|
||||
if (CollUtil.isEmpty(listJa)) {
|
||||
for (TeamInfo teamInfo : teamList) {
|
||||
xzHikvisionCompareDataService.addCompareDataForTeam(project, teamInfo.getTeamName(), 0, 1, String.valueOf(teamInfo.getId()));
|
||||
}
|
||||
for (DepartmentInfo departmentInfo : departmentInfoList) {
|
||||
xzHikvisionCompareDataService.addCompareDataForDepartment(project, departmentInfo.getDepartmentName(), 0, 1, String.valueOf(departmentInfo.getId()));
|
||||
}
|
||||
} else {
|
||||
//isc存在,平台也存在
|
||||
HashSet<String> nameSet = new HashSet<>();
|
||||
teamList.forEach(teamInfo -> nameSet.add(teamInfo.getTeamName()));
|
||||
departmentInfoList.forEach(departmentInfo -> nameSet.add(departmentInfo.getDepartmentName()));
|
||||
listJa.forEach(o -> nameSet.add(((JSONObject) o).getString("orgName")));
|
||||
Map<String, JSONObject> iscMap = listJa.stream().collect(Collectors.toMap(o -> ((JSONObject) o).getString("orgName"), o -> (JSONObject) o, (o, o2) -> o2));
|
||||
Map<String, TeamInfo> myTeamMap = teamList.stream().collect(Collectors.toMap(TeamInfo::getTeamName, Function.identity(), (o, o2) -> o2));
|
||||
Map<String, DepartmentInfo> myDepartmentMap = departmentInfoList.stream().collect(Collectors.toMap(DepartmentInfo::getDepartmentName, Function.identity(), (o, o2) -> o2));
|
||||
for (String name : nameSet) {
|
||||
String index;
|
||||
if (myTeamMap.containsKey(name) && !iscMap.containsKey(name)) {
|
||||
index = String.valueOf(myTeamMap.get(name).getId());
|
||||
xzHikvisionCompareDataService.addCompareDataForTeam(project, name, 0, 1, index);
|
||||
} else if (myDepartmentMap.containsKey(name) && !iscMap.containsKey(name)) {
|
||||
index = String.valueOf(myDepartmentMap.get(name).getId());
|
||||
xzHikvisionCompareDataService.addCompareDataForDepartment(project, name, 0, 1, index);
|
||||
} else if ((!myTeamMap.containsKey(name) && !myDepartmentMap.containsKey(name)) && iscMap.containsKey(name)) {
|
||||
index = iscMap.get(name).getString("orgIndexCode");
|
||||
xzHikvisionCompareDataService.addCompareDataForTeam(project, name, 1, 0, index);
|
||||
} else {
|
||||
//班组存在和isc存在
|
||||
index = String.valueOf(myTeamMap.get(name).getId());
|
||||
}
|
||||
compareHikvisionForWorker(project, index);
|
||||
}
|
||||
}
|
||||
|
||||
xzHikvisionCompareDataService.addSuccessShow(project.getProjectSn(), "1");
|
||||
}
|
||||
|
||||
private void addException(Project project, JSONObject rtJo) {
|
||||
redisRepository.putHashValue(Cts.REDIS_HIKVISION_COMPARE_DATA + project.getProjectSn(), "1", JSONArray.toJSONString(new MapBuilder<String, Object>().put(Cts.SUCCESS, false).put(Cts.MSG, rtJo).build()));
|
||||
private void compareHikvisionForWorker(Project project, String orgIndex) throws Exception {
|
||||
JSONObject param = new JSONObject();
|
||||
HikvisionUtil.addPageParamIfAbsent(param);
|
||||
param.put("orgIndexCode", orgIndex);
|
||||
JSONObject rtJo = hikvisionCall.getWorkerListByOrg(project, param);
|
||||
IPage<WorkerInfo> workerPage = workerInfoService.selectWorkerInfoList(new MapBuilder<String, Object>().put(Cts.PROJECT_SN, project.getProjectSn()).put(Cts.TEAM_ID, orgIndex).build());
|
||||
List<WorkerInfo> workerInfoList = workerPage.getRecords();
|
||||
JSONObject dataJo = HikvisionUtil.getJSONObjectData(rtJo);
|
||||
JSONArray listJa = dataJo.getJSONArray("list");
|
||||
if (CollUtil.isEmpty(listJa)) {
|
||||
for (WorkerInfo workerInfo : workerInfoList) {
|
||||
xzHikvisionCompareDataService.addCompareDataForWorker(project, workerInfo.getWorkerName(), 0, 1, String.valueOf(workerInfo.getId()), workerInfo.getIdCard());
|
||||
xzHikvisionCompareDataService.addCompareDataForFace(project, workerInfo.getWorkerName(), 0, 1, String.valueOf(workerInfo.getId()), workerInfo.getIdCard());
|
||||
}
|
||||
} else {
|
||||
//isc存在,平台也存在
|
||||
HashSet<String> idCardSet = new HashSet<>();
|
||||
workerInfoList.forEach(workerInfo -> idCardSet.add(workerInfo.getIdCard()));
|
||||
listJa.forEach(o -> idCardSet.add(((JSONObject) o).getString("certificateNo")));
|
||||
Map<String, JSONObject> iscMap = listJa.stream().collect(Collectors.toMap(o -> ((JSONObject) o).getString("certificateNo"), o -> (JSONObject) o, (o, o2) -> o2));
|
||||
Map<String, WorkerInfo> myMap = workerInfoList.stream().collect(Collectors.toMap(WorkerInfo::getIdCard, Function.identity(), (o, o2) -> o2));
|
||||
for (String idCard : idCardSet) {
|
||||
if (myMap.containsKey(idCard) && !iscMap.containsKey(idCard)) {
|
||||
xzHikvisionCompareDataService.addCompareDataForWorker(project, myMap.get(idCard).getWorkerName(), 0, 1, String.valueOf(myMap.get(idCard).getId()), idCard);
|
||||
xzHikvisionCompareDataService.addCompareDataForFace(project, myMap.get(idCard).getWorkerName(), 0, 1, String.valueOf(myMap.get(idCard).getId()), idCard);
|
||||
} else if (!myMap.containsKey(idCard) && iscMap.containsKey(idCard)) {
|
||||
xzHikvisionCompareDataService.addCompareDataForWorker(project, iscMap.get(idCard).getString("personName"), 1, 0, iscMap.get(idCard).getString("personId"), idCard);
|
||||
xzHikvisionCompareDataService.addCompareDataForFace(project, iscMap.get(idCard).getString("personName"), 1, 0, iscMap.get(idCard).getString("personId"), idCard);
|
||||
} else {
|
||||
//isc存在,平台也存在该人员
|
||||
boolean myHave = StrUtil.isNotBlank(myMap.get(idCard).getFieldAcquisitionUrl());
|
||||
boolean iscHave = CollUtil.isNotEmpty(iscMap.get(idCard).getJSONArray("personPhoto"));
|
||||
if (myHave && !iscHave) {
|
||||
xzHikvisionCompareDataService.addCompareDataForFace(project, iscMap.get(idCard).getString("personName"), 0, 1, String.valueOf(myMap.get(idCard).getId()), idCard);
|
||||
} else if (!myHave && iscHave) {
|
||||
xzHikvisionCompareDataService.addCompareDataForFace(project, iscMap.get(idCard).getString("personName"), 1, 0, String.valueOf(myMap.get(idCard).getId()), idCard);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
xzHikvisionCompareDataService.addSuccessShow(project.getProjectSn(), "2");
|
||||
xzHikvisionCompareDataService.addSuccessShow(project.getProjectSn(), "3");
|
||||
}
|
||||
|
||||
private void compareHikvisionForCar(Project project) throws Exception {
|
||||
JSONObject param = new JSONObject();
|
||||
HikvisionUtil.addPageParamIfAbsent(param);
|
||||
JSONObject rtJo = HikvisionUtil.getCarList(project, param);
|
||||
List<CarInfo> carInfoList = carInfoService.selectCarList(new MapBuilder<String, Object>().put(Cts.PROJECT_SN, project.getProjectSn()).build());
|
||||
JSONObject dataJo = HikvisionUtil.getJSONObjectData(rtJo);
|
||||
JSONArray listJa = dataJo.getJSONArray("list");
|
||||
if (CollUtil.isEmpty(listJa)) {
|
||||
for (CarInfo carInfo : carInfoList) {
|
||||
xzHikvisionCompareDataService.addCompareDataForCar(project, carInfo.getCarNumber(), 0, 1, String.valueOf(carInfo.getId()));
|
||||
}
|
||||
} else {
|
||||
//isc存在,平台也存在
|
||||
HashSet<String> carNumberSet = new HashSet<>();
|
||||
carInfoList.forEach(enterpriseInfo -> carNumberSet.add(enterpriseInfo.getCarNumber()));
|
||||
listJa.forEach(o -> carNumberSet.add(((JSONObject) o).getString("plateNo")));
|
||||
Map<String, JSONObject> iscMap = listJa.stream().collect(Collectors.toMap(o -> ((JSONObject) o).getString("plateNo"), o -> (JSONObject) o, (o, o2) -> o2));
|
||||
Map<String, CarInfo> myMap = carInfoList.stream().collect(Collectors.toMap(CarInfo::getCarNumber, Function.identity(), (o, o2) -> o2));
|
||||
for (String carNumber : carNumberSet) {
|
||||
String uniqueId = null;
|
||||
if (myMap.containsKey(carNumber) && !iscMap.containsKey(carNumber)) {
|
||||
uniqueId = String.valueOf(myMap.get(carNumber).getId());
|
||||
xzHikvisionCompareDataService.addCompareDataForCar(project, carNumber, 0, 1, uniqueId);
|
||||
} else if (!myMap.containsKey(carNumber) && iscMap.containsKey(carNumber)) {
|
||||
uniqueId = iscMap.get(carNumber).getString("vehicleId");
|
||||
xzHikvisionCompareDataService.addCompareDataForEnterprise(project, carNumber, 1, 0, uniqueId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
xzHikvisionCompareDataService.addSuccessShow(project.getProjectSn(), "4");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -9,6 +9,7 @@ import com.hikvision.artemis.sdk.Response;
|
||||
import com.hikvision.artemis.sdk.constant.Constants;
|
||||
import com.hikvision.artemis.sdk.enums.Method;
|
||||
import com.zhgd.jeecg.common.execption.OpenAlertException;
|
||||
import com.zhgd.xmgl.modules.project.entity.Project;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@ -23,6 +24,10 @@ import java.util.Objects;
|
||||
@Component
|
||||
public class HikvisionUtil {
|
||||
|
||||
public static JSONObject doPostRtObj(String host, String path, String body, Map<String, String> querys, String appKey, String appSecret) throws Exception {
|
||||
return JSONObject.parseObject(doPost(host, path, body, querys, appKey, appSecret));
|
||||
}
|
||||
|
||||
public static String doPost(String host, String path, String body, Map<String, String> querys, String appKey, String appSecret) throws Exception {
|
||||
log.info("调用海康接口.url:{}", host + path);
|
||||
log.info("调用海康接口.body:{}", body);
|
||||
@ -80,7 +85,7 @@ public class HikvisionUtil {
|
||||
return rsJo.getJSONObject("data");
|
||||
} else {
|
||||
log.error("海康返回错误码:{}", rsJo.toJSONString());
|
||||
throw new OpenAlertException("海康调用失败");
|
||||
throw new OpenAlertException("海康返回错误码");
|
||||
}
|
||||
}
|
||||
|
||||
@ -149,4 +154,20 @@ public class HikvisionUtil {
|
||||
param.putIfAbsent("pageNo", 1);
|
||||
param.putIfAbsent("pageSize", 1000);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询车辆列表v2
|
||||
*
|
||||
* @param project
|
||||
* @return
|
||||
*/
|
||||
public static JSONObject getCarList(Project project, JSONObject param) throws Exception {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return null;
|
||||
}
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v2/vehicle/advance/vehicleList";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
return doPostRtObj(host, path, param.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
}
|
||||
}
|
||||
|
||||
60
src/main/java/com/zhgd/xmgl/util/JoBuilder.java
Normal file
60
src/main/java/com/zhgd/xmgl/util/JoBuilder.java
Normal file
@ -0,0 +1,60 @@
|
||||
package com.zhgd.xmgl.util;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
|
||||
/**
|
||||
* 一个简单的JSONObject构建器
|
||||
*/
|
||||
public class JoBuilder {
|
||||
|
||||
private JSONObject jsonObject;
|
||||
|
||||
/**
|
||||
* 默认构造函数
|
||||
*/
|
||||
public JoBuilder() {
|
||||
jsonObject = new JSONObject();
|
||||
}
|
||||
|
||||
/**
|
||||
* 有参构造函数
|
||||
*
|
||||
* @param jsonObject
|
||||
*/
|
||||
public JoBuilder(JSONObject jsonObject) {
|
||||
this.jsonObject = jsonObject;
|
||||
}
|
||||
|
||||
/**
|
||||
* put方法,返回MapParamBuilder构建器
|
||||
*
|
||||
* @param key
|
||||
* @param value
|
||||
* @return
|
||||
*/
|
||||
public JoBuilder put(String key, Object value) {
|
||||
jsonObject.put(key, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除Key
|
||||
*
|
||||
* @param key
|
||||
* @return
|
||||
*/
|
||||
public JoBuilder remove(String key) {
|
||||
jsonObject.remove(key);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回构建好的map参数
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public JSONObject build() {
|
||||
return jsonObject;
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user