123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- package cn.cslg.pas.service.business;
- import cn.cslg.pas.common.dto.QueryScratchWordsDTO;
- import cn.cslg.pas.common.dto.SwQueryDTO;
- import cn.cslg.pas.common.dto.business.UpdateScratchWordsDTO;
- import cn.cslg.pas.common.model.cronModel.Personnel;
- import cn.cslg.pas.common.model.cronModel.PersonnelVO;
- import cn.cslg.pas.common.model.cronModel.Records;
- import cn.cslg.pas.common.utils.CacheUtils;
- import cn.cslg.pas.common.utils.LoginUtils;
- import cn.cslg.pas.common.vo.ScratchWordsVO;
- import cn.cslg.pas.domain.business.ScratchWords;
- import cn.cslg.pas.domain.es.Marking;
- import cn.cslg.pas.domain.es.Patent;
- import cn.cslg.pas.exception.XiaoShiException;
- import cn.cslg.pas.mapper.ScratchWordsMapper;
- import cn.cslg.pas.service.business.es.EsPatentService;
- import cn.cslg.pas.service.business.es.EsScratchWordsService;
- import cn.cslg.pas.service.business.es.EsService;
- import cn.cslg.pas.service.permissions.PermissionService;
- import co.elastic.clients.elasticsearch.core.search.Hit;
- import com.alibaba.fastjson.JSONObject;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import lombok.RequiredArgsConstructor;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.BeanUtils;
- import org.springframework.context.annotation.Lazy;
- import org.springframework.stereotype.Service;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Map;
- import java.util.stream.Collectors;
- /**
- * @Author xiexiang
- * @Date 2024/1/10
- */
- @Slf4j
- @Service
- @RequiredArgsConstructor(onConstructor_ = {@Lazy})
- public class ScratchWordsService extends ServiceImpl<ScratchWordsMapper, ScratchWords> {
- private final CacheUtils cacheUtils;
- private final LoginUtils loginUtils;
- private final EsScratchWordsService esScratchWordsService;
- private final EsPatentService esPatentService;
- private final PermissionService permissionService;
- /**
- * 新增划词高亮
- *
- * @param scratchWords
- */
- public String add(ScratchWords scratchWords) {
- //获取当前登陆人信息
- PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
- if (personnelVO != null) {
- //设置创建人id
- scratchWords.setMarkUserId(personnelVO.getId());
- //设置租户id
- scratchWords.setPublicTenantId(personnelVO.getTenantId());
- } else {
- throw new XiaoShiException("未查询到创建人信息");
- }
- //数据入表
- String id = esScratchWordsService.addScratchWords(scratchWords);
- return id;
- }
- /**
- * 更新划词高亮
- *
- * @param updateScratchWordsDTO
- */
- public String update(UpdateScratchWordsDTO updateScratchWordsDTO) {
- String id = updateScratchWordsDTO.getId();
- Marking marking = new Marking();
- BeanUtils.copyProperties(updateScratchWordsDTO, marking);
- id = esScratchWordsService.updateScratchWords(id, marking);
- return id;
- }
- /**
- * 查询划词高亮
- *
- * @param queryScratchWordsDTO
- * @return
- */
- public Records query(QueryScratchWordsDTO queryScratchWordsDTO) {
- Records records = esScratchWordsService.queryScratchWord(queryScratchWordsDTO);
- List<ScratchWordsVO> scratchWordsVOS = (List<ScratchWordsVO>) records.getData();
- if(scratchWordsVOS!=null) {
- this.loadData(scratchWordsVOS);
- }
- records.setData(scratchWordsVOS);
- records.setSize(queryScratchWordsDTO.getSize());
- records.setCurrent(queryScratchWordsDTO.getCurrent());
- return records;
- }
- /**
- * 删除划词高亮
- *
- * @param ids
- **/
- public List<String> removeById(List<String> ids) {
- ids.forEach(item -> {
- try {
- esScratchWordsService.removeById(item);
- } catch (Exception e) {
- throw new XiaoShiException("删除错误");
- }
- });
- return ids;
- }
- private void loadData(List<ScratchWordsVO> scratchWordsVOS) {
- List<String> ids = scratchWordsVOS.stream().map(ScratchWordsVO::getMarkUserId).collect(Collectors.toList());
- List<String> patentNos = scratchWordsVOS.stream().map(ScratchWordsVO::getPatentNo).collect(Collectors.toList());
- //查询创建人名称
- List<Personnel> personnels = new ArrayList<>();
- List<Patent> patents = new ArrayList<>();
- if (ids.size() != 0) {
- try {
- String res = permissionService.getPersonnelByIdsFromPCS(ids);
- JSONObject jsonObject = JSONObject.parseObject(res);
- personnels = JSONObject.parseArray(jsonObject.getString("data"), Personnel.class);
- } catch (Exception e) {
- }
- }
- if (patentNos.size() != 0) {
- try {
- patents = esPatentService.getPatentsByNo(patentNos,false,null,null);
- } catch (Exception e) {
- }
- }
- for (ScratchWordsVO scratchWordsVO : scratchWordsVOS) {
- Personnel personnel = personnels.stream().filter(item -> item.getId().equals(scratchWordsVO.getMarkUserId())).findFirst().orElse(null);
- if (personnel != null) {
- scratchWordsVO.setCreateName(personnel.getPersonnelName());
- }
- Patent patent = patents.stream().filter(item -> item.getPatentNo().equals(scratchWordsVO.getPatentNo())).findFirst().orElse(null);
- if (patent != null) {
- if (patent.getTitle() != null && patent.getTitle().size() > 0) {
- scratchWordsVO.setTitle(patent.getTitle().get(0).getTextContent());
- }
- }
- }
- }
- }
|