Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -25,6 +25,10 @@ public class LineFlowMealDetailVO implements Serializable {
|
|||||||
@ApiModelProperty("监测点对应的设备名称")
|
@ApiModelProperty("监测点对应的设备名称")
|
||||||
private String DeviceName;
|
private String DeviceName;
|
||||||
|
|
||||||
|
|
||||||
|
@ApiModelProperty("监测点对应的设备IP")
|
||||||
|
private String DeviceIP;
|
||||||
|
|
||||||
@ApiModelProperty("供电公司")
|
@ApiModelProperty("供电公司")
|
||||||
private String ElectricPowerCompany;
|
private String ElectricPowerCompany;
|
||||||
|
|
||||||
|
|||||||
@@ -115,17 +115,6 @@ public class OperationContrController extends BaseController {
|
|||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||||
}
|
}
|
||||||
|
|
||||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
|
||||||
@PostMapping("/getMonthFlow")
|
|
||||||
@ApiOperation("获取每月流量")
|
|
||||||
@ApiImplicitParam(name = "deviceInfoParam", value = "实体", required = true)
|
|
||||||
public HttpResult<List<LineFlowMealDetailVO>> getMonthFlow (@RequestBody PqsParam deviceInfoParam){
|
|
||||||
String methodDescribe = getMethodDescribe("getMonthFlow");
|
|
||||||
LogUtil.njcnDebug(log, "{},参数集合:{}", methodDescribe, deviceInfoParam);
|
|
||||||
List<LineFlowMealDetailVO> result = lineService.getMonthFlow(deviceInfoParam);
|
|
||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
@PostMapping("/getLineStaticsView")
|
@PostMapping("/getLineStaticsView")
|
||||||
|
|||||||
@@ -9,12 +9,17 @@ 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.common.utils.LogUtil;
|
||||||
|
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
||||||
|
import com.njcn.device.pq.pojo.param.PqsParam;
|
||||||
import com.njcn.device.pq.pojo.param.TerminalMainQueryParam;
|
import com.njcn.device.pq.pojo.param.TerminalMainQueryParam;
|
||||||
import com.njcn.device.pq.pojo.param.TerminalParam;
|
import com.njcn.device.pq.pojo.param.TerminalParam;
|
||||||
|
import com.njcn.device.pq.pojo.vo.LineFlowMealDetailVO;
|
||||||
import com.njcn.device.pq.pojo.vo.TerminalDaliyFlowVO;
|
import com.njcn.device.pq.pojo.vo.TerminalDaliyFlowVO;
|
||||||
import com.njcn.device.pq.pojo.vo.TerminalMaintainVO;
|
import com.njcn.device.pq.pojo.vo.TerminalMaintainVO;
|
||||||
import com.njcn.device.pq.service.TerminalMaintainService;
|
import com.njcn.device.pq.service.TerminalMaintainService;
|
||||||
import com.njcn.web.controller.BaseController;
|
import com.njcn.web.controller.BaseController;
|
||||||
|
import com.njcn.web.utils.RequestUtil;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
@@ -63,6 +68,22 @@ public class TerminalMaintainController extends BaseController {
|
|||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, resList, methodDescribe);
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, resList, methodDescribe);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
|
@PostMapping("/getMonthFlow")
|
||||||
|
@ApiOperation("获取每月流量")
|
||||||
|
@ApiImplicitParam(name = "deviceInfoParam", value = "实体", required = true)
|
||||||
|
public HttpResult<List<LineFlowMealDetailVO>> getMonthFlow (@RequestBody PqsParam deviceInfoParam){
|
||||||
|
String methodDescribe = getMethodDescribe("getMonthFlow");
|
||||||
|
LogUtil.njcnDebug(log, "{},参数集合:{}", methodDescribe, deviceInfoParam);
|
||||||
|
if (deviceInfoParam.getDeptIndex() == null) {
|
||||||
|
DeviceInfoParam param = new DeviceInfoParam(RequestUtil.getDeptIndex(),null);
|
||||||
|
deviceInfoParam.setDeptIndex(param.getDeptIndex());
|
||||||
|
}
|
||||||
|
List<LineFlowMealDetailVO> result = terminalMaintainService.getMonthFlow(deviceInfoParam);
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 终端状态管理,流量管理,流量策略管理主界面
|
* 终端状态管理,流量管理,流量策略管理主界面
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -422,6 +422,4 @@ public interface LineMapper extends BaseMapper<Line> {
|
|||||||
|
|
||||||
Page<LineFlowMealDetailVO> getNewDeviceRunStatistics (Page<LineFlowMealDetailVO> page,@Param("devs") List<String> list, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime);
|
Page<LineFlowMealDetailVO> getNewDeviceRunStatistics (Page<LineFlowMealDetailVO> page,@Param("devs") List<String> list, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime);
|
||||||
Page<LineFlowMealDetailVO> getNewDeviceFlowStatistics (Page<LineFlowMealDetailVO> page,@Param("devs") List<String> list, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime);
|
Page<LineFlowMealDetailVO> getNewDeviceFlowStatistics (Page<LineFlowMealDetailVO> page,@Param("devs") List<String> list, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime);
|
||||||
|
|
||||||
List<LineFlowMealDetailVO> getMonthFlow (@Param("devId") String devId,@Param("startTime") DateTime beginOfDay, @Param("endTime") DateTime endOfDay);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package com.njcn.device.pq.mapper;
|
package com.njcn.device.pq.mapper;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateTime;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.njcn.device.pq.pojo.vo.LineFlowMealDetailVO;
|
||||||
import com.njcn.device.pq.pojo.vo.TerminalDaliyFlowVO;
|
import com.njcn.device.pq.pojo.vo.TerminalDaliyFlowVO;
|
||||||
import com.njcn.device.pq.pojo.vo.TerminalMaintainVO;
|
import com.njcn.device.pq.pojo.vo.TerminalMaintainVO;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
@@ -77,4 +79,6 @@ public interface TerminalMaintainMapper {
|
|||||||
|
|
||||||
|
|
||||||
TerminalDaliyFlowVO getFlowManageDetail(@Param("devId") String deviceId);
|
TerminalDaliyFlowVO getFlowManageDetail(@Param("devId") String deviceId);
|
||||||
|
|
||||||
|
List<LineFlowMealDetailVO> getMonthFlow (@Param("devs") List<String> list, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1053,23 +1053,5 @@
|
|||||||
and d.com_flag = #{comFlag}
|
and d.com_flag = #{comFlag}
|
||||||
and a.state = 1
|
and a.state = 1
|
||||||
</select>
|
</select>
|
||||||
<select id="getMonthFlow" resultType="com.njcn.device.pq.pojo.vo.LineFlowMealDetailVO">
|
|
||||||
select t.*,
|
|
||||||
(t.statisValue)/(t.flowMeal) flowProportion
|
|
||||||
from (
|
|
||||||
SELECT
|
|
||||||
m.Dev_Id,
|
|
||||||
ifnull(d.flow, (select flow from cld_flow_meal where type = 0 and flag = 1)) + ifnull(d1.flow, 0) flowMeal,
|
|
||||||
ifnull(m.Actual_Value,0)/1024/1024 statisValue
|
|
||||||
FROM cld_month_flow m
|
|
||||||
LEFT JOIN cld_dev_meal c ON m.Dev_Id = c.line_id
|
|
||||||
LEFT JOIN cld_flow_meal d ON c.Base_Meal_Id = d.id
|
|
||||||
LEFT JOIN cld_flow_meal d1 ON c.Ream_Meal_Id = d1.id
|
|
||||||
where m.Dev_Id = #{devId}
|
|
||||||
and
|
|
||||||
m.Time_Id between #{startTime} and #{endTime}
|
|
||||||
) t
|
|
||||||
ORDER BY flowProportion DESC
|
|
||||||
</select>
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -135,5 +135,40 @@ FROM
|
|||||||
WHERE c.Line_Id = #{devId} AND d.State =1 AND d1.State =1
|
WHERE c.Line_Id = #{devId} AND d.State =1 AND d1.State =1
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="getMonthFlow" resultType="com.njcn.device.pq.pojo.vo.LineFlowMealDetailVO">
|
||||||
|
select t.*,
|
||||||
|
(t.statisValue)/t.flowMeal flowProportion
|
||||||
|
from (
|
||||||
|
SELECT
|
||||||
|
a.id id,
|
||||||
|
a.name deviceName,
|
||||||
|
a.level,
|
||||||
|
sub.name substation,
|
||||||
|
gd.name electricPowerCompany,
|
||||||
|
b.IP DeviceIP,
|
||||||
|
b.id deviceId,
|
||||||
|
ifnull(d.flow, (select flow from cld_flow_meal where type = 0 and flag = 1)) + ifnull(d1.flow, 0) flowMeal,
|
||||||
|
-- ifnull(m.Actual_Value/1024/1024,0) statisValue
|
||||||
|
ifnull(convert(m.Actual_Value/1024/1024,decimal(7,2)),0) statisValue
|
||||||
|
FROM pq_line a
|
||||||
|
INNER JOIN pq_line sub ON sub.id = a.pid
|
||||||
|
INNER JOIN pq_line gd ON gd.id = sub.pid
|
||||||
|
INNER JOIN pq_device b ON a.id = b.id
|
||||||
|
LEFT JOIN cld_month_flow m ON b.id = m.Dev_Id
|
||||||
|
LEFT JOIN cld_dev_meal c ON b.id = c.line_id
|
||||||
|
LEFT JOIN cld_flow_meal d ON c.Base_Meal_Id = d.id
|
||||||
|
LEFT JOIN cld_flow_meal d1 ON c.Ream_Meal_Id = d1.id
|
||||||
|
where a.id in
|
||||||
|
<foreach item="item" collection="devs" separator="," open="(" close=")">
|
||||||
|
#{item}
|
||||||
|
</foreach>
|
||||||
|
and
|
||||||
|
a.Create_Time between #{startTime} and #{endTime}
|
||||||
|
and
|
||||||
|
b.Run_Flag != 2
|
||||||
|
) t
|
||||||
|
ORDER BY flowProportion DESC
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -208,6 +208,4 @@ public interface LineService {
|
|||||||
Page<TopMsgPO> dailyDeviceAbnormalStatistics(PqsParam param);
|
Page<TopMsgPO> dailyDeviceAbnormalStatistics(PqsParam param);
|
||||||
|
|
||||||
List<TopMsgPO> dailyDeviceAbnormal(DeviceInfoParam.BusinessParam conditionBusinessParam);
|
List<TopMsgPO> dailyDeviceAbnormal(DeviceInfoParam.BusinessParam conditionBusinessParam);
|
||||||
|
|
||||||
List<LineFlowMealDetailVO> getMonthFlow (PqsParam deviceInfoParam);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,10 @@ package com.njcn.device.pq.service;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
||||||
|
import com.njcn.device.pq.pojo.param.PqsParam;
|
||||||
import com.njcn.device.pq.pojo.param.TerminalMainQueryParam;
|
import com.njcn.device.pq.pojo.param.TerminalMainQueryParam;
|
||||||
import com.njcn.device.pq.pojo.param.TerminalParam;
|
import com.njcn.device.pq.pojo.param.TerminalParam;
|
||||||
|
import com.njcn.device.pq.pojo.vo.LineFlowMealDetailVO;
|
||||||
import com.njcn.device.pq.pojo.vo.TerminalDaliyFlowVO;
|
import com.njcn.device.pq.pojo.vo.TerminalDaliyFlowVO;
|
||||||
import com.njcn.device.pq.pojo.vo.TerminalMaintainVO;
|
import com.njcn.device.pq.pojo.vo.TerminalMaintainVO;
|
||||||
|
|
||||||
@@ -55,4 +57,6 @@ public interface TerminalMaintainService {
|
|||||||
|
|
||||||
|
|
||||||
List<TerminalDaliyFlowVO> getFlowManageDetail(TerminalMainQueryParam param);
|
List<TerminalDaliyFlowVO> getFlowManageDetail(TerminalMainQueryParam param);
|
||||||
|
|
||||||
|
List<LineFlowMealDetailVO> getMonthFlow(PqsParam deviceInfoParam);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -403,12 +403,6 @@ public class LineServiceImpl extends ServiceImpl<LineMapper, Line> implements Li
|
|||||||
return topMsgDetails;
|
return topMsgDetails;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<LineFlowMealDetailVO> getMonthFlow(PqsParam deviceInfoParam) {
|
|
||||||
List<LineFlowMealDetailVO> list = lineMapper.getMonthFlow(deviceInfoParam.getDevId(),DateUtil.beginOfDay(DateUtil.parse(deviceInfoParam.getSearchBeginTime())),DateUtil.endOfDay(DateUtil.parse(deviceInfoParam.getSearchEndTime())));
|
|
||||||
return list;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<LineFlowMealDetailVO> getDeviceRunStatistics(DeviceInfoParam.BusinessParam deviceInfoParam) {
|
public List<LineFlowMealDetailVO> getDeviceRunStatistics(DeviceInfoParam.BusinessParam deviceInfoParam) {
|
||||||
ArrayList<LineFlowMealDetailVO> lineFlowMealDetailList = new ArrayList<>();
|
ArrayList<LineFlowMealDetailVO> lineFlowMealDetailList = new ArrayList<>();
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import com.njcn.device.pq.enums.DeviceResponseEnum;
|
|||||||
import com.njcn.device.pq.mapper.TerminalMaintainMapper;
|
import com.njcn.device.pq.mapper.TerminalMaintainMapper;
|
||||||
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
||||||
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
||||||
|
import com.njcn.device.pq.pojo.param.PqsParam;
|
||||||
import com.njcn.device.pq.pojo.param.TerminalMainQueryParam;
|
import com.njcn.device.pq.pojo.param.TerminalMainQueryParam;
|
||||||
import com.njcn.device.pq.pojo.param.TerminalParam;
|
import com.njcn.device.pq.pojo.param.TerminalParam;
|
||||||
import com.njcn.device.pq.pojo.po.Communicate;
|
import com.njcn.device.pq.pojo.po.Communicate;
|
||||||
@@ -18,6 +19,7 @@ import com.njcn.device.pq.pojo.po.DevMeal;
|
|||||||
import com.njcn.device.pq.pojo.po.DevStrategy;
|
import com.njcn.device.pq.pojo.po.DevStrategy;
|
||||||
import com.njcn.device.pq.pojo.po.Device;
|
import com.njcn.device.pq.pojo.po.Device;
|
||||||
import com.njcn.device.pq.pojo.po.influxdb.DeviceDayFlow;
|
import com.njcn.device.pq.pojo.po.influxdb.DeviceDayFlow;
|
||||||
|
import com.njcn.device.pq.pojo.vo.LineFlowMealDetailVO;
|
||||||
import com.njcn.device.pq.pojo.vo.TerminalDaliyFlowVO;
|
import com.njcn.device.pq.pojo.vo.TerminalDaliyFlowVO;
|
||||||
import com.njcn.device.pq.pojo.vo.TerminalMaintainVO;
|
import com.njcn.device.pq.pojo.vo.TerminalMaintainVO;
|
||||||
import com.njcn.device.pq.service.IDevMealService;
|
import com.njcn.device.pq.service.IDevMealService;
|
||||||
@@ -182,6 +184,15 @@ public class TerminalMaintainServiceImpl implements TerminalMaintainService {
|
|||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<LineFlowMealDetailVO> getMonthFlow(PqsParam deviceInfoParam) {
|
||||||
|
List<String> deviceIndexes = new ArrayList<>();
|
||||||
|
List<GeneralDeviceDTO> deviceInfoList = generalDeviceService.getDeviceInfo(deviceInfoParam, null, Stream.of(1).collect(Collectors.toList()));
|
||||||
|
deviceInfoList.stream().map(GeneralDeviceDTO::getDeviceIndexes).forEach(deviceIndexes::addAll);
|
||||||
|
List<LineFlowMealDetailVO> list = terminalMaintainMapper.getMonthFlow(deviceIndexes,DateUtil.beginOfDay(DateUtil.parse(deviceInfoParam.getSearchBeginTime())),DateUtil.endOfDay(DateUtil.parse(deviceInfoParam.getSearchEndTime())));
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
private List<DeviceDayFlow> getFlowManageDetailFromInfluxDB (TerminalMainQueryParam param) {
|
private List<DeviceDayFlow> getFlowManageDetailFromInfluxDB (TerminalMainQueryParam param) {
|
||||||
StringBuilder stringBuilder = new StringBuilder();
|
StringBuilder stringBuilder = new StringBuilder();
|
||||||
stringBuilder.append("time >= '").append(DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime()))).append("' and ").append("time <= '").append(DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime()))).append("' and ");
|
stringBuilder.append("time >= '").append(DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime()))).append("' and ").append("time <= '").append(DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime()))).append("' and ");
|
||||||
|
|||||||
@@ -232,7 +232,12 @@ public class LargeScreenServiceImpl implements LargeScreenService {
|
|||||||
downTimeVO.setCount(resultMap.get(s));
|
downTimeVO.setCount(resultMap.get(s));
|
||||||
result.add(downTimeVO);
|
result.add(downTimeVO);
|
||||||
}
|
}
|
||||||
return result;
|
//集合反向循环
|
||||||
|
List<DownTimeVO> list = new ArrayList<>();
|
||||||
|
for (int i = result.size() - 1; i >= 0; i--) {
|
||||||
|
list.add(result.get(i));
|
||||||
|
}
|
||||||
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
package com.njcn.executor.handler;
|
||||||
|
|
||||||
|
import com.njcn.prepare.harmonic.api.line.ThsSuperviseClient;
|
||||||
|
import com.njcn.prepare.harmonic.pojo.param.SuperviseParam;
|
||||||
|
import com.xxl.job.core.handler.annotation.XxlJob;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 每日生成技术监督任务
|
||||||
|
*
|
||||||
|
* @author Lee
|
||||||
|
* @date 2023/04/11
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class ThsSuperviseJob {
|
||||||
|
|
||||||
|
private final ThsSuperviseClient thsSuperviseClient;
|
||||||
|
|
||||||
|
@XxlJob("thsSuperviseJob")
|
||||||
|
public void thsSuperviseJob() {
|
||||||
|
SuperviseParam superviseParam = new SuperviseParam();
|
||||||
|
superviseParam.setInitType(0);
|
||||||
|
thsSuperviseClient.initSupervise(superviseParam);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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>
|
||||||
|
|||||||
@@ -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> {
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -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> {
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -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> {
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 保存技术监督数据
|
* 保存技术监督数据
|
||||||
|
|||||||
@@ -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()));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user