Browse Source

低电压越限问题修复

liruikang 5 tháng trước cách đây
mục cha
commit
98063a1e92

+ 6 - 6
services/load-transfer-bf/src/main/java/com/hdkj/lt/bf/service/voltageLimitViolation/impl/FhzgVoltageLimitViolationTransferSchemeDetailServiceImpl.java

@@ -48,12 +48,12 @@ public class FhzgVoltageLimitViolationTransferSchemeDetailServiceImpl extends Se
         LambdaQueryWrapper<FhzgVoltageLimitViolationTransferSchemeDetail> lambdaQueryWrapper = new LambdaQueryWrapper<>();
         lambdaQueryWrapper.eq(FhzgVoltageLimitViolationTransferSchemeDetail::getSchemeId, dto.getSchemeId());
         List<FhzgVoltageLimitViolationTransferSchemeDetail> detailList = detailMapper.selectList(lambdaQueryWrapper);
-        Long limitId = detailList.get(0).getLimitId();
-        LambdaQueryWrapper<FhzgVoltageLimitViolationTransferSchemeDetail> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(FhzgVoltageLimitViolationTransferSchemeDetail::getSchemeId, null)
-                .eq(FhzgVoltageLimitViolationTransferSchemeDetail::getLimitId, limitId);
-        List<FhzgVoltageLimitViolationTransferSchemeDetail> detailListBefore = detailMapper.selectList(lambdaQueryWrapper);
-        detailList.addAll(detailListBefore);
+        // Long limitId = detailList.get(0).getLimitId();
+//        LambdaQueryWrapper<FhzgVoltageLimitViolationTransferSchemeDetail> queryWrapper = new LambdaQueryWrapper<>();
+//        queryWrapper.eq(FhzgVoltageLimitViolationTransferSchemeDetail::getSchemeId, null)
+//                .eq(FhzgVoltageLimitViolationTransferSchemeDetail::getLimitId, limitId);
+//        List<FhzgVoltageLimitViolationTransferSchemeDetail> detailListBefore = detailMapper.selectList(lambdaQueryWrapper);
+//        detailList.addAll(detailListBefore);
         List<FhzgVoltageLimitViolationTransferSchemeDetail> result = new ArrayList<>();
         detailList.forEach(e -> {
             if (dto.getType() == 0 && e.getLineTag() == 0) {

+ 29 - 4
services/load-transfer-mq/src/main/java/com/hdkj/lt/mq/service/voltageLimitViolation/impl/FhzgVoltageLimitViolationPowerCutServiceImpl.java

@@ -133,13 +133,29 @@ public class FhzgVoltageLimitViolationPowerCutServiceImpl extends ServiceImpl<Fh
 //                            .collect(Collectors.toMap(FeederCheckRuleDTO::getFeederId, a -> a,
 //                                    (existing, replacement) -> existing));
                     //转供前线路电压越限对比情况保存
-                    dealWithAreaVoltViolationList(data.getAreaVoltViolationList(), 0, data.getFeederId(), null, limitId, data.getFeederInfo());
                     Map<Long, XferPlanDTO> planMap = new HashMap<>();
                     Map<Long, LoopCheckRuleDTO> checkRuleDTOMap = new HashMap<>();
                     //处理方案中数据
                     if (data.getXferPlanList() != null && !data.getXferPlanList().isEmpty()) {
                         data.getXferPlanList().forEach(p -> {
+                            //确定本侧对侧线路
+                            String feederId = data.getFeederId();
+                            String oppFeederId = null;
+                            for (AreaVoltViolationDTO areaVoltViolationDTO : p.getAreaVoltViolationList()) {
+                                if (!areaVoltViolationDTO.getFeederId().equals(feederId)) {
+                                    oppFeederId = areaVoltViolationDTO.getFeederId();
+                                }
+                            }
+                            //转供前数据仅保存本侧与对侧
+                            List<AreaVoltViolationDTO> list = new ArrayList<>();
+                            for (AreaVoltViolationDTO areaVoltViolationDTO : data.getAreaVoltViolationList()) {
+                                if (areaVoltViolationDTO.getFeederId().equals(feederId) || areaVoltViolationDTO.getFeederId().equals(oppFeederId)) {
+                                    list.add(areaVoltViolationDTO);
+                                }
+                            }
                             Long schemeId = IdUtil.getSnowflakeNextId();
+                            //保存转供前数据
+                            dealWithAreaVoltViolationList(list, 0, data.getFeederId(), schemeId, limitId, data.getFeederInfo());
                             FhzgInfoLimitTransferScheme transferScheme = new FhzgInfoLimitTransferScheme();
                             transferScheme.setId(schemeId).setLimitId(limitId).setSchemeNo(p.getId())
                                     .setSchemeState("0").setCheckState(1).setSchemeJson(JSON.toJSONString(p));
@@ -147,7 +163,16 @@ public class FhzgVoltageLimitViolationPowerCutServiceImpl extends ServiceImpl<Fh
                             schemeMapper.insert(transferScheme);
                             planMap.put(schemeId, p);
                             //处理转供后对比数据
-                            dealWithAreaVoltViolationList(p.getAreaVoltViolationList(), 2, data.getFeederId(), schemeId, limitId, data.getFeederInfo());
+                            List<FeederInfoDTO> infoDTOS = new ArrayList<>();
+                            FeederInfoDTO feederInfoDTO = new FeederInfoDTO();
+                            feederInfoDTO.setFeederId(oppFeederId);
+                            p.getXferSupplyAreaList().forEach(s -> {
+                                infoDTOS.add(s.getFeederInfo());
+                                feederInfoDTO.setMaxCurrentLoad(s.getLinkLineInfo().getPlanMaxCurrentLoad());
+                                infoDTOS.add(feederInfoDTO);
+
+                            });
+                            dealWithAreaVoltViolationList(p.getAreaVoltViolationList(), 2, data.getFeederId(), schemeId, limitId, infoDTOS);
                             //保存方案中转供路径细明数据
                             List<FhzgLimitTransferSchemePathDetail> dataList = new ArrayList<>();
                             dealPlanTransferSchemePathDetail(dataList, p.getXferSupplyAreaList(), schemeId, data.getFeederId(), null, p.getTransferCapacity());
@@ -260,9 +285,9 @@ public class FhzgVoltageLimitViolationPowerCutServiceImpl extends ServiceImpl<Fh
             //本侧对侧
             int tag;
             if (feederId.equals(e.getFeederId())) {
-                tag = 1;
-            } else {
                 tag = 0;
+            } else {
+                tag = 1;
             }
             FhzgVoltageLimitViolationTransferSchemeDetail schemeDetail = new FhzgVoltageLimitViolationTransferSchemeDetail();
             schemeDetail.setId(IdUtil.getSnowflakeNextId())