台账bug修改

This commit is contained in:
2023-03-07 10:16:07 +08:00
parent 9fdf71ed24
commit 840ee7b8ee
5 changed files with 104 additions and 22 deletions

View File

@@ -0,0 +1,17 @@
package com.njcn.device.pq.pojo.dto;
import lombok.Data;
/**
* pqs-device
*
* @author cdf
* @date 2022/9/27
*/
@Data
public class InfluxBaseDTO {
private String id;
private Double value;
}

View File

@@ -79,6 +79,9 @@ public class DeviceInfoParam implements Serializable {
@Range(min = 0, max = 2, message = "电网侧标识" + ValidMessage.PARAM_FORMAT_ERROR) @Range(min = 0, max = 2, message = "电网侧标识" + ValidMessage.PARAM_FORMAT_ERROR)
private Integer powerFlag; private Integer powerFlag;
@ApiModelProperty("监测点等级")
private String lineGrade;
/** /**

View File

@@ -1,5 +1,6 @@
package com.njcn.device.pq.mapper; package com.njcn.device.pq.mapper;
import com.njcn.device.pq.pojo.param.TerminalMainQueryParam;
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;
@@ -50,6 +51,17 @@ public interface TerminalMaintainMapper {
List<TerminalMaintainVO> getPqLineGdAndSubList(@Param("ids") List<String> ids); List<TerminalMaintainVO> getPqLineGdAndSubList(@Param("ids") List<String> ids);
/**
*
* @author cdf
* @date 2022/9/27
*/
/**
* 或取装置及关联信息
* @author cdf
* @date 2022/5/11
*/
List<TerminalMaintainVO> getTerminalDevInfoClone(@Param("terminalMainQueryParam") TerminalMainQueryParam terminalMainQueryParam, @Param("devIds") List<String> devIds);
/** /**
@@ -74,4 +86,6 @@ public interface TerminalMaintainMapper {
List<TerminalMaintainVO> getFlowStrategyList(@Param("ids") List<String> ids); List<TerminalMaintainVO> getFlowStrategyList(@Param("ids") List<String> ids);
} }

View File

@@ -280,6 +280,9 @@
<if test="deviceInfoParam.powerFlag!=2"> <if test="deviceInfoParam.powerFlag!=2">
and t2.Power_Flag = #{deviceInfoParam.powerFlag} and t2.Power_Flag = #{deviceInfoParam.powerFlag}
</if> </if>
<if test="deviceInfoParam.lineGrade!='' and deviceInfoParam.lineGrade!=''">
and t2.line_grade = #{deviceInfoParam.lineGrade}
</if>
<if test="deviceInfoParam.loadType!=null and deviceInfoParam.loadType.size()!=0"> <if test="deviceInfoParam.loadType!=null and deviceInfoParam.loadType.size()!=0">
AND t2.Load_Type in AND t2.Load_Type in
<foreach collection="deviceInfoParam.loadType" open="(" close=")" item="item" separator=","> <foreach collection="deviceInfoParam.loadType" open="(" close=")" item="item" separator=",">

View File

@@ -1,10 +1,15 @@
package com.njcn.device.pq.service.impl; package com.njcn.device.pq.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import com.njcn.common.pojo.dto.SimpleDTO;
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.pq.enums.DeviceResponseEnum; 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.InfluxBaseDTO;
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
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.DevMeal; import com.njcn.device.pq.pojo.po.DevMeal;
@@ -15,12 +20,16 @@ import com.njcn.device.pq.service.IDevMealService;
import com.njcn.device.pq.service.IDevStrategyService; import com.njcn.device.pq.service.IDevStrategyService;
import com.njcn.device.pq.service.IDeviceService; import com.njcn.device.pq.service.IDeviceService;
import com.njcn.device.pq.service.TerminalMaintainService; import com.njcn.device.pq.service.TerminalMaintainService;
import com.njcn.system.pojo.enums.StatisticsEnum;
import com.njcn.user.api.DeptFeignClient;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@@ -42,35 +51,71 @@ public class TerminalMaintainServiceImpl implements TerminalMaintainService {
private final IDevStrategyService iDevStrategyService; private final IDevStrategyService iDevStrategyService;
private final GeneralDeviceService generalDeviceService;
private final DeptFeignClient deptFeignClient;
@Override @Override
public List<TerminalMaintainVO> getTerminalMainList(TerminalMainQueryParam terminalMainQueryParam) { public List<TerminalMaintainVO> getTerminalMainList(TerminalMainQueryParam terminalMainQueryParam) {
List<TerminalMaintainVO> devList = terminalMaintainMapper.getTerminalDevInfo(); SimpleDTO simpleDTO = new SimpleDTO();
if(CollectionUtil.isEmpty(devList)){ simpleDTO.setCode(StatisticsEnum.POWER_NETWORK.getCode());
throw new BusinessException(DeviceResponseEnum.DEVICE_EMPTY);
} DeviceInfoParam deviceInfoParam = new DeviceInfoParam();
List<String> subIndexes = devList.stream().map(TerminalMaintainVO::getPid).collect(Collectors.toList()); deviceInfoParam.setStatisticalType(simpleDTO);
List<TerminalMaintainVO> subList = terminalMaintainMapper.getPqLineGdAndSubList(subIndexes); deviceInfoParam.setDeptIndex(deptFeignClient.getRootDept().getData().getId());
if(CollectionUtil.isEmpty(subList)){ deviceInfoParam.setPowerFlag(2);
throw new BusinessException(DeviceResponseEnum.SUB_NO); deviceInfoParam.setMonitorFlag(2);
}
List<String> gdIds = subList.stream().map(TerminalMaintainVO::getPid).collect(Collectors.toList()); List<TerminalMaintainVO> resList = new ArrayList<>();
List<TerminalMaintainVO> gdList = terminalMaintainMapper.getPqLineGdAndSubList(gdIds);
if(CollectionUtil.isEmpty(gdList)){ List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceService.getDeviceInfo(deviceInfoParam, Objects.isNull(terminalMainQueryParam.getRunFlag())?null: CollUtil.newArrayList(terminalMainQueryParam.getRunFlag()), CollUtil.newArrayList(1));
throw new BusinessException(DeviceResponseEnum.GD_NO); if(CollectionUtil.isNotEmpty(generalDeviceDTOList)){
}
List<String> proIds = gdList.stream().map(TerminalMaintainVO::getPid).collect(Collectors.toList()); for(GeneralDeviceDTO generalDeviceDTO:generalDeviceDTOList){
List<TerminalMaintainVO> proList = terminalMaintainMapper.getPqLineProvList(proIds); List<String> devIds = generalDeviceDTO.getDeviceIndexes();
if(CollectionUtil.isEmpty(proList)){ if (CollectionUtils.isEmpty(devIds)) {
throw new BusinessException(DeviceResponseEnum.PROVINCE_EMPTY); continue;
} }
List<TerminalMaintainVO> subListTem = subList.stream().peek(item->item.setChildren(getChildren(item.getId(),devList))).collect(Collectors.toList()); TerminalMaintainVO terminalMaintainVO = new TerminalMaintainVO();
List<TerminalMaintainVO> gdListTem = gdList.stream().peek(item->item.setChildren(getChildren(item.getId(),subListTem))).collect(Collectors.toList()); terminalMaintainVO.setName(generalDeviceDTO.getName());
return proList.stream().peek(item->item.setChildren(getChildren(item.getId(),gdListTem))).collect(Collectors.toList()); terminalMaintainVO.setId(generalDeviceDTO.getIndex());
terminalMaintainVO.setLevel(1);
//根据监测点查询数据完整性
List<InfluxBaseDTO> integrityData = getCondition(devIds, "","");
List<TerminalMaintainVO> devList = terminalMaintainMapper.getTerminalDevInfoClone(terminalMainQueryParam,devIds);
List<TerminalMaintainVO> subList = terminalMaintainMapper.getPqLineGdAndSubList(generalDeviceDTO.getSubIndexes());
List<TerminalMaintainVO> gdList = terminalMaintainMapper.getPqLineGdAndSubList(generalDeviceDTO.getGdIndexes());
dealTerminalData(subList,devList);
dealTerminalData(gdList,subList);
terminalMaintainVO.setChildren(gdList);
resList.add(terminalMaintainVO);
} }
}
return resList;
}
/**
* influxdb语句
*/
List<InfluxBaseDTO> getCondition(List<String> devIds,String startTime,String endTime){
return null;
}
List<TerminalMaintainVO> dealTerminalData(List<TerminalMaintainVO> parent,List<TerminalMaintainVO> children){
return parent.stream().peek(item->item.setChildren(getChildren(item.getId(),children))).collect(Collectors.toList());
}
@Override @Override
public List<TerminalMaintainVO> getManageList(List<String> ids, Integer type) { public List<TerminalMaintainVO> getManageList(List<String> ids, Integer type) {