lyh
2025-01-20 9cbd8c9b66776f427b260902ad5fbb7301794d2c
新增字典翻译返回值List,新增DictList深度翻译
已添加1个文件
已修改5个文件
109 ■■■■ 文件已修改
lxzn-boot-base-core/src/main/java/org/jeecg/common/aspect/DictAspect.java 67 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-boot-base-core/src/main/java/org/jeecg/common/aspect/annotation/DictList.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-boot-base-core/src/main/java/org/jeecg/common/util/oConvertUtils.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/DocInfoController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IDocInfoService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DocInfoServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-boot-base-core/src/main/java/org/jeecg/common/aspect/DictAspect.java
@@ -70,7 +70,7 @@
    }
    /**
     * æœ¬æ–¹æ³•针对返回对象为Result çš„IPage的分页列表数据进行动态字典注入
     * æœ¬æ–¹æ³•针对返回对象为Result çš„IPage的分页列表数据、List数据(集合里面又套了一层集合是不支持)进行动态字典注入
     * å­—典注入实现 é€šè¿‡å¯¹å®žä½“类添加注解@dict æ¥æ ‡è¯†éœ€è¦çš„字典内容,字典分为单字典code即可 ï¼Œtable字典 code table text配合使用与原来jeecg的用法相同
     * ç¤ºä¾‹ä¸ºSysUser   å­—段为sex æ·»åŠ äº†æ³¨è§£@Dict(dicCode = "sex") ä¼šåœ¨å­—典服务立马查出来对应的text ç„¶åŽåœ¨è¯·æ±‚list的时候将这个字典text,已字段名称加_dictText形式返回到前端
     * ä¾‹è¾“入当前返回值的就会多出一个sex_dictText字段
@@ -94,12 +94,6 @@
    private Object parseDictText(Object result) {
        if (result instanceof Result) {
            if (((Result) result).getResult() instanceof IPage) {
                List<JSONObject> items = new ArrayList<>();
                //step.1 ç­›é€‰å‡ºåŠ äº† Dict æ³¨è§£çš„字段列表
                List<Field> dictFieldList = new ArrayList<>();
                // å­—典数据列表, key = å­—å…¸code,value=数据列表
                Map<String, List<String>> dataListMap = new HashMap<>(5);
                //取出结果集
                List<Object> records=((IPage) ((Result) result).getResult()).getRecords();
                //update-begin--Author:zyf -- Date:20220606 ----for:【VUEN-1230】 åˆ¤æ–­æ˜¯å¦å«æœ‰å­—典注解,没有注解返回-----
@@ -107,6 +101,58 @@
                if(!hasDict){
                    return result;
                }
                List<JSONObject> dictText = getDictText(records);
                ((IPage) ((Result) result).getResult()).setRecords(dictText);
            }
            else {
                //取出结果集
                Object object=  (Object) ((Result) result).getResult();
                Class<?> aClass = ((Result) result).getResult().getClass();
                if ("java.util.HashMap".equals(aClass.getName())){
                    //将map转换为集合在转换为map
                    Map<String, Object> mapset = new HashMap<>();
                    Map<String,Object> map=  (Map<String,Object>) object;
                    for (String s : map.keySet()) {
                        Object a1 = map.get(s);
                        List<Object> records=new ArrayList<>();
                        Class<?> aClass1 = a1.getClass();
                        if ("java.util.ArrayList".equals(aClass1.getName())){
                            records = (ArrayList)map.get(s);
                        }else{
                            records = oConvertUtils.castList(a1, Object.class);
                        }
                        Boolean hasDict= checkHasDict(records);
                        if(!hasDict){
                            return result;
                        }
                        List<JSONObject> dictText = getDictText(records);
                        mapset.put(s,dictText);
                    }
                    ((Result) result).setResult(mapset);
                }else {
                    List<Object> records = oConvertUtils.castList(object, Object.class);
                    //update-begin--Author:zyf -- Date:20220606 ----for:【VUEN-1230】 åˆ¤æ–­æ˜¯å¦å«æœ‰å­—典注解,没有注解返回-----
                    Boolean hasDict= checkHasDict(records);
                    if(!hasDict){
                        return result;
                    }
                    List<JSONObject> dictText = getDictText(records);
                    ((Result) result).setResult(dictText);
                }
            }
        }
        return result;
    }
    /**
     ä¼ å…¥é›†åˆ ç¿»è¯‘字典值
     **/
    private List<JSONObject> getDictText(List<Object> records){
        List<JSONObject> items = new ArrayList<>();
        //step.1 ç­›é€‰å‡ºåŠ äº† Dict æ³¨è§£çš„字段列表
        List<Field> dictFieldList = new ArrayList<>();
        // å­—典数据列表, key = å­—å…¸code,value=数据列表
        Map<String, List<String>> dataListMap = new HashMap<>(5);
                log.debug(" __ è¿›å…¥å­—典翻译切面 DictAspect â€”— " );
                //update-end--Author:zyf -- Date:20220606 ----for:【VUEN-1230】 åˆ¤æ–­æ˜¯å¦å«æœ‰å­—典注解,没有注解返回-----
@@ -196,12 +242,7 @@
                        }
                    }
                }
                ((IPage) ((Result) result).getResult()).setRecords(items);
            }
        }
        return result;
        return items;
    }
    /**
lxzn-boot-base-core/src/main/java/org/jeecg/common/aspect/annotation/DictList.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package org.jeecg.common.aspect.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
 * ç±»æè¿°: æ·±åº¦å­—典翻译注解
 * åªèƒ½ç”¨æ¥æ³¨è§£List类型的属性
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface DictList {
}
lxzn-boot-base-core/src/main/java/org/jeecg/common/util/oConvertUtils.java
@@ -677,4 +677,19 @@
        }
        return json;
    }
    public static <T> List<T> castList(Object obj, Class<T> clazz)
    {
        List<T> result = new ArrayList<T>();
        if(obj instanceof List<?>)
        {
            for (Object o : (List<?>) obj)
            {
                result.add(clazz.cast(o));
            }
            return result;
        }
        return null;
    }
}
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/DocInfoController.java
@@ -13,7 +13,6 @@
import org.jeecg.modules.dnc.request.DocInfoUploadRequest;
import org.jeecg.modules.dnc.response.CommonCode;
import org.jeecg.modules.dnc.response.QueryListResponseResult;
import org.jeecg.modules.dnc.response.QueryPageResponseResult;
import org.jeecg.modules.dnc.response.ResponseResult;
import org.jeecg.modules.dnc.service.IDocInfoService;
import org.jeecg.modules.dnc.utils.ValidateUtil;
@@ -177,7 +176,8 @@
    @ApiOperation(value = "文件表-查询可指派的文档信息列表", notes = "文件表-查询可指派的文档信息列表")
    @GetMapping("/find/list")
    public Result<?> findList(DocInfoQueryRequest docQuery) {
        return docInfoService.findList(docQuery);
        List<DocInfo> docInfoList=docInfoService.findList(docQuery);
        return Result.ok(docInfoList);
    }
    @AutoLog(value = "文件表-批量删除文档接口")
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/IDocInfoService.java
@@ -207,7 +207,7 @@
     * @param docQuery
     * @return
     */
    Result<?> findList(DocInfoQueryRequest docQuery);
    List<DocInfo> findList(DocInfoQueryRequest docQuery);
    /**
     * èŽ·å–ä¸€ç»„å·¥åºä¸‹çš„æ–‡æ¡£ä¿¡æ¯åˆ—è¡¨
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/DocInfoServiceImpl.java
@@ -790,7 +790,7 @@
    }
    @Override
    public Result<?> findList(DocInfoQueryRequest docQuery) {
    public List<DocInfo> findList(DocInfoQueryRequest docQuery) {
        if(docQuery == null || !ValidateUtil.validateString(docQuery.getAttributionId())
                || !ValidateUtil.validateInteger(docQuery.getAttributionType()) ||
                !ValidateUtil.validateString(docQuery.getDocClassCode())) {
@@ -816,8 +816,7 @@
        }
        queryWrapper.ge(StrUtil.isNotEmpty(docQuery.getStartTime()),"date_format(u.create_time,'%Y-%m-%d %H:%i:%s')",docQuery.getStartTime());
        queryWrapper.le(StrUtil.isNotEmpty(docQuery.getEndTime()),"date_format(u.create_time,'%Y-%m-%d %H:%i:%s')",docQuery.getEndTime());
        List<DocInfo> docInfoIPage = super.getBaseMapper().findDocExtList(queryWrapper);
        return Result.ok(docInfoIPage);
        return super.getBaseMapper().findDocExtList(queryWrapper);
    }
    @Override