|
@@ -1,14 +1,18 @@
|
|
|
package com.zfjg.manage.sync.remote;
|
|
|
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.map.MapUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.ReflectUtil;
|
|
|
import cn.hutool.http.HttpUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.zfjg.common.core.constant.CacheConstants;
|
|
|
import com.zfjg.common.core.enums.JobTypeEnum;
|
|
|
import com.zfjg.common.core.exception.ServiceException;
|
|
|
+import com.zfjg.common.core.utils.StringUtils;
|
|
|
import com.zfjg.common.core.web.domain.AjaxResult;
|
|
|
import com.zfjg.manage.api.domain.device.Device;
|
|
|
import com.zfjg.manage.api.domain.enforce.job.EnforceJob;
|
|
@@ -23,6 +27,8 @@ import com.zfjg.manage.api.dto.enforce.job.EnforceJobFireRoomDTO;
|
|
|
import com.zfjg.manage.api.sync.EnforceJobSyncReport;
|
|
|
import com.zfjg.manage.api.sync.EnforceVideoSync;
|
|
|
import com.zfjg.manage.config.Constant;
|
|
|
+import com.zfjg.manage.mapper.CommMapper;
|
|
|
+import com.zfjg.manage.service.UserRedisCacheService;
|
|
|
import com.zfjg.manage.service.approve.IEnforceApproveTempleteService;
|
|
|
import com.zfjg.manage.service.device.IDeviceService;
|
|
|
import com.zfjg.manage.service.enforce.job.IEnforceJobReportService;
|
|
@@ -30,9 +36,13 @@ import com.zfjg.manage.service.enforce.job.IEnforceJobService;
|
|
|
import com.zfjg.manage.service.enforce.obj.*;
|
|
|
import com.zfjg.manage.service.enforce.video.IEnforceVideoService;
|
|
|
import com.zfjg.manage.service.random.IRandomTaskNotifyService;
|
|
|
+import com.zfjg.manage.task.job.StartEventDto;
|
|
|
+import com.zfjg.manage.utils.GaoDeMapUtil;
|
|
|
+import com.zfjg.system.api.domain.SysDictData;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.http.HttpEntity;
|
|
|
import org.springframework.http.HttpHeaders;
|
|
@@ -41,6 +51,7 @@ import org.springframework.http.ResponseEntity;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.web.client.RestTemplate;
|
|
|
|
|
|
+import javax.annotation.Resource;
|
|
|
import java.io.Serializable;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
@@ -56,6 +67,10 @@ public class DefaultLjZfjgSyncDataService implements ILjZfjgSyncDataService {
|
|
|
private String LJ_ZFJD_BASE_URL;
|
|
|
@Value("${data.sync.enabled}")
|
|
|
private Boolean enabled;
|
|
|
+ @Value("${data.sync.fireRoomEnable}")
|
|
|
+ private Boolean fireRoomEnable;
|
|
|
+ @Resource
|
|
|
+ private CommMapper commMapper;
|
|
|
private final RestTemplate restTemplate;
|
|
|
private final IEnforceObjService enforceObjService;
|
|
|
private final IEnforceObjServiceExtend enforceObjServiceExtend;
|
|
@@ -67,6 +82,7 @@ public class DefaultLjZfjgSyncDataService implements ILjZfjgSyncDataService {
|
|
|
private final IRandomTaskNotifyService randomTaskNotifyService;
|
|
|
private final IEnforceJobService enforceJobService;
|
|
|
private final IEnforceJobReportService enforceJobReportService;
|
|
|
+ private UserRedisCacheService userRedisCacheService;
|
|
|
private final IEnforceObjArchitectureService enforceObjArchitectureService;
|
|
|
|
|
|
/**
|
|
@@ -304,32 +320,111 @@ public class DefaultLjZfjgSyncDataService implements ILjZfjgSyncDataService {
|
|
|
|
|
|
@Override
|
|
|
public void updateFireRoom() {
|
|
|
+ System.out.println("消控室接口");
|
|
|
+ System.out.println(enabled);
|
|
|
if (!enabled) {
|
|
|
- log.info("未开启消控室接口");
|
|
|
+ System.out.println("未开启消控室接口");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (!fireRoomEnable) {
|
|
|
+ System.out.println("未开启消控室执行计划");
|
|
|
return;
|
|
|
}
|
|
|
List<EnforceJobFireRoomDTO> enforceJobFireRoomDTOS = enforceObjServiceExtend.enforceJobFireRoomList();
|
|
|
if (enforceJobFireRoomDTOS.isEmpty()) {
|
|
|
- log.info("未找到不合格的消控室");
|
|
|
+ System.out.println("未找到不合格的消控室");
|
|
|
return;
|
|
|
}
|
|
|
+ System.out.println("不合格的消控室" + enforceJobFireRoomDTOS);
|
|
|
+ Map<String, String> stringStringMap = enforceJobFireRoomDTOS.stream().collect(Collectors.toMap(EnforceJobFireRoomDTO::getEnforceObjId, EnforceJobFireRoomDTO::getJobId));
|
|
|
List<String> ids = enforceJobFireRoomDTOS.stream().map(EnforceJobFireRoomDTO::getEnforceObjId).collect(Collectors.toList());
|
|
|
+ List<EnforceObj> enforceObjs = enforceObjService.listByIds(ids);
|
|
|
+ System.out.println("不合格的消控室执法对象" + enforceObjs);
|
|
|
+ for (EnforceObj enforceObj : enforceObjs) {
|
|
|
+ String eventCondition = "A11";
|
|
|
+ if (ObjectUtil.isNotEmpty(enforceObj.getPlaceType())) {
|
|
|
+ SysDictData dictDataCache = commMapper.selectDeptByQuery(CacheConstants.PLACE_TYPE, enforceObj.getPlaceType());
|
|
|
+ String dictLabel = dictDataCache.getDictLabel();
|
|
|
+ if ("生产、制造火灾危险性较大的烟草、汽车、冶金、造纸、纺织、电器、电子工业等中型以上企业、劳动密集型生产、加工企业".contains(dictLabel)) {
|
|
|
+ eventCondition = "A01";
|
|
|
+ }
|
|
|
+ if (dictLabel.contains("学校")) {
|
|
|
+ eventCondition = "A2";
|
|
|
+ }
|
|
|
+ if (dictLabel.contains("养老院") || dictLabel.contains("福利院")) {
|
|
|
+ eventCondition = "A3";
|
|
|
+ }
|
|
|
+ if (dictLabel.contains("物业服务企业") || dictLabel.contains("高层居住建筑")) {
|
|
|
+ eventCondition = "A4";
|
|
|
+ }
|
|
|
+ if (dictLabel.contains("客运车站") || dictLabel.contains("码头") || dictLabel.contains("民用机场")) {
|
|
|
+ eventCondition = "A5";
|
|
|
+ }
|
|
|
+ if (dictLabel.contains("粮") || dictLabel.contains("棉") || dictLabel.contains("百货") || dictLabel.contains("仓库") || dictLabel.contains("堆场")) {
|
|
|
+ eventCondition = "A6";
|
|
|
+ }
|
|
|
+ if ("宾馆(饭店)、托儿所、幼儿园、公共娱乐场所、公共图书馆、展览馆、博物馆、档案馆、医院、文物保护单位、旅游、宗教活动场所".contains(dictLabel)) {
|
|
|
+ eventCondition = "A7";
|
|
|
+ }
|
|
|
+ if ("地下铁道、地下观光隧道交通隧道等地下公共建筑、体育场所、会堂、国家机关单位、区县级以下的(外资)银行、保险机构、其他公众聚集场所、高层公共建筑、重要的科研单位".contains(dictLabel)) {
|
|
|
+ eventCondition = "A9";
|
|
|
+ }
|
|
|
+ if ("易燃易爆化学物品的生产充装、储存、供应、销售单位、发电厂(站)和电网经营企业、广播电台、电视台和邮政、通信枢纽".contains(dictLabel)) {
|
|
|
+ eventCondition = "A10";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ System.out.println(enforceObj.getEnforceObjName() + " 发送至发送数据到IRS交互应用不是两江新区走的情形为: " + eventCondition);
|
|
|
+ //发送数据到IRS交互应用
|
|
|
+ String address = Optional.of(enforceObj).map(EnforceObj::getEnforceObjAddress).orElse("");
|
|
|
+ if (!address.contains("两江新区")) {
|
|
|
+ System.out.println(enforceObj.getEnforceObjName() + " 发送至发送数据到IRS交互应用不是两江新区");
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (!stringStringMap.containsKey(enforceObj.getId())) {
|
|
|
+ System.out.println(enforceObj.getEnforceObjName() + " 发送至发送数据到IRS交互应用找不到ID");
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ String jobId = stringStringMap.get(enforceObj.getId());
|
|
|
+ EnforceJob enforceJob = enforceJobService.getById(jobId);
|
|
|
|
|
|
- List<EnforceObjArchitecture> enforceObjArchitectures = enforceObjArchitectureService.list(new LambdaQueryWrapper<EnforceObjArchitecture>().in(EnforceObjArchitecture::getEnforceObjId, ids));
|
|
|
- if (ObjectUtil.isEmpty(enforceObjArchitectures)) {
|
|
|
- log.info("未找到消控室一件事儿建筑信息");
|
|
|
- return;
|
|
|
- }
|
|
|
+ JSONObject response = GaoDeMapUtil.geoEncode(enforceJob.getStartLongitude(), enforceJob.getStartLatitude());
|
|
|
+ String streetName = Optional.of(response).filter(it -> it.containsKey("regeocode"))
|
|
|
+ .map(it -> it.getJSONObject("regeocode"))
|
|
|
+ .filter(it -> it.containsKey("addressComponent"))
|
|
|
+ .map(it -> it.getJSONObject("addressComponent"))
|
|
|
+ .filter(it -> it.containsKey("township"))
|
|
|
+ .map(it -> it.getString("township")).orElse("");
|
|
|
+ if (StringUtils.isEmpty(streetName)) {
|
|
|
+ System.out.println(enforceObj.getEnforceObjName() + "发送至发送数据到IRS交互应用找不到街道");
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ StartEventDto startEventDto = new StartEventDto();
|
|
|
+ startEventDto.setAreaName("两江新区");
|
|
|
+ startEventDto.setEventCondition(eventCondition);
|
|
|
+ startEventDto.setEventType(5);
|
|
|
+ startEventDto.setBelongCounty("500199");
|
|
|
+ startEventDto.setEventContent(enforceObj.getEnforceObjName() + "消控室执法检查");
|
|
|
+ startEventDto.setEventTitle(enforceObj.getEnforceObjName() + "消控室执法检查");
|
|
|
+ startEventDto.setProcessId(" ");
|
|
|
+ startEventDto.setSource("zfjg");
|
|
|
+ startEventDto.setAddress(enforceObj.getEnforceObjAddress());
|
|
|
+ startEventDto.setStreetName(streetName);
|
|
|
+ startEventDto.setPhoneNumber(enforceObj.getContactPhone());
|
|
|
+ startEventDto.setLon(enforceJob.getStartLongitude());
|
|
|
+ startEventDto.setLat(enforceJob.getStartLatitude());
|
|
|
|
|
|
- List<String> remoteArchitectureIds = enforceObjArchitectures.stream().map(EnforceObjArchitecture::getArchitectureId).collect(Collectors.toList());
|
|
|
- for (String remoteArchitectureId : remoteArchitectureIds) {
|
|
|
- String response = HttpUtil.createPost("https://zzgl.cq119.gov.cn/api/fams-base/base/task/" + remoteArchitectureId + "/fireRoom?describe=消控室隐患上报")
|
|
|
+ Map<String, Object> param = BeanUtil.beanToMap(startEventDto, false, true);
|
|
|
+ log.error("单位发送至发送数据到IRS交互应用参数: {}", JSON.toJSONString(param));
|
|
|
+ String startEventString = HttpUtil.createPost("http://183.66.101.165:9408/api/event/start/v1")
|
|
|
+ .body(JSON.toJSONString(param))
|
|
|
.execute()
|
|
|
.sync()
|
|
|
.body();
|
|
|
- log.info("执行消控室建筑推送: {}", response);
|
|
|
- }
|
|
|
+ System.out.println("单位发送至发送数据到IRS交互应用: " + startEventString);
|
|
|
+ log.error("单位发送至发送数据到IRS交互应用: {}", startEventString);
|
|
|
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private HttpHeaders auth(HttpHeaders requestHeaders) {
|