123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- package cn.cslg.pas.service.business;
- import cn.cslg.pas.common.dto.business.AssoTaskFileDTO;
- import cn.cslg.pas.common.model.cronModel.PersonnelVO;
- import cn.cslg.pas.common.model.cronModel.SystemFile;
- import cn.cslg.pas.common.utils.CacheUtils;
- import cn.cslg.pas.common.utils.LoginUtils;
- import cn.cslg.pas.common.vo.business.AssoTaskFileVO;
- import cn.cslg.pas.domain.business.AssoHandleResultFile;
- import cn.cslg.pas.domain.business.AssoTaskFile;
- import cn.cslg.pas.domain.business.ProjectTask;
- import cn.cslg.pas.domain.business.TaskHandleResult;
- import cn.cslg.pas.exception.UnLoginException;
- import cn.cslg.pas.exception.XiaoShiException;
- import cn.cslg.pas.mapper.AssoTaskFileMapper;
- import cn.cslg.pas.service.common.FileManagerService;
- import com.alibaba.fastjson.JSONObject;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import org.springframework.beans.BeanUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.stream.Collectors;
- /**
- * 任务与文件关联表的Service
- * @Author xiexiang
- * @Date 2023/11/24
- */
- @Service
- public class AssoTaskFileService extends ServiceImpl<AssoTaskFileMapper, AssoTaskFile> {
- @Autowired
- private CacheUtils cacheUtils;
- @Autowired
- private LoginUtils loginUtils;
- @Autowired
- private FileManagerService fileManagerService;
- /**
- * 添加任务与文件关联
- * @param assoTaskFileDTO
- * @return
- */
- public List<Integer> addTaskFile(AssoTaskFileDTO assoTaskFileDTO){
- if (assoTaskFileDTO.getTaskId() == null) {
- throw new XiaoShiException("任务id不能为空");
- }
- if (assoTaskFileDTO.getFileGuids() == null || assoTaskFileDTO.getFileGuids().size() == 0) {
- throw new XiaoShiException("文件ids不能为空");
- }
- //获取登陆人信息 用于设置创建人
- PersonnelVO personnelVO = new PersonnelVO();
- personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
- List<String> fileGuids = assoTaskFileDTO.getFileGuids();
- List<AssoTaskFile> assoTaskFiles = new ArrayList<>();
- for (String item : fileGuids) {
- AssoTaskFile assoTaskFile = new AssoTaskFile();
- BeanUtils.copyProperties(assoTaskFileDTO, assoTaskFile);
- assoTaskFile.setFileGuid(item);
- assoTaskFile.setCreateId(personnelVO.getId());
- assoTaskFiles.add(assoTaskFile);
- }
- this.saveBatch(assoTaskFiles);
- List<Integer> ids = assoTaskFiles.stream().map(AssoTaskFile::getId).collect(Collectors.toList());
- return ids;
- }
- /**
- * 查询文件与任务关联
- * @param taskId
- * @return
- */
- public List<AssoTaskFileVO> getAssoTaskFile(Integer taskId) throws IOException {
- List<AssoTaskFileVO> assoTaskFileVOS = new ArrayList<>();
- List<String> fileGuids = new ArrayList<>();
- List<SystemFile> systemFiles = new ArrayList<>();
- LambdaQueryWrapper<AssoTaskFile> queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.eq(AssoTaskFile::getTaskId, taskId);
- List<AssoTaskFile> assoTaskFiles = this.list(queryWrapper);
- if (assoTaskFiles.size() != 0) {
- fileGuids = assoTaskFiles.stream().map(AssoTaskFile::getFileGuid).collect(Collectors.toList());
- }
- if (fileGuids.size() != 0) {
- String res = fileManagerService.getSystemFileFromFMS(fileGuids);
- systemFiles = JSONObject.parseArray(res, SystemFile.class);
- }
- if (systemFiles.size() != 0) {
- for (AssoTaskFile assoTaskFile : assoTaskFiles) {
- AssoTaskFileVO assoTaskFileVO = new AssoTaskFileVO();
- SystemFile systemFile = systemFiles.stream().filter(item -> item.getGuid().equals(assoTaskFile.getFileGuid())).findFirst().orElse(null);
- if (systemFile != null) {
- BeanUtils.copyProperties(assoTaskFile, assoTaskFileVO);
- assoTaskFileVO.setFileType(systemFile.getType());
- assoTaskFileVO.setFileName(systemFile.getOriginalName());
- assoTaskFileVOS.add(assoTaskFileVO);
- }
- }
- }
- return assoTaskFileVOS;
- }
- /**
- * 删除任务与文件关联表
- * @param ids
- */
- public void deleteAssoTaskFile(List<Integer> ids){
- if (ids.size() != 0) {
- this.removeBatchByIds(ids);
- } else {
- throw new XiaoShiException("需要删除的ids不为空");
- }
- }
- }
|