| | |
| | | package com.ycl.service.impl; |
| | | |
| | | |
| | | import com.alibaba.fastjson2.JSON; |
| | | import com.alibaba.fastjson2.JSONArray; |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; |
| | | import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; |
| | |
| | | import com.ycl.common.core.domain.entity.SysUser; |
| | | import com.ycl.common.enums.business.HandlerTypeEnum; |
| | | import com.ycl.common.enums.business.ProcessLogEventTypeEnum; |
| | | import com.ycl.common.enums.business.SuperviseTypeEnum; |
| | | import com.ycl.common.enums.business.TaskStatusEnum; |
| | | import com.ycl.common.utils.SecurityUtils; |
| | | import com.ycl.constant.TaskTypeConstant; |
| | | import com.ycl.domain.entity.ProcessCoding; |
| | | import com.ycl.domain.entity.ProjectInfo; |
| | | import com.ycl.domain.entity.ProjectProcess; |
| | | import com.ycl.domain.entity.SysForm; |
| | | import com.ycl.domain.entity.*; |
| | | import com.ycl.domain.form.TaskDelegationForm; |
| | | import com.ycl.domain.form.TaskJumpForm; |
| | | import com.ycl.domain.form.TaskSuperviseForm; |
| | | import com.ycl.domain.json.DelegateData; |
| | | import com.ycl.domain.json.SuperviseData; |
| | | import com.ycl.domain.vo.CustomerTaskVO; |
| | | import com.ycl.domain.vo.IndexCustomerTaskVO; |
| | | import com.ycl.domain.vo.ProjectProcessDetailVO; |
| | | import com.ycl.event.event.TaskLogEvent; |
| | | import com.ycl.mapper.ProjectInfoMapper; |
| | | import com.ycl.mapper.ProjectProcessMapper; |
| | | import com.ycl.service.IFlowTaskService; |
| | | import com.ycl.service.ISysFormService; |
| | | import com.ycl.service.ProcessCodingService; |
| | | import com.ycl.service.ProjectProcessService; |
| | | import com.ycl.service.*; |
| | | import com.ycl.common.base.Result; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ycl.domain.form.ProjectProcessForm; |
| | |
| | | private final ProcessCodingService processCodingService; |
| | | private final ApplicationEventPublisher publisher; |
| | | private final ISysDeptService deptService; |
| | | private final ProcessLogService processLogService; |
| | | |
| | | /** |
| | | * 分页查询 |
| | |
| | | jsonData.setAfterHandlerIds(afterHandlerIds); |
| | | jsonData.setAfterHandlerType(form.getPeopleType()); |
| | | // 发布转办事件 |
| | | publisher.publishEvent(new TaskLogEvent(this, form.getProjectId(), form.getProcessInsId(), task.getId(), ProcessLogEventTypeEnum.DELEGATE, jsonData)); |
| | | publisher.publishEvent(new TaskLogEvent(this, null,SecurityUtils.getUserId(), form.getProjectId(), form.getProcessInsId(), task.getId(), ProcessLogEventTypeEnum.DELEGATE, jsonData)); |
| | | |
| | | return Result.ok("转办成功"); |
| | | } |
| | |
| | | Task task = taskService.createTaskQuery().taskId(form.getTaskId()).processInstanceId(form.getProcessInsId()).singleResult(); |
| | | if (Objects.nonNull(task)) { |
| | | // 添加跳过日志 |
| | | publisher.publishEvent(new TaskLogEvent(this, form.getProjectId(), form.getProcessInsId(), form.getTaskId(), ProcessLogEventTypeEnum.JUMP, null)); |
| | | publisher.publishEvent(new TaskLogEvent(this, null,SecurityUtils.getUserId(), form.getProjectId(), form.getProcessInsId(), form.getTaskId(), ProcessLogEventTypeEnum.JUMP, null)); |
| | | // 查出该任务绑定的表单 |
| | | |
| | | Map<String, Object> data = new HashMap<>(1); |
| | |
| | | // 完成任务 |
| | | flowTaskService.completeSubmitForm(form.getTaskId(), data); |
| | | } |
| | | return Result.ok("操作成功"); |
| | | } |
| | | |
| | | @Override |
| | | public Result taskSupervise(TaskSuperviseForm form) { |
| | | SuperviseData jsonData = new SuperviseData(); |
| | | jsonData.setCreateTime(new Date()); |
| | | jsonData.setContent(form.getContent()); |
| | | jsonData.setSenderId(SecurityUtils.getUserId() + ""); |
| | | jsonData.setSenderType(HandlerTypeEnum.USER); |
| | | jsonData.setReceiverIds(form.getReceiverIds()); |
| | | jsonData.setReceiverType(form.getReceiverType()); |
| | | jsonData.setSuperviseType(form.getSuperviseType()); |
| | | QueryWrapper<ProcessLog> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.eq("task_id", form.getTaskId()); |
| | | queryWrapper.eq("event_type", ProcessLogEventTypeEnum.SUPERVISE); |
| | | queryWrapper.eq("process_ins_id", form.getProcessInsId()); |
| | | //查询督办日志 |
| | | ProcessLog processLog = processLogService.getOne(queryWrapper); |
| | | List<SuperviseData> dataList; |
| | | if (processLog != null) { |
| | | String eventDataJson = processLog.getEventDataJson(); |
| | | dataList = JSONArray.parseArray(eventDataJson, SuperviseData.class); |
| | | } else { |
| | | processLog = new ProcessLog(); |
| | | processLog.setUserId(SecurityUtils.getUserId()); |
| | | dataList = new ArrayList<>(); |
| | | } |
| | | dataList.add(jsonData); |
| | | //添加督办日志 |
| | | publisher.publishEvent(new TaskLogEvent(this, processLog.getId(), processLog.getUserId(), form.getProjectId(), form.getProcessInsId(), form.getTaskId(), ProcessLogEventTypeEnum.SUPERVISE, dataList)); |
| | | return Result.ok("操作成功"); |
| | | } |
| | | |
| | |
| | | if (groupId.contains(ProcessConstants.DATA_LAUNCH)) { |
| | | vo.setHandlerType(HandlerTypeEnum.DEPT); |
| | | this.varYzReview(vo, projectId, processInsId, HandlerTypeEnum.DEPT); |
| | | } |
| | | else if (groupId.startsWith("dept")) { // 部门的id是加了前缀的如:dept:1 |
| | | } else if (groupId.startsWith("dept")) { // 部门的id是加了前缀的如:dept:1 |
| | | vo.setHandlerType(HandlerTypeEnum.DEPT); |
| | | String[] split = groupId.split(":"); |
| | | if (split.length > 1) { |
| | |
| | | List<UserTask> userTasks = allUserTaskElement.subList(startNum, end); |
| | | |
| | | |
| | | |
| | | // 判断任务状态,构建vo |
| | | List<CustomerTaskVO> vos = new ArrayList<>(48); |
| | | for (UserTask userTask : userTasks) { |
| | |
| | | if (groupId.contains(ProcessConstants.DATA_LAUNCH)) { |
| | | vo.setHandlerType(HandlerTypeEnum.DEPT); |
| | | this.varYzReview(vo, projectId, processInsId, HandlerTypeEnum.DEPT); |
| | | } |
| | | else if (groupId.startsWith("dept")) { // 部门的id是加了前缀的如:dept:1 |
| | | } else if (groupId.startsWith("dept")) { // 部门的id是加了前缀的如:dept:1 |
| | | vo.setHandlerType(HandlerTypeEnum.DEPT); |
| | | String[] split = groupId.split(":"); |
| | | if (split.length > 1) { |
| | |
| | | taskVO.setPromoterName("暂无"); |
| | | taskVO.setPromoterUnitName("暂无"); |
| | | } else { |
| | | taskVO.setPromoterId(userList.stream().map(user -> { return user.getUserId() + ""; }).collect(Collectors.joining("、"))); |
| | | taskVO.setPromoterName(userList.stream().map(user -> { return user.getNickName(); }).collect(Collectors.joining("、"))); |
| | | taskVO.setPromoterUnitId(userList.stream().filter(user -> Objects.nonNull(user.getDept())).map(user -> { return user.getDept().getDeptId() + "";}).collect(Collectors.joining("、"))); |
| | | taskVO.setPromoterUnitName(userList.stream().filter(user -> Objects.nonNull(user.getDept())).map(user -> { return user.getDept().getDeptName() + "";}).collect(Collectors.joining("、"))); |
| | | taskVO.setPromoterId(userList.stream().map(user -> { |
| | | return user.getUserId() + ""; |
| | | }).collect(Collectors.joining("、"))); |
| | | taskVO.setPromoterName(userList.stream().map(user -> { |
| | | return user.getNickName(); |
| | | }).collect(Collectors.joining("、"))); |
| | | taskVO.setPromoterUnitId(userList.stream().filter(user -> Objects.nonNull(user.getDept())).map(user -> { |
| | | return user.getDept().getDeptId() + ""; |
| | | }).collect(Collectors.joining("、"))); |
| | | taskVO.setPromoterUnitName(userList.stream().filter(user -> Objects.nonNull(user.getDept())).map(user -> { |
| | | return user.getDept().getDeptName() + ""; |
| | | }).collect(Collectors.joining("、"))); |
| | | } |
| | | } |
| | | |