瀏覽代碼

重新选定故障范围并创建事件

raojiang 1 月之前
父節點
當前提交
a91136fa73

+ 22 - 0
api/load-transfer-mq-api/src/main/java/com/hdkj/lt/feign/IFaultCreateClient.java

@@ -0,0 +1,22 @@
+package com.hdkj.lt.feign;
+
+import com.hdkj.hussar.ApiResponse;
+import com.hdkj.lt.base.constants.SystemGlobalConstant;
+import com.hdkj.lt.modle.dto.fault.RegenerateFaultRequest;
+import com.hdkj.lt.modle.dto.plan.AcceptPlanPowerCutListRequest;
+import com.hdkj.lt.modle.dto.plan.PlanCreateSwitchDTO;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+
+/**
+ * @author rj
+ * @date 2025/9/1 16:16
+ * @description
+ */
+@FeignClient(value = SystemGlobalConstant.SERVICE_NAME_LOAD_TRANSFER_MQ)
+public interface IFaultCreateClient {
+
+    @PostMapping("/feign/regenerateFault")
+    ApiResponse<Boolean> regenerateFault(RegenerateFaultRequest planCreateSwitchDTO);
+
+}

+ 19 - 0
api/load-transfer-mq-api/src/main/java/com/hdkj/lt/modle/dto/fault/RegenerateFaultRequest.java

@@ -0,0 +1,19 @@
+package com.hdkj.lt.modle.dto.fault;
+
+import lombok.Data;
+
+/**
+ * @author rj
+ * @date 2026/7/7 16:02
+ * @description
+ */
+@Data
+public class RegenerateFaultRequest {
+    private String faultNo;
+    private String feederId;
+    private String startSwitch;
+    private String startSwitchName;
+    private String startSwitchType;
+    private String endSwitch;
+    private String endSwitchName;
+}

+ 12 - 1
services/load-transfer-bf/src/main/java/com/hdkj/lt/bf/controller/FhzgFaultPowerCutController.java

@@ -1,7 +1,7 @@
 package com.hdkj.lt.bf.controller;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.hdkj.lt.bf.aspect.RequiresCountryPermissions;
+import com.hdkj.lt.modle.dto.fault.RegenerateFaultRequest;
 import com.hdkj.lt.bf.entity.FhzgDistCustomer;
 import com.hdkj.lt.bf.entity.dto.FhzgDistCustomerCountDTO;
 import com.hdkj.lt.bf.entity.dto.HasDataTagDTO;
@@ -194,4 +194,15 @@ public class FhzgFaultPowerCutController extends BaseController {
         return ApiResponse.success();
     }
 
+
+    /**
+     * 重新选定故障范围,生成故障事件
+     */
+    @PostMapping("/regenerateFault")
+    @ApiOperation(value = "重新选定故障范围,生成故障事件")
+    public ApiResponse<String> regenerateFault(@RequestBody RegenerateFaultRequest request) {
+        faultPowerCutService.regenerateFault(request);
+        return ApiResponse.success();
+    }
+
 }

+ 2 - 0
services/load-transfer-bf/src/main/java/com/hdkj/lt/bf/service/IFaultPowerCutService.java

@@ -2,6 +2,7 @@ package com.hdkj.lt.bf.service;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.hdkj.lt.modle.dto.fault.RegenerateFaultRequest;
 import com.hdkj.lt.bf.entity.dto.HasDataTagDTO;
 import com.hdkj.lt.bf.entity.vo.FhzgFaultPowerCutVO;
 import com.hdkj.lt.core.bizms.modle.dto.FhzgFaultDistCustomerDTO;
@@ -41,4 +42,5 @@ public interface IFaultPowerCutService extends IService<FaultPowerCut> {
      */
     void deleteSection(Long faultId);
 
+    void regenerateFault(RegenerateFaultRequest request);
 }

+ 10 - 0
services/load-transfer-bf/src/main/java/com/hdkj/lt/bf/service/impl/FaultPowerCutServiceImpl.java

@@ -7,6 +7,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.hdkj.lt.feign.IFaultCreateClient;
+import com.hdkj.lt.modle.dto.fault.RegenerateFaultRequest;
 import com.hdkj.lt.base.exception.BusinessException;
 import com.hdkj.lt.bf.entity.dto.HasDataTagDTO;
 import com.hdkj.lt.bf.entity.vo.FhzgFaultPowerCutSectionVO;
@@ -70,6 +72,9 @@ public class FaultPowerCutServiceImpl extends ServiceImpl<FaultPowerCutMapper, F
     @Autowired
     private IFaultPowerCutSwitchService faultPowerCutSwitchService;
 
+    @Autowired
+    IFaultCreateClient faultCreateClient;
+
     @Override
     @UserCountyCodeAuto(sourceFiled = "countyCode",targetFiled = "countyCodeList")
     public Page<FhzgFaultPowerCutVO> getSchemeList(FaultPowerCut obj) {
@@ -276,4 +281,9 @@ public class FaultPowerCutServiceImpl extends ServiceImpl<FaultPowerCutMapper, F
         //删除开关
         faultPowerCutSwitchService.remove(new LambdaQueryWrapper<FaultPowerCutSwitch>().eq(FaultPowerCutSwitch::getFaultId, faultId));
     }
+
+    @Override
+    public void regenerateFault(RegenerateFaultRequest request) {
+        faultCreateClient.regenerateFault(request);
+    }
 }

+ 73 - 0
services/load-transfer-mq/src/main/java/com/hdkj/lt/mq/feign/FaultCreateClient.java

@@ -0,0 +1,73 @@
+package com.hdkj.lt.mq.feign;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.hdkj.hussar.ApiResponse;
+import com.hdkj.lt.core.bizms.modle.po.GridPdOutageEventBase;
+import com.hdkj.lt.feign.IFaultCreateClient;
+import com.hdkj.lt.modle.dto.fault.RegenerateFaultRequest;
+import com.hdkj.lt.mq.entity.dto.AcceptFaultPowerCutDTO;
+import com.hdkj.lt.mq.entity.dto.BreakerInfo;
+import com.hdkj.lt.mq.entity.dto.FeederInfo;
+import com.hdkj.lt.mq.service.base.GridPdOutageEventBaseService;
+import com.hdkj.lt.mq.service.fault.AcceptFaultPowerCutService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author rj
+ * @date 2025/9/1 16:39
+ * @description
+ */
+@RequiredArgsConstructor
+@Slf4j
+@RestController
+public class FaultCreateClient implements IFaultCreateClient {
+
+    private final AcceptFaultPowerCutService acceptFaultPowerCutService;
+    private final GridPdOutageEventBaseService gridPdOutageEventBaseService;
+
+
+    @Override
+    public ApiResponse<Boolean> regenerateFault(RegenerateFaultRequest request) {
+        //根据OutageNumber查询对应的停电事件
+        GridPdOutageEventBase event = gridPdOutageEventBaseService.getOne(new LambdaQueryWrapper<GridPdOutageEventBase>()
+                        .eq(GridPdOutageEventBase::getOutageNumber, request.getFaultNo())
+//                todo:暂时屏蔽停复电标识
+//                .eq(GridPdOutageEventBase::getOutageFlag, '0')
+        );
+        AcceptFaultPowerCutDTO acceptFaultPowerCutDTO = new AcceptFaultPowerCutDTO();
+        acceptFaultPowerCutDTO.setFaultNo(event.getId().toString());
+        acceptFaultPowerCutDTO.setSourceSystem("负荷转供");
+        acceptFaultPowerCutDTO.setFaultDesc(event.getOutageDesc());
+        acceptFaultPowerCutDTO.setFaultStatus(event.getId().toString());
+        acceptFaultPowerCutDTO.setStartTime(event.getBeginTime());
+        acceptFaultPowerCutDTO.setEndTime(event.getEndTime());
+        acceptFaultPowerCutDTO.setFaultType(Integer.parseInt(event.getOutageType()) - 1);
+        List<FeederInfo> feederInfos = getFeederInfos(event, request);
+        acceptFaultPowerCutDTO.setFeederList(feederInfos);
+        acceptFaultPowerCutService.acceptFaultPowerCut(acceptFaultPowerCutDTO);
+        return ApiResponse.success(true);
+    }
+
+    private static List<FeederInfo> getFeederInfos(GridPdOutageEventBase event, RegenerateFaultRequest request) {
+        List<FeederInfo> feederInfos = new ArrayList<>();
+        FeederInfo feederInfo = new FeederInfo();
+        feederInfo.setFeederPsrId(event.getRdtFeederId());
+        feederInfo.setFeederName(event.getRdtFeederName());
+        List<BreakerInfo> breakerInfos = new ArrayList<>();
+        BreakerInfo breakerInfo = new BreakerInfo();
+        breakerInfo.setBreakerPsrId(request.getStartSwitch());
+        breakerInfo.setBreakerName(request.getStartSwitchName());
+        breakerInfo.setBreakerPsrType(request.getStartSwitchType());
+        breakerInfos.add(breakerInfo);
+        feederInfo.setBreakerList(breakerInfos);
+        feederInfo.setFeederPsrId(event.getRdtFeederId());
+        feederInfos.add(feederInfo);
+        return feederInfos;
+    }
+}
+

+ 1 - 1
services/load-transfer-mq/src/main/java/com/hdkj/lt/mq/service/fault/impl/AcceptFaultPowerCutServiceImpl.java

@@ -75,7 +75,7 @@ public class AcceptFaultPowerCutServiceImpl implements AcceptFaultPowerCutServic
     public Boolean acceptFaultPowerCut(AcceptFaultPowerCutDTO acceptFaultPowerCutDTO) {
         //todo 必填字段校验
         List<FhzgFaultPowerCut> result = getFaultByFaultNo(acceptFaultPowerCutDTO.getFaultNo());
-        if (CollUtil.isNotEmpty(result)) {
+        if (CollUtil.isNotEmpty(result) && !"负荷转供".equals(acceptFaultPowerCutDTO.getSourceSystem())) {
             throw new BusinessException("已存在重复的faultNo:" + acceptFaultPowerCutDTO.getFaultNo());
         }
         FhzgFaultPowerCut fhzgFaultPowerCut = new FhzgFaultPowerCut();