feat(flow): 添加投诉任务和执行反馈的流程状态同步功能
- 在TsComplaintTaskServiceImpl中新增syncAcceptFlowStatus方法 - 在TsPlanExecuteRelServiceImpl中新增syncAcceptFlowStatus方法 - 添加TsComplaintAcceptMapper依赖注入 - 实现任务状态变更时自动同步受理单流程状态 - 完善部门意见填写和执行反馈的状态判断逻辑 - 添加必要的LambdaUpdateWrapper和相关导入包
This commit is contained in:
@@ -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<TsComplaintTask> taskList = baseMapper.selectList(
|
||||
Wrappers.<TsComplaintTask>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<TsComplaintAccept> uw = Wrappers.lambdaUpdate();
|
||||
uw.eq(TsComplaintAccept::getAcceptId, acceptId)
|
||||
.set(TsComplaintAccept::getFlowStatus, targetFlowStatus);
|
||||
tsComplaintAcceptMapper.update(null, uw);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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<TsPlanExecuteRel> relList = baseMapper.selectList(
|
||||
Wrappers.<TsPlanExecuteRel>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<TsComplaintAccept> uw = Wrappers.lambdaUpdate();
|
||||
uw.eq(TsComplaintAccept::getAcceptId, acceptId)
|
||||
.set(TsComplaintAccept::getFlowStatus, targetFlowStatus);
|
||||
tsComplaintAcceptMapper.update(null, uw);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user