Commit 2cb81c97 authored by 单奇雲's avatar 单奇雲

冲突

parents 60155ad9 baec1ff4
package com.yeejoin.amos.fas.common.enums;
/**
* @author suhg
*/
public enum DataRefreshTypeEum {
/**
* 数据刷新触发原因
*/
dateChange("日切","dateChange"),
rpn("rpn变化","rpn"),
alarm("设备报警","alarm"),
monitor("监测数据","monitor"),
planTask("检查任务","planTask"),
check("巡检","check"),
trouble("设备故障","trouble"),
dutyChange("值班信息","dutyChange");
private String code;
private String name;
DataRefreshTypeEum(String code,String name){
this.name = name;
this.code = code;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package com.yeejoin.amos.fas.common.enums;
import java.util.ArrayList;
import java.util.List;
/**
* @author suhg
*/
public enum View3dRefreshAreaEum {
/**
* 3d页面数据区域
* 3d页面数据区域(triggerBy枚举定义见DataRefreshTypeEum.java)
*/
all("全部区域","all"),
today_safety_index("今日安全指数","today_safety_index"),
fire_safety("消防安全执行","fire_safety"),
week_safety_index("一周安全指数趋势","week_safety_index"),
today_check_status("今日巡检情况","today_check_status"),
today_duty("今日值班","today_duty");
all("全部区域", "all", "dateChange"),
today_safety_index("今日安全指数", "today_safety_index", "rpn,check,trouble"),
fire_safety("消防安全执行", "fire_safety", "alarm,rpn,check,trouble"),
monitor_data("设备状态检测数据","monitor_data","monitor"),
error_status("异常区域", "error_status", "rpn,trouble"),
week_safety_index("一周安全指数趋势", "week_safety_index", "rpn"),
today_check_status("今日巡检情况", "today_check_status", "planTask,check"),
today_duty("今日值班", "today_duty", "dutyChange");
private String code;
private String name;
View3dRefreshAreaEum(String name,String code){
private String triggerBy;
View3dRefreshAreaEum(String name, String code, String triggerBy) {
this.name = name;
this.code = code;
this.triggerBy = triggerBy;
}
public String getCode() {
......@@ -40,4 +48,31 @@ public enum View3dRefreshAreaEum {
public void setName(String name) {
this.name = name;
}
public String getTriggerBy() {
return triggerBy;
}
public void setTriggerBy(String triggerBy) {
this.triggerBy = triggerBy;
}
public static List<View3dRefreshAreaEum> getEumListByTrigger(String trigger) {
List<View3dRefreshAreaEum> eumList = new ArrayList<>();
for (View3dRefreshAreaEum eum : View3dRefreshAreaEum.values()) {
if (eum.getTriggerBy().contains(trigger)) {
eumList.add(eum);
}
}
return eumList;
}
public static View3dRefreshAreaEum getEumByCode(String code) {
for (View3dRefreshAreaEum eum : View3dRefreshAreaEum.values()) {
if (code.equals(eum.getCode())) {
return eum;
}
}
return null;
}
}
package com.yeejoin.amos.fas.dao.entity;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import java.math.BigDecimal;
import java.util.Date;
/**
* The persistent class for the fire_car database table.
*
* 安全指数日流水
*/
@Entity
@Table(name="f_safety_index_change_log")
@NamedQuery(name="SafetyIndexChangeLog.findAll", query="SELECT s FROM SafetyIndexChangeLog s")
public class SafetyIndexChangeLog implements Serializable{
private static final long serialVersionUID = 1L;
public class SafetyIndexChangeLog extends BasicEntity{
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name = "ID",nullable=false,unique=true)
private Long id;
/**
* 安全指数
*/
@Column(name="safety_index")
private BigDecimal safetyIndex;
/**
* 流水日期
*/
@Column(name="collect_date")
private Date collectDate;
/**
* 机构
*/
@Column(name="org_code")
private String orgCode;
/**
* 备注
*/
@Column(name="remark")
private String remark;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public BigDecimal getSafetyIndex() {
return safetyIndex;
}
......
package com.yeejoin.amos.fas.business.controller;
import com.yeejoin.amos.fas.business.service.intfc.IDataRefreshService;
import com.yeejoin.amos.fas.core.util.CommonResponse;
import com.yeejoin.amos.fas.core.util.CommonResponseUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author suhg
*/
@RestController
@RequestMapping("/api/data")
@Api(tags = "三维屏数据刷新api")
public class DataRefreshController {
@Autowired
private IDataRefreshService dataRefreshService;
/**
* 全景监控执行数据刷新
* @return success
*/
@ApiOperation(value = "全景监控执行数据刷新",notes = "check-巡检记录,planTask-执行数据")
@GetMapping(value = "refresh/{dataType}")
public CommonResponse checkDataRefresh(@PathVariable String dataType){
dataRefreshService.refreshViewData(dataType);
return CommonResponseUtil.success();
}
}
......@@ -8,7 +8,6 @@ import com.yeejoin.amos.fas.business.service.intfc.IExcelService;
import com.yeejoin.amos.fas.business.util.FileHelper;
import com.yeejoin.amos.fas.core.util.CommonResponse;
import com.yeejoin.amos.fas.core.util.CommonResponseUtil;
import com.yeejoin.amos.fas.core.util.FileUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
......@@ -19,7 +18,6 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.UUID;
......@@ -72,7 +70,7 @@ public class ExcelController extends BaseController {
@ApiOperation(value = "导出数据", notes = "导出数据")
@PostMapping(value = "/export")
//@Authorization(ingore = true)
//@Authorization(ingore = true)
public void export(HttpServletResponse response,
@ApiParam(value = "data:导出数据;model:导出模板", required = true) @RequestParam String exportType,
@ApiParam(value = "point:监测点;equipment:设备", required = true) @RequestParam String modelName,
......
......@@ -14,7 +14,6 @@ import com.yeejoin.amos.fas.core.util.CommonResponseUtil;
import com.yeejoin.amos.fas.dao.entity.Fmea;
import com.yeejoin.amos.fas.dao.entity.RiskSource;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
......@@ -33,7 +32,7 @@ import java.util.List;
@Api(tags = "风险模型api")
public class RiskModelController extends BaseController {
private final Logger log = LoggerFactory.getLogger(RiskLevelController.class);
private final Logger log = LoggerFactory.getLogger(RiskModelController.class);
@Autowired
private IRiskSourceService riskSourceService;
......
......@@ -49,6 +49,7 @@ public class View3dController extends BaseController {
public CommonResponse getRegionTree() {
ReginParams reginParams =getSelectedOrgInfo();
String orgCode = this.getOrgCode(reginParams);
//TODO:待删除
orgCode = "10";
String channelType = this.getChannelType();
return CommonResponseUtil.success(riskSourceService.findRegionTree(channelType,orgCode));
......@@ -59,6 +60,7 @@ public class View3dController extends BaseController {
public CommonResponse getRegionDetail(@PathVariable("riskSourceId") Long riskSourceId) {
ReginParams reginParams =getSelectedOrgInfo();
String orgCode = this.getOrgCode(reginParams);
//TODO:待删除
orgCode = "10";
String channelType = this.getChannelType();
return CommonResponseUtil.success(riskSourceService.findRegionById(riskSourceId,orgCode,channelType));
......@@ -87,6 +89,7 @@ public class View3dController extends BaseController {
if(ResourceTypeDefEnum.containsTypeCode(type)) {
ReginParams reginParams =getSelectedOrgInfo();
String orgCode = this.getOrgCode(reginParams);
//TODO:待删除
orgCode = "10";
String channelType = this.getChannelType();
return CommonResponseUtil.success(view3dService.getPointTreeByType(type,orgCode,channelType));
......@@ -99,6 +102,7 @@ public class View3dController extends BaseController {
public CommonResponse getPointDetail(String type,Long pointId) {
ReginParams reginParams =getSelectedOrgInfo();
String orgCode = this.getOrgCode(reginParams);
//TODO:待删除
orgCode = "1*2";
return CommonResponseUtil.success(view3dService.getPointDetailByTypeAndId(type,pointId,orgCode));
}
......@@ -108,6 +112,7 @@ public class View3dController extends BaseController {
public CommonResponse safetyIndexWeek(String type,Long pointId) {
ReginParams reginParams =getSelectedOrgInfo();
String orgCode = this.getOrgCode(reginParams);
//TODO:待删除
orgCode = "10";
return CommonResponseUtil.success(view3dService.getSafetyIndexWeek(orgCode));
}
......@@ -117,6 +122,7 @@ public class View3dController extends BaseController {
public CommonResponse getSafetyIndexInfoByDate(@RequestParam(name = "date",required = false) String date){
ReginParams reginParams =getSelectedOrgInfo();
String orgCode = this.getOrgCode(reginParams);
//TODO:待删除
orgCode = "1*2";
return CommonResponseUtil.success(view3dService.getSafetyIndexInfoByDate(orgCode,date));
}
......@@ -152,6 +158,7 @@ public class View3dController extends BaseController {
public CommonResponse getSafetyExecuteListTop5(@PathVariable("type")String type){
ReginParams reginParams =getSelectedOrgInfo();
String orgCode = this.getOrgCode(reginParams);
//TODO:待删除
orgCode = "1*2";
return CommonResponseUtil.success(view3dService.getSafetyExecuteListTop5(type,orgCode));
}
......@@ -187,6 +194,7 @@ public class View3dController extends BaseController {
public CommonResponse initViewNode(String type){
ReginParams reginParams =getSelectedOrgInfo();
String orgCode = this.getOrgCode(reginParams);
//TODO:待删除
orgCode = "1*2";
return CommonResponseUtil.success(view3dService.initViewErrorNode(type,orgCode));
}
......@@ -200,11 +208,16 @@ public class View3dController extends BaseController {
return CommonResponseUtil.success(view3dService.get3dPointsByModel(orgCode,model));
}
@Scheduled(cron = "${param.safetyIndexchange.cron}")
@ApiOperation(value = "更新安全指数",notes = "更新安全指数")
@GetMapping(value = "safetyIndex/refresh")
public CommonResponse safetyIndexRefresh(){
view3dService.safetyIndexRefresh();
@Scheduled(cron = "${param.safetyIndexChange.cron}")
public CommonResponse safetyIndexLog(){
view3dService.safetyIndexLogGenJob(null);
return CommonResponseUtil.success();
}
@ApiOperation(value = "安全指数日流生成",notes = "安全指数日流生成定时任务")
@GetMapping(value = "safetyIndex/schJobTest")
public CommonResponse safetyIndexLog(@ApiParam(value = "格式:yyyy-MM-dd") @RequestParam String runData){
view3dService.safetyIndexLogGenJob(runData);
return CommonResponseUtil.success();
}
......
package com.yeejoin.amos.fas.business.service.impl;
import com.alibaba.fastjson.JSON;
import com.yeejoin.amos.fas.business.feign.RemoteWebSocketServer;
import com.yeejoin.amos.fas.business.service.intfc.IDataRefreshService;
import com.yeejoin.amos.fas.common.enums.View3dRefreshAreaEum;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 数据刷新
*/
@Service("dataRefreshService")
public class DataRefreshServiceImpl implements IDataRefreshService {
private final Logger log = LoggerFactory.getLogger(DataRefreshServiceImpl.class);
@Autowired
private RemoteWebSocketServer remoteWebSocketServer;
@Override
public void refreshViewData(String dataType) {
/*
* check 巡检数据刷新(影响区域:消防安全执行、今日巡检)
* planTask 执行数据刷新(影响区域:今日巡检)
*/
Map<String,Object> param = new HashMap<>();
List<View3dRefreshAreaEum> notifyAreaList = View3dRefreshAreaEum.getEumListByTrigger(dataType);
notifyAreaList.forEach(eum->{
param.clear();
param.put("refreshType",eum.getCode());
this.notifyDataRefresh(param);
});
}
@Override
public void sendRefreshDataWithArea(String areaType, Map content) {
Map<String,Object> sendData = new HashMap<>(2);
sendData.put("refreshType",areaType);
sendData.put("content",content);
this.notifyDataRefresh(sendData);
}
private void notifyDataRefresh(Map<String, Object> param) {
try {
remoteWebSocketServer.sendMessage("3dViewMessage", JSON.toJSONString(param));
} catch (Exception e) {
log.error("通知前端数据刷新失败-->"+JSON.toJSONString(param));
}
}
}
package com.yeejoin.amos.fas.business.service.impl;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import javax.annotation.PostConstruct;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.redis.core.HashOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import org.typroject.tyboot.component.cache.Redis;
import org.typroject.tyboot.component.cache.enumeration.CacheType;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.google.common.collect.Lists;
......@@ -44,27 +7,9 @@ import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import com.yeejoin.amos.fas.business.bo.BindRegionBo;
import com.yeejoin.amos.fas.business.constants.FasConstant;
import com.yeejoin.amos.fas.business.dao.mapper.FireEquipMapper;
import com.yeejoin.amos.fas.business.dao.mapper.FireEquipPointMapper;
import com.yeejoin.amos.fas.business.dao.mapper.FmeaEquipmentPointMapper;
import com.yeejoin.amos.fas.business.dao.mapper.FmeaMapper;
import com.yeejoin.amos.fas.business.dao.mapper.FmeaPointInputitemMapper;
import com.yeejoin.amos.fas.business.dao.mapper.ImpAndFireEquipMapper;
import com.yeejoin.amos.fas.business.dao.mapper.RiskSourceMapper;
import com.yeejoin.amos.fas.business.dao.mapper.*;
import com.yeejoin.amos.fas.business.dao.mongo.EquipCommunicationDao;
import com.yeejoin.amos.fas.business.dao.repository.IContingencyOriginalDataDao;
import com.yeejoin.amos.fas.business.dao.repository.IDictDao;
import com.yeejoin.amos.fas.business.dao.repository.IEvaluationModelDao;
import com.yeejoin.amos.fas.business.dao.repository.IFireEquipmentDao;
import com.yeejoin.amos.fas.business.dao.repository.IFireEquipmentDataDao;
import com.yeejoin.amos.fas.business.dao.repository.IFireEquipmentPointDao;
import com.yeejoin.amos.fas.business.dao.repository.IFmeaDao;
import com.yeejoin.amos.fas.business.dao.repository.IPPointDao;
import com.yeejoin.amos.fas.business.dao.repository.IPreplanPictureDao;
import com.yeejoin.amos.fas.business.dao.repository.IRiskFactorDao;
import com.yeejoin.amos.fas.business.dao.repository.IRiskLevelDao;
import com.yeejoin.amos.fas.business.dao.repository.IRiskSourceDao;
import com.yeejoin.amos.fas.business.dao.repository.IRpnChangeLogDao;
import com.yeejoin.amos.fas.business.dao.repository.*;
import com.yeejoin.amos.fas.business.feign.RemoteRuleServer;
import com.yeejoin.amos.fas.business.feign.RemoteSecurityService;
import com.yeejoin.amos.fas.business.feign.RemoteWebSocketServer;
......@@ -74,42 +19,41 @@ import com.yeejoin.amos.fas.business.jpush.PushMsgParam;
import com.yeejoin.amos.fas.business.param.AlarmParam;
import com.yeejoin.amos.fas.business.param.CommonPageInfoParam;
import com.yeejoin.amos.fas.business.param.FmeaBindParam;
import com.yeejoin.amos.fas.business.service.intfc.IContingencyInstance;
import com.yeejoin.amos.fas.business.service.intfc.IEquipmentService;
import com.yeejoin.amos.fas.business.service.intfc.IRiskSourceService;
import com.yeejoin.amos.fas.business.service.intfc.Node3dVoService;
import com.yeejoin.amos.fas.business.service.model.CheckInputItemRo;
import com.yeejoin.amos.fas.business.service.model.ContingencyDeviceStatus;
import com.yeejoin.amos.fas.business.service.model.ContingencyRo;
import com.yeejoin.amos.fas.business.service.model.FireEquimentDataRo;
import com.yeejoin.amos.fas.business.service.model.ProtalDataRo;
import com.yeejoin.amos.fas.business.service.model.RiskSourceRo;
import com.yeejoin.amos.fas.business.service.model.RiskSourceRuleRo;
import com.yeejoin.amos.fas.business.service.intfc.*;
import com.yeejoin.amos.fas.business.service.model.*;
import com.yeejoin.amos.fas.business.util.DateUtils;
import com.yeejoin.amos.fas.business.util.JexlUtil;
import com.yeejoin.amos.fas.business.vo.EquipCommunicationData;
import com.yeejoin.amos.fas.client.invoke.RsDataQueue;
import com.yeejoin.amos.fas.common.enums.DataRefreshTypeEum;
import com.yeejoin.amos.fas.core.common.request.CommonPageable;
import com.yeejoin.amos.fas.core.common.response.RegionTreeResponse;
import com.yeejoin.amos.fas.core.common.response.RiskSourceTreeResponse;
import com.yeejoin.amos.fas.dao.entity.ContingencyOriginalData;
import com.yeejoin.amos.fas.dao.entity.Dict;
import com.yeejoin.amos.fas.dao.entity.Equipment;
import com.yeejoin.amos.fas.dao.entity.EvaluationModel;
import com.yeejoin.amos.fas.dao.entity.FireEquipment;
import com.yeejoin.amos.fas.dao.entity.FireEquipmentData;
import com.yeejoin.amos.fas.dao.entity.FireEquipmentPoint;
import com.yeejoin.amos.fas.dao.entity.Fmea;
import com.yeejoin.amos.fas.dao.entity.FmeaEquipmentPoint;
import com.yeejoin.amos.fas.dao.entity.FmeaPointInputitem;
import com.yeejoin.amos.fas.dao.entity.PPoint;
import com.yeejoin.amos.fas.dao.entity.PreplanPicture;
import com.yeejoin.amos.fas.dao.entity.RiskFactor;
import com.yeejoin.amos.fas.dao.entity.RiskLevel;
import com.yeejoin.amos.fas.dao.entity.RiskSource;
import com.yeejoin.amos.fas.dao.entity.RpnChangeLog;
import com.yeejoin.amos.fas.dao.entity.*;
import com.yeejoin.amos.fas.exception.YeeException;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.redis.core.HashOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import org.typroject.tyboot.component.cache.Redis;
import org.typroject.tyboot.component.cache.enumeration.CacheType;
import javax.annotation.PostConstruct;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
@Service("riskSourceService")
......@@ -226,6 +170,9 @@ public class RiskSourceServiceImpl implements IRiskSourceService {
return Redis.genKey(CacheType.ERASABLE.name(), "CONTINGENCYRUNING");
}
@Autowired
private IDataRefreshService iDataRefreshService;
@Override
public RiskSource editRiskSource(HashMap<String, Object> map) throws Exception {
RiskSource riskSource = (RiskSource) map.get("param");
......@@ -263,7 +210,7 @@ public class RiskSourceServiceImpl implements IRiskSourceService {
node3dVoService.syncData(() -> node3dVoService.incrementalCreate(Node3dVoService.DATATYPE_RISKSOURCE));
else
node3dVoService.syncData(() -> node3dVoService.incrementalUpdate(Node3dVoService.DATATYPE_RISKSOURCE));
iDataRefreshService.refreshViewData(DataRefreshTypeEum.rpn.getCode());
return riskSource;
}
......@@ -292,7 +239,7 @@ public class RiskSourceServiceImpl implements IRiskSourceService {
//同步数据
node3dVoService.syncData(() -> node3dVoService.incrementalRemove(Node3dVoService.DATATYPE_RISKSOURCE));
iDataRefreshService.refreshViewData(DataRefreshTypeEum.rpn.getCode());
}
@Override
......@@ -914,6 +861,7 @@ public class RiskSourceServiceImpl implements IRiskSourceService {
RsDataQueue rsDataQueue = RsDataQueue.getInstance();
fmeaIds.forEach(fmeaId -> rsDataQueue.addPatrolMessage(fmeaId));
}
iDataRefreshService.refreshViewData(DataRefreshTypeEum.check.getCode());
//asymbleWithParent(bacthNo,riskSources, ProtalDataRo.class.getSimpleName(),protalData.getId(),protalData.getNodeState(),protalData.getOriginalNodeState(),protalData.getPointInputitems());
}
......@@ -1196,9 +1144,13 @@ public class RiskSourceServiceImpl implements IRiskSourceService {
redisTemplate.opsForHash().put("currentContingency", "contingencyPlan", null);
redisTemplate.opsForHash().put("currentContingency", "alarmType", null);
// redisTemplate.opsForValue().set("equipmentId", null);
//通知刷新3d页面告警数据
iDataRefreshService.refreshViewData(DataRefreshTypeEum.alarm.getCode());
} else {
if ("alarm_type_trouble".equals(fireEquipmentPointType)) {
notifyAlarm(fireEquipmentPoint, deviceData);
//通知刷新3d页面相关故障数据
iDataRefreshService.refreshViewData(DataRefreshTypeEum.trouble.getCode());
}
String alarmType = (String) redisTemplate.opsForHash().get("currentContingency", "alarmType");
if (!ObjectUtils.isEmpty(alarmType) && dict.getDictValue().equals(alarmType)) {
......@@ -1234,6 +1186,14 @@ public class RiskSourceServiceImpl implements IRiskSourceService {
fireEquipmentData.setType("monitor");
}
iFireEquipmentDataDao.save(fireEquipmentData);
if (!"alarm_type_fire".equals(fireEquipmentPointType)) {
Map<String,Object> content = new HashMap<>();
content.put("id",fireEquipmentData.getId());
content.put("label",fireEquipmentData.getEqPointName());
content.put("changeDate",fireEquipmentData.getCreateDate());
iDataRefreshService.sendRefreshDataWithArea(DataRefreshTypeEum.monitor.getCode(),content);
}
}
@Override
......@@ -1688,6 +1648,7 @@ public class RiskSourceServiceImpl implements IRiskSourceService {
jpushRiskSourceMessage("风险点告警", jpushTarget);
notifyRule(riskSourceId, rpn, rpni, oldRiskLevel.getLevel(), newRiskLevel.getLevel(), notifyType);
}
iDataRefreshService.refreshViewData(DataRefreshTypeEum.rpn.getCode());
}
private void jpushRiskSourceMessage(String content, String jpushTarget) {
......
......@@ -33,44 +33,35 @@ import com.yeejoin.amos.fas.business.bo.SafetyExecuteBo;
import com.yeejoin.amos.fas.business.constants.FasConstant;
import com.yeejoin.amos.fas.business.dao.mapper.PatrolMapper;
import com.yeejoin.amos.fas.business.dao.mapper.View3dMapper;
import com.yeejoin.amos.fas.business.dao.repository.IEquipmentDao;
import com.yeejoin.amos.fas.business.dao.repository.IFireCarDao;
import com.yeejoin.amos.fas.business.dao.repository.IFireEquipmentDao;
import com.yeejoin.amos.fas.business.dao.repository.IFireStationDao;
import com.yeejoin.amos.fas.business.dao.repository.IRiskLevelDao;
import com.yeejoin.amos.fas.business.dao.repository.IRiskSourceDao;
import com.yeejoin.amos.fas.business.dao.repository.ISafetyIndexChangeLogDao;
import com.yeejoin.amos.fas.business.dao.repository.IWaterResourceDao;
import com.yeejoin.amos.fas.business.dao.repository.*;
import com.yeejoin.amos.fas.business.feign.IDutyModeServer;
import com.yeejoin.amos.fas.business.feign.RemoteWebSocketServer;
import com.yeejoin.amos.fas.business.service.intfc.IDataRefreshService;
import com.yeejoin.amos.fas.business.service.intfc.IView3dService;
import com.yeejoin.amos.fas.business.vo.ErrorContentVo;
import com.yeejoin.amos.fas.business.vo.ExceptionRegionVo;
import com.yeejoin.amos.fas.business.vo.SafetyIndexDetailVo;
import com.yeejoin.amos.fas.business.vo.TodaySafetyIndexVo;
import com.yeejoin.amos.fas.business.vo.View3dNodeVo;
import com.yeejoin.amos.fas.common.enums.CheckStatusEnum;
import com.yeejoin.amos.fas.common.enums.PlanTaskDetailStatusEnum;
import com.yeejoin.amos.fas.common.enums.ResourceTypeDefEnum;
import com.yeejoin.amos.fas.common.enums.RpnChangeTypeEum;
import com.yeejoin.amos.fas.common.enums.StatisticsErrorTypeEum;
import com.yeejoin.amos.fas.common.enums.View3dRefreshAreaEum;
import com.yeejoin.amos.fas.core.common.request.CommonPageable;
import com.yeejoin.amos.fas.business.vo.*;
import com.yeejoin.amos.fas.common.enums.*;
import com.yeejoin.amos.fas.core.common.request.DateUtil;
import com.yeejoin.amos.fas.core.common.response.Node3DVoResponse;
import com.yeejoin.amos.fas.core.common.response.RegionTreeResponse;
import com.yeejoin.amos.fas.core.util.CommonResponse;
import com.yeejoin.amos.fas.core.util.CommonResponseUtil;
import com.yeejoin.amos.fas.core.util.StringUtil;
import com.yeejoin.amos.fas.dao.entity.Equipment;
import com.yeejoin.amos.fas.dao.entity.FireCar;
import com.yeejoin.amos.fas.dao.entity.FireEquipment;
import com.yeejoin.amos.fas.dao.entity.FireStation;
import com.yeejoin.amos.fas.dao.entity.RiskLevel;
import com.yeejoin.amos.fas.dao.entity.RiskSource;
import com.yeejoin.amos.fas.dao.entity.SafetyIndexChangeLog;
import com.yeejoin.amos.fas.dao.entity.WaterResource;
import com.yeejoin.amos.fas.dao.entity.*;
import com.yeejoin.amos.fas.exception.YeeException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author DELL
......@@ -109,6 +100,9 @@ public class View3dServiceImpl implements IView3dService {
@Value("${param.system.online.date}")
private String onLineDate;
@Autowired
private IDataRefreshService iDataRefreshService;
@Override
......@@ -538,38 +532,26 @@ public class View3dServiceImpl implements IView3dService {
}
@Override
public void safetyIndexRefresh() {
try {
List<RiskSource> riskSources = iRiskSourceDao.findByParentId(0l);
List<SafetyIndexChangeLog> sageTyIndexs = new ArrayList<>();
sageTyIndexs = riskSources.stream().map(riskSource -> {
public void safetyIndexLogGenJob(String runData) {
Date collectDate = StringUtil.isNotEmpty(runData) ? DateUtil.formatDate(runData,DateUtil.DATE_DEFAULT_FORMAT) : DateUtil.getDayBefore(new Date());
//1.安全指数流水生成
try {
List<RiskSource> riskSources = iRiskSourceDao.findByParentId(0L);
List<SafetyIndexChangeLog> safetyIndexChangeLogs = new ArrayList<>();
safetyIndexChangeLogs = riskSources.stream().map(riskSource -> {
SafetyIndexChangeLog safetyIndexChangeLog = new SafetyIndexChangeLog();
safetyIndexChangeLog.setOrgCode(riskSource.getOrgCode());
double changeRpnToSafetyIndex = this.changeRpnToSafetyIndex(riskSource.getRpn());
safetyIndexChangeLog.setSafetyIndex(BigDecimal.valueOf(changeRpnToSafetyIndex));
safetyIndexChangeLog.setCollectDate(new Date());
safetyIndexChangeLog.setCollectDate(collectDate);
return safetyIndexChangeLog;
}).collect(Collectors.toList());;
iSafetyIndexChangeLogDao.saveAll(sageTyIndexs);
iSafetyIndexChangeLogDao.saveAll(safetyIndexChangeLogs);
} catch (Exception e) {
log.error("更新失败: " + e.getMessage());
e.printStackTrace();
}
this.sendRefreshDate();
}
//推送刷新数据消息
private void sendRefreshDate() {
HashMap<String, String> message = new HashMap<>();
message.put("refreshType", View3dRefreshAreaEum.all.getCode());
try {
remoteWebSocketServer.sendMessage("refreshDate", JSON.toJSONString(message));
} catch (Exception e) {
log.error("推送消息失败!!!");
e.printStackTrace();
log.error("安全指数流水生成失败: " + e.getMessage());
}
//2.通知日切进行数据刷新
iDataRefreshService.refreshViewData(DataRefreshTypeEum.dateChange.getCode());
}
@Override
......@@ -586,3 +568,4 @@ public class View3dServiceImpl implements IView3dService {
return CommonResponseUtil.success(result);
}
}
package com.yeejoin.amos.fas.business.service.intfc;
import java.util.Map;
/**
* @author suhg
*/
public interface IDataRefreshService {
/**
* 数据刷新
* @param dataType 触发数据类型
*/
void refreshViewData(String dataType);
/**
* 推送刷新数据
* @param areaType 刷新区域
* @param content 数据对象
*/
void sendRefreshDataWithArea(String areaType, Map content);
}
......@@ -130,11 +130,13 @@ public interface IView3dService {
CommonResponse get3dPointsByModel(String orgCode,String model);
/**
* 刷新安全指数
* 安全指数流水生成
* @param runData 日切日期
*/
void safetyIndexRefresh();
void safetyIndexLogGenJob(String runData);
List<Node3DVoResponse> find3dViewDataByType(String type);
CommonResponse retrieveAll(String type, String inputText, int current, int pageSize,String orgCode);
}
package com.yeejoin.amos.fas.config;
import com.yeejoin.amos.fas.core.util.StringUtil;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.EnableCaching;
......@@ -89,7 +90,7 @@ public class Config {
factory.setPort(port);
factory.setTimeout(timeout);
factory.setDatabase(database);
factory.setPassword(password);
factory.setPassword(StringUtil.isNotEmpty(password) ? password : null );
return factory;
}
......
......@@ -12,7 +12,7 @@ eureka.client.healthcheck.enabled = true
eureka.client.fetchRegistry = true
#DB properties:
spring.datasource.url=jdbc:mysql://47.103.14.66:3306/91-safety-business?serverTimezone=UTC&&useSSL=false&&allowMultiQueries=true&serverTimezone=GMT&characterEncoding=utf8
spring.datasource.url=jdbc:mysql://47.103.14.66:3306/91-safety-business?allowMultiQueries=true&serverTimezone=GMT%2B8&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root_123
spring.datasource.driver-class-name = com.mysql.jdbc.Driver
......
......@@ -12,7 +12,7 @@ eureka.client.healthcheck.enabled = true
eureka.client.fetchRegistry = true
#DB properties:
spring.datasource.url=jdbc:mysql://amos-mysql:3306/yeejoin_safety_business?serverTimezone=UTC&&useSSL=false&&allowMultiQueries=true&serverTimezone=GMT&characterEncoding=utf8
spring.datasource.url=jdbc:mysql://amos-mysql:3306/yeejoin_safety_business?allowMultiQueries=true&serverTimezone=GMT%2B8&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=yeejoin_1234
spring.datasource.driver-class-name = com.mysql.jdbc.Driver
......
......@@ -12,7 +12,7 @@ eureka.client.healthcheck.enabled = true
eureka.client.fetchRegistry = true
#DB properties:
spring.datasource.url=jdbc:mysql://47.103.14.66:3306/91-safety-business?serverTimezone=UTC&&useSSL=false&&allowMultiQueries=true&serverTimezone=GMT&characterEncoding=utf8
spring.datasource.url=jdbc:mysql://47.103.14.66:3306/91-safety-business?allowMultiQueries=true&serverTimezone=GMT%2B8&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root_123
spring.datasource.driver-class-name = com.mysql.jdbc.Driver
......
spring.application.name = AMOS-FIREAUTOSYS
spring.application.name = AMOS-FIREAUTOSYS-SUHG
server.port = 8083
......@@ -44,7 +44,7 @@ spring.http.multipart.MaxRequestSize = 50480000
windows.img.path = D:\\
linux.img.path = /
#
param.safetyIndexchange.cron = 0 0 2 * * ?
dutyMode.fegin.name=AMOSDUTYMODE
param.safetyIndexChange.cron = 0 0 2 * * ?
......@@ -182,6 +182,7 @@
<column name="type"/>
</createIndex>
</changeSet>
<changeSet author="shanqiyun" id="1588067351000-1">
<preConditions onFail="MARK_RAN">
......@@ -192,6 +193,18 @@
<comment>f_risk_source add column route_path </comment>
<sql>
alter table f_risk_source add column `route_path` varchar(2000) DEFAULT NULL COMMENT '路径坐标' after `position3d`;
</sql>
</changeSet>
<changeSet author="suhuiguang" id="1588140925893-1">
<preConditions onFail="MARK_RAN">
<not>
<columnExists tableName="f_safety_index_change_log" columnName="create_date"/>
</not>
</preConditions>
<comment>f_safety_index_change_log add column create_date</comment>
<sql>
alter table `f_safety_index_change_log` add column `create_date` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间';
</sql>
</changeSet>
</databaseChangeLog>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment