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 canalSecondList = new ArrayList<>(); canalSecondList.add("12"); canalSecondList.add("13"); // 获取东八区的当前时间 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 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> result = gridCaseDataService.getCaseDataList(true, gridCaseDataVo); // 检查接口调用是否成功 if (0 == result.getCode()) { // 获取接口返回的案件信息列表 List gridCaseInfoDTOList = result.getData(); log.info("xsd获取到协同推送数据:{}" + gridCaseInfoDTOList); // 遍历案件信息列表 for (GridCaseInfoDTO gridCaseInfoDTO : gridCaseInfoDTOList) { try { // 检查案件信息是否存在 // 创建一个 RegisterSaveDTO 对象,用于封装需要注册的案件信息 RegisterSaveDTO registerSaveDTO = new RegisterSaveDTO(); QueryWrapper 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 ("07".equals(canalSecond)) { if (StringUtils.isNotBlank(gridCaseInfoDTO.getLinkman())) { uploadPolice = AesUtils.decrypt(gridCaseInfoDTO.getLinkman(), "W90akz7tA7tyMn5tNTynG69YM2E8jGfF"); } if (StringUtils.isNotBlank(gridCaseInfoDTO.getContactTel())) { uploadPolicePhone = AesUtils.decrypt(gridCaseInfoDTO.getContactTel(), "W90akz7tA7tyMn5tNTynG69YM2E8jGfF"); } } else if ("12".equals(canalSecond) || "13".equals(canalSecond)) { 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> expInfoTcqkMapList = JSON.parseObject(gridCaseInfoDTO.getExtInfoTcqk(), new TypeReference>>() { }); 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> expInfoMapList = JSON.parseObject(gridCaseInfoDTO.getExtInfoRisk(), new TypeReference>>() { }); List 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)) { 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("结束自动定时任务-查询网格事件待办数据"); } 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 canalSecondList = new ArrayList<>(); canalSecondList.add("12"); canalSecondList.add("13"); log.info("startTime:" + startTime); log.info("endTime:" + endTime); // 定义一个列表,用于存储需要查询的网格代码 List 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> result = gridCaseDataService.getCaseDataList(true, gridCaseDataVo); // 检查接口调用是否成功 if (0 == result.getCode()) { // 获取接口返回的案件信息列表 List gridCaseInfoDTOList = result.getData(); log.info("xsd获取到协同推送数据:{}" + gridCaseInfoDTOList); // 遍历案件信息列表 for (GridCaseInfoDTO gridCaseInfoDTO : gridCaseInfoDTOList) { try { // 检查案件信息是否存在 // 创建一个 RegisterSaveDTO 对象,用于封装需要注册的案件信息 RegisterSaveDTO registerSaveDTO = new RegisterSaveDTO(); QueryWrapper 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 ("07".equals(canalSecond)) { if (StringUtils.isNotBlank(gridCaseInfoDTO.getLinkman())) { uploadPolice = AesUtils.decrypt(gridCaseInfoDTO.getLinkman(), "W90akz7tA7tyMn5tNTynG69YM2E8jGfF"); } if (StringUtils.isNotBlank(gridCaseInfoDTO.getContactTel())) { uploadPolicePhone = AesUtils.decrypt(gridCaseInfoDTO.getContactTel(), "W90akz7tA7tyMn5tNTynG69YM2E8jGfF"); } } else if ("12".equals(canalSecond)) { 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> expInfoTcqkMapList = JSON.parseObject(gridCaseInfoDTO.getExtInfoTcqk(), new TypeReference>>() { }); 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> expInfoMapList = JSON.parseObject(gridCaseInfoDTO.getExtInfoRisk(), new TypeReference>>() { }); List 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("结束补录数据任务-查询网格事件待办数据"); } }