فهرست منبع

知识库——子系统配置 V1.1
优化接口部分功能
添加反参

hyq 1 سال پیش
والد
کامیت
8ddded42b5

+ 2 - 2
cx-knowledge-base/cx-knowledge-base-common/src/main/java/com/rongwei/bscommon/sys/service/SubConfigService.java

@@ -1,6 +1,7 @@
 package com.rongwei.bscommon.sys.service;
 
 import com.rongwei.bsentity.vo.KdSubsystemDetailVo;
+import com.rongwei.rwcommon.base.R;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -20,7 +21,6 @@ public interface SubConfigService {
      * @return {@link List< KdSubsystemDetailVo>}
      * @date 2024/1/8 11:48
      * @author shangmi
-     *
      */
-    List<KdSubsystemDetailVo> getModulesById(String id);
+    R getModulesById(String id);
 }

+ 40 - 25
cx-knowledge-base/cx-knowledge-base-common/src/main/java/com/rongwei/bscommon/sys/service/impl/SubConfigServiceImpl.java

@@ -26,7 +26,8 @@ public class SubConfigServiceImpl implements SubConfigService {
     private final String[] JSON_NAME = {
             "urladdr", "insttype", "roption", "global", "base", "editPage", "id",
             "rowEdit", "layout", "form", "data", "tableColumnName", "columns",
-            "tableColumnType", "tableName", "label"
+            "tableColumnType", "tableName", "label","dataSource","formData",
+            "insttype","heads","field"
     };
 
     private final String[] TYPE_NAME = {
@@ -44,20 +45,27 @@ public class SubConfigServiceImpl implements SubConfigService {
      * @return {@link List< KdSubsystemDetailVo>}
      * @date 2024/1/8 11:48
      * @author shangmi
-     *
      */
 
     @Override
-    public List<KdSubsystemDetailVo> getModulesById(String id) {
+    public R getModulesById(String id) {
         R sysModule = rwAdminFeign.infoSysModule(id);
         // 获得pagePartID
         JSONObject module = JSONUtil.parseObj(sysModule.getData());
-        String[] split = module.get(JSON_NAME[0]).toString().split("/");
+        Object urlAddr = module.get(JSON_NAME[0]);
+        if (urlAddr==null){
+            return R.error("该菜单未配置编辑页或页编辑,请重新选择!");
+        }
+        String[] split = urlAddr.toString().split("/");
         String pagePartId = split[split.length - 1];
+
         // 获取编辑页信息
         String pagePart = getPagePart(pagePartId);
+        if (pagePart==null){
+            return R.error("该菜单未配置编辑页或页编辑,请重新选择!");
+        }
         //查询页面展示的所有字段
-        return getTableNameByData(pagePart);
+        return R.ok(getTableNameByData(pagePart));
     }
 
 
@@ -71,6 +79,9 @@ public class SubConfigServiceImpl implements SubConfigService {
      */
 
     public String getPagePart(String pagePartId) {
+        if (pagePartId == null){
+            return null;
+        }
         R sysPagePart = rwAdminFeign.infoPagePart(pagePartId);
         JSONObject pagePart = JSONUtil.parseObj(sysPagePart.getData());
         if (InsttypeEnum.TABLE.getMassage().equals(pagePart.get(JSON_NAME[1], String.class)) && !JSONUtil.parseObj(
@@ -101,42 +112,46 @@ public class SubConfigServiceImpl implements SubConfigService {
      */
 
     public List<KdSubsystemDetailVo> getTableNameByData(String pagePart) {
-        List form = JSONUtil.parseObj(JSONUtil.parseObj(pagePart).get(JSON_NAME[8])).get(JSON_NAME[9], List.class);
-        List tableColumNameList = (List) form.stream().map(info -> JSONUtil.parseObj(JSONUtil.parseObj(info).get(JSON_NAME[10]))
-                .get(JSON_NAME[11], String.class)).filter(Objects::nonNull).collect(Collectors.toList());
-        List base = JSONUtil.parseObj(JSONUtil.parseObj(pagePart).get(JSON_NAME[12])).get(JSON_NAME[4], List.class);
-        List<KdSubsystemDetailVo> kdSubsystemDetailList = (List<KdSubsystemDetailVo>) base.stream().map(info -> {
+        boolean instType = "table".equals(JSONUtil.parseObj(JSONUtil.parseObj(JSONUtil.parseObj(pagePart).get(JSON_NAME[16])).get(JSON_NAME[17])).get(JSON_NAME[18], String.class));
+        //获得layout中的form
+        List<String> form = JSONUtil.toList(JSONUtil.parseObj(JSONUtil.parseObj(pagePart).get(JSON_NAME[8])).get(instType?JSON_NAME[19]:JSON_NAME[9], String.class),String.class);
+        //将页面上展示的真实字段获取到
+        List<String> tableColumNameList = form.stream().map(info -> instType?JSONUtil.parseObj(info).get(JSON_NAME[20], String.class)
+        :JSONUtil.parseObj(JSONUtil.parseObj(info).get(JSON_NAME[10])).get(JSON_NAME[11], String.class))
+        .filter(Objects::nonNull).collect(Collectors.toList());
+        //获取到columns中的base集合
+        List<String> base = JSONUtil.toList(JSONUtil.parseObj(JSONUtil.parseObj(pagePart).get(JSON_NAME[12])).get(JSON_NAME[4],String.class),String.class);
+        //遍历获取base中的信息
+        return base.stream()
+                .filter(info ->tableColumNameList.contains(JSONUtil.parseObj(JSONUtil.parseObj(info).get(JSON_NAME[4])).get(JSON_NAME[11], String.class)) )
+                .map(info -> {
             KdSubsystemDetailVo kdSubsystemDetail = new KdSubsystemDetailVo();
             JSONObject json = JSONUtil.parseObj(JSONUtil.parseObj(info).get(JSON_NAME[4]));
-            String tablecolumnnane = json.get(JSON_NAME[11], String.class);
-            if (!tableColumNameList.contains(tablecolumnnane)){
-                return null;
-            }
-            kdSubsystemDetail.setTablecolumnnane(tablecolumnnane)
+            String tableColumnNane = json.get(JSON_NAME[11], String.class);
+            kdSubsystemDetail.setTablecolumnnane(tableColumnNane)
                     .setTablecolumntype(json.get(JSON_NAME[13], String.class))
                     .setTablename(json.get(JSON_NAME[14], String.class))
                     .setLabel(json.get(JSON_NAME[15], String.class));
             JSONObject controlType = JSONUtil.parseObj(JSONUtil.parseObj(json.get(TYPE_NAME[0])));
-            String enumtype = controlType.get(TYPE_NAME[1], String.class);
+            String enumType = controlType.get(TYPE_NAME[1], String.class);
             kdSubsystemDetail.setControltype(controlType.get(TYPE_NAME[0], String.class))
-                    .setEnumtype(enumtype);
-            if (enumtype==null) {
+                    .setEnumtype(enumType);
+            if (enumType==null) {
                 return kdSubsystemDetail;
             }
-            if (TYPE_NAME[2].equals(enumtype)) {
+            if (TYPE_NAME[2].equals(enumType)) {
                 kdSubsystemDetail.setDataorigin(controlType.get(TYPE_NAME[2], String.class));
-            } else if (TYPE_NAME[3].equals(enumtype)) {
+            } else if (TYPE_NAME[3].equals(enumType)) {
                 kdSubsystemDetail.setDataorigin(controlType.get(TYPE_NAME[7], String.class));
-            } else if (TYPE_NAME[4].equals(enumtype)) {
+            } else if (TYPE_NAME[4].equals(enumType)) {
                 kdSubsystemDetail.setDataorigin(controlType.get(TYPE_NAME[8], String.class));
-            } else if (TYPE_NAME[5].equals(enumtype)) {
+            } else if (TYPE_NAME[5].equals(enumType)) {
                 kdSubsystemDetail.setDataorigin(controlType.get(TYPE_NAME[9], String.class));
-            } else if (TYPE_NAME[6].equals(enumtype)) {
+            } else if (TYPE_NAME[6].equals(enumType)) {
                 kdSubsystemDetail.setDataorigin(controlType.get(TYPE_NAME[10], String.class));
             }
             return kdSubsystemDetail;
-        }).filter(Objects::nonNull).collect(Collectors.toList());
-        return kdSubsystemDetailList;
+        }).collect(Collectors.toList());
     }
 
 

+ 1 - 1
cx-knowledge-base/cx-knowledge-base-server/src/main/java/com/rongwei/bsserver/sys/controller/SubConfigController.java

@@ -40,7 +40,7 @@ public class SubConfigController {
     public R getModulesById(@RequestParam("id")String id){
         try {
             log.info("进入接口:/subsystem-config/getModulesById,入参为:{}",id);
-            return R.ok(subConfigService.getModulesById(id));
+            return subConfigService.getModulesById(id);
         }catch (Exception e){
             ExceptionUtils.printExceptionDetail(e,"异常为:");
             log.error(e.getMessage());