123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- package cn.cslg.pas.service.business;
- import cn.cslg.pas.common.dto.HightlightTemplateDTO;
- import cn.cslg.pas.common.model.cronModel.Personnel;
- import cn.cslg.pas.common.model.cronModel.PersonnelVO;
- import cn.cslg.pas.common.utils.CacheUtils;
- import cn.cslg.pas.common.utils.JsonUtils;
- import cn.cslg.pas.common.utils.LoginUtils;
- import cn.cslg.pas.common.utils.StringUtils;
- import cn.cslg.pas.common.vo.HightlightTemplateVO;
- import cn.cslg.pas.common.vo.business.ProjectTaskVO;
- import cn.cslg.pas.domain.business.HightlightTemplate;
- import cn.cslg.pas.domain.business.LitigationHistory;
- import cn.cslg.pas.exception.XiaoShiException;
- import cn.cslg.pas.mapper.HightlightTemplateMapper;
- import cn.cslg.pas.service.permissions.PermissionService;
- import cn.cslg.pas.service.query.Query;
- import com.alibaba.fastjson.JSONObject;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.BeanUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.scheduling.annotation.Async;
- import org.springframework.stereotype.Service;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- /**
- * @Author xiexiang
- * @Date 2024/1/12
- */
- @Slf4j
- @Service
- public class HightlightTemplateService extends ServiceImpl<HightlightTemplateMapper, HightlightTemplate> {
- @Autowired
- private LoginUtils loginUtils;
- @Autowired
- private CacheUtils cacheUtils;
- @Autowired
- private PermissionService permissionService;
- /**
- * 添加or更新
- * @param hightlightTemplateDTO
- * @return
- */
- public HightlightTemplate saveOrUpdate(HightlightTemplateDTO hightlightTemplateDTO){
- if (hightlightTemplateDTO == null) {
- throw new XiaoShiException("入参为空");
- }
- PersonnelVO personnelVO = new PersonnelVO();
- personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
- Integer id = hightlightTemplateDTO.getId();
- HightlightTemplate hightlightTemplate = new HightlightTemplate();
- if (id != null) {
- //update
- hightlightTemplate = this.getById(id);
- Date createTime = hightlightTemplate.getCreateTime();
- BeanUtils.copyProperties(hightlightTemplateDTO, hightlightTemplate);
- hightlightTemplate.setConfig(JsonUtils.objectToJson(hightlightTemplateDTO.getConfigs()));
- hightlightTemplate.setCreateTime(createTime);
- hightlightTemplate.updateById();
- } else {
- String name = hightlightTemplateDTO.getName();
- if (name == null || StringUtils.isEmpty(name)) {
- name = "新模板";
- hightlightTemplateDTO.setName(name);
- }
- BeanUtils.copyProperties(hightlightTemplateDTO, hightlightTemplate);
- this.setConfigs(hightlightTemplate);
- if (hightlightTemplate.getCreateId() == null) {
- hightlightTemplate.setCreateId(personnelVO.getId());
- }
- hightlightTemplate.insert();
- }
- return hightlightTemplate;
- }
- /**
- * 查询
- * @param projectId
- * @return
- * @throws IOException
- */
- public List<HightlightTemplateVO> getHightlight(Integer projectId) throws IOException {
- if (projectId == null) {
- throw new XiaoShiException("入参为空");
- }
- PersonnelVO personnelVO = new PersonnelVO();
- personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
- List<HightlightTemplateVO> hightlightTemplateVOS = new ArrayList<>();
- LambdaQueryWrapper<HightlightTemplate> queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.eq(HightlightTemplate::getProjectId, projectId)
- .eq(HightlightTemplate::getCreateId, personnelVO.getId())
- .orderByDesc(HightlightTemplate::getCreateTime);
- List<HightlightTemplate> hightlightTemplates = this.list(queryWrapper);
- if (!hightlightTemplates.isEmpty()) {
- hightlightTemplates.forEach(item -> {
- HightlightTemplateVO hightlightTemplateVO = new HightlightTemplateVO();
- BeanUtils.copyProperties(item, hightlightTemplateVO);
- hightlightTemplateVOS.add(hightlightTemplateVO);
- });
- } else {
- HightlightTemplateVO hightlightTemplateVO = new HightlightTemplateVO();
- HightlightTemplateDTO hightlightDTO = new HightlightTemplateDTO();
- hightlightDTO.setName("默认模板");
- hightlightDTO.setIfEnable(true);
- hightlightDTO.setProjectId(projectId);
- hightlightDTO.setCreateId(personnelVO.getId());
- hightlightDTO.setIfEnable(true);
- hightlightDTO.setIfDefault(true);
- Integer id = this.saveOrUpdate(hightlightDTO).getId();
- HightlightTemplate hightlightTemplate = this.getById(id);
- BeanUtils.copyProperties(hightlightTemplate, hightlightTemplateVO);
- hightlightTemplateVOS.add(hightlightTemplateVO);
- }
- this.loadHightlightVOS(hightlightTemplateVOS);
- return hightlightTemplateVOS;
- }
- public void loadHightlightVOS(List<HightlightTemplateVO> hightlightTemplateVOS) throws IOException {
- List<String> createIds = new ArrayList<>();
- hightlightTemplateVOS.forEach(item -> {
- if (item.getCreateId() != null) {
- createIds.add(item.getCreateId());
- }
- });
- List<Personnel> personnels = new ArrayList<>();
- //查询发起人名称
- if (createIds.size() != 0) {
- String res = permissionService.getPersonnelByIdsFromPCS(createIds);
- JSONObject jsonObject = JSONObject.parseObject(res);
- personnels = JSONObject.parseArray(jsonObject.getString("data"), Personnel.class);
- }
- //装载信息
- for (HightlightTemplateVO hightlightTemplateVO : hightlightTemplateVOS) {
- //装载人员信息
- Personnel personnel = personnels.stream().filter(item -> item.getId().equals(hightlightTemplateVO.getCreateId())).findFirst().orElse(null);
- if (personnel != null) {
- hightlightTemplateVO.setCreateName(personnel.getPersonnelName());
- }
- hightlightTemplateVO.setConfigs(JsonUtils.jsonToList(hightlightTemplateVO.getConfig(), HightlightTemplate.Config.class));
- hightlightTemplateVO.setConfig(null);
- }
- }
- public List<Integer> deleteHightlight(List<Integer> ids) {
- if (!ids.isEmpty()) {
- this.removeBatchByIds(ids);
- }
- return ids;
- }
- public void setConfigs(HightlightTemplate hightlightTemplate) {
- List<HightlightTemplate.Config> configs = new ArrayList<>();
- List<String> colors = new ArrayList<String>() {{
- add("#5470c6");
- add("#91cc75");
- add("#fac858");
- add("#ee6666");
- add("#73c0de");
- }};
- for (String color : colors) {
- HightlightTemplate.Config config = new HightlightTemplate.Config();
- config.setKeywords("");
- config.setColor(color);
- configs.add(config);
- }
- hightlightTemplate.setConfig(JsonUtils.objectToJson(configs));
- hightlightTemplate.setConfigs(configs);
- }
- }
|