diff --git a/pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/listener/business/BpmDevReportStatusListener.java b/pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/listener/business/BpmDevReportStatusListener.java new file mode 100644 index 000000000..c789c4425 --- /dev/null +++ b/pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/listener/business/BpmDevReportStatusListener.java @@ -0,0 +1,27 @@ +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 org.springframework.stereotype.Component; + +import javax.annotation.Resource; + + +@Component +public class BpmDevReportStatusListener extends BpmProcessInstanceStatusEventListener { + + @Resource + private DeVReportManageFeignClient deVReportManageFeignClient; + + @Override + protected String getProcessDefinitionKey() { + return "device_info_add"; + } + + @Override + protected void onEvent(BpmProcessInstanceStatusEvent event) { + deVReportManageFeignClient.updateStatus(event.getBusinessKey(), event.getStatus()); + } + +} diff --git a/pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/listener/business/BpmTempLineStatusListener.java b/pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/listener/business/BpmTempLineStatusListener.java new file mode 100644 index 000000000..f913516af --- /dev/null +++ b/pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/listener/business/BpmTempLineStatusListener.java @@ -0,0 +1,27 @@ +package com.njcn.bpm.listener.business; + +import com.njcn.bpm.listener.BpmProcessInstanceStatusEvent; +import com.njcn.bpm.listener.BpmProcessInstanceStatusEventListener; +import com.njcn.supervision.api.TempLineFeignClient; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + + +@Component +public class BpmTempLineStatusListener extends BpmProcessInstanceStatusEventListener { + + @Resource + private TempLineFeignClient tempLineFeignClient; + + @Override + protected String getProcessDefinitionKey() { + return "temp_line_info_add"; + } + + @Override + protected void onEvent(BpmProcessInstanceStatusEvent event) { + tempLineFeignClient.updateStatus(event.getBusinessKey(), event.getStatus()); + } + +} diff --git a/pqs-common/common-swagger/src/main/java/com/njcn/swagger/config/Knife4jSwaggerConfig.java b/pqs-common/common-swagger/src/main/java/com/njcn/swagger/config/Knife4jSwaggerConfig.java index 0d64d083c..1ff31cdd6 100644 --- a/pqs-common/common-swagger/src/main/java/com/njcn/swagger/config/Knife4jSwaggerConfig.java +++ b/pqs-common/common-swagger/src/main/java/com/njcn/swagger/config/Knife4jSwaggerConfig.java @@ -77,7 +77,8 @@ public class Knife4jSwaggerConfig { "com.njcn.zlevent.controller", "com.njcn.cloud.controller", "com.njcn.zlevent.controller", - "com.njcn.prepare" + "com.njcn.prepare", + "com.njcn.supervision.controller" ) .collect(Collectors.toList()); List grantTypes = new ArrayList<>(); diff --git a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/api/DeVReportManageFeignClient.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/api/DeVReportManageFeignClient.java new file mode 100644 index 000000000..6096522a9 --- /dev/null +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/api/DeVReportManageFeignClient.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.DeVReportManageFeignClientFallbackFactory; +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 = "/deVReport", fallbackFactory = DeVReportManageFeignClientFallbackFactory.class) +public interface DeVReportManageFeignClient { + + @GetMapping("/updateStatus") + HttpResult updateStatus(@RequestParam("businessKey") String businessKey, @RequestParam("status")Integer status); + +} diff --git a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/api/TempLineFeignClient.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/api/TempLineFeignClient.java new file mode 100644 index 000000000..14105d8ae --- /dev/null +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/api/TempLineFeignClient.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.TempLineFeignClientFallbackFactory; +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 = "/tempLine", fallbackFactory = TempLineFeignClientFallbackFactory.class) +public interface TempLineFeignClient { + + @GetMapping("/updateStatus") + 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/DeVReportManageFeignClientFallbackFactory.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/api/fallback/DeVReportManageFeignClientFallbackFactory.java new file mode 100644 index 000000000..6107b5072 --- /dev/null +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/api/fallback/DeVReportManageFeignClientFallbackFactory.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.DeVReportManageFeignClient; +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 DeVReportManageFeignClientFallbackFactory implements FallbackFactory { + @Override + public DeVReportManageFeignClient 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 DeVReportManageFeignClient() { + @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/api/fallback/TempLineFeignClientFallbackFactory.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/api/fallback/TempLineFeignClientFallbackFactory.java new file mode 100644 index 000000000..3f167771d --- /dev/null +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/api/fallback/TempLineFeignClientFallbackFactory.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.TempLineFeignClient; +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 TempLineFeignClientFallbackFactory implements FallbackFactory { + @Override + public TempLineFeignClient 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 TempLineFeignClient() { + @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/pojo/param/device/SupervisionDevMainReportParam.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/param/device/SupervisionDevMainReportParam.java index fae3ba994..99de74879 100644 --- a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/param/device/SupervisionDevMainReportParam.java +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/param/device/SupervisionDevMainReportParam.java @@ -149,7 +149,7 @@ public class SupervisionDevMainReportParam { private SupervisionTempDeviceReportParam supervisionTempDeviceReportParam; - private SupervisionTempLineReportParam supervisionTempLineReportParam; +// private SupervisionTempLineReportParam supervisionTempLineReportParam; @Data @EqualsAndHashCode(callSuper = true) diff --git a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/param/device/SupervisionTempDeviceReportParam.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/param/device/SupervisionTempDeviceReportParam.java index a8ba48aa8..649acc1d0 100644 --- a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/param/device/SupervisionTempDeviceReportParam.java +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/param/device/SupervisionTempDeviceReportParam.java @@ -1,5 +1,6 @@ package com.njcn.supervision.pojo.param.device; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; @@ -113,12 +114,14 @@ public class SupervisionTempDeviceReportParam { * 本次终端检测时间 */ @ApiModelProperty(value="本次终端检测时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private LocalDateTime currentTerminalDetectionTime; /** * 下次终端定检时间 */ @ApiModelProperty(value="下次终端定检时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private LocalDateTime nextTerminalInspectionTime; /** @@ -173,12 +176,14 @@ public class SupervisionTempDeviceReportParam { * 投运时间 */ @ApiModelProperty(value="投运时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private LocalDateTime commissioningTime; /** * 数据更新时间 */ @ApiModelProperty(value="数据更新时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private LocalDateTime dataUpdateTime; /** diff --git a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/param/device/SupervisionTempLineReportParam.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/param/device/SupervisionTempLineReportParam.java index 71c2053e6..5c43575a0 100644 --- a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/param/device/SupervisionTempLineReportParam.java +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/param/device/SupervisionTempLineReportParam.java @@ -1,11 +1,17 @@ package com.njcn.supervision.pojo.param.device; +import com.njcn.web.pojo.param.BaseParam; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Data; +import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; +import java.time.LocalDate; +import java.util.List; +import java.util.Map; + /** * * Description: @@ -20,6 +26,64 @@ import lombok.NoArgsConstructor; @NoArgsConstructor public class SupervisionTempLineReportParam { + @ApiModelProperty(value = "填报部门") + private String orgId; + /** + * 填报日期 + */ + @ApiModelProperty(value="填报日期") + private LocalDate reportDate; + + /** + * 填报人 + */ + @ApiModelProperty(value="填报人") + private String reporter; + + /** + * 所属地市 + */ + @ApiModelProperty(value="所属地市") + private String city; + + /** + * 工程预期投产日期 + */ + @ApiModelProperty(value="工程预期投产日期") + private LocalDate expectedProductionDate; + + /** + * 用户状态 + */ + @ApiModelProperty(value="用户状态") + private String userStatus; + + /** + * 关联干扰源用户id + */ + @ApiModelProperty(value="关联干扰源用户id") + private String userId; + + /** + * 关联干扰源用户id名称 + */ + @ApiModelProperty(value="关联干扰源用户id名称") + private String userName; + + + /** + * 监测终端编码 + */ + @ApiModelProperty(value="监测终端编码") + private String monitoringTerminalCode; + + /** + * 监测终端名称 + */ + @ApiModelProperty(value="监测终端名称") + private String monitoringTerminalName; + + /** * 监测点名称 */ @@ -108,7 +172,7 @@ public class SupervisionTempLineReportParam { * 是否参与统计 */ @ApiModelProperty(value="是否参与统计") - private Boolean isStatistical; + private String isStatistical; /** * 监测点对象名称 @@ -126,7 +190,7 @@ public class SupervisionTempLineReportParam { * 是否并网点 */ @ApiModelProperty(value="是否并网点") - private Boolean isGridConnectionPoint; + private String isGridConnectionPoint; /** * 监测点运行状态 @@ -151,4 +215,29 @@ public class SupervisionTempLineReportParam { */ @ApiModelProperty(value="电压偏差下限") private Float voltageDeviationLowerLimit; + + + @ApiModelProperty("发起人自选审批人 Map") + private Map> startUserSelectAssignees; + + @Data + @EqualsAndHashCode(callSuper = true) + public static class SupervisionTempLineReportUpdate extends SupervisionTempLineReportParam { + + @ApiModelProperty("id") + private String Id; + + } + + /** + * 分页查询实体 + */ + @Data + @EqualsAndHashCode(callSuper = true) + public static class SupervisionTempLineReportQuery extends BaseParam { + + @ApiModelProperty(value = "填报部门") + private String orgId; + + } } \ No newline at end of file diff --git a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/po/device/SupervisionDevMainReportPO.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/po/device/SupervisionDevMainReportPO.java index 4cc447733..128ce4827 100644 --- a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/po/device/SupervisionDevMainReportPO.java +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/po/device/SupervisionDevMainReportPO.java @@ -26,7 +26,7 @@ public class SupervisionDevMainReportPO extends BaseEntity { /** * id */ - @TableId(value = "id", type = IdType.INPUT) + @TableId(value = "id", type = IdType.ASSIGN_UUID) private String id; /** diff --git a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/po/device/SupervisionTempLineReport.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/po/device/SupervisionTempLineReport.java index 4be248416..bd744efde 100644 --- a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/po/device/SupervisionTempLineReport.java +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/po/device/SupervisionTempLineReport.java @@ -3,11 +3,13 @@ package com.njcn.supervision.pojo.po.device; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.annotations.ApiModel; +import com.njcn.db.bo.BaseEntity; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import java.time.LocalDate; + /** * * Description: @@ -16,15 +18,60 @@ import lombok.NoArgsConstructor; * @author clam * @version V1.0.0 */ -@ApiModel(description="") @Data @AllArgsConstructor @NoArgsConstructor @TableName(value = "supervision_temp_line_report") -public class SupervisionTempLineReport { +public class SupervisionTempLineReport extends BaseEntity { @TableId(value = "id") private String id; + @TableField(value = "org_id") + private String orgId; + + /** + * 填报日期 + */ + @TableField(value = "report_date") + private LocalDate reportDate; + + /** + * 填报人 + */ + @TableField(value = "reporter") + private String reporter; + + /** + * 所属地市 + */ + @TableField(value = "city") + private String city; + + /** + * 工程预期投产日期 + */ + @TableField(value = "expected_production_date") + private LocalDate expectedProductionDate; + + /** + * 用户状态 + */ + @TableField(value = "user_status") + private String userStatus; + + /** + * 关联干扰源用户id + */ + @TableField(value = "user_id") + private String userId; + + /** + * 关联干扰源用户id名称 + */ + @TableField(value = "user_name") + private String userName; + + /** * 监测点名称 */ @@ -84,7 +131,17 @@ public class SupervisionTempLineReport { */ @TableField(value = "line_id") private String lineId; + /** + * 监测终端编码 + */ + @TableField(value = "monitoring_terminal_code") + private String monitoringTerminalCode; + /** + * 监测终端名称 + */ + @TableField(value = "monitoring_terminal_name") + private String monitoringTerminalName; /** * 测量间隔 */ @@ -113,7 +170,7 @@ public class SupervisionTempLineReport { * 是否参与统计 */ @TableField(value = "is_statistical") - private Boolean isStatistical; + private String isStatistical; /** * 监测点对象名称 @@ -131,7 +188,7 @@ public class SupervisionTempLineReport { * 是否并网点 */ @TableField(value = "is_grid_connection_point") - private Boolean isGridConnectionPoint; + private String isGridConnectionPoint; /** * 监测点运行状态 @@ -156,4 +213,22 @@ public class SupervisionTempLineReport { */ @TableField(value = "voltage_deviation_lower_limit") private Float voltageDeviationLowerLimit; + + /** + * 流程实例的编号 + */ + @TableField(value = "process_instance_id") + private String processInstanceId; + + /** + * 1:审批中;2:审批通过;3:审批不通过;4:已取消 + */ + @TableField(value = "`status`") + private Integer status; + + /** + * 状态:0-删除 1-正常 + */ + @TableField(value = "`State`") + private Integer state; } \ No newline at end of file diff --git a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/device/SupervisionDevMainReportVO.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/device/SupervisionDevMainReportVO.java index be8fdca55..c8fd4618e 100644 --- a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/device/SupervisionDevMainReportVO.java +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/device/SupervisionDevMainReportVO.java @@ -1,7 +1,6 @@ package com.njcn.supervision.pojo.vo.device; import com.njcn.supervision.pojo.po.device.SupervisionTempDeviceReport; -import com.njcn.supervision.pojo.po.device.SupervisionTempLineReport; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Data; @@ -147,13 +146,18 @@ public class SupervisionDevMainReportVO { @ApiModelProperty(value = "流程实例的编号") private String processInstanceId; + /** + * 1:审批中;2:审批通过;3:审批不通过;4:已取消 + */ + @ApiModelProperty(value = "审批状态") + private Integer status; + @ApiModelProperty("发起人自选审批人 Map") private Map> startUserSelectAssignees; private SupervisionTempDeviceReport supervisionTempDeviceReport; - private SupervisionTempLineReport supervisionTempLineReport; } \ No newline at end of file diff --git a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/device/SupervisionTempLineReportVO.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/device/SupervisionTempLineReportVO.java new file mode 100644 index 000000000..877005dcc --- /dev/null +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/device/SupervisionTempLineReportVO.java @@ -0,0 +1,225 @@ +package com.njcn.supervision.pojo.vo.device; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDate; + +/** + * + * Description: + * Date: 2024/5/11 14:07【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@ApiModel(description="临时监测点信息") +@Data +@AllArgsConstructor +@NoArgsConstructor +public class SupervisionTempLineReportVO { + private String id; + + /** + * 填报日期 + */ + @ApiModelProperty(value="填报日期") + private LocalDate reportDate; + + /** + * 填报人 + */ + @ApiModelProperty(value="填报人") + private String reporter; + + + @ApiModelProperty(value = "填报部门") + private String orgId; + + @ApiModelProperty(value = "填报部门名称") + private String orgName; + + /** + * 所属地市 + */ + @ApiModelProperty(value="所属地市") + private String city; + + /** + * 工程预期投产日期 + */ + @ApiModelProperty(value="工程预期投产日期") + private LocalDate expectedProductionDate; + + /** + * 用户状态 + */ + @ApiModelProperty(value="用户状态") + private String userStatus; + /** + * 监测终端编码 + */ + @ApiModelProperty(value="监测终端编码") + private String monitoringTerminalCode; + + /** + * 监测终端名称 + */ + @ApiModelProperty(value="监测终端名称") + private String monitoringTerminalName; + /** + * 关联干扰源用户id + */ + @ApiModelProperty(value="关联干扰源用户id") + private String userId; + + /** + * 关联干扰源用户id名称 + */ + @ApiModelProperty(value="关联干扰源用户id名称") + private String userName; + + + /** + * 监测点名称 + */ + @ApiModelProperty(value="监测点名称") + private String lineName; + + /** + * 监测点电压等级 + */ + @ApiModelProperty(value="监测点电压等级") + private String voltageLevel; + + /** + * 接入母线 + */ + @ApiModelProperty(value="接入母线") + private String connectedBus; + + /** + * 短路容量 + */ + @ApiModelProperty(value="短路容量") + private Float shortCapacity; + + /** + * 协议容量 + */ + @ApiModelProperty(value="协议容量") + private Float dealCapacity; + + /** + * 设备容量 + */ + @ApiModelProperty(value="设备容量") + private Float devCapacity; + + /** + * 基准容量 + */ + @ApiModelProperty(value="基准容量") + private Float standardCapacity; + + /** + * CT变比 + */ + @ApiModelProperty(value="CT变比") + private Float ctRatio; + + /** + * PT变比 + */ + @ApiModelProperty(value="PT变比") + private Float ptRatio; + + /** + * 监测点编号 + */ + @ApiModelProperty(value="监测点编号") + private String lineId; + + /** + * 测量间隔 + */ + @ApiModelProperty(value="测量间隔") + private Integer timeInterval; + + /** + * 干扰源类型 + */ + @ApiModelProperty(value="干扰源类型") + private String loadType; + + /** + * 干扰源类别 + */ + @ApiModelProperty(value="干扰源类别") + private String businessType; + + /** + * 监测点性质 + */ + @ApiModelProperty(value="监测点性质") + private String pointNature; + + /** + * 是否参与统计 + */ + @ApiModelProperty(value="是否参与统计") + private Boolean isStatistical; + + /** + * 监测点对象名称 + */ + @ApiModelProperty(value="监测点对象名称") + private String objName; + + /** + * 电网侧变电站 + */ + @ApiModelProperty(value="电网侧变电站") + private String powerSubstationName; + + /** + * 是否并网点 + */ + @ApiModelProperty(value="是否并网点") + private Boolean isGridConnectionPoint; + + /** + * 监测点运行状态 + */ + @ApiModelProperty(value="监测点运行状态") + private String operationStatus; + + /** + * 主接线图 + */ + @ApiModelProperty(value="主接线图") + private String mainWiringDiagram; + + /** + * 电压偏差上限 + */ + @ApiModelProperty(value="电压偏差上限") + private Float voltageDeviationUpperLimit; + + /** + * 电压偏差下限 + */ + @ApiModelProperty(value="电压偏差下限") + private Float voltageDeviationLowerLimit; + + /** + * 1:审批中;2:审批通过;3:审批不通过;4:已取消 + */ + @ApiModelProperty(value = "审批状态") + private Integer status; + + +} \ No newline at end of file diff --git a/pqs-supervision/supervision-boot/pom.xml b/pqs-supervision/supervision-boot/pom.xml index 2ba872d4b..7dc1f32bc 100644 --- a/pqs-supervision/supervision-boot/pom.xml +++ b/pqs-supervision/supervision-boot/pom.xml @@ -41,6 +41,11 @@ pq-device-api ${project.version} + + com.njcn + common-swagger + ${project.version} + com.njcn diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/controller/device/DeVReportManageController.java b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/controller/device/DeVReportManageController.java index 44cee197e..374d599fb 100644 --- a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/controller/device/DeVReportManageController.java +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/controller/device/DeVReportManageController.java @@ -1,6 +1,7 @@ package com.njcn.supervision.controller.device; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.njcn.bpm.pojo.param.instance.BpmProcessInstanceCancelParam; import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.constant.OperateType; import com.njcn.common.pojo.enums.common.LogEnum; @@ -8,12 +9,14 @@ 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.device.SupervisionDevMainReportParam; +import com.njcn.supervision.pojo.po.device.SupervisionTempDeviceReport; import com.njcn.supervision.pojo.vo.device.SupervisionDevMainReportVO; import com.njcn.supervision.service.device.SupervisionDevMainReportPOService; import com.njcn.web.controller.BaseController; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.Operation; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; @@ -81,4 +84,40 @@ public class DeVReportManageController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, out, methodDescribe); } + @GetMapping("/updateStatus") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @Operation(summary = "更改表单状态") + public HttpResult updateStatus(String businessKey,Integer status) { + String methodDescribe = getMethodDescribe("updateStatus"); + supervisionDevMainReportPOService.updateStatus(businessKey,status); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD) + @PostMapping("/cancel") + @ApiOperation("取消设备录入") + @ApiImplicitParam(name = "cancelReqVO", value = "取消原因", required = true) + public HttpResult cancelDevMainReport(@Validated @RequestBody BpmProcessInstanceCancelParam cancelReqVO) { + String methodDescribe = getMethodDescribe("cancelDevMainReport"); + String id = supervisionDevMainReportPOService.cancelDevMainReport(cancelReqVO); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, id, methodDescribe); + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD) + @PostMapping("/getDeviceList") + @ApiOperation("获取监测点绑定设备列表") + public HttpResult> getDeviceList() { + String methodDescribe = getMethodDescribe("getDeviceList"); + List id = supervisionDevMainReportPOService.getDeviceList(); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, id, methodDescribe); + } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/queryDeviceDetail") + @ApiOperation("查询设备详情") + public HttpResult queryDeviceDetail(@RequestParam("id") String id){ + String methodDescribe = getMethodDescribe("queryDeviceDetail"); + SupervisionDevMainReportVO vo = supervisionDevMainReportPOService.querySurveyDetail(id); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, vo, methodDescribe); + } + } diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/controller/device/TempLineController.java b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/controller/device/TempLineController.java new file mode 100644 index 000000000..08928bf62 --- /dev/null +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/controller/device/TempLineController.java @@ -0,0 +1,81 @@ +package com.njcn.supervision.controller.device; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.njcn.bpm.pojo.param.instance.BpmProcessInstanceCancelParam; +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.constant.OperateType; +import com.njcn.common.pojo.enums.common.LogEnum; +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.device.SupervisionTempLineReportParam; +import com.njcn.supervision.pojo.vo.device.SupervisionTempLineReportVO; +import com.njcn.supervision.service.device.SupervisionTempLineReportService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.Operation; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +/** + * 干扰源用户管理 + * + * @author qijian + * @version 1.0.0 + * @createTime 2022/11/11 - 9:20 + */ +@Slf4j +@RestController +@RequestMapping("/tempLine") +@Api(tags = "电能质量临时监测点管理") +@AllArgsConstructor +public class TempLineController extends BaseController { + + + private final SupervisionTempLineReportService supervisionTempLineReportService; + + @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType= OperateType.ADD) + @PostMapping("/add") + @ApiOperation("新增临时监测点管理") + @ApiImplicitParam(name = "supervisionTempLineReportParam", value = "实体参数", required = true) + public HttpResult addTempLineReport(@RequestBody @Validated SupervisionTempLineReportParam supervisionTempLineReportParam){ + String methodDescribe = getMethodDescribe("addTempLineReport"); + String tempLineId = supervisionTempLineReportService.addTempLineReport(supervisionTempLineReportParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, tempLineId, methodDescribe); + + } + + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/list") + @ApiOperation("分页查询当前用户能看到的接入监测装置设备") + @ApiImplicitParam(name = "supervisionTempLineReportQuery", value = "参数", required = true) + public HttpResult> getTempLineReport(@RequestBody @Validated SupervisionTempLineReportParam.SupervisionTempLineReportQuery supervisionTempLineReportQuery) { + String methodDescribe = getMethodDescribe("getTempLineReport"); + Page out = supervisionTempLineReportService.getTempLineReport(supervisionTempLineReportQuery); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, out, methodDescribe); + } + @GetMapping("/updateStatus") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @Operation(summary = "更改表单状态") + public HttpResult updateStatus(String businessKey,Integer status) { + String methodDescribe = getMethodDescribe("updateStatus"); + supervisionTempLineReportService.updateStatus(businessKey,status); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD) + @PostMapping("/cancel") + @ApiOperation("取消设备录入") + @ApiImplicitParam(name = "cancelReqVO", value = "取消原因", required = true) + public HttpResult cancelTempLineReport(@Validated @RequestBody BpmProcessInstanceCancelParam cancelReqVO) { + String methodDescribe = getMethodDescribe("cancelTempLineReport"); + String id = supervisionTempLineReportService.cancelTempLineReport(cancelReqVO); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, id, methodDescribe); + } + +} diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/mapper/device/SupervisionTempLineReportMapper.java b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/mapper/device/SupervisionTempLineReportMapper.java index 165bc4a37..c5ca07602 100644 --- a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/mapper/device/SupervisionTempLineReportMapper.java +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/mapper/device/SupervisionTempLineReportMapper.java @@ -1,7 +1,11 @@ package com.njcn.supervision.mapper.device; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njcn.supervision.pojo.po.device.SupervisionTempLineReport; +import com.njcn.supervision.pojo.vo.device.SupervisionTempLineReportVO; +import org.apache.ibatis.annotations.Param; /** * @@ -12,4 +16,5 @@ import com.njcn.supervision.pojo.po.device.SupervisionTempLineReport; * @version V1.0.0 */ public interface SupervisionTempLineReportMapper extends BaseMapper { + Page page(Page objectPage, @Param("ew") QueryWrapper quitRunningDeviceVOQueryWrapper); } \ No newline at end of file diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/mapper/device/mapping/SupervisionTempLineReportMapper.xml b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/mapper/device/mapping/SupervisionTempLineReportMapper.xml index 2f883c9c6..e1546a8b4 100644 --- a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/mapper/device/mapping/SupervisionTempLineReportMapper.xml +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/mapper/device/mapping/SupervisionTempLineReportMapper.xml @@ -35,4 +35,11 @@ point_nature, is_statistical, Obj_Name, Power_Substation_Name, is_grid_connection_point, operation_status, main_wiring_diagram, voltage_deviation_upper_limit, voltage_deviation_lower_limit + + \ No newline at end of file diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/device/SupervisionDevMainReportPOService.java b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/device/SupervisionDevMainReportPOService.java index e0d4fd119..72f0cc396 100644 --- a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/device/SupervisionDevMainReportPOService.java +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/device/SupervisionDevMainReportPOService.java @@ -2,8 +2,10 @@ package com.njcn.supervision.service.device; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.bpm.pojo.param.instance.BpmProcessInstanceCancelParam; import com.njcn.supervision.pojo.param.device.SupervisionDevMainReportParam; import com.njcn.supervision.pojo.po.device.SupervisionDevMainReportPO; +import com.njcn.supervision.pojo.po.device.SupervisionTempDeviceReport; import com.njcn.supervision.pojo.vo.device.SupervisionDevMainReportVO; import java.util.List; @@ -26,4 +28,12 @@ public interface SupervisionDevMainReportPOService extends IService ids); Page getDevReport(SupervisionDevMainReportParam.SupervisionDevMainReportQuery supervisionDevMainReportQuery); + + void updateStatus(String businessKey, Integer status); + + String cancelDevMainReport(BpmProcessInstanceCancelParam cancelReqVO); + + List getDeviceList(); + + SupervisionDevMainReportVO querySurveyDetail(String id); } diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/device/SupervisionTempLineReportService.java b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/device/SupervisionTempLineReportService.java index 5ea435be4..702dcf60d 100644 --- a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/device/SupervisionTempLineReportService.java +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/device/SupervisionTempLineReportService.java @@ -1,8 +1,13 @@ package com.njcn.supervision.service.device; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.njcn.bpm.pojo.param.instance.BpmProcessInstanceCancelParam; +import com.njcn.supervision.pojo.param.device.SupervisionTempLineReportParam; import com.njcn.supervision.pojo.po.device.SupervisionTempLineReport; import com.baomidou.mybatisplus.extension.service.IService; - /** +import com.njcn.supervision.pojo.vo.device.SupervisionTempLineReportVO; + +/** * * Description: * Date: 2024/5/11 14:07【需求编号】 @@ -13,4 +18,11 @@ import com.baomidou.mybatisplus.extension.service.IService; public interface SupervisionTempLineReportService extends IService{ + String addTempLineReport(SupervisionTempLineReportParam supervisionTempLineReportParam); + + Page getTempLineReport(SupervisionTempLineReportParam.SupervisionTempLineReportQuery supervisionTempLineReportQuery); + + void updateStatus(String businessKey, Integer status); + + String cancelTempLineReport(BpmProcessInstanceCancelParam cancelReqVO); } diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/device/impl/SupervisionDevMainReportPOServiceImpl.java b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/device/impl/SupervisionDevMainReportPOServiceImpl.java index 02bfaaa07..f079f2957 100644 --- a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/device/impl/SupervisionDevMainReportPOServiceImpl.java +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/device/impl/SupervisionDevMainReportPOServiceImpl.java @@ -8,28 +8,32 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njcn.bpm.api.BpmProcessFeignClient; +import com.njcn.bpm.enums.BpmProcessInstanceStatusEnum; +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.supervision.enums.FlowStatusEnum; import com.njcn.supervision.mapper.device.SupervisionDevMainReportPOMapper; import com.njcn.supervision.pojo.param.device.SupervisionDevMainReportParam; import com.njcn.supervision.pojo.param.device.SupervisionTempDeviceReportParam; -import com.njcn.supervision.pojo.param.device.SupervisionTempLineReportParam; import com.njcn.supervision.pojo.po.device.SupervisionDevMainReportPO; import com.njcn.supervision.pojo.po.device.SupervisionTempDeviceReport; -import com.njcn.supervision.pojo.po.device.SupervisionTempLineReport; import com.njcn.supervision.pojo.vo.device.SupervisionDevMainReportVO; import com.njcn.supervision.service.device.SupervisionDevMainReportPOService; import com.njcn.supervision.service.device.SupervisionTempDeviceReportService; -import com.njcn.supervision.service.device.SupervisionTempLineReportService; import com.njcn.user.api.DeptFeignClient; +import com.njcn.user.api.UserFeignClient; +import com.njcn.user.pojo.vo.UserVO; import com.njcn.web.factory.PageFactory; +import com.njcn.web.utils.RequestUtil; import lombok.RequiredArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -56,19 +60,19 @@ public class SupervisionDevMainReportPOServiceImpl extends ServiceImpl processInstanceVariables = new HashMap<>(); BpmProcessInstanceCreateReqDTO bpmProcessInstanceCreateReqDTO = new BpmProcessInstanceCreateReqDTO(); @@ -111,25 +115,78 @@ public class SupervisionDevMainReportPOServiceImpl extends ServiceImpl getDevReport(SupervisionDevMainReportParam.SupervisionDevMainReportQuery supervisionDevMainReportQuery) { - QueryWrapper quitRunningDeviceVOQueryWrapper = new QueryWrapper<>(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + String userIndex = RequestUtil.getUserIndex(); + + queryWrapper.in("supervision_dev_main_report.create_by", CollectionUtil.newArrayList(userIndex)) + .eq("supervision_dev_main_report.state", DataStateEnum.ENABLE.getCode()); if (StrUtil.isNotBlank(supervisionDevMainReportQuery.getOrgId())) { /*获取直接下属子单位*/ List data = deptFeignClient.getDepSonIdtByDeptId(supervisionDevMainReportQuery.getOrgId()).getData(); //添加上时间范围 - quitRunningDeviceVOQueryWrapper.between("supervision_dev_main_report.Create_Time", + queryWrapper.between("supervision_dev_main_report.Create_Time", DateUtil.beginOfDay(DateUtil.parse(supervisionDevMainReportQuery.getSearchBeginTime())), DateUtil.endOfDay(DateUtil.parse(supervisionDevMainReportQuery.getSearchEndTime()))); } - quitRunningDeviceVOQueryWrapper.orderByDesc("supervision_dev_main_report.Update_Time"); - Page page = this.baseMapper.page(new Page<>(PageFactory.getPageNum(supervisionDevMainReportQuery), PageFactory.getPageSize(supervisionDevMainReportQuery)), quitRunningDeviceVOQueryWrapper); + queryWrapper.orderByDesc("supervision_dev_main_report.Update_Time"); + Page page = this.baseMapper.page(new Page<>(PageFactory.getPageNum(supervisionDevMainReportQuery), PageFactory.getPageSize(supervisionDevMainReportQuery)), queryWrapper); page.getRecords().stream().forEach(temp->{ temp.setOrgName((deptFeignClient.getDeptById(temp.getOrgId()).getData().getName())); - + //处理特殊字段,用户名、部门名 + UserVO userVO = userFeignClient.getUserById(temp.getReporter()).getData(); + temp.setReporter(userVO.getName()); + temp.setOrgName(deptFeignClient.getDeptById(temp.getOrgId()).getData().getName()); }); return page; } + @Override + public void updateStatus(String businessKey, Integer status) { + this.lambdaUpdate().set(SupervisionDevMainReportPO::getStatus,status).eq(SupervisionDevMainReportPO::getId,businessKey).update(); + } + + @Override + public String cancelDevMainReport(BpmProcessInstanceCancelParam cancelReqVO) { + //准备取消该流程,需要远程调用接口 + SupervisionDevMainReportPO supervisionDevMainReportPO = this.baseMapper.selectById(cancelReqVO.getId()); + //取消流程 + bpmProcessFeignClient.cancelProcessInstanceByStartUser(cancelReqVO); + //更新状态 + supervisionDevMainReportPO.setStatus(BpmProcessInstanceStatusEnum.CANCEL.getStatus()); + this.updateById(supervisionDevMainReportPO); + return supervisionDevMainReportPO.getId(); + } + + @Override + public List getDeviceList() { + String deptIndex = RequestUtil.getDeptIndex(); + List data = deptFeignClient.getDepSonIdtByDeptId(deptIndex).getData(); + + List list = this.lambdaQuery() + .eq(SupervisionDevMainReportPO::getStatus, 2) + .in(CollectionUtil.isNotEmpty(data), SupervisionDevMainReportPO::getOrgId, data) + .list(); + if(CollectionUtil.isNotEmpty(list)){ + List collect = list.stream().map(SupervisionDevMainReportPO::getId).collect(Collectors.toList()); + List list1 = supervisionTempDeviceReportService.lambdaQuery().in(SupervisionTempDeviceReport::getId, collect).list(); + return list1; + } + + return new ArrayList<>(); + } + + @Override + public SupervisionDevMainReportVO querySurveyDetail(String id) { + SupervisionDevMainReportVO supervisionDevMainReportVO = new SupervisionDevMainReportVO(); + SupervisionDevMainReportPO byId = this.getById(id); + BeanUtils.copyProperties(byId,supervisionDevMainReportVO); + //获取普测下电站详情 + SupervisionTempDeviceReport supervisionTempDeviceReport = supervisionTempDeviceReportService.lambdaQuery().eq(SupervisionTempDeviceReport::getId, id).one(); + supervisionDevMainReportVO.setSupervisionTempDeviceReport(supervisionTempDeviceReport); + return supervisionDevMainReportVO; + } + /** * @Description: 判断干扰源用户是否绑定设备,如果重复则提示干扰源用户已经设备 * @Param: supervisionDevMainReportParam终端详情 isExcludeSelf是否排除自己,一般新增不排除,更新时需要排除自己 diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/device/impl/SupervisionTempLineReportServiceImpl.java b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/device/impl/SupervisionTempLineReportServiceImpl.java index 7118faf7a..267e1cde9 100644 --- a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/device/impl/SupervisionTempLineReportServiceImpl.java +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/device/impl/SupervisionTempLineReportServiceImpl.java @@ -1,10 +1,40 @@ package com.njcn.supervision.service.device.impl; -import org.springframework.stereotype.Service; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.bpm.api.BpmProcessFeignClient; +import com.njcn.bpm.enums.BpmProcessInstanceStatusEnum; +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.supervision.enums.FlowStatusEnum; import com.njcn.supervision.mapper.device.SupervisionTempLineReportMapper; +import com.njcn.supervision.pojo.param.device.SupervisionTempLineReportParam; import com.njcn.supervision.pojo.po.device.SupervisionTempLineReport; +import com.njcn.supervision.pojo.vo.device.SupervisionTempLineReportVO; import com.njcn.supervision.service.device.SupervisionTempLineReportService; +import com.njcn.user.api.DeptFeignClient; +import com.njcn.user.api.UserFeignClient; +import com.njcn.user.pojo.vo.UserVO; +import com.njcn.web.factory.PageFactory; +import com.njcn.web.utils.RequestUtil; +import lombok.RequiredArgsConstructor; +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.stream.Collectors; + /** * * Description: @@ -14,6 +44,118 @@ import com.njcn.supervision.service.device.SupervisionTempLineReportService; * @version V1.0.0 */ @Service +@RequiredArgsConstructor public class SupervisionTempLineReportServiceImpl extends ServiceImpl implements SupervisionTempLineReportService{ + + /** + * 监测点建档对应的流程定义 KEY + */ + public static final String PROCESS_KEY = "line_info_add"; + + private final BpmProcessFeignClient bpmProcessFeignClient; + private final DeptFeignClient deptFeignClient; + private final UserFeignClient userFeignClient; + + @Override + @Transactional(rollbackFor = Exception.class) + public String addTempLineReport(SupervisionTempLineReportParam supervisionTempLineReportParam) { + //判断干扰源用户是否绑定 + checkLineId(supervisionTempLineReportParam, false); + + SupervisionTempLineReport supervisionTempLineReport = new SupervisionTempLineReport(); + BeanUtils.copyProperties(supervisionTempLineReportParam,supervisionTempLineReport); + supervisionTempLineReport.setState(DataStateEnum.ENABLE.getCode()); + supervisionTempLineReport.setStatus(BpmTaskStatusEnum.RUNNING.getStatus()); + + this.save(supervisionTempLineReport); + String id = supervisionTempLineReport.getId(); + + // 发起 BPM 流程 + Map processInstanceVariables = new HashMap<>(); + BpmProcessInstanceCreateReqDTO bpmProcessInstanceCreateReqDTO = new BpmProcessInstanceCreateReqDTO(); + bpmProcessInstanceCreateReqDTO.setProcessDefinitionKey(PROCESS_KEY); + bpmProcessInstanceCreateReqDTO.setBusinessKey(id); + bpmProcessInstanceCreateReqDTO.setStartUserSelectAssignees(supervisionTempLineReportParam.getStartUserSelectAssignees()); + bpmProcessInstanceCreateReqDTO.setVariables(processInstanceVariables); + String processInstanceId = bpmProcessFeignClient.createProcessInstance(supervisionTempLineReport.getCreateBy(),bpmProcessInstanceCreateReqDTO).getData(); + // 将工作流的编号,更新到流程单中 + supervisionTempLineReport.setProcessInstanceId(processInstanceId); + this.baseMapper.updateById(supervisionTempLineReport); + + return id; + } + + @Override + public Page getTempLineReport(SupervisionTempLineReportParam.SupervisionTempLineReportQuery supervisionTempLineReportQuery) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + + String userIndex = RequestUtil.getUserIndex(); + + queryWrapper.in("supervision_temp_line_report.create_by", CollectionUtil.newArrayList(userIndex)) + .eq("supervision_temp_line_report.state", DataStateEnum.ENABLE.getCode()); + if (StrUtil.isNotBlank(supervisionTempLineReportQuery.getOrgId())) { + /*获取直接下属子单位*/ + List data = deptFeignClient.getDepSonIdtByDeptId(supervisionTempLineReportQuery.getOrgId()).getData(); + + //添加上时间范围 + queryWrapper.between("supervision_temp_line_report.Create_Time", + DateUtil.beginOfDay(DateUtil.parse(supervisionTempLineReportQuery.getSearchBeginTime())), + DateUtil.endOfDay(DateUtil.parse(supervisionTempLineReportQuery.getSearchEndTime()))); + } + queryWrapper.orderByDesc("supervision_temp_line_report.Update_Time"); + Page page = this.baseMapper.page(new Page<>(PageFactory.getPageNum(supervisionTempLineReportQuery), PageFactory.getPageSize(supervisionTempLineReportQuery)), queryWrapper); + page.getRecords().stream().forEach(temp->{ + temp.setOrgName((deptFeignClient.getDeptById(temp.getOrgId()).getData().getName())); + //处理特殊字段,用户名、部门名 + UserVO userVO = userFeignClient.getUserById(temp.getReporter()).getData(); + temp.setReporter(userVO.getName()); + temp.setOrgName(deptFeignClient.getDeptById(temp.getOrgId()).getData().getName()); + }); + return page; + } + + @Override + public void updateStatus(String businessKey, Integer status) { + this.lambdaUpdate().set(SupervisionTempLineReport::getStatus,status).eq(SupervisionTempLineReport::getId,businessKey).update(); + + } + + @Override + public String cancelTempLineReport(BpmProcessInstanceCancelParam cancelReqVO) { + //准备取消该流程,需要远程调用接口 + SupervisionTempLineReport supervisionDevMainReportPO = this.baseMapper.selectById(cancelReqVO.getId()); + //取消流程 + bpmProcessFeignClient.cancelProcessInstanceByStartUser(cancelReqVO); + //更新状态 + supervisionDevMainReportPO.setStatus(BpmProcessInstanceStatusEnum.CANCEL.getStatus()); + this.updateById(supervisionDevMainReportPO); + return supervisionDevMainReportPO.getId(); + } + + private void checkLineId(SupervisionTempLineReportParam supervisionTempLineReportParam, boolean isExcludeSelf) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper + .eq(SupervisionTempLineReport::getLineId, supervisionTempLineReportParam.getLineId()) + .eq(SupervisionTempLineReport::getState, DataStateEnum.ENABLE.getCode()); + //更新的时候,需排除当前记录 + if (isExcludeSelf) { + if(supervisionTempLineReportParam instanceof SupervisionTempLineReportParam.SupervisionTempLineReportUpdate){ + lambdaQueryWrapper.ne(SupervisionTempLineReport::getId, ((SupervisionTempLineReportParam.SupervisionTempLineReportUpdate) supervisionTempLineReportParam).getId()); + } + + + } + List list = this.baseMapper.selectList(lambdaQueryWrapper); + if (CollectionUtil.isNotEmpty(list)) { + //过滤已取消的申请 + list = list.stream() + .filter(temp -> !temp.getStatus().equals(FlowStatusEnum.CANCEL.getCode())) + .collect(Collectors.toList()); + //如果还存在,则说明有人申请过了 + if (CollectionUtil.isNotEmpty(list)) { + throw new BusinessException(supervisionTempLineReportParam.getUserName().concat(",监测点编号").concat(list.get(0).getReporter()).concat("以使用")); + } + } + } }