Administrator 4 жил өмнө
parent
commit
5a25c34f08

+ 13 - 0
boman-api/boman-domain/src/main/java/com.boman.domain/GenTableColumn.java

@@ -163,6 +163,19 @@ public class GenTableColumn extends BaseEntity
 
     private List<SysFile> annex;
 
+    /**
+     * 前端单对象展示样式
+     */
+    private String cssClass;
+
+    public String getCssClass() {
+        return cssClass;
+    }
+
+    public void setCssClass(String cssClass) {
+        this.cssClass = cssClass;
+    }
+
     public List<SysFile> getAnnex() {
         return annex;
     }

+ 13 - 1
boman-modules/boman-gen/src/main/java/com/boman/gen/service/LoadTableServerImpl.java

@@ -1,5 +1,6 @@
 package com.boman.gen.service;
 
+import com.boman.common.core.utils.StringUtils;
 import com.boman.common.core.utils.obj.ObjectUtils;
 import com.boman.common.core.web.domain.AjaxResult;
 import com.boman.common.redis.RedisKey;
@@ -7,7 +8,9 @@ import com.boman.common.redis.service.RedisService;
 import com.boman.domain.GenTable;
 import com.boman.domain.GenTableColumn;
 import com.boman.domain.GenTableRelation;
+import com.boman.domain.SysDictData;
 import com.boman.domain.constant.FormDataConstant;
+import com.boman.system.api.RemoteDictDataService;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import org.apache.commons.collections4.CollectionUtils;
@@ -37,6 +40,8 @@ public class LoadTableServerImpl implements ILoadTableServer{
     private RedisService redisService;
     @Autowired
     private IGenTableRelationService genTableRelationService;
+    @Autowired
+    private RemoteDictDataService remoteDictDataService;
 
 
     @Override
@@ -133,12 +138,19 @@ public class LoadTableServerImpl implements ILoadTableServer{
                 if (table.getId().equals(tableColumn.getTableId())) {
                     // 存一个tableName留作备用
                     tableColumn.setTableName(table.getTableName());
+                    String dictType = tableColumn.getDictType();
+                    if(StringUtils.isNotBlank(dictType)){
+                        //查询对应的字典数据集合
+                        List<SysDictData> sysDictData = remoteDictDataService.listByType(dictType);
+                        if (sysDictData.size() > 0){
+                            tableColumn.setSysDictData(sysDictData);
+                        }
+                    }
                     // 把外键信息存进去,留着查询的时候用
                     packFkInfo(tableColumn);
                     columnList.add(tableColumn);
                 }
             }
-
             table.setColumns(columnList);
             table.setIsContainsBlob(isContainsBlob(columnList));
             redisService.setCacheObject(RedisKey.TABLE_INFO + table.getTableName(), table, 12L, TimeUnit.DAYS);

+ 28 - 13
boman-web-core/src/main/java/com/boman/web/core/service/TableServiceCmdService.java

@@ -11,13 +11,16 @@ import com.boman.common.core.utils.obj.ObjectUtils;
 import com.boman.common.core.web.domain.AjaxResult;
 import com.boman.common.redis.RedisKey;
 import com.boman.common.redis.service.RedisService;
+import com.boman.domain.GenTable;
+import com.boman.domain.GenTableColumn;
+import com.boman.domain.SysDictData;
 import com.boman.domain.constant.*;
 import com.boman.gen.api.RemoteGenTableColumnService;
 import com.boman.gen.api.RemoteGenTableService;
-import com.boman.domain.GenTable;
-import com.boman.domain.GenTableColumn;
-import com.boman.system.api.RemoteDictDataService;
-import com.boman.web.core.domain.*;
+import com.boman.web.core.domain.ActionType;
+import com.boman.web.core.domain.FormDataDto;
+import com.boman.web.core.domain.RowResult;
+import com.boman.web.core.domain.TableContext;
 import com.boman.web.core.service.delete.IBaseDeleteService;
 import com.boman.web.core.service.save.IBaseSaveService;
 import com.boman.web.core.service.select.IBaseSelectService;
@@ -35,7 +38,10 @@ import org.springframework.web.client.RestTemplate;
 
 import javax.annotation.Resource;
 import java.sql.Timestamp;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
 import java.util.concurrent.TimeUnit;
 import java.util.function.Predicate;
 
@@ -70,8 +76,6 @@ public class TableServiceCmdService {
     @Resource
     private RestTemplate restTemplate;
     @Resource
-    private RemoteDictDataService remoteDictDataService;
-    @Resource
     private RemoteGenTableService remoteGenTableService;
     @Resource
     private RemoteGenTableColumnService remoteGenTableColumnService;
@@ -119,7 +123,7 @@ public class TableServiceCmdService {
 
     private void handlerInputType(JSONObject commitData, List<GenTableColumn> columns) {
         for (Map.Entry<String, Object> entry : commitData.entrySet()) {
-            Object value =entry.getValue();
+            Object value = entry.getValue();
             for (GenTableColumn column : columns) {
                 if (entry.getKey().equals(column.getColumnName())
                         && ArrayUtils.arraysContains(GenConstants.COLUMNTYPE_NUMBER, getDbType(column.getColumnType()))) {
@@ -297,11 +301,23 @@ public class TableServiceCmdService {
                     String htmlType = column.getHtmlType();
                     String dictType = column.getDictType();
                     if (containsKeyIgnoreCase(json, columnName)) {
+                        column.setColumnValue(json.get(columnName));
                         // sysDict
                         if (isNotEmpty(dictType)) {
-                            // 既要sysDictData还得要columnValue
-                            column.setSysDictData(listSysDictDataByType(dictType));
-                            column.setColumnValue(json.get(columnName));
+                            String value = json.getString(columnName);
+                            List<SysDictData> sysDictData = column.getSysDictData();
+                            if(sysDictData.size() > 0){
+                                for (SysDictData sysDictDatum : sysDictData) {
+                                    if (sysDictDatum.getDictValue().equals(value)) {
+                                        String cssClass = sysDictDatum.getCssClass();
+                                        //给前端一个表示,来展示图片
+                                        column.setCssClass(cssClass);
+                                        break;
+                                    }
+                                }
+                            }
+/*                            // 既要sysDictData还得要columnValue
+                            column.setSysDictData(listSysDictDataByType(dictType));*/
                         }
                         // dateTime
                         if (NEED_CONVERT_DATE_LIST.contains(columnType)) {
@@ -315,8 +331,7 @@ public class TableServiceCmdService {
                         if (HTML_IMAGE_UPLOAD.equalsIgnoreCase(htmlType) || HTML_FILE_UPLOAD.equalsIgnoreCase(htmlType)) {
                             column.setAnnex(getAnnex(json.getString(columnName)));
                         }
-
-                        column.setReadonly(SubmitConstant.STATUS.equals(columnName));
+                        //column.setReadonly(SubmitConstant.STATUS.equals(columnName));
                     }
 
                     children.add(column);

+ 0 - 1
boman-web-core/src/main/java/com/boman/web/core/utils/ColumnUtils.java

@@ -104,7 +104,6 @@ public class ColumnUtils {
                     returnData.add(allColumn);
                 }
             }
-
         }
 
         return returnData;

+ 18 - 8
boman-web-core/src/main/java/com/boman/web/core/utils/HandlerFormDataUtils.java

@@ -46,15 +46,25 @@ public class HandlerFormDataUtils {
             return;
         }
 
-        RemoteDictDataService remoteDictDataService = SpringUtils.getBean(RemoteDictDataService.class);
         for (JSONObject jsonObject : result) {
-            for (GenTableColumn column : allColumns) {
-                String dictType = column.getDictType();
-                String columnName = column.getColumnName();
-                if (containsKeyIgnoreCase(jsonObject, columnName) && isNotEmpty(dictType)) {
-                    // 列表需要字典值的dictLabel, 不放入sysDictData
-                    String dictLabel = remoteDictDataService.selectDictLabel(dictType, jsonObject.getString(columnName));
-                    jsonObject.put(columnName, dictLabel);
+            //获取到所有rows查询字段的值
+            Set<String> strings = jsonObject.keySet();
+            for (String string : strings) {
+                for (GenTableColumn column : allColumns) {
+                    String dictType = column.getDictType();
+                    String columnName = column.getColumnName();
+                    if (string.equals(columnName) && isNotEmpty(dictType)) {
+                        // 列表需要字典值的dictLabel, 不放入sysDictData
+                        List<SysDictData> sysDictData = column.getSysDictData();
+                        //获取到字段的值
+                        String value = String.valueOf(jsonObject.get(string));
+                        for (SysDictData sysDictDatum : sysDictData) {
+                            if (sysDictDatum.getDictValue().equals(value)) {
+                                jsonObject.put(columnName, sysDictDatum.getDictLabel());
+                                jsonObject.put("list_class", sysDictDatum.getListClass());
+                            }
+                        }
+                    }
                 }
             }
         }