| | |
| | | import com.ruoyi.approve.vo.ApproveGetAndUpdateVo; |
| | | import com.ruoyi.approve.vo.ApproveProcessVO; |
| | | import com.ruoyi.common.enums.FileNameType; |
| | | import com.ruoyi.common.utils.OrderUtils; |
| | | import com.ruoyi.common.utils.SecurityUtils; |
| | | import com.ruoyi.other.service.impl.TempFileServiceImpl; |
| | | import com.ruoyi.project.system.domain.SysDept; |
| | | import com.ruoyi.project.system.domain.SysUser; |
| | | import com.ruoyi.project.system.mapper.SysDeptMapper; |
| | | import com.ruoyi.project.system.mapper.SysUserMapper; |
| | | import com.ruoyi.project.system.service.ISysNoticeService; |
| | | import com.ruoyi.sales.mapper.CommonFileMapper; |
| | | import com.ruoyi.sales.pojo.CommonFile; |
| | | import lombok.AllArgsConstructor; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.context.annotation.Lazy; |
| | | import org.springframework.data.redis.core.StringRedisTemplate; |
| | |
| | | private final ApproveProcessMapper approveProcessMapper; |
| | | private final TempFileServiceImpl tempFileService; |
| | | private final CommonFileMapper commonFileMapper; |
| | | private final ISysNoticeService sysNoticeService; |
| | | |
| | | @Override |
| | | public void addApprove(ApproveProcessVO approveProcessVO) throws Exception { |
| | |
| | | approveProcess.setApproveUserNames(sysUsers.stream().map(SysUser::getNickName).collect(Collectors.joining(","))); |
| | | approveProcess.setApproveTime(StringUtils.isEmpty(approveProcessVO.getApproveTime()) ? null : dateFormat.parse(approveProcessVO.getApproveTime())); |
| | | approveProcess.setApproveReason(approveProcessVO.getApproveReason()); |
| | | approveProcess.setDeviceRepairId(approveProcessVO.getDeviceRepairId()); |
| | | approveProcess.setMaintenancePrice(approveProcessVO.getMaintenancePrice()); |
| | | approveProcess.setApproveOverTime(null); |
| | | approveProcess.setApproveStatus(0); |
| | | approveProcess.setApproveDelete(0); |
| | | approveProcess.setApproveType(approveProcessVO.getApproveType()); |
| | | approveProcess.setCreateTime(LocalDateTime.now()); |
| | | approveProcess.setTenantId(approveProcessVO.getApproveDeptId()); |
| | | approveProcess.setApproveUserIds(approveProcessVO.getApproveUserIds()); |
| | |
| | | approveNodeService.initApproveNodes(approveProcessVO.getApproveUserIds(),approveID,approveProcessVO.getApproveDeptId()); |
| | | // 附件绑定 |
| | | tempFileService.migrateTempFilesToFormal(approveProcess.getId(), approveProcessVO.getTempFileIds(), FileNameType.ApproveProcess.getValue()); |
| | | /*消息通知*/ |
| | | String id = approveProcessVO.getApproveUserIds().split(",")[0]; |
| | | sysNoticeService.simpleNoticeByUser(approveProcessType(approveProcessVO.getApproveType()), |
| | | approveID+"流程编号的审批需要您审核!!!!!", |
| | | Arrays.asList(Long.valueOf(id)), |
| | | approveProcessVO.getApproveDeptId(), |
| | | "/collaborativeApproval/approvalProcess?approveType="+approveProcessVO.getApproveType()+"&approveId="+approveID); |
| | | } |
| | | |
| | | @Override |
| | |
| | | @Override |
| | | public void updateByApproveId(ApproveGetAndUpdateVo approveGetAndUpdateVo) throws IOException { |
| | | ApproveProcess approve = approveProcessMapper.selectById(approveGetAndUpdateVo.getId()); |
| | | BeanUtils.copyProperties(approveGetAndUpdateVo, approve); |
| | | approve.setApproveUserIds(approveGetAndUpdateVo.getApproveUserIds()); |
| | | approve.setApproveReason(approveGetAndUpdateVo.getApproveReason()); |
| | | SysUser sysUser = sysUserMapper.selectUserById(approveGetAndUpdateVo.getApproveUser()); |
| | |
| | | } |
| | | updateById(approve); |
| | | //修改审批人 |
| | | // 先删除 后新增 |
| | | LambdaQueryWrapper<ApproveNode> approveNodeLambdaQueryWrapper = new LambdaQueryWrapper<>(); |
| | | approveNodeLambdaQueryWrapper.eq(ApproveNode::getApproveProcessId, approve.getApproveId()) |
| | | .eq(ApproveNode::getDeleteFlag, 0) |
| | | .eq(ApproveNode::getTenantId, SecurityUtils.getLoginUser().getTenantId()) |
| | | .orderByAsc(ApproveNode::getApproveNodeOrder); |
| | | List<ApproveNode> list = approveNodeMapper.selectList(approveNodeLambdaQueryWrapper); |
| | | int i = 0; |
| | | for (ApproveNode approveNode : list) { |
| | | int finalI = i; |
| | | List<SysUser> collect = sysUsers.stream().filter(user -> user.getUserId().equals(Long.parseLong(split[finalI]))).collect(Collectors.toList()); |
| | | if(CollectionUtils.isEmpty(collect)){ |
| | | throw new RuntimeException("请选择正确的审批人"); |
| | | } |
| | | approveNode.setApproveNodeUserId(collect.get(0).getUserId()); |
| | | approveNode.setApproveNodeUser(collect.get(0).getNickName()); |
| | | approveNodeMapper.updateById(approveNode); |
| | | i++; |
| | | } |
| | | approveNodeMapper.delete(approveNodeLambdaQueryWrapper); |
| | | approveNodeService.initApproveNodes(approveGetAndUpdateVo.getApproveUserIds(),approve.getApproveId(),approve.getTenantId()); |
| | | |
| | | // int i = 0; |
| | | // for (ApproveNode approveNode : list) { |
| | | // int finalI = i; |
| | | // if(i >= split.length){ |
| | | // approveNode.setDeleteFlag(1); |
| | | // }else{ |
| | | // List<SysUser> collect = sysUsers.stream().filter(user -> user.getUserId().equals(Long.parseLong(split[finalI]))).collect(Collectors.toList()); |
| | | // if(CollectionUtils.isEmpty(collect)){ |
| | | // throw new RuntimeException("请选择正确的审批人"); |
| | | // } |
| | | // approveNode.setApproveNodeUserId(collect.get(0).getUserId()); |
| | | // approveNode.setApproveNodeUser(collect.get(0).getNickName()); |
| | | // } |
| | | // approveNodeMapper.updateById(approveNode); |
| | | // i++; |
| | | // } |
| | | tempFileService.migrateTempFilesToFormal(approve.getId(), approveGetAndUpdateVo.getTempFileIds(), FileNameType.ApproveProcess.getValue()); |
| | | } |
| | | |
| | | |
| | | //审批类型获取(与前端页面对应) |
| | | private String approveProcessType(Integer approveType){ |
| | | switch (approveType){ |
| | | case 1: |
| | | return "公出管理"; |
| | | case 2: |
| | | return "请假管理"; |
| | | case 3: |
| | | return "出差管理"; |
| | | case 4: |
| | | return "报销管理"; |
| | | case 5: |
| | | return "采购审批"; |
| | | case 6: |
| | | return "报价审批"; |
| | | case 7: |
| | | return "出库审批"; |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | |
| | | } |