数据校验
This commit is contained in:
parent
d55e543b3d
commit
1c509a9625
@ -2553,5 +2553,37 @@ public class HikvisionCall {
|
|||||||
return JSON.parseObject(HikvisionUtil.doPost(host, path, JSON.toJSONString(param), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()));
|
return JSON.parseObject(HikvisionUtil.doPost(host, path, JSON.toJSONString(param), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据父组织编号获取下级组织列表
|
||||||
|
*
|
||||||
|
* @param project
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public JSONObject getSubOrgListByParentOrg(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/v1/org/parentOrgIndexCode/subOrgList";
|
||||||
|
String host = "https://" + project.getArtemisConfigHost();
|
||||||
|
return JSON.parseObject(HikvisionUtil.doPost(host, path, JSON.toJSONString(param), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据组织编号获取组织详细信息
|
||||||
|
*
|
||||||
|
* @param project
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public JSONObject getOrgListByIndex(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/v1/org/orgIndexCodes/orgInfo";
|
||||||
|
String host = "https://" + project.getArtemisConfigHost();
|
||||||
|
return JSON.parseObject(HikvisionUtil.doPost(host, path, JSON.toJSONString(param), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,4 +14,8 @@ public interface Cts {
|
|||||||
String EXPIRED = "expired";
|
String EXPIRED = "expired";
|
||||||
String ID = "id";
|
String ID = "id";
|
||||||
String TODAY = "today";
|
String TODAY = "today";
|
||||||
|
String REDIS_HIKVISION_COMPARE_DATA = "HIKVISION_COMPARE_DATA_";
|
||||||
|
String SUCCESS = "success";
|
||||||
|
String MSG = "msg";
|
||||||
|
String ENTERPRISE_ID = "enterpriseId";
|
||||||
}
|
}
|
||||||
|
|||||||
@ -30,6 +30,9 @@
|
|||||||
<if test="map.enterpriseTypeId != null and map.enterpriseTypeId != ''">
|
<if test="map.enterpriseTypeId != null and map.enterpriseTypeId != ''">
|
||||||
and b.enterprise_type_id = #{map.enterpriseTypeId}
|
and b.enterprise_type_id = #{map.enterpriseTypeId}
|
||||||
</if>
|
</if>
|
||||||
|
<if test="map.enterpriseId != null and map.enterpriseId != ''">
|
||||||
|
and b.enterprise_id = #{map.enterpriseId}
|
||||||
|
</if>
|
||||||
order by b.sort_num
|
order by b.sort_num
|
||||||
</sql>
|
</sql>
|
||||||
<select id="getEnterpriseInfoList" resultType="com.zhgd.jeecg.common.mybatis.EntityMap" parameterType="map">
|
<select id="getEnterpriseInfoList" resultType="com.zhgd.jeecg.common.mybatis.EntityMap" parameterType="map">
|
||||||
|
|||||||
@ -21,7 +21,11 @@ import java.util.Map;
|
|||||||
* @version: V1.0
|
* @version: V1.0
|
||||||
*/
|
*/
|
||||||
public interface IEnterpriseInfoService extends IService<EnterpriseInfo> {
|
public interface IEnterpriseInfoService extends IService<EnterpriseInfo> {
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param map projectSn
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
List<EntityMap> getEnterpriseInfoList(Map<String, Object> map);
|
List<EntityMap> getEnterpriseInfoList(Map<String, Object> map);
|
||||||
|
|
||||||
EnterpriseInfo saveEnterpriseInfo(EnterpriseInfo enterpriseInfo);
|
EnterpriseInfo saveEnterpriseInfo(EnterpriseInfo enterpriseInfo);
|
||||||
|
|||||||
@ -0,0 +1,150 @@
|
|||||||
|
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.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 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.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;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Title: Controller
|
||||||
|
* @Description: 星纵-海康数据校验失败记录
|
||||||
|
* @author: pds
|
||||||
|
* @date: 2024-05-30
|
||||||
|
* @version: V1.0
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/xmgl/xzHikvisionCompareData")
|
||||||
|
@Slf4j
|
||||||
|
@Api(tags = "星纵-海康数据校验失败记录相关Api")
|
||||||
|
public class XzHikvisionCompareDataController {
|
||||||
|
@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")
|
||||||
|
@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 = "/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查询
|
||||||
|
*
|
||||||
|
* @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("已在后台同步和重试中");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,107 @@
|
|||||||
|
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;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 星纵-海康数据校验失败记录
|
||||||
|
* @author: pds
|
||||||
|
* @date: 2024-05-30
|
||||||
|
* @version: V1.0
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName("xz_hikvision_compare_data")
|
||||||
|
@ApiModel(value = "XzHikvisionCompareData实体类", description = "XzHikvisionCompareData")
|
||||||
|
public class XzHikvisionCompareData implements Serializable {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* id
|
||||||
|
*/
|
||||||
|
@TableId(type = IdType.ASSIGN_ID)
|
||||||
|
@ApiModelProperty(value = "id")
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 所属项目SN
|
||||||
|
*/
|
||||||
|
@Excel(name = "所属项目SN", width = 15)
|
||||||
|
@ApiModelProperty(value = "所属项目SN")
|
||||||
|
private java.lang.String projectSn;
|
||||||
|
/**
|
||||||
|
* 企业名称
|
||||||
|
*/
|
||||||
|
@Excel(name = "企业名称", width = 15)
|
||||||
|
@ApiModelProperty(value = "企业名称")
|
||||||
|
private java.lang.String enterpriseName;
|
||||||
|
/**
|
||||||
|
* 是否存在isc平台
|
||||||
|
*/
|
||||||
|
@Excel(name = "是否存在isc平台", width = 15)
|
||||||
|
@ApiModelProperty(value = "是否存在isc平台")
|
||||||
|
private java.lang.Integer existIsc;
|
||||||
|
/**
|
||||||
|
* 是否存在我们平台
|
||||||
|
*/
|
||||||
|
@Excel(name = "是否存在我们平台", width = 15)
|
||||||
|
@ApiModelProperty(value = "是否存在我们平台")
|
||||||
|
private java.lang.Integer existMyPlatform;
|
||||||
|
/**
|
||||||
|
* 同步结果1未同步2同步失败
|
||||||
|
*/
|
||||||
|
@Excel(name = "同步结果1未同步2同步失败", width = 15)
|
||||||
|
@ApiModelProperty(value = "同步结果1未同步2同步失败")
|
||||||
|
private java.lang.Integer syncResult;
|
||||||
|
/**
|
||||||
|
* 人员姓名
|
||||||
|
*/
|
||||||
|
@Excel(name = "人员姓名", width = 15)
|
||||||
|
@ApiModelProperty(value = "人员姓名")
|
||||||
|
private java.lang.String workerName;
|
||||||
|
/**
|
||||||
|
* 身份证号
|
||||||
|
*/
|
||||||
|
@Excel(name = "身份证号", width = 15)
|
||||||
|
@ApiModelProperty(value = "身份证号")
|
||||||
|
private java.lang.String idCard;
|
||||||
|
/**
|
||||||
|
* 车牌号
|
||||||
|
*/
|
||||||
|
@Excel(name = "车牌号", width = 15)
|
||||||
|
@ApiModelProperty(value = "车牌号")
|
||||||
|
private java.lang.String carNumber;
|
||||||
|
/**
|
||||||
|
* 类型1组织2人员信息3人员照片4车辆信息
|
||||||
|
*/
|
||||||
|
@Excel(name = "类型1组织2人员信息3人员照片4车辆信息", width = 15)
|
||||||
|
@ApiModelProperty(value = "类型1组织2人员信息3人员照片4车辆信息")
|
||||||
|
private java.lang.Integer type;
|
||||||
|
/**
|
||||||
|
* 类型1企业2部门3班组
|
||||||
|
*/
|
||||||
|
private java.lang.Integer ourType;
|
||||||
|
/**
|
||||||
|
* 唯一id
|
||||||
|
*/
|
||||||
|
private java.lang.String uniqueId;
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "创建时间")
|
||||||
|
private java.util.Date createDate;
|
||||||
|
/**
|
||||||
|
* 更新时间
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "更新时间")
|
||||||
|
private java.util.Date updateDate;
|
||||||
|
}
|
||||||
@ -0,0 +1,19 @@
|
|||||||
|
package com.zhgd.xmgl.modules.x.mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
import com.zhgd.xmgl.modules.x.entity.XzHikvisionCompareData;
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 星纵-海康数据校验失败记录
|
||||||
|
* @author: pds
|
||||||
|
* @date: 2024-05-30
|
||||||
|
* @version: V1.0
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface XzHikvisionCompareDataMapper extends BaseMapper<XzHikvisionCompareData> {
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,4 @@
|
|||||||
|
<?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.x.mapper.XzHikvisionCompareDataMapper">
|
||||||
|
</mapper>
|
||||||
@ -0,0 +1,31 @@
|
|||||||
|
package com.zhgd.xmgl.modules.x.service;
|
||||||
|
|
||||||
|
import com.zhgd.xmgl.modules.x.entity.XzHikvisionCompareData;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 星纵-海康数据校验失败记录
|
||||||
|
* @author: pds
|
||||||
|
* @date: 2024-05-30
|
||||||
|
* @version: V1.0
|
||||||
|
*/
|
||||||
|
public interface IXzHikvisionCompareDataService extends IService<XzHikvisionCompareData> {
|
||||||
|
|
||||||
|
IPage<XzHikvisionCompareData> queryPageList(HashMap<String, Object> param);
|
||||||
|
|
||||||
|
List<XzHikvisionCompareData> queryList(HashMap<String, Object> param);
|
||||||
|
|
||||||
|
void add(XzHikvisionCompareData xzHikvisionCompareData);
|
||||||
|
|
||||||
|
void edit(XzHikvisionCompareData xzHikvisionCompareData);
|
||||||
|
|
||||||
|
void delete(String id);
|
||||||
|
|
||||||
|
XzHikvisionCompareData queryById(String id);
|
||||||
|
|
||||||
|
void sync(String ids) throws Exception;
|
||||||
|
}
|
||||||
@ -0,0 +1,158 @@
|
|||||||
|
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.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.zhgd.jeecg.common.execption.OpenAlertException;
|
||||||
|
import com.zhgd.jeecg.common.system.query.QueryGenerator;
|
||||||
|
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.vo.ProjectInfoExtVo;
|
||||||
|
import com.zhgd.xmgl.modules.project.service.impl.ProjectServiceImpl;
|
||||||
|
import com.zhgd.xmgl.modules.worker.entity.EnterpriseInfo;
|
||||||
|
import com.zhgd.xmgl.modules.worker.service.impl.EnterpriseInfoServiceImpl;
|
||||||
|
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 com.zhgd.xmgl.util.PageUtil;
|
||||||
|
import com.zhgd.xmgl.util.RefUtil;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
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 java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 星纵-海康数据校验失败记录
|
||||||
|
* @author: pds
|
||||||
|
* @date: 2024-05-30
|
||||||
|
* @version: V1.0
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
@Slf4j
|
||||||
|
public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCompareDataMapper, XzHikvisionCompareData> implements IXzHikvisionCompareDataService {
|
||||||
|
@Autowired
|
||||||
|
private XzHikvisionCompareDataMapper xzHikvisionCompareDataMapper;
|
||||||
|
@Autowired
|
||||||
|
private EnterpriseInfoServiceImpl enterpriseInfoService;
|
||||||
|
@Lazy
|
||||||
|
@Autowired
|
||||||
|
private AsyncHikvision asyncHikvision;
|
||||||
|
@Lazy
|
||||||
|
@Autowired
|
||||||
|
private HikvisionCall hikvisionCall;
|
||||||
|
@Lazy
|
||||||
|
@Autowired
|
||||||
|
private ProjectServiceImpl projectService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IPage<XzHikvisionCompareData> queryPageList(HashMap<String, Object> param) {
|
||||||
|
QueryWrapper<XzHikvisionCompareData> queryWrapper = getQueryWrapper(param);
|
||||||
|
Page<XzHikvisionCompareData> page = PageUtil.getPage(param);
|
||||||
|
IPage<XzHikvisionCompareData> pageList = this.page(page, queryWrapper);
|
||||||
|
pageList.setRecords(dealList(pageList.getRecords()));
|
||||||
|
return pageList;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<XzHikvisionCompareData> queryList(HashMap<String, Object> param) {
|
||||||
|
QueryWrapper<XzHikvisionCompareData> queryWrapper = getQueryWrapper(param);
|
||||||
|
return dealList(this.list(queryWrapper));
|
||||||
|
}
|
||||||
|
|
||||||
|
private QueryWrapper<XzHikvisionCompareData> getQueryWrapper(HashMap<String, Object> param) {
|
||||||
|
String alias = "";
|
||||||
|
QueryWrapper<XzHikvisionCompareData> queryWrapper = QueryGenerator.initPageQueryWrapper(XzHikvisionCompareData.class, param, alias);
|
||||||
|
queryWrapper.orderByDesc(alias + RefUtil.fieldNameUlc(XzHikvisionCompareData::getId));
|
||||||
|
return queryWrapper;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<XzHikvisionCompareData> dealList(List<XzHikvisionCompareData> list) {
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void add(XzHikvisionCompareData xzHikvisionCompareData) {
|
||||||
|
xzHikvisionCompareData.setId(null);
|
||||||
|
baseMapper.insert(xzHikvisionCompareData);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void edit(XzHikvisionCompareData xzHikvisionCompareData) {
|
||||||
|
XzHikvisionCompareData oldXzHikvisionCompareData = baseMapper.selectById(xzHikvisionCompareData.getId());
|
||||||
|
if (oldXzHikvisionCompareData == null) {
|
||||||
|
throw new OpenAlertException("未找到对应实体");
|
||||||
|
}
|
||||||
|
baseMapper.updateById(xzHikvisionCompareData);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void delete(String id) {
|
||||||
|
XzHikvisionCompareData xzHikvisionCompareData = baseMapper.selectById(id);
|
||||||
|
if (xzHikvisionCompareData == null) {
|
||||||
|
throw new OpenAlertException("未找到对应实体");
|
||||||
|
}
|
||||||
|
baseMapper.deleteById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public XzHikvisionCompareData queryById(String id) {
|
||||||
|
XzHikvisionCompareData entity = getById(id);
|
||||||
|
if (entity == null) {
|
||||||
|
throw new OpenAlertException("未找到对应实体");
|
||||||
|
}
|
||||||
|
return entity;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void sync(String ids) throws Exception {
|
||||||
|
List<String> idList = StrUtil.split(ids, ",");
|
||||||
|
for (String id : idList) {
|
||||||
|
XzHikvisionCompareData data = baseMapper.selectById(id);
|
||||||
|
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>()
|
||||||
|
.put(Cts.PROJECT_SN, data.getProjectSn()).put(Cts.ENTERPRISE_ID, data.getUniqueId()).build()), EnterpriseInfo.class);
|
||||||
|
if (data.getExistIsc() == 1 && data.getExistMyPlatform() == 0) {
|
||||||
|
//查询id是否存在平台,存在就更新,不存在就删除
|
||||||
|
if (enterpriseInfo != null) {
|
||||||
|
//同步海康
|
||||||
|
asyncHikvision.editEnterpriseInfoForHikvision(enterpriseInfo);
|
||||||
|
} else {
|
||||||
|
asyncHikvision.deleteEnterpriseInfoForHikvision(data.getUniqueId(), data.getProjectSn());
|
||||||
|
}
|
||||||
|
} else if (data.getExistIsc() == 0 && data.getExistMyPlatform() == 1) {
|
||||||
|
//查询id是否存在isc,存在就更新,不存在就新增
|
||||||
|
JSONObject param = new JSONObject();
|
||||||
|
param.put("orgIndexCodes", Collections.singletonList(data.getUniqueId()));
|
||||||
|
JSONObject rtJo = hikvisionCall.getOrgListByIndex(projectInfoBySn, param);
|
||||||
|
if (HikvisionUtil.isSuccess(rtJo)) {
|
||||||
|
JSONArray list = HikvisionUtil.getJSONObjectData(rtJo).getJSONArray("list");
|
||||||
|
if (CollUtil.isEmpty(list)) {
|
||||||
|
//新增
|
||||||
|
asyncHikvision.addEnterpriseInfoForHikvision(enterpriseInfo);
|
||||||
|
} else {
|
||||||
|
//更新
|
||||||
|
asyncHikvision.editEnterpriseInfoForHikvision(enterpriseInfo);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
log.error("同步海康失败,失败原因:{}", rtJo.toJSONString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
130
src/main/java/com/zhgd/xmgl/task/HikvisionTask.java
Normal file
130
src/main/java/com/zhgd/xmgl/task/HikvisionTask.java
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
package com.zhgd.xmgl.task;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
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.zhgd.redis.lock.RedisRepository;
|
||||||
|
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.mapper.ProjectMapper;
|
||||||
|
import com.zhgd.xmgl.modules.worker.entity.EnterpriseInfo;
|
||||||
|
import com.zhgd.xmgl.modules.worker.service.impl.EnterpriseInfoServiceImpl;
|
||||||
|
import com.zhgd.xmgl.modules.x.entity.XzHikvisionCompareData;
|
||||||
|
import com.zhgd.xmgl.modules.x.mapper.XzHikvisionCompareDataMapper;
|
||||||
|
import com.zhgd.xmgl.util.HikvisionUtil;
|
||||||
|
import com.zhgd.xmgl.util.MapBuilder;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import net.javacrumbs.shedlock.core.SchedulerLock;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.annotation.Lazy;
|
||||||
|
import org.springframework.scheduling.annotation.Scheduled;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("xmgl/task")
|
||||||
|
public class HikvisionTask {
|
||||||
|
|
||||||
|
@Lazy
|
||||||
|
@Autowired
|
||||||
|
private HikvisionCall hikvisionCall;
|
||||||
|
@Lazy
|
||||||
|
@Autowired
|
||||||
|
private ProjectMapper projectMapper;
|
||||||
|
@Lazy
|
||||||
|
@Autowired
|
||||||
|
private EnterpriseInfoServiceImpl enterpriseInfoService;
|
||||||
|
@Lazy
|
||||||
|
@Autowired
|
||||||
|
private XzHikvisionCompareDataMapper xzHikvisionCompareDataMapper;
|
||||||
|
@Lazy
|
||||||
|
@Autowired
|
||||||
|
private RedisRepository redisRepository;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据校验同步
|
||||||
|
*/
|
||||||
|
@SchedulerLock(name = "dataCompare", lockAtMostFor = 1000 * 60 * 60, lockAtLeastFor = 1000 * 60 * 5)
|
||||||
|
@Scheduled(cron = "0 0 3 * * ?")
|
||||||
|
@RequestMapping("dataCompare")
|
||||||
|
public void dataCompare() throws Exception {
|
||||||
|
List<Project> projects = projectMapper.selectList(new LambdaQueryWrapper<Project>().eq(Project::getSyncHikvision, 1));
|
||||||
|
for (Project project : projects) {
|
||||||
|
compareHikvision(project);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void compareHikvision(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);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
log.error("数据校验同步失败,调用海康ISC获取企业列表失败,projectSn:{} ,err:{}", project.getProjectSn(), JSON.toJSONString(rtJo));
|
||||||
|
//key:1组织2人员信息3人员照片4车辆信息
|
||||||
|
addException(project, rtJo);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
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()));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -9,7 +9,6 @@ import com.hikvision.artemis.sdk.Response;
|
|||||||
import com.hikvision.artemis.sdk.constant.Constants;
|
import com.hikvision.artemis.sdk.constant.Constants;
|
||||||
import com.hikvision.artemis.sdk.enums.Method;
|
import com.hikvision.artemis.sdk.enums.Method;
|
||||||
import com.zhgd.jeecg.common.execption.OpenAlertException;
|
import com.zhgd.jeecg.common.execption.OpenAlertException;
|
||||||
import liquibase.pro.packaged.O;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
@ -146,4 +145,8 @@ public class HikvisionUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static void addPageParamIfAbsent(JSONObject param) {
|
||||||
|
param.putIfAbsent("pageNo", 1);
|
||||||
|
param.putIfAbsent("pageSize", 1000);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user