123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- package com.wtkj.service.impl;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.wtkj.entity.FileAndFolder;
- import com.wtkj.entity.Task;
- import com.wtkj.entity.TaskFile;
- import com.wtkj.mapper.TaskMapper;
- import com.wtkj.service.IAsyncService;
- import com.wtkj.service.IFileAndFolderService;
- import com.wtkj.service.ITaskFileService;
- import com.wtkj.service.ITaskService;
- import com.wutong.file.feign.IFileClient;
- import com.wutong.file.vo.FileVO;
- import lombok.AllArgsConstructor;
- import org.springblade.core.mp.base.BaseServiceImpl;
- import org.springblade.core.secure.utils.AuthUtil;
- import org.springblade.core.tool.api.R;
- import org.springblade.core.tool.utils.Func;
- import org.springframework.stereotype.Service;
- import org.springframework.util.CollectionUtils;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * @author Blizzard
- * @create at 2023-09-15 15:18
- * @describe
- */
- @AllArgsConstructor
- @Service
- public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implements ITaskService {
- private final IAsyncService asyncService;
- private final ITaskFileService taskFileService;
- private final IFileAndFolderService fileAndFolderService;
- private final IFileClient fileClient;
- @Override
- public boolean submit(Task task) {
- boolean flag = false;
- Long taskId = task.getId();
- if (taskId == null) {
- flag = this.save(task);
- asyncService.createTaskLog(task);
- } else {
- //todo 任务状态处理
- //执行的顶级单位
- Long userId = AuthUtil.getUserId();
- Task byId = this.getById(taskId);
- if (byId != null) {
- //1.指定了执行单位
- if (byId.getOrgDeptId() == null && task.getOrgDeptId() != null) {
- asyncService.updateTask(1, userId, task);
- }
- //2.指定任务执行部门
- if (byId.getExecuteDept() == null && task.getExecuteDept() != null) {
- asyncService.updateTask(2, userId, task);
- }
- //3.指定项目经理
- if (byId.getProjectManager() == null && task.getProjectManager() != null) {
- asyncService.updateTask(3, userId, task);
- }
- //4.指定任务执行者
- if (byId.getExecuteUser() == null && task.getExecuteUser() != null) {
- asyncService.updateTask(4, userId, task);
- }
- }
- flag = this.updateById(task);
- }
- return flag;
- }
- @Override
- public IPage<Task> projectTaskPage(Long projectId, IPage<Task> page) {
- LambdaQueryWrapper<Task> lqw = new LambdaQueryWrapper<>();
- lqw.eq(Task::getProjectId, projectId);
- lqw.orderByAsc(Task::getTaskStatus);
- return baseMapper.selectPage(page, lqw);
- }
- @Override
- public boolean uploadFile(Long taskId, String ids) {
- boolean flag = false;
- if (ids != null) {
- List<TaskFile> files = new ArrayList<>();
- List<Long> fileIds = Func.toLongList(ids);
- fileIds.forEach(id -> {
- //判断这个文件是否已经存在
- TaskFile file = taskFileService.getByBladeFileId(taskId, id);
- //不存在 才保存
- if (file == null) {
- TaskFile taskFile = new TaskFile();
- taskFile.setTaskId(taskId);
- taskFile.setBladeFileId(id);
- files.add(taskFile);
- }
- });
- //提交任务消息
- asyncService.submitTaskMessage(AuthUtil.getUserId(), this.getById(taskId));
- flag = taskFileService.saveBatch(files);
- }
- return flag;
- }
- @Override
- public boolean moveFile(Long stageId, Long parentId, String fileIds) {
- boolean flag = false;
- List<Long> ids = Func.toLongList(fileIds);
- if (!CollectionUtils.isEmpty(ids)) {
- List<FileAndFolder> files = new ArrayList<>();
- FileAndFolder folder = fileAndFolderService.getById(parentId);
- if (folder != null) {
- ids.forEach(id -> {
- R<FileVO> rpc = fileClient.findById(id);
- if (rpc.isSuccess()) {
- FileAndFolder file = new FileAndFolder();
- file.setProjectId(folder.getProjectId());
- file.setStageId(stageId);
- file.setParentId(parentId);
- file.setType(1);
- file.setTitle(rpc.getData().getOriginalFileName());
- file.setBladeFileId(id);
- files.add(file);
- }
- });
- flag = fileAndFolderService.saveBatch(files);
- }
- }
- return flag;
- }
- @Override
- public boolean deleteFile(String ids) {
- return taskFileService.removeBatchByIds(Func.toLongList(ids));
- }
- }
|