diff --git a/pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/listener/business/BpmSurveyPlanStatusListener.java b/pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/listener/business/BpmSurveyPlanStatusListener.java new file mode 100644 index 000000000..95db9e1c8 --- /dev/null +++ b/pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/listener/business/BpmSurveyPlanStatusListener.java @@ -0,0 +1,28 @@ +package com.njcn.bpm.listener.business; + +import com.njcn.bpm.listener.BpmProcessInstanceStatusEvent; +import com.njcn.bpm.listener.BpmProcessInstanceStatusEventListener; +import com.njcn.supervision.api.DeVReportManageFeignClient; +import com.njcn.supervision.api.SurveyPlanFeignClient; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + + +@Component +public class BpmSurveyPlanStatusListener extends BpmProcessInstanceStatusEventListener { + + @Resource + private SurveyPlanFeignClient surveyPlanFeignClient; + + @Override + protected String getProcessDefinitionKey() { + return "survey_plan"; + } + + @Override + protected void onEvent(BpmProcessInstanceStatusEvent event) { + surveyPlanFeignClient.updateStatus(event.getBusinessKey(), event.getStatus()); + } + +} diff --git a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/api/SurveyPlanFeignClient.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/api/SurveyPlanFeignClient.java new file mode 100644 index 000000000..54703180a --- /dev/null +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/api/SurveyPlanFeignClient.java @@ -0,0 +1,22 @@ +package com.njcn.supervision.api; + +import com.njcn.common.pojo.constant.ServerInfo; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.supervision.api.fallback.SurveyPlanFeignClientFallbackFactory; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + + +/** + * 流程实例 Api 接口 + * + * @author 芋道源码 + */ +@FeignClient(value = ServerInfo.SUPERVISION, path = "/surveyPlan", fallbackFactory = SurveyPlanFeignClientFallbackFactory.class) +public interface SurveyPlanFeignClient { + + @GetMapping("/updateSurveyPlanStatus") + HttpResult updateStatus(@RequestParam("businessKey") String businessKey, @RequestParam("status")Integer status); + +} diff --git a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/api/fallback/SurveyPlanFeignClientFallbackFactory.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/api/fallback/SurveyPlanFeignClientFallbackFactory.java new file mode 100644 index 000000000..d2002ac23 --- /dev/null +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/api/fallback/SurveyPlanFeignClientFallbackFactory.java @@ -0,0 +1,37 @@ +package com.njcn.supervision.api.fallback; + +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.supervision.api.SurveyPlanFeignClient; +import com.njcn.supervision.utils.SupervisionEnumUtil; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * @author denghuajun + * @version 1.0.0 + * @date 2022/3/16 + */ +@Slf4j +@Component +public class SurveyPlanFeignClientFallbackFactory implements FallbackFactory { + @Override + public SurveyPlanFeignClient create(Throwable throwable) { + //判断抛出异常是否为解码器抛出的业务异常 + Enum exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK; + if (throwable.getCause() instanceof BusinessException) { + BusinessException businessException = (BusinessException) throwable.getCause(); + exceptionEnum = SupervisionEnumUtil.getExceptionEnum(businessException.getResult()); + } + Enum finalExceptionEnum = exceptionEnum; + return new SurveyPlanFeignClient() { + @Override + public HttpResult updateStatus(String businessKey, Integer status) { + log.error("{}异常,降级处理,异常为:{}", "更新普测计划流程状态", throwable.toString()); + throw new BusinessException(finalExceptionEnum); + } + }; + } +} diff --git a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/enums/SupervisionResponseEnum.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/enums/SupervisionResponseEnum.java index 86df260fe..53368ea8a 100644 --- a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/enums/SupervisionResponseEnum.java +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/enums/SupervisionResponseEnum.java @@ -17,6 +17,7 @@ public enum SupervisionResponseEnum { */ SUPERVISION_COMMON_ERROR("A00550","监督管理模块异常"), IMPORT_SENSITIVE_USER_ERROR("A00550","导入敏感及重要用户失败"), + DATA_NOT_EXISTS("A00550","数据不存在"), NO_POWER("A00550","不能操作非自己创建的任务!") ; diff --git a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/po/survey/SurveyTest.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/po/survey/SurveyTest.java index a61e68724..9defbad7a 100644 --- a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/po/survey/SurveyTest.java +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/po/survey/SurveyTest.java @@ -39,6 +39,18 @@ public class SurveyTest extends BaseEntity implements Serializable { */ private String deptId; + + /** + * 0 关联系统内变电站;1 用户手动输入变电站 + */ + private Integer customSubstationFlag; + + /** + * 变电站台账ID或者用户手动输入的变电站名称 + */ + private String substation; + + /** * 计划完成时间 */ diff --git a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/survey/SurveyPlanVO.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/survey/SurveyPlanVO.java index 1924f279b..a375bfa50 100644 --- a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/survey/SurveyPlanVO.java +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/survey/SurveyPlanVO.java @@ -5,6 +5,7 @@ import lombok.Data; import java.io.Serializable; import java.time.LocalDate; +import java.util.List; /** *

@@ -84,5 +85,10 @@ public class SurveyPlanVO extends BaseEntity implements Serializable { */ private Integer state; + /** + * 变电站详情 + */ + private List surveySubstationList; + } diff --git a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/survey/SurveySubstation.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/survey/SurveySubstation.java new file mode 100644 index 000000000..30d7424a6 --- /dev/null +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/survey/SurveySubstation.java @@ -0,0 +1,28 @@ +package com.njcn.supervision.pojo.vo.survey; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class SurveySubstation implements Serializable { + + /** + * 变电站名 + */ + private String substationName; + + /** + * 电压等级 + */ + private String voltageLevel; + + /** + * 数据来源 + * 0:系统内 + * 1:用户自定义 + */ + private Integer dataSource = 0; + + +} diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/controller/survey/SurveyPlanController.java b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/controller/survey/SurveyPlanController.java index 3fadf7fd0..755987714 100644 --- a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/controller/survey/SurveyPlanController.java +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/controller/survey/SurveyPlanController.java @@ -10,6 +10,7 @@ import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.utils.HttpResultUtil; import com.njcn.supervision.pojo.param.survey.SurveyPlanParam; +import com.njcn.supervision.pojo.vo.device.QuitRunningDeviceVO; import com.njcn.supervision.pojo.vo.survey.SurveyPlanVO; import com.njcn.supervision.service.survey.ISurveyPlanService; import io.swagger.annotations.Api; @@ -89,7 +90,14 @@ public class SurveyPlanController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); } - + @GetMapping("/getById") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @Operation(summary = "根据id获取普测计划的详细数据") + public HttpResult getById(String id) { + String methodDescribe = getMethodDescribe("getById"); + SurveyPlanVO surveyPlanVO = surveyPlanService.getVOById(id); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, surveyPlanVO, methodDescribe); + } } diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/survey/ISurveyPlanService.java b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/survey/ISurveyPlanService.java index dd511a410..bf6827d90 100644 --- a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/survey/ISurveyPlanService.java +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/survey/ISurveyPlanService.java @@ -26,4 +26,6 @@ public interface ISurveyPlanService extends IService { String cancelSurveyPlan(BpmProcessInstanceCancelParam cancelReqVO); void updateSurveyPlanStatus(String businessKey, Integer status); + + SurveyPlanVO getVOById(String id); } diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/survey/impl/SurveyPlanServiceImpl.java b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/survey/impl/SurveyPlanServiceImpl.java index 36ab84b1e..b3506f78c 100644 --- a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/survey/impl/SurveyPlanServiceImpl.java +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/survey/impl/SurveyPlanServiceImpl.java @@ -13,12 +13,19 @@ import com.njcn.bpm.enums.BpmTaskStatusEnum; import com.njcn.bpm.pojo.dto.BpmProcessInstanceCreateReqDTO; import com.njcn.bpm.pojo.param.instance.BpmProcessInstanceCancelParam; import com.njcn.common.pojo.enums.common.DataStateEnum; +import com.njcn.common.pojo.exception.BusinessException; import com.njcn.device.pq.api.LineFeignClient; +import com.njcn.device.pq.pojo.dto.PollutionSubstationDTO; +import com.njcn.supervision.enums.FlowStatusEnum; +import com.njcn.supervision.enums.SupervisionResponseEnum; import com.njcn.supervision.mapper.survey.SurveyPlanMapper; import com.njcn.supervision.pojo.param.survey.SurveyPlanParam; import com.njcn.supervision.pojo.po.survey.SurveyPlan; +import com.njcn.supervision.pojo.po.survey.SurveyTest; import com.njcn.supervision.pojo.vo.survey.SurveyPlanVO; +import com.njcn.supervision.pojo.vo.survey.SurveySubstation; import com.njcn.supervision.service.survey.ISurveyPlanService; +import com.njcn.supervision.service.survey.ISurveyTestService; import com.njcn.supervision.utils.InstanceUtil; import com.njcn.user.api.DeptFeignClient; import com.njcn.user.api.UserFeignClient; @@ -29,10 +36,7 @@ import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; /** *

@@ -54,6 +58,8 @@ public class SurveyPlanServiceImpl extends ServiceImpl surveySubstationList = new ArrayList<>(); + if (surveyPlanVO.getCustomSubstationFlag() == 0) { + //系统内变电站信息 + String substation = surveyPlanVO.getSubstation(); + String[] subIds = substation.split(StrPool.COMMA); + for (String subId : subIds) { + PollutionSubstationDTO data = lineFeignClient.getSubstationInfo(subId).getData(); + SurveySubstation surveySubstation = new SurveySubstation(); + surveySubstation.setDataSource(0); + surveySubstation.setSubstationName(data.getName()); + surveySubstation.setVoltageLevel(data.getVoltageLevel()); + surveySubstationList.add(surveySubstation); + } + } else { + SurveySubstation surveySubstation = new SurveySubstation(); + surveySubstation.setDataSource(1); + surveySubstation.setSubstationName(surveyPlanVO.getSubstation()); + surveySubstation.setVoltageLevel(StrPool.SLASH); + surveySubstationList.add(surveySubstation); + } + surveyPlanVO.setSurveySubstationList(surveySubstationList); + return surveyPlanVO; } }