1.电能质量在线监测需求调整
2.变电站台账功能(待完善)
This commit is contained in:
@@ -31,7 +31,8 @@
|
|||||||
device.com_flag comFlag,
|
device.com_flag comFlag,
|
||||||
1 as lineType,
|
1 as lineType,
|
||||||
0 as type,
|
0 as type,
|
||||||
lineDetail.monitor_flag as isUpToGrid
|
lineDetail.monitor_flag as isUpToGrid,
|
||||||
|
point.name pointName
|
||||||
</if>
|
</if>
|
||||||
<!--母线-->
|
<!--母线-->
|
||||||
<if test="type == 2">
|
<if test="type == 2">
|
||||||
|
|||||||
@@ -0,0 +1,35 @@
|
|||||||
|
package com.njcn.harmonic.pojo.vo;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xy
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class SubstationVo {
|
||||||
|
|
||||||
|
@ApiModelProperty("部门名称")
|
||||||
|
private String deptName;
|
||||||
|
|
||||||
|
@ApiModelProperty("变电站名称")
|
||||||
|
private String substationName;
|
||||||
|
|
||||||
|
@ApiModelProperty("电网侧监测点名称")
|
||||||
|
private List<String> dwLineList;
|
||||||
|
|
||||||
|
@ApiModelProperty("非电网侧监测点名称")
|
||||||
|
private List<String> yhLineList;
|
||||||
|
|
||||||
|
@ApiModelProperty("告警频次")
|
||||||
|
private Double alarmFreq;
|
||||||
|
|
||||||
|
@ApiModelProperty("谐波电压污染告警值")
|
||||||
|
private Double vPollutionData;
|
||||||
|
|
||||||
|
@ApiModelProperty("谐波电流污染值")
|
||||||
|
private Double iPollutionData;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -8,22 +8,23 @@ import com.njcn.common.utils.HttpResultUtil;
|
|||||||
import com.njcn.common.utils.LogUtil;
|
import com.njcn.common.utils.LogUtil;
|
||||||
import com.njcn.device.pq.pojo.dto.PollutionLineDTO;
|
import com.njcn.device.pq.pojo.dto.PollutionLineDTO;
|
||||||
import com.njcn.device.pq.pojo.dto.PollutionSubstationDTO;
|
import com.njcn.device.pq.pojo.dto.PollutionSubstationDTO;
|
||||||
|
import com.njcn.device.pq.pojo.param.GridDiagramParam;
|
||||||
|
import com.njcn.device.pq.pojo.param.RunManageParam;
|
||||||
import com.njcn.harmonic.pojo.param.HarmonicPublicParam;
|
import com.njcn.harmonic.pojo.param.HarmonicPublicParam;
|
||||||
import com.njcn.harmonic.pojo.param.PollutionSubstationQuryParam;
|
import com.njcn.harmonic.pojo.param.PollutionSubstationQuryParam;
|
||||||
import com.njcn.harmonic.pojo.vo.PollutionSubstationVO;
|
import com.njcn.harmonic.pojo.vo.PollutionSubstationVO;
|
||||||
import com.njcn.harmonic.pojo.vo.PollutionVO;
|
import com.njcn.harmonic.pojo.vo.PollutionVO;
|
||||||
|
import com.njcn.harmonic.pojo.vo.SubstationVo;
|
||||||
import com.njcn.harmonic.service.PollutionSubstationService;
|
import com.njcn.harmonic.service.PollutionSubstationService;
|
||||||
import com.njcn.web.controller.BaseController;
|
import com.njcn.web.controller.BaseController;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
|
import io.swagger.annotations.ApiImplicitParams;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -100,4 +101,21 @@ public class PollutionSubstationController extends BaseController {
|
|||||||
List<PollutionLineDTO> list = pollutionSubstationService.getLineRankTop10(param);
|
List<PollutionLineDTO> list = pollutionSubstationService.getLineRankTop10(param);
|
||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
|
@PostMapping("/substationInfo")
|
||||||
|
@ApiOperation("变电站台账信息(包含稳态数据统计)")
|
||||||
|
@ApiImplicitParams({
|
||||||
|
@ApiImplicitParam(name = "deptIndex", value = "部门id"),
|
||||||
|
@ApiImplicitParam(name = "searchValue", value = "搜索值"),
|
||||||
|
@ApiImplicitParam(name = "startTime", value = "开始时间"),
|
||||||
|
@ApiImplicitParam(name = "endTime", value = "结束时间")
|
||||||
|
})
|
||||||
|
public HttpResult<List<SubstationVo>> getSubstationInfo(@RequestParam(value = "deptIndex") String deptIndex, @RequestParam(value = "searchValue") String searchValue, @RequestParam(value = "startTime") String startTime, @RequestParam(value = "endTime") String endTime) {
|
||||||
|
String methodDescribe = getMethodDescribe("getSubstationInfo");
|
||||||
|
LogUtil.njcnDebug(log, "{},实体参数:{},{}", methodDescribe, deptIndex, searchValue);
|
||||||
|
List<SubstationVo> list = pollutionSubstationService.getSubstationInfo(deptIndex,searchValue,startTime,endTime);
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,4 +62,15 @@ public interface RStatLimitRateDMapper extends BaseMapper<RStatLimitRateDPO> {
|
|||||||
List<RStatLimitRateDPO> getAssessTargetRate( @Param("ids") List<String> list,
|
List<RStatLimitRateDPO> getAssessTargetRate( @Param("ids") List<String> list,
|
||||||
@Param("statTime") String startTime,
|
@Param("statTime") String startTime,
|
||||||
@Param("endTime") String endTime);
|
@Param("endTime") String endTime);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取监测点的超标次数
|
||||||
|
* @param list
|
||||||
|
* @param startTime
|
||||||
|
* @param endTime
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<RStatLimitRateDPO> getAllOverTimes( @Param("ids") List<String> list,
|
||||||
|
@Param("statTime") String startTime,
|
||||||
|
@Param("endTime") String endTime);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -329,4 +329,32 @@
|
|||||||
group by
|
group by
|
||||||
my_index
|
my_index
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="getAllOverTimes" resultType="com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO">
|
||||||
|
select
|
||||||
|
my_index as lineId,
|
||||||
|
SUM(freq_dev_overtime
|
||||||
|
+ flicker_overtime
|
||||||
|
+ voltage_dev_overtime
|
||||||
|
+ ubalance_overtime
|
||||||
|
+ uaberrance_overtime
|
||||||
|
+ i_neg_overtime
|
||||||
|
+ uharm_2_overtime + uharm_3_overtime + uharm_4_overtime + uharm_5_overtime + uharm_6_overtime + uharm_7_overtime + uharm_8_overtime + uharm_9_overtime + uharm_10_overtime + uharm_11_overtime + uharm_12_overtime + uharm_13_overtime + uharm_14_overtime + uharm_15_overtime + uharm_16_overtime + uharm_17_overtime + uharm_18_overtime + uharm_19_overtime + uharm_20_overtime + uharm_21_overtime + uharm_22_overtime + uharm_23_overtime + uharm_24_overtime + uharm_25_overtime
|
||||||
|
+ iharm_2_overtime + iharm_3_overtime + iharm_4_overtime + iharm_5_overtime + iharm_6_overtime + iharm_7_overtime + iharm_8_overtime + iharm_9_overtime + iharm_10_overtime + iharm_11_overtime + iharm_12_overtime + iharm_13_overtime + iharm_14_overtime + iharm_15_overtime + iharm_16_overtime + iharm_17_overtime + iharm_18_overtime + iharm_19_overtime + iharm_20_overtime + iharm_21_overtime + iharm_22_overtime + iharm_23_overtime + iharm_24_overtime + iharm_25_overtime
|
||||||
|
+ inuharm_1_overtime + inuharm_2_overtime + inuharm_3_overtime + inuharm_4_overtime + inuharm_5_overtime + inuharm_6_overtime + inuharm_7_overtime + inuharm_8_overtime + inuharm_9_overtime + inuharm_10_overtime + inuharm_11_overtime + inuharm_12_overtime + inuharm_13_overtime + inuharm_14_overtime + inuharm_15_overtime + inuharm_16_overtime
|
||||||
|
) as allTime
|
||||||
|
from
|
||||||
|
`r_stat_limit_rate_d`
|
||||||
|
<where>
|
||||||
|
and time_id between #{startTime} and #{endTime}
|
||||||
|
<if test=" ids != null and ids.size > 0">
|
||||||
|
AND my_index IN
|
||||||
|
<foreach collection='ids' item='item' index="index" open='(' separator=',' close=')'>
|
||||||
|
#{item}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
group by
|
||||||
|
my_index
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import com.njcn.device.pq.pojo.dto.PollutionGridDiagramDTO;
|
|||||||
import com.njcn.device.pq.pojo.dto.PollutionLineDTO;
|
import com.njcn.device.pq.pojo.dto.PollutionLineDTO;
|
||||||
import com.njcn.device.pq.pojo.dto.PollutionSubstationDTO;
|
import com.njcn.device.pq.pojo.dto.PollutionSubstationDTO;
|
||||||
import com.njcn.device.pq.pojo.param.GridDiagramParam;
|
import com.njcn.device.pq.pojo.param.GridDiagramParam;
|
||||||
|
import com.njcn.device.pq.pojo.param.RunManageParam;
|
||||||
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
|
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
|
||||||
import com.njcn.harmonic.pojo.param.HarmonicPublicParam;
|
import com.njcn.harmonic.pojo.param.HarmonicPublicParam;
|
||||||
import com.njcn.harmonic.pojo.param.PollutionSubstationQuryParam;
|
import com.njcn.harmonic.pojo.param.PollutionSubstationQuryParam;
|
||||||
@@ -13,6 +14,8 @@ import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
|
|||||||
import com.njcn.harmonic.pojo.po.RStatPollutionSubstationM;
|
import com.njcn.harmonic.pojo.po.RStatPollutionSubstationM;
|
||||||
import com.njcn.harmonic.pojo.vo.PollutionSubstationVO;
|
import com.njcn.harmonic.pojo.vo.PollutionSubstationVO;
|
||||||
import com.njcn.harmonic.pojo.vo.PollutionVO;
|
import com.njcn.harmonic.pojo.vo.PollutionVO;
|
||||||
|
import com.njcn.harmonic.pojo.vo.SubstationVo;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
/**
|
/**
|
||||||
@@ -85,4 +88,5 @@ public interface PollutionSubstationService extends IService<RStatPollutionSubst
|
|||||||
|
|
||||||
List<List<String>> getPollutionAlarmList(GridDiagramParam param);
|
List<List<String>> getPollutionAlarmList(GridDiagramParam param);
|
||||||
|
|
||||||
|
List<SubstationVo> getSubstationInfo(String deptIndex, String searchValue, String startTime, String endTime);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.njcn.harmonic.service.impl;
|
package com.njcn.harmonic.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
@@ -15,7 +14,9 @@ import com.njcn.common.pojo.constant.BizParamConstant;
|
|||||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
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.device.biz.commApi.CommTerminalGeneralClient;
|
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
|
||||||
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
import com.njcn.device.biz.pojo.dto.DeptGetSubStationDTO;
|
import com.njcn.device.biz.pojo.dto.DeptGetSubStationDTO;
|
||||||
|
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
||||||
import com.njcn.device.biz.pojo.dto.SubGetBase;
|
import com.njcn.device.biz.pojo.dto.SubGetBase;
|
||||||
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
|
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
|
||||||
import com.njcn.device.pms.api.MonitorClient;
|
import com.njcn.device.pms.api.MonitorClient;
|
||||||
@@ -31,6 +32,7 @@ import com.njcn.device.pq.api.LineFeignClient;
|
|||||||
import com.njcn.device.pq.api.SubstationFeignClient;
|
import com.njcn.device.pq.api.SubstationFeignClient;
|
||||||
import com.njcn.device.pq.pojo.dto.*;
|
import com.njcn.device.pq.pojo.dto.*;
|
||||||
import com.njcn.device.pq.pojo.param.GridDiagramParam;
|
import com.njcn.device.pq.pojo.param.GridDiagramParam;
|
||||||
|
import com.njcn.device.pq.pojo.po.LineDetail;
|
||||||
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
|
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
|
||||||
import com.njcn.harmonic.constant.Param;
|
import com.njcn.harmonic.constant.Param;
|
||||||
import com.njcn.harmonic.mapper.*;
|
import com.njcn.harmonic.mapper.*;
|
||||||
@@ -39,14 +41,15 @@ import com.njcn.harmonic.pojo.param.HarmonicPublicParam;
|
|||||||
import com.njcn.harmonic.pojo.param.PollutionSubstationQuryParam;
|
import com.njcn.harmonic.pojo.param.PollutionSubstationQuryParam;
|
||||||
import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
|
import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
|
||||||
import com.njcn.harmonic.pojo.po.*;
|
import com.njcn.harmonic.pojo.po.*;
|
||||||
|
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
||||||
import com.njcn.harmonic.pojo.vo.PollutionSubstationVO;
|
import com.njcn.harmonic.pojo.vo.PollutionSubstationVO;
|
||||||
import com.njcn.harmonic.pojo.vo.PollutionVO;
|
import com.njcn.harmonic.pojo.vo.PollutionVO;
|
||||||
|
import com.njcn.harmonic.pojo.vo.SubstationVo;
|
||||||
import com.njcn.harmonic.service.PollutionSubstationService;
|
import com.njcn.harmonic.service.PollutionSubstationService;
|
||||||
import com.njcn.system.api.DicDataFeignClient;
|
import com.njcn.system.api.DicDataFeignClient;
|
||||||
import com.njcn.system.enums.DicDataEnum;
|
import com.njcn.system.enums.DicDataEnum;
|
||||||
import com.njcn.user.api.DeptFeignClient;
|
import com.njcn.user.api.DeptFeignClient;
|
||||||
import com.njcn.user.pojo.po.Dept;
|
import com.njcn.user.pojo.po.Dept;
|
||||||
import com.njcn.web.factory.PageFactory;
|
|
||||||
import com.njcn.web.utils.RequestUtil;
|
import com.njcn.web.utils.RequestUtil;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -58,7 +61,9 @@ import org.springframework.util.CollectionUtils;
|
|||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
import java.util.function.Predicate;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -105,7 +110,7 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
|
|||||||
|
|
||||||
private final CommTerminalGeneralClient commTerminalGeneralClient;
|
private final CommTerminalGeneralClient commTerminalGeneralClient;
|
||||||
private final DicDataFeignClient dicDataFeignClient;
|
private final DicDataFeignClient dicDataFeignClient;
|
||||||
|
private final RStatLimitRateDMapper rStatLimitRateDMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param pollutionSubstationQuryParam
|
* @param pollutionSubstationQuryParam
|
||||||
@@ -804,6 +809,64 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
|
|||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<SubstationVo> getSubstationInfo(String deptIndex, String searchValue, String startTime, String endTime) {
|
||||||
|
List<SubstationVo> result = new ArrayList<>();
|
||||||
|
|
||||||
|
DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
|
||||||
|
deptGetLineParam.setDeptId(deptIndex);
|
||||||
|
deptGetLineParam.setLineRunFlag(0);
|
||||||
|
List<DeptGetChildrenMoreDTO> list = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData();
|
||||||
|
//获取监测点集合
|
||||||
|
Map<String,List<String>> lineMap = this.getLineMap(list, searchValue);
|
||||||
|
List<String> lineList = lineMap.values().stream()
|
||||||
|
.flatMap(List::stream)
|
||||||
|
.distinct()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
if (CollUtil.isNotEmpty(lineList)){
|
||||||
|
//获取监测点的超标数据
|
||||||
|
List<RStatLimitRateDPO> limitRateList = rStatLimitRateDMapper.getAllOverTimes(lineList,startTime,endTime);
|
||||||
|
Map<String, RStatLimitRateDPO> monitorMap = limitRateList.stream().collect(Collectors.toMap(RStatLimitRateDPO::getLineId, Function.identity()));
|
||||||
|
//todo 获取监测点污染数据
|
||||||
|
|
||||||
|
//获取监测点详细信息
|
||||||
|
List<LineDetail> lineDetailList = lineFeignClient.getLineDetail(lineList).getData();
|
||||||
|
Map<String,List<LineDetail>> lineDetailMap = lineDetailList.stream().collect(Collectors.groupingBy(LineDetail::getPowerSubstationName));
|
||||||
|
lineDetailMap.forEach((k,v)->{
|
||||||
|
AtomicInteger alarmTime = new AtomicInteger();
|
||||||
|
SubstationVo vo = new SubstationVo();
|
||||||
|
vo.setDeptName("");
|
||||||
|
vo.setSubstationName(k);
|
||||||
|
vo.setDwLineList(v.stream().filter(t->Objects.equals(t.getPowerFlag(),0)).map(LineDetail::getId).collect(Collectors.toList()));
|
||||||
|
vo.setYhLineList(v.stream().filter(t->Objects.equals(t.getPowerFlag(),1)).map(LineDetail::getId).collect(Collectors.toList()));
|
||||||
|
v.forEach(item->{
|
||||||
|
alarmTime.set(alarmTime.get() + monitorMap.get(item.getId()).getAllTime());
|
||||||
|
});
|
||||||
|
vo.setAlarmFreq(alarmTime.get() * 1.0 / v.size());
|
||||||
|
result.add(vo);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String,List<String>> getLineMap(List<DeptGetChildrenMoreDTO> list, String searchValue) {
|
||||||
|
Map<String,List<String>> map = new HashMap<>();
|
||||||
|
list.forEach(it->{
|
||||||
|
Predicate<LineDevGetDTO> voltageFilter = item -> true;
|
||||||
|
if (!Objects.isNull(searchValue) && !Objects.equals(searchValue,"")) {
|
||||||
|
voltageFilter = item -> item.getPointName().contains(searchValue);
|
||||||
|
}
|
||||||
|
Predicate<LineDevGetDTO> combinedFilter = voltageFilter;
|
||||||
|
map.put(it.getUnitName(),it.getLineBaseList().stream()
|
||||||
|
.filter(combinedFilter)
|
||||||
|
.map(LineDevGetDTO::getPointId)
|
||||||
|
.distinct()
|
||||||
|
.collect(Collectors.toList()));
|
||||||
|
});
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private List<String> addList(List<RStatPollutionSubstationM> substationMlist) {
|
private List<String> addList(List<RStatPollutionSubstationM> substationMlist) {
|
||||||
List<String> info=new ArrayList<>();
|
List<String> info=new ArrayList<>();
|
||||||
Integer num1 = 0;
|
Integer num1 = 0;
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ import com.njcn.supervision.enums.ProblemTypeEnum;
|
|||||||
import com.njcn.supervision.mapper.device.LineWarningMapper;
|
import com.njcn.supervision.mapper.device.LineWarningMapper;
|
||||||
import com.njcn.supervision.pojo.param.device.OnlineParam;
|
import com.njcn.supervision.pojo.param.device.OnlineParam;
|
||||||
import com.njcn.supervision.pojo.po.device.LineWarning;
|
import com.njcn.supervision.pojo.po.device.LineWarning;
|
||||||
|
import com.njcn.supervision.pojo.po.leaflet.WarningLeaflet;
|
||||||
import com.njcn.supervision.pojo.vo.device.LineLimitDetailVo;
|
import com.njcn.supervision.pojo.vo.device.LineLimitDetailVo;
|
||||||
import com.njcn.supervision.pojo.vo.device.OnlineVo;
|
import com.njcn.supervision.pojo.vo.device.OnlineVo;
|
||||||
import com.njcn.supervision.service.device.ILineWarningService;
|
import com.njcn.supervision.service.device.ILineWarningService;
|
||||||
@@ -60,7 +61,10 @@ import java.time.LocalDateTime;
|
|||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.time.temporal.TemporalAdjusters;
|
import java.time.temporal.TemporalAdjusters;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -247,10 +251,15 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void startReport(OnlineParam.ReportParam param) {
|
public void startReport(OnlineParam.ReportParam param) {
|
||||||
List<LineWarning> allLineWarnings = new ArrayList<>();
|
List<LineWarning> allLineWarnings = new ArrayList<>();
|
||||||
|
//获取年份
|
||||||
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||||
|
LocalDate date = LocalDate.parse(param.getSearchBeginTime(), formatter);
|
||||||
|
int year = date.getYear();
|
||||||
|
param.setYear(String.valueOf(year));
|
||||||
|
param.setNumber(getNumber(year));
|
||||||
//获取部门名称
|
//获取部门名称
|
||||||
String deptName = deptFeignClient.getDeptById(param.getDeptId()).getData().getName();
|
String deptName = deptFeignClient.getDeptById(param.getDeptId()).getData().getName();
|
||||||
param.setDeptName(deptName);
|
param.setDeptName(deptName);
|
||||||
|
|
||||||
String inputUrl = "file/warningReport.docx";
|
String inputUrl = "file/warningReport.docx";
|
||||||
String alarmType = param.getType() == 1 ? "预" : "告";
|
String alarmType = param.getType() == 1 ? "预" : "告";
|
||||||
String fileName = "电能["+alarmType+"]"+param.getYear()+"年"+param.getNumber()+"号-"+param.getDeptName()+"地市 电能质量技术监督"+alarmType+"警单.docx";
|
String fileName = "电能["+alarmType+"]"+param.getYear()+"年"+param.getNumber()+"号-"+param.getDeptName()+"地市 电能质量技术监督"+alarmType+"警单.docx";
|
||||||
@@ -800,6 +809,34 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询库里面的编号
|
||||||
|
*/
|
||||||
|
public String getNumber(Integer year) {
|
||||||
|
LocalDate firstDayOfYear = LocalDate.of(year, 1, 1);
|
||||||
|
LocalDate lastDayOfYear = LocalDate.of(year + 1, 1, 1).minusDays(1);
|
||||||
|
LambdaQueryWrapper<WarningLeaflet> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
lambdaQueryWrapper.eq(WarningLeaflet::getState, 1)
|
||||||
|
.eq(WarningLeaflet::getProblemType, 2)
|
||||||
|
.between(WarningLeaflet::getCreateTime, firstDayOfYear, lastDayOfYear);
|
||||||
|
List<WarningLeaflet> list = warningLeafletService.list(lambdaQueryWrapper);
|
||||||
|
if (list.isEmpty()) {
|
||||||
|
return "1";
|
||||||
|
}
|
||||||
|
// 编译正则表达式,用于匹配文件中的编号
|
||||||
|
Pattern pattern = Pattern.compile("年(\\d+)号");
|
||||||
|
int maxNumber = 0;
|
||||||
|
for (WarningLeaflet leaflet : list) {
|
||||||
|
String filePath = leaflet.getFilePath();
|
||||||
|
Matcher matcher = pattern.matcher(filePath);
|
||||||
|
if (matcher.find()) {
|
||||||
|
int number = Integer.parseInt(matcher.group(1));
|
||||||
|
maxNumber = Math.max(maxNumber, number);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return String.valueOf(maxNumber + 1);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取频率偏差-日最大值-最大值
|
* 获取频率偏差-日最大值-最大值
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user