Selaa lähdekoodia

自定义分析项

zero 1 vuosi sitten
vanhempi
commit
27e0dbe0f0

+ 35 - 0
src/main/java/cn/cslg/pas/common/dto/customAnalyse/CustomAnalyseDTO.java

@@ -0,0 +1,35 @@
+package cn.cslg.pas.common.dto.customAnalyse;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class CustomAnalyseDTO {
+
+    private String uid;
+
+    private String name;
+
+    private Integer parentId;
+
+    private Integer permissions;
+
+    private Integer projectId;
+
+    private Integer tenantId;
+
+    private Integer sort;
+
+    private Integer type;
+
+    private Integer status;
+
+    private String createId;
+
+    private String createName;
+
+    private Date createTime;
+
+    private Date updateTime;
+}

+ 11 - 0
src/main/java/cn/cslg/pas/common/dto/customAnalyse/SelectCustomAnalyseDTO.java

@@ -5,4 +5,15 @@ import lombok.Data;
 @Data
 public class SelectCustomAnalyseDTO {
 
+    private String parentName;
+
+    private String name;
+
+    private Integer parentId;
+
+    private Integer permissions;
+
+    private Integer sort;
+
+    private Integer type;
 }

+ 7 - 3
src/main/java/cn/cslg/pas/common/dto/customAnalyse/SelectCustomAnalyseListDTO.java

@@ -6,11 +6,15 @@ import lombok.Data;
 @Data
 public class SelectCustomAnalyseListDTO {
 
-    private String name;
+    private String uid;
 
+    private Integer id;
+    //名称
+    private String name;
+    //1系统公有 2系统私有 3数据库共有 4数据库私有
     private Integer permissions;
-
+    //顺序
     private Integer sort;
-
+    //类型 1组别  2分析项
     private Integer type;
 }

+ 0 - 1
src/main/java/cn/cslg/pas/common/vo/customAnalyse/CustomAnalyseIdVO.java

@@ -7,5 +7,4 @@ public class CustomAnalyseIdVO {
 
     private Integer id;
 
-    private Integer type;
 }

+ 5 - 0
src/main/java/cn/cslg/pas/common/vo/customAnalyse/CustomAnalyseVO.java

@@ -1,8 +1,11 @@
 package cn.cslg.pas.common.vo.customAnalyse;
 
 
+import cn.cslg.pas.domain.business.CustomAnalysisItem;
 import lombok.Data;
 
+import java.util.List;
+
 @Data
 public class CustomAnalyseVO {
 
@@ -23,4 +26,6 @@ public class CustomAnalyseVO {
     private Integer type;
 
     private Integer status;
+
+    private List<CustomAnalysisItem> children;
 }

+ 2 - 1
src/main/java/cn/cslg/pas/common/vo/customAnalyse/SelectCustomAnalyseVO.java

@@ -5,7 +5,8 @@ import lombok.Data;
 @Data
 public class SelectCustomAnalyseVO {
 
+    //专题库id
     private Integer projectId;
-
+    //类型 1组别  2分析项
     private Integer type;
 }

+ 11 - 4
src/main/java/cn/cslg/pas/controller/CustomAnalyseController.java

@@ -24,20 +24,27 @@ public class CustomAnalyseController {
     @Autowired
     private CustomAnalyseService customAnalyseService;
 
-    @Operation(summary = "查询组别")
+    @Operation(summary = "查询组别/分析项")
     @PostMapping("/queryAnalyseGroup")
     public Response queryAnalyseGroup(@RequestBody SelectCustomAnalyseVO vo) {
         List<SelectCustomAnalyseListDTO> list = customAnalyseService.queryAnalyseGroup(vo);
         return Response.success(list);
     }
 
-    @Operation(summary = "查询组别详情")
+    @Operation(summary = "根据id查询组别/分析项详情")
     @PostMapping("/queryAnalyseGroupDetail")
     public Response queryAnalyseGroupDetail(@RequestBody CustomAnalyseIdVO vo) {
         SelectCustomAnalyseDTO dto = customAnalyseService.queryAnalyseGroupDetail(vo);
         return Response.success(dto);
     }
 
+    @Operation(summary = "查询组别/分析项详情")
+    @PostMapping("/queryAnalyseDetail")
+    public Response queryAnalyseDetail(@RequestBody CustomAnalyseIdVO vo) {
+        SelectCustomAnalyseDTO dto = customAnalyseService.queryAnalyseGroupDetail(vo);
+        return Response.success(dto);
+    }
+
     @Operation(summary = "添加组别")
     @PostMapping("/addAnalyseGroup")
     public Response addAnalyseGroup(@RequestBody CustomAnalyseVO vo) {
@@ -52,9 +59,9 @@ public class CustomAnalyseController {
         return Response.success(groupId);
     }
 
-    @Operation(summary = "删除组别")
+    @Operation(summary = "删除组别/分析项")
     @PostMapping("/delAnalyseGroup")
-    public Response delAnalyseGroup(@RequestBody CustomAnalyseIdVO vo) {
+    public Response delAnalyseGroup(@RequestBody CustomAnalyseIdVO vo) throws Exception {
         Integer groupId = customAnalyseService.delAnalyseGroup(vo);
         return Response.success(groupId);
     }

+ 16 - 6
src/main/java/cn/cslg/pas/domain/business/CustomAnalysisItem.java

@@ -1,9 +1,12 @@
 package cn.cslg.pas.domain.business;
 
 import cn.cslg.pas.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.util.Date;
 
@@ -17,6 +20,9 @@ import java.util.Date;
 @TableName("os_custom_analysis_item")
 public class CustomAnalysisItem extends BaseEntity<CustomAnalysisItem> {
 
+    @TableField(value = "uid")
+    private String uid;
+
     @TableField(value = "name")
     private String name;
 
@@ -41,15 +47,19 @@ public class CustomAnalysisItem extends BaseEntity<CustomAnalysisItem> {
     @TableField(value = "status")
     private Integer status;
 
-    @TableField(value = "creator_id")
-    private String creatorId;
+    @TableField(value = "create_id")
+    private String createId;
 
-    @TableField(value = "creator")
-    private String creator;
+    @TableField(value = "create_name")
+    private String createName;
 
-    @TableField(value = "create_time")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @TableField(value = "create_time",fill = FieldFill.INSERT_UPDATE)
     private Date createTime;
 
-    @TableField(value = "update_time")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @TableField(value = "update_time",fill = FieldFill.INSERT_UPDATE)
     private Date updateTime;
 }

+ 16 - 6
src/main/java/cn/cslg/pas/domain/business/CustomAnalysisItemSchema.java

@@ -1,9 +1,12 @@
 package cn.cslg.pas.domain.business;
 
 import cn.cslg.pas.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.util.Date;
 
@@ -17,6 +20,9 @@ import java.util.Date;
 @TableName("os_custom_analysis_item_schema")
 public class CustomAnalysisItemSchema extends BaseEntity<CustomAnalysisItemSchema> {
 
+    @TableField(value = "uid")
+    private String uid;
+
     @TableField(value = "dimension")
     private String dimension;
 
@@ -38,16 +44,20 @@ public class CustomAnalysisItemSchema extends BaseEntity<CustomAnalysisItemSchem
     @TableField(value = "status")
     private Integer status;
 
-    @TableField(value = "creator_id")
-    private Integer creatorId;
+    @TableField(value = "create_id")
+    private String createId;
 
-    @TableField(value = "creator")
-    private String creator;
+    @TableField(value = "create_name")
+    private String createName;
 
-    @TableField(value = "create_time")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @TableField(value = "create_time",fill = FieldFill.INSERT_UPDATE)
     private Date createTime;
 
-    @TableField(value = "update_time")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @TableField(value = "update_time",fill = FieldFill.INSERT_UPDATE)
     private Date updateTime;
 
 }

+ 327 - 0
src/main/java/cn/cslg/pas/domain/business/CustomAnalysisItemSetting.java

@@ -0,0 +1,327 @@
+package cn.cslg.pas.domain.business;
+
+import cn.cslg.pas.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * 自定义分析项目图表设置
+ *
+ * @Author zero
+ * @Date 2024/01/15
+ */
+@Data
+@TableName("os_custom_analysis_item_setting")
+public class CustomAnalysisItemSetting extends BaseEntity<CustomAnalysisItemSetting> {
+
+    @TableField(value = "uid")
+    private String uid;
+
+    @TableField(value = "type")
+    private Integer type;
+
+    @TableField(value = "show_type")
+    private Integer showType;
+
+    @TableField(value = "table_type")
+    private Integer tableType;
+
+    @TableField(value = "theme")
+    private String theme;
+
+    @TableField(value = "title1")
+    private String title1;
+
+    @TableField(value = "title2")
+    private String title2;
+
+    @TableField(value = "data_label")
+    private Integer dataLabel;
+
+    @TableField(value = "data_position")
+    private String dataPosition;
+
+    @TableField(value = "data_size")
+    private Integer dataSize;
+
+    @TableField(value = "title_size")
+    private Integer titleSize;
+
+    @TableField(value = "axis_size")
+    private Integer axisSize;
+
+    @TableField(value = "title1_dir")
+    private Integer title1Dir;
+
+    /**
+     * 表格设置
+     */
+    @TableField(value = "table_config")
+    private String tableConfig;
+    /**
+     * 颜色
+     */
+    @TableField(value = "color_config")
+    private String colorConfig;
+
+    /**
+     * 辅助线
+     */
+    @TableField(value = "line_config")
+    private String lineConfig;
+
+    /**
+     * 字体
+     */
+    @TableField(value = "font_family")
+    private String fontFamily;
+
+    @TableField(value = "create_id")
+    private String createId;
+
+    @TableField(value = "create_name")
+    private String createName;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @TableField(value = "create_time",fill = FieldFill.INSERT_UPDATE)
+    private Date createTime;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @TableField(value = "update_time",fill = FieldFill.INSERT_UPDATE)
+    private Date updateTime;
+
+    /**
+     * 坐标轴(X)加粗
+     */
+    @TableField(value = "font_weight")
+    private Boolean fontWeight;
+
+    /**
+     * 坐标轴(Y)加粗
+     */
+    @TableField(value = "font_weight2")
+    private Boolean fontWeight2;
+
+    @TableField(value = "name_location")
+    private String nameLocation;
+    /**
+     * 高
+     */
+    @TableField(value = "height")
+    private String height;
+
+    /**
+     * 宽
+     */
+    @TableField(value = "width")
+    private String width;
+
+    /**
+     * 高(单位)
+     */
+    @TableField(value = "height_unit")
+    private String heightUnit;
+
+    /**
+     * 宽(单位)
+     */
+    @TableField(value = "width_unit")
+    private String widthUnit;
+
+    /**
+     * 坐标轴X(线)是否显示
+     */
+    @TableField(value = "split_line")
+    private Boolean splitLine;
+
+    /**
+     * 坐标轴Y(线)是否显示
+     */
+    @TableField(value = "split_line2")
+    private Boolean splitLine2;
+
+    /**
+     * 图例是否显示
+     */
+    @TableField(value = "legend")
+    private Boolean legend;
+
+    /**
+     * 图例位置
+     */
+    @TableField(value = "legend_location")
+    private String legendLocation;
+
+    /**
+     * 图表位置
+     */
+    @TableField(value = "grid_top")
+    private String gridTop;
+    @TableField(value = "grid_left")
+    private String gridLeft;
+    @TableField(value = "grid_right")
+    private String gridRight;
+    @TableField(value = "grid_bottom")
+    private String gridBottom;
+
+    /**
+     * 标签字体
+     */
+    @TableField(value = "font_family2")
+    private String fontFamily2;
+
+    /**
+     * 标签字体颜色
+     */
+    @TableField(value = "label_color")
+    private String labelColor;
+
+    /**
+     * 图例字体
+     */
+    @TableField(value = "font_family3")
+    private String fontFamily3;
+
+    /**
+     * 图例字体大小
+     */
+    @TableField(value = "legend_font_size")
+    private String legendFontSize;
+
+    /**
+     * 图例字体颜色
+     */
+    @TableField(value = "legend_color")
+    private String legendColor;
+
+    /**
+     * 坐标轴(Y)字体
+     */
+    @TableField(value = "font_family4")
+    private String fontFamily4;
+
+    /**
+     * 坐标轴(X)字体大小
+     */
+    @TableField(value = "font_size")
+    private String fontSize;
+
+    /**
+     * 坐标轴(Y)字体大小
+     */
+    @TableField(value = "font_size2")
+    private String fontSize2;
+
+    /**
+     * 坐标轴(X)字体颜色
+     */
+    @TableField(value = "font_color")
+    private String fontColor;
+
+    /**
+     * 坐标轴(Y)字体颜色
+     */
+    @TableField(value = "font_color2")
+    private String fontColor2;
+
+    /**
+     * 坐标轴(X)显示
+     */
+    @TableField(value = "show")
+    private Boolean show;
+
+    /**
+     * 坐标轴(Y)显示
+     */
+    @TableField(value = "show2")
+    private Boolean show2;
+
+    @TableField(value = "name_location2")
+    private String nameLocation2;
+
+    /**
+     * X轴信息全部显示
+     */
+    @TableField(value = "interval")
+    private Boolean interval;
+
+    /**
+     * X轴倾斜角度
+     */
+    @TableField(value = "rotate")
+    private String rotate;
+
+    /**
+     * Y轴信息全部显示
+     */
+    @TableField(value = "interval2")
+    private Boolean interval2;
+
+    /**
+     * Y轴倾斜角度
+     */
+    @TableField(value = "rotate2")
+    private String rotate2;
+
+    /**
+     * X轴标题padding
+     */
+    @TableField(value = "padding_top")
+    private Integer paddingTop;
+    @TableField(value = "padding_left")
+    private Integer paddingLeft;
+    @TableField(value = "padding_bottom")
+    private Integer paddingBottom;
+    @TableField(value = "padding_right")
+    private Integer paddingRight;
+
+    /**
+     * Y轴标题padding
+     */
+    @TableField(value = "padding_top2")
+    private Integer paddingTop2;
+    @TableField(value = "padding_right2")
+    private Integer paddingLeft2;
+    @TableField(value = "padding_bottom2")
+    private Integer paddingBottom2;
+    @TableField(value = "padding_left2")
+    private Integer paddingRight2;
+
+    /**
+     * 图例类型
+     */
+    @TableField(value = "type2")
+    private String type2;
+
+    /**
+     * 饼图(环形图)数值
+     */
+    @TableField(value = "data_label2")
+    private Boolean dataLabel2;
+
+    /**
+     * 饼图(环形图)百分比
+     */
+    @TableField(value = "data_label3")
+    private Boolean dataLabel3;
+
+    /**
+     * 柱形图宽度
+     */
+    @TableField(value = "bar_width")
+    private String barWidth;
+
+    /**
+     * 气泡比例
+     */
+    @TableField(value = "scatter_size")
+    private String scatterSize;
+}

+ 99 - 0
src/main/java/cn/cslg/pas/domain/business/CustomAnalysisItemSource.java

@@ -0,0 +1,99 @@
+package cn.cslg.pas.domain.business;
+
+import cn.cslg.pas.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * 自定义分析项目数据源
+ *
+ * @Author zero
+ * @Date 2024/01/14
+ */
+@Data
+@TableName("os_custom_analysis_item_source")
+public class CustomAnalysisItemSource extends BaseEntity<CustomAnalysisItemSource> {
+
+    @TableField(value = "show")
+    private String uid;
+
+    /**
+     * 维度
+     */
+    @TableField(value = "show")
+    private String dimension;
+
+    /**
+     * 名称
+     */
+    @TableField(value = "show")
+    private String name;
+
+    /**
+     * 是否选择
+     */
+    @TableField(value = "show")
+    private Boolean selected;
+
+    /**
+     * 字段ID
+     */
+    @TableField(value = "show")
+    private Integer fieldId;
+
+    /**
+     * 拓展ID
+     */
+    @TableField(value = "show")
+    private Integer expandId;
+
+    /**
+     * 开始时间
+     */
+    @TableField(value = "show")
+    private String startTime;
+
+    /**
+     * 结束时间
+     */
+    @TableField(value = "show")
+    private String endTime;
+
+    /**
+     * 大于
+     */
+
+    @TableField(value = "show")
+    private String minData;
+
+    /**
+     * 小于
+     */
+    @TableField(value = "show")
+    private String maxData;
+
+    @TableField(value = "status")
+    private Integer status;
+
+    @TableField(value = "create_id")
+    private String createId;
+
+    @TableField(value = "create_name")
+    private String createName;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @TableField(value = "create_time",fill = FieldFill.INSERT_UPDATE)
+    private Date createTime;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @TableField(value = "update_time",fill = FieldFill.INSERT_UPDATE)
+    private Date updateTime;
+}

+ 0 - 1
src/main/java/cn/cslg/pas/mapper/CustomAnalysisItemMapper.java

@@ -2,7 +2,6 @@ package cn.cslg.pas.mapper;
 
 import cn.cslg.pas.common.dto.customAnalyse.SelectCustomAnalyseListDTO;
 import cn.cslg.pas.common.vo.customAnalyse.SelectAnalyseVO;
-import cn.cslg.pas.common.vo.customAnalyse.SelectCustomAnalyseVO;
 import cn.cslg.pas.domain.business.CustomAnalysisItem;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;

+ 2 - 2
src/main/java/cn/cslg/pas/mapper/CustomAnalysisItemSchemaMapper.java

@@ -5,9 +5,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.springframework.stereotype.Repository;
 
 /**
- * 自定义分析项目维度数据mapper
+ * 自定义分析项目图表设置mapper
  * @Author zero
- * @Date 2024/01/12
+ * @Date 2024/01/14
  */
 @Repository
 public interface CustomAnalysisItemSchemaMapper extends BaseMapper<CustomAnalysisItemSchema> {

+ 14 - 0
src/main/java/cn/cslg/pas/mapper/CustomAnalysisItemSettingMapper.java

@@ -0,0 +1,14 @@
+package cn.cslg.pas.mapper;
+
+import cn.cslg.pas.domain.business.CustomAnalysisItemSetting;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 自定义分析项目维度数据mapper
+ * @Author zero
+ * @Date 2024/01/12
+ */
+@Repository
+public interface CustomAnalysisItemSettingMapper extends BaseMapper<CustomAnalysisItemSetting> {
+}

+ 14 - 0
src/main/java/cn/cslg/pas/mapper/CustomAnalysisItemSourceMapper.java

@@ -0,0 +1,14 @@
+package cn.cslg.pas.mapper;
+
+import cn.cslg.pas.domain.business.CustomAnalysisItemSource;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 自定义分析项目数据源mapper
+ * @Author zero
+ * @Date 2024/01/12
+ */
+@Repository
+public interface CustomAnalysisItemSourceMapper extends BaseMapper<CustomAnalysisItemSource> {
+}

+ 28 - 10
src/main/java/cn/cslg/pas/service/business/CustomAnalyseService.java

@@ -5,6 +5,7 @@ import cn.cslg.pas.common.dto.customAnalyse.SelectCustomAnalyseListDTO;
 import cn.cslg.pas.common.model.cronModel.PersonnelVO;
 import cn.cslg.pas.common.utils.CacheUtils;
 import cn.cslg.pas.common.utils.LoginUtils;
+import cn.cslg.pas.common.utils.Response;
 import cn.cslg.pas.common.vo.customAnalyse.CustomAnalyseIdVO;
 import cn.cslg.pas.common.vo.customAnalyse.CustomAnalyseVO;
 import cn.cslg.pas.common.vo.customAnalyse.SelectAnalyseVO;
@@ -12,11 +13,16 @@ import cn.cslg.pas.common.vo.customAnalyse.SelectCustomAnalyseVO;
 import cn.cslg.pas.domain.business.CustomAnalysisItem;
 import cn.cslg.pas.exception.UnLoginException;
 import cn.cslg.pas.mapper.CustomAnalysisItemMapper;
+import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 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.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
 import java.util.Date;
@@ -55,7 +61,7 @@ public class CustomAnalyseService extends ServiceImpl<CustomAnalysisItemMapper,
         analyseVO.setType(vo.getType());
         analyseVO.setTenantId(personnelVO.getTenantId());
         analyseVO.setCreatorId(personnelVO.getId());
-        customAnalysisItemMapper.queryAnalyseGroup(analyseVO);
+        list = customAnalysisItemMapper.queryAnalyseGroup(analyseVO);
         return list;
     }
 
@@ -63,14 +69,18 @@ public class CustomAnalyseService extends ServiceImpl<CustomAnalysisItemMapper,
     public SelectCustomAnalyseDTO queryAnalyseGroupDetail(CustomAnalyseIdVO vo) {
         SelectCustomAnalyseDTO dto = new SelectCustomAnalyseDTO();
         CustomAnalysisItem item = customAnalysisItemMapper.selectById(vo.getId());
-        if (ObjectUtil.isNotEmpty(item)) {
-            BeanUtils.copyProperties(item, dto);
+        if (item.getParentId() != null) {
+            CustomAnalysisItem parentItem = customAnalysisItemMapper.selectById(item.getParentId());
+            dto.setParentId(item.getParentId());
+            dto.setParentName(parentItem.getName());
         }
+        BeanUtils.copyProperties(item, dto);
         return dto;
     }
 
+    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
     public Integer addAnalyseGroup(CustomAnalyseVO vo) {
-
+        String uid = IdUtil.simpleUUID();
         //获取登陆人信息 用于设置创建人
         PersonnelVO personnelVO = new PersonnelVO();
         try {
@@ -80,16 +90,18 @@ public class CustomAnalyseService extends ServiceImpl<CustomAnalysisItemMapper,
         }
 
         CustomAnalysisItem item = new CustomAnalysisItem();
+        item.setUid(uid);
         BeanUtils.copyProperties(vo, item);
         item.setTenantId(personnelVO.getTenantId());
-        item.setCreatorId(personnelVO.getId());
-        item.setCreator(personnelVO.getName());
+        item.setCreateId(personnelVO.getId());
+        item.setCreateName(personnelVO.getName());
         item.setCreateTime(new Date());
         item.setUpdateTime(new Date());
         item.insert();
         return item.getId();
     }
 
+    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
     public Integer editAnalyseGroup(CustomAnalyseVO vo) {
 
         //获取登陆人信息 用于设置创建人
@@ -103,16 +115,22 @@ public class CustomAnalyseService extends ServiceImpl<CustomAnalysisItemMapper,
         CustomAnalysisItem item = customAnalysisItemMapper.selectById(vo.getId());
         BeanUtils.copyProperties(vo, item);
         item.setTenantId(personnelVO.getTenantId());
-        item.setCreatorId(personnelVO.getId());
-        item.setCreator(personnelVO.getName());
+        item.setCreateId(personnelVO.getId());
+        item.setCreateName(personnelVO.getName());
         item.setUpdateTime(new Date());
         item.insert();
         return item.getId();
     }
 
-    public Integer delAnalyseGroup(CustomAnalyseIdVO vo) {
+    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
+    public Integer delAnalyseGroup(CustomAnalyseIdVO vo) throws Exception {
         CustomAnalysisItem item = customAnalysisItemMapper.selectById(vo.getId());
-        customAnalysisItemMapper.deleteById(vo.getId());
+        long count = this.count(new LambdaQueryWrapper<CustomAnalysisItem>()
+                .eq(CustomAnalysisItem::getParentId, vo.getId()));
+        if (count > 0) {
+            throw new Exception("删除失败,请先删除子节点");
+        }
+        this.removeById(vo.getId());
         return item.getId();
     }
 

+ 1 - 1
src/main/resources/mapper/CustomAnalyseMapper.xml

@@ -3,7 +3,7 @@
 <mapper namespace="cn.cslg.pas.mapper.CustomAnalysisItemMapper">
 
     <select id="queryAnalyseGroup" resultType="cn.cslg.pas.common.dto.customAnalyse.SelectCustomAnalyseListDTO">
-        select id,name,parent_id,permissions,project_id,tenant_id,sort,type,status,creator
+        select id,uid,name,parent_id,permissions,project_id,tenant_id,sort,type
         from os_custom_analysis_item
         <where>
             <if test="vo.type != null">