diff --git a/pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/listener/business/BpmGeneralSurveyStatusListener.java b/pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/listener/business/BpmGeneralSurveyStatusListener.java new file mode 100644 index 000000000..acf51749c --- /dev/null +++ b/pqs-bpm/bpm-boot/src/main/java/com/njcn/bpm/listener/business/BpmGeneralSurveyStatusListener.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.GeneralSurveyFeignClient; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + + +@Component +public class BpmGeneralSurveyStatusListener extends BpmProcessInstanceStatusEventListener { + + @Resource + private GeneralSurveyFeignClient generalSurveyFeignClient; + + @Override + protected String getProcessDefinitionKey() { + return "harmonic_survey"; + } + + @Override + protected void onEvent(BpmProcessInstanceStatusEvent event) { + generalSurveyFeignClient.updateStatus(event.getBusinessKey(), event.getStatus()); + } + +} diff --git a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/api/GeneralSurveyFeignClient.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/api/GeneralSurveyFeignClient.java new file mode 100644 index 000000000..58f509f9c --- /dev/null +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/api/GeneralSurveyFeignClient.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.GeneralSurveyFeignClientFallbackFactory; +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 = "/generalSurvey", fallbackFactory = GeneralSurveyFeignClientFallbackFactory.class) +public interface GeneralSurveyFeignClient { + + @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/GeneralSurveyFeignClientFallbackFactory.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/api/fallback/GeneralSurveyFeignClientFallbackFactory.java new file mode 100644 index 000000000..ac042dc2b --- /dev/null +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/api/fallback/GeneralSurveyFeignClientFallbackFactory.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.GeneralSurveyFeignClient; +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 GeneralSurveyFeignClientFallbackFactory implements FallbackFactory { + @Override + public GeneralSurveyFeignClient 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 GeneralSurveyFeignClient() { + @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/survey/SupervisionGeneralSurveyPlanParm.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/param/survey/SupervisionGeneralSurveyPlanParm.java new file mode 100644 index 000000000..3713d70b1 --- /dev/null +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/param/survey/SupervisionGeneralSurveyPlanParm.java @@ -0,0 +1,127 @@ +package com.njcn.supervision.pojo.param.survey; + +import com.njcn.web.pojo.param.BaseParam; +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: + * Date: 2024/5/13 18:35【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class SupervisionGeneralSurveyPlanParm { + + + /** + * 单位ID + */ + @ApiModelProperty(value="单位ID") + private String orgNo; + + /** + * 普测计划名称 + */ + @ApiModelProperty(value="普测计划名称") + private String planName; + + /** + * 计划生成时间 + */ + @ApiModelProperty(value="计划生成时间") + private LocalDate planCreateTime; + + /** + * 计划开始时间 + */ + @ApiModelProperty(value="计划开始时间") + private LocalDate planStartTime; + + /** + * 计划结束时间 + */ + @ApiModelProperty(value="计划结束时间") + private LocalDate planEndTime; + + /** + * 实际完成时间 + */ + @ApiModelProperty(value="实际完成时间") + private LocalDate planComplateTime; + + /** + * 计划负责人 + */ + @ApiModelProperty(value="计划负责人") + private String leader; + + @ApiModelProperty(value="选中的电站集合") + private List subIds; + + @ApiModelProperty("发起人自选审批人 Map") + private Map> startUserSelectAssignees; + + + + /** + * 详情 + */ + @ApiModelProperty(value="详情") + private String description; + + /** + * 文件是否上传(0:否 1:是) + */ + @ApiModelProperty(value="文件是否上传(0:否 1:是)") + private Integer isFileUpload; + + /** + * 上传文件数量 + */ + @ApiModelProperty(value="上传文件数量") + private Integer fileCount; + + /** + * 文件路径 + */ + @ApiModelProperty(value="文件路径") + private String filePath; + + + + @Data + @EqualsAndHashCode(callSuper = true) + public static class SupervisionGeneralSurveyPlanUpdate extends SupervisionGeneralSurveyPlanParm { + + /** + * 普测计划编号 + */ + @ApiModelProperty(value="普测计划编号") + private String planNo; + + } + + /** + * 分页查询实体 + */ + @Data + @EqualsAndHashCode(callSuper = true) + public static class GeneralSurveyPlanQueryParam extends BaseParam { + + @ApiModelProperty(value="所属区域") + private String orgNo; + + } +} \ No newline at end of file diff --git a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/po/survey/SupervisionGeneralSurveyPlanDetailPO.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/po/survey/SupervisionGeneralSurveyPlanDetailPO.java new file mode 100644 index 000000000..dca8c8362 --- /dev/null +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/po/survey/SupervisionGeneralSurveyPlanDetailPO.java @@ -0,0 +1,87 @@ +package com.njcn.supervision.pojo.po.survey; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.github.jeffreyning.mybatisplus.anno.MppMultiId; +import com.njcn.db.bo.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * + * Description: + * Date: 2024/5/13 18:35【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@ApiModel(description="") +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "supervision_general_survey_plan_detail") +public class SupervisionGeneralSurveyPlanDetailPO extends BaseEntity { + /** + * 普测计划编号 + */ + @MppMultiId(value = "plan_no") + @ApiModelProperty(value="普测计划编号") + private String planNo; + + /** + * 变电站ID + */ + @MppMultiId(value = "sub_id") + @ApiModelProperty(value="变电站ID") + private String subId; + + /** + * 变电站名称 + */ + @TableField(value = "sub_name") + @ApiModelProperty(value="变电站名称") + private String subName; + + /** + * 变电站电压等级 + */ + @TableField(value = "voltage_level") + @ApiModelProperty(value="变电站电压等级") + private String voltageLevel; + + /** + * 容量 + */ + @TableField(value = "capacity") + @ApiModelProperty(value="容量") + private Long capacity; + + /** + * 在线监测点id + */ + @TableField(value = "measurement_point_id") + @ApiModelProperty(value="在线监测点id") + private String measurementPointId; + + /** + * 是否生成问题(0:否 1:是) + */ + @TableField(value = "is_problem") + @ApiModelProperty(value="是否生成问题(0:否 1:是)") + private Integer isProblem; + + /** + * 是否实现监测(0:否 1:是) + */ + @TableField(value = "is_survey") + @ApiModelProperty(value="是否实现监测(0:否 1:是)") + private Integer isSurvey; + /** + * 状态: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/po/survey/SupervisionGeneralSurveyPlanPO.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/po/survey/SupervisionGeneralSurveyPlanPO.java new file mode 100644 index 000000000..9f13496c7 --- /dev/null +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/po/survey/SupervisionGeneralSurveyPlanPO.java @@ -0,0 +1,118 @@ +package com.njcn.supervision.pojo.po.survey; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.njcn.db.bo.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDate; + +/** + * + * Description: + * Date: 2024/5/13 18:35【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "supervision_general_survey_plan") +public class SupervisionGeneralSurveyPlanPO extends BaseEntity { + /** + * 普测计划编号 + */ + @TableId(value = "plan_no", type = IdType.ASSIGN_UUID) + private String planNo; + + /** + * 单位ID + */ + @TableField(value = "org_no") + private String orgNo; + + /** + * 普测计划名称 + */ + @TableField(value = "plan_name") + private String planName; + + /** + * 计划生成时间 + */ + @TableField(value = "plan_create_time") + private LocalDate planCreateTime; + + /** + * 计划开始时间 + */ + @TableField(value = "plan_start_time") + private LocalDate planStartTime; + + /** + * 计划结束时间 + */ + @TableField(value = "plan_end_time") + private LocalDate planEndTime; + + /** + * 实际完成时间 + */ + @TableField(value = "plan_complate_time") + private LocalDate planComplateTime; + + /** + * 计划负责人 + */ + @TableField(value = "leader") + private String leader; + + /** + * 计划状态(1:审批中;2:审批通过;3:审批不通过;4:已取消 + */ + @TableField(value = "`status`") + private Integer status; + + /** + * 详情 + */ + @TableField(value = "description") + private String description; + + /** + * 文件是否上传(0:否 1:是) + */ + @TableField(value = "is_file_upload") + private Integer isFileUpload; + + /** + * 上传文件数量 + */ + @TableField(value = "file_count") + private Integer fileCount; + + /** + * 文件路径 + */ + @TableField(value = "file_path") + private String filePath; + + /** + * 流程实例的编号 + */ + @TableField(value = "process_instance_id") + private String processInstanceId; + + + + /** + * 状态: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/survey/DeptSubstationVO.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/survey/DeptSubstationVO.java new file mode 100644 index 000000000..6a0288e74 --- /dev/null +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/survey/DeptSubstationVO.java @@ -0,0 +1,40 @@ +package com.njcn.supervision.pojo.vo.survey; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2023/3/9 14:00【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +public class DeptSubstationVO { + @ApiModelProperty(name = "id",value = "id") + private String id; + + @ApiModelProperty(name = "pid",value = "父级id") + private String pid; + + @ApiModelProperty(name = "name",value = "名称") + private String name; + + @ApiModelProperty(name = "code",value = "单位编号") + private String code; + + @ApiModelProperty(name = "disabled",value = "是否可以选择,电站不用塞,部门塞disabled: true") + private boolean disabled; + @ApiModelProperty(name = "flag",value = "前端标志") + private boolean flag; + + + + @ApiModelProperty(name = "children",value = "子级") + private List children = new ArrayList<> (); +} diff --git a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/survey/SupervisionGeneralSurveyPlanVO.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/survey/SupervisionGeneralSurveyPlanVO.java new file mode 100644 index 000000000..486c3e36d --- /dev/null +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/survey/SupervisionGeneralSurveyPlanVO.java @@ -0,0 +1,119 @@ +package com.njcn.supervision.pojo.vo.survey; + +import com.njcn.db.bo.BaseEntity; +import com.njcn.supervision.pojo.po.survey.SupervisionGeneralSurveyPlanDetailPO; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.time.LocalDate; +import java.util.List; +import java.util.Map; + +/** + * + * Description: + * Date: 2024/5/13 18:35【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class SupervisionGeneralSurveyPlanVO extends BaseEntity { + + + /** + * 单位ID + */ + @ApiModelProperty(value="单位ID") + private String orgNo; + + @ApiModelProperty(value="单位名称") + private String orgName; + + /** + * 普测计划名称 + */ + @ApiModelProperty(value="普测计划名称") + private String planName; + + /** + * 计划生成时间 + */ + @ApiModelProperty(value="计划生成时间") + private LocalDate planCreateTime; + + /** + * 计划开始时间 + */ + @ApiModelProperty(value="计划开始时间") + private LocalDate planStartTime; + + /** + * 计划结束时间 + */ + @ApiModelProperty(value="计划结束时间") + private LocalDate planEndTime; + + /** + * 实际完成时间 + */ + @ApiModelProperty(value="实际完成时间") + private LocalDate planComplateTime; + + /** + * 计划负责人 + */ + @ApiModelProperty(value="计划负责人") + private String leader; + + @ApiModelProperty(value="选中的电站集合") + private List subIds; + + @ApiModelProperty("发起人自选审批人 Map") + private Map> startUserSelectAssignees; + + + /** + * 计划状态(1:审批中;2:审批通过;3:审批不通过;4:已取消 + */ + @ApiModelProperty(value="计划状态(1:审批中;2:审批通过;3:审批不通过;4:已取消") + private Integer status; + + /** + * 详情 + */ + @ApiModelProperty(value="详情") + private String description; + + /** + * 文件是否上传(0:否 1:是) + */ + @ApiModelProperty(value="文件是否上传(0:否 1:是)") + private Integer isFileUpload; + + /** + * 上传文件数量 + */ + @ApiModelProperty(value="上传文件数量") + private Integer fileCount; + + /** + * 文件路径 + */ + @ApiModelProperty(value="文件路径") + private String filePath; + + /** + * 流程实例的编号 + */ + @ApiModelProperty(value="流程实例的编号") + private String processInstanceId; + + @ApiModelProperty(value="流程实例的编号") + private List supervisionGeneralSurveyPlanDetailPOS ; + +} \ No newline at end of file diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/controller/survey/GeneralSurveyController.java b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/controller/survey/GeneralSurveyController.java new file mode 100644 index 000000000..cbed1439e --- /dev/null +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/controller/survey/GeneralSurveyController.java @@ -0,0 +1,115 @@ +package com.njcn.supervision.controller.survey; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +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.survey.SupervisionGeneralSurveyPlanParm; +import com.njcn.supervision.pojo.vo.survey.DeptSubstationVO; +import com.njcn.supervision.pojo.vo.survey.SupervisionGeneralSurveyPlanVO; +import com.njcn.supervision.service.survey.SupervisionGeneralSurveyPlanPOService; +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.*; + +import java.util.List; + +/** + * 干扰源用户管理 + * + * @author qijian + * @version 1.0.0 + * @createTime 2022/11/11 - 9:20 + */ +@Slf4j +@RestController +@RequestMapping("/generalSurvey") +@Api(tags = "谐波普测计划") +@AllArgsConstructor +public class GeneralSurveyController extends BaseController { + + private final SupervisionGeneralSurveyPlanPOService supervisionGeneralSurveyPlanPOService; + + @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType= OperateType.ADD) + @PostMapping("/addSurvey") + @ApiOperation("新增普测计划") + @ApiImplicitParam(name = "supervisionGeneralSurveyPlanParm", value = "实体参数", required = true) + public HttpResult addSurvey(@RequestBody @Validated SupervisionGeneralSurveyPlanParm supervisionGeneralSurveyPlanParm){ + String methodDescribe = getMethodDescribe("addSurvey"); + String planNo = supervisionGeneralSurveyPlanPOService.addDevReport(supervisionGeneralSurveyPlanParm); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, planNo, methodDescribe); + + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType= OperateType.ADD) + @PostMapping("/auditSurvey") + @ApiOperation("修改普测计划") + @ApiImplicitParam(name = "supervisionGeneralSurveyPlanUpdate", value = "实体参数", required = true) + public HttpResult auditSurvey(@RequestBody @Validated SupervisionGeneralSurveyPlanParm.SupervisionGeneralSurveyPlanUpdate supervisionGeneralSurveyPlanUpdate){ + String methodDescribe = getMethodDescribe("auditDevReport"); + boolean res = supervisionGeneralSurveyPlanPOService.auditSurvey(supervisionGeneralSurveyPlanUpdate); + + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, res, methodDescribe); + + } + + + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/removeSurvey") + @ApiOperation("移除普测计划") + public HttpResult removeSurvey(@RequestParam("ids") List ids){ + String methodDescribe = getMethodDescribe("removeSurvey"); + Boolean flag = supervisionGeneralSurveyPlanPOService.removeSurvey(ids); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe); + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getSurvey") + @ApiOperation("分页查询当前用户能看到的普测计划") + @ApiImplicitParam(name = "generalSurveyPlanQueryParam", value = "参数", required = true) + public HttpResult> getSurvey(@RequestBody @Validated SupervisionGeneralSurveyPlanParm.GeneralSurveyPlanQueryParam generalSurveyPlanQueryParam ){ + String methodDescribe = getMethodDescribe("getSurvey"); + Page out = supervisionGeneralSurveyPlanPOService.getSurvey(generalSurveyPlanQueryParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, out, methodDescribe); + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/querySurveyDetail") + @ApiOperation("查询普测计划详情") + public HttpResult querySurveyDetail(@RequestParam("id") String id){ + String methodDescribe = getMethodDescribe("querySurveyDetail"); + SupervisionGeneralSurveyPlanVO vo = supervisionGeneralSurveyPlanPOService.querySurveyDetail(id); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, vo, methodDescribe); + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/initDetpStataionTree") + @ApiOperation("初始化部门") + @ApiImplicitParam(name = "orgId", value = "部门号", required = true) + public HttpResult> initDetpStataionTree(@RequestParam("orgId") String orgId) { + String methodDescribe = getMethodDescribe("initDetpStataionTree"); + List list = supervisionGeneralSurveyPlanPOService.initDetpStataionTree(orgId); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + + @GetMapping("/updateStatus") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @Operation(summary = "更改普测计划状态") + public HttpResult updateStatus(String businessKey,Integer status) { + String methodDescribe = getMethodDescribe("updateStatus"); + supervisionGeneralSurveyPlanPOService.updateStatus(businessKey,status); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + +} diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/mapper/survey/SupervisionGeneralSurveyPlanDetailPOMapper.java b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/mapper/survey/SupervisionGeneralSurveyPlanDetailPOMapper.java new file mode 100644 index 000000000..772ff696d --- /dev/null +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/mapper/survey/SupervisionGeneralSurveyPlanDetailPOMapper.java @@ -0,0 +1,15 @@ +package com.njcn.supervision.mapper.survey; + +import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; +import com.njcn.supervision.pojo.po.survey.SupervisionGeneralSurveyPlanDetailPO; + +/** + * + * Description: + * Date: 2024/5/13 18:35【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface SupervisionGeneralSurveyPlanDetailPOMapper extends MppBaseMapper { +} \ No newline at end of file diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/mapper/survey/SupervisionGeneralSurveyPlanPOMapper.java b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/mapper/survey/SupervisionGeneralSurveyPlanPOMapper.java new file mode 100644 index 000000000..b081874d5 --- /dev/null +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/mapper/survey/SupervisionGeneralSurveyPlanPOMapper.java @@ -0,0 +1,20 @@ +package com.njcn.supervision.mapper.survey; + +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.survey.SupervisionGeneralSurveyPlanPO; +import com.njcn.supervision.pojo.vo.survey.SupervisionGeneralSurveyPlanVO; +import org.apache.ibatis.annotations.Param; + +/** + * + * Description: + * Date: 2024/5/13 18:35【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface SupervisionGeneralSurveyPlanPOMapper extends BaseMapper { + Page page(Page objectPage, @Param("ew") QueryWrapper queryWrapper); +} \ No newline at end of file diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/mapper/survey/mapping/SupervisionGeneralSurveyPlanDetailPOMapper.xml b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/mapper/survey/mapping/SupervisionGeneralSurveyPlanDetailPOMapper.xml new file mode 100644 index 000000000..dcf094542 --- /dev/null +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/mapper/survey/mapping/SupervisionGeneralSurveyPlanDetailPOMapper.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + plan_no, sub_id, sub_name, voltage_level, capacity, measurement_point_id, is_problem, + is_survey + + \ No newline at end of file diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/mapper/survey/mapping/SupervisionGeneralSurveyPlanPOMapper.xml b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/mapper/survey/mapping/SupervisionGeneralSurveyPlanPOMapper.xml new file mode 100644 index 000000000..49fc5fb43 --- /dev/null +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/mapper/survey/mapping/SupervisionGeneralSurveyPlanPOMapper.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + plan_no, org_no, plan_name, plan_create_time, plan_start_time, plan_end_time, plan_complate_time, + leader, `status`, description, is_file_upload, file_count, file_path, process_instance_id, + upload_time, Create_By, Create_Time, Update_By, Update_Time, `State` + + + + \ No newline at end of file diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/survey/SupervisionGeneralSurveyPlanDetailPOService.java b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/survey/SupervisionGeneralSurveyPlanDetailPOService.java new file mode 100644 index 000000000..ad84d1715 --- /dev/null +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/survey/SupervisionGeneralSurveyPlanDetailPOService.java @@ -0,0 +1,16 @@ +package com.njcn.supervision.service.survey; + +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.supervision.pojo.po.survey.SupervisionGeneralSurveyPlanDetailPO; + /** + * + * Description: + * Date: 2024/5/13 18:35【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface SupervisionGeneralSurveyPlanDetailPOService extends IMppService { + + +} diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/survey/SupervisionGeneralSurveyPlanPOService.java b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/survey/SupervisionGeneralSurveyPlanPOService.java new file mode 100644 index 000000000..f20be31a2 --- /dev/null +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/survey/SupervisionGeneralSurveyPlanPOService.java @@ -0,0 +1,36 @@ +package com.njcn.supervision.service.survey; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.supervision.pojo.param.survey.SupervisionGeneralSurveyPlanParm; +import com.njcn.supervision.pojo.po.survey.SupervisionGeneralSurveyPlanPO; +import com.njcn.supervision.pojo.vo.survey.DeptSubstationVO; +import com.njcn.supervision.pojo.vo.survey.SupervisionGeneralSurveyPlanVO; + +import java.util.List; + +/** + * + * Description: + * Date: 2024/5/13 18:35【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface SupervisionGeneralSurveyPlanPOService extends IService{ + + + String addDevReport(SupervisionGeneralSurveyPlanParm supervisionGeneralSurveyPlanParm); + + boolean auditSurvey(SupervisionGeneralSurveyPlanParm.SupervisionGeneralSurveyPlanUpdate supervisionGeneralSurveyPlanUpdate); + + Boolean removeSurvey(List ids); + + Page getSurvey(SupervisionGeneralSurveyPlanParm.GeneralSurveyPlanQueryParam generalSurveyPlanQueryParam); + + SupervisionGeneralSurveyPlanVO querySurveyDetail(String id); + + List initDetpStataionTree(String orgId); + + void updateStatus(String businessKey, Integer status); +} diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/survey/impl/SupervisionGeneralSurveyPlanDetailPOServiceImpl.java b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/survey/impl/SupervisionGeneralSurveyPlanDetailPOServiceImpl.java new file mode 100644 index 000000000..fc2ecb02b --- /dev/null +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/survey/impl/SupervisionGeneralSurveyPlanDetailPOServiceImpl.java @@ -0,0 +1,19 @@ +package com.njcn.supervision.service.survey.impl; + +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import com.njcn.supervision.mapper.survey.SupervisionGeneralSurveyPlanDetailPOMapper; +import com.njcn.supervision.pojo.po.survey.SupervisionGeneralSurveyPlanDetailPO; +import com.njcn.supervision.service.survey.SupervisionGeneralSurveyPlanDetailPOService; +import org.springframework.stereotype.Service; +/** + * + * Description: + * Date: 2024/5/13 18:35【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +public class SupervisionGeneralSurveyPlanDetailPOServiceImpl extends MppServiceImpl implements SupervisionGeneralSurveyPlanDetailPOService{ + +} diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/survey/impl/SupervisionGeneralSurveyPlanPOServiceImpl.java b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/survey/impl/SupervisionGeneralSurveyPlanPOServiceImpl.java new file mode 100644 index 000000000..ca89c9974 --- /dev/null +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/survey/impl/SupervisionGeneralSurveyPlanPOServiceImpl.java @@ -0,0 +1,309 @@ +package com.njcn.supervision.service.survey.impl; + +import cn.hutool.core.collection.CollectionUtil; +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.BpmTaskStatusEnum; +import com.njcn.bpm.pojo.dto.BpmProcessInstanceCreateReqDTO; +import com.njcn.common.pojo.enums.common.DataStateEnum; +import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.device.biz.commApi.CommTerminalGeneralClient; +import com.njcn.device.biz.pojo.dto.SubGetBase; +import com.njcn.device.biz.pojo.param.SubstationParam; +import com.njcn.supervision.enums.FlowStatusEnum; +import com.njcn.supervision.mapper.survey.SupervisionGeneralSurveyPlanPOMapper; +import com.njcn.supervision.pojo.param.survey.SupervisionGeneralSurveyPlanParm; +import com.njcn.supervision.pojo.po.survey.SupervisionGeneralSurveyPlanDetailPO; +import com.njcn.supervision.pojo.po.survey.SupervisionGeneralSurveyPlanPO; +import com.njcn.supervision.pojo.vo.survey.DeptSubstationVO; +import com.njcn.supervision.pojo.vo.survey.SupervisionGeneralSurveyPlanVO; +import com.njcn.supervision.service.survey.SupervisionGeneralSurveyPlanDetailPOService; +import com.njcn.supervision.service.survey.SupervisionGeneralSurveyPlanPOService; +import com.njcn.user.api.DeptFeignClient; +import com.njcn.user.pojo.vo.PvTerminalTreeVO; +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.time.LocalDate; +import java.util.*; +import java.util.stream.Collectors; + +/** + * + * Description: + * Date: 2024/5/13 18:35【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +@RequiredArgsConstructor +public class SupervisionGeneralSurveyPlanPOServiceImpl extends ServiceImpl implements SupervisionGeneralSurveyPlanPOService{ + /** + * 用户信息建档对应的流程定义 KEY todo 修改成普测的key + */ + public static final String PROCESS_KEY = "harmonic_survey"; + + private final CommTerminalGeneralClient commTerminalGeneralClient; + private final SupervisionGeneralSurveyPlanDetailPOService supervisionGeneralSurveyPlanDetailPOService; + private final BpmProcessFeignClient bpmProcessFeignClient; + private final DeptFeignClient deptFeignClient; + + @Override + @Transactional(rollbackFor = Exception.class) + public String addDevReport(SupervisionGeneralSurveyPlanParm supervisionGeneralSurveyPlanParm) { + //判断工程名称是否有重复的 + checkPlanName(supervisionGeneralSurveyPlanParm, false); + //保存普测计划主表 + SupervisionGeneralSurveyPlanPO supervisionGeneralSurveyPlanPO = new SupervisionGeneralSurveyPlanPO(); + BeanUtils.copyProperties(supervisionGeneralSurveyPlanParm, supervisionGeneralSurveyPlanPO); + supervisionGeneralSurveyPlanPO.setState(DataStateEnum.ENABLE.getCode()); + supervisionGeneralSurveyPlanPO.setPlanCreateTime(LocalDate.now()); + supervisionGeneralSurveyPlanPO.setStatus(BpmTaskStatusEnum.RUNNING.getStatus()); + this.save(supervisionGeneralSurveyPlanPO); + String planNo = supervisionGeneralSurveyPlanPO.getPlanNo(); + //保存普测计划电站表 + if(CollectionUtil.isNotEmpty(supervisionGeneralSurveyPlanParm.getSubIds())){ + SubstationParam param = new SubstationParam(); + param.setPowerIds(supervisionGeneralSurveyPlanParm.getSubIds()); + List stationList = commTerminalGeneralClient.tagOrIdGetSub(param).getData(); + List supervisionGeneralSurveyPlanDetailPOS = new ArrayList<>(); + for (SubGetBase stat : stationList) { + SupervisionGeneralSurveyPlanDetailPO supervisionGeneralSurveyPlanDetailPO = new SupervisionGeneralSurveyPlanDetailPO(); + supervisionGeneralSurveyPlanDetailPO.setPlanNo(planNo); + + supervisionGeneralSurveyPlanDetailPO.setSubId(stat.getId()); + supervisionGeneralSurveyPlanDetailPO.setSubName(stat.getName()); + /*目前时间与计划开始时间,结束时间一致*/ + supervisionGeneralSurveyPlanDetailPO.setVoltageLevel(stat.getVoltageLevel()); + List unitChildrenList = stat.getUnitChildrenList(); + if(CollectionUtil.isEmpty(unitChildrenList)){ + supervisionGeneralSurveyPlanDetailPO.setMeasurementPointId(""); + supervisionGeneralSurveyPlanDetailPO.setIsSurvey(0); + }else { + String subList = unitChildrenList.stream().map(String::valueOf).collect(Collectors.joining(",")); + supervisionGeneralSurveyPlanDetailPO.setMeasurementPointId(subList); + supervisionGeneralSurveyPlanDetailPO.setIsSurvey(0); + } + supervisionGeneralSurveyPlanDetailPO.setState(DataStateEnum.ENABLE.getCode()); + supervisionGeneralSurveyPlanDetailPOS.add(supervisionGeneralSurveyPlanDetailPO); + } + supervisionGeneralSurveyPlanDetailPOService.saveOrUpdateBatchByMultiId(supervisionGeneralSurveyPlanDetailPOS, 500); + // 发起 BPM 流程 + Map processInstanceVariables = new HashMap<>(); + BpmProcessInstanceCreateReqDTO bpmProcessInstanceCreateReqDTO = new BpmProcessInstanceCreateReqDTO(); + bpmProcessInstanceCreateReqDTO.setProcessDefinitionKey(PROCESS_KEY); + bpmProcessInstanceCreateReqDTO.setBusinessKey(planNo); + bpmProcessInstanceCreateReqDTO.setStartUserSelectAssignees(supervisionGeneralSurveyPlanParm.getStartUserSelectAssignees()); + bpmProcessInstanceCreateReqDTO.setVariables(processInstanceVariables); + String processInstanceId = bpmProcessFeignClient.createProcessInstance(supervisionGeneralSurveyPlanPO.getCreateBy(),bpmProcessInstanceCreateReqDTO).getData(); + // 将工作流的编号,更新到流程单中 + supervisionGeneralSurveyPlanPO.setProcessInstanceId(processInstanceId); + this.baseMapper.updateById(supervisionGeneralSurveyPlanPO); + return planNo; + }{ + throw new BusinessException("请选择电站"); + } + + + + + + } + + @Override + public boolean auditSurvey(SupervisionGeneralSurveyPlanParm.SupervisionGeneralSurveyPlanUpdate supervisionGeneralSurveyPlanUpdate) { + //判断计划名称是否有重复的 + checkPlanName(supervisionGeneralSurveyPlanUpdate, true); + + String planNo = supervisionGeneralSurveyPlanUpdate.getPlanNo(); + SupervisionGeneralSurveyPlanPO byId = this.getById(planNo); + BeanUtils.copyProperties(supervisionGeneralSurveyPlanUpdate, byId); + + SubstationParam param = new SubstationParam(); + param.setPowerIds(supervisionGeneralSurveyPlanUpdate.getSubIds()); + List stationList = commTerminalGeneralClient.tagOrIdGetSub(param).getData(); + List supervisionGeneralSurveyPlanDetailPOS = new ArrayList<>(); + for (SubGetBase stat : stationList) { + SupervisionGeneralSurveyPlanDetailPO supervisionGeneralSurveyPlanDetailPO = new SupervisionGeneralSurveyPlanDetailPO(); + supervisionGeneralSurveyPlanDetailPO.setPlanNo(planNo); + + supervisionGeneralSurveyPlanDetailPO.setSubId(stat.getId()); + supervisionGeneralSurveyPlanDetailPO.setSubName(stat.getName()); + /*目前时间与计划开始时间,结束时间一致*/ + supervisionGeneralSurveyPlanDetailPO.setVoltageLevel(stat.getVoltageLevel()); + List unitChildrenList = stat.getUnitChildrenList(); + if(CollectionUtil.isEmpty(unitChildrenList)){ + supervisionGeneralSurveyPlanDetailPO.setMeasurementPointId(""); + supervisionGeneralSurveyPlanDetailPO.setIsSurvey(0); + }else { + String subList = unitChildrenList.stream().map(String::valueOf).collect(Collectors.joining(",")); + supervisionGeneralSurveyPlanDetailPO.setMeasurementPointId(subList); + supervisionGeneralSurveyPlanDetailPO.setIsSurvey(1); + } + supervisionGeneralSurveyPlanDetailPO.setState(DataStateEnum.ENABLE.getCode()); + supervisionGeneralSurveyPlanDetailPOS.add(supervisionGeneralSurveyPlanDetailPO); + } + //清除原有的 + supervisionGeneralSurveyPlanDetailPOService.remove(new QueryWrapper().lambda().eq(SupervisionGeneralSurveyPlanDetailPO::getPlanNo,planNo)); + supervisionGeneralSurveyPlanDetailPOService.saveOrUpdateBatchByMultiId(supervisionGeneralSurveyPlanDetailPOS, 500); + return true; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean removeSurvey(List ids) { + this.lambdaUpdate().set(SupervisionGeneralSurveyPlanPO::getState, 0).in(SupervisionGeneralSurveyPlanPO::getPlanNo, ids).update(); + supervisionGeneralSurveyPlanDetailPOService.remove(new QueryWrapper(). + lambda().in(SupervisionGeneralSurveyPlanDetailPO::getPlanNo,ids)); + + return true; + } + + @Override + public Page getSurvey(SupervisionGeneralSurveyPlanParm.GeneralSurveyPlanQueryParam generalSurveyPlanQueryParam) { + String userIndex = RequestUtil.getUserIndex(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("supervision_general_survey_plan.create_by", CollectionUtil.newArrayList(userIndex)) + .eq("supervision_general_survey_plan.state", DataStateEnum.ENABLE.getCode()); + /*获取直接下属子单位*/ + List data = deptFeignClient.getDepSonIdtByDeptId(generalSurveyPlanQueryParam.getOrgNo()).getData(); + + if (Objects.nonNull(generalSurveyPlanQueryParam)) { + if (StrUtil.isNotBlank(generalSurveyPlanQueryParam.getOrgNo())) { + //查询所有区域下的数据 + queryWrapper.in("supervision_general_survey_plan.org_no", data); + } + } + queryWrapper.orderByDesc("supervision_general_survey_plan.create_time"); + Page page = this.baseMapper.page(new Page<>(PageFactory.getPageNum(generalSurveyPlanQueryParam), PageFactory.getPageSize(generalSurveyPlanQueryParam)), queryWrapper); + + page.getRecords().stream().forEach(temp->{ + temp.setOrgName((deptFeignClient.getDeptById(temp.getOrgNo()).getData().getName())); + }); + + return page; + + } + + @Override + public SupervisionGeneralSurveyPlanVO querySurveyDetail(String id) { + SupervisionGeneralSurveyPlanVO supervisionGeneralSurveyPlanVO = new SupervisionGeneralSurveyPlanVO(); + SupervisionGeneralSurveyPlanPO byId = this.getById(id); + BeanUtils.copyProperties(byId,supervisionGeneralSurveyPlanVO); + //获取普测下电站详情 + List list = supervisionGeneralSurveyPlanDetailPOService.lambdaQuery().eq(SupervisionGeneralSurveyPlanDetailPO::getPlanNo, id).list(); + supervisionGeneralSurveyPlanVO.setSupervisionGeneralSurveyPlanDetailPOS(list); + return supervisionGeneralSurveyPlanVO; + } + + @Override + public List initDetpStataionTree(String orgId) { + List data = deptFeignClient.allDeptList().getData(); + List deptSubstationVOList = data.stream().map(temp -> { + DeptSubstationVO deptSubstationVO = new DeptSubstationVO(); + BeanUtils.copyProperties(temp, deptSubstationVO); + deptSubstationVO.setDisabled(true); + deptSubstationVO.setFlag(true); + SubstationParam param = new SubstationParam(); + param.setOrgIds(Arrays.asList(temp.getCode())); + List list1 = commTerminalGeneralClient.tagOrIdGetSub(param).getData(); + List children = deptSubstationVO.getChildren(); + List collect = list1.stream().map(statationStat -> { + DeptSubstationVO deptSubstationVO1 = new DeptSubstationVO(); + deptSubstationVO1.setId(statationStat.getId()); + deptSubstationVO1.setPid(temp.getId()); + deptSubstationVO1.setName(statationStat.getName()); +// if (finalSubIds.contains(statationStat.getId())) { +// deptSubstationVO1.setDisabled(true); +// } + deptSubstationVO1.setFlag(true); + return deptSubstationVO1; + }).collect(Collectors.toList()); + children.addAll(collect); + + return deptSubstationVO; + }).collect(Collectors.toList()); + + // 遍历两次data来组装带有children关联性的对象,如果找到子级就删除result的数据 + List result = new ArrayList<>(deptSubstationVOList); + for (DeptSubstationVO pv : deptSubstationVOList) { + for (DeptSubstationVO pv2 : deptSubstationVOList) { + + /*如果本级id与数据的父id相同,就说明是子父级关系*/ + if (pv.getId().equals(pv2.getPid())) { + pv.getChildren().add(pv2); + result.remove(pv2); + } + } + } + + result = recursion(result.get(0), orgId); + return result; + } + + @Override + public void updateStatus(String businessKey, Integer status) { + this.lambdaUpdate().set(SupervisionGeneralSurveyPlanPO::getStatus,status).eq(SupervisionGeneralSurveyPlanPO::getPlanNo,businessKey).update(); + } + + + public List recursion(DeptSubstationVO result, String orgdid) { + List deptSubstationVOList = new ArrayList<>(); + if (Objects.equals(result.getId(), orgdid)) { + deptSubstationVOList.add(result); + return deptSubstationVOList; + + } else { + for (DeptSubstationVO deptSubstationVO : result.getChildren()) { + + List recursion = recursion(deptSubstationVO, orgdid); + if (recursion.size() > 0) { + return recursion; + } + + } + } + return deptSubstationVOList; + } + + /** + * @Description: 校验计划名称是否存在 + * @Param: * @param userReportParam 用户申请数据 + * * @param isExcludeSelf 是否排除自己,一般新增不排除,更新时需要排除自己 + * @return: void + * @Author: clam + * @Date: 2024/5/13 + */ + private void checkPlanName(SupervisionGeneralSurveyPlanParm supervisionGeneralSurveyPlanParm, boolean isExcludeSelf) { + LambdaQueryWrapper userReportPOLambdaQueryWrapper = new LambdaQueryWrapper<>(); + userReportPOLambdaQueryWrapper + .eq(SupervisionGeneralSurveyPlanPO::getPlanName, supervisionGeneralSurveyPlanParm.getPlanName()) + .eq(SupervisionGeneralSurveyPlanPO::getState, DataStateEnum.ENABLE.getCode()); + //更新的时候,需排除当前记录 + if (isExcludeSelf) { + if (supervisionGeneralSurveyPlanParm instanceof SupervisionGeneralSurveyPlanParm.SupervisionGeneralSurveyPlanUpdate) { + userReportPOLambdaQueryWrapper.ne(SupervisionGeneralSurveyPlanPO::getPlanNo, ((SupervisionGeneralSurveyPlanParm.SupervisionGeneralSurveyPlanUpdate) supervisionGeneralSurveyPlanParm).getPlanNo()); + } + } + List list = this.baseMapper.selectList(userReportPOLambdaQueryWrapper); + 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(supervisionGeneralSurveyPlanParm.getPlanName().concat(",该计划已被").concat(list.get(0).getCreateBy()).concat("申请")); + } + } + } +}