123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- package cn.cslg.pas.service.novelty;
- import cn.cslg.pas.common.dto.NoveltyProjectDTO.NoveltyReportReferenceDTO;
- import cn.cslg.pas.common.dto.NoveltyProjectDTO.NoveltyReportReferenceQueryDTO;
- import cn.cslg.pas.common.dto.business.GetReferencesDTO;
- import cn.cslg.pas.common.model.cronModel.Records;
- import cn.cslg.pas.common.vo.NoveltyProjectVO.NoveltyReferencesVO;
- import cn.cslg.pas.common.vo.business.ReferencesVO;
- import cn.cslg.pas.domain.business.References;
- import cn.cslg.pas.domain.business.ReportTemple;
- import cn.cslg.pas.domain.business.novelty.NoveltyReportTemplate;
- import cn.cslg.pas.service.business.ReferencesService;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import cn.cslg.pas.domain.business.novelty.NoveltyReportReferences;
- import cn.cslg.pas.mapper.novelty.NoveltyReportReferencesMapper;
- import lombok.RequiredArgsConstructor;
- import org.apache.poi.hslf.record.Record;
- import org.springframework.beans.BeanUtils;
- import org.springframework.stereotype.Service;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.stream.Collectors;
- /**
- * @author admin
- * @description 针对表【novelty_report_references(查新报告文档)】的数据库操作Service实现
- * @createDate 2024-09-30 15:33:57
- */
- @Service
- @RequiredArgsConstructor
- public class NoveltyReportReferencesService extends ServiceImpl<NoveltyReportReferencesMapper, NoveltyReportReferences> {
- private final NoveltyReportTemplateService noveltyReportTemplateService;
- private final ReferencesService referencesService;
- public Integer addOrUpdate(NoveltyReportReferenceDTO noveltyReportReferenceDTO) {
- Integer id = noveltyReportReferenceDTO.getId();
- if (id != null) {
- return this.updateReference(noveltyReportReferenceDTO);
- } else {
- return this.addReference(noveltyReportReferenceDTO);
- }
- }
- private Integer addReference(NoveltyReportReferenceDTO noveltyReportReferenceDTO) {
- Integer templateId = noveltyReportReferenceDTO.getTemplateId();
- Integer projectId =noveltyReportReferenceDTO.getProjectId();
- NoveltyReportTemplate noveltyReportTemplate = noveltyReportTemplateService.getById(templateId);
- String dataSource = noveltyReportReferenceDTO.getDataSource();
- //添加附件
- References references = new References();
- references.setReferencesName("");
- references.setProjectId(projectId);
- references.insert();
- //添加查新报告附件
- NoveltyReportReferences noveltyReportReferences = new NoveltyReportReferences();
- noveltyReportReferences.setReportReferenceId(references.getId());
- noveltyReportReferences.setIfHaveFinalFile(false);
- noveltyReportReferences.setTemplateId(templateId);
- noveltyReportReferences.setDataSource(dataSource);
- noveltyReportReferences.setConfigMessage(noveltyReportTemplate.getConfigMessage());
- noveltyReportReferences.insert();
- return references.getId();
- }
- private Integer updateReference(NoveltyReportReferenceDTO noveltyReportReferenceDTO) {
- Integer templateId = noveltyReportReferenceDTO.getTemplateId();
- String dataSource = noveltyReportReferenceDTO.getDataSource();
- Integer id = noveltyReportReferenceDTO.getId();
- LambdaQueryWrapper<NoveltyReportReferences> queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.eq(NoveltyReportReferences::getReportReferenceId, id);
- NoveltyReportReferences noveltyReportReferences = this.getOne(queryWrapper, false);
- noveltyReportReferences.setDataSource(dataSource);
- noveltyReportReferences.updateById();
- return id;
- }
- public Integer addFinalReference(Integer id, String fileGuid) {
- References references = referencesService.getById(id);
- references.setFileGuid(fileGuid);
- LambdaQueryWrapper<NoveltyReportReferences> queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.eq(NoveltyReportReferences::getReportReferenceId, id);
- NoveltyReportReferences noveltyReportReferences = this.getOne(queryWrapper, false);
- noveltyReportReferences.setIfHaveFinalFile(true);
- noveltyReportReferences.updateById();
- return id;
- }
- public Records queryReference(NoveltyReportReferenceQueryDTO noveltyReportReferenceQueryDTO) {
- List<NoveltyReferencesVO> noveltyReferencesVOS = new ArrayList<>();
- GetReferencesDTO getReferencesDTO = new GetReferencesDTO();
- BeanUtils.copyProperties(noveltyReportReferenceQueryDTO, getReferencesDTO);
- Records records = referencesService.query(getReferencesDTO);
- List<ReferencesVO> referencesVOS = (List<ReferencesVO>) records.getData();
- List<Integer> ids = referencesVOS.stream().map(ReferencesVO::getId).collect(Collectors.toList());
- if (ids == null || ids.size() == 0) {
- records.setData(noveltyReferencesVOS);
- return records;
- }
- LambdaQueryWrapper<NoveltyReportReferences> queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.in(NoveltyReportReferences::getReportReferenceId, ids);
- List<NoveltyReportReferences> noveltyReportReferences = this.list(queryWrapper);
- referencesVOS.forEach(item -> {
- NoveltyReferencesVO noveltyReferencesVO = new NoveltyReferencesVO();
- BeanUtils.copyProperties(item, noveltyReferencesVO);
- NoveltyReportReferences noveltyReportReference = noveltyReportReferences.stream().filter(tem -> tem.getReportReferenceId().equals(item.getId())).findFirst().orElse(null);
- if (noveltyReportReference != null) {
- noveltyReferencesVO.setIfHaveFinalFile(noveltyReportReference.getIfHaveFinalFile());
- noveltyReferencesVO.setDataSource(noveltyReportReference.getDataSource());
- noveltyReferencesVO.setConfigMessage(noveltyReportReference.getConfigMessage());
- }
- noveltyReferencesVOS.add(noveltyReferencesVO);
- });
- records.setData(referencesVOS);
- return records;
- }
- public List<Integer> delete(List<Integer> ids){
- //删除文件
- referencesService.removeBatchByIds(ids);
- //删除
- LambdaQueryWrapper<NoveltyReportReferences> queryWrapper =new LambdaQueryWrapper<>();
- queryWrapper.in(NoveltyReportReferences::getReportReferenceId,ids);
- this.remove(queryWrapper);
- return ids;
- }
- }
|