CustomAnalyseService.java 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. package cn.cslg.pas.service.business;
  2. import cn.cslg.pas.common.dto.customAnalyse.SelectCustomAnalyseDTO;
  3. import cn.cslg.pas.common.dto.customAnalyse.SelectCustomAnalyseListDTO;
  4. import cn.cslg.pas.common.model.cronModel.PersonnelVO;
  5. import cn.cslg.pas.common.utils.CacheUtils;
  6. import cn.cslg.pas.common.utils.LoginUtils;
  7. import cn.cslg.pas.common.utils.Response;
  8. import cn.cslg.pas.common.vo.customAnalyse.CustomAnalyseIdVO;
  9. import cn.cslg.pas.common.vo.customAnalyse.CustomAnalyseVO;
  10. import cn.cslg.pas.common.vo.customAnalyse.SelectAnalyseVO;
  11. import cn.cslg.pas.common.vo.customAnalyse.SelectCustomAnalyseVO;
  12. import cn.cslg.pas.domain.business.CustomAnalysisItem;
  13. import cn.cslg.pas.exception.UnLoginException;
  14. import cn.cslg.pas.mapper.CustomAnalysisItemMapper;
  15. import cn.hutool.core.util.IdUtil;
  16. import cn.hutool.core.util.ObjectUtil;
  17. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  18. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  19. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  20. import org.springframework.beans.BeanUtils;
  21. import org.springframework.beans.factory.annotation.Autowired;
  22. import org.springframework.stereotype.Service;
  23. import org.springframework.transaction.annotation.Propagation;
  24. import org.springframework.transaction.annotation.Transactional;
  25. import java.util.ArrayList;
  26. import java.util.Date;
  27. import java.util.List;
  28. /**
  29. * 自定义分析项目Service层
  30. *
  31. * @Author zero
  32. * @Date 2024/01/12
  33. */
  34. @Service
  35. public class CustomAnalyseService extends ServiceImpl<CustomAnalysisItemMapper, CustomAnalysisItem> {
  36. @Autowired
  37. private CacheUtils cacheUtils;
  38. @Autowired
  39. private LoginUtils loginUtils;
  40. @Autowired
  41. private CustomAnalysisItemMapper customAnalysisItemMapper;
  42. public List<SelectCustomAnalyseListDTO> queryAnalyseGroup(SelectCustomAnalyseVO vo) {
  43. List<SelectCustomAnalyseListDTO> list = new ArrayList<>();
  44. //获取登陆人信息 用于设置创建人
  45. PersonnelVO personnelVO = new PersonnelVO();
  46. try {
  47. personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
  48. } catch (Exception e) {
  49. throw new UnLoginException("未登录");
  50. }
  51. SelectAnalyseVO analyseVO = new SelectAnalyseVO();
  52. analyseVO.setProjectId(vo.getProjectId());
  53. analyseVO.setType(vo.getType());
  54. analyseVO.setTenantId(personnelVO.getTenantId());
  55. analyseVO.setCreatorId(personnelVO.getId());
  56. list = customAnalysisItemMapper.queryAnalyseGroup(analyseVO);
  57. return list;
  58. }
  59. public SelectCustomAnalyseDTO queryAnalyseGroupDetail(CustomAnalyseIdVO vo) {
  60. SelectCustomAnalyseDTO dto = new SelectCustomAnalyseDTO();
  61. CustomAnalysisItem item = customAnalysisItemMapper.selectById(vo.getId());
  62. if (item.getParentId() != null) {
  63. CustomAnalysisItem parentItem = customAnalysisItemMapper.selectById(item.getParentId());
  64. dto.setParentId(item.getParentId());
  65. dto.setParentName(parentItem.getName());
  66. }
  67. BeanUtils.copyProperties(item, dto);
  68. return dto;
  69. }
  70. @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
  71. public Integer addAnalyseGroup(CustomAnalyseVO vo) {
  72. String uid = IdUtil.simpleUUID();
  73. //获取登陆人信息 用于设置创建人
  74. PersonnelVO personnelVO = new PersonnelVO();
  75. try {
  76. personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
  77. } catch (Exception e) {
  78. throw new UnLoginException("未登录");
  79. }
  80. CustomAnalysisItem item = new CustomAnalysisItem();
  81. item.setUid(uid);
  82. BeanUtils.copyProperties(vo, item);
  83. item.setTenantId(personnelVO.getTenantId());
  84. item.setCreateId(personnelVO.getId());
  85. item.setCreateName(personnelVO.getName());
  86. item.setCreateTime(new Date());
  87. item.setUpdateTime(new Date());
  88. item.insert();
  89. return item.getId();
  90. }
  91. @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
  92. public Integer editAnalyseGroup(CustomAnalyseVO vo) {
  93. //获取登陆人信息 用于设置创建人
  94. PersonnelVO personnelVO = new PersonnelVO();
  95. try {
  96. personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
  97. } catch (Exception e) {
  98. throw new UnLoginException("未登录");
  99. }
  100. CustomAnalysisItem item = customAnalysisItemMapper.selectById(vo.getId());
  101. BeanUtils.copyProperties(vo, item);
  102. item.setTenantId(personnelVO.getTenantId());
  103. item.setCreateId(personnelVO.getId());
  104. item.setCreateName(personnelVO.getName());
  105. item.setUpdateTime(new Date());
  106. item.insert();
  107. return item.getId();
  108. }
  109. @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
  110. public Integer delAnalyseGroup(CustomAnalyseIdVO vo) throws Exception {
  111. CustomAnalysisItem item = customAnalysisItemMapper.selectById(vo.getId());
  112. long count = this.count(new LambdaQueryWrapper<CustomAnalysisItem>()
  113. .eq(CustomAnalysisItem::getParentId, vo.getId()));
  114. if (count > 0) {
  115. throw new Exception("删除失败,请先删除子节点");
  116. }
  117. this.removeById(vo.getId());
  118. return item.getId();
  119. }
  120. }