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 355c1616..28b0a808 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 @@ -1,12 +1,15 @@ package com.klp.flow.service.impl; import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.klp.common.core.page.TableDataInfo; import com.klp.common.core.domain.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.klp.common.utils.StringUtils; +import com.klp.flow.domain.TsComplaintAccept; +import com.klp.flow.mapper.TsComplaintAcceptMapper; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import com.klp.flow.domain.bo.TsComplaintTaskBo; @@ -31,6 +34,8 @@ public class TsComplaintTaskServiceImpl implements ITsComplaintTaskService { private final TsComplaintTaskMapper baseMapper; + private final TsComplaintAcceptMapper tsComplaintAcceptMapper; + /** * 查询各部门投诉代办任务&意见 */ @@ -82,6 +87,8 @@ public class TsComplaintTaskServiceImpl implements ITsComplaintTaskService { boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setTaskId(add.getTaskId()); + // 同步受理单流程状态 + syncAcceptFlowStatus(add.getAcceptId()); } return flag; } @@ -93,7 +100,37 @@ public class TsComplaintTaskServiceImpl implements ITsComplaintTaskService { public Boolean updateByBo(TsComplaintTaskBo bo) { TsComplaintTask update = BeanUtil.toBean(bo, TsComplaintTask.class); validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; + boolean flag = baseMapper.updateById(update) > 0; + if (flag){ + syncAcceptFlowStatus(update.getAcceptId()); + } + return flag; + } + + /** + * 同步受理单流程状态 + * 查看当前受理单下所有代办任务: + * - 所有task_status都为1 → flow_status = 3(待总负责人汇总方案) + * - 存在任一task_status不为1 → flow_status = 2(部门意见填写中) + */ + private void syncAcceptFlowStatus(Long acceptId) { + if (acceptId == null) { + return; + } + // 查询该受理单下所有未删除的代办任务 + List taskList = baseMapper.selectList( + Wrappers.lambdaQuery() + .eq(TsComplaintTask::getAcceptId, acceptId) + ); + // 判断所有任务是否都已完成(taskStatus = 1) + boolean allCompleted = !taskList.isEmpty() && taskList.stream() + .allMatch(task -> task.getTaskStatus() != null && task.getTaskStatus() == 1L); + Long targetFlowStatus = allCompleted ? 3L : 2L; + // 更新受理单流程状态 + LambdaUpdateWrapper uw = Wrappers.lambdaUpdate(); + uw.eq(TsComplaintAccept::getAcceptId, acceptId) + .set(TsComplaintAccept::getFlowStatus, targetFlowStatus); + tsComplaintAcceptMapper.update(null, uw); } /** 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 5d71889c..b13a61df 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 @@ -5,8 +5,11 @@ import com.klp.common.core.page.TableDataInfo; import com.klp.common.core.domain.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.klp.common.utils.StringUtils; +import com.klp.flow.domain.TsComplaintAccept; +import com.klp.flow.mapper.TsComplaintAcceptMapper; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import com.klp.flow.domain.bo.TsPlanExecuteRelBo; @@ -31,6 +34,8 @@ public class TsPlanExecuteRelServiceImpl implements ITsPlanExecuteRelService { private final TsPlanExecuteRelMapper baseMapper; + private final TsComplaintAcceptMapper tsComplaintAcceptMapper; + /** * 查询最终方案下发部门及执行反馈 */ @@ -82,6 +87,8 @@ public class TsPlanExecuteRelServiceImpl implements ITsPlanExecuteRelService { boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setRelId(add.getRelId()); + // 同步受理单流程状态 + syncAcceptFlowStatus(add.getAcceptId()); } return flag; } @@ -93,7 +100,37 @@ public class TsPlanExecuteRelServiceImpl implements ITsPlanExecuteRelService { public Boolean updateByBo(TsPlanExecuteRelBo bo) { TsPlanExecuteRel update = BeanUtil.toBean(bo, TsPlanExecuteRel.class); validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; + boolean flag = baseMapper.updateById(update) > 0; + if (flag) { + syncAcceptFlowStatus(update.getAcceptId()); + } + return flag; + } + + /** + * 同步受理单流程状态 + * 查看当前受理单下所有执行反馈: + * - 所有execute_status都为1 → flow_status = 5(执行完成) + * - 存在任一execute_status不为1 → flow_status = 4(执行反馈中) + */ + private void syncAcceptFlowStatus(Long acceptId) { + if (acceptId == null) { + return; + } + // 查询该受理单下所有执行反馈记录 + List relList = baseMapper.selectList( + Wrappers.lambdaQuery() + .eq(TsPlanExecuteRel::getAcceptId, acceptId) + ); + // 判断所有执行反馈是否都已完成(executeStatus = 1) + boolean allCompleted = !relList.isEmpty() && relList.stream() + .allMatch(rel -> rel.getExecuteStatus() != null && rel.getExecuteStatus() == 1L); + Long targetFlowStatus = allCompleted ? 5L : 4L; + // 更新受理单流程状态 + LambdaUpdateWrapper uw = Wrappers.lambdaUpdate(); + uw.eq(TsComplaintAccept::getAcceptId, acceptId) + .set(TsComplaintAccept::getFlowStatus, targetFlowStatus); + tsComplaintAcceptMapper.update(null, uw); } /**