1.暂降次数微调
2.报表接口调整
This commit is contained in:
@@ -39,7 +39,7 @@ public class MonitorSendController extends BaseController {
|
|||||||
@ApiOperation("国网上送接口")
|
@ApiOperation("国网上送接口")
|
||||||
@ApiImplicitParam(name = "param",value = "请求体",required = true)
|
@ApiImplicitParam(name = "param",value = "请求体",required = true)
|
||||||
public HttpResult<String> windSend(@RequestBody @Validated MonitorParam.Info param){
|
public HttpResult<String> windSend(@RequestBody @Validated MonitorParam.Info param){
|
||||||
String methodDescribe = getMethodDescribe("sendType");
|
String methodDescribe = getMethodDescribe("windSend");
|
||||||
String s = monitorSendService.sendType(param);
|
String s = monitorSendService.sendType(param);
|
||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, s, methodDescribe);
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, s, methodDescribe);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1334,6 +1334,12 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
|
|||||||
|
|
||||||
for (OracleTerminalExcel oracleTerminalExcel : oracleTerminalExcelList) {
|
for (OracleTerminalExcel oracleTerminalExcel : oracleTerminalExcelList) {
|
||||||
//单位
|
//单位
|
||||||
|
if(oracleTerminalExcel.getGdName().equals("省检修")){
|
||||||
|
oracleTerminalExcel.setGdName("国网河北超高压公司本部");
|
||||||
|
}else {
|
||||||
|
oracleTerminalExcel.setGdName("国网"+oracleTerminalExcel.getGdName()+"本部");
|
||||||
|
}
|
||||||
|
|
||||||
if (!mapDept.containsKey(oracleTerminalExcel.getGdName())) {
|
if (!mapDept.containsKey(oracleTerminalExcel.getGdName())) {
|
||||||
oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, "单位名称不存在,请确认单位名称是否正确"));
|
oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, "单位名称不存在,请确认单位名称是否正确"));
|
||||||
continue;
|
continue;
|
||||||
@@ -1524,35 +1530,38 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
|
|||||||
LambdaQueryWrapper<Monitor> monitorLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<Monitor> monitorLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
monitorLambdaQueryWrapper.eq(Monitor::getLineId, lineId)
|
monitorLambdaQueryWrapper.eq(Monitor::getLineId, lineId)
|
||||||
.eq(Monitor::getName, oracleTerminalExcel.getLineName());
|
.eq(Monitor::getName, oracleTerminalExcel.getLineName());
|
||||||
Monitor monitor = monitorMapper.selectOne(monitorLambdaQueryWrapper);
|
List<Monitor> monitorList = monitorMapper.selectList(monitorLambdaQueryWrapper);
|
||||||
|
|
||||||
|
if(CollUtil.isNotEmpty(monitorList)) {
|
||||||
|
|
||||||
|
for (Monitor monitor : monitorList) {
|
||||||
|
|
||||||
//当前电站下面没有监测点,可以新增
|
//当前电站下面没有监测点,可以新增
|
||||||
Monitor monitorPO = new Monitor();
|
Monitor monitorPO = new Monitor();
|
||||||
|
|
||||||
String monitorId = "04";
|
String monitorId = "04";
|
||||||
String one ="";
|
String one = "";
|
||||||
if(deptDTO.getName().contains("石家庄")){
|
if (deptDTO.getName().contains("石家庄")) {
|
||||||
one= "01";
|
one = "01";
|
||||||
}else if(deptDTO.getName().contains("邯郸")){
|
} else if (deptDTO.getName().contains("邯郸")) {
|
||||||
one= "02";
|
one = "02";
|
||||||
}else if(deptDTO.getName().contains("保定")){
|
} else if (deptDTO.getName().contains("保定")) {
|
||||||
one= "03";
|
one = "03";
|
||||||
}else if(deptDTO.getName().contains("沧州")){
|
} else if (deptDTO.getName().contains("沧州")) {
|
||||||
one= "04";
|
one = "04";
|
||||||
}else if(deptDTO.getName().contains("邢台")){
|
} else if (deptDTO.getName().contains("邢台")) {
|
||||||
one= "05";
|
one = "05";
|
||||||
}else if(deptDTO.getName().contains("衡水")){
|
} else if (deptDTO.getName().contains("衡水")) {
|
||||||
one= "06";
|
one = "06";
|
||||||
}else if(deptDTO.getName().contains("超高压")){
|
} else if (deptDTO.getName().contains("超高压")) {
|
||||||
one= "07";
|
one = "07";
|
||||||
}else {
|
} else {
|
||||||
one= "3.14159";
|
one = "3.14159";
|
||||||
}
|
}
|
||||||
|
|
||||||
String last = String.format("M%05d",oracleTerminalExcel.getId());
|
String last = String.format("M%05d", oracleTerminalExcel.getId());
|
||||||
|
|
||||||
monitorPO.setMonitorId(monitorId+one+last);
|
monitorPO.setMonitorId(monitorId + one + last);
|
||||||
|
|
||||||
|
|
||||||
monitorPO.setName(oracleTerminalExcel.getLineName());
|
monitorPO.setName(oracleTerminalExcel.getLineName());
|
||||||
@@ -1611,33 +1620,59 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
|
|||||||
monitorPO.setMonitorObjectName(oracleTerminalExcel.getObjName());
|
monitorPO.setMonitorObjectName(oracleTerminalExcel.getObjName());
|
||||||
|
|
||||||
|
|
||||||
|
if (oracleTerminalExcel.getLoadType().equals("电加热负荷") ||oracleTerminalExcel.getLoadType().equals("轧机") || oracleTerminalExcel.getLoadType().equals("其他非线性负荷")) {
|
||||||
if(oracleTerminalExcel.getLoadType().equals("电加热负荷") || oracleTerminalExcel.getLoadType().equals("商业/市政/民用/电子通讯负荷") ||oracleTerminalExcel.getLoadType().equals("其他非线性负荷")){
|
if (objTypeDicMap.containsKey("冶炼负荷")) {
|
||||||
if (objTypeDicMap.containsKey(oracleTerminalExcel.getLoadType())) {
|
|
||||||
String objTypeId = objTypeDicMap.get("冶炼负荷").getId();
|
String objTypeId = objTypeDicMap.get("冶炼负荷").getId();
|
||||||
monitorPO.setMonitorTag(objTypeId);
|
monitorPO.setMonitorTag(objTypeId);
|
||||||
}else {
|
} else {
|
||||||
oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, "字典监测标签不存在,请确认后重试"));
|
oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, "冶炼负荷字典监测标签不存在,请确认后重试"));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}else if(oracleTerminalExcel.getLoadType().equals("半导体制造") ||oracleTerminalExcel.getLoadType().equals("精密加工")){
|
} else if (oracleTerminalExcel.getLoadType().equals("商业/市政/民用/电子通讯负荷")) {
|
||||||
if (objTypeDicMap.containsKey(oracleTerminalExcel.getLoadType())) {
|
if (objTypeDicMap.containsKey("城市商业")) {
|
||||||
String objTypeId = objTypeDicMap.get("重要或敏感用户").getId();
|
String objTypeId = objTypeDicMap.get("城市商业").getId();
|
||||||
monitorPO.setMonitorTag(objTypeId);
|
monitorPO.setMonitorTag(objTypeId);
|
||||||
}else {
|
} else {
|
||||||
oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, "字典监测标签不存在,请确认后重试"));
|
oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, "城市商业字典监测标签不存在,请确认后重试"));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
}else if(oracleTerminalExcel.getLoadType().equals("二类变电站") ||oracleTerminalExcel.getLoadType().equals("三类变电站") ||oracleTerminalExcel.getLoadType().equals("四类变电站")){
|
} else if (oracleTerminalExcel.getLoadType().equals("半导体制造") || oracleTerminalExcel.getLoadType().equals("精密加工")) {
|
||||||
if (objTypeDicMap.containsKey(oracleTerminalExcel.getLoadType())) {
|
if (objTypeDicMap.containsKey("敏感用户")) {
|
||||||
String objTypeId = objTypeDicMap.get("主变低压侧").getId();
|
String objTypeId = objTypeDicMap.get("敏感用户").getId();
|
||||||
monitorPO.setMonitorTag(objTypeId);
|
monitorPO.setMonitorTag(objTypeId);
|
||||||
}else {
|
} else {
|
||||||
|
oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, "敏感用户字典监测标签不存在,请确认后重试"));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (oracleTerminalExcel.getLoadType().equals("二类变电站") || oracleTerminalExcel.getLoadType().equals("三类变电站") || oracleTerminalExcel.getLoadType().equals("四类变电站")) {
|
||||||
|
if (objTypeDicMap.containsKey("主变高压侧")) {
|
||||||
|
String objTypeId = objTypeDicMap.get("主变高压侧").getId();
|
||||||
|
monitorPO.setMonitorTag(objTypeId);
|
||||||
|
} else {
|
||||||
oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, "字典监测标签不存在,请确认后重试"));
|
oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, "字典监测标签不存在,请确认后重试"));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}else {
|
}else if(oracleTerminalExcel.getLoadType().equals("跨省计量关口")){
|
||||||
|
if (objTypeDicMap.containsKey("跨省联络线")) {
|
||||||
|
String objTypeId = objTypeDicMap.get("跨省联络线").getId();
|
||||||
|
monitorPO.setMonitorTag(objTypeId);
|
||||||
|
} else {
|
||||||
|
oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, "跨省联络线字典监测标签不存在,请确认后重试"));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
}else if(oracleTerminalExcel.getLoadType().equals("光伏电站")){
|
||||||
|
if (objTypeDicMap.containsKey("光伏电站")) {
|
||||||
|
String objTypeId = objTypeDicMap.get("光伏电站").getId();
|
||||||
|
monitorPO.setMonitorTag(objTypeId);
|
||||||
|
} else {
|
||||||
|
oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, "光伏电站字典监测标签不存在,请确认后重试"));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
if (objTypeDicMap.containsKey(oracleTerminalExcel.getLoadType())) {
|
if (objTypeDicMap.containsKey(oracleTerminalExcel.getLoadType())) {
|
||||||
String objTypeId = objTypeDicMap.get(oracleTerminalExcel.getLoadType()).getId();
|
String objTypeId = objTypeDicMap.get(oracleTerminalExcel.getLoadType()).getId();
|
||||||
monitorPO.setMonitorTag(objTypeId);
|
monitorPO.setMonitorTag(objTypeId);
|
||||||
@@ -1653,8 +1688,11 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
|
|||||||
if (objTypeMap.containsKey(oracleTerminalExcel.getLoadType())) {
|
if (objTypeMap.containsKey(oracleTerminalExcel.getLoadType())) {
|
||||||
String objTypeId = objTypeMap.get(oracleTerminalExcel.getLoadType()).getId();
|
String objTypeId = objTypeMap.get(oracleTerminalExcel.getLoadType()).getId();
|
||||||
monitorPO.setObjType(objTypeId);
|
monitorPO.setObjType(objTypeId);
|
||||||
|
}else if(oracleTerminalExcel.getLoadType().equals("电加热负荷")){
|
||||||
|
String objTypeId = objTypeMap.get("电加热负荷(含电弧炉、中频炉、电热炉、单/多晶硅生产设备)").getId();
|
||||||
|
monitorPO.setObjType(objTypeId);
|
||||||
} else {
|
} else {
|
||||||
oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, oracleTerminalExcel.getLoadType()+"字典监测点对象类型不存在,请确认后重试"));
|
oracleTerminalExcelMsg.add(assembleMsg(oracleTerminalExcel, oracleTerminalExcel.getLoadType() + "字典监测点对象类型不存在,请确认后重试"));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1700,19 +1738,17 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
|
|||||||
monitorPO.setCt2(oracleTerminalExcel.getCt2());
|
monitorPO.setCt2(oracleTerminalExcel.getCt2());
|
||||||
|
|
||||||
|
|
||||||
if(oracleTerminalExcel.getLoadType().equals("光伏电站") || oracleTerminalExcel.getLoadType().equals("风电场")){
|
if (oracleTerminalExcel.getLoadType().equals("光伏电站") || oracleTerminalExcel.getLoadType().equals("风电场")) {
|
||||||
monitorPO.setFieldStation("01");
|
monitorPO.setFieldStation("01");
|
||||||
}
|
}
|
||||||
|
|
||||||
if(oracleTerminalExcel.getPowerFlag() == 0){
|
if (oracleTerminalExcel.getPowerFlag() == 0) {
|
||||||
monitorPO.setPowerFlag("101");
|
monitorPO.setPowerFlag("101");
|
||||||
}else if(oracleTerminalExcel.getPowerFlag() == 1){
|
} else if (oracleTerminalExcel.getPowerFlag() == 1) {
|
||||||
monitorPO.setPowerFlag("102");
|
monitorPO.setPowerFlag("102");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (Objects.isNull(lineBak) && Objects.isNull(monitor)) {
|
if (Objects.isNull(lineBak) && Objects.isNull(monitor)) {
|
||||||
monitorPO.setIsUpToGrid(0);
|
monitorPO.setIsUpToGrid(0);
|
||||||
monitorMapper.insert(monitorPO);
|
monitorMapper.insert(monitorPO);
|
||||||
@@ -1756,6 +1792,9 @@ public class MonitorServiceImpl extends ServiceImpl<MonitorMapper, Monitor> impl
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -139,7 +139,7 @@ public class RmpEventDetailController extends BaseController {
|
|||||||
*/
|
*/
|
||||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
@PostMapping("/getImMonitorEvents")
|
@PostMapping("/getImMonitorEvents")
|
||||||
@ApiOperation("暂降事件记录")
|
@ApiOperation("查询重要监测点指定时间发生的暂降次数")
|
||||||
public HttpResult<List<Map<String,Object>>> getImMonitorEvents(@RequestBody EventBaseParam param) {
|
public HttpResult<List<Map<String,Object>>> getImMonitorEvents(@RequestBody EventBaseParam param) {
|
||||||
String methodDescribe = getMethodDescribe("getImMonitorEvents");
|
String methodDescribe = getMethodDescribe("getImMonitorEvents");
|
||||||
List<Map<String,Object>> result = rmpEventDetailService.getImMonitorEvents(param);
|
List<Map<String,Object>> result = rmpEventDetailService.getImMonitorEvents(param);
|
||||||
|
|||||||
@@ -399,6 +399,7 @@ public class RmpEventDetailServiceImpl extends ServiceImpl<RmpEventDetailMapper,
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Map<String, Object>> getImMonitorEvents(EventBaseParam param) {
|
public List<Map<String, Object>> getImMonitorEvents(EventBaseParam param) {
|
||||||
|
List<Map<String,Object>> mapList = new ArrayList<>();
|
||||||
DictData eventDic = dicDataFeignClient.getDicDataByCodeAndType(DicDataEnum.VOLTAGE_DIP.getCode(),DicDataTypeEnum.EVENT_STATIS.getCode()).getData();
|
DictData eventDic = dicDataFeignClient.getDicDataByCodeAndType(DicDataEnum.VOLTAGE_DIP.getCode(),DicDataTypeEnum.EVENT_STATIS.getCode()).getData();
|
||||||
DictData dictData = dicDataFeignClient.getDicDataByCodeAndType(DicDataEnum.MOST_IMPORMENT.getCode(),DicDataTypeEnum.DEV_GRADE.getCode()).getData();
|
DictData dictData = dicDataFeignClient.getDicDataByCodeAndType(DicDataEnum.MOST_IMPORMENT.getCode(),DicDataTypeEnum.DEV_GRADE.getCode()).getData();
|
||||||
|
|
||||||
@@ -408,6 +409,9 @@ public class RmpEventDetailServiceImpl extends ServiceImpl<RmpEventDetailMapper,
|
|||||||
queryWrapper.eq("measurement_point_id",param.getSearchValue());
|
queryWrapper.eq("measurement_point_id",param.getSearchValue());
|
||||||
}else {
|
}else {
|
||||||
List<String> lineIds = lineFeignClient.getLevelMonitorIdByDept(dictData.getId(),param.getDeptId()).getData();
|
List<String> lineIds = lineFeignClient.getLevelMonitorIdByDept(dictData.getId(),param.getDeptId()).getData();
|
||||||
|
if(CollUtil.isEmpty(lineIds)){
|
||||||
|
return mapList;
|
||||||
|
}
|
||||||
queryWrapper.in("measurement_point_id",lineIds);
|
queryWrapper.in("measurement_point_id",lineIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -415,13 +419,17 @@ public class RmpEventDetailServiceImpl extends ServiceImpl<RmpEventDetailMapper,
|
|||||||
queryWrapper.select("measurement_point_id as lineId","count(event_id) as eventCount").between("start_time",param.getSearchBeginTime(),param.getSearchEndTime())
|
queryWrapper.select("measurement_point_id as lineId","count(event_id) as eventCount").between("start_time",param.getSearchBeginTime(),param.getSearchEndTime())
|
||||||
.eq("event_type",eventDic.getId())
|
.eq("event_type",eventDic.getId())
|
||||||
.groupBy("measurement_point_id");
|
.groupBy("measurement_point_id");
|
||||||
List<Map<String,Object>> mapList = this.baseMapper.selectMaps(queryWrapper);
|
mapList = this.baseMapper.selectMaps(queryWrapper);
|
||||||
|
if(CollUtil.isEmpty(mapList)){
|
||||||
|
return mapList;
|
||||||
|
}
|
||||||
List<String> ids = mapList.stream().map(it->it.get("lineId").toString()).distinct().collect(Collectors.toList());
|
List<String> ids = mapList.stream().map(it->it.get("lineId").toString()).distinct().collect(Collectors.toList());
|
||||||
List<Line> lineList = lineFeignClient.getBaseLineList(ids).getData();
|
List<AreaLineInfoVO> lineList = lineFeignClient.getBaseLineAreaInfo(ids).getData();
|
||||||
Map<String,Line> lineMap = lineList.stream().collect(Collectors.toMap(Line::getId,Function.identity()));
|
Map<String,AreaLineInfoVO> lineMap = lineList.stream().collect(Collectors.toMap(AreaLineInfoVO::getLineId,Function.identity()));
|
||||||
|
|
||||||
mapList.forEach(item->{
|
mapList.forEach(item->{
|
||||||
item.put("lineName",lineMap.get(item.get("lineId")).getName());
|
AreaLineInfoVO tem = lineMap.get(item.get("lineId").toString());
|
||||||
|
item.put("lineName",tem.getVoltageName()+"_"+tem.getLineName());
|
||||||
});
|
});
|
||||||
|
|
||||||
return mapList;
|
return mapList;
|
||||||
|
|||||||
@@ -74,6 +74,10 @@ import java.text.SimpleDateFormat;
|
|||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.concurrent.ExecutionException;
|
||||||
|
import java.util.concurrent.ExecutorService;
|
||||||
|
import java.util.concurrent.Executors;
|
||||||
|
import java.util.concurrent.Future;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
@@ -112,6 +116,9 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
|
|
||||||
private final WlRecordFeignClient wlRecordFeignClient;
|
private final WlRecordFeignClient wlRecordFeignClient;
|
||||||
|
|
||||||
|
private final ExecutorService executorService = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors() + 1);
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean addCustomReportTemplate(ReportTemplateParam reportTemplateParam) {
|
public boolean addCustomReportTemplate(ReportTemplateParam reportTemplateParam) {
|
||||||
checkName(reportTemplateParam, false);
|
checkName(reportTemplateParam, false);
|
||||||
@@ -251,18 +258,16 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
if (Objects.isNull(excelRptTemp)) {
|
if (Objects.isNull(excelRptTemp)) {
|
||||||
throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_ACTIVE);
|
throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_ACTIVE);
|
||||||
}
|
}
|
||||||
if(Objects.isNull(reportSearchParam.getCustomType())){
|
if (Objects.isNull(reportSearchParam.getCustomType())) {
|
||||||
//通用报表
|
//通用报表
|
||||||
analyzeReport(reportSearchParam, excelRptTemp, response);
|
analyzeReport(reportSearchParam, excelRptTemp, response);
|
||||||
}else {
|
} else {
|
||||||
//浙江无线报表
|
//浙江无线报表
|
||||||
analyzeReportZhejiang(reportSearchParam, excelRptTemp, response);
|
analyzeReportZhejiang(reportSearchParam, excelRptTemp, response);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<ReportTreeVO> reportChooseTree() {
|
public List<ReportTreeVO> reportChooseTree() {
|
||||||
DictData dic = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.CS_DATA_TYPE.getName(), DicDataEnum.EPD.getName()).getData();
|
DictData dic = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.CS_DATA_TYPE.getName(), DicDataEnum.EPD.getName()).getData();
|
||||||
@@ -598,6 +603,8 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
System.out.println(sql);
|
System.out.println(sql);
|
||||||
|
|
||||||
long l = System.currentTimeMillis();
|
long l = System.currentTimeMillis();
|
||||||
|
|
||||||
|
|
||||||
List<Map<String, Object>> mapList = SqlRunner.db().selectList(sql.toString());
|
List<Map<String, Object>> mapList = SqlRunner.db().selectList(sql.toString());
|
||||||
|
|
||||||
long la = System.currentTimeMillis();
|
long la = System.currentTimeMillis();
|
||||||
@@ -652,6 +659,7 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
private void analyzeReport(ReportSearchParam reportSearchParam, ExcelRptTemp excelRptTemp, HttpServletResponse response) {
|
private void analyzeReport(ReportSearchParam reportSearchParam, ExcelRptTemp excelRptTemp, HttpServletResponse response) {
|
||||||
|
List<Future<?>> futures = new ArrayList<>();
|
||||||
|
|
||||||
long begin = System.currentTimeMillis();
|
long begin = System.currentTimeMillis();
|
||||||
|
|
||||||
@@ -688,7 +696,11 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
//定义存放越限指标的map
|
//定义存放越限指标的map
|
||||||
Map<String, ReportTemplateDTO> assNoPassMap = new HashMap<>();
|
Map<String, ReportTemplateDTO> assNoPassMap = new HashMap<>();
|
||||||
long deal = System.currentTimeMillis();
|
long deal = System.currentTimeMillis();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
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));
|
||||||
//avg.max,min,cp95
|
//avg.max,min,cp95
|
||||||
valueTypeMap.forEach((valueTypeKey, valueTypeVal) -> {
|
valueTypeMap.forEach((valueTypeKey, valueTypeVal) -> {
|
||||||
@@ -696,6 +708,7 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
//相别分组
|
//相别分组
|
||||||
Map<String, List<ReportTemplateDTO>> phaseMap = valueTypeVal.stream().collect(Collectors.groupingBy(ReportTemplateDTO::getPhase));
|
Map<String, List<ReportTemplateDTO>> phaseMap = valueTypeVal.stream().collect(Collectors.groupingBy(ReportTemplateDTO::getPhase));
|
||||||
phaseMap.forEach((phaseKey, phaseVal) -> {
|
phaseMap.forEach((phaseKey, phaseVal) -> {
|
||||||
|
futures.add(executorService.submit(() -> {
|
||||||
StringBuilder sql = new StringBuilder(InfluxDbSqlConstant.SELECT);
|
StringBuilder sql = new StringBuilder(InfluxDbSqlConstant.SELECT);
|
||||||
if (InfluxDbSqlConstant.MAX.equalsIgnoreCase(valueTypeKey)) {
|
if (InfluxDbSqlConstant.MAX.equalsIgnoreCase(valueTypeKey)) {
|
||||||
assSqlNew(phaseVal, sql, endList, InfluxDbSqlConstant.MAX, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap);
|
assSqlNew(phaseVal, sql, endList, InfluxDbSqlConstant.MAX, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap);
|
||||||
@@ -706,13 +719,27 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
} else if (InfluxDbSqlConstant.CP95.equalsIgnoreCase(valueTypeKey)) {
|
} else if (InfluxDbSqlConstant.CP95.equalsIgnoreCase(valueTypeKey)) {
|
||||||
assSqlNew(phaseVal, sql, endList, InfluxDbSqlConstant.CP95, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap);
|
assSqlNew(phaseVal, sql, endList, InfluxDbSqlConstant.CP95, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap);
|
||||||
}
|
}
|
||||||
});
|
}));
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// 等待所有任务完成
|
||||||
|
for (Future<?> future : futures) {
|
||||||
|
try {
|
||||||
|
future.get(); // 这会阻塞直到任务完成或抛出异常
|
||||||
|
} catch (InterruptedException | ExecutionException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//处理指标最终判定合格还是不合格
|
//处理指标最终判定合格还是不合格
|
||||||
dealTargetResult(assNoPassMap,limitTargetMapX,endList);
|
dealTargetResult(assNoPassMap, limitTargetMapX, endList);
|
||||||
|
|
||||||
long dealEnd = System.currentTimeMillis();
|
long dealEnd = System.currentTimeMillis();
|
||||||
System.out.println("模板解析时间:" + (temEnd - begin) / 1000 + "S");
|
System.out.println("模板解析时间:" + (temEnd - begin) / 1000 + "S");
|
||||||
@@ -819,7 +846,9 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
* @author cdf
|
* @author cdf
|
||||||
* @date 2023/10/20
|
* @date 2023/10/20
|
||||||
*/
|
*/
|
||||||
private void parseTemplate(JSONArray jsonArray, List<ReportTemplateDTO> reportTemplateDTOList, List<ReportTemplateDTO> reportLimitList, List<ReportTemplateDTO> terminalList) {
|
private void parseTemplate (JSONArray
|
||||||
|
jsonArray, List < ReportTemplateDTO > reportTemplateDTOList, List < ReportTemplateDTO > reportLimitList, List < ReportTemplateDTO > terminalList)
|
||||||
|
{
|
||||||
try {
|
try {
|
||||||
//通过文件服务器获取
|
//通过文件服务器获取
|
||||||
|
|
||||||
@@ -898,7 +927,8 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
* @author cdf
|
* @author cdf
|
||||||
* @date 2023/10/23
|
* @date 2023/10/23
|
||||||
*/
|
*/
|
||||||
private Map<String, Float> overLimitDeal(List<ReportTemplateDTO> reportLimitList, ReportSearchParam reportSearchParam) {
|
private Map<String, Float> overLimitDeal (List < ReportTemplateDTO > reportLimitList, ReportSearchParam
|
||||||
|
reportSearchParam){
|
||||||
Map<String, Float> limitMap = new HashMap<>();
|
Map<String, Float> limitMap = new HashMap<>();
|
||||||
if (CollUtil.isNotEmpty(reportLimitList)) {
|
if (CollUtil.isNotEmpty(reportLimitList)) {
|
||||||
StringBuilder sql = new StringBuilder("select ");
|
StringBuilder sql = new StringBuilder("select ");
|
||||||
@@ -927,7 +957,7 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
/**
|
/**
|
||||||
* 报告下载
|
* 报告下载
|
||||||
*/
|
*/
|
||||||
private void downReport(JSONArray jsonArray, HttpServletResponse response) {
|
private void downReport (JSONArray jsonArray, HttpServletResponse response){
|
||||||
InputStream reportStream = IoUtil.toStream(jsonArray.toString(), CharsetUtil.UTF_8);
|
InputStream reportStream = IoUtil.toStream(jsonArray.toString(), CharsetUtil.UTF_8);
|
||||||
//String newContent = fileStorageUtil.uploadStream(reportStream, OssPath.HARMONIC_EXCEL_REPORT, FileUtil.generateFileName("json"));
|
//String newContent = fileStorageUtil.uploadStream(reportStream, OssPath.HARMONIC_EXCEL_REPORT, FileUtil.generateFileName("json"));
|
||||||
|
|
||||||
@@ -950,7 +980,8 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void analyzeReportZhejiang(ReportSearchParam reportSearchParam, ExcelRptTemp excelRptTemp, HttpServletResponse response) {
|
private void analyzeReportZhejiang (ReportSearchParam reportSearchParam, ExcelRptTemp
|
||||||
|
excelRptTemp, HttpServletResponse response){
|
||||||
|
|
||||||
//指标
|
//指标
|
||||||
List<ReportTemplateDTO> reportTemplateDTOList = new ArrayList<>();
|
List<ReportTemplateDTO> reportTemplateDTOList = new ArrayList<>();
|
||||||
@@ -966,10 +997,6 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_JSON);
|
throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_JSON);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
long temEnd = System.currentTimeMillis();
|
|
||||||
|
|
||||||
|
|
||||||
//处理指标是否合格
|
//处理指标是否合格
|
||||||
reportLimitList = new LinkedHashSet<>(reportLimitList)
|
reportLimitList = new LinkedHashSet<>(reportLimitList)
|
||||||
.stream()
|
.stream()
|
||||||
@@ -1024,7 +1051,7 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
});
|
});
|
||||||
|
|
||||||
//处理指标最终判定合格还是不合格
|
//处理指标最终判定合格还是不合格
|
||||||
dealTargetResult(assNoPassMap,limitTargetMapX,endList);
|
dealTargetResult(assNoPassMap, limitTargetMapX, endList);
|
||||||
|
|
||||||
long dealEnd = System.currentTimeMillis();
|
long dealEnd = System.currentTimeMillis();
|
||||||
System.out.println("查询数据库花费时间" + (dealEnd - deal) / 1000 + "S");
|
System.out.println("查询数据库花费时间" + (dealEnd - deal) / 1000 + "S");
|
||||||
@@ -1047,7 +1074,7 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
|
|
||||||
|
|
||||||
//2、把itemName的value赋给v和m
|
//2、把itemName的value赋给v和m
|
||||||
dealExcelResult(jsonArray,assMap,unit);
|
dealExcelResult(jsonArray, assMap, unit);
|
||||||
long jieEnd = System.currentTimeMillis();
|
long jieEnd = System.currentTimeMillis();
|
||||||
|
|
||||||
System.out.println("组装信息耗时 " + (jieEnd - jie) / 1000 + "S");
|
System.out.println("组装信息耗时 " + (jieEnd - jie) / 1000 + "S");
|
||||||
@@ -1063,7 +1090,10 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void assSqlZhejiang(List<ReportTemplateDTO> data, StringBuilder sql, List<ReportTemplateDTO> endList, String method, ReportSearchParam reportSearchParam, Map<String, ReportTemplateDTO> limitMap, Map<String, Float> overLimitMap, Map<String, ReportTemplateDTO> assNoPassMap, List<WlRecord> wlRecordList) {
|
private void assSqlZhejiang (List < ReportTemplateDTO > data, StringBuilder
|
||||||
|
sql, List < ReportTemplateDTO > endList, String method, ReportSearchParam
|
||||||
|
reportSearchParam, Map < String, ReportTemplateDTO > limitMap, Map < String, Float > overLimitMap, Map < String, ReportTemplateDTO > assNoPassMap, List < WlRecord > wlRecordList)
|
||||||
|
{
|
||||||
//sql拼接示例:select MAX(IHA2) as IHA2 from power_quality_data where Phase = 'A' and LineId='1324564568' and Stat_Method='max' tz('Asia/Shanghai')
|
//sql拼接示例:select MAX(IHA2) as IHA2 from power_quality_data where Phase = 'A' and LineId='1324564568' and Stat_Method='max' tz('Asia/Shanghai')
|
||||||
//cp95函数特殊处理 PERCENTILE(field_key, N)
|
//cp95函数特殊处理 PERCENTILE(field_key, N)
|
||||||
if (InfluxDbSqlConstant.PERCENTILE.equals(method)) {
|
if (InfluxDbSqlConstant.PERCENTILE.equals(method)) {
|
||||||
@@ -1184,7 +1214,7 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private Map<String, Object> dealResultMap(String method, List<Map<String, Object>> allList) {
|
private Map<String, Object> dealResultMap (String method, List < Map < String, Object >> allList){
|
||||||
Map<String, Object> resultMap = new HashMap<>();
|
Map<String, Object> resultMap = new HashMap<>();
|
||||||
// 遍历列表中的每个Map
|
// 遍历列表中的每个Map
|
||||||
if (method.equals(InfluxDbSqlConstant.MIN)) {
|
if (method.equals(InfluxDbSqlConstant.MIN)) {
|
||||||
@@ -1249,7 +1279,8 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void dealExcelResult(JSONArray jsonArray,Map<String,List<ReportTemplateDTO>> assMap,Map<String,String> unit){
|
private void dealExcelResult (JSONArray
|
||||||
|
jsonArray, Map < String, List < ReportTemplateDTO >> assMap, Map < String, String > unit){
|
||||||
jsonArray.forEach(item -> {
|
jsonArray.forEach(item -> {
|
||||||
JSONObject jsonObject = (JSONObject) item;
|
JSONObject jsonObject = (JSONObject) item;
|
||||||
JSONArray itemArr = (JSONArray) jsonObject.get("celldata");
|
JSONArray itemArr = (JSONArray) jsonObject.get("celldata");
|
||||||
@@ -1317,7 +1348,9 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
/**
|
/**
|
||||||
* 处理指标超标结论
|
* 处理指标超标结论
|
||||||
*/
|
*/
|
||||||
private void dealTargetResult(Map<String,ReportTemplateDTO> assNoPassMap,Map<String,ReportTemplateDTO> limitTargetMapX,List<ReportTemplateDTO> endList){
|
private void dealTargetResult
|
||||||
|
(Map < String, ReportTemplateDTO > assNoPassMap, Map < String, ReportTemplateDTO > limitTargetMapX, List < ReportTemplateDTO > endList)
|
||||||
|
{
|
||||||
assNoPassMap.forEach((key, val) -> {
|
assNoPassMap.forEach((key, val) -> {
|
||||||
limitTargetMapX.remove(key);
|
limitTargetMapX.remove(key);
|
||||||
if ("Voltage_Dev".equals(val.getTemplateName()) || "Freq_Dev".equals(val.getTemplateName())) {
|
if ("Voltage_Dev".equals(val.getTemplateName()) || "Freq_Dev".equals(val.getTemplateName())) {
|
||||||
@@ -1348,7 +1381,9 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
* @author cdf
|
* @author cdf
|
||||||
* @date 2023/10/20
|
* @date 2023/10/20
|
||||||
*/
|
*/
|
||||||
private void parseTemplateZhejiang(JSONArray jsonArray, List<ReportTemplateDTO> reportTemplateDTOList, List<ReportTemplateDTO> reportLimitList, List<ReportTemplateDTO> terminalList) {
|
private void parseTemplateZhejiang (JSONArray
|
||||||
|
jsonArray, List < ReportTemplateDTO > reportTemplateDTOList, List < ReportTemplateDTO > reportLimitList, List < ReportTemplateDTO > terminalList)
|
||||||
|
{
|
||||||
try {
|
try {
|
||||||
//通过文件服务器获取
|
//通过文件服务器获取
|
||||||
|
|
||||||
@@ -1421,7 +1456,7 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user