This commit is contained in:
guosongrui
2024-05-24 16:22:31 +08:00
18 changed files with 183 additions and 31 deletions

View File

@@ -48,4 +48,8 @@ public interface CommLineClient {
@GetMapping("/getLineAllDetail") @GetMapping("/getLineAllDetail")
HttpResult<LineALLInfoDTO> getLineAllDetail(@RequestParam("id") String id); HttpResult<LineALLInfoDTO> getLineAllDetail(@RequestParam("id") String id);
@GetMapping("/getLineAllDetailList")
HttpResult<List<LineALLInfoDTO>> getLineAllDetailList(@RequestParam("ids") List<String> ids);
} }

View File

@@ -50,6 +50,12 @@ public class CommLineClientFallbackFactory implements FallbackFactory<CommLineCl
throw new BusinessException(finalExceptionEnum); throw new BusinessException(finalExceptionEnum);
} }
@Override
public HttpResult<List<LineALLInfoDTO>> getLineAllDetailList(List<String> ids) {
log.error("{}异常,降级处理,异常为:{}", "获取监测点列表信息", throwable.toString());
throw new BusinessException(finalExceptionEnum);
}
}; };
} }
} }

View File

@@ -49,7 +49,14 @@ public class CommLineController extends BaseController {
LineALLInfoDTO result = lineService.getLineAllDetail(id); LineALLInfoDTO result = lineService.getLineAllDetail(id);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@GetMapping("/getLineAllDetailList")
@ApiOperation("获取多监测点id取超标监测点信息")
public HttpResult<List<LineALLInfoDTO>> getLineAllDetailList(@RequestParam("ids") List<String> ids) {
String methodDescribe = getMethodDescribe("getLineAllDetailList");
List<LineALLInfoDTO> result = lineService.getLineAllDetailList(ids);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getLineDetailBatch") @PostMapping("/getLineDetailBatch")

View File

@@ -8,6 +8,7 @@ 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.common.utils.LogUtil;
import com.njcn.device.pq.pojo.po.DeptLine; import com.njcn.device.pq.pojo.po.DeptLine;
import com.njcn.device.pq.pojo.vo.LineDeviceStateVO;
import com.njcn.device.pq.service.DeptLineService; import com.njcn.device.pq.service.DeptLineService;
import com.njcn.web.controller.BaseController; import com.njcn.web.controller.BaseController;
import com.njcn.web.pojo.param.DeptLineParam; import com.njcn.web.pojo.param.DeptLineParam;
@@ -109,6 +110,16 @@ public class DeptLineController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
} }
@OperateInfo(info = LogEnum.SYSTEM_COMMON)
@PostMapping("/getLineDetailByDeptId")
@ApiOperation("部门Id获取绑定监测点详情")
@ApiImplicitParam(name = "id", value = "部门id", required = true)
public HttpResult<List<LineDeviceStateVO>> getLineDetailByDeptId(@RequestParam("id") String id) {
String methodDescribe = getMethodDescribe("getLineDetailByDeptId");
List<LineDeviceStateVO> list = deptLineService.getLineDetailByDeptId(id);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
@PostMapping("/getLineByDeptRelation") @PostMapping("/getLineByDeptRelation")
@ApiOperation("获取部门和监测点的关系(分稳态暂态)") @ApiOperation("获取部门和监测点的关系(分稳态暂态)")
@ApiImplicitParam(name = "devDataType", value = "数据类型0暂态系统1稳态系统", required = true) @ApiImplicitParam(name = "devDataType", value = "数据类型0暂态系统1稳态系统", required = true)

View File

@@ -623,10 +623,13 @@
AND device.id = subv.pid AND device.id = subv.pid
AND device1.id = device.id AND device1.id = device.id
AND sub.id = device1.pid AND sub.id = device1.pid
<if test="list!=null and list.size()!=0">
AND t.id in AND t.id in
<foreach item="item" collection="list" separator="," open="(" close=")"> <foreach item="item" collection="list" separator="," open="(" close=")">
#{item} #{item}
</foreach> </foreach>
</if>
</select> </select>
<select id="getSubstationInfo" resultType="PollutionSubstationDTO"> <select id="getSubstationInfo" resultType="PollutionSubstationDTO">

View File

@@ -6,6 +6,7 @@ import com.njcn.device.biz.pojo.dto.SubGetBase;
import com.njcn.device.biz.pojo.dto.TerminalGetBase; import com.njcn.device.biz.pojo.dto.TerminalGetBase;
import com.njcn.device.biz.pojo.param.SubstationParam; import com.njcn.device.biz.pojo.param.SubstationParam;
import com.njcn.device.pq.pojo.po.DeptLine; import com.njcn.device.pq.pojo.po.DeptLine;
import com.njcn.device.pq.pojo.vo.LineDeviceStateVO;
import com.njcn.web.pojo.param.DeptLineParam; import com.njcn.web.pojo.param.DeptLineParam;
import java.util.List; import java.util.List;
@@ -119,4 +120,6 @@ public interface DeptLineService extends IService<DeptLine> {
* @return 查询结果 * @return 查询结果
*/ */
DeptLine getLineByLineIds(String ids); DeptLine getLineByLineIds(String ids);
List<LineDeviceStateVO> getLineDetailByDeptId(String id);
} }

View File

@@ -213,4 +213,6 @@ public interface LineService extends IService<Line> {
DeviceVO getDeviceDetailData(String id); DeviceVO getDeviceDetailData(String id);
List<Line> getSubIndexLineDetail(String id); List<Line> getSubIndexLineDetail(String id);
List<LineALLInfoDTO> getLineAllDetailList(List<String> ids);
} }

View File

@@ -3,12 +3,14 @@ package com.njcn.device.pq.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
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.dto.TerminalGetBase; import com.njcn.device.biz.pojo.dto.TerminalGetBase;
import com.njcn.device.biz.pojo.param.SubstationParam; import com.njcn.device.biz.pojo.param.SubstationParam;
import com.njcn.device.pq.mapper.DeptLineMapper; import com.njcn.device.pq.mapper.DeptLineMapper;
import com.njcn.device.biz.pojo.dto.LineDevGetDTO; import com.njcn.device.pq.mapper.LineMapper;
import com.njcn.device.pq.pojo.po.DeptLine; import com.njcn.device.pq.pojo.po.DeptLine;
import com.njcn.device.pq.pojo.vo.LineDeviceStateVO;
import com.njcn.device.pq.service.DeptLineService; import com.njcn.device.pq.service.DeptLineService;
import com.njcn.user.api.DeptFeignClient; import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.dto.DeptDTO; import com.njcn.user.pojo.dto.DeptDTO;
@@ -36,6 +38,7 @@ public class DeptLineServiceImpl extends ServiceImpl<DeptLineMapper, DeptLine> i
private final DeptLineMapper deptLineMapper; private final DeptLineMapper deptLineMapper;
private final DeptFeignClient deptFeignClient; private final DeptFeignClient deptFeignClient;
private final LineMapper lineMapper;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@@ -138,5 +141,12 @@ public class DeptLineServiceImpl extends ServiceImpl<DeptLineMapper, DeptLine> i
); );
} }
@Override
public List<LineDeviceStateVO> getLineDetailByDeptId(String id) {
List<String> lineByDeptId = this.getLineByDeptId(id);
List<LineDeviceStateVO> lineDeviceStateVO = lineMapper.getLineDeviceStateVO(lineByDeptId);
return lineDeviceStateVO;
}
} }

View File

@@ -567,7 +567,7 @@ public class LineServiceImpl extends ServiceImpl<LineMapper, Line> implements Li
@Override @Override
public LineALLInfoDTO getLineAllDetail(String id) { public LineALLInfoDTO getLineAllDetail(String id) {
LineALLInfoDTO lineALLInfoDTO = new LineALLInfoDTO(); LineALLInfoDTO lineALLInfoDTO = new LineALLInfoDTO();
//根据id查询当前信息的pids //根据id查询当前信息的pids
List<String> pids = Arrays.asList(this.baseMapper.selectById(id).getPids().split(",")); List<String> pids = Arrays.asList(this.baseMapper.selectById(id).getPids().split(","));
List<String> list = new ArrayList(pids); List<String> list = new ArrayList(pids);
list.add(id); list.add(id);
@@ -655,6 +655,12 @@ public class LineServiceImpl extends ServiceImpl<LineMapper, Line> implements Li
.list(); .list();
} }
@Override
public List<LineALLInfoDTO> getLineAllDetailList(List<String> ids) {
List<LineALLInfoDTO> collect = ids.stream().map(this::getLineAllDetail).collect(Collectors.toList());
return collect;
}
@Override @Override
public List<Overlimit> getOverLimitByList(PollutionParamDTO pollutionParamDTO) { public List<Overlimit> getOverLimitByList(PollutionParamDTO pollutionParamDTO) {
return overlimitMapper.selectBatchIds(pollutionParamDTO.getLineList()); return overlimitMapper.selectBatchIds(pollutionParamDTO.getLineList());

View File

@@ -1,5 +1,6 @@
package com.njcn.harmonic.pojo.param; package com.njcn.harmonic.pojo.param;
import com.njcn.web.pojo.param.BaseParam;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@@ -13,7 +14,7 @@ import java.util.List;
* @version V1.0.0 * @version V1.0.0
*/ */
@Data @Data
public class RMpPartHarmonicDetailQueryParam { public class RMpPartHarmonicDetailQueryParam extends BaseParam {
/** /**
* 统计起始日期 * 统计起始日期

View File

@@ -1,5 +1,6 @@
package com.njcn.harmonic.controller.dataquality; package com.njcn.harmonic.controller.dataquality;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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;
@@ -16,8 +17,6 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/** /**
* Description: * Description:
* Date: 2024/4/3 15:58【需求编号】 * Date: 2024/4/3 15:58【需求编号】
@@ -41,9 +40,9 @@ public class RMpPartHarmonicDetailController extends BaseController {
@PostMapping("/getRMpPartHarmonicDetail") @PostMapping("/getRMpPartHarmonicDetail")
@ApiOperation("稳态指标超标在线监测超标问题详情") @ApiOperation("稳态指标超标在线监测超标问题详情")
@ApiImplicitParam(name = "param", value = "参数", required = true) @ApiImplicitParam(name = "param", value = "参数", required = true)
public HttpResult<List<RMpPartHarmonicDetailDTO>> getRMpPartHarmonicDetail(@RequestBody RMpPartHarmonicDetailQueryParam param) { public HttpResult<Page<RMpPartHarmonicDetailDTO>> getRMpPartHarmonicDetail(@RequestBody RMpPartHarmonicDetailQueryParam param) {
String methodDescribe = getMethodDescribe("getRMpPartHarmonicDetail"); String methodDescribe = getMethodDescribe("getRMpPartHarmonicDetail");
List<RMpPartHarmonicDetailDTO> list = rMpPartHarmonicDetailDService.getRMpPartHarmonicDetail(param); Page<RMpPartHarmonicDetailDTO> list = rMpPartHarmonicDetailDService.getRMpPartHarmonicDetail(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
} }

View File

@@ -1,10 +1,11 @@
package com.njcn.harmonic.service.majornetwork; package com.njcn.harmonic.service.majornetwork;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.common.pojo.param.StatisticsBizBaseParam; import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import com.njcn.harmonic.pojo.dto.RMpPartHarmonicDetailDTO; import com.njcn.harmonic.pojo.dto.RMpPartHarmonicDetailDTO;
import com.njcn.harmonic.pojo.param.RMpPartHarmonicDetailQueryParam; import com.njcn.harmonic.pojo.param.RMpPartHarmonicDetailQueryParam;
import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailD; import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailD;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.harmonic.pojo.vo.RMpPartHarmonicDetailIconVO; import com.njcn.harmonic.pojo.vo.RMpPartHarmonicDetailIconVO;
import java.util.List; import java.util.List;
@@ -27,5 +28,5 @@ public interface RMpPartHarmonicDetailDService extends IService<RMpPartHarmonicD
*/ */
List<RMpPartHarmonicDetailIconVO> getRMpPartHarmonicDetailIcon(StatisticsBizBaseParam param); List<RMpPartHarmonicDetailIconVO> getRMpPartHarmonicDetailIcon(StatisticsBizBaseParam param);
List<RMpPartHarmonicDetailDTO> getRMpPartHarmonicDetail(RMpPartHarmonicDetailQueryParam param); Page<RMpPartHarmonicDetailDTO> getRMpPartHarmonicDetail(RMpPartHarmonicDetailQueryParam param);
} }

View File

@@ -1,6 +1,7 @@
package com.njcn.harmonic.service.majornetwork.impl; package com.njcn.harmonic.service.majornetwork.impl;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.param.StatisticsBizBaseParam; import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import com.njcn.device.biz.commApi.CommLineClient; import com.njcn.device.biz.commApi.CommLineClient;
@@ -22,6 +23,7 @@ import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.YearMonth; import java.time.YearMonth;
import java.time.temporal.ChronoUnit; import java.time.temporal.ChronoUnit;
import java.util.*; import java.util.*;
@@ -50,16 +52,19 @@ public class RMpPartHarmonicDetailDServiceImpl extends ServiceImpl<RMpPartHarmon
} }
@Override @Override
public List<RMpPartHarmonicDetailDTO> getRMpPartHarmonicDetail(RMpPartHarmonicDetailQueryParam param) { public Page<RMpPartHarmonicDetailDTO> getRMpPartHarmonicDetail(RMpPartHarmonicDetailQueryParam param) {
List<RStatLimitRateDPO> rStatLimitRateDPOs = irStatLimitRateDService.lambdaQuery().between(RStatLimitRateDPO::getTime, param.getStartTime()+" 00:00:00", param.getEndTime()+" 23:59:59").list(); System.out.println(LocalDateTime.now());
List<RStatLimitRateDPO> rStatLimitRateDPOs = irStatLimitRateDService.lambdaQuery().eq(RStatLimitRateDPO::getPhasicType,"T").between(RStatLimitRateDPO::getTime, param.getStartTime()+" 00:00:00", param.getEndTime()+" 23:59:59").list();
List<RMpPartHarmonicDetailDTO> rMpPartHarmonicDetailDTOS = new ArrayList<>(); List<RMpPartHarmonicDetailDTO> rMpPartHarmonicDetailDTOS = new ArrayList<>();
LocalDate date = LocalDate.parse(param.getStartTime()); LocalDate date = LocalDate.parse(param.getStartTime());
YearMonth yearMonth = YearMonth.from(date); YearMonth yearMonth = YearMonth.from(date);
int daysInMonth = yearMonth.lengthOfMonth(); int daysInMonth = yearMonth.lengthOfMonth();
/*获取稳态统计指标*/ System.out.println(LocalDateTime.now());
/*获取稳态统计指标*/
List<DictData> steadyStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.INDICATOR_TYPE.getCode()).getData(); List<DictData> steadyStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.INDICATOR_TYPE.getCode()).getData();
System.out.println(LocalDateTime.now());
rStatLimitRateDPOs.stream().collect(Collectors.groupingBy(RStatLimitRateDPO::getLineId)).forEach((k, v) -> { rStatLimitRateDPOs.stream().collect(Collectors.groupingBy(RStatLimitRateDPO::getLineId)).forEach((k, v) -> {
LineALLInfoDTO lineALLInfoDTO = commLineClient.getLineAllDetail(k).getData(); // LineALLInfoDTO lineALLInfoDTO = tempMap.get(k);
steadyStatis.forEach(dictData -> { steadyStatis.forEach(dictData -> {
RMpPartHarmonicDetailDTO rMpPartHarmonicDetailDTO = new RMpPartHarmonicDetailDTO(); RMpPartHarmonicDetailDTO rMpPartHarmonicDetailDTO = new RMpPartHarmonicDetailDTO();
@@ -68,14 +73,14 @@ public class RMpPartHarmonicDetailDServiceImpl extends ServiceImpl<RMpPartHarmon
rMpPartHarmonicDetailDTO.setDateList(localDates); rMpPartHarmonicDetailDTO.setDateList(localDates);
rMpPartHarmonicDetailDTO.setOverLimitrate(Double.parseDouble(localDates.size()+"")/daysInMonth); rMpPartHarmonicDetailDTO.setOverLimitrate(Double.parseDouble(localDates.size()+"")/daysInMonth);
rMpPartHarmonicDetailDTO.setMeasurementPointId(k); rMpPartHarmonicDetailDTO.setMeasurementPointId(k);
rMpPartHarmonicDetailDTO.setMeasurementPointName(lineALLInfoDTO.getLineLineDTO().getLinename()); // rMpPartHarmonicDetailDTO.setMeasurementPointName(lineALLInfoDTO.getLineLineDTO().getLinename());
rMpPartHarmonicDetailDTO.setBarId(lineALLInfoDTO.getLineBusbarDTO().getBusBarId()); // rMpPartHarmonicDetailDTO.setBarId(lineALLInfoDTO.getLineBusbarDTO().getBusBarId());
rMpPartHarmonicDetailDTO.setBarName(lineALLInfoDTO.getLineBusbarDTO().getBusBarName()); // rMpPartHarmonicDetailDTO.setBarName(lineALLInfoDTO.getLineBusbarDTO().getBusBarName());
rMpPartHarmonicDetailDTO.setSustationId(lineALLInfoDTO.getLineSubStationDTO().getSubStationId()); // rMpPartHarmonicDetailDTO.setSustationId(lineALLInfoDTO.getLineSubStationDTO().getSubStationId());
rMpPartHarmonicDetailDTO.setSustationName(lineALLInfoDTO.getLineSubStationDTO().getSubStationName()); // rMpPartHarmonicDetailDTO.setSustationName(lineALLInfoDTO.getLineSubStationDTO().getSubStationName());
rMpPartHarmonicDetailDTO.setObjName(lineALLInfoDTO.getLineLineDTO().getObjName()); // rMpPartHarmonicDetailDTO.setObjName(lineALLInfoDTO.getLineLineDTO().getObjName());
rMpPartHarmonicDetailDTO.setLoadType(lineALLInfoDTO.getLineLineDTO().getLoadType()); // rMpPartHarmonicDetailDTO.setLoadType(lineALLInfoDTO.getLineLineDTO().getLoadType());
rMpPartHarmonicDetailDTO.setVoltageLevel(lineALLInfoDTO.getLineLineDTO().getVoltageLevel()); // rMpPartHarmonicDetailDTO.setVoltageLevel(lineALLInfoDTO.getLineLineDTO().getVoltageLevel());
// rMpPartHarmonicDetailDTO.setSustationName(data.getSubName()); // rMpPartHarmonicDetailDTO.setSustationName(data.getSubName());
@@ -84,13 +89,17 @@ public class RMpPartHarmonicDetailDServiceImpl extends ServiceImpl<RMpPartHarmon
}); });
}); });
System.out.println(LocalDateTime.now());
List<RMpPartHarmonicDetailDTO> result = rMpPartHarmonicDetailDTOS.stream(). List<RMpPartHarmonicDetailDTO> result = rMpPartHarmonicDetailDTOS.stream().
filter(temp -> CollectionUtil.isEmpty(param.getHarmonicTypes()) ||param.getHarmonicTypes().contains(temp.getHarmonicType())). filter(temp -> CollectionUtil.isEmpty(param.getHarmonicTypes()) ||param.getHarmonicTypes().contains(temp.getHarmonicType())).
collect(Collectors.toList()); collect(Collectors.toList());
System.out.println(LocalDateTime.now());
//合并指标天数计算连续超标天数,及总超标天数 //合并指标天数计算连续超标天数,及总超标天数
Map<String, List<RMpPartHarmonicDetailDTO>> map = result.stream().collect(Collectors.groupingBy(RMpPartHarmonicDetailDTO::getMeasurementPointId)); Map<String, List<RMpPartHarmonicDetailDTO>> map = result.stream().collect(Collectors.groupingBy(RMpPartHarmonicDetailDTO::getMeasurementPointId));
System.out.println(LocalDateTime.now());
List<RMpPartHarmonicDetailDTO> rMpPartHarmonicDetailDTOList = new ArrayList<>(); List<RMpPartHarmonicDetailDTO> rMpPartHarmonicDetailDTOList = new ArrayList<>();
//获取所有指标类型如何前端为空则将所有子表类型塞入HarmonicTypes //获取所有指标类型如何前端为空则将所有子表类型塞入HarmonicTypes
List<String> collect = steadyStatis.stream().map(DictData::getId).collect(Collectors.toList()); List<String> collect = steadyStatis.stream().map(DictData::getId).collect(Collectors.toList());
@@ -120,8 +129,36 @@ public class RMpPartHarmonicDetailDServiceImpl extends ServiceImpl<RMpPartHarmon
} }
rMpPartHarmonicDetailDTOList.add(rMpPartHarmonicDetailDTO); rMpPartHarmonicDetailDTOList.add(rMpPartHarmonicDetailDTO);
}); });
System.out.println(LocalDateTime.now());
Page<RMpPartHarmonicDetailDTO> temp = new Page<>(param.getPageNum(),param.getPageSize());
temp.setTotal(rMpPartHarmonicDetailDTOList.size());
List<RMpPartHarmonicDetailDTO> collect1 = rMpPartHarmonicDetailDTOList.stream()
.skip((param.getPageNum() - 1) * param.getPageSize()) // 跳过前面的数据项
.limit(param.getPageSize()) // 取出指定数量的数据
.collect(Collectors.toList());
System.out.println(LocalDateTime.now());
return rMpPartHarmonicDetailDTOList; //获取监测点详情
List<String> lineIds = collect1.stream().map(RMpPartHarmonicDetailDTO::getMeasurementPointId).distinct().collect(Collectors.toList());
List<LineALLInfoDTO> data = commLineClient.getLineAllDetailList(lineIds).getData();
System.out.println(LocalDateTime.now());
Map<String, LineALLInfoDTO> tempMap = data.stream().collect(Collectors.toMap(lineAllInfoDTO -> lineAllInfoDTO.getLineLineDTO().getLineId(), dto -> dto));
collect1.stream().forEach(dto->{
LineALLInfoDTO lineALLInfoDTO = tempMap.get(dto.getMeasurementPointId());
dto.setMeasurementPointName(lineALLInfoDTO.getLineLineDTO().getLinename());
dto.setBarId(lineALLInfoDTO.getLineBusbarDTO().getBusBarId());
dto.setBarName(lineALLInfoDTO.getLineBusbarDTO().getBusBarName());
dto.setSustationId(lineALLInfoDTO.getLineSubStationDTO().getSubStationId());
dto.setSustationName(lineALLInfoDTO.getLineSubStationDTO().getSubStationName());
dto.setObjName(lineALLInfoDTO.getLineLineDTO().getObjName());
dto.setLoadType(lineALLInfoDTO.getLineLineDTO().getLoadType());
dto.setVoltageLevel(lineALLInfoDTO.getLineLineDTO().getVoltageLevel());
});
temp.setRecords(collect1);
return temp;
} }
@@ -294,3 +331,4 @@ public class RMpPartHarmonicDetailDServiceImpl extends ServiceImpl<RMpPartHarmon
System.out.println(maxConsecutiveDays); System.out.println(maxConsecutiveDays);
} }
} }

View File

@@ -1,11 +1,7 @@
package com.njcn.supervision.pojo.param.device; package com.njcn.supervision.pojo.param.device;
import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.db.bo.BaseEntity;
import com.njcn.web.pojo.annotation.DateTimeStrValid; import com.njcn.web.pojo.annotation.DateTimeStrValid;
import lombok.Data; import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotEmpty;
@@ -68,11 +64,11 @@ public class SupervisionTempLineRunTestParam {
private List<String> lineIds; private List<String> lineIds;
@NotBlank(message = "开始时间不可为空") @NotBlank(message = "开始时间不可为空")
@DateTimeStrValid(format = "yyyy-MM-dd HH:mm:ss") @DateTimeStrValid(format = "yyyy-MM-dd")
private String startTime; private String startTime;
@NotBlank(message = "结束时间不可为空") @NotBlank(message = "结束时间不可为空")
@DateTimeStrValid(format = "yyyy-MM-dd HH:mm:ss") @DateTimeStrValid(format = "yyyy-MM-dd")
private String endTime; private String endTime;

View File

@@ -210,7 +210,7 @@ public class SupervisionPlanPO extends BaseEntity {
private String effectUserName; private String effectUserName;
/** /**
* 0.未上送 1.上送 2.取消上送 3.待重新上送 * 0.未上送 1.上送是否发起告警单
*/ */
@TableField(value = "is_upload_head") @TableField(value = "is_upload_head")
private Integer isUploadHead; private Integer isUploadHead;

View File

@@ -83,5 +83,13 @@ public class SupervisionPlanController extends BaseController {
supervisionPlanPOService.updateStatus(businessKey,status); supervisionPlanPOService.updateStatus(businessKey,status);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@GetMapping("/initiateWarningLeaflet")
@ApiOperation("针对技术监督问题发起告警单")
public HttpResult<Boolean> initiateWarningLeaflet(@RequestParam("id") String id){
String methodDescribe = getMethodDescribe("initiateWarningLeaflet");
supervisionPlanPOService.initiateWarningLeaflet(id);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, Boolean.TRUE, methodDescribe);
}
} }

View File

@@ -26,4 +26,6 @@ public interface SupervisionPlanPOService extends IService<SupervisionPlanPO>{
SupervisionPlanVO getDetailPlan(String id); SupervisionPlanVO getDetailPlan(String id);
void updateStatus(String businessKey, Integer status); void updateStatus(String businessKey, Integer status);
void initiateWarningLeaflet(String id);
} }

View File

@@ -9,6 +9,7 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
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;
import com.njcn.bpm.api.BpmProcessFeignClient; import com.njcn.bpm.api.BpmProcessFeignClient;
@@ -17,11 +18,14 @@ import com.njcn.bpm.pojo.dto.BpmProcessInstanceCreateReqDTO;
import com.njcn.common.pojo.enums.common.DataStateEnum; import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.utils.PubUtils; import com.njcn.common.utils.PubUtils;
import com.njcn.supervision.enums.LeafletTypeEnum;
import com.njcn.supervision.enums.ProblemTypeEnum;
import com.njcn.supervision.mapper.plan.SupervisionPlanPOMapper; import com.njcn.supervision.mapper.plan.SupervisionPlanPOMapper;
import com.njcn.supervision.pojo.param.plan.SupervisionPlanParam; import com.njcn.supervision.pojo.param.plan.SupervisionPlanParam;
import com.njcn.supervision.pojo.po.plan.SupervisionPlanPO; import com.njcn.supervision.pojo.po.plan.SupervisionPlanPO;
import com.njcn.supervision.pojo.po.plan.SupervisionProblemPO; import com.njcn.supervision.pojo.po.plan.SupervisionProblemPO;
import com.njcn.supervision.pojo.vo.plan.SupervisionPlanVO; import com.njcn.supervision.pojo.vo.plan.SupervisionPlanVO;
import com.njcn.supervision.service.leaflet.IWarningLeafletService;
import com.njcn.supervision.service.plan.SupervisionPlanPOService; import com.njcn.supervision.service.plan.SupervisionPlanPOService;
import com.njcn.supervision.service.plan.SupervisionProblemPOService; import com.njcn.supervision.service.plan.SupervisionProblemPOService;
import com.njcn.user.api.DeptFeignClient; import com.njcn.user.api.DeptFeignClient;
@@ -58,6 +62,8 @@ public class SupervisionPlanPOServiceImpl extends ServiceImpl<SupervisionPlanPOM
private final BpmProcessFeignClient bpmProcessFeignClient; private final BpmProcessFeignClient bpmProcessFeignClient;
public static final String PROCESS_KEY = "sup_plan_add"; public static final String PROCESS_KEY = "sup_plan_add";
private final SupervisionProblemPOService supervisionProblemPOService; private final SupervisionProblemPOService supervisionProblemPOService;
private final IWarningLeafletService warningLeafletService;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public String addPlan(SupervisionPlanParam supvPlanParam) { public String addPlan(SupervisionPlanParam supvPlanParam) {
@@ -102,6 +108,7 @@ public class SupervisionPlanPOServiceImpl extends ServiceImpl<SupervisionPlanPOM
} }
} }
supvPlan.setState(DataStateEnum.ENABLE.getCode()); supvPlan.setState(DataStateEnum.ENABLE.getCode());
supvPlan.setIsUploadHead(0);
supvPlan.setStatus(BpmTaskStatusEnum.RUNNING.getStatus()); supvPlan.setStatus(BpmTaskStatusEnum.RUNNING.getStatus());
this.save(supvPlan); this.save(supvPlan);
return supvPlan.getPlanId(); return supvPlan.getPlanId();
@@ -288,6 +295,54 @@ public class SupervisionPlanPOServiceImpl extends ServiceImpl<SupervisionPlanPOM
this.lambdaUpdate().set(SupervisionPlanPO::getStatus,status).eq(SupervisionPlanPO::getPlanId,businessKey).update(); this.lambdaUpdate().set(SupervisionPlanPO::getStatus,status).eq(SupervisionPlanPO::getPlanId,businessKey).update();
} }
@Override
@Transactional(rollbackFor = Exception.class)
public void initiateWarningLeaflet(String id) {
//获取数据源用于组装数据
List<SupervisionProblemPO> list = supervisionProblemPOService.lambdaQuery().eq(SupervisionProblemPO::getPlanId, id).list();
SupervisionPlanPO byId = this.getById(id);
/*
* 1、预告警单名称此处暂时用计算监督计划名称
* 2、预告警编号暂时随机by yxb
* 3、问题类型1技术监督管理2在线监测超标问题3用户投诉4现场测试超标此处是现场测试超标
* 4、对应问题源id用于查询详细数据
* 5、单子类型1预警单2告警单
* 6、问题详细描述
* */
warningLeafletService.createLeaflet(
byId.getWorkPlanName(),
IdWorker.get32UUID(),
id,
ProblemTypeEnum.PLAN.getCode(),
LeafletTypeEnum.ALARM.getCode(),
assembleIssueDetail(list,byId)
);
//将当前的问题记录是否告警修改为已告警
this.lambdaUpdate().eq(SupervisionPlanPO::getPlanId,id).set(SupervisionPlanPO::getIsUploadHead,1).update();
}
/**
* 组装谐波普测的问题
* 格式planCreateTime发起的planName普测计划由负责人leader测试后于planComplateTime完成其中subName在本次普测计划测试中存在电能质量问题详细请查看附件
*/
private String assembleIssueDetail(List<SupervisionProblemPO> supervisionProblemPOList, SupervisionPlanPO supervisionPlanPO) {
String join = String.join(",", supervisionProblemPOList.stream().map(SupervisionProblemPO::getRemark).collect(Collectors.toList()));
String issueDetail = ""
.concat(LocalDateTimeUtil.format(supervisionPlanPO.getCreateTime(), DatePattern.CHINESE_DATE_PATTERN))
.concat("发起的")
.concat(supervisionPlanPO.getWorkPlanName())
.concat("技术监督计划,由负责人")
.concat(supervisionPlanPO.getEffectUserName())
.concat("实施,于")
.concat(LocalDateTimeUtil.format(supervisionPlanPO.getEffectEndTime(), DatePattern.CHINESE_DATE_PATTERN))
.concat("完成,其中存在问题")
.concat(join)
.concat("在本次技术监督计划测试中存在电能质量问题,详细请查看问题附件");
return issueDetail;
}
private void checkParam(SupervisionPlanParam supvPlanParam, Boolean updateFlag) { private void checkParam(SupervisionPlanParam supvPlanParam, Boolean updateFlag) {