diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/task/BpmTaskExtMapper.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/task/BpmTaskExtMapper.java index 145d86ec..0666850b 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/task/BpmTaskExtMapper.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/task/BpmTaskExtMapper.java @@ -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 { .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); diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOASalaryService.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOASalaryService.java index a2f25bb7..586c4c14 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOASalaryService.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOASalaryService.java @@ -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 getListByProcessInstanceIds(List processInstanceIds); } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOASalaryServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOASalaryServiceImpl.java index 4efa97d9..d0862455 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOASalaryServiceImpl.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/BpmOASalaryServiceImpl.java @@ -107,4 +107,10 @@ public class BpmOASalaryServiceImpl extends BpmOABaseService implements BpmOASal return salaryMapper.selectOne(BpmOASalaryDO::getProcessInstanceId, processInstanceId); } + + @Override + public List getListByProcessInstanceIds(List processInstanceIds) { + + return salaryMapper.selectList(BpmOASalaryDO::getProcessInstanceId, processInstanceIds); + } } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java index a70455f4..1de4a442 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java @@ -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 getCCTaskPage(Long userId, BpmTaskDonePageReqVO pageVO) { // 查询被抄送的Task @@ -194,6 +199,32 @@ public class BpmTaskServiceImpl implements BpmTaskService { Page page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()); IPage pageResp = taskExtMapper.selectTodoTaskPage(page, pageReqVO, userId); + + /* + 临时处理,列表中薪资付款 展示具体公司名称问题 + begin + */ + // 获取所有薪资付款的流程实例 + List processInstanceIds = pageResp.getRecords().stream() + .filter(item -> item.getProcessDefinitionId().contains("oa_salary")) + .map(BpmTaskTodoPageRespVO::getProcessInstanceId) + .collect(Collectors.toList()); + + // 获取薪资付款列表 + List salaryDOS = salaryService.getListByProcessInstanceIds(processInstanceIds); + Map salaryDeptMap = salaryDOS.stream() + .collect(Collectors.toMap(BpmOASalaryDO::getProcessInstanceId, BpmOASalaryDO::getCompanyDeptId)); + // 获取付款部门信息 + Map 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 userMap = adminUserApi.getUserMap(startUserIds); + /* + 临时处理,列表中薪资付款 展示具体公司名称问题 + begin + */ + // 获取所有薪资付款的流程实例 + List processInstanceIds = pageResult.getList().stream() + .filter(item -> item.getProcessDefinitionId().contains("oa_salary")) + .map(BpmTaskDonePageRespVO::getProcessInstanceId) + .collect(Collectors.toList()); + + // 获取薪资付款列表 + List salaryDOS = salaryService.getListByProcessInstanceIds(processInstanceIds); + Map salaryDeptMap = salaryDOS.stream() + .collect(Collectors.toMap(BpmOASalaryDO::getProcessInstanceId, BpmOASalaryDO::getCompanyDeptId)); + // 获取付款部门信息 + Map 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() + + ")"); + } }); }