NoveltyReportReferencesService.java 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. package cn.cslg.pas.service.novelty;
  2. import cn.cslg.pas.common.dto.NoveltyProjectDTO.NoveltyReportReferenceDTO;
  3. import cn.cslg.pas.common.dto.NoveltyProjectDTO.NoveltyReportReferenceQueryDTO;
  4. import cn.cslg.pas.common.dto.business.GetReferencesDTO;
  5. import cn.cslg.pas.common.model.cronModel.Records;
  6. import cn.cslg.pas.common.vo.NoveltyProjectVO.NoveltyReferencesVO;
  7. import cn.cslg.pas.common.vo.business.ReferencesVO;
  8. import cn.cslg.pas.domain.business.References;
  9. import cn.cslg.pas.domain.business.ReportTemple;
  10. import cn.cslg.pas.domain.business.novelty.NoveltyReportTemplate;
  11. import cn.cslg.pas.service.business.ReferencesService;
  12. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  13. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  14. import cn.cslg.pas.domain.business.novelty.NoveltyReportReferences;
  15. import cn.cslg.pas.mapper.novelty.NoveltyReportReferencesMapper;
  16. import lombok.RequiredArgsConstructor;
  17. import org.apache.poi.hslf.record.Record;
  18. import org.springframework.beans.BeanUtils;
  19. import org.springframework.stereotype.Service;
  20. import java.util.ArrayList;
  21. import java.util.List;
  22. import java.util.stream.Collectors;
  23. /**
  24. * @author admin
  25. * @description 针对表【novelty_report_references(查新报告文档)】的数据库操作Service实现
  26. * @createDate 2024-09-30 15:33:57
  27. */
  28. @Service
  29. @RequiredArgsConstructor
  30. public class NoveltyReportReferencesService extends ServiceImpl<NoveltyReportReferencesMapper, NoveltyReportReferences> {
  31. private final NoveltyReportTemplateService noveltyReportTemplateService;
  32. private final ReferencesService referencesService;
  33. public Integer addOrUpdate(NoveltyReportReferenceDTO noveltyReportReferenceDTO) {
  34. Integer id = noveltyReportReferenceDTO.getId();
  35. if (id != null) {
  36. return this.updateReference(noveltyReportReferenceDTO);
  37. } else {
  38. return this.addReference(noveltyReportReferenceDTO);
  39. }
  40. }
  41. private Integer addReference(NoveltyReportReferenceDTO noveltyReportReferenceDTO) {
  42. Integer templateId = noveltyReportReferenceDTO.getTemplateId();
  43. Integer projectId =noveltyReportReferenceDTO.getProjectId();
  44. NoveltyReportTemplate noveltyReportTemplate = noveltyReportTemplateService.getById(templateId);
  45. String dataSource = noveltyReportReferenceDTO.getDataSource();
  46. //添加附件
  47. References references = new References();
  48. references.setReferencesName("");
  49. references.setProjectId(projectId);
  50. references.insert();
  51. //添加查新报告附件
  52. NoveltyReportReferences noveltyReportReferences = new NoveltyReportReferences();
  53. noveltyReportReferences.setReportReferenceId(references.getId());
  54. noveltyReportReferences.setIfHaveFinalFile(false);
  55. noveltyReportReferences.setTemplateId(templateId);
  56. noveltyReportReferences.setDataSource(dataSource);
  57. noveltyReportReferences.setConfigMessage(noveltyReportTemplate.getConfigMessage());
  58. noveltyReportReferences.insert();
  59. return references.getId();
  60. }
  61. private Integer updateReference(NoveltyReportReferenceDTO noveltyReportReferenceDTO) {
  62. Integer templateId = noveltyReportReferenceDTO.getTemplateId();
  63. String dataSource = noveltyReportReferenceDTO.getDataSource();
  64. Integer id = noveltyReportReferenceDTO.getId();
  65. LambdaQueryWrapper<NoveltyReportReferences> queryWrapper = new LambdaQueryWrapper<>();
  66. queryWrapper.eq(NoveltyReportReferences::getReportReferenceId, id);
  67. NoveltyReportReferences noveltyReportReferences = this.getOne(queryWrapper, false);
  68. noveltyReportReferences.setDataSource(dataSource);
  69. noveltyReportReferences.updateById();
  70. return id;
  71. }
  72. public Integer addFinalReference(Integer id, String fileGuid) {
  73. References references = referencesService.getById(id);
  74. references.setFileGuid(fileGuid);
  75. LambdaQueryWrapper<NoveltyReportReferences> queryWrapper = new LambdaQueryWrapper<>();
  76. queryWrapper.eq(NoveltyReportReferences::getReportReferenceId, id);
  77. NoveltyReportReferences noveltyReportReferences = this.getOne(queryWrapper, false);
  78. noveltyReportReferences.setIfHaveFinalFile(true);
  79. noveltyReportReferences.updateById();
  80. return id;
  81. }
  82. public Records queryReference(NoveltyReportReferenceQueryDTO noveltyReportReferenceQueryDTO) {
  83. List<NoveltyReferencesVO> noveltyReferencesVOS = new ArrayList<>();
  84. GetReferencesDTO getReferencesDTO = new GetReferencesDTO();
  85. BeanUtils.copyProperties(noveltyReportReferenceQueryDTO, getReferencesDTO);
  86. Records records = referencesService.query(getReferencesDTO);
  87. List<ReferencesVO> referencesVOS = (List<ReferencesVO>) records.getData();
  88. List<Integer> ids = referencesVOS.stream().map(ReferencesVO::getId).collect(Collectors.toList());
  89. if (ids == null || ids.size() == 0) {
  90. records.setData(noveltyReferencesVOS);
  91. return records;
  92. }
  93. LambdaQueryWrapper<NoveltyReportReferences> queryWrapper = new LambdaQueryWrapper<>();
  94. queryWrapper.in(NoveltyReportReferences::getReportReferenceId, ids);
  95. List<NoveltyReportReferences> noveltyReportReferences = this.list(queryWrapper);
  96. referencesVOS.forEach(item -> {
  97. NoveltyReferencesVO noveltyReferencesVO = new NoveltyReferencesVO();
  98. BeanUtils.copyProperties(item, noveltyReferencesVO);
  99. NoveltyReportReferences noveltyReportReference = noveltyReportReferences.stream().filter(tem -> tem.getReportReferenceId().equals(item.getId())).findFirst().orElse(null);
  100. if (noveltyReportReference != null) {
  101. noveltyReferencesVO.setIfHaveFinalFile(noveltyReportReference.getIfHaveFinalFile());
  102. noveltyReferencesVO.setDataSource(noveltyReportReference.getDataSource());
  103. noveltyReferencesVO.setConfigMessage(noveltyReportReference.getConfigMessage());
  104. }
  105. noveltyReferencesVOS.add(noveltyReferencesVO);
  106. });
  107. records.setData(referencesVOS);
  108. return records;
  109. }
  110. public List<Integer> delete(List<Integer> ids){
  111. //删除文件
  112. referencesService.removeBatchByIds(ids);
  113. //删除
  114. LambdaQueryWrapper<NoveltyReportReferences> queryWrapper =new LambdaQueryWrapper<>();
  115. queryWrapper.in(NoveltyReportReferences::getReportReferenceId,ids);
  116. this.remove(queryWrapper);
  117. return ids;
  118. }
  119. }