ZhuDeKang 6 месяцев назад
Родитель
Сommit
8fc503ad97
18 измененных файлов с 1361 добавлено и 14 удалено
  1. 13 1
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/controller/MdDataCateController.java
  2. 98 0
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/controller/MdDataFieldController.java
  3. 98 0
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/controller/MdDataSetController.java
  4. 17 11
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/controller/PtTreeCateController.java
  5. 37 0
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/domain/MdDataCate.java
  6. 301 0
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/domain/MdDataField.java
  7. 120 0
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/domain/MdDataSet.java
  8. 1 0
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/domain/PtTreeCate.java
  9. 10 2
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/domain/TreeSelectString.java
  10. 65 0
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/mapper/MdDataFieldMapper.java
  11. 62 0
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/mapper/MdDataSetMapper.java
  12. 61 0
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/service/IMdDataFieldService.java
  13. 61 0
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/service/IMdDataSetService.java
  14. 93 0
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/service/impl/MdDataFieldServiceImpl.java
  15. 93 0
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/service/impl/MdDataSetServiceImpl.java
  16. 147 0
      ruoyi-api-patform/src/main/resources/mapper/interfaces/MdDataFieldMapper.xml
  17. 83 0
      ruoyi-api-patform/src/main/resources/mapper/interfaces/MdDataSetMapper.xml
  18. 1 0
      ruoyi-api-patform/src/main/resources/mapper/interfaces/PtTreeCateMapper.xml

+ 13 - 1
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/controller/MdDataCateController.java

@@ -1,10 +1,14 @@
 package com.ruoyi.interfaces.controller;
 
 import java.util.List;
+import java.util.stream.Collectors;
 import javax.servlet.http.HttpServletResponse;
 
 import com.ruoyi.interfaces.domain.MdDataCate;
+import com.ruoyi.interfaces.domain.MdDataSet;
+import com.ruoyi.interfaces.domain.PtTreeCate;
 import com.ruoyi.interfaces.service.IMdDataCateService;
+import com.ruoyi.interfaces.service.IMdDataSetService;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -33,6 +37,9 @@ public class MdDataCateController extends BaseController {
     @Autowired
     private IMdDataCateService mdDataCateService;
 
+    @Autowired
+    private IMdDataSetService mdDataSetService;
+
     /**
      * 查询数据项分类管理列表
      */
@@ -68,7 +75,12 @@ public class MdDataCateController extends BaseController {
      */
     @GetMapping(value = "/treeselect")
     public AjaxResult treeselect(MdDataCate mdDataCate) {
-        List<MdDataCate> mdDataCates = mdDataCateService.selectMdDataCateList(mdDataCate);
+        List<MdDataCate> mdDataCates = mdDataCateService.selectMdDataCateList(mdDataCate).stream().peek(item -> item.setIcon("TREE")).collect(Collectors.toList());
+
+        List<MdDataSet> mdDataSets = mdDataSetService.selectMdDataSetList(new MdDataSet());
+        for (MdDataSet mdDataSet : mdDataSets) {
+            mdDataCates.add(new MdDataCate(mdDataSet.getDsCode(), mdDataSet.getCateId(), mdDataSet.getDsName(), "SET"));
+        }
         return success(mdDataCateService.buildDataTreeSelect(mdDataCates));
     }
 

+ 98 - 0
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/controller/MdDataFieldController.java

@@ -0,0 +1,98 @@
+package com.ruoyi.interfaces.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.interfaces.domain.MdDataField;
+import com.ruoyi.interfaces.service.IMdDataFieldService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 数据集字段Controller
+ * 
+ * @author ruoyi
+ * @date 2025-07-30
+ */
+@RestController
+@RequestMapping("/data/field")
+public class MdDataFieldController extends BaseController
+{
+    @Autowired
+    private IMdDataFieldService mdDataFieldService;
+
+    /**
+     * 查询数据集字段列表
+     */
+    @GetMapping("/list")
+    public TableDataInfo list(MdDataField mdDataField)
+    {
+        startPage();
+        List<MdDataField> list = mdDataFieldService.selectMdDataFieldList(mdDataField);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出数据集字段列表
+     */
+    @Log(title = "数据集字段", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, MdDataField mdDataField)
+    {
+        List<MdDataField> list = mdDataFieldService.selectMdDataFieldList(mdDataField);
+        ExcelUtil<MdDataField> util = new ExcelUtil<MdDataField>(MdDataField.class);
+        util.exportExcel(response, list, "数据集字段数据");
+    }
+
+    /**
+     * 获取数据集字段详细信息
+     */
+    @GetMapping(value = "/{dsCode}")
+    public AjaxResult getInfo(@PathVariable("dsCode") String dsCode)
+    {
+        return success(mdDataFieldService.selectMdDataFieldByDsCode(dsCode));
+    }
+
+    /**
+     * 新增数据集字段
+     */
+    @Log(title = "数据集字段", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody MdDataField mdDataField)
+    {
+        return toAjax(mdDataFieldService.insertMdDataField(mdDataField));
+    }
+
+    /**
+     * 修改数据集字段
+     */
+    @Log(title = "数据集字段", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody MdDataField mdDataField)
+    {
+        return toAjax(mdDataFieldService.updateMdDataField(mdDataField));
+    }
+
+    /**
+     * 删除数据集字段
+     */
+    @Log(title = "数据集字段", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{dsCodes}")
+    public AjaxResult remove(@PathVariable String[] dsCodes)
+    {
+        return toAjax(mdDataFieldService.deleteMdDataFieldByDsCodes(dsCodes));
+    }
+}

+ 98 - 0
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/controller/MdDataSetController.java

@@ -0,0 +1,98 @@
+package com.ruoyi.interfaces.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.interfaces.domain.MdDataSet;
+import com.ruoyi.interfaces.service.IMdDataSetService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 数据集Controller
+ * 
+ * @author 朱得糠
+ * @date 2025-07-30
+ */
+@RestController
+@RequestMapping("/interfaces/set")
+public class MdDataSetController extends BaseController
+{
+    @Autowired
+    private IMdDataSetService mdDataSetService;
+
+    /**
+     * 查询数据集列表
+     */
+    @GetMapping("/list")
+    public TableDataInfo list(MdDataSet mdDataSet)
+    {
+        startPage();
+        List<MdDataSet> list = mdDataSetService.selectMdDataSetList(mdDataSet);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出数据集列表
+     */
+    @Log(title = "数据集", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, MdDataSet mdDataSet)
+    {
+        List<MdDataSet> list = mdDataSetService.selectMdDataSetList(mdDataSet);
+        ExcelUtil<MdDataSet> util = new ExcelUtil<MdDataSet>(MdDataSet.class);
+        util.exportExcel(response, list, "数据集数据");
+    }
+
+    /**
+     * 获取数据集详细信息
+     */
+    @GetMapping(value = "/{dsCode}")
+    public AjaxResult getInfo(@PathVariable("dsCode") String dsCode)
+    {
+        return success(mdDataSetService.selectMdDataSetByDsCode(dsCode));
+    }
+
+    /**
+     * 新增数据集
+     */
+    @Log(title = "数据集", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody MdDataSet mdDataSet)
+    {
+        return toAjax(mdDataSetService.insertMdDataSet(mdDataSet));
+    }
+
+    /**
+     * 修改数据集
+     */
+    @Log(title = "数据集", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody MdDataSet mdDataSet)
+    {
+        return toAjax(mdDataSetService.updateMdDataSet(mdDataSet));
+    }
+
+    /**
+     * 删除数据集
+     */
+    @Log(title = "数据集", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{dsCodes}")
+    public AjaxResult remove(@PathVariable String[] dsCodes)
+    {
+        return toAjax(mdDataSetService.deleteMdDataSetByDsCodes(dsCodes));
+    }
+}

+ 17 - 11
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/controller/PtTreeCateController.java

@@ -125,20 +125,26 @@ public class PtTreeCateController extends BaseController {
     @GetMapping(value = "/modelTreeSelect")
     public AjaxResult modelTreeSelect(PtTreeCate ptTreeCate) {
         ptTreeCate.setTreeType("MODEL");
+        String level = StringUtils.isNull(ptTreeCate.getParams().get("level")) ? "3" : ptTreeCate.getParams().get("level").toString();
+
         List<PtTreeCate> ptTreeCates = ptTreeCateService.selectPtTreeCateList(ptTreeCate).stream().peek(item -> item.setNodeType("TREE")).collect(Collectors.toList());
-        List<MdModelInfo> mdModelInfos = mdModelInfoService.selectMdModelInfoList(new MdModelInfo());
-        for (MdModelInfo mdModelInfo : mdModelInfos) {
-            if (StringUtils.isNotNull(mdModelInfo.getMdid()) && StringUtils.isNotNull(mdModelInfo.getCateid())
-                    && StringUtils.isNotNull(mdModelInfo.getName())) {
-                ptTreeCates.add(new PtTreeCate(mdModelInfo.getMdid(), mdModelInfo.getCateid(), mdModelInfo.getName(), "MODEL"));
+        if (level.equals("2") || level.equals("3")) {
+            List<MdModelInfo> mdModelInfos = mdModelInfoService.selectMdModelInfoList(new MdModelInfo());
+            for (MdModelInfo mdModelInfo : mdModelInfos) {
+                if (StringUtils.isNotNull(mdModelInfo.getMdid()) && StringUtils.isNotNull(mdModelInfo.getCateid())
+                        && StringUtils.isNotNull(mdModelInfo.getName())) {
+                    ptTreeCates.add(new PtTreeCate(mdModelInfo.getMdid(), mdModelInfo.getCateid(), mdModelInfo.getName(), "MODEL"));
+                }
             }
         }
-        List<PtService> ptServices = ptServiceService.selectAllColumns(new PtService());
-        for (PtService ptService : ptServices) {
-            if (StringUtils.isNotNull(ptService.getSrvId()) &&
-                    StringUtils.isNotNull(ptService.getMdid()) &&
-                    StringUtils.isNotNull(ptService.getName())) {
-                ptTreeCates.add(new PtTreeCate(ptService.getSrvId(), ptService.getMdid(), ptService.getName(), "SERVICE"));
+        if (level.equals("3")) {
+            List<PtService> ptServices = ptServiceService.selectAllColumns(new PtService());
+            for (PtService ptService : ptServices) {
+                if (StringUtils.isNotNull(ptService.getSrvId()) &&
+                        StringUtils.isNotNull(ptService.getMdid()) &&
+                        StringUtils.isNotNull(ptService.getName())) {
+                    ptTreeCates.add(new PtTreeCate(ptService.getSrvId(), ptService.getMdid(), ptService.getName(), "SERVICE"));
+                }
             }
         }
         return success(ptTreeCateService.buildDataTreeSelect(ptTreeCates));

+ 37 - 0
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/domain/MdDataCate.java

@@ -59,11 +59,33 @@ public class MdDataCate extends BaseEntity {
     @JsonFormat(pattern = "yyyy-MM-dd")
     @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
     private Date createby;
+
+    /**
+     * 图标
+     */
+    private String icon;
     /**
      * 子菜单
      */
     private List<MdDataCate> children = new ArrayList<MdDataCate>();
 
+    public MdDataCate(String dsCode, String cateId, String dsName, String icon) {
+        this.cateId = dsCode;
+        this.catePid = cateId;
+        this.itemName = dsName;
+        this.icon = icon;
+
+    }
+
+
+    public String getIcon() {
+        return icon;
+    }
+
+    public void setIcon(String icon) {
+        this.icon = icon;
+    }
+
     public List<MdDataCate> getChildren() {
         return children;
     }
@@ -141,4 +163,19 @@ public class MdDataCate extends BaseEntity {
                 .append("modifyby", getModifyby())
                 .toString();
     }
+
+    public MdDataCate(String cateId, String catePid, String itemName, Long itemNo, String itemNotes, Date modifyby, Date createby, String icon, List<MdDataCate> children) {
+        this.cateId = cateId;
+        this.catePid = catePid;
+        this.itemName = itemName;
+        this.itemNo = itemNo;
+        this.itemNotes = itemNotes;
+        this.modifyby = modifyby;
+        this.createby = createby;
+        this.icon = icon;
+        this.children = children;
+    }
+
+    public MdDataCate() {
+    }
 }

+ 301 - 0
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/domain/MdDataField.java

@@ -0,0 +1,301 @@
+package com.ruoyi.interfaces.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 数据集字段对象 md_data_field
+ * 
+ * @author ruoyi
+ * @date 2025-07-30
+ */
+public class MdDataField extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 数据集标识 */
+    private String dsCode;
+
+    /** 表编码 */
+    private String metaTable;
+
+    /** 字段编码 */
+    private String fieldCode;
+
+    /** 字段中文名 */
+    @Excel(name = "字段中文名")
+    private String fieldName;
+
+    /** 字段类型 */
+    @Excel(name = "字段类型")
+    private String fieldType;
+
+    /** 字段长度 */
+    @Excel(name = "字段长度")
+    private String fieldLength;
+
+    /** 字段精度 */
+    @Excel(name = "字段精度")
+    private String fieldPrecision;
+
+    /** 是否为主键 */
+    @Excel(name = "是否为主键")
+    private String fieldIspri;
+
+    /** 是否允许为空 */
+    @Excel(name = "是否允许为空")
+    private String fieldIsnullable;
+
+    /** 默认值 */
+    @Excel(name = "默认值")
+    private String fieldDefault;
+
+    /** 描述 */
+    @Excel(name = "描述")
+    private String fieldDesc;
+
+    /** 字段状态 */
+    @Excel(name = "字段状态")
+    private String fieldStatus;
+
+    /** 字段顺序 */
+    @Excel(name = "字段顺序")
+    private Long fieldOrder;
+
+    /** 字段扩展 */
+    @Excel(name = "字段扩展")
+    private String fieldExtend;
+
+    /** 字段扩展表 */
+    @Excel(name = "字段扩展表")
+    private String fieldExtendTable;
+
+    /** 字段输入类型 */
+    @Excel(name = "字段输入类型")
+    private String fieldInputType;
+
+    /** 字段输入格式 */
+    @Excel(name = "字段输入格式")
+    private String fieldInputFormat;
+
+    /** 字段输入默认值 */
+    @Excel(name = "字段输入默认值")
+    private String fieldInputDefault;
+
+    /** 字段显示类型 */
+    @Excel(name = "字段显示类型")
+    private String fieldViewType;
+
+    /** 字段字典 */
+    @Excel(name = "字段字典")
+    private String fieldDict;
+
+    public void setDsCode(String dsCode) 
+    {
+        this.dsCode = dsCode;
+    }
+
+    public String getDsCode() 
+    {
+        return dsCode;
+    }
+    public void setMetaTable(String metaTable) 
+    {
+        this.metaTable = metaTable;
+    }
+
+    public String getMetaTable() 
+    {
+        return metaTable;
+    }
+    public void setFieldCode(String fieldCode) 
+    {
+        this.fieldCode = fieldCode;
+    }
+
+    public String getFieldCode() 
+    {
+        return fieldCode;
+    }
+    public void setFieldName(String fieldName) 
+    {
+        this.fieldName = fieldName;
+    }
+
+    public String getFieldName() 
+    {
+        return fieldName;
+    }
+    public void setFieldType(String fieldType) 
+    {
+        this.fieldType = fieldType;
+    }
+
+    public String getFieldType() 
+    {
+        return fieldType;
+    }
+    public void setFieldLength(String fieldLength) 
+    {
+        this.fieldLength = fieldLength;
+    }
+
+    public String getFieldLength() 
+    {
+        return fieldLength;
+    }
+    public void setFieldPrecision(String fieldPrecision) 
+    {
+        this.fieldPrecision = fieldPrecision;
+    }
+
+    public String getFieldPrecision() 
+    {
+        return fieldPrecision;
+    }
+    public void setFieldIspri(String fieldIspri) 
+    {
+        this.fieldIspri = fieldIspri;
+    }
+
+    public String getFieldIspri() 
+    {
+        return fieldIspri;
+    }
+    public void setFieldIsnullable(String fieldIsnullable) 
+    {
+        this.fieldIsnullable = fieldIsnullable;
+    }
+
+    public String getFieldIsnullable() 
+    {
+        return fieldIsnullable;
+    }
+    public void setFieldDefault(String fieldDefault) 
+    {
+        this.fieldDefault = fieldDefault;
+    }
+
+    public String getFieldDefault() 
+    {
+        return fieldDefault;
+    }
+    public void setFieldDesc(String fieldDesc) 
+    {
+        this.fieldDesc = fieldDesc;
+    }
+
+    public String getFieldDesc() 
+    {
+        return fieldDesc;
+    }
+    public void setFieldStatus(String fieldStatus) 
+    {
+        this.fieldStatus = fieldStatus;
+    }
+
+    public String getFieldStatus() 
+    {
+        return fieldStatus;
+    }
+    public void setFieldOrder(Long fieldOrder) 
+    {
+        this.fieldOrder = fieldOrder;
+    }
+
+    public Long getFieldOrder() 
+    {
+        return fieldOrder;
+    }
+    public void setFieldExtend(String fieldExtend) 
+    {
+        this.fieldExtend = fieldExtend;
+    }
+
+    public String getFieldExtend() 
+    {
+        return fieldExtend;
+    }
+    public void setFieldExtendTable(String fieldExtendTable) 
+    {
+        this.fieldExtendTable = fieldExtendTable;
+    }
+
+    public String getFieldExtendTable() 
+    {
+        return fieldExtendTable;
+    }
+    public void setFieldInputType(String fieldInputType) 
+    {
+        this.fieldInputType = fieldInputType;
+    }
+
+    public String getFieldInputType() 
+    {
+        return fieldInputType;
+    }
+    public void setFieldInputFormat(String fieldInputFormat) 
+    {
+        this.fieldInputFormat = fieldInputFormat;
+    }
+
+    public String getFieldInputFormat() 
+    {
+        return fieldInputFormat;
+    }
+    public void setFieldInputDefault(String fieldInputDefault) 
+    {
+        this.fieldInputDefault = fieldInputDefault;
+    }
+
+    public String getFieldInputDefault() 
+    {
+        return fieldInputDefault;
+    }
+    public void setFieldViewType(String fieldViewType) 
+    {
+        this.fieldViewType = fieldViewType;
+    }
+
+    public String getFieldViewType() 
+    {
+        return fieldViewType;
+    }
+    public void setFieldDict(String fieldDict) 
+    {
+        this.fieldDict = fieldDict;
+    }
+
+    public String getFieldDict() 
+    {
+        return fieldDict;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("dsCode", getDsCode())
+            .append("metaTable", getMetaTable())
+            .append("fieldCode", getFieldCode())
+            .append("fieldName", getFieldName())
+            .append("fieldType", getFieldType())
+            .append("fieldLength", getFieldLength())
+            .append("fieldPrecision", getFieldPrecision())
+            .append("fieldIspri", getFieldIspri())
+            .append("fieldIsnullable", getFieldIsnullable())
+            .append("fieldDefault", getFieldDefault())
+            .append("fieldDesc", getFieldDesc())
+            .append("fieldStatus", getFieldStatus())
+            .append("fieldOrder", getFieldOrder())
+            .append("fieldExtend", getFieldExtend())
+            .append("fieldExtendTable", getFieldExtendTable())
+            .append("fieldInputType", getFieldInputType())
+            .append("fieldInputFormat", getFieldInputFormat())
+            .append("fieldInputDefault", getFieldInputDefault())
+            .append("fieldViewType", getFieldViewType())
+            .append("fieldDict", getFieldDict())
+            .toString();
+    }
+}

+ 120 - 0
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/domain/MdDataSet.java

@@ -0,0 +1,120 @@
+package com.ruoyi.interfaces.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 数据集对象 md_data_set
+ * 
+ * @author 朱得糠
+ * @date 2025-07-30
+ */
+public class MdDataSet extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 数据集标识 */
+    private String dsCode;
+
+    /** 目录标识 */
+    private String cateId;
+
+    /** 数据集中文名 */
+    @Excel(name = "数据集中文名")
+    private String dsName;
+
+    /** 数据集类型 */
+    @Excel(name = "数据集类型")
+    private String dsType;
+
+    /** 顺序 */
+    @Excel(name = "顺序")
+    private Long dsSort;
+
+    /** 图标 */
+    @Excel(name = "图标")
+    private String dsIcon;
+
+    /** 数据集说明 */
+    @Excel(name = "数据集说明")
+    private String dsNote;
+
+    public void setDsCode(String dsCode) 
+    {
+        this.dsCode = dsCode;
+    }
+
+    public String getDsCode() 
+    {
+        return dsCode;
+    }
+    public void setCateId(String cateId) 
+    {
+        this.cateId = cateId;
+    }
+
+    public String getCateId() 
+    {
+        return cateId;
+    }
+    public void setDsName(String dsName) 
+    {
+        this.dsName = dsName;
+    }
+
+    public String getDsName() 
+    {
+        return dsName;
+    }
+    public void setDsType(String dsType) 
+    {
+        this.dsType = dsType;
+    }
+
+    public String getDsType() 
+    {
+        return dsType;
+    }
+    public void setDsSort(Long dsSort) 
+    {
+        this.dsSort = dsSort;
+    }
+
+    public Long getDsSort() 
+    {
+        return dsSort;
+    }
+    public void setDsIcon(String dsIcon) 
+    {
+        this.dsIcon = dsIcon;
+    }
+
+    public String getDsIcon() 
+    {
+        return dsIcon;
+    }
+    public void setDsNote(String dsNote) 
+    {
+        this.dsNote = dsNote;
+    }
+
+    public String getDsNote() 
+    {
+        return dsNote;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("dsCode", getDsCode())
+            .append("cateId", getCateId())
+            .append("dsName", getDsName())
+            .append("dsType", getDsType())
+            .append("dsSort", getDsSort())
+            .append("dsIcon", getDsIcon())
+            .append("dsNote", getDsNote())
+            .toString();
+    }
+}

+ 1 - 0
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/domain/PtTreeCate.java

@@ -55,6 +55,7 @@ public class PtTreeCate extends BaseEntity
     private String nodeType;
 
 
+
     private List<PtTreeCate> children = new ArrayList<PtTreeCate>();
 
     public PtTreeCate(String mdid, String cateid, String name, String model) {

+ 10 - 2
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/domain/TreeSelectString.java

@@ -1,8 +1,6 @@
 package com.ruoyi.interfaces.domain;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
-import com.ruoyi.common.core.domain.TreeSelect;
-import com.ruoyi.interfaces.domain.vo.MdModelInfoVo;
 
 import java.io.Serializable;
 import java.util.List;
@@ -13,6 +11,7 @@ public class TreeSelectString  implements Serializable{
 
     /** 节点ID */
     private String id;
+    private String pid;
 
     /** 节点名称 */
     private String label;
@@ -36,9 +35,18 @@ public class TreeSelectString  implements Serializable{
         this.id = menu.getTreeId();
         this.label = menu.getItemName();
         this.nodeType = menu.getNodeType();
+        this.pid = menu.getTreePid();
         this.children = menu.getChildren().stream().map(TreeSelectString::new).collect(Collectors.toList());
     }
 
+    public String getPid() {
+        return pid;
+    }
+
+    public void setPid(String pid) {
+        this.pid = pid;
+    }
+
     public String getNodeType() {
         return nodeType;
     }

+ 65 - 0
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/mapper/MdDataFieldMapper.java

@@ -0,0 +1,65 @@
+package com.ruoyi.interfaces.mapper;
+
+import java.util.List;
+
+import com.ruoyi.common.annotation.DataSource;
+import com.ruoyi.common.enums.DataSourceType;
+import com.ruoyi.interfaces.domain.MdDataField;
+
+/**
+ * 数据集字段Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2025-07-30
+ */
+@DataSource(DataSourceType.SLAVE)
+public interface MdDataFieldMapper 
+{
+    /**
+     * 查询数据集字段
+     * 
+     * @param dsCode 数据集字段主键
+     * @return 数据集字段
+     */
+    public MdDataField selectMdDataFieldByDsCode(String dsCode);
+
+    /**
+     * 查询数据集字段列表
+     * 
+     * @param mdDataField 数据集字段
+     * @return 数据集字段集合
+     */
+    public List<MdDataField> selectMdDataFieldList(MdDataField mdDataField);
+
+    /**
+     * 新增数据集字段
+     * 
+     * @param mdDataField 数据集字段
+     * @return 结果
+     */
+    public int insertMdDataField(MdDataField mdDataField);
+
+    /**
+     * 修改数据集字段
+     * 
+     * @param mdDataField 数据集字段
+     * @return 结果
+     */
+    public int updateMdDataField(MdDataField mdDataField);
+
+    /**
+     * 删除数据集字段
+     * 
+     * @param dsCode 数据集字段主键
+     * @return 结果
+     */
+    public int deleteMdDataFieldByDsCode(String dsCode);
+
+    /**
+     * 批量删除数据集字段
+     * 
+     * @param dsCodes 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteMdDataFieldByDsCodes(String[] dsCodes);
+}

+ 62 - 0
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/mapper/MdDataSetMapper.java

@@ -0,0 +1,62 @@
+package com.ruoyi.interfaces.mapper;
+
+import com.ruoyi.interfaces.domain.MdDataSet;
+
+import java.util.List;
+
+/**
+ * 数据集Mapper接口
+ * 
+ * @author 朱得糠
+ * @date 2025-07-30
+ */
+public interface MdDataSetMapper 
+{
+    /**
+     * 查询数据集
+     * 
+     * @param dsCode 数据集主键
+     * @return 数据集
+     */
+    public MdDataSet selectMdDataSetByDsCode(String dsCode);
+
+    /**
+     * 查询数据集列表
+     * 
+     * @param mdDataSet 数据集
+     * @return 数据集集合
+     */
+    public List<MdDataSet> selectMdDataSetList(MdDataSet mdDataSet);
+
+    /**
+     * 新增数据集
+     * 
+     * @param mdDataSet 数据集
+     * @return 结果
+     */
+    public int insertMdDataSet(MdDataSet mdDataSet);
+
+    /**
+     * 修改数据集
+     * 
+     * @param mdDataSet 数据集
+     * @return 结果
+     */
+    public int updateMdDataSet(MdDataSet mdDataSet);
+
+    /**
+     * 删除数据集
+     * 
+     * @param dsCode 数据集主键
+     * @return 结果
+     */
+    public int deleteMdDataSetByDsCode(String dsCode);
+
+    /**
+     * 批量删除数据集
+     * 
+     * @param dsCodes 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteMdDataSetByDsCodes(String[] dsCodes);
+}

+ 61 - 0
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/service/IMdDataFieldService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.interfaces.service;
+
+import java.util.List;
+import com.ruoyi.interfaces.domain.MdDataField;
+
+/**
+ * 数据集字段Service接口
+ * 
+ * @author ruoyi
+ * @date 2025-07-30
+ */
+public interface IMdDataFieldService 
+{
+    /**
+     * 查询数据集字段
+     * 
+     * @param dsCode 数据集字段主键
+     * @return 数据集字段
+     */
+    public MdDataField selectMdDataFieldByDsCode(String dsCode);
+
+    /**
+     * 查询数据集字段列表
+     * 
+     * @param mdDataField 数据集字段
+     * @return 数据集字段集合
+     */
+    public List<MdDataField> selectMdDataFieldList(MdDataField mdDataField);
+
+    /**
+     * 新增数据集字段
+     * 
+     * @param mdDataField 数据集字段
+     * @return 结果
+     */
+    public int insertMdDataField(MdDataField mdDataField);
+
+    /**
+     * 修改数据集字段
+     * 
+     * @param mdDataField 数据集字段
+     * @return 结果
+     */
+    public int updateMdDataField(MdDataField mdDataField);
+
+    /**
+     * 批量删除数据集字段
+     * 
+     * @param dsCodes 需要删除的数据集字段主键集合
+     * @return 结果
+     */
+    public int deleteMdDataFieldByDsCodes(String[] dsCodes);
+
+    /**
+     * 删除数据集字段信息
+     * 
+     * @param dsCode 数据集字段主键
+     * @return 结果
+     */
+    public int deleteMdDataFieldByDsCode(String dsCode);
+}

+ 61 - 0
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/service/IMdDataSetService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.interfaces.service;
+
+import java.util.List;
+import com.ruoyi.interfaces.domain.MdDataSet;
+
+/**
+ * 数据集Service接口
+ * 
+ * @author 朱得糠
+ * @date 2025-07-30
+ */
+public interface IMdDataSetService 
+{
+    /**
+     * 查询数据集
+     * 
+     * @param dsCode 数据集主键
+     * @return 数据集
+     */
+    public MdDataSet selectMdDataSetByDsCode(String dsCode);
+
+    /**
+     * 查询数据集列表
+     * 
+     * @param mdDataSet 数据集
+     * @return 数据集集合
+     */
+    public List<MdDataSet> selectMdDataSetList(MdDataSet mdDataSet);
+
+    /**
+     * 新增数据集
+     * 
+     * @param mdDataSet 数据集
+     * @return 结果
+     */
+    public int insertMdDataSet(MdDataSet mdDataSet);
+
+    /**
+     * 修改数据集
+     * 
+     * @param mdDataSet 数据集
+     * @return 结果
+     */
+    public int updateMdDataSet(MdDataSet mdDataSet);
+
+    /**
+     * 批量删除数据集
+     * 
+     * @param dsCodes 需要删除的数据集主键集合
+     * @return 结果
+     */
+    public int deleteMdDataSetByDsCodes(String[] dsCodes);
+
+    /**
+     * 删除数据集信息
+     * 
+     * @param dsCode 数据集主键
+     * @return 结果
+     */
+    public int deleteMdDataSetByDsCode(String dsCode);
+}

+ 93 - 0
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/service/impl/MdDataFieldServiceImpl.java

@@ -0,0 +1,93 @@
+package com.ruoyi.interfaces.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.interfaces.mapper.MdDataFieldMapper;
+import com.ruoyi.interfaces.domain.MdDataField;
+import com.ruoyi.interfaces.service.IMdDataFieldService;
+
+/**
+ * 数据集字段Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2025-07-30
+ */
+@Service
+public class MdDataFieldServiceImpl implements IMdDataFieldService 
+{
+    @Autowired
+    private MdDataFieldMapper mdDataFieldMapper;
+
+    /**
+     * 查询数据集字段
+     * 
+     * @param dsCode 数据集字段主键
+     * @return 数据集字段
+     */
+    @Override
+    public MdDataField selectMdDataFieldByDsCode(String dsCode)
+    {
+        return mdDataFieldMapper.selectMdDataFieldByDsCode(dsCode);
+    }
+
+    /**
+     * 查询数据集字段列表
+     * 
+     * @param mdDataField 数据集字段
+     * @return 数据集字段
+     */
+    @Override
+    public List<MdDataField> selectMdDataFieldList(MdDataField mdDataField)
+    {
+        return mdDataFieldMapper.selectMdDataFieldList(mdDataField);
+    }
+
+    /**
+     * 新增数据集字段
+     * 
+     * @param mdDataField 数据集字段
+     * @return 结果
+     */
+    @Override
+    public int insertMdDataField(MdDataField mdDataField)
+    {
+        return mdDataFieldMapper.insertMdDataField(mdDataField);
+    }
+
+    /**
+     * 修改数据集字段
+     * 
+     * @param mdDataField 数据集字段
+     * @return 结果
+     */
+    @Override
+    public int updateMdDataField(MdDataField mdDataField)
+    {
+        return mdDataFieldMapper.updateMdDataField(mdDataField);
+    }
+
+    /**
+     * 批量删除数据集字段
+     * 
+     * @param dsCodes 需要删除的数据集字段主键
+     * @return 结果
+     */
+    @Override
+    public int deleteMdDataFieldByDsCodes(String[] dsCodes)
+    {
+        return mdDataFieldMapper.deleteMdDataFieldByDsCodes(dsCodes);
+    }
+
+    /**
+     * 删除数据集字段信息
+     * 
+     * @param dsCode 数据集字段主键
+     * @return 结果
+     */
+    @Override
+    public int deleteMdDataFieldByDsCode(String dsCode)
+    {
+        return mdDataFieldMapper.deleteMdDataFieldByDsCode(dsCode);
+    }
+}

+ 93 - 0
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/service/impl/MdDataSetServiceImpl.java

@@ -0,0 +1,93 @@
+package com.ruoyi.interfaces.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.interfaces.mapper.MdDataSetMapper;
+import com.ruoyi.interfaces.domain.MdDataSet;
+import com.ruoyi.interfaces.service.IMdDataSetService;
+
+/**
+ * 数据集Service业务层处理
+ * 
+ * @author 朱得糠
+ * @date 2025-07-30
+ */
+@Service
+public class MdDataSetServiceImpl implements IMdDataSetService 
+{
+    @Autowired
+    private MdDataSetMapper mdDataSetMapper;
+
+    /**
+     * 查询数据集
+     * 
+     * @param dsCode 数据集主键
+     * @return 数据集
+     */
+    @Override
+    public MdDataSet selectMdDataSetByDsCode(String dsCode)
+    {
+        return mdDataSetMapper.selectMdDataSetByDsCode(dsCode);
+    }
+
+    /**
+     * 查询数据集列表
+     * 
+     * @param mdDataSet 数据集
+     * @return 数据集
+     */
+    @Override
+    public List<MdDataSet> selectMdDataSetList(MdDataSet mdDataSet)
+    {
+        return mdDataSetMapper.selectMdDataSetList(mdDataSet);
+    }
+
+    /**
+     * 新增数据集
+     * 
+     * @param mdDataSet 数据集
+     * @return 结果
+     */
+    @Override
+    public int insertMdDataSet(MdDataSet mdDataSet)
+    {
+        return mdDataSetMapper.insertMdDataSet(mdDataSet);
+    }
+
+    /**
+     * 修改数据集
+     * 
+     * @param mdDataSet 数据集
+     * @return 结果
+     */
+    @Override
+    public int updateMdDataSet(MdDataSet mdDataSet)
+    {
+        return mdDataSetMapper.updateMdDataSet(mdDataSet);
+    }
+
+    /**
+     * 批量删除数据集
+     * 
+     * @param dsCodes 需要删除的数据集主键
+     * @return 结果
+     */
+    @Override
+    public int deleteMdDataSetByDsCodes(String[] dsCodes)
+    {
+        return mdDataSetMapper.deleteMdDataSetByDsCodes(dsCodes);
+    }
+
+    /**
+     * 删除数据集信息
+     * 
+     * @param dsCode 数据集主键
+     * @return 结果
+     */
+    @Override
+    public int deleteMdDataSetByDsCode(String dsCode)
+    {
+        return mdDataSetMapper.deleteMdDataSetByDsCode(dsCode);
+    }
+}

+ 147 - 0
ruoyi-api-patform/src/main/resources/mapper/interfaces/MdDataFieldMapper.xml

@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.interfaces.mapper.MdDataFieldMapper">
+
+    <resultMap type="com.ruoyi.interfaces.domain.MdDataField" id="MdDataFieldResult">
+        <result property="dsCode"    column="DS_CODE"    />
+        <result property="metaTable"    column="META_TABLE"    />
+        <result property="fieldCode"    column="FIELD_CODE"    />
+        <result property="fieldName"    column="FIELD_NAME"    />
+        <result property="fieldType"    column="FIELD_TYPE"    />
+        <result property="fieldLength"    column="FIELD_LENGTH"    />
+        <result property="fieldPrecision"    column="FIELD_PRECISION"    />
+        <result property="fieldIspri"    column="FIELD_ISPRI"    />
+        <result property="fieldIsnullable"    column="FIELD_ISNULLABLE"    />
+        <result property="fieldDefault"    column="FIELD_DEFAULT"    />
+        <result property="fieldDesc"    column="FIELD_DESC"    />
+        <result property="fieldStatus"    column="FIELD_STATUS"    />
+        <result property="fieldOrder"    column="FIELD_ORDER"    />
+        <result property="fieldExtend"    column="FIELD_EXTEND"    />
+        <result property="fieldExtendTable"    column="FIELD_EXTEND_TABLE"    />
+        <result property="fieldInputType"    column="FIELD_INPUT_TYPE"    />
+        <result property="fieldInputFormat"    column="FIELD_INPUT_FORMAT"    />
+        <result property="fieldInputDefault"    column="FIELD_INPUT_DEFAULT"    />
+        <result property="fieldViewType"    column="FIELD_VIEW_TYPE"    />
+        <result property="fieldDict"    column="FIELD_DICT"    />
+    </resultMap>
+
+    <sql id="selectMdDataFieldVo">
+        select DS_CODE, META_TABLE, FIELD_CODE, FIELD_NAME, FIELD_TYPE, FIELD_LENGTH, FIELD_PRECISION, FIELD_ISPRI, FIELD_ISNULLABLE, FIELD_DEFAULT, FIELD_DESC, FIELD_STATUS, FIELD_ORDER, FIELD_EXTEND, FIELD_EXTEND_TABLE, FIELD_INPUT_TYPE, FIELD_INPUT_FORMAT, FIELD_INPUT_DEFAULT, FIELD_VIEW_TYPE, FIELD_DICT from md_data_field
+    </sql>
+
+    <select id="selectMdDataFieldList" parameterType="com.ruoyi.interfaces.domain.MdDataField" resultMap="MdDataFieldResult">
+        <include refid="selectMdDataFieldVo"/>
+        <where>
+            <if test="fieldName != null  and fieldName != ''"> and FIELD_NAME like concat('%', #{fieldName}, '%')</if>
+            <if test="fieldType != null  and fieldType != ''"> and FIELD_TYPE = #{fieldType}</if>
+            <if test="fieldLength != null  and fieldLength != ''"> and FIELD_LENGTH = #{fieldLength}</if>
+            <if test="fieldPrecision != null  and fieldPrecision != ''"> and FIELD_PRECISION = #{fieldPrecision}</if>
+            <if test="fieldIspri != null  and fieldIspri != ''"> and FIELD_ISPRI = #{fieldIspri}</if>
+            <if test="fieldIsnullable != null  and fieldIsnullable != ''"> and FIELD_ISNULLABLE = #{fieldIsnullable}</if>
+            <if test="fieldDefault != null  and fieldDefault != ''"> and FIELD_DEFAULT = #{fieldDefault}</if>
+            <if test="fieldDesc != null  and fieldDesc != ''"> and FIELD_DESC = #{fieldDesc}</if>
+            <if test="fieldStatus != null  and fieldStatus != ''"> and FIELD_STATUS = #{fieldStatus}</if>
+            <if test="fieldOrder != null "> and FIELD_ORDER = #{fieldOrder}</if>
+            <if test="fieldExtend != null  and fieldExtend != ''"> and FIELD_EXTEND = #{fieldExtend}</if>
+            <if test="fieldExtendTable != null  and fieldExtendTable != ''"> and FIELD_EXTEND_TABLE = #{fieldExtendTable}</if>
+            <if test="fieldInputType != null  and fieldInputType != ''"> and FIELD_INPUT_TYPE = #{fieldInputType}</if>
+            <if test="fieldInputFormat != null  and fieldInputFormat != ''"> and FIELD_INPUT_FORMAT = #{fieldInputFormat}</if>
+            <if test="fieldInputDefault != null  and fieldInputDefault != ''"> and FIELD_INPUT_DEFAULT = #{fieldInputDefault}</if>
+            <if test="fieldViewType != null  and fieldViewType != ''"> and FIELD_VIEW_TYPE = #{fieldViewType}</if>
+            <if test="fieldDict != null  and fieldDict != ''"> and FIELD_DICT = #{fieldDict}</if>
+        </where>
+        oreder by FIELD_ORDER
+    </select>
+
+    <select id="selectMdDataFieldByDsCode" parameterType="String" resultMap="MdDataFieldResult">
+        <include refid="selectMdDataFieldVo"/>
+        where DS_CODE = #{dsCode}
+    </select>
+
+    <insert id="insertMdDataField" parameterType="com.ruoyi.interfaces.domain.MdDataField">
+        insert into md_data_field
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="dsCode != null">DS_CODE,</if>
+            <if test="metaTable != null">META_TABLE,</if>
+            <if test="fieldCode != null">FIELD_CODE,</if>
+            <if test="fieldName != null">FIELD_NAME,</if>
+            <if test="fieldType != null">FIELD_TYPE,</if>
+            <if test="fieldLength != null">FIELD_LENGTH,</if>
+            <if test="fieldPrecision != null">FIELD_PRECISION,</if>
+            <if test="fieldIspri != null">FIELD_ISPRI,</if>
+            <if test="fieldIsnullable != null">FIELD_ISNULLABLE,</if>
+            <if test="fieldDefault != null">FIELD_DEFAULT,</if>
+            <if test="fieldDesc != null">FIELD_DESC,</if>
+            <if test="fieldStatus != null">FIELD_STATUS,</if>
+            <if test="fieldOrder != null">FIELD_ORDER,</if>
+            <if test="fieldExtend != null">FIELD_EXTEND,</if>
+            <if test="fieldExtendTable != null">FIELD_EXTEND_TABLE,</if>
+            <if test="fieldInputType != null">FIELD_INPUT_TYPE,</if>
+            <if test="fieldInputFormat != null">FIELD_INPUT_FORMAT,</if>
+            <if test="fieldInputDefault != null">FIELD_INPUT_DEFAULT,</if>
+            <if test="fieldViewType != null">FIELD_VIEW_TYPE,</if>
+            <if test="fieldDict != null">FIELD_DICT,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="dsCode != null">#{dsCode},</if>
+            <if test="metaTable != null">#{metaTable},</if>
+            <if test="fieldCode != null">#{fieldCode},</if>
+            <if test="fieldName != null">#{fieldName},</if>
+            <if test="fieldType != null">#{fieldType},</if>
+            <if test="fieldLength != null">#{fieldLength},</if>
+            <if test="fieldPrecision != null">#{fieldPrecision},</if>
+            <if test="fieldIspri != null">#{fieldIspri},</if>
+            <if test="fieldIsnullable != null">#{fieldIsnullable},</if>
+            <if test="fieldDefault != null">#{fieldDefault},</if>
+            <if test="fieldDesc != null">#{fieldDesc},</if>
+            <if test="fieldStatus != null">#{fieldStatus},</if>
+            <if test="fieldOrder != null">#{fieldOrder},</if>
+            <if test="fieldExtend != null">#{fieldExtend},</if>
+            <if test="fieldExtendTable != null">#{fieldExtendTable},</if>
+            <if test="fieldInputType != null">#{fieldInputType},</if>
+            <if test="fieldInputFormat != null">#{fieldInputFormat},</if>
+            <if test="fieldInputDefault != null">#{fieldInputDefault},</if>
+            <if test="fieldViewType != null">#{fieldViewType},</if>
+            <if test="fieldDict != null">#{fieldDict},</if>
+        </trim>
+    </insert>
+
+    <update id="updateMdDataField" parameterType="com.ruoyi.interfaces.domain.MdDataField">
+        update md_data_field
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="metaTable != null">META_TABLE = #{metaTable},</if>
+            <if test="fieldCode != null">FIELD_CODE = #{fieldCode},</if>
+            <if test="fieldName != null">FIELD_NAME = #{fieldName},</if>
+            <if test="fieldType != null">FIELD_TYPE = #{fieldType},</if>
+            <if test="fieldLength != null">FIELD_LENGTH = #{fieldLength},</if>
+            <if test="fieldPrecision != null">FIELD_PRECISION = #{fieldPrecision},</if>
+            <if test="fieldIspri != null">FIELD_ISPRI = #{fieldIspri},</if>
+            <if test="fieldIsnullable != null">FIELD_ISNULLABLE = #{fieldIsnullable},</if>
+            <if test="fieldDefault != null">FIELD_DEFAULT = #{fieldDefault},</if>
+            <if test="fieldDesc != null">FIELD_DESC = #{fieldDesc},</if>
+            <if test="fieldStatus != null">FIELD_STATUS = #{fieldStatus},</if>
+            <if test="fieldOrder != null">FIELD_ORDER = #{fieldOrder},</if>
+            <if test="fieldExtend != null">FIELD_EXTEND = #{fieldExtend},</if>
+            <if test="fieldExtendTable != null">FIELD_EXTEND_TABLE = #{fieldExtendTable},</if>
+            <if test="fieldInputType != null">FIELD_INPUT_TYPE = #{fieldInputType},</if>
+            <if test="fieldInputFormat != null">FIELD_INPUT_FORMAT = #{fieldInputFormat},</if>
+            <if test="fieldInputDefault != null">FIELD_INPUT_DEFAULT = #{fieldInputDefault},</if>
+            <if test="fieldViewType != null">FIELD_VIEW_TYPE = #{fieldViewType},</if>
+            <if test="fieldDict != null">FIELD_DICT = #{fieldDict},</if>
+        </trim>
+        where DS_CODE = #{dsCode}
+    </update>
+
+    <delete id="deleteMdDataFieldByDsCode" parameterType="String">
+        delete from md_data_field where DS_CODE = #{dsCode}
+    </delete>
+
+    <delete id="deleteMdDataFieldByDsCodes" parameterType="String">
+        delete from md_data_field where DS_CODE in
+        <foreach item="dsCode" collection="array" open="(" separator="," close=")">
+            #{dsCode}
+        </foreach>
+    </delete>
+</mapper>

+ 83 - 0
ruoyi-api-patform/src/main/resources/mapper/interfaces/MdDataSetMapper.xml

@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.interfaces.mapper.MdDataSetMapper">
+
+    <resultMap type="com.ruoyi.interfaces.domain.MdDataSet" id="MdDataSetResult">
+        <result property="dsCode"    column="DS_CODE"    />
+        <result property="cateId"    column="CATE_ID"    />
+        <result property="dsName"    column="DS_NAME"    />
+        <result property="dsType"    column="DS_TYPE"    />
+        <result property="dsSort"    column="DS_SORT"    />
+        <result property="dsIcon"    column="DS_ICON"    />
+        <result property="dsNote"    column="DS_NOTE"    />
+    </resultMap>
+
+    <sql id="selectMdDataSetVo">
+        select DS_CODE, CATE_ID, DS_NAME, DS_TYPE, DS_SORT, DS_ICON, DS_NOTE from md_data_set
+    </sql>
+
+    <select id="selectMdDataSetList" parameterType="com.ruoyi.interfaces.domain.MdDataSet" resultMap="MdDataSetResult">
+        <include refid="selectMdDataSetVo"/>
+        <where>
+            <if test="dsName != null  and dsName != ''"> and DS_NAME like concat('%', #{dsName}, '%')</if>
+            <if test="dsType != null  and dsType != ''"> and DS_TYPE = #{dsType}</if>
+            <if test="dsSort != null "> and DS_SORT = #{dsSort}</if>
+            <if test="dsIcon != null  and dsIcon != ''"> and DS_ICON = #{dsIcon}</if>
+            <if test="dsNote != null  and dsNote != ''"> and DS_NOTE = #{dsNote}</if>
+        </where>
+        order by DS_SORT
+    </select>
+
+    <select id="selectMdDataSetByDsCode" parameterType="String" resultMap="MdDataSetResult">
+        <include refid="selectMdDataSetVo"/>
+        where DS_CODE = #{dsCode}
+    </select>
+
+    <insert id="insertMdDataSet" parameterType="com.ruoyi.interfaces.domain.MdDataSet">
+        insert into md_data_set
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="dsCode != null">DS_CODE,</if>
+            <if test="cateId != null">CATE_ID,</if>
+            <if test="dsName != null">DS_NAME,</if>
+            <if test="dsType != null">DS_TYPE,</if>
+            <if test="dsSort != null">DS_SORT,</if>
+            <if test="dsIcon != null">DS_ICON,</if>
+            <if test="dsNote != null">DS_NOTE,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="dsCode != null">#{dsCode},</if>
+            <if test="cateId != null">#{cateId},</if>
+            <if test="dsName != null">#{dsName},</if>
+            <if test="dsType != null">#{dsType},</if>
+            <if test="dsSort != null">#{dsSort},</if>
+            <if test="dsIcon != null">#{dsIcon},</if>
+            <if test="dsNote != null">#{dsNote},</if>
+        </trim>
+    </insert>
+
+    <update id="updateMdDataSet" parameterType="com.ruoyi.interfaces.domain.MdDataSet">
+        update md_data_set
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="cateId != null">CATE_ID = #{cateId},</if>
+            <if test="dsName != null">DS_NAME = #{dsName},</if>
+            <if test="dsType != null">DS_TYPE = #{dsType},</if>
+            <if test="dsSort != null">DS_SORT = #{dsSort},</if>
+            <if test="dsIcon != null">DS_ICON = #{dsIcon},</if>
+            <if test="dsNote != null">DS_NOTE = #{dsNote},</if>
+        </trim>
+        where DS_CODE = #{dsCode}
+    </update>
+
+    <delete id="deleteMdDataSetByDsCode" parameterType="String">
+        delete from md_data_set where DS_CODE = #{dsCode}
+    </delete>
+
+    <delete id="deleteMdDataSetByDsCodes" parameterType="String">
+        delete from md_data_set where DS_CODE in
+        <foreach item="dsCode" collection="array" open="(" separator="," close=")">
+            #{dsCode}
+        </foreach>
+    </delete>
+</mapper>

+ 1 - 0
ruoyi-api-patform/src/main/resources/mapper/interfaces/PtTreeCateMapper.xml

@@ -30,6 +30,7 @@
             <if test="createby != null  and createby != ''"> and CREATEBY = #{createby}</if>
             <if test="modifyby != null  and modifyby != ''"> and MODIFYBY = #{modifyby}</if>
         </where>
+        order by ITEM_NO
     </select>
 
     <select id="selectPtTreeCateByTreeId" parameterType="String" resultMap="PtTreeCateResult">