报告调整

This commit is contained in:
cdf
2025-12-23 17:09:22 +08:00
parent 3ea67da152
commit 0d652b9f4d
4 changed files with 50 additions and 31 deletions

View File

@@ -674,7 +674,7 @@ public class CsLedgerServiceImpl extends ServiceImpl<CsLedgerMapper, CsLedger> i
@Override @Override
public List<CsLedgerVO> objTree() { public List<CsLedgerVO> objTree() {
List<CsLedgerVO> result = new ArrayList<>(); List<CsLedgerVO> result = new ArrayList<>();
String userId = RequestUtil.getUserIndex(); String userId = "fa37b93cc90d4c1784ca8f6debddee1a";
UserVO userVO = userFeignClient.getUserById(userId).getData(); UserVO userVO = userFeignClient.getUserById(userId).getData();
List<String> devIds; List<String> devIds;
if (userVO.getType().equals(UserType.SUPER_ADMINISTRATOR) || userVO.getType().equals(UserType.ADMINISTRATOR)) { if (userVO.getType().equals(UserType.SUPER_ADMINISTRATOR) || userVO.getType().equals(UserType.ADMINISTRATOR)) {
@@ -690,8 +690,8 @@ public class CsLedgerServiceImpl extends ServiceImpl<CsLedgerMapper, CsLedger> i
if (CollUtil.isEmpty(devIds)) { if (CollUtil.isEmpty(devIds)) {
return result; return result;
} }
List<CsLinePO> poList = csLinePOService.lambdaQuery().select(CsLinePO::getLineId).in(CsLinePO::getDeviceId, devIds) List<CsLinePO> poList = csLinePOService.lambdaQuery().in(CsLinePO::getDeviceId, devIds)
.eq(CsLinePO::getStatus, DataStateEnum.ENABLE.getCode()).list(); .eq(CsLinePO::getStatus, DataStateEnum.ENABLE.getCode()).ne(CsLinePO::getMonitorUser,"").isNotNull(CsLinePO::getMonitorUser).list();
if (CollUtil.isEmpty(poList)) { if (CollUtil.isEmpty(poList)) {
return result; return result;
} }
@@ -702,9 +702,9 @@ public class CsLedgerServiceImpl extends ServiceImpl<CsLedgerMapper, CsLedger> i
Map<String,String> objMap = pqSensitiveUserList.stream().collect(Collectors.toMap(PqSensitiveUser::getId, PqSensitiveUser::getName)); Map<String,String> objMap = pqSensitiveUserList.stream().collect(Collectors.toMap(PqSensitiveUser::getId, PqSensitiveUser::getName));
List<CsLedger> csLineList = this.baseMapper.selectList(new LambdaQueryWrapper<CsLedger>().in(CsLedger::getId, lineIds)); List<CsLedger> csLineList = this.baseMapper.selectList(new LambdaQueryWrapper<CsLedger>().in(CsLedger::getId, lineIds));
Map<String,List<String>> lineMap = csLineList.stream().collect(Collectors.groupingBy(it->it.getPids().split(StrUtil.COMMA)[LineBaseEnum.PROJECT_LEVEL.getCode()],Collectors.mapping(CsLedger::getId,Collectors.toList()))); Map<String,List<String>> lineMap = csLineList.stream().collect(Collectors.groupingBy(it->it.getPids().split(StrUtil.COMMA)[LineBaseEnum.PROJECT_LEVEL.getCode()+1],Collectors.mapping(CsLedger::getId,Collectors.toList())));
List<String> projectIds = csLineList.stream().map(it -> it.getPids().split(StrUtil.COMMA)[LineBaseEnum.PROJECT_LEVEL.getCode()]).collect(Collectors.toList()); List<String> projectIds = csLineList.stream().map(it -> it.getPids().split(StrUtil.COMMA)[LineBaseEnum.PROJECT_LEVEL.getCode()+1]).distinct().collect(Collectors.toList());
List<CsLedger> projectList = this.baseMapper.selectList(new LambdaQueryWrapper<CsLedger>().in(CsLedger::getId, projectIds)); List<CsLedger> projectList = this.baseMapper.selectList(new LambdaQueryWrapper<CsLedger>().in(CsLedger::getId, projectIds));
List<CsLedgerVO> realProjectList = new ArrayList<>(); List<CsLedgerVO> realProjectList = new ArrayList<>();
@@ -713,24 +713,27 @@ public class CsLedgerServiceImpl extends ServiceImpl<CsLedgerMapper, CsLedger> i
csLedgerVO.setId(pro.getId()); csLedgerVO.setId(pro.getId());
csLedgerVO.setPid(pro.getPid()); csLedgerVO.setPid(pro.getPid());
csLedgerVO.setLevel(pro.getLevel()); csLedgerVO.setLevel(pro.getLevel());
csLedgerVO.setName(pro.getName());
List<CsLedgerVO> temObjList = new ArrayList<>(); List<CsLedgerVO> temObjList = new ArrayList<>();
if(lineMap.containsKey(pro.getId())){ if(lineMap.containsKey(pro.getId())){
List<String> ids = lineMap.get(pro.getId()); List<String> ids = lineMap.get(pro.getId());
List<String> objTemIds = poList.stream().filter(it->ids.contains(it.getLineId())).map(CsLinePO::getMonitorUser).distinct().collect(Collectors.toList()); List<String> objTemIds = poList.stream().filter(it->ids.contains(it.getLineId())).map(CsLinePO::getMonitorUser).distinct().collect(Collectors.toList());
objTemIds.forEach(it->{ if(CollUtil.isNotEmpty(objTemIds)){
CsLedgerVO inner = new CsLedgerVO(); objTemIds.forEach(it->{
inner.setName(objMap.getOrDefault(it,"未知异常用户")); CsLedgerVO inner = new CsLedgerVO();
inner.setId(it); inner.setName(objMap.getOrDefault(it,"未知异常用户"));
inner.setLevel(2); inner.setId(it);
temObjList.add(inner); inner.setLevel(2);
}); temObjList.add(inner);
});
}
} }
csLedgerVO.setChildren(temObjList); csLedgerVO.setChildren(temObjList);
realProjectList.add(csLedgerVO); realProjectList.add(csLedgerVO);
}); });
List<String> gcIds = projectList.stream().map(it -> it.getPids().split(StrUtil.COMMA)[LineBaseEnum.ENGINEERING_LEVEL.getCode()]).collect(Collectors.toList()); List<String> gcIds = projectList.stream().map(CsLedger::getPid).collect(Collectors.toList());
List<CsLedger> gcList = this.baseMapper.selectList(new LambdaQueryWrapper<CsLedger>().in(CsLedger::getId, gcIds)); List<CsLedger> gcList = this.baseMapper.selectList(new LambdaQueryWrapper<CsLedger>().in(CsLedger::getId, gcIds));
List<CsLedgerVO> realGcList = new ArrayList<>(); List<CsLedgerVO> realGcList = new ArrayList<>();
@@ -739,6 +742,7 @@ public class CsLedgerServiceImpl extends ServiceImpl<CsLedgerMapper, CsLedger> i
csLedgerVO.setId(gc.getId()); csLedgerVO.setId(gc.getId());
csLedgerVO.setPid(gc.getPid()); csLedgerVO.setPid(gc.getPid());
csLedgerVO.setLevel(gc.getLevel()); csLedgerVO.setLevel(gc.getLevel());
csLedgerVO.setName(gc.getName());
List<CsLedgerVO> proList = realProjectList.stream().filter(it->gc.getId().equals(it.getPid())).collect(Collectors.toList()); List<CsLedgerVO> proList = realProjectList.stream().filter(it->gc.getId().equals(it.getPid())).collect(Collectors.toList());
csLedgerVO.setChildren(proList); csLedgerVO.setChildren(proList);

View File

@@ -15,6 +15,7 @@ import com.njcn.access.pojo.po.CsLineLatestData;
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.csdevice.enums.LineBaseEnum;
import com.njcn.csdevice.mapper.*; import com.njcn.csdevice.mapper.*;
import com.njcn.csdevice.pojo.param.CsLineParam; import com.njcn.csdevice.pojo.param.CsLineParam;
import com.njcn.csdevice.pojo.po.*; import com.njcn.csdevice.pojo.po.*;
@@ -399,9 +400,15 @@ public class CsLinePOServiceImpl extends ServiceImpl<CsLinePOMapper, CsLinePO> i
return new LineDetailDataVO(); return new LineDetailDataVO();
} else { } else {
CsLinePO csLinePO = this.baseMapper.selectOne(new LambdaQueryWrapper<CsLinePO>().eq(CsLinePO::getLineId,id)); CsLinePO csLinePO = this.baseMapper.selectOne(new LambdaQueryWrapper<CsLinePO>().eq(CsLinePO::getLineId,id));
CsLedger csLedger = csLedgerMapper.selectById(csLinePO.getLineId());
LineDetailDataVO lineDetailDataVO = new LineDetailDataVO(); LineDetailDataVO lineDetailDataVO = new LineDetailDataVO();
//lineDetailDataVO.setScale(dicDataFeignClient.getDicDataById(voltageMapper.selectById(voId).getScale()).getData().getName()); lineDetailDataVO.setScale(csLinePO.getVolGrade()+"kV");
lineDetailDataVO.setAreaName(csLedgerMapper.selectById(csLedger.getPids().split(StrUtil.COMMA)[LineBaseEnum.ENGINEERING_LEVEL.getCode()+1]).getName());
lineDetailDataVO.setBdName(csLedgerMapper.selectById(csLedger.getPids().split(StrUtil.COMMA)[LineBaseEnum.PROJECT_LEVEL.getCode()+1]).getName());
//Device device = deviceMapper.selectById(devId); //Device device = deviceMapper.selectById(devId);
//lineDetailDataVO.setComFlag(PubUtils.comFlag(device.getComFlag())); //lineDetailDataVO.setComFlag(PubUtils.comFlag(device.getComFlag()));
//lineDetailDataVO.setRunFlag(PubUtils.lineRunFlag(lineDetail.getRunFlag())); //lineDetailDataVO.setRunFlag(PubUtils.lineRunFlag(lineDetail.getRunFlag()));
@@ -413,8 +420,8 @@ public class CsLinePOServiceImpl extends ServiceImpl<CsLinePOMapper, CsLinePO> i
lineDetailDataVO.setObjName(csLinePO.getMonitorUser()); lineDetailDataVO.setObjName(csLinePO.getMonitorUser());
lineDetailDataVO.setLineId(csLinePO.getLineId()); lineDetailDataVO.setLineId(csLinePO.getLineId());
lineDetailDataVO.setPtType(PubUtils.ptType(csLinePO.getConType())); lineDetailDataVO.setPtType(PubUtils.ptType(csLinePO.getConType()));
//lineDetailDataVO.setPt(lineDetail.getPt1() + "/" + lineDetail.getPt2()); lineDetailDataVO.setPt(csLinePO.getPtRatio() + "/" + csLinePO.getPt2Ratio());
//lineDetailDataVO.setCt(lineDetail.getCt1() + "/" + lineDetail.getCt2()); lineDetailDataVO.setCt(csLinePO.getCtRatio() + "/" + csLinePO.getCt2Ratio());
lineDetailDataVO.setDealCapacity(csLinePO.getProtocolCapacity().floatValue()); lineDetailDataVO.setDealCapacity(csLinePO.getProtocolCapacity().floatValue());
lineDetailDataVO.setDevCapacity(csLinePO.getDevCapacity().floatValue()); lineDetailDataVO.setDevCapacity(csLinePO.getDevCapacity().floatValue());
lineDetailDataVO.setShortCapacity(csLinePO.getShortCircuitCapacity().floatValue()); lineDetailDataVO.setShortCapacity(csLinePO.getShortCircuitCapacity().floatValue());

View File

@@ -1523,6 +1523,9 @@ public class WordExportModelController extends BaseController {
} }
this.listPower = new ArrayList<>(); this.listPower = new ArrayList<>();
transformData(this.listPower, listPower, list, true, false); transformData(this.listPower, listPower, list, true, false);
System.out.println(5);
} }
/** /**

View File

@@ -1126,6 +1126,7 @@ public class CustomReportServiceImpl implements CustomReportService {
Map<String, List<ReportTemplateDTO>> classMap = reportTemplateDTOList.stream().collect(Collectors.groupingBy(ReportTemplateDTO::getResourceId)); Map<String, List<ReportTemplateDTO>> classMap = reportTemplateDTOList.stream().collect(Collectors.groupingBy(ReportTemplateDTO::getResourceId));
//定义存放越限指标的map //定义存放越限指标的map
Map<String, ReportTemplateDTO> assNoPassMap = new HashMap<>(); Map<String, ReportTemplateDTO> assNoPassMap = new HashMap<>();
classMap.forEach((classKey, templateValue) -> { classMap.forEach((classKey, templateValue) -> {
Map<String, List<ReportTemplateDTO>> valueTypeMap = templateValue.stream().collect(Collectors.groupingBy(ReportTemplateDTO::getStatMethod)); Map<String, List<ReportTemplateDTO>> valueTypeMap = templateValue.stream().collect(Collectors.groupingBy(ReportTemplateDTO::getStatMethod));
//每张表开启一个独立线程查询 //每张表开启一个独立线程查询
@@ -1133,23 +1134,27 @@ public class CustomReportServiceImpl implements CustomReportService {
// 子线程中手动指定数据源(关键) // 子线程中手动指定数据源(关键)
DynamicDataSourceContextHolder.push("sjzx"); DynamicDataSourceContextHolder.push("sjzx");
//avg.max,min,cp95 //avg.max,min,cp95
valueTypeMap.forEach((valueTypeKey, valueTypeVal) -> { try {
//相别分组 valueTypeMap.forEach((valueTypeKey, valueTypeVal) -> {
Map<String, List<ReportTemplateDTO>> phaseMap = valueTypeVal.stream().collect(Collectors.groupingBy(ReportTemplateDTO::getPhase)); //相别分组
phaseMap.forEach((phaseKey, phaseVal) -> { Map<String, List<ReportTemplateDTO>> phaseMap = valueTypeVal.stream().collect(Collectors.groupingBy(ReportTemplateDTO::getPhase));
StringBuilder sql = new StringBuilder(InfluxDbSqlConstant.SELECT); phaseMap.forEach((phaseKey, phaseVal) -> {
if (InfluxDbSqlConstant.MAX.equalsIgnoreCase(valueTypeKey)) { StringBuilder sql = new StringBuilder(InfluxDbSqlConstant.SELECT);
assSqlByMysql(phaseVal, sql, endList, InfluxDbSqlConstant.MAX, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap); if (InfluxDbSqlConstant.MAX.equalsIgnoreCase(valueTypeKey)) {
} else if (InfluxDbSqlConstant.MIN.equalsIgnoreCase(valueTypeKey)) { assSqlByMysql(phaseVal, sql, endList, InfluxDbSqlConstant.MAX, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap);
assSqlByMysql(phaseVal, sql, endList, InfluxDbSqlConstant.MIN, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap); } else if (InfluxDbSqlConstant.MIN.equalsIgnoreCase(valueTypeKey)) {
} else if (InfluxDbSqlConstant.AVG_WEB.equalsIgnoreCase(valueTypeKey)) { assSqlByMysql(phaseVal, sql, endList, InfluxDbSqlConstant.MIN, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap);
assSqlByMysql(phaseVal, sql, endList, InfluxDbSqlConstant.AVG_WEB, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap); } else if (InfluxDbSqlConstant.AVG_WEB.equalsIgnoreCase(valueTypeKey)) {
} else if (InfluxDbSqlConstant.CP95.equalsIgnoreCase(valueTypeKey)) { assSqlByMysql(phaseVal, sql, endList, InfluxDbSqlConstant.AVG_WEB, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap);
assSqlByMysql(phaseVal, sql, endList, InfluxDbSqlConstant.CP95, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap); } else if (InfluxDbSqlConstant.CP95.equalsIgnoreCase(valueTypeKey)) {
} assSqlByMysql(phaseVal, sql, endList, InfluxDbSqlConstant.CP95, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap);
}
});
}); });
}); }finally {
DynamicDataSourceContextHolder.poll();
}
})); }));
}); });