dangsn
2024-12-10 0e967c072099b9959264c8cc324091c1d0472251
调整工具类中给对象赋值的接口
已修改2个文件
81 ■■■■■ 文件已修改
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/wrapper/VciQueryWrapperForDO.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/util/WebUtil.java 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/wrapper/VciQueryWrapperForDO.java
@@ -175,6 +175,39 @@
    }};
    /**
     * BaseModel和BusinessObject中的属性映射。
     * key:为BaseModel中的属性,value:为BusinessObject中的属性
     */
    public static final Map<String, String> BASEMODEL_CBO_FIELD_MAP = new HashMap(){{
        put("oid", "oid");
        put("revisionoid","revoid");
        put("nameoid","nameoid");
        put("btmname","btname");
        put("lastr","islastr");
        put("firstr","isfirstr");
        put("lastv","islastv");
        put("firstv","isfirstv");
        put("creator","creator");
        put("createtime","createtime");
        put("lastmodifier","modifier");
        put("lastmodifytime","modifytime");
        put("revisionrule","revisionrule");
        put("versionrule","versionrule");
        put("revisionseq","revisionseq");
        put("revisionvalue","revisionvalue");
        put("versionseq","versionseq");
        put("versionvalue","versionvalue");
        put("lctid","lctid");
        put("lcstatus","lcstatus");
        put("ts","ts");
        put("id","id");
        put("name","name");
        put("description","description");
        put("owner","owner");
        put("copyfromversion","fromversion");
    }};
    /**
     * 主键属性
     */
    public static final String OID_FIELD = "oid";
Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/util/WebUtil.java
@@ -624,7 +624,7 @@
            }
        }
        //如果版本本次序号的属性,需要从属性的映射中,获取业务类型中的字段名称
        clientBoAttrName = VciQueryWrapperForDO.BASE_MODEL_COMPATIBILITY_MAP.getOrDefault(clientBoAttrName.toLowerCase(Locale.ROOT),clientBoAttrName);
        clientBoAttrName = VciQueryWrapperForDO.BASEMODEL_CBO_FIELD_MAP.getOrDefault(clientBoAttrName.toLowerCase(Locale.ROOT),clientBoAttrName);
        return clientBoAttrName;
    }
    
@@ -754,8 +754,8 @@
            try {
                PropertyDescriptor pd = new PropertyDescriptor(fieldName, c);
                return pd.getWriteMethod();
            } catch (SecurityException e) {
            } catch (IntrospectionException e) {
            } catch (Exception e) {
                //TODO 不做处理
            }
        }
        return null;
@@ -815,6 +815,7 @@
     * @param value 属性值
     */
    public static void setValueForFieldFromCbo(String fieldName,Object obj,String value){
        System.out.println("fieldName:"+fieldName+",value:"+value);
        try{
            Field field = getFieldForObject(fieldName,obj);
            if(field != null){
@@ -1164,38 +1165,18 @@
            List<Field> boFields = getAllFieldForObj(bo.getClass());
            if(!CollectionUtils.isEmpty(boFields)){
                for(Field field : boFields){
                    if(VciQueryWrapperForDO.BASEMODEL_CBO_FIELD_MAP.containsValue(field.getName().toLowerCase())){
                    //说明这个就是在BO对象上的
                    Object value = getValueFromField(field.getName(), bo);
                    if(value != null){
                        //BusinessObject和BaseModel中,以下的属性,不相同,需要单独处理
                        switch (field.getName().toLowerCase()){
                            case "revoid":
                                setValueForFieldFromCbo("revisionOid", obj, getStringValueFromObject(value));
                                break;
                            case "btname":
                                setValueForFieldFromCbo("btmName", obj, getStringValueFromObject(value));
                                break;
                            case "islastr":
                                setValueForFieldFromCbo("lastr", obj, getStringValueFromObject(value).equalsIgnoreCase("true")?"1":"0");
                                break;
                            case "isfirstr":
                                setValueForFieldFromCbo("firstr", obj, getStringValueFromObject(value).equalsIgnoreCase("true")?"1":"0");
                                break;
                            case "islastv":
                                setValueForFieldFromCbo("lastv", obj, getStringValueFromObject(value).equalsIgnoreCase("true")?"1":"0");
                                break;
                            case "isfirstv":
                                setValueForFieldFromCbo("firstv", obj, getStringValueFromObject(value).equalsIgnoreCase("true")?"1":"0");
                                break;
                            case "modifytime":
                                setValueForFieldFromCbo("lastmodifytime", obj, getStringValueFromObject(value));
                                break;
                            case "fromversion":
                                setValueForFieldFromCbo("copyFromVersion", obj, getStringValueFromObject(value));
                                break;
                            default:
                                setValueForFieldFromCbo(fieldAttrMap.get(field.getName().toLowerCase()), obj, getStringValueFromObject(value));
                                break;
                            //BusinessObject和BaseModel中,是否第一版本版次的属性,需要单独处理
                            String fieldValue;
                            if(VciQueryWrapperForDO.BASE_MODEL_COMPATIBILITY_MAP.containsValue(field.getName().toLowerCase())){
                                fieldValue = getStringValueFromObject(value).equalsIgnoreCase("true")?"1":"0";
                            }else{
                                fieldValue = getStringValueFromObject(value);
                            }
                            setValueForFieldFromCbo(fieldAttrMap.get(field.getName().toLowerCase()), obj, fieldValue);
                        }
                    }
                }
@@ -1579,8 +1560,7 @@
     * @return true为默认
     */
    public static boolean isDefaultField(String fieldNames){
        if(VciQueryWrapperForDO.BASIC_FIELD_MAP.containsKey(fieldNames) || VciQueryWrapperForDO.LIFECYCLE_MANAGE_FIELD_MAP.containsKey(fieldNames)
        || VciQueryWrapperForDO.REVISION_MANAGE_FIELD_MAP.containsKey(fieldNames) || VciQueryWrapperForDO.BASE_MODEL_COMPATIBILITY_MAP.containsValue(fieldNames)) {
        if(VciQueryWrapperForDO.BASEMODEL_CBO_FIELD_MAP.containsKey(fieldNames)) {
            return true;
        }
        return false;