feat(bpm): 优化薪资付款申请列表展示
- 在 BpmOASalaryService 中新增 getListByProcessInstanceIds 方法 - 在 BpmOASalaryServiceImpl 中实现 getListByProcessInstanceIds 方法 - 修改 BpmTaskExtMapper 中的查询条件,排除自动审批的流程- 在 BpmTaskServiceImpl 中,为待办和已办任务列表添加公司名称展示
This commit is contained in:
parent
c2af2a8374
commit
44a86b1bac
@ -7,6 +7,7 @@ import cn.iocoder.yudao.framework.mybatis.core.query.MPJLambdaWrapperX;
|
|||||||
import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.*;
|
import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.*;
|
||||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmProcessInstanceExtDO;
|
import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmProcessInstanceExtDO;
|
||||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmTaskExtDO;
|
import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmTaskExtDO;
|
||||||
|
import cn.iocoder.yudao.module.bpm.enums.task.BpmConstants;
|
||||||
import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum;
|
import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
@ -100,6 +101,7 @@ public interface BpmTaskExtMapper extends BaseMapperX<BpmTaskExtDO> {
|
|||||||
.eq(StringUtils.isNotEmpty(pageVO.getName()), BpmProcessInstanceExtDO::getName, pageVO.getName()));
|
.eq(StringUtils.isNotEmpty(pageVO.getName()), BpmProcessInstanceExtDO::getName, pageVO.getName()));
|
||||||
queryWrapperX.likeRight(BpmProcessInstanceExtDO::getProcessDefinitionId, "oa_");
|
queryWrapperX.likeRight(BpmProcessInstanceExtDO::getProcessDefinitionId, "oa_");
|
||||||
queryWrapperX.eq(BpmTaskExtDO::getAssigneeUserId, userId);
|
queryWrapperX.eq(BpmTaskExtDO::getAssigneeUserId, userId);
|
||||||
|
queryWrapperX.ne(BpmTaskExtDO::getReason, BpmConstants.AUTO_APPRAVAL);
|
||||||
queryWrapperX.betweenIfPresent(BpmTaskExtDO::getCreateTime, pageVO.getCreateTime());
|
queryWrapperX.betweenIfPresent(BpmTaskExtDO::getCreateTime, pageVO.getCreateTime());
|
||||||
queryWrapperX.orderByDesc(BpmTaskExtDO::getEndTime);
|
queryWrapperX.orderByDesc(BpmTaskExtDO::getEndTime);
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@ import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.salary.BpmOASalaryCrea
|
|||||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOASalaryDO;
|
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOASalaryDO;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 薪资付款申请 Service 接口
|
* 薪资付款申请 Service 接口
|
||||||
@ -13,7 +14,7 @@ import javax.validation.Valid;
|
|||||||
public interface BpmOASalaryService {
|
public interface BpmOASalaryService {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建用章申请
|
* 创建薪资付款申请
|
||||||
*
|
*
|
||||||
* @param userId 用户编号
|
* @param userId 用户编号
|
||||||
* @param createReqVO 创建信息
|
* @param createReqVO 创建信息
|
||||||
@ -22,7 +23,7 @@ public interface BpmOASalaryService {
|
|||||||
Long createSalary(Long userId, @Valid BpmOASalaryCreateReqVO createReqVO);
|
Long createSalary(Long userId, @Valid BpmOASalaryCreateReqVO createReqVO);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新用章申请的状态
|
* 更新薪资付款申请的状态
|
||||||
*
|
*
|
||||||
* @param id 编号
|
* @param id 编号
|
||||||
* @param result 结果
|
* @param result 结果
|
||||||
@ -30,17 +31,24 @@ public interface BpmOASalaryService {
|
|||||||
void updateSalaryResult(Long id, Integer result);
|
void updateSalaryResult(Long id, Integer result);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得用章申请
|
* 获得薪资付款申请
|
||||||
*
|
*
|
||||||
* @param id 编号
|
* @param id 编号
|
||||||
* @return 用章申请
|
* @return 薪资付款申请
|
||||||
*/
|
*/
|
||||||
BpmOASalaryDO getSalary(Long id);
|
BpmOASalaryDO getSalary(Long id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得指定的用章申请
|
* 获得指定的薪资付款申请
|
||||||
* @param processInstanceId 流程实例编号
|
* @param processInstanceId 流程实例编号
|
||||||
* @return 用章申请
|
* @return 薪资付款申请
|
||||||
*/
|
*/
|
||||||
BpmOASalaryDO getByProcessInstanceId(String processInstanceId);
|
BpmOASalaryDO getByProcessInstanceId(String processInstanceId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得指定的薪资付款申请
|
||||||
|
* @param processInstanceIds 流程实例编号
|
||||||
|
* @return 薪资付款申请
|
||||||
|
*/
|
||||||
|
List<BpmOASalaryDO> getListByProcessInstanceIds(List<String> processInstanceIds);
|
||||||
}
|
}
|
||||||
|
@ -107,4 +107,10 @@ public class BpmOASalaryServiceImpl extends BpmOABaseService implements BpmOASal
|
|||||||
|
|
||||||
return salaryMapper.selectOne(BpmOASalaryDO::getProcessInstanceId, processInstanceId);
|
return salaryMapper.selectOne(BpmOASalaryDO::getProcessInstanceId, processInstanceId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<BpmOASalaryDO> getListByProcessInstanceIds(List<String> processInstanceIds) {
|
||||||
|
|
||||||
|
return salaryMapper.selectList(BpmOASalaryDO::getProcessInstanceId, processInstanceIds);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,7 @@ import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils;
|
|||||||
import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceMyPageReqVO;
|
import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.instance.BpmProcessInstanceMyPageReqVO;
|
||||||
import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.*;
|
import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.*;
|
||||||
import cn.iocoder.yudao.module.bpm.convert.task.BpmTaskConvert;
|
import cn.iocoder.yudao.module.bpm.convert.task.BpmTaskConvert;
|
||||||
|
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOASalaryDO;
|
||||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmProcessInstanceExtDO;
|
import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmProcessInstanceExtDO;
|
||||||
import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmTaskExtDO;
|
import cn.iocoder.yudao.module.bpm.dal.dataobject.task.BpmTaskExtDO;
|
||||||
import cn.iocoder.yudao.module.bpm.dal.mysql.task.BpmProcessInstanceExtMapper;
|
import cn.iocoder.yudao.module.bpm.dal.mysql.task.BpmProcessInstanceExtMapper;
|
||||||
@ -25,6 +26,7 @@ import cn.iocoder.yudao.module.bpm.enums.task.*;
|
|||||||
import cn.iocoder.yudao.module.bpm.service.definition.BpmModelService;
|
import cn.iocoder.yudao.module.bpm.service.definition.BpmModelService;
|
||||||
import cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionService;
|
import cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionService;
|
||||||
import cn.iocoder.yudao.module.bpm.service.message.BpmMessageService;
|
import cn.iocoder.yudao.module.bpm.service.message.BpmMessageService;
|
||||||
|
import cn.iocoder.yudao.module.bpm.service.oa.BpmOASalaryService;
|
||||||
import cn.iocoder.yudao.module.bpm.service.task.dto.ProcessInstanceVariablesDTO;
|
import cn.iocoder.yudao.module.bpm.service.task.dto.ProcessInstanceVariablesDTO;
|
||||||
import cn.iocoder.yudao.module.system.api.dept.DeptApi;
|
import cn.iocoder.yudao.module.system.api.dept.DeptApi;
|
||||||
import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
|
import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
|
||||||
@ -106,6 +108,9 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
@Resource
|
@Resource
|
||||||
private BpmProcessInstanceExtMapper processInstanceExtMapper;
|
private BpmProcessInstanceExtMapper processInstanceExtMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private BpmOASalaryService salaryService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResult<BpmTaskCCPageItemRespVO> getCCTaskPage(Long userId, BpmTaskDonePageReqVO pageVO) {
|
public PageResult<BpmTaskCCPageItemRespVO> getCCTaskPage(Long userId, BpmTaskDonePageReqVO pageVO) {
|
||||||
// 查询被抄送的Task
|
// 查询被抄送的Task
|
||||||
@ -194,6 +199,32 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
|
|
||||||
Page<BpmTaskTodoPageRespVO> page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
|
Page<BpmTaskTodoPageRespVO> page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
|
||||||
IPage<BpmTaskTodoPageRespVO> pageResp = taskExtMapper.selectTodoTaskPage(page, pageReqVO, userId);
|
IPage<BpmTaskTodoPageRespVO> pageResp = taskExtMapper.selectTodoTaskPage(page, pageReqVO, userId);
|
||||||
|
|
||||||
|
/*
|
||||||
|
临时处理,列表中薪资付款 展示具体公司名称问题
|
||||||
|
begin
|
||||||
|
*/
|
||||||
|
// 获取所有薪资付款的流程实例
|
||||||
|
List<String> processInstanceIds = pageResp.getRecords().stream()
|
||||||
|
.filter(item -> item.getProcessDefinitionId().contains("oa_salary"))
|
||||||
|
.map(BpmTaskTodoPageRespVO::getProcessInstanceId)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
// 获取薪资付款列表
|
||||||
|
List<BpmOASalaryDO> salaryDOS = salaryService.getListByProcessInstanceIds(processInstanceIds);
|
||||||
|
Map<String, Long> salaryDeptMap = salaryDOS.stream()
|
||||||
|
.collect(Collectors.toMap(BpmOASalaryDO::getProcessInstanceId, BpmOASalaryDO::getCompanyDeptId));
|
||||||
|
// 获取付款部门信息
|
||||||
|
Map<Long, DeptRespDTO> dtoMap = deptApi.getDeptMap(convertSet(salaryDOS, BpmOASalaryDO::getCompanyDeptId));
|
||||||
|
pageResp.getRecords().forEach(item -> {
|
||||||
|
if (salaryDeptMap.containsKey(item.getProcessInstanceId())) {
|
||||||
|
item.setStartUserNickname(item.getStartUserNickname() +
|
||||||
|
"(" +
|
||||||
|
dtoMap.get(salaryDeptMap.get(item.getProcessInstanceId())).getName() +
|
||||||
|
")");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
return new PageResult<>(pageResp.getRecords(), pageResp.getTotal());
|
return new PageResult<>(pageResp.getRecords(), pageResp.getTotal());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -217,8 +248,31 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
// 获得 User Map
|
// 获得 User Map
|
||||||
Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(startUserIds);
|
Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(startUserIds);
|
||||||
|
|
||||||
|
/*
|
||||||
|
临时处理,列表中薪资付款 展示具体公司名称问题
|
||||||
|
begin
|
||||||
|
*/
|
||||||
|
// 获取所有薪资付款的流程实例
|
||||||
|
List<String> processInstanceIds = pageResult.getList().stream()
|
||||||
|
.filter(item -> item.getProcessDefinitionId().contains("oa_salary"))
|
||||||
|
.map(BpmTaskDonePageRespVO::getProcessInstanceId)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
// 获取薪资付款列表
|
||||||
|
List<BpmOASalaryDO> salaryDOS = salaryService.getListByProcessInstanceIds(processInstanceIds);
|
||||||
|
Map<String, Long> salaryDeptMap = salaryDOS.stream()
|
||||||
|
.collect(Collectors.toMap(BpmOASalaryDO::getProcessInstanceId, BpmOASalaryDO::getCompanyDeptId));
|
||||||
|
// 获取付款部门信息
|
||||||
|
Map<Long, DeptRespDTO> dtoMap = deptApi.getDeptMap(convertSet(salaryDOS, BpmOASalaryDO::getCompanyDeptId));
|
||||||
|
|
||||||
pageResult.getList().forEach(item -> {
|
pageResult.getList().forEach(item -> {
|
||||||
item.setStartUserNickname(userMap.get(item.getStartUserId()).getNickname());
|
item.setStartUserNickname(userMap.get(item.getStartUserId()).getNickname());
|
||||||
|
if (salaryDeptMap.containsKey(item.getProcessInstanceId())) {
|
||||||
|
item.setStartUserNickname(item.getStartUserNickname() +
|
||||||
|
"(" +
|
||||||
|
dtoMap.get(salaryDeptMap.get(item.getProcessInstanceId())).getName() +
|
||||||
|
")");
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user