refactor(bpm): 优化流程抄送配置功能

- 修改 OA 活动经费申请相关代码
- 优化补卡申请逻辑,增加对可补卡次数的检查
- 重构流程抄送配置相关控制器和数据对象
- 优化公司部门和用户组数据的获取和展示
This commit is contained in:
furongxin 2024-11-14 19:54:25 +08:00
parent b32f00b2d0
commit 4a3d32c0a4
7 changed files with 31 additions and 19 deletions

View File

@ -26,7 +26,7 @@ import java.util.Map;
import java.util.stream.Collectors;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
@Tag(name = "管理后台 - BPM 流程抄送配置")
@RestController
@ -74,10 +74,6 @@ public class BpmProcessCcController {
public CommonResult<BpmProcessCcRespVO> getProcessCc(@RequestParam("id") Long id) {
BpmProcessCcDO processCc = processCcService.getProcessCc(id);
BpmProcessCcRespVO respVO = BeanUtils.toBean(processCc, BpmProcessCcRespVO.class);
// 获取用户组详情
List<BpmUserGroupDO> groupDOS = groupService.getUserGroupList(processCc.getUserGroupId());
// 设置用户组名称
respVO.setGroupName(groupDOS.stream().map(BpmUserGroupDO::getName).collect(Collectors.joining(",")));
return success(respVO);
}
@ -90,15 +86,25 @@ public class BpmProcessCcController {
PageResult<BpmProcessCcRespVO> respVOPageResult = BeanUtils.toBean(pageResult, BpmProcessCcRespVO.class);
// 获取公司部门Map
Map<Long, DeptRespDTO> deptMap = deptApi.getDeptMap(convertSet(respVOPageResult.getList(), BpmProcessCcRespVO::getCompanyDeptId));
Map<Long, DeptRespDTO> deptMap = convertMap(deptApi.getCompanyDept().getCheckedData(), DeptRespDTO::getId);
// 获取列表中所有用户组详情
List<BpmUserGroupDO> groupDOS = groupService.getUserGroupList(
respVOPageResult.getList().stream()
.flatMap(item -> item.getUserGroupId().stream())
.collect(Collectors.toSet()));
// 转换Map
Map<Long, String> groupNameMap = convertMap(groupDOS, BpmUserGroupDO::getId, BpmUserGroupDO::getName);
respVOPageResult.getList().forEach(data -> {
// 获取用户组详情
List<BpmUserGroupDO> groupDOS = groupService.getUserGroupList(data.getUserGroupId());
// 设置用户组名称
data.setGroupName(groupDOS.stream().map(BpmUserGroupDO::getName).collect(Collectors.joining(",")));
data.setGroupName(data.getUserGroupId().stream()
.map(groupNameMap::get)
.collect(Collectors.joining("")));
// 设置公司名称
data.setCompanyName(deptMap.get(data.getCompanyDeptId()).getName());
data.setCompanyName(data.getCompanyDeptId().stream()
.map(item -> deptMap.get(item).getName())
.collect(Collectors.joining("")));
});
return success(respVOPageResult);
}

View File

@ -24,7 +24,7 @@ public class BpmProcessCcPageReqVO extends PageParam {
private String userGroupId;
@Schema(description = "公司部门编号", example = "114")
private Long companyDeptId;
private String companyDeptId;
@Schema(description = "状态0正常 1停用")
private Integer status;

View File

@ -17,7 +17,7 @@ public class BpmProcessCcRespVO {
private String name;
@Schema(description = "公司部门编号", example = "114")
private Long companyDeptId;
private Set<Long> companyDeptId;
@Schema(description = "公司部门名称", example = "114")
private String companyName;

View File

@ -18,7 +18,7 @@ public class BpmProcessCcSaveReqVO {
private String name;
@Schema(description = "公司部门编号", example = "114")
private Long companyDeptId;
private Set<Long> companyDeptId;
@Schema(description = "绑定用户组编号")
private Set<Long> userGroupId;

View File

@ -33,11 +33,12 @@ public class BpmProcessCcDO extends BaseDO {
*/
private String name;
/**
* 公司部门编号
* 公司部门编号列表
*/
private Long companyDeptId;
@TableField(typeHandler = JsonLongSetTypeHandler.class)
private Set<Long> companyDeptId;
/**
* 绑定用户组编号
* 绑定用户组编号列表
*/
@TableField(typeHandler = JsonLongSetTypeHandler.class)
private Set<Long> userGroupId;

View File

@ -9,7 +9,6 @@ import cn.iocoder.yudao.module.bpm.dal.mysql.oa.BpmOAFinanceMapper;
import cn.iocoder.yudao.module.bpm.enums.task.BpmProcessInstanceResultEnum;
import cn.iocoder.yudao.module.bpm.service.task.BpmHistoryProcessInstanceService;
import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService;
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
@ -23,7 +22,7 @@ import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionU
import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.OA_FINANCE_NOT_EXISTS;
/**
* OA 外出申请 Service 实现类
* OA 活动经费申请 Service 实现类
*
* @author 符溶馨
@ -33,7 +32,7 @@ import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.OA_FINANCE_NO
public class BpmOAFinanceServiceImpl extends BpmOABaseService implements BpmOAFinanceService{
/**
* OA 外出对应的流程定义 KEY
* OA 活动经费的流程定义 KEY
*/
public static final String PROCESS_KEY = "oa_finance_2";

View File

@ -71,6 +71,12 @@ public class BpmOAReplacementCardServiceImpl extends BpmOABaseService implements
@Override
public Long createReplacementCard(Long userId, BpmOAReplacementCardCreateReqVO createReqVO) {
// 获取用户可补卡次数
Integer count = attendanceApi.getReplacementCardNum().getCheckedData();
if (count <= 0) {
throw exception(INSUFFICIENT_NUMBER_OF_CARD_REFILLS);
}
//插入OA 补卡申请
BpmOAReplacementCardDO replacementCard = BeanUtils.toBean(createReqVO, BpmOAReplacementCardDO.class)
.setUserId(userId)