From 499d9c5611900d0f31176d363cd173400c25a864 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Tue, 23 Jun 2026 17:34:39 +0800 Subject: [PATCH] =?UTF-8?q?feat(flow):=20=E6=B7=BB=E5=8A=A0=E6=8A=95?= =?UTF-8?q?=E8=AF=89=E5=A4=84=E7=90=86=E9=A9=B3=E5=9B=9E=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在ITsComplaintAcceptService接口中新增opinionReject和feedbackReject方法 - 在TsComplaintAcceptController控制器中添加意见驳回和反馈驳回的REST端点 - 实现TsComplaintAcceptServiceImpl中的驳回业务逻辑,包括状态更新和标记设置 - 为TsComplaintTask和TsPlanExecuteRel实体类添加rejectMark字段 - 更新相关BO、VO类和XML映射文件以支持驳回标记字段 - 实现驳回时对当前记录和其他关联记录的状态更新机制 --- .../TsComplaintAcceptController.java | 28 +++++++ .../com/klp/flow/domain/TsComplaintTask.java | 4 + .../com/klp/flow/domain/TsPlanExecuteRel.java | 4 + .../klp/flow/domain/bo/TsComplaintTaskBo.java | 4 + .../flow/domain/bo/TsPlanExecuteRelBo.java | 4 + .../klp/flow/domain/vo/TsComplaintTaskVo.java | 4 + .../flow/domain/vo/TsPlanExecuteRelVo.java | 4 + .../service/ITsComplaintAcceptService.java | 10 +++ .../impl/TsComplaintAcceptServiceImpl.java | 76 +++++++++++++++++++ .../impl/TsComplaintTaskServiceImpl.java | 1 + .../impl/TsPlanExecuteRelServiceImpl.java | 1 + .../mapper/flow/TsComplaintTaskMapper.xml | 1 + .../mapper/flow/TsPlanExecuteRelMapper.xml | 1 + 13 files changed, 142 insertions(+) diff --git a/klp-flow/src/main/java/com/klp/flow/controller/TsComplaintAcceptController.java b/klp-flow/src/main/java/com/klp/flow/controller/TsComplaintAcceptController.java index 80069725c..8ee89044a 100644 --- a/klp-flow/src/main/java/com/klp/flow/controller/TsComplaintAcceptController.java +++ b/klp-flow/src/main/java/com/klp/flow/controller/TsComplaintAcceptController.java @@ -122,4 +122,32 @@ public class TsComplaintAcceptController extends BaseController { List deptIdList = Arrays.stream(deptIds.split(",")).map(Long::parseLong).collect(Collectors.toList()); return toAjax(iTsComplaintAcceptService.feedbackDispatch(acceptId, deptIdList)); } + + /** + * 意见驳回:当前部门taskStatus→1、rejectMark→1,主表flowStatus→1,其他部门rejectMark→2 + * + * @param taskId 代办任务ID + * @param reason 驳回意见(填入deptOpinion) + */ + @Log(title = "意见驳回", businessType = BusinessType.UPDATE) + @PostMapping("/opinionReject/{taskId}") + public R opinionReject(@NotNull(message = "主键不能为空") + @PathVariable Long taskId, + @RequestParam String reason) { + return toAjax(iTsComplaintAcceptService.opinionReject(taskId, reason)); + } + + /** + * 反馈驳回:当前部门executeStatus→1、rejectMark→1,主表flowStatus→3,其他部门rejectMark→2 + * + * @param relId 执行反馈记录ID + * @param reason 驳回原因(填入executeResult) + */ + @Log(title = "反馈驳回", businessType = BusinessType.UPDATE) + @PostMapping("/feedbackReject/{relId}") + public R feedbackReject(@NotNull(message = "主键不能为空") + @PathVariable Long relId, + @RequestParam String reason) { + return toAjax(iTsComplaintAcceptService.feedbackReject(relId, reason)); + } } diff --git a/klp-flow/src/main/java/com/klp/flow/domain/TsComplaintTask.java b/klp-flow/src/main/java/com/klp/flow/domain/TsComplaintTask.java index e89b647ed..14969b3ae 100644 --- a/klp-flow/src/main/java/com/klp/flow/domain/TsComplaintTask.java +++ b/klp-flow/src/main/java/com/klp/flow/domain/TsComplaintTask.java @@ -62,6 +62,10 @@ public class TsComplaintTask extends BaseEntity { * 备注 */ private String remark; + /** + * 驳回标记 0=无驳回 1=本部门驳回 2=存在部门驳回 + */ + private Long rejectMark; /** * 删除标识 0=正常 2=删除 */ diff --git a/klp-flow/src/main/java/com/klp/flow/domain/TsPlanExecuteRel.java b/klp-flow/src/main/java/com/klp/flow/domain/TsPlanExecuteRel.java index 44894745b..26d806159 100644 --- a/klp-flow/src/main/java/com/klp/flow/domain/TsPlanExecuteRel.java +++ b/klp-flow/src/main/java/com/klp/flow/domain/TsPlanExecuteRel.java @@ -62,6 +62,10 @@ public class TsPlanExecuteRel extends BaseEntity { * 备注 */ private String remark; + /** + * 驳回标记 0=无驳回 1=本部门驳回 2=存在部门驳回 + */ + private Long rejectMark; /** * 删除标识 0=正常 2=删除 */ diff --git a/klp-flow/src/main/java/com/klp/flow/domain/bo/TsComplaintTaskBo.java b/klp-flow/src/main/java/com/klp/flow/domain/bo/TsComplaintTaskBo.java index 724f982a8..1247c7a64 100644 --- a/klp-flow/src/main/java/com/klp/flow/domain/bo/TsComplaintTaskBo.java +++ b/klp-flow/src/main/java/com/klp/flow/domain/bo/TsComplaintTaskBo.java @@ -64,6 +64,10 @@ public class TsComplaintTaskBo extends BaseEntity { */ private String fillFile; + /** + * 驳回标记 0=无驳回 1=本部门驳回 2=存在部门驳回 + */ + private Long rejectMark; /** * 备注 */ diff --git a/klp-flow/src/main/java/com/klp/flow/domain/bo/TsPlanExecuteRelBo.java b/klp-flow/src/main/java/com/klp/flow/domain/bo/TsPlanExecuteRelBo.java index a2ea2e2bc..11498cbdc 100644 --- a/klp-flow/src/main/java/com/klp/flow/domain/bo/TsPlanExecuteRelBo.java +++ b/klp-flow/src/main/java/com/klp/flow/domain/bo/TsPlanExecuteRelBo.java @@ -64,6 +64,10 @@ public class TsPlanExecuteRelBo extends BaseEntity { */ private String feedbackFile; + /** + * 驳回标记 0=无驳回 1=本部门驳回 2=存在部门驳回 + */ + private Long rejectMark; /** * 备注 */ diff --git a/klp-flow/src/main/java/com/klp/flow/domain/vo/TsComplaintTaskVo.java b/klp-flow/src/main/java/com/klp/flow/domain/vo/TsComplaintTaskVo.java index 5e3140214..238c4c09e 100644 --- a/klp-flow/src/main/java/com/klp/flow/domain/vo/TsComplaintTaskVo.java +++ b/klp-flow/src/main/java/com/klp/flow/domain/vo/TsComplaintTaskVo.java @@ -76,6 +76,10 @@ public class TsComplaintTaskVo { @ExcelProperty(value = "意见文件") private String fillFile; + /** + * 驳回标记 0=无驳回 1=本部门驳回 2=存在部门驳回 + */ + private Long rejectMark; /** * 备注 */ diff --git a/klp-flow/src/main/java/com/klp/flow/domain/vo/TsPlanExecuteRelVo.java b/klp-flow/src/main/java/com/klp/flow/domain/vo/TsPlanExecuteRelVo.java index e7c54f87e..4553f7488 100644 --- a/klp-flow/src/main/java/com/klp/flow/domain/vo/TsPlanExecuteRelVo.java +++ b/klp-flow/src/main/java/com/klp/flow/domain/vo/TsPlanExecuteRelVo.java @@ -75,6 +75,10 @@ public class TsPlanExecuteRelVo { @ExcelProperty(value = "反馈文件") private String feedbackFile; + /** + * 驳回标记 0=无驳回 1=本部门驳回 2=存在部门驳回 + */ + private Long rejectMark; /** * 备注 */ diff --git a/klp-flow/src/main/java/com/klp/flow/service/ITsComplaintAcceptService.java b/klp-flow/src/main/java/com/klp/flow/service/ITsComplaintAcceptService.java index be9a483be..dfb5e005f 100644 --- a/klp-flow/src/main/java/com/klp/flow/service/ITsComplaintAcceptService.java +++ b/klp-flow/src/main/java/com/klp/flow/service/ITsComplaintAcceptService.java @@ -56,4 +56,14 @@ public interface ITsComplaintAcceptService { * 反馈下发:修改flow_status=4,按传入部门创建执行反馈记录 */ Boolean feedbackDispatch(Long acceptId, List deptIds); + + /** + * 意见驳回:taskStatus→1、rejectMark→1,主表flowStatus→1,其他task的rejectMark→2 + */ + Boolean opinionReject(Long taskId, String reason); + + /** + * 反馈驳回:executeStatus→1、rejectMark→1,主表flowStatus→3,其他rel的rejectMark→2 + */ + Boolean feedbackReject(Long relId, String reason); } diff --git a/klp-flow/src/main/java/com/klp/flow/service/impl/TsComplaintAcceptServiceImpl.java b/klp-flow/src/main/java/com/klp/flow/service/impl/TsComplaintAcceptServiceImpl.java index 127bb408d..f40bb00f0 100644 --- a/klp-flow/src/main/java/com/klp/flow/service/impl/TsComplaintAcceptServiceImpl.java +++ b/klp-flow/src/main/java/com/klp/flow/service/impl/TsComplaintAcceptServiceImpl.java @@ -184,6 +184,82 @@ public class TsComplaintAcceptServiceImpl implements ITsComplaintAcceptService { return true; } + /** + * 意见驳回 + * 当前task:taskStatus→1(已审核)、rejectMark→1(本部门驳回) + * 主表:flowStatus→1(待审核) + * 其他task:若rejectMark!=1则→2(存在部门驳回) + */ + @Override + public Boolean opinionReject(Long taskId, String reason) { + if (taskId == null) { + return false; + } + TsComplaintTask currentTask = tsComplaintTaskMapper.selectById(taskId); + if (currentTask == null) { + return false; + } + Long acceptId = currentTask.getAcceptId(); + // 1. 更新当前task:taskStatus=1, rejectMark=1 + LambdaUpdateWrapper taskUw = Wrappers.lambdaUpdate(); + taskUw.eq(TsComplaintTask::getTaskId, taskId) + .set(TsComplaintTask::getTaskStatus, 1L) + .set(TsComplaintTask::getRejectMark, 1L) + .set(TsComplaintTask::getDeptOpinion, reason); + tsComplaintTaskMapper.update(null, taskUw); + // 2. 主表flowStatus→1(待审核) + LambdaUpdateWrapper acceptUw = Wrappers.lambdaUpdate(); + acceptUw.eq(TsComplaintAccept::getAcceptId, acceptId) + .set(TsComplaintAccept::getFlowStatus, 1L); + baseMapper.update(null, acceptUw); + // 3. 同acceptId下其他task:若rejectMark!=1则→2 + LambdaUpdateWrapper otherUw = Wrappers.lambdaUpdate(); + otherUw.eq(TsComplaintTask::getAcceptId, acceptId) + .ne(TsComplaintTask::getTaskId, taskId) + .ne(TsComplaintTask::getRejectMark, 1L) + .set(TsComplaintTask::getRejectMark, 2L); + tsComplaintTaskMapper.update(null, otherUw); + return true; + } + + /** + * 反馈驳回 + * 当前rel:executeStatus→1(已反馈)、rejectMark→1(本部门驳回) + * 主表:flowStatus→3(待总负责人汇总方案) + * 其他rel:若rejectMark!=1则→2(存在部门驳回) + */ + @Override + public Boolean feedbackReject(Long relId, String reason) { + if (relId == null) { + return false; + } + TsPlanExecuteRel currentRel = tsPlanExecuteRelMapper.selectById(relId); + if (currentRel == null) { + return false; + } + Long acceptId = currentRel.getAcceptId(); + // 1. 更新当前rel:executeStatus=1, rejectMark=1 + LambdaUpdateWrapper relUw = Wrappers.lambdaUpdate(); + relUw.eq(TsPlanExecuteRel::getRelId, relId) + .set(TsPlanExecuteRel::getExecuteStatus, 1L) + .set(TsPlanExecuteRel::getRejectMark, 1L) + .set(TsPlanExecuteRel::getExecuteResult, reason); + tsPlanExecuteRelMapper.update(null, relUw); + // 2. 主表flowStatus→3(待总负责人汇总方案) + LambdaUpdateWrapper acceptUw = Wrappers.lambdaUpdate(); + acceptUw.eq(TsComplaintAccept::getAcceptId, acceptId) + .set(TsComplaintAccept::getFlowStatus, 3L); + baseMapper.update(null, acceptUw); + // 3. 同acceptId下其他rel:若rejectMark!=1则→2 + LambdaUpdateWrapper otherUw = Wrappers.lambdaUpdate(); + otherUw.eq(TsPlanExecuteRel::getAcceptId, acceptId) + .ne(TsPlanExecuteRel::getRelId, relId) + .ne(TsPlanExecuteRel::getRejectMark, 1L) + .set(TsPlanExecuteRel::getRejectMark, 2L); + tsPlanExecuteRelMapper.update(null, otherUw); + return true; + } + /** * 保存前的数据校验 */ diff --git a/klp-flow/src/main/java/com/klp/flow/service/impl/TsComplaintTaskServiceImpl.java b/klp-flow/src/main/java/com/klp/flow/service/impl/TsComplaintTaskServiceImpl.java index 399e0ef18..0598a2e9b 100644 --- a/klp-flow/src/main/java/com/klp/flow/service/impl/TsComplaintTaskServiceImpl.java +++ b/klp-flow/src/main/java/com/klp/flow/service/impl/TsComplaintTaskServiceImpl.java @@ -114,6 +114,7 @@ public class TsComplaintTaskServiceImpl implements ITsComplaintTaskService { lqw.eq(bo.getFillUserId() != null, TsComplaintTask::getFillUserId, bo.getFillUserId()); lqw.eq(bo.getFillTime() != null, TsComplaintTask::getFillTime, bo.getFillTime()); lqw.eq(StringUtils.isNotBlank(bo.getFillFile()), TsComplaintTask::getFillFile, bo.getFillFile()); + lqw.eq(bo.getRejectMark() != null, TsComplaintTask::getRejectMark, bo.getRejectMark()); return lqw; } diff --git a/klp-flow/src/main/java/com/klp/flow/service/impl/TsPlanExecuteRelServiceImpl.java b/klp-flow/src/main/java/com/klp/flow/service/impl/TsPlanExecuteRelServiceImpl.java index e618fafe3..5e10be652 100644 --- a/klp-flow/src/main/java/com/klp/flow/service/impl/TsPlanExecuteRelServiceImpl.java +++ b/klp-flow/src/main/java/com/klp/flow/service/impl/TsPlanExecuteRelServiceImpl.java @@ -111,6 +111,7 @@ public class TsPlanExecuteRelServiceImpl implements ITsPlanExecuteRelService { lqw.eq(bo.getFeedbackUserId() != null, TsPlanExecuteRel::getFeedbackUserId, bo.getFeedbackUserId()); lqw.eq(bo.getFeedbackTime() != null, TsPlanExecuteRel::getFeedbackTime, bo.getFeedbackTime()); lqw.eq(StringUtils.isNotBlank(bo.getFeedbackFile()), TsPlanExecuteRel::getFeedbackFile, bo.getFeedbackFile()); + lqw.eq(bo.getRejectMark() != null, TsPlanExecuteRel::getRejectMark, bo.getRejectMark()); return lqw; } diff --git a/klp-flow/src/main/resources/mapper/flow/TsComplaintTaskMapper.xml b/klp-flow/src/main/resources/mapper/flow/TsComplaintTaskMapper.xml index e2dff390c..9dd230413 100644 --- a/klp-flow/src/main/resources/mapper/flow/TsComplaintTaskMapper.xml +++ b/klp-flow/src/main/resources/mapper/flow/TsComplaintTaskMapper.xml @@ -20,6 +20,7 @@ + diff --git a/klp-flow/src/main/resources/mapper/flow/TsPlanExecuteRelMapper.xml b/klp-flow/src/main/resources/mapper/flow/TsPlanExecuteRelMapper.xml index f25b391f1..0034b4516 100644 --- a/klp-flow/src/main/resources/mapper/flow/TsPlanExecuteRelMapper.xml +++ b/klp-flow/src/main/resources/mapper/flow/TsPlanExecuteRelMapper.xml @@ -20,6 +20,7 @@ +