AssoTaskFileService.java 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. package cn.cslg.pas.service.business;
  2. import cn.cslg.pas.common.dto.business.AssoTaskFileDTO;
  3. import cn.cslg.pas.common.model.cronModel.PersonnelVO;
  4. import cn.cslg.pas.common.model.cronModel.SystemFile;
  5. import cn.cslg.pas.common.utils.CacheUtils;
  6. import cn.cslg.pas.common.utils.LoginUtils;
  7. import cn.cslg.pas.common.vo.business.AssoTaskFileVO;
  8. import cn.cslg.pas.domain.business.AssoHandleResultFile;
  9. import cn.cslg.pas.domain.business.AssoTaskFile;
  10. import cn.cslg.pas.domain.business.ProjectTask;
  11. import cn.cslg.pas.domain.business.TaskHandleResult;
  12. import cn.cslg.pas.exception.UnLoginException;
  13. import cn.cslg.pas.exception.XiaoShiException;
  14. import cn.cslg.pas.mapper.AssoTaskFileMapper;
  15. import cn.cslg.pas.service.common.FileManagerService;
  16. import com.alibaba.fastjson.JSONObject;
  17. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  18. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  19. import org.springframework.beans.BeanUtils;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.stereotype.Service;
  22. import java.io.IOException;
  23. import java.util.ArrayList;
  24. import java.util.List;
  25. import java.util.stream.Collectors;
  26. /**
  27. * 任务与文件关联表的Service
  28. * @Author xiexiang
  29. * @Date 2023/11/24
  30. */
  31. @Service
  32. public class AssoTaskFileService extends ServiceImpl<AssoTaskFileMapper, AssoTaskFile> {
  33. @Autowired
  34. private CacheUtils cacheUtils;
  35. @Autowired
  36. private LoginUtils loginUtils;
  37. @Autowired
  38. private FileManagerService fileManagerService;
  39. /**
  40. * 添加任务与文件关联
  41. * @param assoTaskFileDTO
  42. * @return
  43. */
  44. public List<Integer> addTaskFile(AssoTaskFileDTO assoTaskFileDTO){
  45. if (assoTaskFileDTO.getTaskId() == null) {
  46. throw new XiaoShiException("任务id不能为空");
  47. }
  48. if (assoTaskFileDTO.getFileGuids() == null || assoTaskFileDTO.getFileGuids().size() == 0) {
  49. throw new XiaoShiException("文件ids不能为空");
  50. }
  51. //获取登陆人信息 用于设置创建人
  52. PersonnelVO personnelVO = new PersonnelVO();
  53. personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
  54. List<String> fileGuids = assoTaskFileDTO.getFileGuids();
  55. List<AssoTaskFile> assoTaskFiles = new ArrayList<>();
  56. for (String item : fileGuids) {
  57. AssoTaskFile assoTaskFile = new AssoTaskFile();
  58. BeanUtils.copyProperties(assoTaskFileDTO, assoTaskFile);
  59. assoTaskFile.setFileGuid(item);
  60. assoTaskFile.setCreateId(personnelVO.getId());
  61. assoTaskFiles.add(assoTaskFile);
  62. }
  63. this.saveBatch(assoTaskFiles);
  64. List<Integer> ids = assoTaskFiles.stream().map(AssoTaskFile::getId).collect(Collectors.toList());
  65. return ids;
  66. }
  67. /**
  68. * 查询文件与任务关联
  69. * @param taskId
  70. * @return
  71. */
  72. public List<AssoTaskFileVO> getAssoTaskFile(Integer taskId) throws IOException {
  73. List<AssoTaskFileVO> assoTaskFileVOS = new ArrayList<>();
  74. List<String> fileGuids = new ArrayList<>();
  75. List<SystemFile> systemFiles = new ArrayList<>();
  76. LambdaQueryWrapper<AssoTaskFile> queryWrapper = new LambdaQueryWrapper<>();
  77. queryWrapper.eq(AssoTaskFile::getTaskId, taskId);
  78. List<AssoTaskFile> assoTaskFiles = this.list(queryWrapper);
  79. if (assoTaskFiles.size() != 0) {
  80. fileGuids = assoTaskFiles.stream().map(AssoTaskFile::getFileGuid).collect(Collectors.toList());
  81. }
  82. if (fileGuids.size() != 0) {
  83. String res = fileManagerService.getSystemFileFromFMS(fileGuids);
  84. systemFiles = JSONObject.parseArray(res, SystemFile.class);
  85. }
  86. if (systemFiles.size() != 0) {
  87. for (AssoTaskFile assoTaskFile : assoTaskFiles) {
  88. AssoTaskFileVO assoTaskFileVO = new AssoTaskFileVO();
  89. SystemFile systemFile = systemFiles.stream().filter(item -> item.getGuid().equals(assoTaskFile.getFileGuid())).findFirst().orElse(null);
  90. if (systemFile != null) {
  91. BeanUtils.copyProperties(assoTaskFile, assoTaskFileVO);
  92. assoTaskFileVO.setFileType(systemFile.getType());
  93. assoTaskFileVO.setFileName(systemFile.getOriginalName());
  94. assoTaskFileVOS.add(assoTaskFileVO);
  95. }
  96. }
  97. }
  98. return assoTaskFileVOS;
  99. }
  100. /**
  101. * 删除任务与文件关联表
  102. * @param ids
  103. */
  104. public void deleteAssoTaskFile(List<Integer> ids){
  105. if (ids.size() != 0) {
  106. this.removeBatchByIds(ids);
  107. } else {
  108. throw new XiaoShiException("需要删除的ids不为空");
  109. }
  110. }
  111. }