CustomAnalysisItemSchemaService.java 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. package cn.cslg.pas.service.business;
  2. import cn.cslg.pas.common.dto.customAnalyse.SchemaDataDTO;
  3. import cn.cslg.pas.common.dto.customAnalyse.SchemaDimensionDTO;
  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.domain.business.CustomAnalysisItemSchema;
  8. import cn.cslg.pas.exception.UnLoginException;
  9. import cn.cslg.pas.mapper.CustomAnalysisItemSchemaMapper;
  10. import cn.dev33.satoken.stp.StpUtil;
  11. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  12. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  13. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.stereotype.Service;
  16. import java.util.ArrayList;
  17. import java.util.Date;
  18. import java.util.List;
  19. /**
  20. * <p>
  21. * 自定义分析项目维度数据 服务实现类
  22. * </p>
  23. */
  24. @Service
  25. public class CustomAnalysisItemSchemaService extends ServiceImpl<CustomAnalysisItemSchemaMapper, CustomAnalysisItemSchema> {
  26. @Autowired
  27. private CacheUtils cacheUtils;
  28. @Autowired
  29. private LoginUtils loginUtils;
  30. @Autowired
  31. private CustomAnalysisItemSchemaMapper customAnalysisItemSchemaMapper;
  32. public List<CustomAnalysisItemSchema> getListByUid(String uid) {
  33. LambdaQueryWrapper<CustomAnalysisItemSchema> queryWrapper = new LambdaQueryWrapper<>();
  34. queryWrapper.eq(CustomAnalysisItemSchema::getUid, uid);
  35. return this.list(queryWrapper);
  36. }
  37. public SchemaDimensionDTO getItemSchemaByUid(String uid) {
  38. List<CustomAnalysisItemSchema> schemaList = this.getListByUid(uid);
  39. CustomAnalysisItemSchema d1 = schemaList.stream().filter(item -> item.getDimension().equals("x")).findFirst().orElse(new CustomAnalysisItemSchema());
  40. CustomAnalysisItemSchema d2 = schemaList.stream().filter(item -> item.getDimension().equals("y")).findFirst().orElse(new CustomAnalysisItemSchema());
  41. SchemaDimensionDTO dto = new SchemaDimensionDTO();
  42. SchemaDataDTO x = new SchemaDataDTO();
  43. SchemaDataDTO y = new SchemaDataDTO();
  44. x.setField(d1.getField());
  45. x.setExpand(d1.getExpand());
  46. x.setPtype(d1.getPtype());
  47. x.setNum(d1.getNum());
  48. x.setType(d1.getType());
  49. x.setGroupBy(d1.getGroupBy());
  50. x.setFieldKind(d1.getFieldKind());
  51. x.setName(d1.getName());
  52. y.setField(d2.getField());
  53. y.setExpand(d2.getExpand());
  54. y.setPtype(d2.getPtype());
  55. y.setNum(d2.getNum());
  56. y.setType(d2.getType());
  57. y.setName(d2.getName());
  58. y.setGroupBy(d2.getGroupBy());
  59. y.setFieldKind(d2.getFieldKind());
  60. dto.setX(x);
  61. dto.setY(y);
  62. return dto;
  63. }
  64. public void add(SchemaDimensionDTO dto, String uid) {
  65. //获取登陆人信息 用于设置创建人
  66. PersonnelVO personnelVO = new PersonnelVO();
  67. try {
  68. personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
  69. } catch (Exception e) {
  70. throw new UnLoginException("未登录");
  71. }
  72. List<CustomAnalysisItemSchema> customAnalysisItemSchema = new ArrayList<>();
  73. CustomAnalysisItemSchema d1 = new CustomAnalysisItemSchema();
  74. CustomAnalysisItemSchema d2 = new CustomAnalysisItemSchema();
  75. d1.setUid(uid);
  76. d1.setDimension("x");
  77. d1.setField(dto.getX().getField());
  78. d1.setExpand(dto.getX().getExpand());
  79. d1.setPtype(dto.getX().getPtype());
  80. d1.setType(dto.getX().getType());
  81. d1.setNum(dto.getX().getNum());
  82. d1.setName(dto.getX().getName());
  83. d1.setGroupBy(dto.getX().getGroupBy());
  84. d1.setFieldKind(dto.getX().getFieldKind());
  85. d1.setCreateId(personnelVO.getId());
  86. d1.setCreateName(personnelVO.getName());
  87. d1.setCreateTime(new Date());
  88. d1.setUpdateTime(new Date());
  89. d2.setUid(uid);
  90. d2.setDimension("y");
  91. d2.setField(dto.getY().getField());
  92. d2.setExpand(dto.getY().getExpand());
  93. d2.setPtype(dto.getY().getPtype());
  94. d2.setType(dto.getY().getType());
  95. d2.setNum(dto.getY().getNum());
  96. d2.setName(dto.getY().getName());
  97. d2.setGroupBy(dto.getY().getGroupBy());
  98. d2.setFieldKind(dto.getY().getFieldKind());
  99. d2.setCreateId(personnelVO.getId());
  100. d2.setCreateName(personnelVO.getName());
  101. d2.setCreateTime(new Date());
  102. d2.setUpdateTime(new Date());
  103. customAnalysisItemSchema.add(d1);
  104. customAnalysisItemSchema.add(d2);
  105. this.saveBatch(customAnalysisItemSchema);
  106. }
  107. public void edit(SchemaDimensionDTO dto, String uid) {
  108. List<CustomAnalysisItemSchema> schemaList = this.getListByUid(uid);
  109. if (schemaList.size() == 0) {
  110. this.add(dto, uid);
  111. } else {
  112. schemaList.forEach(item -> {
  113. switch (item.getDimension()) {
  114. case "x":
  115. item.setField(dto.getX().getField());
  116. item.setExpand(dto.getX().getExpand());
  117. item.setPtype(dto.getX().getPtype());
  118. item.setNum(dto.getX().getNum());
  119. item.setType(dto.getX().getType());
  120. item.setName(dto.getX().getName());
  121. item.setGroupBy(dto.getX().getGroupBy());
  122. item.setFieldKind(dto.getX().getFieldKind());
  123. break;
  124. case "y":
  125. item.setField(dto.getY().getField());
  126. item.setExpand(dto.getY().getExpand());
  127. item.setPtype(dto.getY().getPtype());
  128. item.setNum(dto.getY().getNum());
  129. item.setType(dto.getY().getType());
  130. item.setName(dto.getY().getName());
  131. item.setGroupBy(dto.getY().getGroupBy());
  132. item.setFieldKind(dto.getY().getFieldKind());
  133. break;
  134. }
  135. });
  136. this.saveOrUpdateBatch(schemaList);
  137. }
  138. }
  139. public void deleteByUid(String uid) {
  140. this.remove(Wrappers.<CustomAnalysisItemSchema>lambdaQuery().eq(CustomAnalysisItemSchema::getUid, uid));
  141. }
  142. }