From ecbb31a90fd1edfa05040abb0af136c01757de30 Mon Sep 17 00:00:00 2001 From: buaixuexideshitongxue <2936013465@qq.com> Date: Wed, 24 Dec 2025 15:16:14 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=84=E8=AD=A6=E7=9B=91=E7=9D=A3=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E6=94=B9=E9=80=A0--=E5=8F=96=E6=B6=88=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=E6=8A=A5=E5=AE=A1=E4=BA=BA=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/ReportFlowController.java | 15 ++++- .../controller/warning/WarningController.java | 60 ++++++++++--------- .../pojo/entity/report/ReportFlow.java | 5 ++ .../request/warning/WarningEndRequest.java | 36 +++++++++++ .../service/Report/ReportFlowService.java | 54 +++++++++++++---- 5 files changed, 129 insertions(+), 41 deletions(-) create mode 100644 src/main/java/com/biutag/supervision/pojo/request/warning/WarningEndRequest.java diff --git a/src/main/java/com/biutag/supervision/controller/report/ReportFlowController.java b/src/main/java/com/biutag/supervision/controller/report/ReportFlowController.java index 5c9d55f..1db11ee 100644 --- a/src/main/java/com/biutag/supervision/controller/report/ReportFlowController.java +++ b/src/main/java/com/biutag/supervision/controller/report/ReportFlowController.java @@ -5,6 +5,7 @@ import com.biutag.supervision.pojo.Result; import com.biutag.supervision.pojo.entity.InformMessage; import com.biutag.supervision.pojo.param.ApprovalFlowQueryParam; import com.biutag.supervision.pojo.param.Report.FlowQueryParam; +import com.biutag.supervision.pojo.request.warning.WarningEndRequest; import com.biutag.supervision.service.InformMessageService; import com.biutag.supervision.service.Report.ReportFlowService; import lombok.RequiredArgsConstructor; @@ -35,7 +36,7 @@ public class ReportFlowController { } /** - * 审核(预警) + * 提交给领导 * */ @PostMapping("/auditWarning") public Result auditWarning(@RequestBody FlowQueryParam queryParam){ @@ -46,6 +47,18 @@ public class ReportFlowController { } } + + /** + * 结束预警 + * */ + @PostMapping("/auditEndWarning") + public Result auditEndWarning(@RequestBody WarningEndRequest queryParam){ + return flowService.auditEndWarning(queryParam); + } + + + + /** * 审核(通知单位) * */ diff --git a/src/main/java/com/biutag/supervision/controller/warning/WarningController.java b/src/main/java/com/biutag/supervision/controller/warning/WarningController.java index f3b1482..0c289dc 100644 --- a/src/main/java/com/biutag/supervision/controller/warning/WarningController.java +++ b/src/main/java/com/biutag/supervision/controller/warning/WarningController.java @@ -56,7 +56,6 @@ public class WarningController { public Result> getPage(@RequestBody WarningQueryParam queryParam){ UserAuth user = UserContextHolder.getCurrentUser(); QueryWrapper wrapper= new QueryWrapper() - .eq(StrUtil.isNotBlank(queryParam.getProjectUnitId()),"p.project_unit_id",queryParam.getProjectUnitId()) .eq(StrUtil.isNotBlank(queryParam.getAuditUnitId()),"p.audit_unit_id",queryParam.getAuditUnitId()) .eq(StrUtil.isNotBlank(queryParam.getReportName()),"p.report_name",queryParam.getReportName()) .eq("f.report_link","end") @@ -64,37 +63,45 @@ public class WarningController { .eq(StrUtil.isNotBlank(queryParam.getWarningState()),"p.warning_state",queryParam.getWarningState()) .eq("p.node",FlowStateEnum.End.getLabel()) .eq("p.delete_flag", DeleteStatusEnum.NO.getCode()); - if (!AppConstants.USER_TYPE_SUPER.equals(user.getUserType()) && !user.getRoleCodes().contains(RoleCodeEnum.FIRST_ADMIN.getCode())) { - List orgIds =new ArrayList<>(); - if(!user.getAuthDepartIds().isEmpty()){ - orgIds = departService.getAllNodeIds(user.getAuthDepartIds()); - wrapper.in("p.project_unit_id", orgIds); - }else{ - orgIds = departService.getAllNodeIds(user.getDepartId()); - wrapper.in("p.project_unit_id", orgIds); - } -// List orgIds = departService.getAllNodeIds(user.getAuthDepartIds()); -// wrapper.in("p.project_unit_id", orgIds); - } - if(CollectionUtil.isNotEmpty(queryParam.getPublicationDate())){ - wrapper.between(CollectionUtil.isNotEmpty(queryParam.getPublicationDate()),"p.publication_date",queryParam.getPublicationDate().get(0),queryParam.getPublicationDate().get(1)); - } - if(CollectionUtil.isNotEmpty(queryParam.getEndDate())){ - wrapper.between(CollectionUtil.isNotEmpty(queryParam.getEndDate()),"p.archiving",queryParam.getEndDate().get(0),queryParam.getEndDate().get(1)); - } - wrapper.orderByAsc("p.warning_state"); - wrapper.groupBy("p.id"); + if (StrUtil.isNotBlank(queryParam.getAuditUnitId())) { + // 获取选择的审计单位及其所有子部门的ID + wrapper.in("p.audit_unit_id", departService.getAllNodeIds(queryParam.getAuditUnitId())); + } + if (StrUtil.isNotBlank(queryParam.getProjectUnitId())){ + wrapper.in("p.project_unit_id", departService.getAllNodeIds(queryParam.getProjectUnitId())); + } + if (!AppConstants.USER_TYPE_SUPER.equals(user.getUserType()) && !user.getRoleCodes().contains(RoleCodeEnum.FIRST_ADMIN.getCode())) { + List orgIds =new ArrayList<>(); + if(!user.getAuthDepartIds().isEmpty()){ + orgIds = departService.getAllNodeIds(user.getAuthDepartIds()); + wrapper.in("p.project_unit_id", orgIds); + }else{ + orgIds = departService.getAllNodeIds(user.getDepartId()); + wrapper.in("p.project_unit_id", orgIds); + } +// List orgIds = departService.getAllNodeIds(user.getAuthDepartIds()); +// wrapper.in("p.project_unit_id", orgIds); + } + if(CollectionUtil.isNotEmpty(queryParam.getPublicationDate())){ + wrapper.between(CollectionUtil.isNotEmpty(queryParam.getPublicationDate()),"p.publication_date",queryParam.getPublicationDate().get(0),queryParam.getPublicationDate().get(1)); + } + if(CollectionUtil.isNotEmpty(queryParam.getEndDate())){ + wrapper.between(CollectionUtil.isNotEmpty(queryParam.getEndDate()),"p.archiving",queryParam.getEndDate().get(0),queryParam.getEndDate().get(1)); + } + wrapper.orderByAsc("p.warning_state"); + wrapper.groupBy("p.id"); Page page= reportProjectService.getPageWarning(new Page<>(queryParam.getCurrent(),queryParam.getSize()),wrapper,queryParam.getWarningState()); List entryWindowVos = page.getRecords(); entryWindowVos.forEach(s->{ List list = recordService.list(new LambdaQueryWrapper().eq(WarningRecord::getReportId,s.getId())); if(CollectionUtil.isNotEmpty(list)) { - //0的代表已下发问题 - List records= list.stream().filter(x-> "0".equals(x.getFlowState())).toList(); - //为空表示已提交审核 - List auditNumber= list.stream().filter(x-> StrUtil.isEmpty(x.getFlowState())).toList(); + //1的代表已下发问题 + List records= list.stream().filter(x-> "1".equals(x.getFlowState())).toList(); +// 为空表示已提交审核 +// List auditNumber= list.stream().filter(x-> StrUtil.isEmpty(x.getFlowState())).toList(); //1 为 已下发问题 ,2 为已提交审核,0为常规 - String stateData = CollectionUtil.isNotEmpty(records)?"1":(CollectionUtil.isNotEmpty(auditNumber)?"2":"0"); +// String stateData = CollectionUtil.isNotEmpty(records)?"1":(CollectionUtil.isNotEmpty(auditNumber)?"2":"0"); + String stateData = !records.isEmpty()? "1": "0"; s.setStateData(stateData); List ids = list.stream().map(x -> x.getId()).toList(); long counts = contentService.count(new LambdaQueryWrapper().in(WarningContent::getWarningId, ids) @@ -102,7 +109,6 @@ public class WarningController { s.setWarningContent(counts); } }); - entryWindowVos.sort(Comparator.comparingInt(e -> Integer.parseInt(e.getStateData()))); page.setRecords(entryWindowVos); return Result.success(page); diff --git a/src/main/java/com/biutag/supervision/pojo/entity/report/ReportFlow.java b/src/main/java/com/biutag/supervision/pojo/entity/report/ReportFlow.java index d04e1b5..94b8250 100644 --- a/src/main/java/com/biutag/supervision/pojo/entity/report/ReportFlow.java +++ b/src/main/java/com/biutag/supervision/pojo/entity/report/ReportFlow.java @@ -52,6 +52,11 @@ public class ReportFlow { @TableField("approver_unit_id") private String approverUnitId; + /** + * 项目报审 report + * 项目预警下发 warning + * 直接结束 end + */ @TableField("type") private String type; diff --git a/src/main/java/com/biutag/supervision/pojo/request/warning/WarningEndRequest.java b/src/main/java/com/biutag/supervision/pojo/request/warning/WarningEndRequest.java new file mode 100644 index 0000000..a542131 --- /dev/null +++ b/src/main/java/com/biutag/supervision/pojo/request/warning/WarningEndRequest.java @@ -0,0 +1,36 @@ +package com.biutag.supervision.pojo.request.warning; + +import cn.hutool.core.util.StrUtil; +import com.biutag.supervision.aop.ParamChecked; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; + +/** + * @ClassName WarningEndRequest + * @Description WarningEndRequest + * @Author shihao + * @Date 2025/12/24 11:40 + */ +@Getter +@Setter +@Schema(description = "预警结束请求") +public class WarningEndRequest implements ParamChecked { + + @Schema(description = "项目id") + private String reportId; + + //是否通知报审人 + private String isInform; + + //审批意见 + private String message; + + + @Override + public void check() { + if (StrUtil.isBlank(reportId)){ + throw new RuntimeException("项目id不能为空"); + } + } +} diff --git a/src/main/java/com/biutag/supervision/service/Report/ReportFlowService.java b/src/main/java/com/biutag/supervision/service/Report/ReportFlowService.java index cf6a8b1..dbc8f1b 100644 --- a/src/main/java/com/biutag/supervision/service/Report/ReportFlowService.java +++ b/src/main/java/com/biutag/supervision/service/Report/ReportFlowService.java @@ -1,24 +1,22 @@ package com.biutag.supervision.service.Report; import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson2.JSONObject; import com.baomidou.dynamic.datasource.annotation.DSTransactional; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.biutag.supervision.common.UserContextHolder; -import com.biutag.supervision.controller.warning.WarningController; +import com.biutag.supervision.constants.enums.WarningStateEnum; import com.biutag.supervision.mapper.InformMessageMapper; -import com.biutag.supervision.mapper.Invest.InvertRecordMapper; import com.biutag.supervision.mapper.Report.ReportFlowMapper; import com.biutag.supervision.mapper.Report.ReportProjectMapper; import com.biutag.supervision.mapper.Report.ReportReviewMapper; import com.biutag.supervision.mapper.Warning.WarningRecordMapper; import com.biutag.supervision.mapper.serviceUnit.ServiceUnitMapper; +import com.biutag.supervision.pojo.Result; import com.biutag.supervision.pojo.entity.InformMessage; import com.biutag.supervision.pojo.entity.InvertRecord; import com.biutag.supervision.pojo.entity.report.ReportFlow; @@ -32,27 +30,21 @@ import com.biutag.supervision.pojo.enums.FlowWarningEnum; import com.biutag.supervision.pojo.model.UserAuth; import com.biutag.supervision.pojo.param.ApprovalFlowQueryParam; import com.biutag.supervision.pojo.param.Report.FlowQueryParam; +import com.biutag.supervision.pojo.request.warning.WarningEndRequest; import com.biutag.supervision.pojo.vo.warning.WaringVo; -import com.biutag.supervision.service.InformMessageService; import com.biutag.supervision.service.InvertRecord.InvertRecordService; import com.biutag.supervision.service.Negative.NegativeService; -import com.biutag.supervision.service.ServiceUnit.ServiceUnitService; -import com.biutag.supervision.service.Warning.WarningRecordService; import com.biutag.supervision.util.BigDecimalUtils; -import jakarta.validation.constraints.Negative; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.beans.Transient; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.Date; import java.util.List; -import java.util.concurrent.Flow; /** * @author weipeng @@ -245,7 +237,7 @@ public class ReportFlowService extends ServiceImpl new LambdaUpdateWrapper() .eq(WarningRecord::getId, queryParam.getReportId()) .set(WarningRecord::getArchiving, LocalDateTime.now()) - .set(WarningRecord::getFlowState,"0") +// .set(WarningRecord::getFlowState,"0") .set(WarningRecord::getNode,FlowStateEnum.End.getLabel()) ); //版本存储 @@ -480,5 +472,41 @@ public class ReportFlowService extends ServiceImpl } - + /** + * 直接结束预警 + * @param queryParam + * @return + */ + @Transactional(rollbackFor = Exception.class) + public Result auditEndWarning(WarningEndRequest queryParam) { + ReportProject project = projectMapper.selectById(queryParam.getReportId()); + project.setWarningState(WarningStateEnum.YWJ.getCode()); + projectMapper.updateById(project); + if (ObjectUtil.isNull(project)) { + throw new RuntimeException("操作失败,没有找到对应项目"+ project.getReportName()); + } + project.setWarningState(WarningStateEnum.YWJ.getCode()); + boolean ok1 = projectMapper.updateById(project) > 0; + + UserAuth currentUser = UserContextHolder.getCurrentUser(); + + // 留痕:写一条结束记录 + ReportFlow endFlow = new ReportFlow(); + endFlow.setReportId(queryParam.getReportId()); + endFlow.setReportLink(FlowWarningEnum.end.getLabel()); + endFlow.setReportCode(FlowWarningEnum.end.getValue()); + endFlow.setAreportTime(LocalDateTime.now()); + + endFlow.setApprover(currentUser.getUserName()); + endFlow.setApproverId(currentUser.getEmpNo()); + endFlow.setApproverUnit(currentUser.getDepartName()); + endFlow.setApproverUnitId(currentUser.getDepartId()); + + endFlow.setApproverTime(LocalDateTime.now()); + endFlow.setApproverMessage(queryParam.getMessage()); + endFlow.setApproverState(FlowStateEnum.End.getLabel()); + // + endFlow.setType("end"); + boolean ok2 = baseMapper.insert(endFlow) > 0; + return Result.success(ok1 && ok2); } }