package cn.cslg.pas.service.novelty; import cn.cslg.pas.common.dto.NoveltyProjectDTO.QueryTemplateDTO; import cn.cslg.pas.common.model.cronModel.Personnel; import cn.cslg.pas.common.model.cronModel.Records; import cn.cslg.pas.common.vo.NoveltyProjectVO.QueryTemplateVO; import cn.cslg.pas.domain.business.RetrieveRecord; import cn.cslg.pas.domain.business.novelty.NoveltyReportTemplate; import cn.cslg.pas.mapper.novelty.NoveltyReportTemplateMapper; import cn.cslg.pas.service.permissions.PermissionService; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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 org.springframework.util.CollectionUtils; import java.io.IOException; import java.util.ArrayList; import java.util.List; /** * 查新检索报告模板 * @Author xiexiang * @Date 2024/9/26 */ @Service public class NoveltyReportTemplateService extends ServiceImpl { @Autowired private PermissionService permissionService; // public List queryTemplate(QueryTemplateDTO queryTemplateDTO) throws IOException { // List queryTemplateVOS = new ArrayList<>(); // List noveltyReportTemplates = new ArrayList<>(); // if (queryTemplateDTO.getTemplateId() != null) { // NoveltyReportTemplate noveltyReportTemplate = this.getById(queryTemplateDTO.getTemplateId()); // noveltyReportTemplates.add(noveltyReportTemplate); // } else { // noveltyReportTemplates = this.list(); // } // if (!noveltyReportTemplates.isEmpty()) { // queryTemplateVOS = this.loadTemplateVOS(noveltyReportTemplates); // } // return queryTemplateVOS; // } public Records queryTemplate(QueryTemplateDTO queryTemplateDTO) throws IOException { Integer temId = queryTemplateDTO.getTemplateId(); Long size = queryTemplateDTO.getSize(); Long current = queryTemplateDTO.getCurrent(); Records records = new Records(); Long total = null; List queryTemplateVOS = new ArrayList<>(); List noveltyReportTemplates = new ArrayList<>(); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); if (temId != null) { queryWrapper.eq(NoveltyReportTemplate::getId, temId); } if (size != null && current != null) { IPage noveltyReportTemplatePage = this.page(new Page<>(current, size), queryWrapper); noveltyReportTemplates = noveltyReportTemplatePage.getRecords(); total = noveltyReportTemplatePage.getTotal(); } else { noveltyReportTemplates = this.list(queryWrapper); total = (long) noveltyReportTemplates.size(); } if (!noveltyReportTemplates.isEmpty()) { queryTemplateVOS = this.loadTemplateVOS(noveltyReportTemplates); } records.setData(queryTemplateVOS); records.setCurrent(queryTemplateDTO.getCurrent()); records.setSize(queryTemplateDTO.getSize()); records.setTotal(total); return records; } private List loadTemplateVOS(List noveltyReportTemplates) throws IOException { List queryTemplateVOS = new ArrayList<>(); if (!CollectionUtils.isEmpty(noveltyReportTemplates)) { List createIds = new ArrayList<>(); List personnels = new ArrayList<>(); noveltyReportTemplates.forEach(item -> { if (item.getCreateId() != null) { createIds.add(item.getCreateId()); } }); //查询创建人名称 if (!CollectionUtils.isEmpty(createIds)) { String res = permissionService.getPersonnelByIdsFromPCS(createIds); JSONObject jsonObject = JSON.parseObject(res); personnels = JSONObject.parseArray(jsonObject.getString("data"), Personnel.class); } for (NoveltyReportTemplate noveltyReportTemplate : noveltyReportTemplates) { QueryTemplateVO queryTemplateVO = new QueryTemplateVO(); BeanUtils.copyProperties(noveltyReportTemplate, queryTemplateVO); //装载人员信息 Personnel personnel = personnels.stream().filter(item -> item.getId().equals(noveltyReportTemplate.getCreateId())).findFirst().orElse(null); if (personnel != null) { queryTemplateVO.setCreateName(personnel.getPersonnelName()); } queryTemplateVOS.add(queryTemplateVO); } } return queryTemplateVOS; } }