diff --git a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/controller/EventRelevantAnalysisController.java b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/controller/EventRelevantAnalysisController.java index 6e1278b89..87e575f64 100644 --- a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/controller/EventRelevantAnalysisController.java +++ b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/controller/EventRelevantAnalysisController.java @@ -129,10 +129,10 @@ public class EventRelevantAnalysisController extends BaseController { @PostMapping("/updateEventToAss") @ApiOperation("把暂降事件添加到指定事件中去") public HttpResult> updateEventToAss(@RequestBody Map map){ - if(!map.containsKey("eventId") || !map.containsKey("assId")){ - throw new BusinessException("参数异常"); - } String methodDescribe = getMethodDescribe("updateEventToAss"); + if(!map.containsKey("eventId") || !map.containsKey("assId")){ + throw new BusinessException("参数异常"); + } List eventIds = (List) map.get("eventId"); if(CollectionUtil.isEmpty(eventIds)){ throw new BusinessException("暂降事件不可为空"); diff --git a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/impl/EventRelevantAnalysisServiceImpl.java b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/impl/EventRelevantAnalysisServiceImpl.java index 12a3d3e97..355d50e36 100644 --- a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/impl/EventRelevantAnalysisServiceImpl.java +++ b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/service/impl/EventRelevantAnalysisServiceImpl.java @@ -168,7 +168,7 @@ public class EventRelevantAnalysisServiceImpl extends ServiceImpl listSize) { - toIndex = listSize - i; - } - //分割lst - List newList = listEventAssObj.subList(i, i + toIndex); - //写入添加方法,需要写你的新增方法,把newList分切后的数据新增进入数据库。 - rmpEventDetailAssMapper.insertEventAssData(newList); + int listSize = listEventAssObj.size(); + int toIndex = 1000; + for (int i = 0; i < listSize; i += 1000) { + //作用为toIndex最后没有toIndex条数据则剩余几条newList中就装几条 + if (i + 1000 > listSize) { + toIndex = listSize - i; } + //分割lst + List newList = listEventAssObj.subList(i, i + toIndex); + //写入添加方法,需要写你的新增方法,把newList分切后的数据新增进入数据库。 + rmpEventDetailAssMapper.insertEventAssData(newList); + } - List eventUpdateList = new ArrayList<>(); - for (int i = 0; i < listSagEvent.size(); i++) { - RmpEventDetailPO rmp = new RmpEventDetailPO(); - rmp.setEventId(listSagEvent.get(i).getIndexEventDetail()); - rmp.setEventassIndex(listSagEvent.get(i).getIndexEventAss()); - rmp.setDealTime(listSagEvent.get(i).getDealTime()); - eventUpdateList.add(rmp); - if ((i + 1) % 1000 == 0) { - this.updateBatchById(eventUpdateList); - eventUpdateList.clear(); - } else if (i == listSagEvent.size() - 1) { - this.updateBatchById(eventUpdateList); - } + List eventUpdateList = new ArrayList<>(); + for (int i = 0; i < listSagEvent.size(); i++) { + RmpEventDetailPO rmp = new RmpEventDetailPO(); + rmp.setEventId(listSagEvent.get(i).getIndexEventDetail()); + rmp.setEventassIndex(listSagEvent.get(i).getIndexEventAss()); + rmp.setDealTime(listSagEvent.get(i).getDealTime()); + eventUpdateList.add(rmp); + if ((i + 1) % 1000 == 0) { + this.updateBatchById(eventUpdateList); + eventUpdateList.clear(); + } else if (i == listSagEvent.size() - 1) { + this.updateBatchById(eventUpdateList); } + } - // 增加策略记录 - String describe = "用户" + RequestUtil.getUserNickname() + "进行了关联分析"; - PqsRelevanceLog entityPqsRelevance = new PqsRelevanceLog(); - entityPqsRelevance.setContentDes(describe); - entityPqsRelevance.setState(DataStateEnum.ENABLE.getCode()); - entityPqsRelevance.setTimeId(date); - relevantLogMapper.insert(entityPqsRelevance); - + // 增加策略记录 + String describe = "用户" + RequestUtil.getUserNickname() + "进行了关联分析"; + PqsRelevanceLog entityPqsRelevance = new PqsRelevanceLog(); + entityPqsRelevance.setContentDes(describe); + entityPqsRelevance.setState(DataStateEnum.ENABLE.getCode()); + entityPqsRelevance.setTimeId(date); + relevantLogMapper.insert(entityPqsRelevance); log.info("事件关联分析用时:" + timeInterval.interval() / 1000 + "秒"); @@ -230,224 +223,6 @@ public class EventRelevantAnalysisServiceImpl extends ServiceImpl> nodeSort = new HashMap<>(); -// Map entityMtransMap = getNodeInfo(); -// -// -// -// -// -// for (Map.Entry> m : nodeSort) { -// List list = new ArrayList(); -// Set> mapValue = m.getValue().entrySet(); -// FinalData.NODE_NUM = m.getValue().size(); -// -// for (Map.Entry mm : mapValue) { -// for (int i = 0; i < entityGroupEvtDatas.length; i++) { -// if (entityGroupEvtDatas[i].getNodePhysics() == mm.getKey().intValue() && "短路故障".equals(entityGroupEvtDatas[i].getSagReason())) { -// entityGroupEvtDatas[i].setNode(mm.getValue()); -// list.add(entityGroupEvtDatas[i]); -// } -// } -// -// // 筛选不在矩阵中的事件id -// Iterator iterator = list3.iterator(); -// while (iterator.hasNext()) { -// EntityGroupEvtData entityGroupEvtData = iterator.next(); -// -// if (entityGroupEvtData.getNodePhysics() == mm.getKey().intValue() && "短路故障".equals(entityGroupEvtData.getSagReason())) { -// iterator.remove(); -// } -// } -// } -// -// EntityGroupEvtData[] entityGroupEvtData = new EntityGroupEvtData[list.size()]; -// Collections.sort(list); -// list.toArray(entityGroupEvtData); -// -// for (Map.Entry mEntry : setMtrans) { -// if (mEntry.getKey().equals(m.getKey())) { -// *//**//******************************************************************** -// * 算法最多处理1000条数据,超过限制需分批处理 先将数据根据某种方式进行升序/降序排序,然后分段处理 加入循环处理 -// *********************************************************************//**//* -// int circulation = entityGroupEvtData.length % FinalData.MAX_EVT_NUM == 0 -// ? entityGroupEvtData.length / FinalData.MAX_EVT_NUM -// : entityGroupEvtData.length / FinalData.MAX_EVT_NUM + 1; -// -// for (int i = 0; i < circulation; i++) { -// int to = 0; -// -// if (i == circulation - 1) { -// to = entityGroupEvtData.length % FinalData.MAX_EVT_NUM > 0 -// ? entityGroupEvtData.length -// : (i + 1) * FinalData.MAX_EVT_NUM - 1; -// } else { -// to = (i + 1) * FinalData.MAX_EVT_NUM - 1; -// } -// -// EntityGroupEvtData[] arrayObj = Arrays.copyOfRange(entityGroupEvtData, -// i * FinalData.MAX_EVT_NUM, to); -// JSONObject entityMtrans = mEntry.getValue(); -// EntityGroupData entityGroupData = handleEvent.translate(arrayObj, (EntityMtrans) JSONObject.toBean(entityMtrans, EntityMtrans.class)); -// // 处理分析结果 -// handleEvent.show_group_info(entityGroupData, listSagEvent, listEventAssObj, date); -// } -// } -// } -// } -// -// -// DictData dictData = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.EVENT_REASON.getName(), DicDataEnum.SHORT_TROUBLE.getName()).getData(); -// if (Objects.isNull(dictData)) { -// throw new BusinessException(SystemResponseEnum.ADVANCE_REASON); -// } -// -// -// LocalDateTime date = LocalDateTime.now(); -// HandleEvent handleEvent = new HandleEvent(); -// // 分析的事件进行处理 -// List baseList = handleEvent.getData(startTime, endTime); -// if (CollectionUtil.isEmpty(baseList)) { -// throw new BusinessException("当前时间段暂无可分析事件"); -// } -// -// // 传入的处理事件根据物理隔绝进行分组 -// -// List strategyList = relevantLogMapper.getLogic(); -// -// if (CollectionUtil.isNotEmpty(strategyList)) { -// List listSagEvent = new ArrayList<>(); -// List listEventAssObj = new ArrayList<>(); -// -// Map> strategyToBusBarMap = new HashMap<>(32); -// -// Map mapRedis = new HashMap<>(32); -// -// Map> strategyMap = strategyList.stream().collect(Collectors.groupingBy(EntityLogic::getTPIndex)); -// strategyMap.forEach((key, list) -> { -// List before = list.stream().map(EntityLogic::getNodeBefore).distinct().collect(Collectors.toList()); -// List after = list.stream().map(EntityLogic::getNodeNext).distinct().collect(Collectors.toList()); -// before.addAll(after); -// before = before.stream().distinct().collect(Collectors.toList()); -// strategyToBusBarMap.put(key, before); -// -// FinalData.NODE_NUM = before.size(); -// EntityMtrans entityMtrans = new EntityMtrans(); -// handleEvent.create_matrixcata(list, entityMtrans); -// -// mapRedis.put(key, entityMtrans); -// }); -// -// strategyToBusBarMap.forEach((lastKey, lastVal) -> { -// int index = 1; -// List list = new ArrayList<>(); -// for (EntityGroupEvtData entityGroupEvtData : baseList) { -// if (lastVal.contains(entityGroupEvtData.getNodePhysics()) && dictData.getId().equals(entityGroupEvtData.getSagReason())) { -// entityGroupEvtData.setNode(index++); -// list.add(entityGroupEvtData); -// } -// } -// -// baseList.removeIf(entityGroupEvtData -> lastVal.contains(entityGroupEvtData.getNodePhysics()) && dictData.getId().equals(entityGroupEvtData.getSagReason())); -// -// -// EntityGroupEvtData[] entityGroupEvtData = new EntityGroupEvtData[list.size()]; -// Collections.sort(list); -// list.toArray(entityGroupEvtData); -// -// mapRedis.forEach((mKey, mVal) -> { -// if (mKey.equals(lastKey)) { -// //算法最多处理1000条数据,超过限制需分批处理 先将数据根据某种方式进行升序/降序排序,然后分段处理 加入循环处理 -// int circulation = entityGroupEvtData.length % FinalData.MAX_EVT_NUM == 0 -// ? entityGroupEvtData.length / FinalData.MAX_EVT_NUM -// : entityGroupEvtData.length / FinalData.MAX_EVT_NUM + 1; -// -// for (int i = 0; i < circulation; i++) { -// int to; -// if (i == circulation - 1) { -// to = entityGroupEvtData.length % FinalData.MAX_EVT_NUM > 0 -// ? entityGroupEvtData.length -// : (i + 1) * FinalData.MAX_EVT_NUM - 1; -// } else { -// to = (i + 1) * FinalData.MAX_EVT_NUM - 1; -// } -// -// EntityGroupEvtData[] arrayObj = Arrays.copyOfRange(entityGroupEvtData, -// i * FinalData.MAX_EVT_NUM, to); -// EntityGroupData entityGroupData = handleEvent.translate(arrayObj, mVal); -// // 处理分析结果 -// handleEvent.show_group_info(entityGroupData, listSagEvent, listEventAssObj, date); -// } -// } -// }); -// -// }); -// -// -// -// //事件ID不在矩阵中,结果集为基础以时标为标准进行归集处理 注意:三相与(单相/两相)互斥 -// -// disposeNonStandardData(handleEvent, baseList, listEventAssObj, listSagEvent, date); -// -// -// int listSize = listEventAssObj.size(); -// int toIndex = 1000; -// for (int i = 0; i < listSize; i += 1000) { -// //作用为toIndex最后没有toIndex条数据则剩余几条newList中就装几条 -// if (i + 1000 > listSize) { -// toIndex = listSize - i; -// } -// //分割lst -// List newList = listEventAssObj.subList(i, i + toIndex); -// //写入添加方法,需要写你的新增方法,把newList分切后的数据新增进入数据库。 -// rmpEventDetailAssMapper.insertEventAssData(newList); -// } -// -// List eventUpdateList = new ArrayList<>(); -// for (int i = 0; i < listSagEvent.size(); i++) { -// RmpEventDetailPO rmp = new RmpEventDetailPO(); -// rmp.setEventId(listSagEvent.get(i).getIndexEventDetail()); -// rmp.setEventassIndex(listSagEvent.get(i).getIndexEventAss()); -// rmp.setDealTime(listSagEvent.get(i).getDealTime()); -// eventUpdateList.add(rmp); -// if ((i + 1) % 1000 == 0) { -// this.updateBatchById(eventUpdateList); -// eventUpdateList.clear(); -// } else if (i == listSagEvent.size() - 1) { -// this.updateBatchById(eventUpdateList); -// } -// } -// -// // 增加策略记录 -// String describe = "用户" + RequestUtil.getUserNickname() + "进行了关联分析"; -// PqsRelevanceLog entityPqsRelevance = new PqsRelevanceLog(); -// entityPqsRelevance.setContentDes(describe); -// entityPqsRelevance.setState(DataStateEnum.ENABLE.getCode()); -// entityPqsRelevance.setTimeId(date); -// relevantLogMapper.insert(entityPqsRelevance); -// -// } else { -// throw new BusinessException("当前无变压器策略,请先配置策略"); -// } -// -// log.info("事件关联分析用时:" + timeInterval.interval() / 1000 + "秒"); -// } - - - - - - - @Override public Page querySagEventsPage(BaseParam baseParam) { List lineIds = generalDeviceInfoClient.deptGetRunLineEvent(RequestUtil.getDeptIndex()).getData(); @@ -473,7 +248,7 @@ public class EventRelevantAnalysisServiceImpl extends ServiceImpl advanceEventDetailVOList = BeanUtil.copyToList(rmpEventDetailPOList, AdvanceEventDetailVO.class); advanceEventDetailVOList = advanceEventDetailVOList.stream().peek(item -> { - item.setFeatureAmplitude(roundHalfUp(item.getFeatureAmplitude()*100)); + item.setFeatureAmplitude(roundHalfUp(item.getFeatureAmplitude() * 100)); if (map.containsKey(item.getLineId())) { AreaLineInfoVO areaLineInfoVO = map.get(item.getLineId()); @@ -493,6 +268,7 @@ public class EventRelevantAnalysisServiceImpl extends ServiceImpl queryEventsAssPage(BaseParam baseParam) { List timeV = PubUtils.checkLocalDate(baseParam.getSearchBeginTime(), baseParam.getSearchEndTime()); @@ -620,6 +397,7 @@ public class EventRelevantAnalysisServiceImpl extends ServiceImpl advanceEventDetailVOLsit = querySagEventsAll(startTime, endTime); - advanceEventDetailVOLsit = advanceEventDetailVOLsit.stream().filter(temp-> StringUtils.isNotEmpty(temp.getAdvanceType())).collect(Collectors.toList()); + advanceEventDetailVOLsit = advanceEventDetailVOLsit.stream().filter(temp -> StringUtils.isNotEmpty(temp.getAdvanceType())).collect(Collectors.toList()); for (AdvanceEventDetailVO advanceEventDetailVO : advanceEventDetailVOLsit) { // 获取监测点线路序号 //母线id String nodePhysics = advanceEventDetailVO.getVoltageId(); @@ -868,7 +646,7 @@ public class EventRelevantAnalysisServiceImpl extends ServiceImpl> getNodeBefore(){ + public Map> getNodeBefore() { Map entityMtranMap = new HashMap<>(32); HandleEvent handleEvent = new HandleEvent(); @@ -883,7 +661,7 @@ public class EventRelevantAnalysisServiceImpl extends ServiceImpl getNodeInfo( ) { + public Map getNodeInfo() { Map entityMtranMap = new HashMap<>(32); HandleEvent handleEvent = new HandleEvent(); @@ -893,7 +671,7 @@ public class EventRelevantAnalysisServiceImpl extends ServiceImpl> map = getLogicInfo(list); Map> setNodeSort = nodeSort(map); - redisUtil.saveByKeyWithExpire(redisSortKey,setNodeSort,-1L); + redisUtil.saveByKeyWithExpire(redisSortKey, setNodeSort, -1L); setNodeSort.forEach((key, val) -> { FinalData.NODE_NUM = val.size(); diff --git a/pqs-auth/src/main/resources/bootstrap-sjzx.yml b/pqs-auth/src/main/resources/bootstrap-sjzx.yml index 14e9e4e8e..47acb034b 100644 --- a/pqs-auth/src/main/resources/bootstrap-sjzx.yml +++ b/pqs-auth/src/main/resources/bootstrap-sjzx.yml @@ -71,6 +71,6 @@ cas: #白名单设置 # /oauth/lnLogin$|/pqs-auth/oauth/lnLogin|/oauth/lnRefreshToken$|/pqs-auth/oauth/lnRefreshToken sso: - whiteList: + whiteList: .*/oauth/lnLogin.*|.*/pqs-auth/oauth/lnLogin.*|.*/oauth/lnRefreshToken.*|.*/pqs-auth/oauth/lnRefreshToken.* diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/LineIntegrityDataController.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/LineIntegrityDataController.java index 4ea28800d..61e0468c3 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/LineIntegrityDataController.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/LineIntegrityDataController.java @@ -90,7 +90,7 @@ public class LineIntegrityDataController extends BaseController { String methodDescribe = getMethodDescribe("getIntegrityByLineIds"); if(CollUtil.isNotEmpty(lineIds)){ QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.select("sum(real_time) as realTime,sum(due_time) as dueTime,sum(real_time)/sum(due_time) as integrityData","line_index").in("line_index",lineIds).between("time_id",startTime,endTime).groupBy("line_index"); + queryWrapper.select("sum(real_time) as realTime,sum(due_time) as dueTime,avg(real_time/due_time) as integrityData","line_index").in("line_index",lineIds).between("time_id",startTime,endTime).groupBy("line_index"); List rStatIntegrityDList = irStatIntegrityDService.list(queryWrapper); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rStatIntegrityDList, methodDescribe); } diff --git a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/line/mapper/mapping/LineMapper.xml b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/line/mapper/mapping/LineMapper.xml index 165d5a17d..499306fe1 100644 --- a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/line/mapper/mapping/LineMapper.xml +++ b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/line/mapper/mapping/LineMapper.xml @@ -1505,8 +1505,8 @@