Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

Lin Qilong 8 месяцев назад
Родитель
Сommit
79b6dd749f
46 измененных файлов с 4183 добавлено и 996 удалено
  1. 6 0
      ruoyi-admin/pom.xml
  2. 1 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java
  3. 27 46
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/controller/MdDataFieldController.java
  4. 67 0
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/controller/MdDataSetApiController.java
  5. 37 22
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/controller/MdDataSetController.java
  6. 93 0
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/controller/MdDataSetFileController.java
  7. 113 0
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/controller/MdDataSetParamController.java
  8. 97 0
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/controller/MdDataSetSqlController.java
  9. 8 1
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/controller/PtServiceController.java
  10. 68 7
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/domain/MdDataField.java
  11. 80 0
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/domain/MdDataSetApi.java
  12. 103 0
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/domain/MdDataSetFile.java
  13. 122 0
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/domain/MdDataSetParam.java
  14. 95 0
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/domain/MdDataSetSql.java
  15. 9 9
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/mapper/MdDataFieldMapper.java
  16. 65 0
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/mapper/MdDataSetApiMapper.java
  17. 67 0
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/mapper/MdDataSetFileMapper.java
  18. 65 0
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/mapper/MdDataSetParamMapper.java
  19. 67 0
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/mapper/MdDataSetSqlMapper.java
  20. 1 1
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/mapper/PtServiceMapper.java
  21. 11 9
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/service/IMdDataFieldService.java
  22. 61 0
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/service/IMdDataSetApiService.java
  23. 63 0
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/service/IMdDataSetFileService.java
  24. 61 0
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/service/IMdDataSetParamService.java
  25. 64 0
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/service/IMdDataSetSqlService.java
  26. 1 1
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/service/PtServiceService.java
  27. 20 13
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/service/impl/MdDataFieldServiceImpl.java
  28. 93 0
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/service/impl/MdDataSetApiServiceImpl.java
  29. 99 0
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/service/impl/MdDataSetFileServiceImpl.java
  30. 93 0
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/service/impl/MdDataSetParamServiceImpl.java
  31. 98 0
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/service/impl/MdDataSetSqlServiceImpl.java
  32. 7 2
      ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/service/impl/PtServiceServiceImpl.java
  33. 124 73
      ruoyi-api-patform/src/main/resources/mapper/interfaces/MdDataFieldMapper.xml
  34. 67 0
      ruoyi-api-patform/src/main/resources/mapper/interfaces/MdDataSetApiMapper.xml
  35. 82 0
      ruoyi-api-patform/src/main/resources/mapper/interfaces/MdDataSetFileMapper.xml
  36. 85 0
      ruoyi-api-patform/src/main/resources/mapper/interfaces/MdDataSetParamMapper.xml
  37. 75 0
      ruoyi-api-patform/src/main/resources/mapper/interfaces/MdDataSetSqlMapper.xml
  38. 125 64
      ruoyi-api-patform/src/main/resources/mapper/interfaces/PtServiceMapper.xml
  39. 5 0
      ruoyi-common/src/main/java/com/ruoyi/common/constant/HttpStatus.java
  40. 67 0
      ruoyi-ui/src/api/register/regCom.js
  41. 24 1
      ruoyi-ui/src/api/service/info.js
  42. 10 1
      ruoyi-ui/src/layout/components/editModel.vue
  43. 3 0
      ruoyi-ui/src/utils/request.js
  44. 704 190
      ruoyi-ui/src/views/register/modelData/dataJi.vue
  45. 690 77
      ruoyi-ui/src/views/service/info/editModel.vue
  46. 260 479
      ruoyi-ui/src/views/service/info/index.vue

+ 6 - 0
ruoyi-admin/pom.xml

@@ -43,6 +43,12 @@
             <artifactId>mysql-connector-java</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>com.oracle</groupId>
+            <artifactId>ojdbc6</artifactId>
+            <version>11.2.0.3</version>
+        </dependency>
+
         <!-- 核心模块 -->
         <dependency>
             <groupId>com.ruoyi</groupId>

+ 1 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java

@@ -93,6 +93,7 @@ public class CommonController {
             ajax.put("newFileName", FileUtils.getName(fileName));
             ajax.put("originalFilename", file.getOriginalFilename());
             return ajax;
+            
         } catch (Exception e) {
             return AjaxResult.error(e.getMessage());
         }

+ 27 - 46
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/controller/MdDataFieldController.java

@@ -21,13 +21,12 @@ 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
+ * @author 朱得糠
+ * @date 2025-09-04
  */
 @RestController
 @RequestMapping("/data/field")
@@ -40,18 +39,13 @@ public class MdDataFieldController extends BaseController
      * 查询数据集字段列表
      */
     @GetMapping("/list")
-    public TableDataInfo list(MdDataField mdDataField)
+    public AjaxResult list(MdDataField mdDataField)
     {
-        startPage();
+        if (StringUtils.isNull(mdDataField.getDcCode())) return error("数据集id不可为空");
         List<MdDataField> list = mdDataFieldService.selectMdDataFieldList(mdDataField);
-        return getDataTable(list);
-    }
-    @GetMapping("/allList")
-    public AjaxResult allList(MdDataField mdDataField)
-    {
-        List<MdDataField> list = mdDataFieldService.selectMdDataFieldList(mdDataField);
-        return AjaxResult.success(list);
+        return success(list);
     }
+
     /**
      * 导出数据集字段列表
      */
@@ -67,45 +61,43 @@ public class MdDataFieldController extends BaseController
     /**
      * 获取数据集字段详细信息
      */
-    @GetMapping(value = "/{dcCode}")
-    public AjaxResult getInfo(@PathVariable("dcCode") String dcCode)
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
     {
-        return success(mdDataFieldService.selectMdDataFieldByDsCode(dcCode));
+        return success(mdDataFieldService.selectMdDataFieldById(id));
     }
 
     /**
      * 新增数据集字段
      */
-    @Log(title = "数据集字段", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody MdDataField mdDataField)
     {
         return toAjax(mdDataFieldService.insertMdDataField(mdDataField));
     }
 
-    /**
-     * 批量新增数据集字段
-     */
-    @Log(title = "数据集字段", businessType = BusinessType.INSERT)
+
     @PostMapping("/addList")
-    public AjaxResult addList(@RequestBody List<MdDataField> mdDataFields)
-    {
-        List<MdDataField> collect = mdDataFields.stream()
-                .filter(item -> StringUtils.isNotNull(item.getDcCode()))
-                .filter(item -> StringUtils.isNotNull(item.getFieldCode())).collect(Collectors.toList());
-        if (StringUtils.isEmpty(collect)) {
-            return AjaxResult.error();
+    public AjaxResult addList(@RequestBody List<MdDataField> list) {
+        List<MdDataField> collect = list.stream().filter(p -> StringUtils.isNotNull(p.getId()))
+                .filter(p -> StringUtils.isNotNull(p.getParentId()))
+                .filter(p -> StringUtils.isNotNull(p.getDcCode()))
+                .filter(p -> StringUtils.isNotNull(p.getFieldType())).collect(Collectors.toList());
+        if (StringUtils.isEmpty(collect)) return error("数据为空");
+
+        mdDataFieldService.deleteMdDataFieldByDcCode(collect.get(0).getDcCode());
+
+        for (int i = 0; i < collect.size(); i++) {
+            collect.get(i).setFieldOrder(i);
         }
-        mdDataFieldService.deleteMdDataFieldByDsCode(collect.get(0).getDcCode());
-        collect.forEach(mdDataFieldService::insertMdDataField);
-        return AjaxResult.success();
-    }
 
+        collect.stream().forEach(mdDataFieldService::insertMdDataField);
+        return success();
+    }
 
     /**
      * 修改数据集字段
      */
-    @Log(title = "数据集字段", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@RequestBody MdDataField mdDataField)
     {
@@ -115,20 +107,9 @@ public class MdDataFieldController extends BaseController
     /**
      * 删除数据集字段
      */
-    @Log(title = "数据集字段", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{dsCodes}")
-    public AjaxResult remove(@PathVariable String[] dsCodes)
-    {
-        return toAjax(mdDataFieldService.deleteMdDataFieldByDsCodes(dsCodes));
-    }
-
-    /**
-     * 删除数据集字段
-     */
-    @Log(title = "数据集字段", businessType = BusinessType.DELETE)
-    @DeleteMapping("/removeOne")
-    public AjaxResult removeOne(MdDataField mdDataField)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
     {
-        return toAjax(mdDataFieldService.deleteMdDataFieldOne(mdDataField));
+        return toAjax(mdDataFieldService.deleteMdDataFieldByIds(ids));
     }
 }

+ 67 - 0
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/controller/MdDataSetApiController.java

@@ -0,0 +1,67 @@
+package com.ruoyi.interfaces.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+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.MdDataSetApi;
+import com.ruoyi.interfaces.service.IMdDataSetApiService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * api数据集Controller
+ *
+ * @author 朱得糠
+ * @date 2025-09-02
+ */
+@RestController
+@RequestMapping("/data/set/api")
+public class MdDataSetApiController extends BaseController {
+    @Autowired
+    private IMdDataSetApiService mdDataSetApiService;
+
+    /**
+     * 查询api数据集列表
+     */
+    @GetMapping("/list")
+    public TableDataInfo list(MdDataSetApi mdDataSetApi) {
+        startPage();
+        List<MdDataSetApi> list = mdDataSetApiService.selectMdDataSetApiList(mdDataSetApi);
+        return getDataTable(list);
+    }
+
+
+    /**
+     * 获取api数据集详细信息
+     */
+    @GetMapping(value = "/{dcCode}")
+    public AjaxResult getInfoBy(@PathVariable("dcCode") String dcCode) {
+        return success(mdDataSetApiService.selectMdDataSetApiByDcCode(dcCode));
+    }
+
+
+    /**
+     * 新增api数据集
+     */
+    @Log(title = "api数据集", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody MdDataSetApi mdDataSetApi) {
+        mdDataSetApiService.deleteMdDataSetApiByDcCode(mdDataSetApi.getDcCode());
+        return toAjax(mdDataSetApiService.insertMdDataSetApi(mdDataSetApi));
+    }
+
+
+}

+ 37 - 22
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/controller/MdDataSetController.java

@@ -2,13 +2,11 @@ package com.ruoyi.interfaces.controller;
 
 import java.util.HashMap;
 import java.util.List;
-import java.util.Objects;
 import javax.servlet.http.HttpServletResponse;
 
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.interfaces.domain.MdDataField;
-import com.ruoyi.interfaces.service.IMdDataFieldService;
-import org.springframework.security.access.prepost.PreAuthorize;
+import com.ruoyi.interfaces.service.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -23,20 +21,18 @@ 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("/data/set")
-public class MdDataSetController extends BaseController
-{
+public class MdDataSetController extends BaseController {
     @Autowired
     private IMdDataSetService mdDataSetService;
     @Autowired
@@ -47,8 +43,7 @@ public class MdDataSetController extends BaseController
      * 查询数据集列表
      */
     @GetMapping("/list")
-    public TableDataInfo list(MdDataSet mdDataSet)
-    {
+    public TableDataInfo list(MdDataSet mdDataSet) {
         startPage();
         List<MdDataSet> list = mdDataSetService.selectMdDataSetList(mdDataSet);
         return getDataTable(list);
@@ -59,8 +54,7 @@ public class MdDataSetController extends BaseController
      */
     @Log(title = "数据集", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
-    public void export(HttpServletResponse response, MdDataSet mdDataSet)
-    {
+    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, "数据集数据");
@@ -70,14 +64,13 @@ public class MdDataSetController extends BaseController
      * 获取数据集详细信息
      */
     @GetMapping(value = "/{dsCode}")
-    public AjaxResult getInfo(@PathVariable("dsCode") String dsCode)
-    {
+    public AjaxResult getInfo(@PathVariable("dsCode") String dsCode) {
         HashMap<String, Object> map = new HashMap<>();
         MdDataSet mdDataSet = mdDataSetService.selectMdDataSetByDsCode(dsCode);
-        map.put("dataSet",mdDataSet);
+        map.put("dataSet", mdDataSet);
         if (StringUtils.isNull(mdDataSet)) return error();
         List<MdDataField> fieldList = mdDataFieldService.selectMdDataFieldByDsCode(mdDataSet.getDcCode());
-        map.put("fieldList",fieldList);
+        map.put("fieldList", fieldList);
         return success(map);
     }
 
@@ -86,8 +79,7 @@ public class MdDataSetController extends BaseController
      */
     @Log(title = "数据集", businessType = BusinessType.INSERT)
     @PostMapping
-    public AjaxResult add(@RequestBody MdDataSet mdDataSet)
-    {
+    public AjaxResult add(@RequestBody MdDataSet mdDataSet) {
         return toAjax(mdDataSetService.insertMdDataSet(mdDataSet));
     }
 
@@ -96,8 +88,7 @@ public class MdDataSetController extends BaseController
      */
     @Log(title = "数据集", businessType = BusinessType.UPDATE)
     @PutMapping
-    public AjaxResult edit(@RequestBody MdDataSet mdDataSet)
-    {
+    public AjaxResult edit(@RequestBody MdDataSet mdDataSet) {
         return toAjax(mdDataSetService.updateMdDataSet(mdDataSet));
     }
 
@@ -105,11 +96,35 @@ public class MdDataSetController extends BaseController
      * 删除数据集
      */
     @Log(title = "数据集", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{dsCodes}")
-    public AjaxResult remove(@PathVariable String[] dsCodes)
-    {
+    @DeleteMapping("/{dsCodes}")
+    public AjaxResult remove(@PathVariable String[] dsCodes) {
         return toAjax(mdDataSetService.deleteMdDataSetByDsCodes(dsCodes));
     }
+
+    @Autowired
+    private IMdDataSetApiService setApiService;
+    @Autowired
+    private IMdDataSetFileService setFileService;
+    @Autowired
+    private IMdDataSetSqlService setSqlService;
+
+    @GetMapping("/getSetConfig")
+    public AjaxResult getSetConfig(MdDataSet dataSet) {
+
+        if (StringUtils.isNull(dataSet.getDcCode())) return error("数据集不可为空");
+        if (StringUtils.isNull(dataSet.getDcType())) return error("请配置数据集类型");
+        switch (dataSet.getDcType()) {
+            case "sql":
+                return success(setSqlService.selectMdDataSetSqlByDcCode(dataSet.getDcCode()));
+            case "api":
+                return success(setApiService.selectMdDataSetApiByDcCode(dataSet.getDcCode()));
+            case "file":
+                return success(setFileService.selectMdDataSetFileByDcCode(dataSet.getDcCode()));
+        }
+
+        return error("数据集类型异常");
+    }
+
 }
 
 

+ 93 - 0
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/controller/MdDataSetFileController.java

@@ -0,0 +1,93 @@
+package com.ruoyi.interfaces.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+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.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.interfaces.domain.MdDataSetFile;
+import com.ruoyi.interfaces.service.IMdDataSetFileService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 文件数据集Controller
+ * 
+ * @author 朱得糠
+ * @date 2025-09-02
+ */
+@RestController
+@RequestMapping("/data/set/file")
+public class MdDataSetFileController extends BaseController
+{
+    @Autowired
+    private IMdDataSetFileService mdDataSetFileService;
+
+    /**
+     * 查询文件数据集列表
+     */
+    @GetMapping("/list")
+    public TableDataInfo list(MdDataSetFile mdDataSetFile)
+    {
+        startPage();
+        List<MdDataSetFile> list = mdDataSetFileService.selectMdDataSetFileList(mdDataSetFile);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出文件数据集列表
+     */
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, MdDataSetFile mdDataSetFile)
+    {
+        List<MdDataSetFile> list = mdDataSetFileService.selectMdDataSetFileList(mdDataSetFile);
+        ExcelUtil<MdDataSetFile> util = new ExcelUtil<MdDataSetFile>(MdDataSetFile.class);
+        util.exportExcel(response, list, "文件数据集数据");
+    }
+
+    /**
+     * 获取文件数据集详细信息
+     */
+    @GetMapping(value = "/{dcCode}")
+    public AjaxResult getInfo(@PathVariable("dcCode") String dcCode)
+    {
+        return success(mdDataSetFileService.selectMdDataSetFileByDcCode(dcCode));
+    }
+
+    /**
+     * 新增文件数据集
+     */
+    @PostMapping
+    public AjaxResult add(@RequestBody MdDataSetFile mdDataSetFile)
+    {
+        mdDataSetFileService.deleteMdDataSetFileByDcCode(mdDataSetFile.getDcCode());
+        return toAjax(mdDataSetFileService.insertMdDataSetFile(mdDataSetFile));
+    }
+
+    /**
+     * 修改文件数据集
+     */
+    @PutMapping
+    public AjaxResult edit(@RequestBody MdDataSetFile mdDataSetFile)
+    {
+        return toAjax(mdDataSetFileService.updateMdDataSetFile(mdDataSetFile));
+    }
+
+    /**
+     * 删除文件数据集
+     */
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(mdDataSetFileService.deleteMdDataSetFileByIds(ids));
+    }
+}

+ 113 - 0
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/controller/MdDataSetParamController.java

@@ -0,0 +1,113 @@
+package com.ruoyi.interfaces.controller;
+
+import java.util.List;
+import java.util.stream.Collectors;
+import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.common.utils.StringUtils;
+import groovyjarjarpicocli.CommandLine;
+import org.apache.commons.collections4.CollectionUtils;
+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.MdDataSetParam;
+import com.ruoyi.interfaces.service.IMdDataSetParamService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 数据集参数Controller
+ * 
+ * @author 朱得糠
+ * @date 2025-09-03
+ */
+@RestController
+@RequestMapping("/data/set/param")
+public class MdDataSetParamController extends BaseController
+{
+    @Autowired
+    private IMdDataSetParamService mdDataSetParamService;
+
+    /**
+     * 查询数据集参数列表
+     */
+    @GetMapping("/list")
+    public AjaxResult list(MdDataSetParam mdDataSetParam)
+    {
+        List<MdDataSetParam> list = mdDataSetParamService.selectMdDataSetParamList(mdDataSetParam);
+        return success(list);
+    }
+
+    /**
+     * 导出数据集参数列表
+     */
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, MdDataSetParam mdDataSetParam)
+    {
+        List<MdDataSetParam> list = mdDataSetParamService.selectMdDataSetParamList(mdDataSetParam);
+        ExcelUtil<MdDataSetParam> util = new ExcelUtil<MdDataSetParam>(MdDataSetParam.class);
+        util.exportExcel(response, list, "数据集参数数据");
+    }
+
+    /**
+     * 获取数据集参数详细信息
+     */
+    @GetMapping(value = "/{dcCode}")
+    public AjaxResult getInfo(@PathVariable("dcCode") String dcCode)
+    {
+        return success(mdDataSetParamService.selectMdDataSetParamByDcCode(dcCode));
+    }
+
+    /**
+     * 新增数据集参数
+     */
+    @PostMapping
+    public AjaxResult add(@RequestBody MdDataSetParam mdDataSetParam)
+    {
+        return toAjax(mdDataSetParamService.insertMdDataSetParam(mdDataSetParam));
+    }
+
+    @PostMapping("/addList")
+    public AjaxResult addList(@RequestBody List<MdDataSetParam> list)
+    {
+        List<MdDataSetParam> collect = list.stream().
+                filter(p -> StringUtils.isNotNull(p.getParamCode()))
+                .filter(p -> StringUtils.isNotNull(p.getDcCode()))
+                .filter(p -> StringUtils.isNotNull(p.getParamType())).collect(Collectors.toList());
+        if (StringUtils.isEmpty(list)) return error();
+        mdDataSetParamService.deleteMdDataSetParamByDcCode(list.get(0).getDcCode());
+        for (int i = 0; i < list.size(); i++) {
+            list.get(i).setSort(i);
+        }
+        list.forEach(mdDataSetParamService::insertMdDataSetParam);
+        return success();
+    }
+    /**
+     * 修改数据集参数
+     */
+    @PutMapping
+    public AjaxResult edit(@RequestBody MdDataSetParam mdDataSetParam)
+    {
+        return toAjax(mdDataSetParamService.updateMdDataSetParam(mdDataSetParam));
+    }
+
+    /**
+     * 删除数据集参数
+     */
+	@DeleteMapping("/{dcCodes}")
+    public AjaxResult remove(@PathVariable String[] dcCodes)
+    {
+        return toAjax(mdDataSetParamService.deleteMdDataSetParamByDcCodes(dcCodes));
+    }
+}

+ 97 - 0
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/controller/MdDataSetSqlController.java

@@ -0,0 +1,97 @@
+package com.ruoyi.interfaces.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+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.MdDataSetSql;
+import com.ruoyi.interfaces.service.IMdDataSetSqlService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * sql数据集Controller
+ * 
+ * @author 朱得糠
+ * @date 2025-09-02
+ */
+@RestController
+@RequestMapping("/data/set/sql")
+public class MdDataSetSqlController extends BaseController
+{
+    @Autowired
+    private IMdDataSetSqlService mdDataSetSqlService;
+
+    /**
+     * 查询sql数据集列表
+     */
+    @GetMapping("/list")
+    public TableDataInfo list(MdDataSetSql mdDataSetSql)
+    {
+        startPage();
+        List<MdDataSetSql> list = mdDataSetSqlService.selectMdDataSetSqlList(mdDataSetSql);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出sql数据集列表
+     */
+    @Log(title = "sql数据集", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, MdDataSetSql mdDataSetSql)
+    {
+        List<MdDataSetSql> list = mdDataSetSqlService.selectMdDataSetSqlList(mdDataSetSql);
+        ExcelUtil<MdDataSetSql> util = new ExcelUtil<MdDataSetSql>(MdDataSetSql.class);
+        util.exportExcel(response, list, "sql数据集数据");
+    }
+
+    /**
+     * 获取sql数据集详细信息
+     */
+    @GetMapping(value = "/{dcCode}")
+    public AjaxResult getInfo(@PathVariable("dcCode") String dcCode)
+    {
+
+        return success(mdDataSetSqlService.selectMdDataSetSqlByDcCode(dcCode));
+    }
+
+    /**
+     * 新增sql数据集
+     */
+    @PostMapping
+    public AjaxResult add(@RequestBody MdDataSetSql mdDataSetSql)
+    {
+        mdDataSetSqlService.deleteMdDataSetSqlByDcCode(mdDataSetSql.getDcCode());
+        return toAjax(mdDataSetSqlService.insertMdDataSetSql(mdDataSetSql));
+    }
+
+    /**
+     * 修改sql数据集
+     */
+    @PutMapping
+    public AjaxResult edit(@RequestBody MdDataSetSql mdDataSetSql)
+    {
+        return toAjax(mdDataSetSqlService.updateMdDataSetSql(mdDataSetSql));
+    }
+
+    /**
+     * 删除sql数据集
+     */
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(mdDataSetSqlService.deleteMdDataSetSqlByIds(ids));
+    }
+}

+ 8 - 1
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/controller/PtServiceController.java

@@ -3,6 +3,7 @@ package com.ruoyi.interfaces.controller;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
+import com.ruoyi.common.constant.HttpStatus;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.page.TableDataInfo;
@@ -55,6 +56,7 @@ public class PtServiceController extends BaseController {
         if (ptService.getViewNum() == null) {  //viewNum不能为空
             ptService.setViewNum(0);
         }
+        ptService.setAudit("0");
         boolean save = ptServiceService.save(ptService);
         if (save) {
             return AjaxResult.success(ptService);
@@ -189,8 +191,13 @@ public class PtServiceController extends BaseController {
         PtServiceLog ptServiceLog = new PtServiceLog(ptService);
         Date nowDate = DateUtils.getNowDate();
         ptServiceLog.setTm(nowDate);
+        String s = "";
+        try {
 
-        String s = ptServiceService.testRun(ptService);
+         s = ptServiceService.testRun(ptService);
+        } catch (Exception e){
+            return new  AjaxResult(HttpStatus.HTTP_ERROR,s);
+        }
 
         ptServiceLog.setExecTm(
                 DateUtils.getNowDate().getTime() - nowDate.getTime());

+ 68 - 7
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/domain/MdDataField.java

@@ -8,21 +8,34 @@ import com.ruoyi.common.core.domain.BaseEntity;
 /**
  * 数据集字段对象 md_data_field
  *
- * @author ruoyi
- * @date 2025-07-30
+ * @author 朱得糠
+ * @date 2025-09-04
  */
 public class MdDataField extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
+    /**
+     * ID
+     */
+    @Excel(name = "ID")
+    private Long id;
+
+    /**
+     * 父id
+     */
+    @Excel(name = "父id")
+    private Long parentId;
+
     /**
      * 数据集标识
      */
+    @Excel(name = "数据集标识")
     private String dcCode;
 
-
     /**
      * 字段编码
      */
+    @Excel(name = "字段编码")
     private String fieldCode;
 
     /**
@@ -83,7 +96,7 @@ public class MdDataField extends BaseEntity {
      * 字段顺序
      */
     @Excel(name = "字段顺序")
-    private Long fieldOrder;
+    private Integer fieldOrder;
 
     /**
      * 字段扩展
@@ -127,6 +140,34 @@ public class MdDataField extends BaseEntity {
     @Excel(name = "字段字典")
     private String fieldDict;
 
+    /**
+     * 是否数组
+     */
+    @Excel(name = "是否数组")
+    private String isArray;
+
+    /**
+     * 数组坐标
+     */
+    @Excel(name = "数组坐标")
+    private Integer arrayIndex;
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setParentId(Long parentId) {
+        this.parentId = parentId;
+    }
+
+    public Long getParentId() {
+        return parentId;
+    }
+
     public void setDcCode(String dcCode) {
         this.dcCode = dcCode;
     }
@@ -215,11 +256,11 @@ public class MdDataField extends BaseEntity {
         return fieldStatus;
     }
 
-    public void setFieldOrder(Long fieldOrder) {
+    public void setFieldOrder(Integer fieldOrder) {
         this.fieldOrder = fieldOrder;
     }
 
-    public Long getFieldOrder() {
+    public Integer getFieldOrder() {
         return fieldOrder;
     }
 
@@ -279,10 +320,28 @@ public class MdDataField extends BaseEntity {
         return fieldDict;
     }
 
+    public void setIsArray(String isArray) {
+        this.isArray = isArray;
+    }
+
+    public String getIsArray() {
+        return isArray;
+    }
+
+    public void setArrayIndex(Integer arrayIndex) {
+        this.arrayIndex = arrayIndex;
+    }
+
+    public Integer getArrayIndex() {
+        return arrayIndex;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
-                .append("dsCode", getDcCode())
+                .append("id", getId())
+                .append("parentId", getParentId())
+                .append("dcCode", getDcCode())
                 .append("fieldCode", getFieldCode())
                 .append("fieldName", getFieldName())
                 .append("fieldType", getFieldType())
@@ -301,6 +360,8 @@ public class MdDataField extends BaseEntity {
                 .append("fieldInputDefault", getFieldInputDefault())
                 .append("fieldViewType", getFieldViewType())
                 .append("fieldDict", getFieldDict())
+                .append("isArray", getIsArray())
+                .append("arrayIndex", getArrayIndex())
                 .toString();
     }
 }

+ 80 - 0
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/domain/MdDataSetApi.java

@@ -0,0 +1,80 @@
+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;
+
+/**
+ * api数据集对象 md_data_set_api
+ * 
+ * @author 朱得糠
+ * @date 2025-09-02
+ */
+public class MdDataSetApi extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** ID */
+    @Excel(name = "ID")
+    private Long id;
+
+    /** 数据集编码 */
+    @Excel(name = "数据集编码")
+    private String dcCode;
+
+    /** 服务id */
+    @Excel(name = "服务id")
+    private String srvId;
+
+    /** 参数 */
+    @Excel(name = "参数")
+    private String pars;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setDcCode(String dcCode) 
+    {
+        this.dcCode = dcCode;
+    }
+
+    public String getDcCode() 
+    {
+        return dcCode;
+    }
+    public void setSrvId(String srvId) 
+    {
+        this.srvId = srvId;
+    }
+
+    public String getSrvId() 
+    {
+        return srvId;
+    }
+    public void setPars(String pars) 
+    {
+        this.pars = pars;
+    }
+
+    public String getPars() 
+    {
+        return pars;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("dcCode", getDcCode())
+            .append("srvId", getSrvId())
+            .append("pars", getPars())
+            .toString();
+    }
+}

+ 103 - 0
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/domain/MdDataSetFile.java

@@ -0,0 +1,103 @@
+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_file
+ * 
+ * @author 朱得糠
+ * @date 2025-09-02
+ */
+public class MdDataSetFile extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long id;
+
+    /** 数据集id */
+    @Excel(name = "数据集id")
+    private String dcCode;
+
+    /** 文件路径 */
+    @Excel(name = "文件路径")
+    private String filePath;
+    private String originalFilename;
+
+    /** 文件类型 */
+    @Excel(name = "文件类型")
+    private String fileType;
+
+    /** 参数列表 */
+    @Excel(name = "参数列表")
+    private String pars;
+
+    public String getOriginalFilename() {
+        return originalFilename;
+    }
+
+    public void setOriginalFilename(String originalFilename) {
+        this.originalFilename = originalFilename;
+    }
+
+    public void setId(Long id)
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setDcCode(String dcCode) 
+    {
+        this.dcCode = dcCode;
+    }
+
+    public String getDcCode() 
+    {
+        return dcCode;
+    }
+    public void setFilePath(String filePath) 
+    {
+        this.filePath = filePath;
+    }
+
+    public String getFilePath() 
+    {
+        return filePath;
+    }
+    public void setFileType(String fileType) 
+    {
+        this.fileType = fileType;
+    }
+
+    public String getFileType() 
+    {
+        return fileType;
+    }
+    public void setPars(String pars) 
+    {
+        this.pars = pars;
+    }
+
+    public String getPars() 
+    {
+        return pars;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("dcCode", getDcCode())
+            .append("filePath", getFilePath())
+            .append("fileType", getFileType())
+            .append("pars", getPars())
+            .toString();
+    }
+}

+ 122 - 0
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/domain/MdDataSetParam.java

@@ -0,0 +1,122 @@
+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_param
+ * 
+ * @author 朱得糠
+ * @date 2025-09-03
+ */
+public class MdDataSetParam extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 数据集代码 */
+    @Excel(name = "数据集代码")
+    private String dcCode;
+
+    /** 参数编码 */
+    @Excel(name = "参数编码")
+    private String paramCode;
+
+    /** 参数名称 */
+    @Excel(name = "参数名称")
+    private String paramName;
+
+    /** 参数类型 */
+    @Excel(name = "参数类型")
+    private String paramType;
+
+    /** 参数示例值 */
+    @Excel(name = "参数示例值")
+    private String paramValue;
+
+    /** 参数说明 */
+    @Excel(name = "参数说明")
+    private String paramNote;
+
+    /** 排序 */
+    @Excel(name = "排序")
+    private Integer sort;
+
+    public void setDcCode(String dcCode) 
+    {
+        this.dcCode = dcCode;
+    }
+
+    public String getDcCode() 
+    {
+        return dcCode;
+    }
+    public void setParamCode(String paramCode) 
+    {
+        this.paramCode = paramCode;
+    }
+
+    public String getParamCode() 
+    {
+        return paramCode;
+    }
+    public void setParamName(String paramName) 
+    {
+        this.paramName = paramName;
+    }
+
+    public String getParamName() 
+    {
+        return paramName;
+    }
+    public void setParamType(String paramType) 
+    {
+        this.paramType = paramType;
+    }
+
+    public String getParamType() 
+    {
+        return paramType;
+    }
+    public void setParamValue(String paramValue) 
+    {
+        this.paramValue = paramValue;
+    }
+
+    public String getParamValue() 
+    {
+        return paramValue;
+    }
+    public void setParamNote(String paramNote) 
+    {
+        this.paramNote = paramNote;
+    }
+
+    public String getParamNote() 
+    {
+        return paramNote;
+    }
+    public void setSort(Integer sort)
+    {
+        this.sort = sort;
+    }
+
+    public Integer getSort()
+    {
+        return sort;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("dcCode", getDcCode())
+            .append("paramCode", getParamCode())
+            .append("paramName", getParamName())
+            .append("paramType", getParamType())
+            .append("paramValue", getParamValue())
+            .append("paramNote", getParamNote())
+            .append("sort", getSort())
+            .toString();
+    }
+}

+ 95 - 0
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/domain/MdDataSetSql.java

@@ -0,0 +1,95 @@
+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;
+
+/**
+ * sql数据集对象 md_data_set_sql
+ * 
+ * @author 朱得糠
+ * @date 2025-09-02
+ */
+public class MdDataSetSql extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Long id;
+
+    /** 数据集id */
+    @Excel(name = "数据集id")
+    private String dcCode;
+    /**
+     * 数据源id
+     */
+    private String dsCode;
+
+    /** 运行sql */
+    @Excel(name = "运行sql")
+    private String runSql;
+
+    /** 参数列表 多个参数用,分割 */
+    @Excel(name = "参数列表 多个参数用,分割")
+    private String pars;
+
+    public MdDataSetSql() {
+    }
+
+    public String getDsCode() {
+        return dsCode;
+    }
+
+    public void setDsCode(String dsCode) {
+        this.dsCode = dsCode;
+    }
+
+    public void setId(Long id)
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setDcCode(String dcCode) 
+    {
+        this.dcCode = dcCode;
+    }
+
+    public String getDcCode() 
+    {
+        return dcCode;
+    }
+    public void setRunSql(String runSql) 
+    {
+        this.runSql = runSql;
+    }
+
+    public String getRunSql() 
+    {
+        return runSql;
+    }
+    public void setPars(String pars) 
+    {
+        this.pars = pars;
+    }
+
+    public String getPars() 
+    {
+        return pars;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("dcCode", getDcCode())
+            .append("runSql", getRunSql())
+            .append("pars", getPars())
+            .toString();
+    }
+}

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

@@ -9,8 +9,8 @@ import com.ruoyi.interfaces.domain.MdDataField;
 /**
  * 数据集字段Mapper接口
  * 
- * @author ruoyi
- * @date 2025-07-30
+ * @author 朱得糠
+ * @date 2025-09-04
  */
 @DataSource(DataSourceType.SLAVE)
 public interface MdDataFieldMapper 
@@ -18,10 +18,10 @@ public interface MdDataFieldMapper
     /**
      * 查询数据集字段
      * 
-     * @param dsCode 数据集字段主键
+     * @param id 数据集字段主键
      * @return 数据集字段
      */
-    public List<MdDataField> selectMdDataFieldByDsCode(String dsCode);
+    public MdDataField selectMdDataFieldById(Long id);
 
     /**
      * 查询数据集字段列表
@@ -50,18 +50,18 @@ public interface MdDataFieldMapper
     /**
      * 删除数据集字段
      * 
-     * @param dsCode 数据集字段主键
+     * @param id 数据集字段主键
      * @return 结果
      */
-    public int deleteMdDataFieldByDsCode(String dsCode);
+    public int deleteMdDataFieldById(Long id);
 
     /**
      * 批量删除数据集字段
      * 
-     * @param dsCodes 需要删除的数据主键集合
+     * @param ids 需要删除的数据主键集合
      * @return 结果
      */
-    public int deleteMdDataFieldByDsCodes(String[] dsCodes);
+    public int deleteMdDataFieldByIds(Long[] ids);
 
-    int deleteMdDataFieldOne(MdDataField mdDataField);
+    int deleteMdDataFieldByDcCode(String dcCode);
 }

+ 65 - 0
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/mapper/MdDataSetApiMapper.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.MdDataSetApi;
+
+/**
+ * api数据集Mapper接口
+ * 
+ * @author 朱得糠
+ * @date 2025-09-02
+ */
+@DataSource(DataSourceType.SLAVE)
+public interface MdDataSetApiMapper 
+{
+    /**
+     * 查询api数据集
+     * 
+     * @param dcCode api数据集主键
+     * @return api数据集
+     */
+    public MdDataSetApi selectMdDataSetApiByDcCode(String dcCode);
+
+    /**
+     * 查询api数据集列表
+     * 
+     * @param mdDataSetApi api数据集
+     * @return api数据集集合
+     */
+    public List<MdDataSetApi> selectMdDataSetApiList(MdDataSetApi mdDataSetApi);
+
+    /**
+     * 新增api数据集
+     * 
+     * @param mdDataSetApi api数据集
+     * @return 结果
+     */
+    public int insertMdDataSetApi(MdDataSetApi mdDataSetApi);
+
+    /**
+     * 修改api数据集
+     * 
+     * @param mdDataSetApi api数据集
+     * @return 结果
+     */
+    public int updateMdDataSetApi(MdDataSetApi mdDataSetApi);
+
+    /**
+     * 删除api数据集
+     * 
+     * @param id api数据集主键
+     * @return 结果
+     */
+    public int deleteMdDataSetApiByDcCode(String id);
+
+    /**
+     * 批量删除api数据集
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteMdDataSetApiByIds(Long[] ids);
+}

+ 67 - 0
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/mapper/MdDataSetFileMapper.java

@@ -0,0 +1,67 @@
+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.MdDataSetFile;
+
+/**
+ * 文件数据集Mapper接口
+ * 
+ * @author 朱得糠
+ * @date 2025-09-02
+ */
+@DataSource(DataSourceType.SLAVE)
+public interface MdDataSetFileMapper 
+{
+    /**
+     * 查询文件数据集
+     * 
+     * @param id 文件数据集主键
+     * @return 文件数据集
+     */
+    public MdDataSetFile selectMdDataSetFileByDcCode(String id);
+
+    /**
+     * 查询文件数据集列表
+     * 
+     * @param mdDataSetFile 文件数据集
+     * @return 文件数据集集合
+     */
+    public List<MdDataSetFile> selectMdDataSetFileList(MdDataSetFile mdDataSetFile);
+
+    /**
+     * 新增文件数据集
+     * 
+     * @param mdDataSetFile 文件数据集
+     * @return 结果
+     */
+    public int insertMdDataSetFile(MdDataSetFile mdDataSetFile);
+
+    /**
+     * 修改文件数据集
+     * 
+     * @param mdDataSetFile 文件数据集
+     * @return 结果
+     */
+    public int updateMdDataSetFile(MdDataSetFile mdDataSetFile);
+
+    /**
+     * 删除文件数据集
+     * 
+     * @param id 文件数据集主键
+     * @return 结果
+     */
+    public int deleteMdDataSetFileById(Long id);
+
+    /**
+     * 批量删除文件数据集
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteMdDataSetFileByIds(Long[] ids);
+
+    int deleteMdDataSetFileByDcCode(String dcCode);
+}

+ 65 - 0
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/mapper/MdDataSetParamMapper.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.MdDataSetParam;
+
+/**
+ * 数据集参数Mapper接口
+ * 
+ * @author 朱得糠
+ * @date 2025-09-03
+ */
+@DataSource(DataSourceType.SLAVE)
+public interface MdDataSetParamMapper 
+{
+    /**
+     * 查询数据集参数
+     * 
+     * @param dcCode 数据集参数主键
+     * @return 数据集参数
+     */
+    public MdDataSetParam selectMdDataSetParamByDcCode(String dcCode);
+
+    /**
+     * 查询数据集参数列表
+     * 
+     * @param mdDataSetParam 数据集参数
+     * @return 数据集参数集合
+     */
+    public List<MdDataSetParam> selectMdDataSetParamList(MdDataSetParam mdDataSetParam);
+
+    /**
+     * 新增数据集参数
+     * 
+     * @param mdDataSetParam 数据集参数
+     * @return 结果
+     */
+    public int insertMdDataSetParam(MdDataSetParam mdDataSetParam);
+
+    /**
+     * 修改数据集参数
+     * 
+     * @param mdDataSetParam 数据集参数
+     * @return 结果
+     */
+    public int updateMdDataSetParam(MdDataSetParam mdDataSetParam);
+
+    /**
+     * 删除数据集参数
+     * 
+     * @param dcCode 数据集参数主键
+     * @return 结果
+     */
+    public int deleteMdDataSetParamByDcCode(String dcCode);
+
+    /**
+     * 批量删除数据集参数
+     * 
+     * @param dcCodes 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteMdDataSetParamByDcCodes(String[] dcCodes);
+}

+ 67 - 0
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/mapper/MdDataSetSqlMapper.java

@@ -0,0 +1,67 @@
+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.MdDataSetSql;
+
+/**
+ * sql数据集Mapper接口
+ * 
+ * @author 朱得糠
+ * @date 2025-09-02
+ */
+@DataSource(DataSourceType.SLAVE)
+public interface MdDataSetSqlMapper 
+{
+    /**
+     * 查询sql数据集
+     * 
+     * @param id sql数据集主键
+     * @return sql数据集
+     */
+    public MdDataSetSql selectMdDataSetSqlByDcCode(String dcCode);
+
+    /**
+     * 查询sql数据集列表
+     * 
+     * @param mdDataSetSql sql数据集
+     * @return sql数据集集合
+     */
+    public List<MdDataSetSql> selectMdDataSetSqlList(MdDataSetSql mdDataSetSql);
+
+    /**
+     * 新增sql数据集
+     * 
+     * @param mdDataSetSql sql数据集
+     * @return 结果
+     */
+    public int insertMdDataSetSql(MdDataSetSql mdDataSetSql);
+
+    /**
+     * 修改sql数据集
+     * 
+     * @param mdDataSetSql sql数据集
+     * @return 结果
+     */
+    public int updateMdDataSetSql(MdDataSetSql mdDataSetSql);
+
+    /**
+     * 删除sql数据集
+     * 
+     * @param id sql数据集主键
+     * @return 结果
+     */
+    public int deleteMdDataSetSqlById(Long id);
+
+    /**
+     * 批量删除sql数据集
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteMdDataSetSqlByIds(Long[] ids);
+
+    int deleteMdDataSetSqlByDcCode(String dcCode);
+}

+ 1 - 1
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/mapper/PtServiceMapper.java

@@ -66,7 +66,7 @@ public interface PtServiceMapper extends BaseMapper<PtService> {
 
     List<PtService> listOfTmTop20();
 
-    List<MdModelInfoVo> selectModelService(MdModelInfoVo par);
+    MdModelInfoVo selectModelService(MdModelInfoVo par);
 
     int audit(@Param("srvIds") String[] srvIds, @Param("audit") String audit);
 

+ 11 - 9
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/service/IMdDataFieldService.java

@@ -6,18 +6,18 @@ import com.ruoyi.interfaces.domain.MdDataField;
 /**
  * 数据集字段Service接口
  * 
- * @author ruoyi
- * @date 2025-07-30
+ * @author 朱得糠
+ * @date 2025-09-04
  */
 public interface IMdDataFieldService 
 {
     /**
      * 查询数据集字段
      * 
-     * @param dsCode 数据集字段主键
+     * @param id 数据集字段主键
      * @return 数据集字段
      */
-    public List<MdDataField> selectMdDataFieldByDsCode(String dsCode);
+    public MdDataField selectMdDataFieldById(Long id);
 
     /**
      * 查询数据集字段列表
@@ -46,18 +46,20 @@ public interface IMdDataFieldService
     /**
      * 批量删除数据集字段
      * 
-     * @param dsCodes 需要删除的数据集字段主键集合
+     * @param ids 需要删除的数据集字段主键集合
      * @return 结果
      */
-    public int deleteMdDataFieldByDsCodes(String[] dsCodes);
+    public int deleteMdDataFieldByIds(Long[] ids);
 
     /**
      * 删除数据集字段信息
      * 
-     * @param dsCode 数据集字段主键
+     * @param id 数据集字段主键
      * @return 结果
      */
-    public int deleteMdDataFieldByDsCode(String dsCode);
+    public int deleteMdDataFieldById(Long id);
 
-    int deleteMdDataFieldOne(MdDataField mdDataField);
+    int deleteMdDataFieldByDcCode(String dcCode);
+
+    List<MdDataField> selectMdDataFieldByDsCode(String dcCode);
 }

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

@@ -0,0 +1,61 @@
+package com.ruoyi.interfaces.service;
+
+import java.util.List;
+import com.ruoyi.interfaces.domain.MdDataSetApi;
+
+/**
+ * api数据集Service接口
+ * 
+ * @author 朱得糠
+ * @date 2025-09-02
+ */
+public interface IMdDataSetApiService 
+{
+    /**
+     * 查询api数据集
+     * 
+     * @param id api数据集主键
+     * @return api数据集
+     */
+    public MdDataSetApi selectMdDataSetApiByDcCode(String dcCode);
+
+    /**
+     * 查询api数据集列表
+     * 
+     * @param mdDataSetApi api数据集
+     * @return api数据集集合
+     */
+    public List<MdDataSetApi> selectMdDataSetApiList(MdDataSetApi mdDataSetApi);
+
+    /**
+     * 新增api数据集
+     * 
+     * @param mdDataSetApi api数据集
+     * @return 结果
+     */
+    public int insertMdDataSetApi(MdDataSetApi mdDataSetApi);
+
+    /**
+     * 修改api数据集
+     * 
+     * @param mdDataSetApi api数据集
+     * @return 结果
+     */
+    public int updateMdDataSetApi(MdDataSetApi mdDataSetApi);
+
+    /**
+     * 批量删除api数据集
+     * 
+     * @param ids 需要删除的api数据集主键集合
+     * @return 结果
+     */
+    public int deleteMdDataSetApiByIds(Long[] ids);
+
+    /**
+     * 删除api数据集信息
+     * 
+     * @param id api数据集主键
+     * @return 结果
+     */
+    public int deleteMdDataSetApiByDcCode(String id);
+}

+ 63 - 0
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/service/IMdDataSetFileService.java

@@ -0,0 +1,63 @@
+package com.ruoyi.interfaces.service;
+
+import java.util.List;
+import com.ruoyi.interfaces.domain.MdDataSetFile;
+
+/**
+ * 文件数据集Service接口
+ * 
+ * @author 朱得糠
+ * @date 2025-09-02
+ */
+public interface IMdDataSetFileService 
+{
+    /**
+     * 查询文件数据集
+     * 
+     * @param id 文件数据集主键
+     * @return 文件数据集
+     */
+    public MdDataSetFile selectMdDataSetFileByDcCode(String id);
+
+    /**
+     * 查询文件数据集列表
+     * 
+     * @param mdDataSetFile 文件数据集
+     * @return 文件数据集集合
+     */
+    public List<MdDataSetFile> selectMdDataSetFileList(MdDataSetFile mdDataSetFile);
+
+    /**
+     * 新增文件数据集
+     * 
+     * @param mdDataSetFile 文件数据集
+     * @return 结果
+     */
+    public int insertMdDataSetFile(MdDataSetFile mdDataSetFile);
+
+    /**
+     * 修改文件数据集
+     * 
+     * @param mdDataSetFile 文件数据集
+     * @return 结果
+     */
+    public int updateMdDataSetFile(MdDataSetFile mdDataSetFile);
+
+    /**
+     * 批量删除文件数据集
+     * 
+     * @param ids 需要删除的文件数据集主键集合
+     * @return 结果
+     */
+    public int deleteMdDataSetFileByIds(Long[] ids);
+
+    /**
+     * 删除文件数据集信息
+     * 
+     * @param id 文件数据集主键
+     * @return 结果
+     */
+    public int deleteMdDataSetFileById(Long id);
+
+    int deleteMdDataSetFileByDcCode(String dcCode);
+}

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

@@ -0,0 +1,61 @@
+package com.ruoyi.interfaces.service;
+
+import java.util.List;
+import com.ruoyi.interfaces.domain.MdDataSetParam;
+
+/**
+ * 数据集参数Service接口
+ * 
+ * @author 朱得糠
+ * @date 2025-09-03
+ */
+public interface IMdDataSetParamService 
+{
+    /**
+     * 查询数据集参数
+     * 
+     * @param dcCode 数据集参数主键
+     * @return 数据集参数
+     */
+    public MdDataSetParam selectMdDataSetParamByDcCode(String dcCode);
+
+    /**
+     * 查询数据集参数列表
+     * 
+     * @param mdDataSetParam 数据集参数
+     * @return 数据集参数集合
+     */
+    public List<MdDataSetParam> selectMdDataSetParamList(MdDataSetParam mdDataSetParam);
+
+    /**
+     * 新增数据集参数
+     * 
+     * @param mdDataSetParam 数据集参数
+     * @return 结果
+     */
+    public int insertMdDataSetParam(MdDataSetParam mdDataSetParam);
+
+    /**
+     * 修改数据集参数
+     * 
+     * @param mdDataSetParam 数据集参数
+     * @return 结果
+     */
+    public int updateMdDataSetParam(MdDataSetParam mdDataSetParam);
+
+    /**
+     * 批量删除数据集参数
+     * 
+     * @param dcCodes 需要删除的数据集参数主键集合
+     * @return 结果
+     */
+    public int deleteMdDataSetParamByDcCodes(String[] dcCodes);
+
+    /**
+     * 删除数据集参数信息
+     * 
+     * @param dcCode 数据集参数主键
+     * @return 结果
+     */
+    public int deleteMdDataSetParamByDcCode(String dcCode);
+}

+ 64 - 0
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/service/IMdDataSetSqlService.java

@@ -0,0 +1,64 @@
+package com.ruoyi.interfaces.service;
+
+import java.util.List;
+import com.ruoyi.interfaces.domain.MdDataSetSql;
+
+/**
+ * sql数据集Service接口
+ * 
+ * @author 朱得糠
+ * @date 2025-09-02
+ */
+public interface IMdDataSetSqlService 
+{
+    /**
+     * 查询sql数据集
+     * 
+     * @param id sql数据集主键
+     * @return sql数据集
+     */
+    public MdDataSetSql selectMdDataSetSqlByDcCode(String id);
+
+    /**
+     * 查询sql数据集列表
+     * 
+     * @param mdDataSetSql sql数据集
+     * @return sql数据集集合
+     */
+    public List<MdDataSetSql> selectMdDataSetSqlList(MdDataSetSql mdDataSetSql);
+
+    /**
+     * 新增sql数据集
+     * 
+     * @param mdDataSetSql sql数据集
+     * @return 结果
+     */
+    public int insertMdDataSetSql(MdDataSetSql mdDataSetSql);
+
+    /**
+     * 修改sql数据集
+     * 
+     * @param mdDataSetSql sql数据集
+     * @return 结果
+     */
+    public int updateMdDataSetSql(MdDataSetSql mdDataSetSql);
+
+    /**
+     * 批量删除sql数据集
+     * 
+     * @param ids 需要删除的sql数据集主键集合
+     * @return 结果
+     */
+    public int deleteMdDataSetSqlByIds(Long[] ids);
+
+    /**
+     * 删除sql数据集信息
+     * 
+     * @param id sql数据集主键
+     * @return 结果
+     */
+    public int deleteMdDataSetSqlById(Long id);
+
+    int deleteMdDataSetSqlByDcCode(String dcCode);
+
+}

+ 1 - 1
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/service/PtServiceService.java

@@ -48,7 +48,7 @@ public interface PtServiceService extends IService<PtService> {
 
     PtService get(String srvId);
 
-    List<MdModelInfoVo> modelService(MdModelInfoVo par);
+    MdModelInfoVo modelService(MdModelInfoVo par);
 
     List<PtService> selectAllColumns(PtService ptService);
 

+ 20 - 13
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/service/impl/MdDataFieldServiceImpl.java

@@ -10,8 +10,8 @@ import com.ruoyi.interfaces.service.IMdDataFieldService;
 /**
  * 数据集字段Service业务层处理
  * 
- * @author ruoyi
- * @date 2025-07-30
+ * @author 朱得糠
+ * @date 2025-09-04
  */
 @Service
 public class MdDataFieldServiceImpl implements IMdDataFieldService 
@@ -22,13 +22,13 @@ public class MdDataFieldServiceImpl implements IMdDataFieldService
     /**
      * 查询数据集字段
      * 
-     * @param dsCode 数据集字段主键
+     * @param id 数据集字段主键
      * @return 数据集字段
      */
     @Override
-    public List<MdDataField> selectMdDataFieldByDsCode(String dsCode)
+    public MdDataField selectMdDataFieldById(Long id)
     {
-        return mdDataFieldMapper.selectMdDataFieldByDsCode(dsCode);
+        return mdDataFieldMapper.selectMdDataFieldById(id);
     }
 
     /**
@@ -70,29 +70,36 @@ public class MdDataFieldServiceImpl implements IMdDataFieldService
     /**
      * 批量删除数据集字段
      * 
-     * @param dsCodes 需要删除的数据集字段主键
+     * @param ids 需要删除的数据集字段主键
      * @return 结果
      */
     @Override
-    public int deleteMdDataFieldByDsCodes(String[] dsCodes)
+    public int deleteMdDataFieldByIds(Long[] ids)
     {
-        return mdDataFieldMapper.deleteMdDataFieldByDsCodes(dsCodes);
+        return mdDataFieldMapper.deleteMdDataFieldByIds(ids);
     }
 
     /**
      * 删除数据集字段信息
      * 
-     * @param dsCode 数据集字段主键
+     * @param id 数据集字段主键
      * @return 结果
      */
     @Override
-    public int deleteMdDataFieldByDsCode(String dsCode)
+    public int deleteMdDataFieldById(Long id)
     {
-        return mdDataFieldMapper.deleteMdDataFieldByDsCode(dsCode);
+        return mdDataFieldMapper.deleteMdDataFieldById(id);
     }
 
     @Override
-    public int deleteMdDataFieldOne(MdDataField mdDataField) {
-        return mdDataFieldMapper.deleteMdDataFieldOne(mdDataField);
+    public int deleteMdDataFieldByDcCode(String dcCode) {
+        return mdDataFieldMapper.deleteMdDataFieldByDcCode(dcCode);
+    }
+
+    @Override
+    public List<MdDataField> selectMdDataFieldByDsCode(String dcCode) {
+        MdDataField mdDataField = new MdDataField();
+        mdDataField.setDcCode(dcCode);
+        return mdDataFieldMapper.selectMdDataFieldList(mdDataField);
     }
 }

+ 93 - 0
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/service/impl/MdDataSetApiServiceImpl.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.MdDataSetApiMapper;
+import com.ruoyi.interfaces.domain.MdDataSetApi;
+import com.ruoyi.interfaces.service.IMdDataSetApiService;
+
+/**
+ * api数据集Service业务层处理
+ * 
+ * @author 朱得糠
+ * @date 2025-09-02
+ */
+@Service
+public class MdDataSetApiServiceImpl implements IMdDataSetApiService 
+{
+    @Autowired
+    private MdDataSetApiMapper mdDataSetApiMapper;
+
+    /**
+     * 查询api数据集
+     * 
+     * @param dcCode api数据集主键
+     * @return api数据集
+     */
+    @Override
+    public MdDataSetApi selectMdDataSetApiByDcCode(String dcCode)
+    {
+        return mdDataSetApiMapper.selectMdDataSetApiByDcCode(dcCode);
+    }
+
+    /**
+     * 查询api数据集列表
+     * 
+     * @param mdDataSetApi api数据集
+     * @return api数据集
+     */
+    @Override
+    public List<MdDataSetApi> selectMdDataSetApiList(MdDataSetApi mdDataSetApi)
+    {
+        return mdDataSetApiMapper.selectMdDataSetApiList(mdDataSetApi);
+    }
+
+    /**
+     * 新增api数据集
+     * 
+     * @param mdDataSetApi api数据集
+     * @return 结果
+     */
+    @Override
+    public int insertMdDataSetApi(MdDataSetApi mdDataSetApi)
+    {
+        return mdDataSetApiMapper.insertMdDataSetApi(mdDataSetApi);
+    }
+
+    /**
+     * 修改api数据集
+     * 
+     * @param mdDataSetApi api数据集
+     * @return 结果
+     */
+    @Override
+    public int updateMdDataSetApi(MdDataSetApi mdDataSetApi)
+    {
+        return mdDataSetApiMapper.updateMdDataSetApi(mdDataSetApi);
+    }
+
+    /**
+     * 批量删除api数据集
+     * 
+     * @param ids 需要删除的api数据集主键
+     * @return 结果
+     */
+    @Override
+    public int deleteMdDataSetApiByIds(Long[] ids)
+    {
+        return mdDataSetApiMapper.deleteMdDataSetApiByIds(ids);
+    }
+
+    /**
+     * 删除api数据集信息
+     * 
+     * @param id api数据集主键
+     * @return 结果
+     */
+    @Override
+    public int deleteMdDataSetApiByDcCode(String id)
+    {
+        return mdDataSetApiMapper.deleteMdDataSetApiByDcCode(id);
+    }
+}

+ 99 - 0
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/service/impl/MdDataSetFileServiceImpl.java

@@ -0,0 +1,99 @@
+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.MdDataSetFileMapper;
+import com.ruoyi.interfaces.domain.MdDataSetFile;
+import com.ruoyi.interfaces.service.IMdDataSetFileService;
+
+/**
+ * 文件数据集Service业务层处理
+ * 
+ * @author 朱得糠
+ * @date 2025-09-02
+ */
+@Service
+public class MdDataSetFileServiceImpl implements IMdDataSetFileService 
+{
+    @Autowired
+    private MdDataSetFileMapper mdDataSetFileMapper;
+
+    /**
+     * 查询文件数据集
+     * 
+     * @param id 文件数据集主键
+     * @return 文件数据集
+     */
+    @Override
+    public MdDataSetFile selectMdDataSetFileByDcCode(String id)
+    {
+        return mdDataSetFileMapper.selectMdDataSetFileByDcCode(id);
+    }
+
+    /**
+     * 查询文件数据集列表
+     * 
+     * @param mdDataSetFile 文件数据集
+     * @return 文件数据集
+     */
+    @Override
+    public List<MdDataSetFile> selectMdDataSetFileList(MdDataSetFile mdDataSetFile)
+    {
+        return mdDataSetFileMapper.selectMdDataSetFileList(mdDataSetFile);
+    }
+
+    /**
+     * 新增文件数据集
+     * 
+     * @param mdDataSetFile 文件数据集
+     * @return 结果
+     */
+    @Override
+    public int insertMdDataSetFile(MdDataSetFile mdDataSetFile)
+    {
+        return mdDataSetFileMapper.insertMdDataSetFile(mdDataSetFile);
+    }
+
+    /**
+     * 修改文件数据集
+     * 
+     * @param mdDataSetFile 文件数据集
+     * @return 结果
+     */
+    @Override
+    public int updateMdDataSetFile(MdDataSetFile mdDataSetFile)
+    {
+        return mdDataSetFileMapper.updateMdDataSetFile(mdDataSetFile);
+    }
+
+    /**
+     * 批量删除文件数据集
+     * 
+     * @param ids 需要删除的文件数据集主键
+     * @return 结果
+     */
+    @Override
+    public int deleteMdDataSetFileByIds(Long[] ids)
+    {
+        return mdDataSetFileMapper.deleteMdDataSetFileByIds(ids);
+    }
+
+    /**
+     * 删除文件数据集信息
+     * 
+     * @param id 文件数据集主键
+     * @return 结果
+     */
+    @Override
+    public int deleteMdDataSetFileById(Long id)
+    {
+        return mdDataSetFileMapper.deleteMdDataSetFileById(id);
+    }
+
+    @Override
+    public int deleteMdDataSetFileByDcCode(String dcCode) {
+
+        return mdDataSetFileMapper.deleteMdDataSetFileByDcCode(dcCode);
+    }
+}

+ 93 - 0
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/service/impl/MdDataSetParamServiceImpl.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.MdDataSetParamMapper;
+import com.ruoyi.interfaces.domain.MdDataSetParam;
+import com.ruoyi.interfaces.service.IMdDataSetParamService;
+
+/**
+ * 数据集参数Service业务层处理
+ * 
+ * @author 朱得糠
+ * @date 2025-09-03
+ */
+@Service
+public class MdDataSetParamServiceImpl implements IMdDataSetParamService 
+{
+    @Autowired
+    private MdDataSetParamMapper mdDataSetParamMapper;
+
+    /**
+     * 查询数据集参数
+     * 
+     * @param dcCode 数据集参数主键
+     * @return 数据集参数
+     */
+    @Override
+    public MdDataSetParam selectMdDataSetParamByDcCode(String dcCode)
+    {
+        return mdDataSetParamMapper.selectMdDataSetParamByDcCode(dcCode);
+    }
+
+    /**
+     * 查询数据集参数列表
+     * 
+     * @param mdDataSetParam 数据集参数
+     * @return 数据集参数
+     */
+    @Override
+    public List<MdDataSetParam> selectMdDataSetParamList(MdDataSetParam mdDataSetParam)
+    {
+        return mdDataSetParamMapper.selectMdDataSetParamList(mdDataSetParam);
+    }
+
+    /**
+     * 新增数据集参数
+     * 
+     * @param mdDataSetParam 数据集参数
+     * @return 结果
+     */
+    @Override
+    public int insertMdDataSetParam(MdDataSetParam mdDataSetParam)
+    {
+        return mdDataSetParamMapper.insertMdDataSetParam(mdDataSetParam);
+    }
+
+    /**
+     * 修改数据集参数
+     * 
+     * @param mdDataSetParam 数据集参数
+     * @return 结果
+     */
+    @Override
+    public int updateMdDataSetParam(MdDataSetParam mdDataSetParam)
+    {
+        return mdDataSetParamMapper.updateMdDataSetParam(mdDataSetParam);
+    }
+
+    /**
+     * 批量删除数据集参数
+     * 
+     * @param dcCodes 需要删除的数据集参数主键
+     * @return 结果
+     */
+    @Override
+    public int deleteMdDataSetParamByDcCodes(String[] dcCodes)
+    {
+        return mdDataSetParamMapper.deleteMdDataSetParamByDcCodes(dcCodes);
+    }
+
+    /**
+     * 删除数据集参数信息
+     * 
+     * @param dcCode 数据集参数主键
+     * @return 结果
+     */
+    @Override
+    public int deleteMdDataSetParamByDcCode(String dcCode)
+    {
+        return mdDataSetParamMapper.deleteMdDataSetParamByDcCode(dcCode);
+    }
+}

+ 98 - 0
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/service/impl/MdDataSetSqlServiceImpl.java

@@ -0,0 +1,98 @@
+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.MdDataSetSqlMapper;
+import com.ruoyi.interfaces.domain.MdDataSetSql;
+import com.ruoyi.interfaces.service.IMdDataSetSqlService;
+
+/**
+ * sql数据集Service业务层处理
+ * 
+ * @author 朱得糠
+ * @date 2025-09-02
+ */
+@Service
+public class MdDataSetSqlServiceImpl implements IMdDataSetSqlService 
+{
+    @Autowired
+    private MdDataSetSqlMapper mdDataSetSqlMapper;
+
+    /**
+     * 查询sql数据集
+     * 
+     * @param id sql数据集主键
+     * @return sql数据集
+     */
+    @Override
+    public MdDataSetSql selectMdDataSetSqlByDcCode(String id)
+    {
+        return mdDataSetSqlMapper.selectMdDataSetSqlByDcCode(id);
+    }
+
+    /**
+     * 查询sql数据集列表
+     * 
+     * @param mdDataSetSql sql数据集
+     * @return sql数据集
+     */
+    @Override
+    public List<MdDataSetSql> selectMdDataSetSqlList(MdDataSetSql mdDataSetSql)
+    {
+        return mdDataSetSqlMapper.selectMdDataSetSqlList(mdDataSetSql);
+    }
+
+    /**
+     * 新增sql数据集
+     * 
+     * @param mdDataSetSql sql数据集
+     * @return 结果
+     */
+    @Override
+    public int insertMdDataSetSql(MdDataSetSql mdDataSetSql)
+    {
+        return mdDataSetSqlMapper.insertMdDataSetSql(mdDataSetSql);
+    }
+
+    /**
+     * 修改sql数据集
+     * 
+     * @param mdDataSetSql sql数据集
+     * @return 结果
+     */
+    @Override
+    public int updateMdDataSetSql(MdDataSetSql mdDataSetSql)
+    {
+        return mdDataSetSqlMapper.updateMdDataSetSql(mdDataSetSql);
+    }
+
+    /**
+     * 批量删除sql数据集
+     * 
+     * @param ids 需要删除的sql数据集主键
+     * @return 结果
+     */
+    @Override
+    public int deleteMdDataSetSqlByIds(Long[] ids)
+    {
+        return mdDataSetSqlMapper.deleteMdDataSetSqlByIds(ids);
+    }
+
+    /**
+     * 删除sql数据集信息
+     * 
+     * @param id sql数据集主键
+     * @return 结果
+     */
+    @Override
+    public int deleteMdDataSetSqlById(Long id)
+    {
+        return mdDataSetSqlMapper.deleteMdDataSetSqlById(id);
+    }
+
+    @Override
+    public int deleteMdDataSetSqlByDcCode(String dcCode) {
+        return mdDataSetSqlMapper.deleteMdDataSetSqlByDcCode(dcCode);
+    }
+}

+ 7 - 2
ruoyi-api-patform/src/main/java/com/ruoyi/interfaces/service/impl/PtServiceServiceImpl.java

@@ -126,7 +126,7 @@ public class PtServiceServiceImpl extends ServiceImpl<PtServiceMapper, PtService
      * @return
      */
     @Override
-    public List<MdModelInfoVo> modelService(MdModelInfoVo par) {
+    public MdModelInfoVo modelService(MdModelInfoVo par) {
 
         return ptServiceMapper.selectModelService(par);
     }
@@ -164,6 +164,7 @@ public class PtServiceServiceImpl extends ServiceImpl<PtServiceMapper, PtService
         //List<PtServiceParam> ptServiceParams = ptServiceParamMapper.selectAll(ptService.getSrvId());
         //String paramString = ptServiceParams.stream().map(p -> p.getParamCode() + "=" + p.getParamValue()).collect(Collectors.joining());
         List<PtServiceParam> params = ptService.getParams();
+        String paramString = "";
         switch (ptService.getRqtype()) {
             case "POST":
                 HashMap<String, Object> parMap = new HashMap<>();
@@ -172,7 +173,11 @@ public class PtServiceServiceImpl extends ServiceImpl<PtServiceMapper, PtService
                 }
                return HttpUtils.sendBodyPost(ptService.getUrl(),parMap,headers);
             case "GET":
-                return HttpUtils.sendGet(ptService.getUrl(),"",headers);
+
+                for (PtServiceParam param : params) {
+                    paramString+=(param.getParamCode()+"="+param.getParamValue())+"&";
+                }
+                return HttpUtils.sendGet(ptService.getUrl(),paramString,headers);
         }
         return null;
     }

+ 124 - 73
ruoyi-api-patform/src/main/resources/mapper/interfaces/MdDataFieldMapper.xml

@@ -5,68 +5,108 @@
 <mapper namespace="com.ruoyi.interfaces.mapper.MdDataFieldMapper">
 
     <resultMap type="com.ruoyi.interfaces.domain.MdDataField" id="MdDataFieldResult">
-        <result property="dcCode"    column="DC_CODE"    />
-        <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"    />
+        <result property="id" column="ID"/>
+        <result property="parentId" column="PARENT_ID"/>
+        <result property="dcCode" column="DC_CODE"/>
+        <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"/>
+        <result property="isArray" column="IS_ARRAY"/>
+        <result property="arrayIndex" column="ARRAY_INDEX"/>
     </resultMap>
 
     <sql id="selectMdDataFieldVo">
-        select DC_CODE,  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
+        select ID,
+               PARENT_ID,
+               DC_CODE,
+               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,
+               IS_ARRAY,
+               ARRAY_INDEX
+        from md_data_field
     </sql>
 
-    <select id="selectMdDataFieldList" parameterType="com.ruoyi.interfaces.domain.MdDataField" resultMap="MdDataFieldResult">
+    <select id="selectMdDataFieldList" parameterType="com.ruoyi.interfaces.domain.MdDataField"
+            resultMap="MdDataFieldResult">
         <include refid="selectMdDataFieldVo"/>
         <where>
-            <if test="dcCode != null  and dcCode != ''"> and DC_CODE = #{dcCode}</if>
-            <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>
+            <if test="id != null ">and ID = #{id}</if>
+            <if test="parentId != null ">and PARENT_ID = #{parentId}</if>
+            <if test="dcCode != null  and dcCode != ''">and DC_CODE = #{dcCode}</if>
+            <if test="fieldCode != null  and fieldCode != ''">and FIELD_CODE = #{fieldCode}</if>
+            <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>
+            <if test="isArray != null  and isArray != ''">and IS_ARRAY = #{isArray}</if>
+            <if test="arrayIndex != null  and arrayIndex != ''">and ARRAY_INDEX = #{arrayIndex}</if>
         </where>
-        order by FIELD_ORDER
     </select>
 
-    <select id="selectMdDataFieldByDsCode" parameterType="String" resultMap="MdDataFieldResult">
+    <select id="selectMdDataFieldById" parameterType="Long" resultMap="MdDataFieldResult">
         <include refid="selectMdDataFieldVo"/>
-        where DC_CODE = #{dcCode}
+        where ID = #{id}
     </select>
 
     <insert id="insertMdDataField" parameterType="com.ruoyi.interfaces.domain.MdDataField">
         insert into md_data_field
         <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">ID,</if>
+            <if test="parentId != null">PARENT_ID,</if>
             <if test="dcCode != null">DC_CODE,</if>
-            <if test="fieldCode != null">FIELD_CODE,</if>
+            <if test="fieldCode != null and fieldCode != ''">FIELD_CODE,</if>
             <if test="fieldName != null">FIELD_NAME,</if>
-            <if test="fieldType != null">FIELD_TYPE,</if>
+            <if test="fieldType != null and fieldType != ''">FIELD_TYPE,</if>
             <if test="fieldLength != null">FIELD_LENGTH,</if>
             <if test="fieldPrecision != null">FIELD_PRECISION,</if>
             <if test="fieldIspri != null">FIELD_ISPRI,</if>
@@ -82,12 +122,16 @@
             <if test="fieldInputDefault != null">FIELD_INPUT_DEFAULT,</if>
             <if test="fieldViewType != null">FIELD_VIEW_TYPE,</if>
             <if test="fieldDict != null">FIELD_DICT,</if>
+            <if test="isArray != null">IS_ARRAY,</if>
+            <if test="arrayIndex != null">ARRAY_INDEX,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="parentId != null">#{parentId},</if>
             <if test="dcCode != null">#{dcCode},</if>
-            <if test="fieldCode != null">#{fieldCode},</if>
+            <if test="fieldCode != null and fieldCode != ''">#{fieldCode},</if>
             <if test="fieldName != null">#{fieldName},</if>
-            <if test="fieldType != null">#{fieldType},</if>
+            <if test="fieldType != null and fieldType != ''">#{fieldType},</if>
             <if test="fieldLength != null">#{fieldLength},</if>
             <if test="fieldPrecision != null">#{fieldPrecision},</if>
             <if test="fieldIspri != null">#{fieldIspri},</if>
@@ -103,48 +147,55 @@
             <if test="fieldInputDefault != null">#{fieldInputDefault},</if>
             <if test="fieldViewType != null">#{fieldViewType},</if>
             <if test="fieldDict != null">#{fieldDict},</if>
+            <if test="isArray != null">#{isArray},</if>
+            <if test="arrayIndex != null">#{arrayIndex},</if>
         </trim>
     </insert>
 
     <update id="updateMdDataField" parameterType="com.ruoyi.interfaces.domain.MdDataField">
         update md_data_field
         <trim prefix="SET" suffixOverrides=",">
-            FIELD_NAME = #{fieldName,jdbcType=VARCHAR},
-            FIELD_TYPE = #{fieldType,jdbcType=VARCHAR},
-            FIELD_LENGTH = #{fieldLength,jdbcType=VARCHAR},
-            FIELD_PRECISION = #{fieldPrecision,jdbcType=VARCHAR},
-            FIELD_ISPRI = #{fieldIspri,jdbcType=VARCHAR},
-            FIELD_ISNULLABLE = #{fieldIsnullable,jdbcType=VARCHAR},
-            FIELD_DEFAULT = #{fieldDefault,jdbcType=VARCHAR},
-            FIELD_DESC = #{fieldDesc,jdbcType=VARCHAR},
-            FIELD_STATUS = #{fieldStatus,jdbcType=VARCHAR},
-            FIELD_ORDER = #{fieldOrder,jdbcType=INTEGER},
-            FIELD_EXTEND = #{fieldExtend,jdbcType=VARCHAR},
-            FIELD_EXTEND_TABLE = #{fieldExtendTable,jdbcType=VARCHAR},
-            FIELD_INPUT_TYPE = #{fieldInputType,jdbcType=VARCHAR},
-            FIELD_INPUT_FORMAT = #{fieldInputFormat,jdbcType=VARCHAR},
-            FIELD_INPUT_DEFAULT = #{fieldInputDefault,jdbcType=VARCHAR},
-            FIELD_VIEW_TYPE = #{fieldViewType,jdbcType=VARCHAR},
-            FIELD_DICT = #{fieldDict,jdbcType=VARCHAR},
+            <if test="parentId != null">PARENT_ID = #{parentId},</if>
+            <if test="dcCode != null">DC_CODE = #{dcCode},</if>
+            <if test="fieldCode != null and fieldCode != ''">FIELD_CODE = #{fieldCode},</if>
+            <if test="fieldName != null">FIELD_NAME = #{fieldName},</if>
+            <if test="fieldType != null and fieldType != ''">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>
+            <if test="isArray != null">IS_ARRAY = #{isArray},</if>
+            <if test="arrayIndex != null">ARRAY_INDEX = #{arrayIndex},</if>
         </trim>
-        where DC_CODE = #{dcCode} and
-        FIELD_CODE = #{fieldCode}
+        where ID = #{id}
     </update>
 
-    <delete id="deleteMdDataFieldByDsCode" parameterType="String">
-        delete from md_data_field where DC_CODE = #{dcCode}
+    <delete id="deleteMdDataFieldById" parameterType="Long">
+        delete
+        from md_data_field
+        where ID = #{id}
     </delete>
 
-    <delete id="deleteMdDataFieldByDsCodes" parameterType="String">
-        delete from md_data_field where DC_CODE in
-        <foreach item="dcCode" collection="array" open="(" separator="," close=")">
-            #{dcCode}
+    <delete id="deleteMdDataFieldByIds" parameterType="String">
+        delete from md_data_field where ID in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
         </foreach>
     </delete>
-    <delete id="deleteMdDataFieldOne">
+    <delete id="deleteMdDataFieldByDcCode">
         delete
         from md_data_field
         where DC_CODE = #{dcCode}
-          and field_Code = #{fieldCode}
     </delete>
 </mapper>

+ 67 - 0
ruoyi-api-patform/src/main/resources/mapper/interfaces/MdDataSetApiMapper.xml

@@ -0,0 +1,67 @@
+<?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.MdDataSetApiMapper">
+
+    <resultMap type="com.ruoyi.interfaces.domain.MdDataSetApi" id="MdDataSetApiResult">
+        <result property="id"    column="ID"    />
+        <result property="dcCode"    column="DC_CODE"    />
+        <result property="srvId"    column="SRV_ID"    />
+        <result property="pars"    column="PARS"    />
+    </resultMap>
+
+    <sql id="selectMdDataSetApiVo">
+        select ID, DC_CODE, SRV_ID, PARS from md_data_set_api
+    </sql>
+
+    <select id="selectMdDataSetApiList" parameterType="com.ruoyi.interfaces.domain.MdDataSetApi" resultMap="MdDataSetApiResult">
+        <include refid="selectMdDataSetApiVo"/>
+        <where>
+            <if test="id != null "> and ID = #{id}</if>
+            <if test="dcCode != null  and dcCode != ''"> and DC_CODE = #{dcCode}</if>
+            <if test="srvId != null  and srvId != ''"> and SRV_ID = #{srvId}</if>
+            <if test="pars != null  and pars != ''"> and PARS = #{pars}</if>
+        </where>
+    </select>
+
+    <select id="selectMdDataSetApiByDcCode" parameterType="String" resultMap="MdDataSetApiResult">
+        <include refid="selectMdDataSetApiVo"/>
+        where DC_CODE = #{dcCode}
+    </select>
+
+    <insert id="insertMdDataSetApi" parameterType="com.ruoyi.interfaces.domain.MdDataSetApi" useGeneratedKeys="true" keyProperty="id">
+        insert into md_data_set_api
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="dcCode != null">DC_CODE,</if>
+            <if test="srvId != null">SRV_ID,</if>
+            <if test="pars != null">PARS,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="dcCode != null">#{dcCode},</if>
+            <if test="srvId != null">#{srvId},</if>
+            <if test="pars != null">#{pars},</if>
+        </trim>
+    </insert>
+
+    <update id="updateMdDataSetApi" parameterType="com.ruoyi.interfaces.domain.MdDataSetApi">
+        update md_data_set_api
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="dcCode != null">DC_CODE = #{dcCode},</if>
+            <if test="srvId != null">SRV_ID = #{srvId},</if>
+            <if test="pars != null">PARS = #{pars},</if>
+        </trim>
+        where ID = #{id}
+    </update>
+
+    <delete id="deleteMdDataSetApiByDcCode" parameterType="String">
+        delete from md_data_set_api where DC_CODE = #{dcCode}
+    </delete>
+
+    <delete id="deleteMdDataSetApiByIds" parameterType="String">
+        delete from md_data_set_api where ID in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 82 - 0
ruoyi-api-patform/src/main/resources/mapper/interfaces/MdDataSetFileMapper.xml

@@ -0,0 +1,82 @@
+<?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.MdDataSetFileMapper">
+
+    <resultMap type="com.ruoyi.interfaces.domain.MdDataSetFile" id="MdDataSetFileResult">
+        <result property="id"    column="ID"    />
+        <result property="dcCode"    column="DC_CODE"    />
+        <result property="filePath"    column="FILE_PATH"    />
+        <result property="originalFilename"    column="ORIGINAL_FILENAME"    />
+        <result property="fileType"    column="FILE_TYPE"    />
+        <result property="pars"    column="PARS"    />
+    </resultMap>
+
+    <sql id="selectMdDataSetFileVo">
+        select ID, DC_CODE, FILE_PATH,ORIGINAL_FILENAME, FILE_TYPE, PARS from md_data_set_file
+    </sql>
+
+    <select id="selectMdDataSetFileList" parameterType="com.ruoyi.interfaces.domain.MdDataSetFile" resultMap="MdDataSetFileResult">
+        <include refid="selectMdDataSetFileVo"/>
+        <where>
+            <if test="id != null "> and ID = #{id}</if>
+            <if test="dcCode != null  and dcCode != ''"> and DC_CODE = #{dcCode}</if>
+            <if test="filePath != null  and filePath != ''"> and FILE_PATH = #{filePath}</if>
+            <if test="originalFilename != null  and originalFilename != ''"> and ORIGINAL_FILENAME = #{originalFilename}</if>
+            <if test="fileType != null  and fileType != ''"> and FILE_TYPE = #{fileType}</if>
+            <if test="pars != null  and pars != ''"> and PARS = #{pars}</if>
+        </where>
+    </select>
+
+    <select id="selectMdDataSetFileByDcCode" parameterType="String" resultMap="MdDataSetFileResult">
+        <include refid="selectMdDataSetFileVo"/>
+        where DC_CODE = #{dcCode}
+    </select>
+
+    <insert id="insertMdDataSetFile" parameterType="com.ruoyi.interfaces.domain.MdDataSetFile" useGeneratedKeys="true" keyProperty="id">
+        insert into md_data_set_file
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="dcCode != null">DC_CODE,</if>
+            <if test="filePath != null">FILE_PATH,</if>
+            <if test="originalFilename != null">ORIGINAL_FILENAME,</if>
+            <if test="fileType != null">FILE_TYPE,</if>
+            <if test="pars != null">PARS,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="dcCode != null">#{dcCode},</if>
+            <if test="filePath != null">#{filePath},</if>
+            <if test="originalFilename != null">#{originalFilename},</if>
+            <if test="fileType != null">#{fileType},</if>
+            <if test="pars != null">#{pars},</if>
+        </trim>
+    </insert>
+
+    <update id="updateMdDataSetFile" parameterType="com.ruoyi.interfaces.domain.MdDataSetFile">
+        update md_data_set_file
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="dcCode != null">DC_CODE = #{dcCode},</if>
+            <if test="filePath != null">FILE_PATH = #{filePath},</if>
+            <if test="originalFilename != null">ORIGINAL_FILENAME = #{originalFilename},</if>
+            <if test="fileType != null">FILE_TYPE = #{fileType},</if>
+            <if test="pars != null">PARS = #{pars},</if>
+        </trim>
+        where ID = #{id}
+    </update>
+
+    <delete id="deleteMdDataSetFileById" parameterType="Long">
+        delete from md_data_set_file where ID = #{id}
+    </delete>
+
+    <delete id="deleteMdDataSetFileByIds" parameterType="String">
+        delete from md_data_set_file where ID in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+    <delete id="deleteMdDataSetFileByDcCode">
+        delete
+        from md_data_set_file
+        where DC_CODE = #{dcCode}
+    </delete>
+</mapper>

+ 85 - 0
ruoyi-api-patform/src/main/resources/mapper/interfaces/MdDataSetParamMapper.xml

@@ -0,0 +1,85 @@
+<?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.MdDataSetParamMapper">
+
+    <resultMap type="com.ruoyi.interfaces.domain.MdDataSetParam" id="MdDataSetParamResult">
+        <result property="dcCode"    column="DC_CODE"    />
+        <result property="paramCode"    column="PARAM_CODE"    />
+        <result property="paramName"    column="PARAM_NAME"    />
+        <result property="paramType"    column="PARAM_TYPE"    />
+        <result property="paramValue"    column="PARAM_VALUE"    />
+        <result property="paramNote"    column="PARAM_NOTE"    />
+        <result property="sort"    column="SORT"    />
+    </resultMap>
+
+    <sql id="selectMdDataSetParamVo">
+        select DC_CODE, PARAM_CODE, PARAM_NAME, PARAM_TYPE, PARAM_VALUE, PARAM_NOTE, SORT from md_data_set_param
+    </sql>
+
+    <select id="selectMdDataSetParamList" parameterType="com.ruoyi.interfaces.domain.MdDataSetParam" resultMap="MdDataSetParamResult">
+        <include refid="selectMdDataSetParamVo"/>
+        <where>
+            <if test="dcCode != null  and dcCode != ''"> and DC_CODE = #{dcCode}</if>
+            <if test="paramCode != null  and paramCode != ''"> and PARAM_CODE = #{paramCode}</if>
+            <if test="paramName != null  and paramName != ''"> and PARAM_NAME like concat('%', #{paramName}, '%')</if>
+            <if test="paramType != null  and paramType != ''"> and PARAM_TYPE = #{paramType}</if>
+            <if test="paramValue != null  and paramValue != ''"> and PARAM_VALUE = #{paramValue}</if>
+            <if test="paramNote != null  and paramNote != ''"> and PARAM_NOTE = #{paramNote}</if>
+            <if test="sort != null "> and SORT = #{sort}</if>
+        </where>
+        order by SORT
+    </select>
+
+    <select id="selectMdDataSetParamByDcCode" parameterType="String" resultMap="MdDataSetParamResult">
+        <include refid="selectMdDataSetParamVo"/>
+        where DC_CODE = #{dcCode}
+    </select>
+
+    <insert id="insertMdDataSetParam" parameterType="com.ruoyi.interfaces.domain.MdDataSetParam">
+        insert into md_data_set_param
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="dcCode != null">DC_CODE,</if>
+            <if test="paramCode != null">PARAM_CODE,</if>
+            <if test="paramName != null">PARAM_NAME,</if>
+            <if test="paramType != null">PARAM_TYPE,</if>
+            <if test="paramValue != null">PARAM_VALUE,</if>
+            <if test="paramNote != null">PARAM_NOTE,</if>
+            <if test="sort != null">SORT,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="dcCode != null">#{dcCode},</if>
+            <if test="paramCode != null">#{paramCode},</if>
+            <if test="paramName != null">#{paramName},</if>
+            <if test="paramType != null">#{paramType},</if>
+            <if test="paramValue != null">#{paramValue},</if>
+            <if test="paramNote != null">#{paramNote},</if>
+            <if test="sort != null">#{sort},</if>
+        </trim>
+    </insert>
+
+    <update id="updateMdDataSetParam" parameterType="com.ruoyi.interfaces.domain.MdDataSetParam">
+        update md_data_set_param
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="paramCode != null">PARAM_CODE = #{paramCode},</if>
+            <if test="paramName != null">PARAM_NAME = #{paramName},</if>
+            <if test="paramType != null">PARAM_TYPE = #{paramType},</if>
+            <if test="paramValue != null">PARAM_VALUE = #{paramValue},</if>
+            <if test="paramNote != null">PARAM_NOTE = #{paramNote},</if>
+            <if test="sort != null">SORT = #{sort},</if>
+        </trim>
+        where DC_CODE = #{dcCode}
+    </update>
+
+    <delete id="deleteMdDataSetParamByDcCode" parameterType="String">
+        delete from md_data_set_param where DC_CODE = #{dcCode}
+    </delete>
+
+    <delete id="deleteMdDataSetParamByDcCodes" parameterType="String">
+        delete from md_data_set_param where DC_CODE in
+        <foreach item="dcCode" collection="array" open="(" separator="," close=")">
+            #{dcCode}
+        </foreach>
+    </delete>
+</mapper>

+ 75 - 0
ruoyi-api-patform/src/main/resources/mapper/interfaces/MdDataSetSqlMapper.xml

@@ -0,0 +1,75 @@
+<?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.MdDataSetSqlMapper">
+
+    <resultMap type="com.ruoyi.interfaces.domain.MdDataSetSql" id="MdDataSetSqlResult">
+        <result property="id"    column="ID"    />
+        <result property="dcCode"    column="DC_CODE"    />
+        <result property="dsCode"    column="DS_CODE"    />
+        <result property="runSql"    column="RUN_SQL"    />
+        <result property="pars"    column="PARS"    />
+    </resultMap>
+
+    <sql id="selectMdDataSetSqlVo">
+        select ID, DC_CODE,DS_CODE, RUN_SQL, PARS from md_data_set_sql
+    </sql>
+
+    <select id="selectMdDataSetSqlList" parameterType="com.ruoyi.interfaces.domain.MdDataSetSql" resultMap="MdDataSetSqlResult">
+        <include refid="selectMdDataSetSqlVo"/>
+        <where>
+            <if test="id != null "> and ID = #{id}</if>
+            <if test="dcCode != null  and dcCode != ''"> and DC_CODE = #{dcCode}</if>
+            <if test="dsCode != null  and dsCode != ''"> and DS_CODE = #{dsCode}</if>
+            <if test="runSql != null  and runSql != ''"> and RUN_SQL = #{runSql}</if>
+            <if test="pars != null  and pars != ''"> and PARS = #{pars}</if>
+        </where>
+    </select>
+
+    <select id="selectMdDataSetSqlByDcCode" parameterType="String" resultMap="MdDataSetSqlResult">
+        <include refid="selectMdDataSetSqlVo"/>
+        where DC_CODE = #{dcCode}
+    </select>
+
+    <insert id="insertMdDataSetSql" parameterType="com.ruoyi.interfaces.domain.MdDataSetSql" useGeneratedKeys="true" keyProperty="id">
+        insert into md_data_set_sql
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="dcCode != null">DC_CODE,</if>
+            <if test="dsCode != null">DS_CODE,</if>
+            <if test="runSql != null">RUN_SQL,</if>
+            <if test="pars != null">PARS,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="dcCode != null">#{dcCode},</if>
+            <if test="dsCode != null">#{dsCode},</if>
+            <if test="runSql != null">#{runSql},</if>
+            <if test="pars != null">#{pars},</if>
+        </trim>
+    </insert>
+
+    <update id="updateMdDataSetSql" parameterType="com.ruoyi.interfaces.domain.MdDataSetSql">
+        update md_data_set_sql
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="dcCode != null">DC_CODE = #{dcCode},</if>
+            <if test="dsCode != null">DS_CODE = #{dsCode},</if>
+            <if test="runSql != null">RUN_SQL = #{runSql},</if>
+            <if test="pars != null">PARS = #{pars},</if>
+        </trim>
+        where ID = #{id}
+    </update>
+
+    <delete id="deleteMdDataSetSqlById" parameterType="Long">
+        delete from md_data_set_sql where ID = #{id}
+    </delete>
+
+    <delete id="deleteMdDataSetSqlByIds" parameterType="String">
+        delete from md_data_set_sql where ID in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+    <delete id="deleteMdDataSetSqlByDcCode">
+        delete from md_data_set_sql where DC_CODE = #{dcCode}
+    </delete>
+</mapper>

+ 125 - 64
ruoyi-api-patform/src/main/resources/mapper/interfaces/PtServiceMapper.xml

@@ -180,7 +180,7 @@
         #{maintainUnit,jdbcType=VARCHAR},
         #{maintainContacer,jdbcType=VARCHAR},
         #{viewNum, jdbcType=INTEGER},
-        #{sort, jdbcType=INTEGER}
+        #{sort, jdbcType=INTEGER},
         #{audit, jdbcType=VARCHAR}
     </sql>
     <sql id="page_where">
@@ -489,37 +489,67 @@ order by SORT
         ORDER BY RLSTM DESC
     </select>
     <resultMap id="MdModelInfoVoMap" type="com.ruoyi.interfaces.domain.vo.MdModelInfoVo">
-        <id property="mdid" column="mdid"/>
-        <result property="name" column="m_name"/>
-        <result property="enname" column="enname"/>
-        <result property="cateid" column="cateid"/>
-        <result property="devlang" column="devlang"/>
-        <result property="version" column="version"/>
-        <result property="intro" column="m_intro"/>
-        <result property="type" column="m_type"/>
-        <result property="tags" column="tags"/>
-        <result property="author" column="author"/>
-        <result property="isPublic" column="isPublic"/>
-        <result property="isApproved" column="isApproved"/>
-        <result property="status" column="m_status"/>
-        <result property="className" column="className"/>
-        <result property="mdUnit" column="mdUnit"/>
-        <result property="mdContact" column="mdContact"/>
-        <result property="developer" column="developer"/>
-        <result property="msgFlag" column="msgFlag"/>
-        <result property="msgWebHook" column="msgWebHook"/>
-        <result property="mdCPU" column="mdCPU"/>
-        <result property="mdGpu" column="mdGpu"/>
-        <result property="mdRunEnv" column="mdRunEnv"/>
-        <result property="mdRunCmd" column="mdRunCmd"/>
-        <result property="mdInOutName" column="mdInOutName"/>
-        <result property="mdInOutNameEn" column="mdInOutNameEn"/>
-        <result property="mirrorImageEg" column="mirrorImageEg"/>
-        <result property="mirrorImageUrl" column="mirrorImageUrl"/>
-        <result property="mirrorImageDesc" column="mirrorImageDesc"/>
-        <result property="createBy" column="createBy"/>
-        <result property="modifyBy" column="modifyBy"/>
-        <result property="registrant" column="registrant"/>
+        <result property="mdid" column="MDID"/>
+        <result property="name" column="M_NAME"/>
+        <result property="enname" column="ENNAME"/>
+        <result property="cateid" column="CATEID"/>
+        <result property="devlang" column="DEVLANG"/>
+        <result property="version" column="VERSION"/>
+        <result property="intro" column="M_INTRO"/>
+        <result property="type" column="M_TYPE"/>
+        <result property="tags" column="TAGS"/>
+        <result property="kind" column="KIND"/>
+        <result property="purpose" column="PURPOSE"/>
+        <result property="israte" column="ISRATE"/>
+        <result property="weight" column="WEIGHT"/>
+        <result property="devkind" column="DEVKIND"/>
+        <result property="author" column="AUTHOR"/>
+        <result property="ispublic" column="ISPUBLIC"/>
+        <result property="isapproved" column="ISAPPROVED"/>
+        <result property="status" column="M_STATUS"/>
+        <result property="classname" column="CLASSNAME"/>
+        <result property="mdRunCmd" column="MD_RUN_CMD"/>
+        <result property="mdUrl" column="MD_URL"/>
+        <result property="mdAuth" column="MD_AUTH"/>
+        <result property="mdHeader" column="MD_HEADER"/>
+        <result property="mdSecret" column="MD_SECRET"/>
+        <result property="mdUnit" column="MD_UNIT"/>
+        <result property="mdContact" column="MD_CONTACT"/>
+        <result property="devUnit" column="DEV_UNIT"/>
+        <result property="devContact" column="DEV_CONTACT"/>
+        <result property="whFlag" column="WH_FLAG"/>
+        <result property="whUrl" column="WH_URL"/>
+        <result property="whMethod" column="WH_METHOD"/>
+        <result property="whAuth" column="WH_AUTH"/>
+        <result property="whHeader" column="WH_HEADER"/>
+        <result property="whSecret" column="WH_SECRET"/>
+        <result property="envOs" column="ENV_OS"/>
+        <result property="evnArmX86" column="EVN_ARM_X86"/>
+        <result property="envCpu" column="ENV_CPU"/>
+        <result property="envGpuType" column="ENV_GPU_TYPE"/>
+        <result property="envGpuNum" column="ENV_GPU_NUM"/>
+        <result property="envGpuMem" column="ENV_GPU_MEM"/>
+        <result property="envDisk" column="ENV_DISK"/>
+        <result property="envMem" column="ENV_MEM"/>
+        <result property="deployIp" column="DEPLOY_IP"/>
+        <result property="deployDir" column="DEPLOY_DIR"/>
+        <result property="deployPort" column="DEPLOY_PORT"/>
+        <result property="deployNote" column="DEPLOY_NOTE"/>
+        <result property="mdInName" column="MD_IN_NAME"/>
+        <result property="mdInFile" column="MD_IN_FILE"/>
+        <result property="mdInNote" column="MD_IN_NOTE"/>
+        <result property="mdOutName" column="MD_OUT_NAME"/>
+        <result property="mdOutFile" column="MD_OUT_FILE"/>
+        <result property="mdOutNote" column="MD_OUT_NOTE"/>
+        <result property="mirrorImageName" column="MIRROR_IMAGE_NAME"/>
+        <result property="mirrorImageUrl" column="MIRROR_IMAGE_URL"/>
+        <result property="mirrorImageDesc" column="MIRROR_IMAGE_DESC"/>
+        <result property="mdAuthUrl" column="MD_AUTH_URL"/>
+        <result property="createby" column="CREATEBY"/>
+        <result property="modifyby" column="MODIFYBY"/>
+        <result property="regUser" column="REG_USER"/>
+        <result property="sort" column="SORT"/>
+        <result property="audit" column="AUDIT"/>
         <collection property="serviceList" ofType="com.ruoyi.interfaces.domain.PtService" resultMap="PtServiceVoMap"/>
     </resultMap>
     <resultMap id="PtServiceVoMap" type="com.ruoyi.interfaces.domain.PtService">
@@ -562,37 +592,68 @@ order by SORT
 
 
     <select id="selectModelService" resultMap="MdModelInfoVoMap">
-        select m.mdid,
-        m.name as m_name,
-        m.enname,
-        m.cateid,
-        m.devlang,
-        m.version,
-        m.intro m_intro,
-        m.type m_type,
-        m.tags,
-        m.author,
-        m.isPublic,
-        m.isApproved,
-        m.status m_status,
-        m.className,
-        m.mdUnit,
-        m.mdContact,
-        m.developer,
-        m.msgFlag,
-        m.msgWebHook,
-        m.mdCPU,
-        m.mdGpu,
-        m.mdRunEnv,
-        m.mdRunCmd,
-        m.mdInOutName,
-        m.mdInOutNameEn,
-        m.mirrorImageEg,
-        m.mirrorImageUrl,
-        m.mirrorImageDesc,
-        m.createBy,
-        m.modifyBy,
-        m.registrant,
+        select
+        m.MDID,
+        m.NAME as M_NAME,
+        m.ENNAME,
+        m.CATEID,
+        m.DEVLANG,
+        m.VERSION,
+        m.INTRO as M_INTRO,
+        m.TYPE AS M_TYPE,
+        m.TAGS,
+        m.KIND,
+        m.PURPOSE,
+        m.ISRATE,
+        m.WEIGHT,
+        m.DEVKIND,
+        m.AUTHOR,
+        m.ISPUBLIC,
+        m.ISAPPROVED,
+        m.STATUS AS M_STATUS,
+        m.CLASSNAME,
+        m.MD_RUN_CMD,
+        m.MD_URL,
+        m.MD_AUTH,
+        m.MD_HEADER,
+        m.MD_SECRET,
+        m.MD_UNIT,
+        m.MD_CONTACT,
+        m.DEV_UNIT,
+        m.DEV_CONTACT,
+        m.WH_FLAG,
+        m.WH_URL,
+        m.WH_METHOD,
+        m.WH_AUTH,
+        m.WH_HEADER,
+        m.WH_SECRET,
+        m.ENV_OS,
+        m.EVN_ARM_X86,
+        m.ENV_CPU,
+        m.ENV_GPU_TYPE,
+        m.ENV_GPU_NUM,
+        m.ENV_GPU_MEM,
+        m.ENV_DISK,
+        m.ENV_MEM,
+        m.DEPLOY_IP,
+        m.DEPLOY_DIR,
+        m.DEPLOY_PORT,
+        m.DEPLOY_NOTE,
+        m.MD_IN_NAME,
+        m.MD_IN_FILE,
+        m.MD_IN_NOTE,
+        m.MD_OUT_NAME,
+        m.MD_OUT_FILE,
+        m.MD_OUT_NOTE,
+        m.MIRROR_IMAGE_NAME,
+        m.MIRROR_IMAGE_URL,
+        m.MIRROR_IMAGE_DESC,
+        m.MD_AUTH_URL,
+        m.CREATEBY,
+        m.MODIFYBY,
+        m.REG_USER,
+        m.SORT,
+        m.AUDIT,
         s.UP_CYCL,
         s.OPEN_CNDTN,
         s.AD_NAME,
@@ -630,7 +691,7 @@ order by SORT
         s.VIEW_NUM
         from md_model_info m left join pt_service s on m.mdid = s.MDID
         <where>
-            <if test="cateid != null ">and m.cateid = #{cateid}</if>
+            <if test="mdid != null ">and m.mdid = #{mdid}</if>
         </where>
     </select>
 </mapper>

+ 5 - 0
ruoyi-common/src/main/java/com/ruoyi/common/constant/HttpStatus.java

@@ -91,4 +91,9 @@ public class HttpStatus
      * 系统警告消息
      */
     public static final int WARN = 601;
+    /**
+     * HTTP工具类请求错误
+     */
+    public static final int HTTP_ERROR = 444;
+
 }

+ 67 - 0
ruoyi-ui/src/api/register/regCom.js

@@ -305,4 +305,71 @@ export function dataJisql(data) {
     method: 'post',
     data:data
   });
+}
+export function dataJiApi(data) {
+  return request({
+    url: "/data/set/api",
+    method: 'post',
+    data:data
+  });
+}
+export function dataJiFile(data) {
+  return request({
+    url: "/data/set/file",
+    method: 'post',
+    data:data
+  });
+}
+export function dataJiSql(data) {
+  return request({
+    url: "/data/set/sql",
+    method: 'post',
+    data:data
+  });
+}
+export function getDataJiSql(id) {
+  return request({
+    url: '/data/set/sql/' + id,
+    method: 'get'
+  })
+}
+export function getDataJiApi(id) {
+  return request({
+    url: '/data/set/api/' + id,
+    method: 'get'
+  })
+}
+export function getDataJiFile(id) {
+  return request({
+    url: '/data/set/file/' + id,
+    method: 'get'
+  })
+}
+export function getDataJiParam(query) {
+  return request({
+    url: '/data/set/param/list',
+    method: 'get',
+    params: query
+  })
+}
+export function getDataJiParamRe(query) {
+  return request({
+    url: '/data/field/list',
+    method: 'get',
+    params: query
+  })
+}
+export function addJiFan(data) {
+  return request({
+    url: "/data/field/addList",
+    method: 'post',
+    data:data
+  });
+}
+export function addJiCan(data) {
+  return request({
+    url: "/data/set/param/addList",
+    method: 'post',
+    data:data
+  });
 }

+ 24 - 1
ruoyi-ui/src/api/service/info.js

@@ -35,7 +35,9 @@ export function getServiceInfo(query) {
     params: query,
   });
 }
-
+// export function getServiceInfo(id) {
+//   return request.get(`/pt/service/modelService/${id}`);
+// }
 
 export function getPtServiceList(query) {
   return request({
@@ -95,4 +97,25 @@ export function deTree(id) {
     url: '/interfaces/cate/' + id,
     method: 'delete'
   })
+}
+export function getServiceReturn(query) {
+  return request({
+    url: "/service/return/list",
+    method: "get",
+    params: query,
+  });
+}
+export function postReturnlist(data) {
+  return request({
+    url: "/service/return/addList",
+    method: 'post',
+    data:data
+  });
+}
+export function testService(data) {
+  return request({
+    url: "/pt/service/testRun",
+    method: 'post',
+    data:data
+  });
 }

+ 10 - 1
ruoyi-ui/src/layout/components/editModel.vue

@@ -671,6 +671,13 @@
                                         </div>
                                     </template>
                                 </el-table-column>
+                                <el-table-column prop="itemName" label="参数示例">
+                                    <template #default="scope">
+                                        <div style="width: 100%;">
+                                            <el-input placeholder="请填写参数示例" type="primary" class="noBor" v-model="scope.row.paramValue" size="mini" text style="margin-left: 0%;"></el-input>
+                                        </div>
+                                    </template>
+                                </el-table-column>
                                 <el-table-column prop="itemName" label="参数说明" >
                                     <template #default="scope">
                                         <div style="width: 100%;">
@@ -1138,7 +1145,9 @@ async function addSer(){
     await addService(par).then(res=>{
       if(res.code===200){
         var parCan = tableDataCanAdd.value
-        parCan.srvId = res.data.srvId
+        parCan.forEach(item => {
+          item.srvId = res.data.srvId
+        });
         addServiceParam(parCan).then(res1=>{
           if(res1.code===200){
             proxy.$modal.msgSuccess("新增成功");

+ 3 - 0
ruoyi-ui/src/utils/request.js

@@ -102,6 +102,9 @@ service.interceptors.response.use(res => {
     } else if (code !== 200) {
       ElNotification.error({ title: msg })
       return Promise.reject('error')
+    } 
+    else if (code === 444) {
+      return  Promise.resolve(res.data)
     } else {
       return  Promise.resolve(res.data)
     }

Разница между файлами не показана из-за своего большого размера
+ 704 - 190
ruoyi-ui/src/views/register/modelData/dataJi.vue


Разница между файлами не показана из-за своего большого размера
+ 690 - 77
ruoyi-ui/src/views/service/info/editModel.vue


+ 260 - 479
ruoyi-ui/src/views/service/info/index.vue

@@ -4,12 +4,12 @@
       <div style="display: flex;padding-top: 1%;padding-top: 5%;">
         <el-input
           v-model="inputNode"
-          style="width:75%;margin-left: 5%;background-color: #ebeef5;"
+          style="width:90%;margin-left: 5%;background-color: #ebeef5;"
           class="w-50 m-2"
           :prefix-icon="Search" 
         />
         <!-- <el-button style="margin-left: 2%;width: 10%;background-color: #F7F7F7" :icon="Filter"/> -->
-        <el-button type="primary" @click="showAdd" style="margin-left: 5%;width: 10%;" :icon="Plus"/>
+        <!-- <el-button type="primary" @click="showAdd" style="margin-left: 5%;width: 10%;" :icon="Plus"/> -->
       </div>
       <!-- <Plus style="width: 1em; height: 1em; margin-left:90%;cursor: pointer;color: #337ecc;" @click="showAddTree"/> -->
       <el-tree :expand-on-click-node="false" ref="treeRef" :filter-node-method="filterNode" :current-node-key="currentNodeKey" class="treeLeft" :data="data" @node-click="handleNodeClick" node-key="id" style="margin-left: 5%;margin-top: 5%;width: 90%;background-color: transparent;" default-expand-all :key="valueKet">
@@ -21,7 +21,7 @@
                   <svg-icon svg-icon icon-class="cate" style="color: red;" v-if="data.nodeType=='TREE'"/>
                 <span>{{ node.label }}</span>
               </div>
-              <div style="margin-right: 1%;position: absolute;margin-left: 75%;">
+              <!-- <div style="margin-right: 1%;position: absolute;margin-left: 75%;">
                 <el-dropdown trigger="hover" @click.stop v-if="currentNodeKey === data.id&&data.nodeType!=='SERVICE'">
                     <el-icon class="el-icon--right" style="color: black;">
                       <plus />
@@ -56,409 +56,167 @@
                     </el-dropdown-menu>
                   </template>
                 </el-dropdown>
-              </div>
+              </div> -->
             </span>
           </template>
         </el-tree>
     </div>
     <div style="width: 84%;margin-left: 1%;padding-top: 0.5%;" class="tab-container">
-              <div style="height: 90vh;overflow: auto;">
-                <div style="display: flex;align-items: center;justify-content: space-between;">
-                    <div style="margin-left:1%;">{{detail.name}}</div>
-                    <div style="display: flex;">
-                        <!-- <el-button type="primary" size="mini" :icon="Promotion" @click="fetchData">运行</el-button>
-                        <el-button type="" size="mini">删除</el-button> -->
-                    </div>
-                </div>
-                <div style="display: flex;align-items: center;margin-left:1%;margin-top: 1%;">
-                    <el-tag v-if="formJi.type" class="ml-2">
-                      {{formJi.type}}
-                    </el-tag>
-                    <el-tag v-if="formJi.rqtype=='POST'||formJi.rqtype=='post'" style="margin-left:0.5%;" class="ml-2" type="warning">
-                      {{formJi.rqtype}}
-                    </el-tag>
-                    <el-tag v-if="formJi.rqtype=='GET'||formJi.rqtype=='get'" type="success" style="margin-left: 0.5%;" class="ml-2">
-                      {{formJi.rqtype}}
-                    </el-tag>
-                    <div style="margin-left: 1%;">
-                        {{detail.url}}
-                    </div>
-                    <el-icon style="margin-left: 1%;cursor: pointer;color:#909399" @click="copyUrl"><CopyDocument /></el-icon>
-                    <div style="margin-left: 0.5%;">
-                        <!-- <el-select class="transparent-select" v-model="valueSta" style="border-color: transparent;width: 100px;">
-                            <el-option
-                            v-for="item in options"
-                            :key="item.value"
-                            :label="item.label"
-                            :value="item.value"
-                            >
-                            <div class="flex items-center" style="display: flex;align-items: center;">
-                                <div v-if="item.label=='开发中'" style="width: 5px; height: 5px; background-color: #409EFF; border-radius: 50%;"></div>
-                                <div v-if="item.label=='运行中'" style="width: 5px; height: 5px; background-color: #67C23A; border-radius: 50%;"></div>
-                                <span style="margin-left:1%;">{{ item.label }}</span>
-                            </div>
-                            </el-option>
-                            <template #prefix>
-                                <div class="flex items-center" style="display: flex; align-items: center;">
-                                    <div v-if="valueSta && options.find(opt => opt.value === valueSta)?.label === '开发中'" 
-                                        style="width: 5px; height: 5px; background-color: #409EFF; border-radius: 50%; margin-right: 4px;"></div>
-                                    <div v-if="valueSta && options.find(opt => opt.value === valueSta)?.label === '运行中'" 
-                                        style="width: 5px; height: 5px; background-color: #67C23A; border-radius: 50%; margin-right: 4px;"></div>
-                                    <span>{{ valueSta ? options.find(opt => opt.value === valueSta)?.label : '请选择' }}</span>
-                                </div>
-                            </template>
-                        </el-select> -->
-                    </div>
-                </div>
-                <div style="display: flex;width: 100%;">
-                    <div style="display: flex;margin-left: 1%;font-size: 15px;color:#909399;width:100%;margin-top: 1%;">
-                        
-                    </div>
-                </div>
-                <div style="margin-left: 1%;font-size: 15px;color:#909399;width:100%;display: flex;margin-top: 0.5%;">
-                    <div style="margin-left: 0%;">
-                        服务说明:
-                    </div>
-                    <div style="margin-left: 0.5%;">
-                        {{detail.name}}
-                    </div>
-                </div>
-                <div style="margin-left: 1%;font-size: 15px;color:#909399;width:100%;display: flex;margin-top: 0.5%;">
-                    <!-- <div style="margin-left: 0%;">
-                        返回说明:
-                    </div>
-                    <div style="margin-left: 0.5%;">
-                        {{detail.name}}
-                    </div> -->
-                </div>
-                <div style="margin-top: 2.5%;margin-left: 1%;">
-                  <el-tabs type="card" style="margin-top: 1%;width: 90%;">
-                    <el-tab-pane label="请求参数">
-
-                    </el-tab-pane>
-                  </el-tabs>
-                    <el-table 
-                      style="margin-top: -1%;width: 90%;"
-                      :data="tableDataCan" 
-                      :cell-style="{ textAlign: 'center', }"
-                      :header-cell-style="{ textAlign: 'center'}"
-                      :row-style="{ height: heightAll*0.01+'px',fontSize: '16px',textAlign:'center'  }"
-                      border >
-                          <el-table-column prop="paramCode" label="参数字段">
-                          </el-table-column>
-                          <el-table-column prop="paramName" label="参数名称">
-                          </el-table-column>
-                          <el-table-column prop="paramType" label="参数类型" width="140">
-                          </el-table-column>
-                          <el-table-column prop="paramNote" label="参数说明">
-                          </el-table-column>
-                      </el-table>
-                </div>
-                <div style="margin-top: 2.5%;margin-left: 1%;">
-                    <el-tabs type="card" style="margin-top: 1%;width: 90%;">
-                        <el-tab-pane label="成功(200)">
-                            <div style="display: flex;align-items: center;line-height: 1.5;font-size: 14px;margin-left: 1%;color: #606266;">
-                                <!-- <div>HTTP状态码:</div>
-                                <div>200</div>
-                                <div style="margin-left: 5%;">内容格式:</div>
-                                <div>JSON</div> -->
-                            </div>
-                            <!-- <el-tree  :data="dataReturn" :props="defaultProps" @node-click="handleNodeClick" style="margin-top: 1%;margin-left: 2%;background-color: #F7F7F7;background-color: transparent;width: 15%;" default-expand-all>
-                                <template #default="{ node, data }">
-                                    <span style="display: flex;justify-content: space-between;width: 100%;align-items: center;">
-                                        <span>{{ node.label }}</span>
-                                        <span style="display: flex;align-items: center;">
-                                            <div style="color:#67C23A;">string</div>
-                                            <el-tooltip
-                                                class="box-item"
-                                                effect="light"
-                                                content="必填"
-                                                placement="top-start"
-                                            >
-                                                <el-button style="transform: scale(0.5);transform-origin: center;margin-left: 5%; " type="success" :icon="Check" circle size="mini" plain/>
-                                            </el-tooltip>
-                                        </span>
-                                    </span>
-                                </template>
-                            </el-tree> -->
-                            
-                        </el-tab-pane>
-                    </el-tabs>
-                    <div style="margin-top: -1%;width: 90%;">
-                      <json-viewer 
-                          :value="dataReturn" 
-                          :expand-depth="5" 
-                          copyable 
-                          theme="my-theme"
-                      />
-                      <!-- <JsonEditorVue
-                          v-model="dataReturn"
-                          style="height:98%;width: 100%;"
-                          :mode="'code'"
-                          :showBtns="false"
-                          :options="{
-                            navigationBar: false, // 隐藏顶部导航栏
-                            statusBar: false,     // 隐藏底部状态栏
-                            mode: 'code',          // 仅保留代码编辑模式
-                            mainMenuBar: false     // 隐藏主菜单栏
-                          }"
-                          lang="zh"
-                        /> -->
-                    </div>
-                </div>
-                <div style="margin-top: 2.5%;margin-left: 1%;padding-bottom: 1%;width: 90%;">
-                    <div>响应示例</div><el-tabs type="card" style="margin-top: 1%;">
-                        <el-tab-pane label="成功示例">
-                             <div style="overflow: auto;height: 30vh">
-                                <json-viewer 
-                                    :value="dataJsonXiang" 
-                                    :expand-depth="5" 
-                                    copyable 
-                                    theme="my-theme"
-                                />
-                             </div>
-                        </el-tab-pane>
-                    </el-tabs>
-                </div>
-            
+      <div>
+        <el-table 
+          :data="tableData" 
+          style="width: 98%;margin-left: 1%;margin-top: 0.5%;"
+          :cell-style="{ padding:'5px' }"
+          :header-cell-style="{height: heightAll*0.01+'px',}"
+          :row-style="{ fontSize: '16px',textAlign:'center'}"
+          border >
+          <el-table-column type="index" label="序号" width="80">
+            <template #default="{ $index }">
+              <div style="text-align: center;">
+                {{ $index + 1 }}
               </div>
-            
-        <el-dialog @close="clearAdd" v-model="dialogVisible" title="新增节点" width="70%" destroy-on-close :key="tableKey">
-          <div style="overflow: auto;height: 80vh;">
-                    <el-form size="mini" :key="tableKey" style="margin-top: 1%;width: 98%;"  :model="formAdd" label-position="right" ref="formRefAdd" label-width="120px" :rules="rulesAdd">
-                      <el-row :gutter="48">
-                            <el-col :span="10">
-                              <el-form-item label="服务名称:" prop="name" style="">
-                                  <div style="display: flex;width: 100%;justify-content: space-between;">
-                                    <el-input v-model="formAdd.name" style="width: 100%;"/>
-                                  </div>
-                              </el-form-item>
-                            </el-col>
-                            <el-col :span="6">
-                              <el-form-item label="接口类型:" prop="" style="">
-                                <div style="display: flex;width: 100%;justify-content: space-between;">
-                                  <el-select
-                                    v-model="formAdd.type"
-                                    :disabled="isEdit"
-                                        style="width: 100%;margin-left: 0%;"
-                                    >
-                                        <el-option
-                                        v-for="item in optionsType"
-                                        :key="item.value"
-                                        :label="item.label"
-                                        :value="item.value"
-                                        />
-                                    </el-select>
-                                  <div style="display: flex;">
-                                    
-                                  </div>
-                                </div>
-                                    
-                                </el-form-item>
-                            </el-col>
-                      </el-row>
-                      <el-row :gutter="48">
-                            <el-col :span="10">
-                              <el-form-item label="接口地址:" prop="url" style=""> 
-                                  <el-input
-                                  v-model="formAdd.url"
-                                  style="width: 100%;"
-                                  placeholder=""
-                                  class="input-with-select"
-                                  >
-                                </el-input>
-                              </el-form-item>
-                            </el-col>
-                            <el-col :span="6">
-                                <el-form-item label="请求方式:" prop="" style="">
-                                    <el-select
-                                    v-model="formAdd.rqtype"
-                                    :disabled="isEdit"
-                                        style="width: 100%;margin-left: 0%;"
-                                    >
-                                        <el-option
-                                        v-for="item in optionsRqtype"
-                                        :key="item.value"
-                                        :label="item.label"
-                                        :value="item.value"
-                                        />
-                                    </el-select>
-                                </el-form-item>
-                            </el-col>
-                      </el-row>
-                      <el-row :gutter="48">
-                            <el-col :span="10">
-                              <el-form-item label="所属模型:" prop="mdid" style="">
-                                <el-tree-select
-                                  v-model="formAdd.mdid"
-                                  :data="optionsMdid"
-                                  check-strictly
-                                  :render-after-expand="false"
-                                  style="width: 100%"
-                                />
-                                <!-- <el-select
-                                v-model="formAdd.mdid"
-                                    style="width: 100%;margin-left: 0%;"
-                                >
-                                    <el-option
-                                    v-for="item in optionsMdid"
-                                    :key="item.value"
-                                    :label="item.label"
-                                    :value="item.id"
-                                    />
-                                </el-select> -->
-                      </el-form-item>
-                            </el-col>
-                      </el-row>
-                      <el-form-item label="排序:" prop="dcSort">
-                        <el-input-number v-model="formAdd.sort" :min="1" style="width: 15%;"/>
-                      </el-form-item>
-                      <el-row :gutter="48">
-                            <el-col :span="10">
-                              <el-form-item label="响应类型:" prop="" style="display: flex; align-items: center;">
-                                <el-radio-group v-model="formAdd.rptype" class="ml-4" style="display: inline-flex; align-items: center;">
-                                  <el-radio label="1" size="large" style="display: inline-flex; align-items: center;">
-                                    <span style="position: relative; top: -1px">JSON</span> <!-- 微调文字位置 -->
-                                  </el-radio>
-                                  <el-radio label="2" size="large" style="display: inline-flex; align-items: center;">
-                                    <span style="position: relative; top: -1px">XML</span>
-                                  </el-radio>
-                                  <el-radio label="3" size="large" style="display: inline-flex; align-items: center;">
-                                    <span style="position: relative; top: -1px">HTML</span>
-                                  </el-radio>
-                                </el-radio-group>
-                              </el-form-item>
-                            </el-col>
-                            <el-col :span="6">
-                                <el-form-item label="服务分类:" prop="cateCode" style="">
-                                    <el-cascader v-model="formAdd.cateCode" :options="cascaderOptions" :props="props1" clearable style="width: 100%;"></el-cascader>
-                                </el-form-item>
-                            </el-col>
-                            <!-- <el-col :span="8">
-                                <el-form-item label="请求方式:" prop="name" style="">
-                                    <el-select
-                                    v-model="formJi.type"
-                                    :disabled="isEdit"
-                                        style="width: 100%;margin-left: 0%;"
-                                    >
-                                        <el-option
-                                        v-for="item in optionsType"
-                                        :key="item.value"
-                                        :label="item.label"
-                                        :value="item.value"
-                                        />
-                                    </el-select>
-                                </el-form-item>
-                            </el-col> -->
-                      </el-row>
-                      <el-row :gutter="48">
-                            <el-col :span="13">
-                              <el-form-item label="服务说明:">
-                                  <el-input v-model="formAdd.intro" style="width: 100%;" :rows="3" resize="none" type="textarea"/>
-                              </el-form-item>
-                            </el-col>
-                      </el-row>
-                        
-                    </el-form>
-                    <div style="margin-top: 2%;">
-                        <div style="display: flex;justify-content: space-between;align-items: center;">
-                          <div>
-                            请求参数
-                          </div>
-                          <div style="display: flex;justify-content: flex-end;margin-right: 2%;">
-                            <el-button  @click="addCanAdd" style="margin-top: 1%;" type="success" size="mini" plain>新增参数</el-button>
-                          </div>
-                        </div>
-                        <div>
-                            <el-table 
-                            style="margin-top: 1%;width: 98%;"
-                            :data="tableDataCanAdd" 
-                            :cell-style="{ textAlign: 'center',padding:'2px 0' }"
-                            :header-cell-style="{ textAlign: 'center'}"
-                            :row-style="{ height: heightAll*0.01+'px',fontSize: '16px',textAlign:'center'  }"
-                            border >
-                                <el-table-column prop="itemName" label="参数字段">
-                                    <template #default="scope">
-                                        <div style="width: 100%;">
-                                            <el-input placeholder="请填写参数编码" type="primary" class="noBor" v-model="scope.row.parCode" size="mini" text style="margin-left: 0%;border: transparent;"></el-input>
-                                        </div>
-                                    </template>
-                                </el-table-column>
-                                <el-table-column prop="itemName" label="参数名称">
-                                    <template #default="scope">
-                                        <div style="width: 100%;">
-                                            <el-input placeholder="请填写参数名称" type="primary" class="noBor" v-model="scope.row.parName" size="mini" text style="margin-left: 0%;"></el-input>
-                                        </div>
-                                    </template>
-                                </el-table-column>
-                                <el-table-column prop="itemName" label="参数类型" width="200">
-                                    <template #default="scope">
-                                        <div style="width: 100%;">
-                                            <el-select
-                                            v-model="scope.row.parType"
-                                            class="noBorSel"
-                                            placeholder=""
-                                            style="width: 100%;margin-left: 0%;"
-                                            >
-                                                <el-option
-                                                v-for="item in optionsCan"
-                                                :key="item.value"
-                                                :label="item.label"
-                                                :value="item.value"
-                                                />
-                                    </el-select>
-                                        </div>
-                                    </template>
-                                </el-table-column>
-                                <el-table-column prop="itemName" label="参数说明" >
-                                    <template #default="scope">
-                                        <div style="width: 100%;">
-                                            <el-input type="primary" class="noBor" v-model="scope.row.parNote" size="mini" text style="margin-left: 0%;"></el-input>
-                                        </div>
-                                    </template>
-                                </el-table-column>
-                                <el-table-column prop="address" label="操作" width="100">
-                                    <template #default="scope">
-                                        <div style="width: 100%;">
-                                            <el-button type="danger" @click="delCanAdd(scope.$index)" size="mini" text style="margin-left: 0%;">删除</el-button>
-                                        </div>
-                                    </template>
-                                </el-table-column>
-                            </el-table>
-                            
-                        </div>
-                    </div>
-                    <div style="margin-top: 2%;">
-                        <!-- <div>返回响应</div> -->
-                        <div style="color: #909399;margin-left: 8%;margin-top:1%;">此处填写本服务接口响应信息描述</div>
-                        <el-tabs type="card" style="margin-top: -2%;width: 98%;">
-                            <el-tab-pane label="响应内容">
-                                <div style="display: flex; flex-direction: column;">
-                                   </div>
-                            </el-tab-pane>
-                        </el-tabs>
-                        <div style="overflow: auto;height: 20vh;margin-top: -1%;">
-                          <el-input placeholder="请输入示例" :rows="8" type="textarea" v-model="JsonAdd" size="mini" text style="margin-top: 0%;width: 98%;height: 99%;" ></el-input>
-                        </div>
-                    </div>
-                    <div style="margin-top: 2.5%;margin-left: 0%;padding-bottom: 1%;">
-                    
-                    <el-tabs type="card" style="margin-top: -1.5%;width: 98%;">
-                        <el-tab-pane label="使用说明">
-                             
-                        </el-tab-pane>
-                    </el-tabs>
-                    <el-input placeholder="请输入示例" :rows="8" type="textarea" v-model="exampleAdd" size="mini" text style="margin-top: -1%;width: 98%;" ></el-input>
-                </div>
-                </div>
-                <template #footer>
-                  <span class="dialog-footer">
-                    <el-button size="mini" @click="dialogVisible = false">取消</el-button>
-                    <el-button type="primary" @click="addSer" size="mini">
-                      提交
-                    </el-button>
-                </span>
+            </template>
+          </el-table-column>
+          <el-table-column prop="name" label="服务名称"  width="200">
+          </el-table-column>
+          <el-table-column prop="type" label="接口类型"  width="200">
+          </el-table-column>
+          <el-table-column prop="url" label="接口地址" width="400" show-overflow-tooltip/>
+          <el-table-column prop="rqtype" label="请求方式" width="200"/>
+          <el-table-column prop="rptype" label="响应类型" width="150">
+            <template #default="scope">
+              <div style="text-align: center;display: flex;" v-if="scope.row.rptype=='1'">
+                JSON
+              </div>
+              <div style="text-align: center;display: flex;" v-if="scope.row.rptype=='2'">
+                XML
+              </div>
+              <div style="text-align: center;display: flex;" v-if="scope.row.rptype=='3'">
+                HTML
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column prop="cateCode" label="服务分类" width="140" show-overflow-tooltip>
+          </el-table-column>
+          <el-table-column prop="address" label="操作">
+              <template #default="scope">
+                  <div style="display: flex;justify-content: space-between;width: 100%;">
+                      <!-- <el-button type="danger" text size="mini" style="margin-left: -5%;" @click="handleDelete(scope.row)">注销</el-button> -->
+                      <el-button @click="showDe(scope.row)" type="primary" text size="mini" style="margin-left: 0%;">查看</el-button>
+                      <el-button @click="testSer(scope.row)" type="primary" text size="mini" style="margin-left: 0%;">测试</el-button>
+                      <el-button @click="testSer(scope.row)" type="primary" text size="mini" style="margin-left: 0%;">审核</el-button>
+                  </div>
               </template>
+          </el-table-column>
+        </el-table>
+      </div>
+      
+        <el-dialog @close="clearAdd" v-model="dialogVisible" title="" width="60%" destroy-on-close :key="tableKey">
+          <div style="display: flex;align-items: center;">
+            <div v-if="detailJson.rqtype==='GET'">
+              <el-tag class="ml-2" type="warning">GET</el-tag>
+            </div>
+            <div v-if="detailJson.rqtype==='POST'">
+              <el-tag class="ml-2" type="warning">POST</el-tag>
+            </div>
+            <div style="margin-left: 1%;">
+              {{ detailJson.name }}:
+            </div>
+            <div style="margin-left: 1%;">
+              {{ detailJson.url }}
+            </div>
+          </div>
+          <el-descriptions style="margin-top: 1%;" :column="3" border>
+            <el-descriptions-item label="接口类型">{{ detailJson.type }}</el-descriptions-item>
+            <el-descriptions-item label="请求方式">{{ detailJson.rqtype }}</el-descriptions-item>
+            <el-descriptions-item label="响应类型">{{ detailJson.rptype }}</el-descriptions-item>
+            <el-descriptions-item label="服务分类">{{ detailJson.cateCode }}</el-descriptions-item>
+          </el-descriptions>
+          <div style="margin-top:4%;font-size: 18px;">
+            请求参数
+          </div>
+           <el-table 
+            style="margin-top: 1%;width: 98%;"
+            :data="tableDataCan" 
+            :cell-style="{ textAlign: 'center',padding:'2px 0' }"
+            :header-cell-style="{ textAlign: 'center'}"
+            :row-style="{ height: heightAll*0.01+'px',fontSize: '16px',textAlign:'center'  }"
+            border >
+                <el-table-column prop="paramCode" label="参数字段">
+                </el-table-column>
+                <el-table-column prop="paramName" label="参数名称">
+                </el-table-column>
+                <el-table-column prop="paramType" label="参数类型" width="200">
+                </el-table-column>
+                <el-table-column prop="paramValue" label="参数示例">
+                  
+                </el-table-column>
+                <el-table-column prop="paramNote" label="参数说明" show-overflow-tooltip>
+                </el-table-column>
+            </el-table>
+            <div style="margin-top:4%;font-size: 18px;">
+              返回参数
+            </div>
+            <el-input readonly  placeholder="" :rows="8" type="textarea" v-model="dataJsonXiang" size="mini" text style="margin-top: 1%;width: 98%;" ></el-input>
+          <template #footer>
+            <span class="dialog-footer">
+              <el-button size="mini" @click="dialogVisible = false">取消</el-button>
+              <el-button type="primary" @click="addSer" size="mini">
+                提交
+              </el-button>
+            </span>
+          </template>
+        </el-dialog>
+        <el-dialog @close="clearAdd" v-model="dialogVisibleTest" title="" width="60%" destroy-on-close :key="tableKey">
+          <div style="display: flex;align-items: center;width: 98%;">
+            <div v-if="detailJson.rqtype==='GET'">
+              <el-tag class="ml-2" type="warning">GET</el-tag>
+            </div>
+            <div v-if="detailJson.rqtype==='POST'">
+              <el-tag class="ml-2" type="warning">POST</el-tag>
+            </div>
+            <div style="margin-left: 1%;">
+              {{ detailJson.name }}:
+            </div>
+            <div style="margin-left: 1%;">
+              {{ detailJson.url }}
+            </div>
+            <svg-icon @click="test" icon-class="startTest" style="margin-left: 1%;width: 50px;height: 25px;cursor: pointer;"/>
+          </div>
+          <div style="margin-top:2%;font-size: 18px;">
+            请求参数
+          </div>
+           <el-table 
+            style="margin-top: 1%;width: 98%;"
+            :data="tableDataCan" 
+            :cell-style="{ textAlign: 'center',padding:'2px 0' }"
+            :header-cell-style="{ textAlign: 'center'}"
+            :row-style="{ height: heightAll*0.01+'px',fontSize: '16px',textAlign:'center'  }"
+            border >
+                <el-table-column prop="paramCode" label="参数字段">
+                </el-table-column>
+                <el-table-column prop="paramName" label="参数名称">
+                </el-table-column>
+                <el-table-column prop="paramType" label="参数类型" width="200">
+                </el-table-column>
+                <el-table-column prop="paramValue" label="测试值">
+                  <template #default="scope">
+                      <div style="width: 100%;">
+                          <el-input placeholder="请填写" type="primary" class="noBor" v-model="scope.row.paramValue" size="mini" text style="margin-left: 0%;"></el-input>
+                      </div>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="paramNote" label="参数说明" show-overflow-tooltip>
+                </el-table-column>
+            </el-table>
+            <div style="margin-top:4%;font-size: 18px;">
+              返回参数
+            </div>
+            <el-input  placeholder="" :rows="8" type="textarea" v-model="dataReturn" size="mini" text style="margin-top: 1%;width: 98%;" ></el-input>
+          <template #footer>
+            <span class="dialog-footer">
+            </span>
+          </template>
         </el-dialog>
         <el-dialog @close="clearFromLev" title="添加目录" v-model="dialogVisibleLevel" width="30%" destroy-on-close :key="tableKey">
           <el-form size="mini" :key="tableKey" style="margin-top: 1%;width: 90%;"  :model="formLev" label-position="right" ref="formRefLev" label-width="120px" :rules="rulesLev">
@@ -491,7 +249,7 @@
 import {getCatalog} from "@/api/service/catalog";
 import { Plus,Search,Filter,Promotion,Check  } from '@element-plus/icons-vue'
 import { reactive } from 'vue'
-import { modelTreeSelect,getSerDe,addService,addParam,editService,editParam,addServiceParam,delService,getTreeDe,addTree,deTree } from "@/api/service/info";
+import { modelTreeSelect,getSerDe,addService,addParam,editService,editParam,addServiceParam,delService,getTreeDe,addTree,deTree,getServiceInfo,testService } from "@/api/service/info";
 import { ref, onMounted, onUnmounted, nextTick,onBeforeMount } from 'vue';
 import JsonViewer from 'vue-json-viewer'
 import 'vue-json-viewer/style.css' 
@@ -511,7 +269,7 @@ const detail = ref({
 const show1Lev = ref(true)
 const inputNode =ref('')
 const isEdit = ref(true)
-const dataReturn = ref({})
+const dataReturn = ref('')
 const optionsCan = ref([
   {
     label:"string",
@@ -567,6 +325,7 @@ const tableDataCan = ref([
       paramNote:''
     }
 ])
+const dialogVisibleTest = ref(false)
 const optionsMdid = ref([])
 const optionsRqtype = ref([
     {label:'GET',
@@ -686,8 +445,8 @@ const cascaderOptions = ref([])
 const props1 = ref({
   checkStrictly: true,
 })
-const detailJson = ref([])
-
+const detailJson = ref('')
+const parOptions = ref([])
 watch(inputNode, (val) => {
   treeRef.value?.filter(val); // 调用树的过滤方法
 });
@@ -698,16 +457,36 @@ const filterNode = (value, data) => {
 
 const copied = ref(false);
 
-async function copyUrl(){
-  try {
-    await navigator.clipboard.writeText(detail.value.url);
-    copied.value = true;
-    console.log(detail.url.value,copied.value)
-    setTimeout(() => (copied.value = false), 2000); // 2秒后提示消失
-  } catch (err) {
-    console.error("复制失败", err);
-  }
-};
+function test(){
+  var par = detailJson.value
+  par.params = tableDataCan.value
+  testService(par).then(res=>{
+    console.log(res)
+    dataReturn.value = res.msg
+  })
+}
+function testSer(row){
+  getSerDe(row.srvId).then(res=>{
+    if(res.code===200){
+      detailJson.value = res.data.ptService
+      console.log(detailJson.value)
+      dialogVisibleTest.value = true
+      tableDataCan.value = res.data.list
+    }
+  })
+}
+function showDe(row){
+  getSerDe(row.srvId).then(res=>{
+    if(res.code===200){
+      detailJson.value = res.data.ptService
+      dialogVisible.value = true
+      detailJson.value.cateCode = row.cateCode
+      detailJson.value.rptype = row.rptype
+      tableDataCan.value = res.data.list
+      dataJsonXiang.value = res.data.ptService.rpcontent
+    }
+  })
+}
 function filterModelNodes(nodes) {
   if (!Array.isArray(nodes)) return [];
   
@@ -731,27 +510,9 @@ function filterModelNodes(nodes) {
   return result;
 }
 function clearAdd(){
-  formAdd.value = {
-    name:'',
-    cateCode:'',
-    type:'',
-    url:'',
-    rqtype:'',
-    rptype:'',
-    intro:'',
-    mdid:''
-  }
-  tableDataCanAdd.value = [
-    {
-      itemName:'',
-      itemCode:'',
-      paramType:'',
-      paramNote:''
-    }
+  tableDataCan.value = [
   ]
-  JsonAdd.value = ''
-  dialogVisible.value = false
-  exampleAdd.value = ''
+  dataReturn.value = ''
 }
 function extractModelNodesDFSIterative(root) {
   const result = [];
@@ -836,33 +597,6 @@ async function delSer(){
     proxy.$modal.msgSuccess("删除成功");
   }).catch(() => {});
 }
-async function saveEditService(){
-  console.log(JsonAdd.value)
-  var valid
-  await formRefJi.value.validate((valid1) => {
-    valid = valid1
-  });
-  console.log(valid)
-  if(valid){
-    var par = formJi.value
-    par.example = example.value
-    par.rpcontent = dataJsonXiang.value
-    par.cateCode = par.cateCode[0]
-    console.log(par)
-    await editService(par).then(res=>{
-      if(res.code===200){
-        var parCan = tableDataCan.value
-        // parCan.srvId = parId.value.srvId
-        addServiceParam(parCan).then(res1=>{
-          if(res1.code===200){
-            proxy.$modal.msgSuccess("修改成功");
-            getTreeLeft()
-          }
-        })
-      }
-    })
-  }
-}
 async function addSer(){
   console.log(JsonAdd.value)
   var valid
@@ -898,29 +632,75 @@ function showAdd(){
   dialogVisible.value = true
 }
 async function handleNodeClick(node,data,event){
-  parTree.value = data.data
-  currentNodeKey.value = data.data.id
-  console.log(data.data.nodeType)
-  isEdit.value = false
-  parId.value = data.data
-  await getSerDe(data.data.id).then(res=>{
-    if(res.data.ptService){
-      detail.value = res.data.ptService
-      tableDataCan.value = res.data.list
-      dataReturn.value = res.data.returnList
-      console.log(tableDataCan.value)
-      dataJsonXiang.value = res.data.ptService.rpcontent
-      formJi.value = res.data.ptService
-      example.value = res.data.ptService.example
-    }
+  // parTree.value = data.data
+  // currentNodeKey.value = data.data.id
+ 
+  // isEdit.value = false
+  // parId.value = data.data
+  // await getSerDe(data.data.id).then(res=>{
+  //   if(res.data.ptService){
+  //     detail.value = res.data.ptService
+  //     tableDataCan.value = res.data.list
+  //     dataReturn.value = res.data.returnList
+  //     console.log(tableDataCan.value)
+  //     dataJsonXiang.value = res.data.ptService.rpcontent
+  //     formJi.value = res.data.ptService
+  //     example.value = res.data.ptService.example
+  //   }
     
+  // })
+  var par = {
+    mdid:data.data.id
+  }
+  console.log(data.data.id)
+  await getServiceInfo(par).then(res=>{
+    if(res.data){
+      tableData.value = res.data.serviceList
+      
+    }
   })
-  detail.value.nodeType = data.data.nodeType
-  
+  parOptions.value.forEach(option => {
+    option.label = option.cateName;
+    option.value = option.cateCode;
+  });
+  console.log(parOptions.value)
+  for(var i = 0; i < parOptions.value.length; i++){
+    for(var i1 = 0; i1 < tableData.value.length; i1++){
+      console.log(i1);
+      if(parOptions.value[i].value === tableData.value[i1].cateCode){
+         tableData.value[i1].cateCode = parOptions.value[i].label
+      }
+    }
+  }
+  var par = [
+    {
+      value:'1',
+      label:'JSON'
+    },
+    {
+      value:'2',
+      label:'XML'
+    },
+    {
+      value:'3',
+      label:'HTML'
+    }
+  ]
+  for(var i = 0; i < par.length; i++){
+    for(var i1 = 0; i1 < tableData.value.length; i1++){
+      if(par[i].value === tableData.value[i1].rptype){
+         tableData.value[i1].rptype = par[i].label
+      }
+    }
+  }
 }
 async function getTreeLeft(){
-  var par
-  await modelTreeSelect().then(res=>{
+  var par = {
+    params:{
+      level:'2'
+    }
+  }
+  await modelTreeSelect(par).then(res=>{
     par = res.data
     data.value = res.data
     
@@ -957,6 +737,7 @@ function renameTreeProperties(tree) {
 }
 function fetchData() {
   getCatalog().then((r) => {
+    parOptions.value = r.data
     cascaderOptions.value = renameTreeProperties(buildTree(r.data))
     console.log(cascaderOptions.value)
   });

Некоторые файлы не были показаны из-за большого количества измененных файлов