Commit d82d8697 authored by suhuiguang's avatar suhuiguang

1、删除9000服务相关接口

2、计算rpn修改
parent 84e09ca1
......@@ -72,6 +72,12 @@ public class RiskSource extends BasicEntity {
@Lob
private String ue4Extent;
/**
* 闪烁频率
*/
@Column(name = "flicker_frequency")
private Integer flickerFrequency;
private List<Fmea> fmeaList;
private List<RpnChangeLog> rpnChangeLogList;
......@@ -83,6 +89,14 @@ public class RiskSource extends BasicEntity {
return rpni;
}
public Integer getFlickerFrequency() {
return flickerFrequency;
}
public void setFlickerFrequency(Integer flickerFrequency) {
this.flickerFrequency = flickerFrequency;
}
public void setRpni(BigDecimal rpni) {
this.rpni = rpni;
}
......
......@@ -2,12 +2,7 @@ package com.yeejoin.amos.fas.dao.entity;
import com.fasterxml.jackson.annotation.JsonBackReference;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.*;
import java.math.BigDecimal;
......@@ -35,8 +30,22 @@ public class RpnChangeLog extends BasicEntity {
@Column(name = "trigger_by")
private Long triggerBy;
/**
* 触发变化类型(巡检、告警、评价、删除)
*/
@Column(name = "trigger_type")
private String triggerType;
private int type;
public String getTriggerType() {
return triggerType;
}
public void setTriggerType(String triggerType) {
this.triggerType = triggerType;
}
private RiskSource riskSource;
public RpnChangeLog() {
......
package com.yeejoin.amos.fas.business.controller;
import com.yeejoin.amos.fas.business.service.intfc.Node3dVoService;
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 io.swagger.annotations.ApiParam;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api/node3d")
@Api(tags="3d模型数据")
public class Node3dVoController extends BaseController {
private final Logger log = LoggerFactory.getLogger(Node3dVoController.class);
@Autowired
Node3dVoService node3dVoService;
/**
* 同步新增的3d数据
*
* @param dataType
* @return
*/
@ApiOperation(httpMethod = "POST",value = "同步新增的3d数据", notes = "同步新增的3d数据")
@RequestMapping(value = "/incremental/{dataType}", produces = "application/json;charset=UTF-8", method = RequestMethod.POST)
public CommonResponse incrementalCreate(@ApiParam(value = "数据类型" ,required = true) @PathVariable String dataType) {
node3dVoService.incrementalCreate(dataType);
return CommonResponseUtil.success("SUCCESS");
}
/**
* 同步已经删除的的3d数据
*
* @return
*/
@ApiOperation(httpMethod = "DELETE",value = "同步已经删除的的3d数据", notes = "同步已经删除的的3d数据")
@RequestMapping(value = "/incremental/{dataType}", produces = "application/json;charset=UTF-8", method = RequestMethod.DELETE)
public CommonResponse incrementalRemove(@ApiParam(value = "数据类型" ,required = true) @PathVariable String dataType) {
node3dVoService.incrementalRemove(dataType);
return CommonResponseUtil.success("SUCCESS");
}
/**
* 同步需要更新的的3d数据
*
* @return
*/
@ApiOperation(httpMethod = "PUT",value = "同步需要更新的的3d数据", notes = "同步需要更新的的3d数据")
@RequestMapping(value = "/incremental/{dataType}", produces = "application/json;charset=UTF-8", method = RequestMethod.PUT)
public CommonResponse incrementalUpdate(@ApiParam(value = "数据类型" ,required = true) @PathVariable String dataType) throws Exception{
node3dVoService.incrementalUpdate(dataType);
return CommonResponseUtil.success("SUCCESS");
}
/**
* 同步指定的数据类型,增加,删除,更新
*
* @return
*/
@ApiOperation(httpMethod = "PUT",value = "同步需要更新的的3d数据", notes = "同步需要更新的的3d数据")
@RequestMapping(value = "/incremental/dataType/{dataType}", produces = "application/json;charset=UTF-8", method = RequestMethod.PUT)
public CommonResponse incrementalDataType(@ApiParam(value = "数据类型" ,required = true) @PathVariable String dataType) throws Exception{
node3dVoService.incrementalDataType(dataType);
return CommonResponseUtil.success("SUCCESS");
}
/**
* 对所有数据类型进行同步,新增,更新,删除
*
* @return
*/
@ApiOperation(httpMethod = "PUT",value = "对所有数据类型进行同步,新增,更新,删除", notes = "对所有数据类型进行同步,新增,更新,删除")
@RequestMapping(value = "/whole/incremental", produces = "application/json;charset=UTF-8", method = RequestMethod.PUT)
public CommonResponse wholeIncremental() throws Exception{
node3dVoService.wholeIncremental();
return CommonResponseUtil.success("SUCCESS");
}
}
package com.yeejoin.amos.fas.business.dao.mapper;
import org.apache.ibatis.annotations.Param;
public interface Node3dVoMapper extends BaseMapper {
/**
* 风险点数据同步--新增
*/
Integer incrementalCreateRiskSource(@Param("rsId") Long rsId);
/**
* 风险点数据同步--删除
*/
Integer incrementalDeleteRiskSource(@Param("rsId") Long rsId);
/**
* 风险点数据同步--更新
*/
Integer incrementalUpdateRiskSource(@Param("rsId") Long rsId, @Param("frequency") Integer frequency);
/**
* 消防设备--新增
*/
Integer incrementalCreateFierEqumt(@Param("feId") Long feId);
/**
* 消防设备--删除
*/
Integer incrementalDeleteFierEqumt(@Param("feId") Long feId);
/**
* 消防设备--更新
*/
Integer incrementalUpdateFierEqumt(@Param("feId") Long feId);
/**
* 重点设备--新增
*/
Integer incrementalCreateImpEqumt(@Param("equipId") Long equipId);
/**
* 重点设备--删除
*/
Integer incrementalDeleteImpEqumt(@Param("equipId") Long equipId);
/**
* 重点设备--更新
*/
Integer incrementalUpdateImpEqumt(@Param("equipId") Long equipId);
/**
*消防车--新增
*/
Integer incrementalCreateFireCar(@Param("carId") Long carId);
/**
* 消防车--删除
*/
Integer incrementalDeleteFireCar(@Param("carId") Long carId);
/**
* 消防车--更新
*/
Integer incrementalUpdateFireCar(@Param("carId") Long carId);
/**
*消防室和泡沫间--新增
*/
Integer incrementalCreateStation(@Param("fsId") Long fsId);
/**
* 消防室和泡沫间--删除
*/
Integer incrementalDeleteStation(@Param("fsId") Long fsId);
/**
* 消防室和泡沫间--更新
*/
Integer incrementalUpdateStation(@Param("fsId") Long fsId);
/**
*水资源--新增
*/
Integer incrementalCreateWater(@Param("wrId") Long wrId);
/**
* 消防室和泡沫间--删除
*/
Integer incrementalDeleteWater(@Param("wrId") Long wrId);
/**
* 消防室和泡沫间--更新
*/
Integer incrementalUpdateWater(@Param("wrId") Long wrId);
}
......@@ -5,7 +5,6 @@ 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.ImpAndFireEquipMapper;
import com.yeejoin.amos.fas.business.dao.mapper.ImpEquipMapper;
import com.yeejoin.amos.fas.business.dao.mapper.Node3dVoMapper;
import com.yeejoin.amos.fas.business.dao.mongo.EquipCommunicationDao;
import com.yeejoin.amos.fas.business.dao.repository.IEquipmentDao;
import com.yeejoin.amos.fas.business.dao.repository.IEquipmentFireEquipmentDao;
......@@ -18,7 +17,6 @@ import com.yeejoin.amos.fas.core.common.request.CommonPageable;
import com.yeejoin.amos.fas.core.common.response.EquipDetailsResponse;
import com.yeejoin.amos.fas.core.util.DaoCriteria;
import com.yeejoin.amos.fas.core.util.query.BaseQuerySpecification;
import com.yeejoin.amos.fas.dao.entity.Dict;
import com.yeejoin.amos.fas.dao.entity.Equipment;
import com.yeejoin.amos.fas.dao.entity.EquipmentFireEquipment;
import com.yeejoin.amos.fas.dao.entity.FireEquipment;
......@@ -46,12 +44,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.annotation.PostConstruct;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.*;
@Service("equipService")
public class EquipmentServiceImpl implements IEquipmentService {
......@@ -79,9 +72,6 @@ public class EquipmentServiceImpl implements IEquipmentService {
ImpAndFireEquipMapper impAndFireEquipMapper;
@Autowired
Node3dVoMapper node3dVoMapper;
@Autowired
private IPreplanPictureDao preplanPictureDao;
@Autowired
......@@ -90,7 +80,6 @@ public class EquipmentServiceImpl implements IEquipmentService {
@Autowired
private MongoTemplate mongoTemplate;
@Autowired
private EquipCommunicationDao equipCommunicationDao;
......@@ -103,11 +92,6 @@ public class EquipmentServiceImpl implements IEquipmentService {
public Equipment save(Equipment equipment) {
Long eqId = equipment.getId();
equipment = iEquipmentDao.saveAndFlush(equipment);
if (eqId == null || eqId == 0) {
node3dVoMapper.incrementalCreateImpEqumt(equipment.getId());
} else {
node3dVoMapper.incrementalUpdateImpEqumt(eqId);
}
return equipment;
}
......@@ -123,21 +107,16 @@ public class EquipmentServiceImpl implements IEquipmentService {
}
@Override
public String[] delete(String[] idArray) throws Exception {
for (String id : idArray) {
Optional<Equipment> equipment1 = iEquipmentDao.findById(Long.parseLong(id));
Equipment equipment=null;
if(equipment1.isPresent()){
equipment=equipment1.get();
}
if (equipment != null) {
this.iEquipmentDao.deleteById(Long.parseLong(id));
node3dVoMapper.incrementalDeleteImpEqumt(Long.parseLong(id));
} else {
throw new Exception("找不到指定的对象:" + id);
}
......@@ -199,26 +178,21 @@ public class EquipmentServiceImpl implements IEquipmentService {
result.put("exits", false);
Equipment equipment = this.iEquipmentDao.getOne(equipmentFireEquipment.getEquipmentId().longValue());
FireEquipment fireEquipment = iFireEquipmentDao.getOne(equipmentFireEquipment.getFireEquipmentId().longValue());
if (equipment == null || fireEquipment == null)
throw new Exception("找不到数据");
this.equipmentFireEquipmentDao.save(equipmentFireEquipment);
//已存在的绑定关系
List<EquipmentFireEquipment> exits = impAndFireEquipMapper.queryForList(String.valueOf(equipmentFireEquipment.getFireEquipmentId()), null);
if (!CollectionUtils.isEmpty(exits))
result.put("exits", true);
result.put("newModel", equipmentFireEquipment);
resultList.add(result);
}
return resultList;
}
@Override
@Transactional(rollbackFor = Exception.class)
public List<Long> removeFireEqmtBind(Long equipmentId, String[] fireEquipmentIds) {
List<Long> ids = new ArrayList<>();
......@@ -243,6 +217,7 @@ public class EquipmentServiceImpl implements IEquipmentService {
* @param equipmentId
* @return
*/
@Override
public Page queryBindFirEqumtList(CommonPageable commonPageable, Long equipmentId) {
long start = -1;
int length = -1;
......@@ -389,68 +364,6 @@ public class EquipmentServiceImpl implements IEquipmentService {
}
return equipment;
}
/*@Override
public Equipment saveEquipmentAndImg(ImgParam imgs, Equipment equipment) {
// TODO Auto-generated method stub
if(imgs==null ){
equipment = save(equipment);
if(equipment.getCreateDate()==null){
equipment.setCreateDate(iEquipmentDao.findOne(equipment.getId()).getCreateDate()==null?new Date():iEquipmentDao.findOne(equipment.getId()).getCreateDate());
}
}else{
MultipartFile file = imgs.getFile();
int type = imgs.getType();
String remark = imgs.getRemark();
equipment = save(equipment);
if(equipment.getCreateDate()==null){
equipment.setCreateDate(iEquipmentDao.findOne(equipment.getId()).getCreateDate()==null?new Date():iEquipmentDao.findOne(equipment.getId()).getCreateDate());
}
Long equipmentId = Long.valueOf(equipment.getId());
PreplanPicture pp = preplanPictureDao.selectOne(equipmentId, type);
if(pp == null){
pp = new PreplanPicture();
pp.setEquipmentId(equipmentId);
pp.setType(type);
pp.setRemark(remark);
pp.setCreateDate(new Date());
}
String path = FasConstant.UPLOAD_ROOT_PATH + File.separator + FasConstant.UPLOAD_EQUIPMENT_PATH + File.separator
+ equipment.getId();
String filePath = getRootPath() + path;
String fileType = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."),
file.getOriginalFilename().length());
String fileName = File.separator + type+fileType;
try {
File dest = new File(filePath + File.separator + fileName);
if (!dest.exists()) {
if (dest.getParentFile() != null && !dest.getParentFile().exists()) {
dest.getParentFile().mkdirs();
}
dest.createNewFile();
}
file.transferTo(dest);
} catch (IOException e) {
throw new YeeException("上传图片失败");
}
String picture = path + fileName;
pp.setPicture(picture);
pp.setRemark(remark);
preplanPictureDao.saveAndFlush(pp);
equipment = iEquipmentDao.saveAndFlush(equipment);
}
return equipment;
}*/
@Override
public List<Map<String, Object>> findEquipVideoList() {
......
package com.yeejoin.amos.fas.business.service.impl;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
import org.apache.commons.collections.CollectionUtils;
import org.assertj.core.util.Sets;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import com.google.common.base.Joiner;
import com.google.common.collect.Lists;
import com.yeejoin.amos.fas.business.constants.FasConstant;
import com.yeejoin.amos.fas.business.dao.mapper.FireCarMapper;
import com.yeejoin.amos.fas.business.dao.mapper.Node3dVoMapper;
import com.yeejoin.amos.fas.business.dao.repository.IFireCarDao;
import com.yeejoin.amos.fas.business.feign.RemoteSecurityService;
import com.yeejoin.amos.fas.business.param.CommonPageInfoParam;
......@@ -35,7 +11,19 @@ import com.yeejoin.amos.fas.business.service.intfc.IFireCarService;
import com.yeejoin.amos.fas.business.vo.FireCarDetailVo;
import com.yeejoin.amos.fas.dao.entity.FireCar;
import com.yeejoin.amos.fas.exception.YeeException;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import org.apache.commons.collections.CollectionUtils;
import org.assertj.core.util.Sets;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.util.*;
@Service("fireCarService")
......@@ -53,19 +41,12 @@ public class FireCarServiceImpl implements IFireCarService {
private String linuxImgPath;
@Autowired
Node3dVoMapper node3dVoMapper;
@Autowired
private RemoteSecurityService remoteSecurityService;
public FireCar save(FireCar fireCar)
{
Long carId = fireCar.getId();
fireCar = iFireCarDao.saveAndFlush(fireCar);
if(carId ==null || carId == 0){
node3dVoMapper.incrementalCreateFireCar(fireCar.getId());
}else{
node3dVoMapper.incrementalUpdateFireCar(carId);
}
iFireCarDao.save(fireCar);
return fireCar;
}
......@@ -85,17 +66,13 @@ public class FireCarServiceImpl implements IFireCarService {
for(String id:idArray)
{
Optional<FireCar> fireCar1 = iFireCarDao.findById(Long.parseLong(id));
FireCar fireCar=null;
if(fireCar1.isPresent()){
fireCar=fireCar1.get();
}
if(fireCar != null)
{
this.iFireCarDao.deleteById(Long.parseLong(id));
node3dVoMapper.incrementalDeleteFireCar(Long.parseLong(id));
}else
{
throw new Exception("找不到指定的对象:"+id);
......@@ -110,43 +87,23 @@ public class FireCarServiceImpl implements IFireCarService {
@Override
public Page<HashMap<String, Object>> queryFireCar(String toke,String product,String appKey,CommonPageInfoParam param) {
long total = fireCarMapper.countPageData(param);
List<HashMap<String, Object>> content = fireCarMapper.getFireCarPage(param);
List<HashMap<String, Object>> content = fireCarMapper.getFireCarPage(param);
if (!CollectionUtils.isEmpty(content)) {
Set<String> deptIds = Sets.newHashSet(Lists.transform(content, Map->Map.get("dept_id")+""));
deptIds.remove("");
deptIds.remove(null);
Map<String, String> deptMap = new HashMap<String,String>();
if(!CollectionUtils.isEmpty(deptIds)){
List<LinkedHashMap> deptList = remoteSecurityService.listDepartmentByDeptIds( toke, product, appKey,Joiner.on(",").join(deptIds));
for (int i = 0; i < deptList.size(); i++) {
deptMap.put(deptList.get(i).get("sequenceNbr").toString(), deptList.get(i).get("departmentName").toString());
}
}
Map<String, String> deptMapNew= deptMap;
content.forEach(e -> {
e.put("departmentName",deptMapNew.get(e.get("dept_id")));
});
}
Page<HashMap<String, Object>> result = new PageImpl<HashMap<String, Object>>(content, param, total);
return result;
}
......@@ -193,14 +150,8 @@ public class FireCarServiceImpl implements IFireCarService {
}
}
fireCar.setPhotoPath(photoPath);
fireCar = iFireCarDao.saveAndFlush(fireCar);
if(carId ==null || carId == 0){
node3dVoMapper.incrementalCreateFireCar(fireCar.getId());
}else{
node3dVoMapper.incrementalUpdateFireCar(carId);
}
iFireCarDao.save(fireCar);
return fireCar;
}
......
......@@ -2,7 +2,6 @@ package com.yeejoin.amos.fas.business.service.impl;
import com.yeejoin.amos.fas.business.dao.mapper.FireEquipMapper;
import com.yeejoin.amos.fas.business.dao.mapper.ImpEquipMapper;
import com.yeejoin.amos.fas.business.dao.mapper.Node3dVoMapper;
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.IWaterResourceDao;
......@@ -41,20 +40,10 @@ public class FireEquipServiceImpl implements IFireEquipService {
@Autowired
IFireStationDao iFireStationDao;
@Autowired
Node3dVoMapper node3dVoMapper;
public FireEquipment save(FireEquipment fireEquipment) {
Long id = fireEquipment.getId();
fireEquipment = iFireEquipmentDao.saveAndFlush(fireEquipment);
if(id ==null || id == 0){
node3dVoMapper.incrementalCreateFierEqumt(fireEquipment.getId());
}else{
node3dVoMapper.incrementalUpdateFierEqumt(id);
}
iFireEquipmentDao.save(fireEquipment);
return fireEquipment;
}
......@@ -77,7 +66,6 @@ public class FireEquipServiceImpl implements IFireEquipService {
if (fireEquipment != null) {
this.iFireEquipmentDao.deleteById(Long.parseLong(id));
node3dVoMapper.incrementalDeleteFierEqumt(Long.parseLong(id));
} else {
throw new Exception("找不到指定的对象:" + id);
}
......
package com.yeejoin.amos.fas.business.service.impl;
import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
import com.yeejoin.amos.fas.business.constants.FasConstant;
import com.yeejoin.amos.fas.business.dao.mapper.FireStationEquipmentMapper;
import com.yeejoin.amos.fas.business.dao.mapper.FireStationMapper;
import com.yeejoin.amos.fas.business.dao.mapper.Node3dVoMapper;
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.IFireStationEquipmentDao;
......@@ -29,6 +12,17 @@ import com.yeejoin.amos.fas.dao.entity.FireEquipment;
import com.yeejoin.amos.fas.dao.entity.FireStation;
import com.yeejoin.amos.fas.dao.entity.FireStationFireEquipment;
import com.yeejoin.amos.fas.exception.YeeException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.util.*;
@Service("fireStationService")
public class FireStationServiceImpl implements IFireStationService {
......@@ -48,9 +42,6 @@ public class FireStationServiceImpl implements IFireStationService {
@Autowired
IFireEquipmentDao iFireEquipmentDao;
@Autowired
Node3dVoMapper node3dVoMapper;
@Value("${windows.img.path}")
private String winImgPath;
......@@ -59,12 +50,7 @@ public class FireStationServiceImpl implements IFireStationService {
public FireStation save(FireStation fireStation) {
Long id = fireStation.getId();
fireStation = iFireStationDao.saveAndFlush(fireStation);
if (id == null || id == 0) {
node3dVoMapper.incrementalCreateStation(fireStation.getId());
} else {
node3dVoMapper.incrementalUpdateStation(id);
}
iFireStationDao.saveAndFlush(fireStation);
return fireStation;
}
......@@ -134,7 +120,6 @@ public class FireStationServiceImpl implements IFireStationService {
}
if (fireStation != null) {
this.iFireStationDao.deleteById(Long.parseLong(id));
node3dVoMapper.incrementalDeleteStation(Long.parseLong(id));
} else {
throw new Exception("找不到指定的监测点:" + id);
}
......
package com.yeejoin.amos.fas.business.service.impl;
import com.yeejoin.amos.fas.business.dao.mapper.Node3dVoMapper;
import com.yeejoin.amos.fas.business.service.intfc.Node3dVoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import java.util.concurrent.Callable;
@Service("node3dVoService")
public class Node3dVoServiceImpl implements Node3dVoService {
@Autowired
private Node3dVoMapper node3dVoMapper ;
@Override
public Integer incrementalCreate(String dataType) {
Integer result = 0;
switch (dataType)
{
case DATATYPE_FIREEQUMT:
result = node3dVoMapper.incrementalCreateFierEqumt(null);
break;
case DATATYPE_IMPEQUMT:
result = node3dVoMapper.incrementalCreateImpEqumt(null);
break;
case DATATYPE_RISKSOURCE:
result = node3dVoMapper.incrementalCreateRiskSource(null);
break;
case DATATYPE_FIRECAR:
result = node3dVoMapper.incrementalCreateFireCar(null);
break;
case DATATYPE_STATION:
result = node3dVoMapper.incrementalCreateStation(null);
break;
case DATATYPE_WATER:
result = node3dVoMapper.incrementalCreateWater(null);
break;
}
return result;
}
@Override
public Integer incrementalRemove(String dataType) {
Integer result = 0;
switch (dataType)
{
case DATATYPE_FIREEQUMT:
result = node3dVoMapper.incrementalDeleteFierEqumt(null);
break;
case DATATYPE_IMPEQUMT:
result = node3dVoMapper.incrementalDeleteImpEqumt(null);
break;
case DATATYPE_RISKSOURCE:
result = node3dVoMapper.incrementalDeleteRiskSource(null);
break;
case DATATYPE_FIRECAR:
result = node3dVoMapper.incrementalDeleteFireCar(null);
break;
case DATATYPE_STATION:
result = node3dVoMapper.incrementalDeleteStation(null);
break;
case DATATYPE_WATER:
result = node3dVoMapper.incrementalDeleteWater(null);
break;
}
return result;
}
@Override
public Integer incrementalUpdate(String dataType) {
Integer result = 0;
switch (dataType)
{
case DATATYPE_FIREEQUMT:
result = node3dVoMapper.incrementalUpdateFierEqumt(null);
break;
case DATATYPE_IMPEQUMT:
result = node3dVoMapper.incrementalUpdateImpEqumt(null);
break;
case DATATYPE_RISKSOURCE:
result = node3dVoMapper.incrementalUpdateRiskSource(null, null);
break;
case DATATYPE_FIRECAR:
result = node3dVoMapper.incrementalUpdateFireCar(null);
break;
case DATATYPE_STATION:
result = node3dVoMapper.incrementalUpdateStation(null);
break;
case DATATYPE_WATER:
result = node3dVoMapper.incrementalUpdateWater(null);
break;
}
return result;
}
/**
*
* @param dataType
* @return
*/
@Override
public Integer incrementalDataType(String dataType) {
Integer result = 0;
switch (dataType)
{
case DATATYPE_FIREEQUMT:
result += node3dVoMapper.incrementalCreateFierEqumt(null)==null?0:node3dVoMapper.incrementalCreateFierEqumt(null);
result += node3dVoMapper.incrementalUpdateFierEqumt(null)==null?0:node3dVoMapper.incrementalUpdateFierEqumt(null);
result += node3dVoMapper.incrementalDeleteFierEqumt(null)==null?0:node3dVoMapper.incrementalDeleteFierEqumt(null);
break;
case DATATYPE_IMPEQUMT:
result += node3dVoMapper.incrementalCreateImpEqumt(null)==null?0:node3dVoMapper.incrementalCreateImpEqumt(null);
result += node3dVoMapper.incrementalUpdateImpEqumt(null)==null?0:node3dVoMapper.incrementalUpdateImpEqumt(null);
result += node3dVoMapper.incrementalDeleteImpEqumt(null)==null?0:node3dVoMapper.incrementalDeleteImpEqumt(null);
break;
case DATATYPE_RISKSOURCE:
result += node3dVoMapper.incrementalCreateRiskSource(null)==null?0:node3dVoMapper.incrementalCreateRiskSource(null);
result += node3dVoMapper.incrementalUpdateRiskSource(null, null)==null?0:node3dVoMapper.incrementalUpdateRiskSource(null, null);
result += node3dVoMapper.incrementalDeleteRiskSource(null)==null?0:node3dVoMapper.incrementalDeleteRiskSource(null);
break;
case DATATYPE_FIRECAR:
result += node3dVoMapper.incrementalCreateFireCar(null)==null?0:node3dVoMapper.incrementalCreateFireCar(null);
result += node3dVoMapper.incrementalUpdateFireCar(null)==null?0:node3dVoMapper.incrementalUpdateFireCar(null);
result += node3dVoMapper.incrementalDeleteFireCar(null)==null?0:node3dVoMapper.incrementalDeleteFireCar(null);
break;
case DATATYPE_STATION:
result += node3dVoMapper.incrementalCreateStation(null)==null?0:node3dVoMapper.incrementalCreateStation(null);
result += node3dVoMapper.incrementalUpdateStation(null)==null?0:node3dVoMapper.incrementalUpdateStation(null);
result += node3dVoMapper.incrementalDeleteStation(null)==null?0:node3dVoMapper.incrementalDeleteStation(null);
break;
case DATATYPE_WATER:
result += node3dVoMapper.incrementalCreateWater(null)==null?0:node3dVoMapper.incrementalCreateWater(null);
result += node3dVoMapper.incrementalUpdateWater(null)==null?0:node3dVoMapper.incrementalUpdateWater(null);
result += node3dVoMapper.incrementalDeleteWater(null)==null?0:node3dVoMapper.incrementalDeleteWater(null);
break;
}
return result;
}
@Override
public Integer wholeIncremental() {
Integer result = 0;
//消防设备
result += node3dVoMapper.incrementalCreateFierEqumt(null)==null?0:node3dVoMapper.incrementalCreateFierEqumt(null);
result += node3dVoMapper.incrementalUpdateFierEqumt(null)==null?0:node3dVoMapper.incrementalUpdateFierEqumt(null);
result += node3dVoMapper.incrementalDeleteFierEqumt(null)==null?0:node3dVoMapper.incrementalDeleteFierEqumt(null);
//重点设备
result += node3dVoMapper.incrementalCreateImpEqumt(null)==null?0:node3dVoMapper.incrementalCreateImpEqumt(null);
result += node3dVoMapper.incrementalUpdateImpEqumt(null)==null?0:node3dVoMapper.incrementalUpdateImpEqumt(null);
result += node3dVoMapper.incrementalDeleteImpEqumt(null)==null?0:node3dVoMapper.incrementalDeleteImpEqumt(null);
//风险点
result += node3dVoMapper.incrementalCreateRiskSource(null)==null?0:node3dVoMapper.incrementalCreateRiskSource(null);
result += node3dVoMapper.incrementalUpdateRiskSource(null, null)==null?0:node3dVoMapper.incrementalUpdateRiskSource(null, null);
result += node3dVoMapper.incrementalDeleteRiskSource(null)==null?0:node3dVoMapper.incrementalDeleteRiskSource(null);
//消防车
result += node3dVoMapper.incrementalCreateFireCar(null)==null?0:node3dVoMapper.incrementalCreateFireCar(null);
result += node3dVoMapper.incrementalUpdateFireCar(null)==null?0:node3dVoMapper.incrementalUpdateFireCar(null);
result += node3dVoMapper.incrementalDeleteFireCar(null)==null?0:node3dVoMapper.incrementalDeleteFireCar(null);
//消防室和泡沫间
result += node3dVoMapper.incrementalCreateStation(null)==null?0:node3dVoMapper.incrementalCreateStation(null);
result += node3dVoMapper.incrementalUpdateStation(null)==null?0:node3dVoMapper.incrementalUpdateStation(null);
result += node3dVoMapper.incrementalDeleteStation(null)==null?0:node3dVoMapper.incrementalDeleteStation(null);
//水资源
result += node3dVoMapper.incrementalCreateWater(null)==null?0:node3dVoMapper.incrementalCreateWater(null);
result += node3dVoMapper.incrementalUpdateWater(null)==null?0:node3dVoMapper.incrementalUpdateWater(null);
result += node3dVoMapper.incrementalDeleteWater(null)==null?0:node3dVoMapper.incrementalDeleteWater(null);
return result;
}
@Override
public Integer updateByRiskSourceId(Long riskSourceId, Integer frequency) {
Integer result = 0;
result = node3dVoMapper.incrementalUpdateRiskSource(riskSourceId, frequency);
return result;
}
@Async
@Override
public Integer syncData(Callable<Integer> callable ) throws Exception
{
return callable.call();
}
}
......@@ -20,7 +20,10 @@ 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.*;
import com.yeejoin.amos.fas.business.service.intfc.IContingencyInstance;
import com.yeejoin.amos.fas.business.service.intfc.IDataRefreshService;
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.model.*;
import com.yeejoin.amos.fas.business.util.DateUtils;
import com.yeejoin.amos.fas.business.util.JexlUtil;
......@@ -98,9 +101,6 @@ public class RiskSourceServiceImpl implements IRiskSourceService {
private FireEquipMapper fireEquipMapper;
@Autowired
private Node3dVoService node3dVoService;
@Autowired
private IFireEquipmentDao iFireEquipmentDao;
@Autowired
......@@ -193,15 +193,6 @@ public class RiskSourceServiceImpl implements IRiskSourceService {
riskSource.setStatus(oldRiskSource.getStatus());
}
iRiskSourceDao.saveAndFlush(riskSource);
//同步数据
if (id == 0) {
node3dVoService.syncData(() -> node3dVoService.incrementalCreate(Node3dVoService.DATATYPE_RISKSOURCE));
} else {
node3dVoService.syncData(() -> node3dVoService.incrementalUpdate(Node3dVoService.DATATYPE_RISKSOURCE));
iDataRefreshService.refreshViewData(DataRefreshTypeEum.rpn.getCode());
}
return riskSource;
}
......@@ -217,12 +208,7 @@ public class RiskSourceServiceImpl implements IRiskSourceService {
}
iRiskSourceDao.deleteById(rId);
}
//1.同步数据
node3dVoService.syncData(() -> node3dVoService.incrementalRemove(Node3dVoService.DATATYPE_RISKSOURCE));
//2.3d屏数据刷新
iDataRefreshService.refreshViewData(DataRefreshTypeEum.rpn.getCode());
//3.重新计算rpn
//1.重新计算rpn
List<Long> existIds = parentIds.stream().filter(e ->
iRiskSourceDao.findById(e).isPresent()
).collect(Collectors.toList());
......@@ -1047,7 +1033,7 @@ public class RiskSourceServiceImpl implements IRiskSourceService {
BigDecimal sidValue = new BigDecimal(fmea.getSidValue());
BigDecimal didValue = new BigDecimal(fmea.getDidValue());
//1.1计算rpni
BigDecimal rpni = oidValue.multiply(sidValue).multiply(didValue);
BigDecimal rpni = oidValue.multiply(sidValue).multiply(didValue).setScale(2, BigDecimal.ROUND_HALF_UP);
BigDecimal rpn;
//1.2计算rpn:为空则rpni = rpn;不为空则重新计算s*d*newo
if (fmea.getNewEvaluationOid() == null) {
......@@ -1055,7 +1041,8 @@ public class RiskSourceServiceImpl implements IRiskSourceService {
rpn = rpni;
} else {
BigDecimal newOidValue = new BigDecimal(fmea.getNewOidValue());
rpn = newOidValue.multiply(sidValue).multiply(didValue);
rpn = newOidValue.multiply(sidValue).multiply(didValue).setScale(2, BigDecimal.ROUND_HALF_UP);
;
}
List<RiskLevel> levels = riskLevelDao.findAll();
RiskLevel newLevel = RpnUtils.getBetweenLevel(rpn, levels);
......@@ -1129,7 +1116,7 @@ public class RiskSourceServiceImpl implements IRiskSourceService {
BigDecimal newOidValue = new BigDecimal(oEvaluationModel.getCoefficient());
BigDecimal sidValue = new BigDecimal(fmea.getSidValue());
BigDecimal didValue = new BigDecimal(fmea.getDidValue());
BigDecimal rpn = newOidValue.multiply(sidValue).multiply(didValue);
BigDecimal rpn = newOidValue.multiply(sidValue).multiply(didValue).setScale(2, BigDecimal.ROUND_HALF_UP);
List<RiskLevel> levels = riskLevelDao.findAll();
RiskLevel newLevel = RpnUtils.getBetweenLevel(rpn, levels);
fmea.setRpn(rpn);
......@@ -1149,13 +1136,14 @@ public class RiskSourceServiceImpl implements IRiskSourceService {
}
}
private void saveRpnLog(Long riskSourceId, Long fmeaId, BigDecimal rpn, BigDecimal rpni) {
private void saveRpnLog(Long riskSourceId, Long fmeaId, BigDecimal rpn, BigDecimal rpni, String notifyType) {
RpnChangeLog rpnChangeLog = new RpnChangeLog();
rpnChangeLog.setRiskSourceId(riskSourceId);
rpnChangeLog.setRpn(rpn);
rpnChangeLog.setRpni(rpni);
rpnChangeLog.setType(RpnUtils.getChangeType(rpn, rpni));
rpnChangeLog.setTriggerBy(fmeaId);
rpnChangeLog.setTriggerType(notifyType);
rpnChangeLog.setFmeaId(fmeaId);
iRpnChangeLogDao.save(rpnChangeLog);
}
......@@ -1188,12 +1176,15 @@ public class RiskSourceServiceImpl implements IRiskSourceService {
riskSource.setRpn(null);
riskSource.setRpni(null);
riskSource.setRiskLevelId(null);
riskSource.setFlickerFrequency(0);
//1.更新fmea对应风险点rpn、rpni、level
riskSourceMapper.updateRpn(riskSource);
//2.记录风险点rpn变化流水
this.saveRpnLog(riskSource.getId(), fmeaId, resetValue, resetValue);
this.saveRpnLog(riskSource.getId(), fmeaId, resetValue, resetValue, notifyType);
//3.更新父节点rpn、rpni、风险等级
this.updateParentRpn(riskSource.getParentId());
//4.知全景监控屏幕数据刷新
iDataRefreshService.refreshViewData(DataRefreshTypeEum.rpn.getCode());
} else {//fmea评价、巡检、告警
RpnCalculationBo rpnValueBo = RpnUtils.calRpnAndRpni(fmeas);
if (rpnValueBo.isEmpty()) {
......@@ -1208,16 +1199,20 @@ public class RiskSourceServiceImpl implements IRiskSourceService {
riskSource.setRpn(rpn);
riskSource.setRpni(rpni);
riskSource.setRiskLevelId(newRiskLevel.getId());
String changeType = RpnUtils.calChangeTypeByLevel(oldRiskLevel.getLevel(),newRiskLevel.getLevel());
riskSource.setFlickerFrequency(RpnUtils.calRiskPointFrequency(rpn,rpni,changeType));
//1.更新fmea对应风险点rpn、rpni、level
riskSourceMapper.updateRpn(riskSource);
//2.记录风险点rpn变化流水
this.saveRpnLog(riskSource.getId(), fmeaId, rpn, rpni);
this.saveRpnLog(riskSource.getId(), fmeaId, rpn, rpni, notifyType);
//3.更新父节点rpn、rpni、风险等级
this.updateParentRpn(riskSource.getParentId());
//4.极光推送给手机客户端
jpushRiskSourceMessage("风险预警", jpushTargets);
//5.规则告警(消息)TODO
notifyRule(riskSourceId, rpn, rpni, oldRiskLevel.getLevel(), newRiskLevel.getLevel(), notifyType);
notifyRule(riskSourceId, rpn, rpni, notifyType,changeType);
//6.通知全景监控屏幕数据刷新
iDataRefreshService.refreshViewData(DataRefreshTypeEum.rpn.getCode());
}
}
}
......@@ -1232,6 +1227,8 @@ public class RiskSourceServiceImpl implements IRiskSourceService {
public void notifyRiskSourceDelete(Long parentId) {
//1.风险点删除触发更新父节点rpn、rpni、风险等级
this.updateParentRpn(parentId);
//2.通知全景监控屏幕数据刷新
iDataRefreshService.refreshViewData(DataRefreshTypeEum.rpn.getCode());
}
private void updateParentRpn(long parentId) {
......@@ -1289,7 +1286,6 @@ public class RiskSourceServiceImpl implements IRiskSourceService {
ids.add(riskSource.getId());
}
}
iDataRefreshService.refreshViewData(DataRefreshTypeEum.rpn.getCode());
}
/**
......@@ -1310,31 +1306,18 @@ public class RiskSourceServiceImpl implements IRiskSourceService {
/**
* 规则告警
*/
private void notifyRule(Long id, BigDecimal rpnr, BigDecimal rpni, Integer oldLevel, Integer newLevel, String
notifyType) {
int level = oldLevel - newLevel;
String changeType;
if (level > 0) {
changeType = "up";
} else if (level == 0) {
changeType = "no";
} else {
changeType = "down";
}
private void notifyRule(
Long id,
BigDecimal rpnr,
BigDecimal rpni,
String notifyType,
String changeType) {
RiskSourceRuleRo riskSourceRuleRo = new RiskSourceRuleRo();
riskSourceRuleRo.setId(id);
riskSourceRuleRo.setRpnr(rpnr);
riskSourceRuleRo.setRpni(rpni);
riskSourceRuleRo.setLevelChangeType(changeType);
riskSourceRuleRo.setNotifyType(notifyType);
BigDecimal rg = rpnr.subtract(rpni);
int frequency = 0;
if ("up".equals(changeType) && rg.intValue() > 0) {
frequency = 3;
} else if ("no".equals(changeType) && rg.intValue() > 0) {
frequency = 1;
}
node3dVoService.updateByRiskSourceId(riskSourceRuleRo.getId(), frequency);
try {
remoteRuleServer.fireRule(riskSourceRuleRo, "风险管控/riskSource");
} catch (Exception e) {
......
package com.yeejoin.amos.fas.business.service.impl;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.stereotype.Service;
import com.yeejoin.amos.fas.business.dao.mapper.Node3dVoMapper;
import com.yeejoin.amos.fas.business.dao.mapper.WaterResourceMapper;
import com.yeejoin.amos.fas.business.dao.repository.IWaterResourceDao;
import com.yeejoin.amos.fas.business.dao.repository.IWaterResourceEquipmentDao;
......@@ -19,6 +8,15 @@ import com.yeejoin.amos.fas.core.common.request.CommonPageable;
import com.yeejoin.amos.fas.core.util.StringUtil;
import com.yeejoin.amos.fas.dao.entity.WaterResource;
import com.yeejoin.amos.fas.dao.entity.WaterResourceEquipment;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@Service("waterResourceService")
public class WaterResourceServiceImpl implements IWaterResourceService {
......@@ -33,20 +31,12 @@ public class WaterResourceServiceImpl implements IWaterResourceService {
@Autowired
IWaterResourceEquipmentDao iWaterResourceEquipmentDao;
@Autowired
Node3dVoMapper node3dVoMapper;
@Override
public WaterResource save(WaterResource waterResource)
{
Long id = waterResource.getId();
waterResource = iWaterResourceDao.saveAndFlush(waterResource);
if(id ==null || id == 0){
node3dVoMapper.incrementalCreateWater(waterResource.getId());
}else{
node3dVoMapper.incrementalUpdateWater(id);
}
return waterResource;
}
......@@ -68,7 +58,6 @@ public class WaterResourceServiceImpl implements IWaterResourceService {
if(waterResource != null)
{
this.iWaterResourceDao.deleteById(Long.parseLong(id));
node3dVoMapper.incrementalDeleteWater(Long.parseLong(id));
}else
{
throw new Exception("找不到指定的监测点:"+id);
......
package com.yeejoin.amos.fas.business.service.intfc;
import java.util.concurrent.Callable;
public interface Node3dVoService {
String DATATYPE_RISKSOURCE = "RISKSOURCE"; //数据类型-风险点
String DATATYPE_FIREEQUMT = "FIREEQUMT";//数据类型-消防设备
String DATATYPE_IMPEQUMT = "IMPEQUMT";//数据类型-重点设备
String DATATYPE_FIRECAR = "FIRECAR";//数据类型-消防车
String DATATYPE_STATION = "STATION";//数据类型-消防室和泡沫间
String DATATYPE_WATER = "WATER";//数据类型-水资源
/**
* 同步新增的3d数据
* @param dataType
* @return
*/
Integer incrementalCreate(String dataType);
/**
* 同步已经删除的的3d数据
* @param dataType
* @return
*/
Integer incrementalRemove(String dataType);
/**
* 同步需要更新的的3d数据
* @param dataType
* @return
*/
Integer incrementalUpdate(String dataType);
/**
* 同步指定数据类型,新增,删除,更新
* @param dataType
* @return
*/
Integer incrementalDataType(String dataType);
/**
* 对所有数据类型进行同步,新增,更新,删除
* @return
*/
Integer wholeIncremental();
Integer updateByRiskSourceId(Long riskSourceId, Integer frequency);
Integer syncData(Callable<Integer> callable )throws Exception;
}
......@@ -17,10 +17,11 @@ import java.util.List;
public class RpnUtils {
/**
* 计算风险值
*
* @param fmeas
* @return RpnCalculationBo
*/
public static RpnCalculationBo calRpnAndRpni(List<Fmea> fmeas){
public static RpnCalculationBo calRpnAndRpni(List<Fmea> fmeas) {
BigDecimal maxSidValue = new BigDecimal("0");
BigDecimal maxDidValue = new BigDecimal("0");
BigDecimal totalOidValue = new BigDecimal("0");
......@@ -48,10 +49,10 @@ public class RpnUtils {
if (count == 0) {
return rpnValue;
}
BigDecimal averageOidValue = totalOidValue.divide(BigDecimal.valueOf(count),2,BigDecimal.ROUND_HALF_UP);
BigDecimal averageNewOidValue = totalNewOidValue.divide(BigDecimal.valueOf(count),2,BigDecimal.ROUND_HALF_UP);
BigDecimal rpn = maxDidValue.multiply(maxSidValue).multiply(averageNewOidValue).setScale(2,BigDecimal.ROUND_HALF_UP);
BigDecimal rpni = maxDidValue.multiply(maxSidValue).multiply(averageOidValue).setScale(2,BigDecimal.ROUND_HALF_UP);
BigDecimal averageOidValue = totalOidValue.divide(BigDecimal.valueOf(count), 2, BigDecimal.ROUND_HALF_UP);
BigDecimal averageNewOidValue = totalNewOidValue.divide(BigDecimal.valueOf(count), 2, BigDecimal.ROUND_HALF_UP);
BigDecimal rpn = maxDidValue.multiply(maxSidValue).multiply(averageNewOidValue).setScale(2, BigDecimal.ROUND_HALF_UP);
BigDecimal rpni = maxDidValue.multiply(maxSidValue).multiply(averageOidValue).setScale(2, BigDecimal.ROUND_HALF_UP);
rpnValue.setRpn(rpn);
rpnValue.setRpni(rpni);
return rpnValue;
......@@ -59,6 +60,7 @@ public class RpnUtils {
/**
* 计算最大故障率
*
* @param equipmentPoints
* @param pointInputitems
* @return
......@@ -107,6 +109,7 @@ public class RpnUtils {
/**
* 获得风险等级
*
* @param rpni
* @param levels
* @return
......@@ -127,18 +130,56 @@ public class RpnUtils {
/**
* 获取风险变化类型
* @param rpn
* @param rpni
* @return
*
* @param rpn 实时
* @param rpni 固有
* @return int
*/
public static int getChangeType(BigDecimal rpn, BigDecimal rpni) {
if(rpn.subtract(rpni).doubleValue() > 0){
if (rpn.subtract(rpni).doubleValue() > 0) {
return RpnChangeLogTypeEum.upper.getCode();
} else if(rpn.subtract(rpni).doubleValue() < 0){
} else if (rpn.subtract(rpni).doubleValue() < 0) {
return RpnChangeLogTypeEum.down.getCode();
} else {
return RpnChangeLogTypeEum.unChange.getCode();
}
}
/**
* 计算变化类型
* @param oldLevel 原有等级
* @param newLevel 现有等级
* @return up、no、down
*/
public static String calChangeTypeByLevel(Integer oldLevel, Integer newLevel){
int level = oldLevel - newLevel;
String changeType;
if (level > 0) {
changeType = "up";
} else if (level == 0) {
changeType = "no";
} else {
changeType = "down";
}
return changeType;
}
/**
* 计算闪烁频率
* @param rpnr 实时
* @param rpni 固有
* @param changeType 变化类型
* @return int
*/
public static int calRiskPointFrequency(BigDecimal rpnr,BigDecimal rpni, String changeType) {
BigDecimal rg = rpnr.subtract(rpni);
int frequency = 0;
if ("up".equals(changeType) && rg.intValue() > 0) {
frequency = 3;
} else if ("no".equals(changeType) && rg.intValue() > 0) {
frequency = 1;
}
return frequency;
}
}
......@@ -206,7 +206,9 @@
</changeSet>
<changeSet author="suhuiguang" id="1588990926789-1">
<preConditions onFail="MARK_RAN">
<columnExists tableName="f_risk_level " columnName="manage_level"/>
<not>
<columnExists tableName="f_risk_level " columnName="manage_level"/>
</not>
</preConditions>
<comment>f_risk_level add column manage_level 管控级别</comment>
<sql>
......@@ -214,4 +216,28 @@
add COLUMN `manage_level` tinyint(4) DEFAULT NULL COMMENT '管控级别';
</sql>
</changeSet>
<changeSet author="suhuiguang" id="1589165258908-1">
<preConditions onFail="MARK_RAN">
<not>
<columnExists tableName="f_rpn_change_log " columnName="trigger_type"/>
</not>
</preConditions>
<comment>f_rpn_change_log add column trigger_type 触发类型</comment>
<sql>
ALTER TABLE `f_rpn_change_log`
add COLUMN `trigger_type` varchar(20) DEFAULT NULL COMMENT '触发类型:巡检、告警、评价、删除' after `trigger_by`;
</sql>
</changeSet>
<changeSet author="suhuiguang" id="1589165258908-2">
<preConditions onFail="MARK_RAN">
<not>
<columnExists tableName="f_risk_source " columnName="flicker_frequency"/>
</not>
</preConditions>
<comment>f_risk_source add column flicker_frequency 闪烁频率</comment>
<sql>
ALTER TABLE `f_risk_source`
add COLUMN `flicker_frequency` int(11) DEFAULT 0 COMMENT '闪烁频率' after `status`;
</sql>
</changeSet>
</databaseChangeLog>
\ No newline at end of file
......@@ -81,24 +81,6 @@
</sql>
</changeSet>
<changeSet author="lierwei" id="1561717968-1" runOnChange="true">
<comment>f_risk_source 触发器创建</comment>
<sql endDelimiter="#">
DROP TRIGGER IF EXISTS `trigger_risk_source_status_update`;
CREATE TRIGGER `trigger_risk_source_status_update` AFTER UPDATE ON `f_risk_source` FOR EACH ROW BEGIN
IF NEW.status = 'NORMAL' THEN
UPDATE toip_biz_node3dvo SET `node_state` = 'NORMAL' WHERE type = 'riskSource' and oid = NEW.id;
END IF;
IF NEW.status = null or NEW.status = '' THEN
UPDATE toip_biz_node3dvo SET `node_state` = 'NORMAL' WHERE type = 'riskSource' and oid = NEW.id;
END IF;
IF NEW.status = 'ANOMALY' THEN
UPDATE toip_biz_node3dvo SET `node_state` = NEW.rpni WHERE type = 'riskSource' and oid = NEW.id;
END IF;
END#
</sql>
</changeSet>
<changeSet author="tianbo" id="1561717770000-1" runOnChange="true">
<comment>f_fire_equipment_point_update 触发器创建(修改判断条件为->value等于'true')</comment>
<sql endDelimiter="#">
......
......@@ -672,6 +672,9 @@
<if test="riskLevelId != null">
risk_level_id = #{riskLevelId},
</if>
<if test="flicker_frequency != null">
flicker_frequency = #{flicker_frequency}
</if>
</set>
where id = #{id}
</update>
......
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