代码调整

This commit is contained in:
Lee
2023-04-11 10:33:26 +08:00
parent 35f7f13154
commit 527ac129d8
7 changed files with 18 additions and 358 deletions

View File

@@ -100,12 +100,6 @@
<artifactId>common-oss</artifactId> <artifactId>common-oss</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
</dependency> </dependency>
<!-- 多数据源切换当数据源为oracle时需要使用 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
</dependencies> </dependencies>
<build> <build>

View File

@@ -1,20 +0,0 @@
package com.njcn.process.mapper;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.process.pojo.po.LimitRate;
import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author lxp
* @since 2023-03-16
*/
@DS("master")
@Mapper
public interface LimitRateMapper extends BaseMapper<LimitRate> {
}

View File

@@ -1,16 +0,0 @@
package com.njcn.process.mapper;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.device.pms.pojo.po.Monitor;
import org.apache.ibatis.annotations.Mapper;
/**
* @author yzh
* @date 2022/10/17
*/
@DS("master")
@Mapper
public interface PmsMonitorMapper extends BaseMapper<Monitor> {
}

View File

@@ -1,6 +1,5 @@
package com.njcn.process.mapper; package com.njcn.process.mapper;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.prepare.harmonic.pojo.po.ThsOverRunLog; import com.njcn.prepare.harmonic.pojo.po.ThsOverRunLog;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@@ -13,7 +12,6 @@ import org.apache.ibatis.annotations.Mapper;
* @author lxp * @author lxp
* @since 2023-03-16 * @since 2023-03-16
*/ */
@DS("process")
@Mapper @Mapper
public interface ThsOverRunLogMapper extends BaseMapper<ThsOverRunLog> { public interface ThsOverRunLogMapper extends BaseMapper<ThsOverRunLog> {

View File

@@ -3,21 +3,12 @@ package com.njcn.process.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.pojo.response.HttpResult;
import com.njcn.device.pms.pojo.po.Monitor;
import com.njcn.harmonic.pojo.vo.SourceSteadyIndicator;
import com.njcn.harmonic.pojo.vo.ThsStrategyVo;
import com.njcn.prepare.harmonic.pojo.dto.SuperviseDto; import com.njcn.prepare.harmonic.pojo.dto.SuperviseDto;
import com.njcn.prepare.harmonic.pojo.param.SuperviseParam;
import com.njcn.prepare.harmonic.pojo.po.ThsOverRunLog;
import com.njcn.prepare.harmonic.pojo.po.ThsSupervise; import com.njcn.prepare.harmonic.pojo.po.ThsSupervise;
import com.njcn.prepare.harmonic.pojo.vo.SuperviceRunLogVo; import com.njcn.prepare.harmonic.pojo.vo.SuperviceRunLogVo;
import com.njcn.prepare.harmonic.pojo.vo.SuperviseVo; import com.njcn.prepare.harmonic.pojo.vo.SuperviseVo;
import com.njcn.prepare.harmonic.pojo.vo.ThsSuperviseVo; import com.njcn.prepare.harmonic.pojo.vo.ThsSuperviseVo;
import com.njcn.process.enums.TypeEnum;
import com.njcn.process.pojo.param.FileParam; import com.njcn.process.pojo.param.FileParam;
import com.njcn.process.pojo.po.LimitRate;
import com.njcn.process.pojo.po.ThsWarnStrategyAss;
import com.njcn.user.pojo.po.Dept;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@@ -34,68 +25,6 @@ import java.util.Map;
* @since 2023-03-16 * @since 2023-03-16
*/ */
public interface ThsSuperviseService extends IService<ThsSupervise> { public interface ThsSuperviseService extends IService<ThsSupervise> {
/**
* 初始化技术监督
*/
HttpResult<SuperviceRunLogVo> initSupervise(SuperviseParam superviseParam);
/**
* 查新策略集合
*
* @param superviseParam
* @return
*/
List<ThsStrategyVo> selectStrategyList(SuperviseParam superviseParam);
/**
* 查询LimitTarget数据
*
* @param monitorId
*/
LimitRate queryLimitTargetData(String monitorId);
/**
* 生成监督数据
*
* @param limitBoolMap
*/
void buildData(SourceSteadyIndicator steady, Map<String, Object> limitBoolMap, Monitor monitor, LimitRate limitRate, Integer initType, ThsSupervise thsSupervise, List<ThsOverRunLog> thsOverRunLogs);
/**
* 查询策略绑定的干扰源列表或指标参数列表
*
* @param id
* @param typeEnum
* @return
*/
List<ThsWarnStrategyAss> queryWarnStrategyAss(String id, TypeEnum typeEnum);
/**
* 生成监督数据
*
* @param steady
* @param monitor
* @return
*/
void buildSuperviseData(SourceSteadyIndicator steady, Monitor monitor, LimitRate limitRate, Map<String, Object> limitBoolMap, Integer initType, ThsSupervise thsSupervise, List<ThsOverRunLog> thsOverRunLogs);
/**
* 生成 告警/预警监测点列表 数据
*
* @param steady
* @param thsSupervise
* @param monitor
*/
void buildOverRunLog(SourceSteadyIndicator steady, ThsSupervise thsSupervise, Monitor monitor, LimitRate limitRate, Map<String, Object> limitBoolMap, Integer initType, List<ThsOverRunLog> thsOverRunLogs);
/**
* 生成技术监督数据
*
* @param thsSupervise
* @param overRunLogList
*/
void creatData(Dept dept, ThsSupervise thsSupervise, List<ThsOverRunLog> overRunLogList);
/** /**
* 保存技术监督数据 * 保存技术监督数据

View File

@@ -1,19 +1,19 @@
package com.njcn.process.service.impl; package com.njcn.process.service.impl;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil; import com.njcn.common.utils.HttpResultUtil;
import com.njcn.device.pms.pojo.po.Monitor; import com.njcn.device.pms.api.MonitorClient;
import com.njcn.device.pms.pojo.dto.PmsMonitorDTO;
import com.njcn.device.pms.pojo.param.PmsMonitorParam;
import com.njcn.oss.utils.FileStorageUtil; import com.njcn.oss.utils.FileStorageUtil;
import com.njcn.prepare.harmonic.pojo.po.ThsOverRunLog; import com.njcn.prepare.harmonic.pojo.po.ThsOverRunLog;
import com.njcn.prepare.harmonic.pojo.po.ThsSupervise; import com.njcn.prepare.harmonic.pojo.po.ThsSupervise;
import com.njcn.prepare.harmonic.pojo.vo.SuperviceRunLogVo; import com.njcn.prepare.harmonic.pojo.vo.SuperviceRunLogVo;
import com.njcn.process.enums.ProgressEnum; import com.njcn.process.enums.ProgressEnum;
import com.njcn.process.mapper.PmsMonitorMapper;
import com.njcn.process.mapper.ThsOverRunLogMapper; import com.njcn.process.mapper.ThsOverRunLogMapper;
import com.njcn.process.mapper.ThsSuperviseMapper; import com.njcn.process.mapper.ThsSuperviseMapper;
import com.njcn.process.service.ThsOverRunLogService; import com.njcn.process.service.ThsOverRunLogService;
@@ -23,6 +23,7 @@ import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -36,7 +37,6 @@ import java.util.stream.Collectors;
*/ */
@Service @Service
@Slf4j @Slf4j
@DS("process")
public class ThsOverRunLogServiceImpl extends ServiceImpl<ThsOverRunLogMapper, ThsOverRunLog> implements ThsOverRunLogService { public class ThsOverRunLogServiceImpl extends ServiceImpl<ThsOverRunLogMapper, ThsOverRunLog> implements ThsOverRunLogService {
@Autowired @Autowired
private ThsOverRunLogMapper thsOverRunLogMapper; private ThsOverRunLogMapper thsOverRunLogMapper;
@@ -47,7 +47,7 @@ public class ThsOverRunLogServiceImpl extends ServiceImpl<ThsOverRunLogMapper, T
@Autowired @Autowired
private DeptFeignClient deptFeignClient; private DeptFeignClient deptFeignClient;
@Autowired @Autowired
private PmsMonitorMapper pmsMonitorMapper; private MonitorClient monitorClient;
@Override @Override
public SuperviceRunLogVo superviseDetail(String supIndex) { public SuperviceRunLogVo superviseDetail(String supIndex) {
@@ -55,9 +55,11 @@ public class ThsOverRunLogServiceImpl extends ServiceImpl<ThsOverRunLogMapper, T
List<ThsOverRunLog> thsOverRunLogs = thsOverRunLogMapper.selectList(new LambdaQueryWrapper<ThsOverRunLog>().eq(ThsOverRunLog::getSupIndex, supIndex)); List<ThsOverRunLog> thsOverRunLogs = thsOverRunLogMapper.selectList(new LambdaQueryWrapper<ThsOverRunLog>().eq(ThsOverRunLog::getSupIndex, supIndex));
if (CollectionUtil.isNotEmpty(thsOverRunLogs)) { if (CollectionUtil.isNotEmpty(thsOverRunLogs)) {
thsOverRunLogs.forEach(item -> { thsOverRunLogs.forEach(item -> {
Monitor monitor = pmsMonitorMapper.selectById(item.getLineIndex()); PmsMonitorParam pmsMonitorParam = new PmsMonitorParam();
item.setCompanyName(monitor.getOrgName()); pmsMonitorParam.setMonitorIds(Collections.singletonList(item.getLineIndex()));
item.setLineIndexName(monitor.getName()); HttpResult<List<PmsMonitorDTO>> monitorInfoListByCond = monitorClient.getMonitorInfoListByCond(pmsMonitorParam);
item.setCompanyName(monitorInfoListByCond.getData().get(0).getOrgName());
item.setLineIndexName(monitorInfoListByCond.getData().get(0).getName());
if (StringUtils.isNotBlank(item.getAlarmTicket())) { if (StringUtils.isNotBlank(item.getAlarmTicket())) {
item.setAlarmTicket(fileStorageUtil.getFileUrl(item.getAlarmTicket())); item.setAlarmTicket(fileStorageUtil.getFileUrl(item.getAlarmTicket()));
} }

View File

@@ -4,7 +4,6 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -12,14 +11,14 @@ import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil; import com.njcn.common.utils.HttpResultUtil;
import com.njcn.device.pms.api.MonitorClient;
import com.njcn.device.pms.api.PmsGeneralDeviceInfoClient; import com.njcn.device.pms.api.PmsGeneralDeviceInfoClient;
import com.njcn.device.pms.pojo.po.Monitor; import com.njcn.device.pms.pojo.dto.PmsMonitorDTO;
import com.njcn.device.pms.pojo.param.PmsMonitorParam;
import com.njcn.harmonic.pojo.vo.SourceSteadyIndicator; import com.njcn.harmonic.pojo.vo.SourceSteadyIndicator;
import com.njcn.harmonic.pojo.vo.ThsStrategyVo;
import com.njcn.oss.constant.OssPath; import com.njcn.oss.constant.OssPath;
import com.njcn.oss.utils.FileStorageUtil; import com.njcn.oss.utils.FileStorageUtil;
import com.njcn.prepare.harmonic.pojo.dto.SuperviseDto; import com.njcn.prepare.harmonic.pojo.dto.SuperviseDto;
import com.njcn.prepare.harmonic.pojo.param.SuperviseParam;
import com.njcn.prepare.harmonic.pojo.po.ThsOverRunLog; import com.njcn.prepare.harmonic.pojo.po.ThsOverRunLog;
import com.njcn.prepare.harmonic.pojo.po.ThsSupervise; import com.njcn.prepare.harmonic.pojo.po.ThsSupervise;
import com.njcn.prepare.harmonic.pojo.vo.SuperviceRunLogVo; import com.njcn.prepare.harmonic.pojo.vo.SuperviceRunLogVo;
@@ -33,7 +32,6 @@ import com.njcn.process.mapper.*;
import com.njcn.process.pojo.param.FileParam; import com.njcn.process.pojo.param.FileParam;
import com.njcn.process.pojo.po.LimitRate; import com.njcn.process.pojo.po.LimitRate;
import com.njcn.process.pojo.po.ThsAlarmFormwork; import com.njcn.process.pojo.po.ThsAlarmFormwork;
import com.njcn.process.pojo.po.ThsWarnStrategyAss;
import com.njcn.process.service.ThsSuperviseService; import com.njcn.process.service.ThsSuperviseService;
import com.njcn.process.utils.ReadPatientExcelUtil; import com.njcn.process.utils.ReadPatientExcelUtil;
import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.api.DicDataFeignClient;
@@ -82,9 +80,7 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
@Autowired @Autowired
private ThsWarnStrategyAssMapper thsWarnStrategyAssMapper; private ThsWarnStrategyAssMapper thsWarnStrategyAssMapper;
@Autowired @Autowired
private PmsMonitorMapper pmsMonitorMapper; private MonitorClient monitorClient;
@Autowired
private LimitRateMapper limitRateMapper;
@Autowired @Autowired
private DicDataFeignClient dicDataFeignClient; private DicDataFeignClient dicDataFeignClient;
@Autowired @Autowired
@@ -99,110 +95,6 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
private ThsAlarmFormworkMapper thsAlarmFormworkMapper; private ThsAlarmFormworkMapper thsAlarmFormworkMapper;
private static final String DESCRIPTION = "description"; private static final String DESCRIPTION = "description";
@Override
public HttpResult<SuperviceRunLogVo> initSupervise(SuperviseParam superviseParam) {
SuperviceRunLogVo superviceRunLogVo = new SuperviceRunLogVo();
List<ThsOverRunLog> overRunLogList = new ArrayList<>();
if (InitTypeEnum.MANUAL.getCode().equals(superviseParam.getInitType()) && StringUtils.isBlank(superviseParam.getDeptId())) {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.INVALID_PARAMETER, null, "");
}
List<ThsStrategyVo> thsStrategyList = this.selectStrategyList(superviseParam);
//按部门进行分组
if (CollectionUtil.isNotEmpty(thsStrategyList)) {
Map<String, List<ThsStrategyVo>> deptMap = thsStrategyList.stream().collect(Collectors.groupingBy(ThsStrategyVo::getDeptId));
for (Map.Entry<String, List<ThsStrategyVo>> entry : deptMap.entrySet()) {
String depId = entry.getKey();
ThsSupervise thsSupervise = new ThsSupervise();
List<ThsStrategyVo> deptList = entry.getValue();
List<ThsStrategyVo> oneLevel = deptList.stream().filter(r -> !GradeEnum.THREE_LEVEL.getCode().equals(r.getGrade())).collect(Collectors.toList());//一级或二级策略集合
List<SourceSteadyIndicator> oneSourceSteadyIndicatorList = new ArrayList<>();
if (CollectionUtil.isNotEmpty(oneLevel)) {
for (ThsStrategyVo oneStrategyVo : oneLevel) {
List<ThsWarnStrategyAss> oneInterferenceSourceAsses = this.queryWarnStrategyAss(oneStrategyVo.getId(), TypeEnum.SOURCE_TYPE);//干扰源列表
List<ThsWarnStrategyAss> oneSteadyIndicatorAsses = this.queryWarnStrategyAss(oneStrategyVo.getId(), TypeEnum.INTERFERENCE_TYPE);//干扰源列表
List<String> oneSteadyIndicatorAssesIds = oneSteadyIndicatorAsses.stream().map(ThsWarnStrategyAss::getAssId).collect(Collectors.toList());
//封装每一种干扰源和对应的指标
for (ThsWarnStrategyAss oneWarnStrategyAss : oneInterferenceSourceAsses) {
SourceSteadyIndicator build = SourceSteadyIndicator.builder().id(oneStrategyVo.getId()).operation(oneStrategyVo.getOperation())
.interferenceSource(oneWarnStrategyAss.getAssId())
.steadyIndicator(oneSteadyIndicatorAssesIds)
.deptId(oneStrategyVo.getDeptId())
.type(oneStrategyVo.getType())
.monitorId(oneStrategyVo.getMonitorId())
.build();
oneSourceSteadyIndicatorList.add(build);
}
}
}
List<ThsStrategyVo> threeLevel = deptList.stream().filter(r -> GradeEnum.THREE_LEVEL.getCode().equals(r.getGrade())).collect(Collectors.toList());//三级策略集合
if (CollectionUtil.isNotEmpty(threeLevel)) {
for (ThsStrategyVo threeStrategyVo : threeLevel) {
Iterator<SourceSteadyIndicator> iterator = oneSourceSteadyIndicatorList.iterator();
while (iterator.hasNext()) {
SourceSteadyIndicator sourceSteady = iterator.next();
if (sourceSteady.getType().equals(threeStrategyVo.getType())) {
if (StringUtils.equals(threeStrategyVo.getMonitorId(), sourceSteady.getMonitorId())) {
List<ThsWarnStrategyAss> interferenceSourceAsses = this.queryWarnStrategyAss(threeStrategyVo.getId(), TypeEnum.SOURCE_TYPE);
//干扰源类型id
List<String> threeInterferenceSourceIds = interferenceSourceAsses.stream().map(ThsWarnStrategyAss::getAssId).collect(Collectors.toList());
List<ThsWarnStrategyAss> threeSteadyIndicatorAsses = this.queryWarnStrategyAss(threeStrategyVo.getId(), TypeEnum.INTERFERENCE_TYPE);
//指标类型id
List<String> steadyIndicatorIds = threeSteadyIndicatorAsses.stream().map(ThsWarnStrategyAss::getAssId).collect(Collectors.toList());
for (String threeInterferenceSourceId : threeInterferenceSourceIds) {
if (OperationEnum.AND.getCode().equals(threeStrategyVo.getOperation())) {//处理三级策略的与
if (OperationEnum.AND.getCode().equals(sourceSteady.getOperation())) {
if (StringUtils.equals(threeInterferenceSourceId, sourceSteady.getInterferenceSource()) &&
steadyIndicatorIds.containsAll(sourceSteady.getSteadyIndicator())) {
iterator.remove();
}
}
} else {//处理三级策略的或
if (StringUtils.equals(threeInterferenceSourceId, sourceSteady.getInterferenceSource())) {
if (steadyIndicatorIds.containsAll(sourceSteady.getSteadyIndicator())) {
iterator.remove();
} else {
List<String> steadyIndicator = sourceSteady.getSteadyIndicator();
steadyIndicator.removeAll(steadyIndicatorIds);
}
}
}
}
}
}
}
}
}
if (CollectionUtil.isNotEmpty(oneSourceSteadyIndicatorList)) {
oneSourceSteadyIndicatorList.forEach(steady -> {
Monitor monitor = pmsMonitorMapper.selectById(steady.getMonitorId());
if (monitor != null) {
if (StringUtils.equals(monitor.getMonitorTag(), steady.getInterferenceSource())) {//匹配该监测点属于的干扰源类型
//查询该监测点的检测数据
LimitRate limitRate = this.queryLimitTargetData(monitor.getId());
//判断指标是否超标
Map<String, Object> limitBoolMap = this.verifyLimit(limitRate, steady);
//构建监督数据
this.buildData(steady, limitBoolMap, monitor, limitRate, superviseParam.getInitType(), thsSupervise, overRunLogList);
}
}
});
//生成技术监督数据
HttpResult<Dept> deptById = deptFeignClient.getDeptById(depId);
Dept dept = deptById.getData();
if (InitTypeEnum.AUTO.getCode().equals(superviseParam.getInitType())) {
this.creatData(dept, thsSupervise, overRunLogList);
} else {
this.buildSuperviseName(thsSupervise, overRunLogList, dept);
superviceRunLogVo.setOverRunLog(overRunLogList);
superviceRunLogVo.setThsSupervise(thsSupervise);
}
}
}
}
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, superviceRunLogVo, "");
}
/** /**
* 构建技术监督名称 * 构建技术监督名称
* *
@@ -219,25 +111,8 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
} }
} }
//生成技术监督数据
@DS("process")
@Transactional(rollbackFor = Exception.class)
@Override
public void creatData(Dept dept, ThsSupervise thsSupervise, List<ThsOverRunLog> overRunLogList) {
if (CollectionUtil.isNotEmpty(overRunLogList)) {
thsSupervise.setDescription(overRunLogList.get(0).getDescription());
String str = Arrays.asList(overRunLogList.get(0).getDescription().split(",")).get(0);
String overItem = str.substring(0, str.indexOf("") - 1);
thsSupervise.setName(DateUtil.today() + dept.getName() + overRunLogList.get(0).getName() + "" + overRunLogList.size() + "个监测点" + overItem);
thsSuperviseMapper.insert(thsSupervise);
for (ThsOverRunLog thsOverRunLog : overRunLogList) {
thsOverRunLogMapper.insert(thsOverRunLog);
}
}
}
@Override @Override
@DS("process")
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void saveOverRunLog(SuperviceRunLogVo superviceRunLogVo) { public void saveOverRunLog(SuperviceRunLogVo superviceRunLogVo) {
if (CollectionUtil.isNotEmpty(superviceRunLogVo.getOverRunLog())) { if (CollectionUtil.isNotEmpty(superviceRunLogVo.getOverRunLog())) {
@@ -567,110 +442,6 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
} }
/**
* 查询策略列表
*
* @param superviseParam
* @return
*/
@Override
public List<ThsStrategyVo> selectStrategyList(SuperviseParam superviseParam) {
return thsWarnStrategyMapper.selectStrategyList(superviseParam);
}
/**
* 查询策略绑定的干扰源列表或指标参数列表
*
* @param warnId
* @param typeEnum
* @return
*/
@DS("process")
@Override
public List<ThsWarnStrategyAss> queryWarnStrategyAss(String warnId, TypeEnum typeEnum) {
return thsWarnStrategyAssMapper.selectList(new LambdaQueryWrapper<ThsWarnStrategyAss>()
.eq(ThsWarnStrategyAss::getWarnId, warnId)
.eq(ThsWarnStrategyAss::getType, typeEnum.getCode()));
}
/**
* 生成监督数据
*
* @param limitBoolMap
*/
@Override
public void buildData(SourceSteadyIndicator steady, Map<String, Object> limitBoolMap, Monitor monitor, LimitRate limitRate, Integer initType, ThsSupervise thsSupervise, List<ThsOverRunLog> thsOverRunLogs) {
if (CollectionUtil.isNotEmpty(limitBoolMap)) {
if (OperationEnum.AND.getCode().equals(steady.getOperation())) {
for (Map.Entry<String, Object> entry : limitBoolMap.entrySet()) {
if (entry.getValue() instanceof Boolean && !(boolean) entry.getValue()) {
return;
}
}
//构建监督数据
this.buildSuperviseData(steady, monitor, limitRate, limitBoolMap, initType, thsSupervise, thsOverRunLogs);
//构建告警/预警监测点列表数据
this.buildOverRunLog(steady, thsSupervise, monitor, limitRate, limitBoolMap, initType, thsOverRunLogs);
return;
}
if (OperationEnum.OR.getCode().equals(steady.getOperation())) {
for (Map.Entry<String, Object> entry : limitBoolMap.entrySet()) {
if (entry.getValue() instanceof Boolean && (boolean) entry.getValue()) {
//生成监督数据
this.buildSuperviseData(steady, monitor, limitRate, limitBoolMap, initType, thsSupervise, thsOverRunLogs);
//生成告警/预警监测点数据
this.buildOverRunLog(steady, thsSupervise, monitor, limitRate, limitBoolMap, initType, thsOverRunLogs);
return;
}
}
}
}
}
@Override
public void buildSuperviseData(SourceSteadyIndicator steady, Monitor monitor, LimitRate limitRate, Map<String, Object> limitBoolMap, Integer initType, ThsSupervise thsSupervise, List<ThsOverRunLog> thsOverRunLogs) {
if (thsSupervise != null && StringUtils.isBlank(thsSupervise.getSupIndex())) {
thsSupervise.setSupIndex(IdUtil.simpleUUID());
thsSupervise.setDeptId(steady.getDeptId());
thsSupervise.setCreateTime(new Date());
thsSupervise.setType(steady.getType());
thsSupervise.setCreateUser(RequestUtil.getUsername());
thsSupervise.setProgress(ProgressEnum.START.getCode());
thsSupervise.setCreateType(initType);
}
}
@Override
public void buildOverRunLog(SourceSteadyIndicator steady, ThsSupervise thsSupervise, Monitor monitor, LimitRate limitRate, Map<String, Object> limitBoolMap, Integer initType, List<ThsOverRunLog> thsOverRunLogs) {
ThsOverRunLog thsOverRunLog = new ThsOverRunLog();
thsOverRunLog.setId(IdUtil.simpleUUID());
thsOverRunLog.setSupIndex(thsSupervise.getSupIndex());
thsOverRunLog.setLineIndex(monitor.getId());
thsOverRunLog.setName(monitor.getPowerrName());
thsOverRunLog.setUpdateTime(limitRate.getCreatTime());
thsOverRunLog.setCreateTime(new Date());
thsOverRunLog.setCompanyName(monitor.getOrgName());
thsOverRunLog.setLineIndexName(monitor.getName());
List descriptionList = (List) limitBoolMap.get(DESCRIPTION);
thsOverRunLog.setDescription(StringUtils.join(descriptionList, ","));
thsOverRunLog.setOverTime(limitRate.getAlltime());
thsOverRunLogs.add(thsOverRunLog);
}
@Override
@DS("pms")
public LimitRate queryLimitTargetData(String monitorId) {
LimitRate limitRate = limitRateMapper.selectOne(new LambdaQueryWrapper<LimitRate>().eq(LimitRate::getLineId, monitorId)
.between(LimitRate::getCreatTime,
DateUtil.beginOfDay(DateUtil.offsetDay(new Date(), -1)),
DateUtil.endOfDay(DateUtil.offsetDay(new Date(), -1))).last("limit 1"));
return limitRate;
}
@Override @Override
public HttpServletResponse downloadFeedBackFile(FileParam fileParam, HttpServletRequest request, HttpServletResponse response) { public HttpServletResponse downloadFeedBackFile(FileParam fileParam, HttpServletRequest request, HttpServletResponse response) {
TicketTypeEnum ticketTypeEnum = TicketTypeEnum.getTicketTypeEnumByCode(fileParam.getTicketType()); TicketTypeEnum ticketTypeEnum = TicketTypeEnum.getTicketTypeEnumByCode(fileParam.getTicketType());
@@ -726,10 +497,12 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
ZipOutputStream zos = new ZipOutputStream(csum); ZipOutputStream zos = new ZipOutputStream(csum);
for (Map.Entry<String, String> entry : filePathMap.entrySet()) { for (Map.Entry<String, String> entry : filePathMap.entrySet()) {
ThsOverRunLog runLog = thsOverRunLogMapper.selectById(entry.getKey()); ThsOverRunLog runLog = thsOverRunLogMapper.selectById(entry.getKey());
Monitor monitor = pmsMonitorMapper.selectById(runLog.getLineIndex()); PmsMonitorParam pmsMonitorParam = new PmsMonitorParam();
pmsMonitorParam.setMonitorIds(Collections.singletonList(runLog.getLineIndex()));
HttpResult<List<PmsMonitorDTO>> monitorInfoListByCond = monitorClient.getMonitorInfoListByCond(pmsMonitorParam);
InputStream inputStream = fileStorageUtil.downloadStream(entry.getValue()); InputStream inputStream = fileStorageUtil.downloadStream(entry.getValue());
// 对于每一个要被存放到压缩包的文件都必须调用ZipOutputStream对象的putNextEntry()方法,确保压缩包里面文件不同名 // 对于每一个要被存放到压缩包的文件都必须调用ZipOutputStream对象的putNextEntry()方法,确保压缩包里面文件不同名
zos.putNextEntry(new ZipEntry(monitor.getName() + ticketTypeEnum.getMessage() + entry.getValue().substring(entry.getValue().lastIndexOf(".")))); zos.putNextEntry(new ZipEntry(monitorInfoListByCond.getData().get(0).getName() + ticketTypeEnum.getMessage() + entry.getValue().substring(entry.getValue().lastIndexOf("."))));
int bytesRead = 0; int bytesRead = 0;
// 向压缩文件中输出数据 // 向压缩文件中输出数据
while ((bytesRead = inputStream.read()) != -1) { while ((bytesRead = inputStream.read()) != -1) {