| | |
| | | import com.ruoyi.approve.vo.ApproveGetAndUpdateVo; |
| | | import com.ruoyi.approve.vo.ApproveNodeVo; |
| | | import com.ruoyi.approve.vo.ApproveProcessVO; |
| | | import com.ruoyi.basic.pojo.Customer; |
| | | import com.ruoyi.common.utils.SecurityUtils; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.project.system.domain.SysDept; |
| | | import com.ruoyi.project.system.domain.SysUser; |
| | | import com.ruoyi.project.system.mapper.SysDeptMapper; |
| | |
| | | |
| | | import java.time.LocalDate; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.*; |
| | | |
| | | @Service |
| | | @RequiredArgsConstructor |
| | |
| | | private final SysUserMapper sysUserMapper; |
| | | private final ApproveProcessMapper approveProcessMapper; |
| | | |
| | | |
| | | @Override |
| | | public void addApprove(ApproveProcessVO approveProcessVO) { |
| | | Long userId = SecurityUtils.getUserId(); |
| | | String nickName = SecurityUtils.getLoginUser().getNickName(); |
| | | //租户id |
| | | Long tenantId = SecurityUtils.getLoginUser().getTenantId(); |
| | | String deptName = sysDeptMapper.selectDeptById(approveProcessVO.getApproveDeptId()).getDeptName(); |
| | | |
| | | String today = LocalDate.now().format(DATE_FORMAT); |
| | | Long approveId = dailyRedisCounter.incrementAndGet("approveId"); |
| | |
| | | String approveID = today + formattedCount; |
| | | |
| | | //审批人姓名处理 |
| | | String approverIds = approveProcessVO.getApproverIds(); |
| | | String approverIds = approveProcessVO.getApproveUserIds(); |
| | | String[] idArray = approverIds.split(","); |
| | | String approverNames = getApproverNames(approveProcessVO.getApproverIds()); |
| | | String[] namdArray = approverIds.split(","); |
| | | String approverNames = getApproverNames(approveProcessVO.getApproveUserIds()); |
| | | String[] namdArray = approverNames.split(","); |
| | | |
| | | ApproveProcess approveProcess = new ApproveProcess(); |
| | | approveProcess.setApproveId(approveID); |
| | | approveProcess.setApproveUser(userId); |
| | | approveProcess.setApproveUserName(nickName); |
| | | approveProcess.setApproveDeptId(approveProcessVO.getApproveDeptId()); |
| | | // approveProcess.setApproveDeptName(approveProcessVO.getDeptName()); |
| | | approveProcess.setApproveUserIds(approveProcessVO.getApproverIds()); |
| | | approveProcess.setApproveDeptName(deptName); |
| | | approveProcess.setApproveUserIds(approveProcessVO.getApproveUserIds()); |
| | | approveProcess.setApproveUserNames(approverNames); |
| | | approveProcess.setApproveUserCurrentId(Long.parseLong(idArray[0])); |
| | | approveProcess.setApproveUserCurrentName(namdArray[0]); |
| | |
| | | |
| | | save(approveProcess); |
| | | //初始化审批节点 |
| | | approveNodeService.initApproveNodes(approveID); |
| | | approveNodeService.initApproveNodes(approveID,0); |
| | | } |
| | | |
| | | private String getApproverNames(String approverIds) { |
| | |
| | | Integer[] ids = Arrays.stream(idArray) |
| | | .map(Integer::parseInt) |
| | | .toArray(Integer[]::new); |
| | | String names = ""; |
| | | StringBuilder stringBuilder = new StringBuilder(); |
| | | List<String> names = new ArrayList<String>(); |
| | | |
| | | for (Integer id : ids) { |
| | | SysUser sysUser = sysUserMapper.selectUserById(id.longValue()); |
| | | names = stringBuilder + "," + sysUser.getUserName(); |
| | | names.add(sysUser.getNickName()); |
| | | } |
| | | return names; |
| | | |
| | | return String.join(",", names); |
| | | } |
| | | |
| | | |
| | |
| | | } |
| | | |
| | | @Override |
| | | public IPage<ApproveProcess> listAll(Page page) { |
| | | public IPage<ApproveProcess> listAll(Page page,String id) { |
| | | // 1. 处理空值场景(参数校验) |
| | | if (page == null) { |
| | | page = Page.of(1, 10); // 默认第1页,每页10条数据 |
| | | } |
| | | LambdaQueryWrapper<ApproveProcess> queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.eq(ApproveProcess::getApproveDelete, 0); |
| | | if (StringUtils.isNotBlank(id)) { |
| | | queryWrapper.like(ApproveProcess::getApproveId, id); |
| | | } |
| | | return approveProcessMapper.selectPage(page, queryWrapper); |
| | | } |
| | | |
| | |
| | | public void delApprove(Long[] ids) { |
| | | for (Long id : ids) { |
| | | LambdaQueryWrapper<ApproveProcess> queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.eq(ApproveProcess::getApproveDelete, 1); |
| | | update(queryWrapper); |
| | | queryWrapper.eq(ApproveProcess::getApproveId, id); |
| | | ApproveProcess process = getOne(queryWrapper); |
| | | process.setApproveDelete(1); |
| | | saveOrUpdate(process); |
| | | } |
| | | } |
| | | |
| | |
| | | String[] idArray = approveProcess.getApproveUserIds().split(","); |
| | | String[] nameArray = approveProcess.getApproveUserNames().split(","); |
| | | |
| | | |
| | | Integer noderOrder = approveNodeVo.getApproveNodeOrder(); |
| | | //设置当前审批人 |
| | | if (noderOrder ==idArray.length){ |
| | | approveProcess.setApproveUserCurrentId(null); |
| | | approveProcess.setApproveUserCurrentName(null); |
| | | }else { |
| | | approveProcess.setApproveUserCurrentId(Long.parseLong(idArray[noderOrder])); |
| | | approveProcess.setApproveUserCurrentName(nameArray[noderOrder]); |
| | | } |
| | | |
| | | if(noderOrder.equals(1)){ |
| | | if(approveNodeVo.getApproveNodeStatus() == 1){ |
| | |
| | | if(noderOrder.equals(idArray.length)){ |
| | | if(approveNodeVo.getApproveNodeStatus() == 1){ |
| | | approveProcess.setApproveStatus(2); |
| | | approveProcess.setApproveOverTime(new Date()); |
| | | } |
| | | } |
| | | updateById(approveProcess); |
| | | // updateById(approveProcess); |
| | | approveProcessMapper.updateApproveDeptId(approveProcess); |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public void updateByApproveId(ApproveGetAndUpdateVo approveGetAndUpdateVo) { |
| | | ApproveProcess approve = getApproveById(approveGetAndUpdateVo.getId()); |