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.dal.dataobject.task.BpmProcessInstanceExtDO;
|
||||
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 com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
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()));
|
||||
queryWrapperX.likeRight(BpmProcessInstanceExtDO::getProcessDefinitionId, "oa_");
|
||||
queryWrapperX.eq(BpmTaskExtDO::getAssigneeUserId, userId);
|
||||
queryWrapperX.ne(BpmTaskExtDO::getReason, BpmConstants.AUTO_APPRAVAL);
|
||||
queryWrapperX.betweenIfPresent(BpmTaskExtDO::getCreateTime, pageVO.getCreateTime());
|
||||
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 javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 薪资付款申请 Service 接口
|
||||
@ -13,7 +14,7 @@ import javax.validation.Valid;
|
||||
public interface BpmOASalaryService {
|
||||
|
||||
/**
|
||||
* 创建用章申请
|
||||
* 创建薪资付款申请
|
||||
*
|
||||
* @param userId 用户编号
|
||||
* @param createReqVO 创建信息
|
||||
@ -22,7 +23,7 @@ public interface BpmOASalaryService {
|
||||
Long createSalary(Long userId, @Valid BpmOASalaryCreateReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新用章申请的状态
|
||||
* 更新薪资付款申请的状态
|
||||
*
|
||||
* @param id 编号
|
||||
* @param result 结果
|
||||
@ -30,17 +31,24 @@ public interface BpmOASalaryService {
|
||||
void updateSalaryResult(Long id, Integer result);
|
||||
|
||||
/**
|
||||
* 获得用章申请
|
||||
* 获得薪资付款申请
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 用章申请
|
||||
* @return 薪资付款申请
|
||||
*/
|
||||
BpmOASalaryDO getSalary(Long id);
|
||||
|
||||
/**
|
||||
* 获得指定的用章申请
|
||||
* 获得指定的薪资付款申请
|
||||
* @param processInstanceId 流程实例编号
|
||||
* @return 用章申请
|
||||
* @return 薪资付款申请
|
||||
*/
|
||||
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);
|
||||
}
|
||||
|
||||
@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.task.*;
|
||||
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.BpmTaskExtDO;
|
||||
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.BpmProcessDefinitionService;
|
||||
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.system.api.dept.DeptApi;
|
||||
import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
|
||||
@ -106,6 +108,9 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
||||
@Resource
|
||||
private BpmProcessInstanceExtMapper processInstanceExtMapper;
|
||||
|
||||
@Resource
|
||||
private BpmOASalaryService salaryService;
|
||||
|
||||
@Override
|
||||
public PageResult<BpmTaskCCPageItemRespVO> getCCTaskPage(Long userId, BpmTaskDonePageReqVO pageVO) {
|
||||
// 查询被抄送的Task
|
||||
@ -194,6 +199,32 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
||||
|
||||
Page<BpmTaskTodoPageRespVO> page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
|
||||
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());
|
||||
}
|
||||
|
||||
@ -217,8 +248,31 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
||||
// 获得 User Map
|
||||
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 -> {
|
||||
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