package cn.huge.module.timer;
|
|
import cn.huge.base.common.bo.R;
|
import cn.huge.base.common.utils.AesUtils;
|
import cn.huge.base.common.utils.DateUtils;
|
import cn.huge.base.common.utils.IdUtils;
|
import cn.huge.base.common.utils.ObjectUtils;
|
import cn.huge.module.client.api.impl.MediateClientImpl;
|
import cn.huge.module.grid.domain.dto.CasePersonDTO;
|
import cn.huge.module.grid.domain.dto.GridCaseInfoDTO;
|
import cn.huge.module.grid.domain.dto.RegisterSaveDTO;
|
import cn.huge.module.grid.domain.po.GridEvent;
|
import cn.huge.module.grid.domain.vo.GridCaseDataVo;
|
import cn.huge.module.grid.service.GridCaseDataService;
|
import cn.huge.module.grid.service.GridCaseTaskService;
|
import cn.huge.module.grid.service.GridEventService;
|
import cn.huge.module.kind.domain.po.SyCause;
|
import cn.huge.module.kind.service.SyCauseService;
|
import cn.huge.module.mediate.constant.CaseBaseConstsEnum;
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.TypeReference;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import java.text.ParseException;
|
import java.time.LocalDateTime;
|
import java.time.ZoneId;
|
import java.time.ZonedDateTime;
|
import java.time.format.DateTimeFormatter;
|
import java.time.temporal.ChronoUnit;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Map;
|
|
@Slf4j
|
@RestController
|
@RequestMapping("/api/web/GridCaseTimer")
|
public class GridCityCaseTimer {
|
private static final ZoneId TARGET_ZONE = ZoneId.of("Asia/Shanghai"); // 指定目标时区(东八区)
|
|
@Autowired
|
private GridCaseDataService gridCaseDataService;
|
|
@Autowired
|
private MediateClientImpl mediateClient;
|
|
@Autowired
|
private GridEventService gridEventService;
|
@Autowired
|
private SyCauseService syCauseService;
|
|
@Autowired
|
private GridCaseTaskService gridCaseTaskService;
|
;
|
|
/**
|
* 每小时调用一次外部 API 获取网格案件数据,并将符合条件的数据进行注册
|
*/
|
@Scheduled(cron = "0 0 * * * *") // 每小时整点执行
|
@GetMapping("/callExternalApiHourly")
|
public void callExternalApiHourly() throws ParseException {
|
log.info("开始自动定时任务-查询网格事件待办数据");
|
Date nowDate = DateUtils.getNowDate();
|
List<String> canalSecondList = new ArrayList<>();
|
canalSecondList.add("12");
|
canalSecondList.add("13");
|
canalSecondList.add("07");
|
// 获取东八区的当前时间
|
ZonedDateTime now = ZonedDateTime.now(TARGET_ZONE);
|
// 计算前30分钟的开始和结束(基于东八区)
|
// ZonedDateTime previousHourEnd = now;
|
// ZonedDateTime previousHourStart = now.minusMinutes(30);
|
|
ZonedDateTime previousHourStart = now.minusHours(1).truncatedTo(ChronoUnit.HOURS);
|
ZonedDateTime previousHourEnd = previousHourStart.plusHours(1).minusSeconds(1);
|
// 定义日期时间格式化器,用于将字符串时间转换为 LocalDateTime 对象
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
// 转换为指定格式的字符串
|
String startTime = previousHourStart.format(formatter);
|
String endTime = previousHourEnd.format(formatter);
|
log.info("startTime:" + startTime);
|
log.info("endTime:" + endTime);
|
// 定义一个列表,用于存储需要查询的网格代码
|
List<String> gridCodeList = new ArrayList<>();
|
// 添加网格代码
|
gridCodeList.add("4EA72FE5D04DB211BA8AC668CAF37559");
|
gridCodeList.add("3A632FE5D04DB21158817B55B0E8AB5F");
|
gridCodeList.add("7F992FE5D04DB21165BD627A8F5ACA32");
|
gridCodeList.add("B2C22FE5D04DB211FEA3475DDF9AEB5E");
|
gridCodeList.add("A0DD2FE5D04DB211B2B9CD3B287F841D");
|
gridCodeList.add("4C722FE5D04DB2116493ADE5D6494478");
|
gridCodeList.add("1DB52FE5D04DB2119F8348AD7E808120");
|
gridCodeList.add("7E7F2FE5D04DB2115F907B0F5F67C34F");
|
gridCodeList.add("AE8B2FE5D04DB21155B3E951CC40434E");
|
gridCodeList.add("034330E5D04DB2113B82DD5ACF603428");
|
gridCodeList.add("2DD02FE5D04DB21196B89D6DA03F0813");
|
// 创建一个 GridCaseDataVo 对象,用于封装查询条件
|
GridCaseDataVo gridCaseDataVo = new GridCaseDataVo();
|
// 设置查询的开始报告时间
|
gridCaseDataVo.setStartReportTime(startTime);
|
// 设置查询的结束报告时间
|
gridCaseDataVo.setEndReportTime(endTime);
|
// 设置查询的页码
|
gridCaseDataVo.setPage(1);
|
// 设置查询的每页数量
|
gridCaseDataVo.setPageSize(300);
|
// 设置是否查询总数的标志
|
gridCaseDataVo.setSearchCountFlag(true);
|
for (String canalSecond : canalSecondList) {
|
gridCaseDataVo.setBusinessSource("02");
|
gridCaseDataVo.setInfoSource(canalSecond);
|
// 遍历网格代码列表
|
for (String gridCode : gridCodeList) {
|
// 设置当前查询的网格代码
|
gridCaseDataVo.setCurrentOrgId(gridCode);
|
// 调用外部接口,获取案件数据列表
|
R<List<GridCaseInfoDTO>> result = gridCaseDataService.getCaseDataList(true, gridCaseDataVo);
|
// 检查接口调用是否成功
|
if (0 == result.getCode()) {
|
// 获取接口返回的案件信息列表
|
List<GridCaseInfoDTO> gridCaseInfoDTOList = result.getData();
|
log.info("xsd获取到协同推送数据:{}" + gridCaseInfoDTOList);
|
// 遍历案件信息列表
|
for (GridCaseInfoDTO gridCaseInfoDTO : gridCaseInfoDTOList) {
|
try {
|
// 检查案件信息是否存在
|
// 创建一个 RegisterSaveDTO 对象,用于封装需要注册的案件信息
|
RegisterSaveDTO registerSaveDTO = new RegisterSaveDTO();
|
QueryWrapper<GridEvent> gridEventQueryWrapper = new QueryWrapper<>();
|
gridEventQueryWrapper.eq("id", gridCaseInfoDTO.getId());
|
GridEvent gridEventold = null;
|
gridEventold = gridEventService.getOne(gridEventQueryWrapper);
|
GridEvent gridEvent = new GridEvent();
|
if (ObjectUtils.isEmpty(gridEventold)) {
|
String uploadPolice = "";
|
String uploadPolicePhone = "";
|
String jfmc = "";
|
String fxdj = "";
|
String zrmj = "";
|
String zrga = "";
|
String jyff = "";
|
String tcr = "";
|
String tcqk = "";
|
String tcjg = "";
|
String tcfa = "";
|
String certiNo = "";
|
String plaintiffs = "";
|
String phone = "";
|
|
if (StringUtils.isNotBlank(gridCaseInfoDTO.getLinkman())) {
|
uploadPolice = AesUtils.decrypt(gridCaseInfoDTO.getLinkman(), "W90akz7tA7tyMn5tNTynG69YM2E8jGfF");
|
}
|
if (StringUtils.isNotBlank(gridCaseInfoDTO.getContactTel())) {
|
uploadPolicePhone = AesUtils.decrypt(gridCaseInfoDTO.getContactTel(), "W90akz7tA7tyMn5tNTynG69YM2E8jGfF");
|
}
|
try {
|
if (StringUtils.isNotBlank(gridCaseInfoDTO.getExtInfo())) {
|
JSONObject jsonObject = JSON.parseObject(gridCaseInfoDTO.getExtInfo());
|
zrga = jsonObject.get("tcdwMc").toString();
|
zrmj = jsonObject.get("zrmj").toString();
|
fxdj = jsonObject.get("fxdj").toString();
|
jfmc = jsonObject.get("jfmc").toString();
|
registerSaveDTO.setGridHandle(zrga + "--" + zrmj);
|
}
|
} catch (Exception e) {
|
log.error("解析extInfo失败,事件id:{" + gridCaseInfoDTO.getId() + "}; 解析内容:" + gridCaseInfoDTO.getExtInfo() + "失败原因:" + e.getMessage());
|
}
|
try {
|
if (StringUtils.isNotBlank(gridCaseInfoDTO.getExtInfoTcqk())) {
|
List<Map<String, Object>> expInfoTcqkMapList = JSON.parseObject(gridCaseInfoDTO.getExtInfoTcqk(),
|
new TypeReference<List<Map<String, Object>>>() {
|
});
|
for (Map expInfoMap : expInfoTcqkMapList) {
|
tcr = expInfoMap.get("tcr").toString();
|
tcqk = expInfoMap.get("tcqk").toString();
|
tcjg = expInfoMap.get("tcjgMc").toString();
|
tcfa = expInfoMap.get("tcfa").toString();
|
}
|
}
|
} catch (Exception e) {
|
log.error("解析extInfo失败,事件id:{" + gridCaseInfoDTO.getId() + "}; 解析内容:" + gridCaseInfoDTO.getExtInfo() + "失败原因:" + e.getMessage());
|
}
|
registerSaveDTO.setTcqk(uploadPolice + " -- " + uploadPolicePhone + " -- " + fxdj + " -- " + zrmj + " -- " + tcr + " -- " + tcfa + " -- " + tcqk);
|
try {
|
if (StringUtils.isNotBlank(gridCaseInfoDTO.getExtInfoRisk())) {
|
List<Map<String, Object>> expInfoMapList = JSON.parseObject(gridCaseInfoDTO.getExtInfoRisk(),
|
new TypeReference<List<Map<String, Object>>>() {
|
});
|
List<CasePersonDTO> casePersonDTOList = new ArrayList<>();
|
for (Map expInfoMap : expInfoMapList) {
|
CasePersonDTO casePersonDTO = new CasePersonDTO();
|
String name = "";
|
certiNo = "";
|
String mobile = "";
|
if (StringUtils.isNotBlank(expInfoMap.get("cardNumber").toString())) {
|
certiNo = expInfoMap.get("cardNumber").toString();
|
}
|
if (StringUtils.isNotBlank(expInfoMap.get("name").toString())) {
|
name = expInfoMap.get("name").toString();
|
}
|
if (StringUtils.isNotBlank(expInfoMap.get("contactPhone").toString())) {
|
mobile = expInfoMap.get("contactPhone").toString();
|
}
|
casePersonDTO.setMobile(mobile);
|
casePersonDTO.setTrueName(name);
|
casePersonDTO.setCertiNo(certiNo);
|
casePersonDTOList.add(casePersonDTO);
|
gridEvent.setCertiNo(certiNo);
|
|
if (StringUtils.isNotBlank(plaintiffs)) {
|
if (!plaintiffs.contains(name))
|
plaintiffs = plaintiffs + "," + name;
|
} else {
|
plaintiffs = name;
|
}
|
if (StringUtils.isNotBlank(phone)) {
|
if (!phone.contains(mobile))
|
phone = phone + "," + mobile;
|
} else {
|
phone = mobile;
|
}
|
if (StringUtils.isNotBlank(gridEvent.getCertiNo())) {
|
gridEvent.setCertiNo(gridEvent.getCertiNo() + "," + certiNo);
|
} else {
|
gridEvent.setCertiNo(certiNo);
|
}
|
}
|
registerSaveDTO.setPersonList(casePersonDTOList);
|
}
|
} catch (Exception e) {
|
log.error("解析extInfo失败,事件id:{" + gridCaseInfoDTO.getId() + "}; 解析内容:" + gridCaseInfoDTO.getExtInfo() + "失败原因:" + e.getMessage());
|
}
|
registerSaveDTO.setId(IdUtils.getNewTimeId());
|
BeanUtils.copyProperties(gridCaseInfoDTO, gridEvent);
|
registerSaveDTO.setCreateTime(DateUtils.StringToDate(gridCaseInfoDTO.getCreateTime(), "yyyy-MM-dd HH:mm:ss"));
|
gridEvent.setLinkman(uploadPolice);
|
gridEvent.setSystemId(gridCaseInfoDTO.getSystemId());
|
gridEvent.setContactTel(uploadPolicePhone);
|
gridEvent.setSysOrgId(gridCode);
|
gridEvent.setCaseId(registerSaveDTO.getId());
|
gridEvent.setCreateTime(nowDate);
|
gridEvent.setUpdateTime(nowDate);
|
gridEventService.save(gridEvent);
|
log.info("xsd保存事件:{}" + gridEvent);
|
//设置二级事件来源
|
if (canalSecond.equals("12")) {
|
registerSaveDTO.setCanal(CaseBaseConstsEnum.CASE_CANAL_4.getIndex());
|
registerSaveDTO.setCanalName(CaseBaseConstsEnum.CASE_CANAL_4.getDes());
|
registerSaveDTO.setCanalSecond(CaseBaseConstsEnum.CASE_CANAL_SECOND_1.getIndex());
|
registerSaveDTO.setCanalSecondName(CaseBaseConstsEnum.CASE_CANAL_SECOND_1.getDes());
|
} else if (canalSecond.equals("13")) {
|
registerSaveDTO.setCanal(CaseBaseConstsEnum.CASE_CANAL_3.getIndex());
|
registerSaveDTO.setCanalName(CaseBaseConstsEnum.CASE_CANAL_3.getDes());
|
registerSaveDTO.setCanalSecond(CaseBaseConstsEnum.CASE_CANAL_SECOND_7.getIndex());
|
registerSaveDTO.setCanalSecondName(CaseBaseConstsEnum.CASE_CANAL_SECOND_7.getDes());
|
} else {
|
registerSaveDTO.setCanal(CaseBaseConstsEnum.CASE_CANAL_3.getIndex());
|
registerSaveDTO.setCanalName(CaseBaseConstsEnum.CASE_CANAL_3.getDes());
|
registerSaveDTO.setCanalSecond(CaseBaseConstsEnum.CASE_CANAL_SECOND_2.getIndex());
|
registerSaveDTO.setCanalSecondName(CaseBaseConstsEnum.CASE_CANAL_SECOND_2.getDes());
|
}
|
|
// 设置案件标题
|
registerSaveDTO.setCaseTitle(gridCaseInfoDTO.getTitle());
|
registerSaveDTO.setCaseDes(gridCaseInfoDTO.getEventContent());
|
registerSaveDTO.setCaseClaim("");
|
// 设置案件类型
|
registerSaveDTO.setCaseType(gridCaseInfoDTO.getEntryItemCode());
|
// 设置案件类型名称
|
log.info("xsd设置事件类型");
|
if (StringUtils.isNotBlank(gridCaseInfoDTO.getEntryItemId())) {
|
SyCause syCause = null;
|
syCause = syCauseService.getCaseTypeById(gridCaseInfoDTO.getEntryItemId());
|
SyCause parentCaseType = syCauseService.getParentCaseTypeById(syCause.getId());
|
if (ObjectUtils.isNotEmpty(syCause) && ObjectUtils.isNotEmpty(parentCaseType)) {
|
registerSaveDTO.setCaseType(syCause.getId());
|
registerSaveDTO.setCaseTypeName(syCause.getName());
|
registerSaveDTO.setCaseTypeFirst(syCause.getParentId());
|
registerSaveDTO.setCaseTypeFirstName(parentCaseType.getName());
|
} else {
|
registerSaveDTO.setCaseType("24_02-72");
|
registerSaveDTO.setCaseTypeName("其他");
|
registerSaveDTO.setCaseTypeFirst("24_01-11");
|
registerSaveDTO.setCaseTypeName("其他");
|
}
|
} else {
|
registerSaveDTO.setCaseType("24_02-72");
|
registerSaveDTO.setCaseTypeName("其他");
|
registerSaveDTO.setCaseTypeFirst("24_01-11");
|
registerSaveDTO.setCaseTypeName("其他");
|
}
|
log.info("xsd设置事件其他信息");
|
// 将字符串时间转换为 LocalDateTime 对象
|
LocalDateTime eventTimeLocalDateTime = LocalDateTime.parse(gridCaseInfoDTO.getEventTime(), formatter);
|
// 将 LocalDateTime 对象转换为 Date 对象,设置为案件发生时间
|
Date occurTime = Date.from(eventTimeLocalDateTime.atZone(TARGET_ZONE).toInstant());
|
registerSaveDTO.setOccurTime(occurTime);
|
// 设置案件发生的经度
|
registerSaveDTO.setWgLng(gridCaseInfoDTO.getEventY());
|
// 设置案件发生的纬度
|
registerSaveDTO.setWgLat(gridCaseInfoDTO.getEventX());
|
// 设置案件发生的地址
|
registerSaveDTO.setAddr(gridCaseInfoDTO.getAddress());
|
// 截取网格代码的前10位
|
String gridCode1 = gridCaseInfoDTO.getGridCode();
|
if (gridCode1.startsWith("44-")) {
|
registerSaveDTO.setGridCode(formatCode(gridCode1));
|
} else {
|
registerSaveDTO.setGridCode(gridCaseInfoDTO.getGridCode().substring(0, 10));
|
}
|
registerSaveDTO.setPlaintiffs(plaintiffs);
|
registerSaveDTO.setPhone(phone);
|
String dyhUnitId = gridCaseTaskService.getGridUnitIdByUnitId(gridCode);
|
if (StringUtils.isNotBlank(dyhUnitId)) {
|
} else {
|
log.info("网格组织查询不到对应组织:" + gridCode);
|
}
|
log.info("开始录入矛调系统,请求体:" + JSON.toJSONString(registerSaveDTO));
|
String caseId = mediateClient.gridCaseRegister(registerSaveDTO);
|
|
log.info("结束录入矛调系统,{}", caseId);
|
}
|
} catch (Exception e) {
|
GridEvent gridEvent = new GridEvent();
|
BeanUtils.copyProperties(gridCaseInfoDTO, gridEvent);
|
gridEvent.setCaseId(null);
|
gridEventService.updateById(gridEvent);
|
log.error("录入矛调系统失败,事件id:{" + gridCaseInfoDTO.getId() + "};失败原因:" + e.getMessage());
|
}
|
}
|
}
|
}
|
}
|
log.info("结束自动定时任务-查询网格事件待办数据");
|
}
|
|
public String formatCode(String input) {
|
if (input == null || input.isEmpty()) {
|
return "";
|
}
|
|
String[] parts = input.split("-");
|
if (parts.length == 3) {
|
return parts[0] + parts[1] + parts[2];
|
} else if (parts.length >= 4) {
|
return parts[0] + parts[1] + parts[2] + "-" + parts[3];
|
} else {
|
return input; // 或抛出异常
|
}
|
}
|
|
/**
|
* 网格事件接口,自定义时间(补数据用)
|
*/
|
@GetMapping("/callExternalApiByTime")
|
public void callExternalApiByTime(@RequestParam(value = "startTime") String startTime,
|
@RequestParam(value = "endTime") String endTime) throws ParseException {
|
log.info("开始补录数据-查询网格事件待办数据");
|
Date nowDate = DateUtils.getNowDate();
|
List<String> canalSecondList = new ArrayList<>();
|
canalSecondList.add("12");
|
canalSecondList.add("13");
|
canalSecondList.add("07");
|
log.info("startTime:" + startTime);
|
log.info("endTime:" + endTime);
|
// 定义一个列表,用于存储需要查询的网格代码
|
List<String> gridCodeList = new ArrayList<>();
|
// 添加网格代码
|
gridCodeList.add("4EA72FE5D04DB211BA8AC668CAF37559");
|
gridCodeList.add("3A632FE5D04DB21158817B55B0E8AB5F");
|
gridCodeList.add("7F992FE5D04DB21165BD627A8F5ACA32");
|
gridCodeList.add("B2C22FE5D04DB211FEA3475DDF9AEB5E");
|
gridCodeList.add("A0DD2FE5D04DB211B2B9CD3B287F841D");
|
gridCodeList.add("4C722FE5D04DB2116493ADE5D6494478");
|
gridCodeList.add("1DB52FE5D04DB2119F8348AD7E808120");
|
gridCodeList.add("7E7F2FE5D04DB2115F907B0F5F67C34F");
|
gridCodeList.add("AE8B2FE5D04DB21155B3E951CC40434E");
|
gridCodeList.add("034330E5D04DB2113B82DD5ACF603428");
|
gridCodeList.add("2DD02FE5D04DB21196B89D6DA03F0813");
|
// 创建一个 GridCaseDataVo 对象,用于封装查询条件
|
// 创建一个 GridCaseDataVo 对象,用于封装查询条件
|
GridCaseDataVo gridCaseDataVo = new GridCaseDataVo();
|
// 设置查询的开始报告时间
|
gridCaseDataVo.setStartReportTime(startTime);
|
// 设置查询的结束报告时间
|
gridCaseDataVo.setEndReportTime(endTime);
|
// 设置查询的页码
|
gridCaseDataVo.setPage(1);
|
// 设置查询的每页数量
|
gridCaseDataVo.setPageSize(300);
|
// 设置是否查询总数的标志
|
gridCaseDataVo.setSearchCountFlag(true);
|
for (String canalSecond : canalSecondList) {
|
gridCaseDataVo.setBusinessSource("02");
|
gridCaseDataVo.setInfoSource(canalSecond);
|
// 遍历网格代码列表
|
for (String gridCode : gridCodeList) {
|
// 设置当前查询的网格代码
|
gridCaseDataVo.setCurrentOrgId(gridCode);
|
// 调用外部接口,获取案件数据列表
|
R<List<GridCaseInfoDTO>> result = gridCaseDataService.getCaseDataList(true, gridCaseDataVo);
|
// 检查接口调用是否成功
|
if (0 == result.getCode()) {
|
// 获取接口返回的案件信息列表
|
List<GridCaseInfoDTO> gridCaseInfoDTOList = result.getData();
|
log.info("xsd获取到协同推送数据:{}" + gridCaseInfoDTOList);
|
// 遍历案件信息列表
|
for (GridCaseInfoDTO gridCaseInfoDTO : gridCaseInfoDTOList) {
|
try {
|
// 检查案件信息是否存在
|
// 创建一个 RegisterSaveDTO 对象,用于封装需要注册的案件信息
|
RegisterSaveDTO registerSaveDTO = new RegisterSaveDTO();
|
QueryWrapper<GridEvent> gridEventQueryWrapper = new QueryWrapper<>();
|
gridEventQueryWrapper.eq("id", gridCaseInfoDTO.getId());
|
GridEvent gridEventold = null;
|
gridEventold = gridEventService.getOne(gridEventQueryWrapper);
|
GridEvent gridEvent = new GridEvent();
|
if (ObjectUtils.isEmpty(gridEventold)) {
|
String uploadPolice = "";
|
String uploadPolicePhone = "";
|
String jfmc = "";
|
String fxdj = "";
|
String zrmj = "";
|
String zrga = "";
|
String jyff = "";
|
String tcr = "";
|
String tcqk = "";
|
String tcjg = "";
|
String tcfa = "";
|
String certiNo = "";
|
String plaintiffs = "";
|
String phone = "";
|
|
if (StringUtils.isNotBlank(gridCaseInfoDTO.getLinkman())) {
|
uploadPolice = AesUtils.decrypt(gridCaseInfoDTO.getLinkman(), "W90akz7tA7tyMn5tNTynG69YM2E8jGfF");
|
}
|
if (StringUtils.isNotBlank(gridCaseInfoDTO.getContactTel())) {
|
uploadPolicePhone = AesUtils.decrypt(gridCaseInfoDTO.getContactTel(), "W90akz7tA7tyMn5tNTynG69YM2E8jGfF");
|
}
|
try {
|
if (StringUtils.isNotBlank(gridCaseInfoDTO.getExtInfo())) {
|
JSONObject jsonObject = JSON.parseObject(gridCaseInfoDTO.getExtInfo());
|
zrga = jsonObject.get("tcdwMc").toString();
|
zrmj = jsonObject.get("zrmj").toString();
|
fxdj = jsonObject.get("fxdj").toString();
|
jfmc = jsonObject.get("jfmc").toString();
|
registerSaveDTO.setGridHandle(zrga + "--" + zrmj);
|
}
|
} catch (Exception e) {
|
log.error("解析extInfo失败,事件id:{" + gridCaseInfoDTO.getId() + "}; 解析内容:" + gridCaseInfoDTO.getExtInfo() + "失败原因:" + e.getMessage());
|
}
|
try {
|
if (StringUtils.isNotBlank(gridCaseInfoDTO.getExtInfoTcqk())) {
|
List<Map<String, Object>> expInfoTcqkMapList = JSON.parseObject(gridCaseInfoDTO.getExtInfoTcqk(),
|
new TypeReference<List<Map<String, Object>>>() {
|
});
|
for (Map expInfoMap : expInfoTcqkMapList) {
|
tcr = expInfoMap.get("tcr").toString();
|
tcqk = expInfoMap.get("tcqk").toString();
|
tcjg = expInfoMap.get("tcjgMc").toString();
|
tcfa = expInfoMap.get("tcfa").toString();
|
}
|
}
|
} catch (Exception e) {
|
log.error("解析extInfo失败,事件id:{" + gridCaseInfoDTO.getId() + "}; 解析内容:" + gridCaseInfoDTO.getExtInfo() + "失败原因:" + e.getMessage());
|
}
|
registerSaveDTO.setTcqk(uploadPolice + " -- " + uploadPolicePhone + " -- " + fxdj + " -- " + zrmj + " -- " + tcr + " -- " + tcfa + " -- " + tcqk);
|
try {
|
if (StringUtils.isNotBlank(gridCaseInfoDTO.getExtInfoRisk())) {
|
List<Map<String, Object>> expInfoMapList = JSON.parseObject(gridCaseInfoDTO.getExtInfoRisk(),
|
new TypeReference<List<Map<String, Object>>>() {
|
});
|
List<CasePersonDTO> casePersonDTOList = new ArrayList<>();
|
for (Map expInfoMap : expInfoMapList) {
|
CasePersonDTO casePersonDTO = new CasePersonDTO();
|
String name = "";
|
certiNo = "";
|
String mobile = "";
|
if (StringUtils.isNotBlank(expInfoMap.get("cardNumber").toString())) {
|
certiNo = expInfoMap.get("cardNumber").toString();
|
}
|
if (StringUtils.isNotBlank(expInfoMap.get("name").toString())) {
|
name = expInfoMap.get("name").toString();
|
}
|
if (StringUtils.isNotBlank(expInfoMap.get("contactPhone").toString())) {
|
mobile = expInfoMap.get("contactPhone").toString();
|
}
|
casePersonDTO.setMobile(mobile);
|
casePersonDTO.setTrueName(name);
|
casePersonDTO.setCertiNo(certiNo);
|
casePersonDTOList.add(casePersonDTO);
|
gridEvent.setCertiNo(certiNo);
|
|
if (StringUtils.isNotBlank(plaintiffs)) {
|
if (!plaintiffs.contains(name))
|
plaintiffs = plaintiffs + "," + name;
|
} else {
|
plaintiffs = name;
|
}
|
if (StringUtils.isNotBlank(phone)) {
|
if (!phone.contains(mobile))
|
phone = phone + "," + mobile;
|
} else {
|
phone = mobile;
|
}
|
if (StringUtils.isNotBlank(gridEvent.getCertiNo())) {
|
gridEvent.setCertiNo(gridEvent.getCertiNo() + "," + certiNo);
|
} else {
|
gridEvent.setCertiNo(certiNo);
|
}
|
}
|
registerSaveDTO.setPersonList(casePersonDTOList);
|
}
|
} catch (Exception e) {
|
log.error("解析extInfo失败,事件id:{" + gridCaseInfoDTO.getId() + "}; 解析内容:" + gridCaseInfoDTO.getExtInfo() + "失败原因:" + e.getMessage());
|
}
|
registerSaveDTO.setId(IdUtils.getNewTimeId());
|
registerSaveDTO.setCreateTime(DateUtils.StringToDate(gridCaseInfoDTO.getCreateTime(), "yyyy-MM-dd HH:mm:ss"));
|
BeanUtils.copyProperties(gridCaseInfoDTO, gridEvent);
|
gridEvent.setSystemId(gridCaseInfoDTO.getSystemId());
|
gridEvent.setLinkman(uploadPolice);
|
gridEvent.setContactTel(uploadPolicePhone);
|
gridEvent.setSysOrgId(gridCode);
|
gridEvent.setCaseId(registerSaveDTO.getId());
|
gridEvent.setCreateTime(nowDate);
|
gridEvent.setUpdateTime(nowDate);
|
gridEventService.save(gridEvent);
|
log.info("xsd保存事件:{}" + gridEvent);
|
//设置二级事件来源
|
if (canalSecond.equals("12")) {
|
registerSaveDTO.setCanal(CaseBaseConstsEnum.CASE_CANAL_4.getIndex());
|
registerSaveDTO.setCanalName(CaseBaseConstsEnum.CASE_CANAL_4.getDes());
|
registerSaveDTO.setCanalSecond(CaseBaseConstsEnum.CASE_CANAL_SECOND_1.getIndex());
|
registerSaveDTO.setCanalSecondName(CaseBaseConstsEnum.CASE_CANAL_SECOND_1.getDes());
|
} else if (canalSecond.equals("13")) {
|
registerSaveDTO.setCanal(CaseBaseConstsEnum.CASE_CANAL_3.getIndex());
|
registerSaveDTO.setCanalName(CaseBaseConstsEnum.CASE_CANAL_3.getDes());
|
registerSaveDTO.setCanalSecond(CaseBaseConstsEnum.CASE_CANAL_SECOND_7.getIndex());
|
registerSaveDTO.setCanalSecondName(CaseBaseConstsEnum.CASE_CANAL_SECOND_7.getDes());
|
} else {
|
registerSaveDTO.setCanal(CaseBaseConstsEnum.CASE_CANAL_3.getIndex());
|
registerSaveDTO.setCanalName(CaseBaseConstsEnum.CASE_CANAL_3.getDes());
|
registerSaveDTO.setCanalSecond(CaseBaseConstsEnum.CASE_CANAL_SECOND_2.getIndex());
|
registerSaveDTO.setCanalSecondName(CaseBaseConstsEnum.CASE_CANAL_SECOND_2.getDes());
|
}
|
|
// 设置案件标题
|
registerSaveDTO.setCaseTitle(gridCaseInfoDTO.getTitle());
|
registerSaveDTO.setCaseDes(gridCaseInfoDTO.getEventContent());
|
registerSaveDTO.setCaseClaim("");
|
// 设置案件类型
|
registerSaveDTO.setCaseType(gridCaseInfoDTO.getEntryItemCode());
|
// 设置案件类型名称
|
log.info("xsd设置事件类型");
|
if (StringUtils.isNotBlank(gridCaseInfoDTO.getEntryItemId())) {
|
SyCause syCause = null;
|
syCause = syCauseService.getCaseTypeById(gridCaseInfoDTO.getEntryItemId());
|
SyCause parentCaseType = syCauseService.getParentCaseTypeById(syCause.getId());
|
if (ObjectUtils.isNotEmpty(syCause) && ObjectUtils.isNotEmpty(parentCaseType)) {
|
registerSaveDTO.setCaseType(syCause.getId());
|
registerSaveDTO.setCaseTypeName(syCause.getName());
|
registerSaveDTO.setCaseTypeFirst(syCause.getParentId());
|
registerSaveDTO.setCaseTypeFirstName(parentCaseType.getName());
|
} else {
|
registerSaveDTO.setCaseType("24_02-72");
|
registerSaveDTO.setCaseTypeName("其他");
|
registerSaveDTO.setCaseTypeFirst("24_01-11");
|
registerSaveDTO.setCaseTypeName("其他");
|
}
|
} else {
|
registerSaveDTO.setCaseType("24_02-72");
|
registerSaveDTO.setCaseTypeName("其他");
|
registerSaveDTO.setCaseTypeFirst("24_01-11");
|
registerSaveDTO.setCaseTypeName("其他");
|
}
|
log.info("xsd设置事件其他信息");
|
// 将字符串时间转换为 LocalDateTime 对象
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
LocalDateTime eventTimeLocalDateTime = LocalDateTime.parse(gridCaseInfoDTO.getEventTime(), formatter);
|
// 将 LocalDateTime 对象转换为 Date 对象,设置为案件发生时间
|
Date occurTime = Date.from(eventTimeLocalDateTime.atZone(TARGET_ZONE).toInstant());
|
registerSaveDTO.setOccurTime(occurTime);
|
// 设置案件发生的经度
|
registerSaveDTO.setWgLng(gridCaseInfoDTO.getEventY());
|
// 设置案件发生的纬度
|
registerSaveDTO.setWgLat(gridCaseInfoDTO.getEventX());
|
// 设置案件发生的地址
|
registerSaveDTO.setAddr(gridCaseInfoDTO.getAddress());
|
// 截取网格代码的前10位
|
String gridCode1 = gridCaseInfoDTO.getGridCode();
|
if (gridCode1.startsWith("44-")) {
|
registerSaveDTO.setGridCode(formatCode(gridCode1));
|
} else {
|
registerSaveDTO.setGridCode(gridCaseInfoDTO.getGridCode().substring(0, 10));
|
}
|
registerSaveDTO.setPlaintiffs(plaintiffs);
|
registerSaveDTO.setPhone(phone);
|
String dyhUnitId = gridCaseTaskService.getGridUnitIdByUnitId(gridCode);
|
if (StringUtils.isNotBlank(dyhUnitId)) {
|
registerSaveDTO.setWantUnitId(dyhUnitId);
|
} else {
|
log.info("网格组织查询不到对应组织:" + gridCode);
|
}
|
log.info("开始录入矛调系统,请求体:" + JSON.toJSONString(registerSaveDTO));
|
String caseId = mediateClient.gridCaseRegister(registerSaveDTO);
|
|
log.info("结束录入矛调系统,{}", caseId);
|
}
|
} catch (Exception e) {
|
GridEvent gridEvent = new GridEvent();
|
BeanUtils.copyProperties(gridCaseInfoDTO, gridEvent);
|
gridEvent.setCaseId(null);
|
gridEventService.updateById(gridEvent);
|
log.error("录入矛调系统失败,事件id:{" + gridCaseInfoDTO.getId() + "};失败原因:" + e.getMessage());
|
}
|
}
|
}
|
}
|
}
|
log.info("结束补录数据任务-查询网格事件待办数据");
|
}
|
}
|