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 @@ +