feat(flow): 添加受理单ID批量查询功能并优化任务关联信息展示
- 在TsComplaintAcceptBo中新增acceptIds字段用于批量查询 - 实现基于受理单ID列表的批量查询条件构建 - 添加工具方法enrichWithAcceptInfo批量填充受理单信息到任务VO - 为TsComplaintTaskVo和TsPlanExecuteRelVo添加acceptInfo关联字段 - 优化查询逻辑支持实时关联受理单信息展示
This commit is contained in:
@@ -96,5 +96,10 @@ public class TsComplaintAcceptBo extends BaseEntity {
|
||||
*/
|
||||
private List<Long> coilIds;
|
||||
|
||||
/**
|
||||
* 受理单ID列表(批量查询用)
|
||||
*/
|
||||
private List<Long> acceptIds;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -82,5 +82,10 @@ public class TsComplaintTaskVo {
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 关联的受理单信息
|
||||
*/
|
||||
private TsComplaintAcceptVo acceptInfo;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -81,5 +81,7 @@ public class TsPlanExecuteRelVo {
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
// 受理单
|
||||
private TsComplaintAcceptVo acceptInfo;
|
||||
|
||||
}
|
||||
|
||||
@@ -90,6 +90,7 @@ public class TsComplaintAcceptServiceImpl implements ITsComplaintAcceptService {
|
||||
lqw.eq(bo.getFlowStatus() != null, TsComplaintAccept::getFlowStatus, bo.getFlowStatus());
|
||||
lqw.eq(bo.getPrincipalUserId() != null, TsComplaintAccept::getPrincipalUserId, bo.getPrincipalUserId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getPlanContent()), TsComplaintAccept::getPlanContent, bo.getPlanContent());
|
||||
lqw.in(bo.getAcceptIds() != null && !bo.getAcceptIds().isEmpty(), TsComplaintAccept::getAcceptId, bo.getAcceptIds());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.klp.flow.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
@@ -9,6 +10,7 @@ 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.domain.vo.TsComplaintAcceptVo;
|
||||
import com.klp.flow.mapper.TsComplaintAcceptMapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -18,9 +20,11 @@ import com.klp.flow.domain.TsComplaintTask;
|
||||
import com.klp.flow.mapper.TsComplaintTaskMapper;
|
||||
import com.klp.flow.service.ITsComplaintTaskService;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 各部门投诉代办任务&意见Service业务层处理
|
||||
@@ -41,7 +45,11 @@ public class TsComplaintTaskServiceImpl implements ITsComplaintTaskService {
|
||||
*/
|
||||
@Override
|
||||
public TsComplaintTaskVo queryById(Long taskId){
|
||||
return baseMapper.selectVoById(taskId);
|
||||
TsComplaintTaskVo vo = baseMapper.selectVoById(taskId);
|
||||
if (vo != null) {
|
||||
enrichWithAcceptInfo(Collections.singletonList(vo));
|
||||
}
|
||||
return vo;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -51,6 +59,7 @@ public class TsComplaintTaskServiceImpl implements ITsComplaintTaskService {
|
||||
public TableDataInfo<TsComplaintTaskVo> queryPageList(TsComplaintTaskBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<TsComplaintTask> lqw = buildQueryWrapper(bo);
|
||||
Page<TsComplaintTaskVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
enrichWithAcceptInfo(result.getRecords());
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
@@ -60,7 +69,38 @@ public class TsComplaintTaskServiceImpl implements ITsComplaintTaskService {
|
||||
@Override
|
||||
public List<TsComplaintTaskVo> queryList(TsComplaintTaskBo bo) {
|
||||
LambdaQueryWrapper<TsComplaintTask> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
List<TsComplaintTaskVo> list = baseMapper.selectVoList(lqw);
|
||||
enrichWithAcceptInfo(list);
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量查询受理单信息并填充到VO中
|
||||
*/
|
||||
private void enrichWithAcceptInfo(List<TsComplaintTaskVo> voList) {
|
||||
if (CollUtil.isEmpty(voList)) {
|
||||
return;
|
||||
}
|
||||
// 收集所有acceptId(去重)
|
||||
List<Long> acceptIds = voList.stream()
|
||||
.map(TsComplaintTaskVo::getAcceptId)
|
||||
.filter(id -> id != null)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
if (acceptIds.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
// 批量查询受理单信息
|
||||
List<TsComplaintAcceptVo> acceptList = tsComplaintAcceptMapper.selectVoBatchIds(acceptIds);
|
||||
// 按acceptId建立索引
|
||||
Map<Long, TsComplaintAcceptVo> acceptMap = acceptList.stream()
|
||||
.collect(Collectors.toMap(TsComplaintAcceptVo::getAcceptId, a -> a, (a, b) -> a));
|
||||
// 填充到VO中
|
||||
for (TsComplaintTaskVo vo : voList) {
|
||||
if (vo.getAcceptId() != null) {
|
||||
vo.setAcceptInfo(acceptMap.get(vo.getAcceptId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<TsComplaintTask> buildQueryWrapper(TsComplaintTaskBo bo) {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.klp.flow.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
@@ -9,6 +10,8 @@ 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.domain.vo.TsComplaintAcceptVo;
|
||||
import com.klp.flow.domain.vo.TsComplaintTaskVo;
|
||||
import com.klp.flow.mapper.TsComplaintAcceptMapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -21,6 +24,8 @@ import com.klp.flow.service.ITsPlanExecuteRelService;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 最终方案下发部门及执行反馈Service业务层处理
|
||||
@@ -51,16 +56,48 @@ public class TsPlanExecuteRelServiceImpl implements ITsPlanExecuteRelService {
|
||||
public TableDataInfo<TsPlanExecuteRelVo> queryPageList(TsPlanExecuteRelBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<TsPlanExecuteRel> lqw = buildQueryWrapper(bo);
|
||||
Page<TsPlanExecuteRelVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
enrichWithAcceptInfo(result.getRecords());
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量查询受理单信息并填充到VO中
|
||||
*/
|
||||
private void enrichWithAcceptInfo(List<TsPlanExecuteRelVo> voList) {
|
||||
if (CollUtil.isEmpty(voList)) {
|
||||
return;
|
||||
}
|
||||
// 收集所有acceptId(去重)
|
||||
List<Long> acceptIds = voList.stream()
|
||||
.map(TsPlanExecuteRelVo::getAcceptId)
|
||||
.filter(Objects::nonNull)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
if (acceptIds.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
// 批量查询受理单信息
|
||||
List<TsComplaintAcceptVo> acceptList = tsComplaintAcceptMapper.selectVoBatchIds(acceptIds);
|
||||
// 按acceptId建立索引
|
||||
Map<Long, TsComplaintAcceptVo> acceptMap = acceptList.stream()
|
||||
.collect(Collectors.toMap(TsComplaintAcceptVo::getAcceptId, a -> a, (a, b) -> a));
|
||||
// 填充到VO中
|
||||
for (TsPlanExecuteRelVo vo : voList) {
|
||||
if (vo.getAcceptId() != null) {
|
||||
vo.setAcceptInfo(acceptMap.get(vo.getAcceptId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询最终方案下发部门及执行反馈列表
|
||||
*/
|
||||
@Override
|
||||
public List<TsPlanExecuteRelVo> queryList(TsPlanExecuteRelBo bo) {
|
||||
LambdaQueryWrapper<TsPlanExecuteRel> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
List<TsPlanExecuteRelVo> tsPlanExecuteRelVos = baseMapper.selectVoList(lqw);
|
||||
enrichWithAcceptInfo(tsPlanExecuteRelVos);
|
||||
return tsPlanExecuteRelVos;
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<TsPlanExecuteRel> buildQueryWrapper(TsPlanExecuteRelBo bo) {
|
||||
|
||||
Reference in New Issue
Block a user