浏览代码

列表需要计算的值展示问题

shiqian 4 年之前
父节点
当前提交
2b3e66d130

+ 4 - 4
boman-web-core/src/main/java/com/boman/web/core/domain/TableContext.java

@@ -121,8 +121,8 @@ public class TableContext {
                         if (INSERT_CAN_EDIT.equals(insertCanEdit) && INSERT_VISIBLE.equals(insertVisible)) {
                             commitData.put(entry.getKey(), entry.getValue());
                         } else {
-                            // 如果新增不可见,新增也不可以修改,但是你是外键的话,就可以修改
-                            if (isNotEmpty(column.getForeignKey())) {
+                            // 如果新增不可见,新增也不可以修改,但是你是外键的话或者是计算以后的值,就可以修改
+                            if (isNotEmpty(column.getForeignKey()) || isNotEmpty(column.getExtendedAttributes())) {
                                 commitData.put(entry.getKey(), entry.getValue());
                             }
                         }
@@ -131,8 +131,8 @@ public class TableContext {
                         if (UPDATE_CAN_EDIT.equals(updateCanEdit) && UPDATE_VISIBLE.equals(updateVisible)) {
                             commitData.put(entry.getKey(), entry.getValue());
                         } else {
-                            // 如果编辑不可见,编辑也不可以修改,但是你是外键的话,就可以修改
-                            if (isNotEmpty(column.getForeignKey())) {
+                            // 如果编辑不可见,编辑也不可以修改,但是你是外键的话或者是计算以后的值,就可以修改
+                            if (isNotEmpty(column.getForeignKey()) || isNotEmpty(column.getExtendedAttributes())) {
                                 commitData.put(entry.getKey(), entry.getValue());
                             }
                         }

+ 14 - 0
boman-web-core/src/main/java/com/boman/web/core/service/common/CommonServiceImpl.java

@@ -7,6 +7,7 @@ import com.boman.domain.GenTable;
 import com.boman.web.core.domain.FormDataDto;
 import com.boman.web.core.service.TableServiceCmdService;
 import com.boman.web.core.service.select.IBaseSelectService;
+import com.boman.web.core.utils.ColumnUtils;
 import com.boman.web.core.utils.IdUtils;
 import org.springframework.stereotype.Service;
 
@@ -60,6 +61,19 @@ public class CommonServiceImpl implements ICommonService {
         return selectService.getByMap(tableName, condition);
     }
 
+    /**
+     * 功能描述: 根据tableName和map(属性名和属性值)进行查查
+     *
+     * @param tableName tableName
+     * @param param     属性名和属性值
+     * @return com.alibaba.fastjson.JSONObject
+     */
+    @Override
+    public JSONObject getOneByMap(String tableName, JSONObject param) {
+        requireNonNull(tableName, "表名为空");
+        return selectService.getOneByMap(tableName, param);
+    }
+
     @Override
     public Integer getMaxId(String tableName, String pkName) {
         return IdUtils.getMaxId(tableName, pkName);

+ 9 - 0
boman-web-core/src/main/java/com/boman/web/core/service/common/ICommonService.java

@@ -30,6 +30,15 @@ public interface ICommonService {
      */
     List<JSONObject> getByMap(String tableName, JSONObject condition);
 
+    /**
+     * 功能描述: 根据tableName和map(属性名和属性值)进行查查
+     *
+     * @param tableName tableName
+     * @param param     属性名和属性值
+     * @return jcom.alibaba.fastjson.JSONObject
+     */
+    JSONObject getOneByMap(String tableName, JSONObject param);
+
     Integer getMaxId(String tableName, String pkName);
 
     /**

+ 21 - 10
boman-web-core/src/main/java/com/boman/web/core/utils/HandlerFormDataUtils.java

@@ -272,16 +272,7 @@ public class HandlerFormDataUtils {
      * @param allColumns allColumns
      */
     public static void markTrueByExtend(List<GenTableColumn> allColumns) {
-        Set<String> extendColumnNames = new HashSet<>(16);
-        for (GenTableColumn col : allColumns) {
-            String extendedAttributes = col.getExtendedAttributes();
-            if (isNotEmpty(extendedAttributes)) {
-                JSONObject jsonObject = JSON.parseObject(extendedAttributes);
-                JSONArray jsonArray = jsonObject.getJSONArray(COL);
-                CollectionUtils.addJSONArray(extendColumnNames, jsonArray);
-            }
-        }
-
+        Set<String> extendColumnNames = getExtendColumnNames(allColumns);
         if (isEmpty(extendColumnNames)) {
             return;
         }
@@ -294,4 +285,24 @@ public class HandlerFormDataUtils {
         }
     }
 
+    /**
+     * 功能描述: 先拿到所有的和计算相关的列
+     *
+     * @param allColumns allColumns
+     * @return java.util.Set<java.lang.String>
+     */
+    private static Set<String> getExtendColumnNames(List<GenTableColumn> allColumns) {
+        Set<String> extendColumnNames = new HashSet<>(16);
+        for (GenTableColumn col : allColumns) {
+            String extendedAttributes = col.getExtendedAttributes();
+            if (isNotEmpty(extendedAttributes)) {
+                JSONObject jsonObject = JSON.parseObject(extendedAttributes);
+                JSONArray jsonArray = jsonObject.getJSONArray(COL);
+                CollectionUtils.addJSONArray(extendColumnNames, jsonArray);
+            }
+        }
+
+        return extendColumnNames;
+    }
+
 }