ludc
2023-12-12 e50b37ea73d82149cd52646464389bf6010b1d22
map对象大小写导致code返回为空问题
已修改3个文件
43 ■■■■ 文件已修改
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/DefaultAttrAssimtUtil.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/DefaultAttrAssimtUtil.java
@@ -9,9 +9,7 @@
import org.springblade.core.tool.utils.Func;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.*;
/**
 * 新增时默认值属性赋值
@@ -221,7 +219,7 @@
            baseModel.setRevisionOid(dataMap.getOrDefault(isCase?"REVISIONOID":"revisionoid",""));
            baseModel.setRevisionValue(dataMap.getOrDefault(isCase?"REVISIONVALUE":"revisionvalue",""));
            baseModel.setLastModifier(AuthUtil.getUser().getAccount());
            baseModel.setLastModifier(Func.isNotEmpty(user) ? user.getAccount():AuthUtil.getUser().getAccount());
            baseModel.setLcStatus(dataMap.getOrDefault(isCase?"LCSTATUS":"lcstatus",""));
            baseModel.setName(dataMap.getOrDefault(isCase?"NAME":"name",""));
            baseModel.setTenantId(dataMap.getOrDefault(isCase?"TENANT_ID":"tenant_id",""));
@@ -259,4 +257,22 @@
        return date;
    }
    /**
     * map对象转换为小写
     * @param dataMapList
     * @param isLowerCase
     */
    public static void mapToLowerCase(List<Map<String,String>> dataMapList, boolean isLowerCase){
        // 遍历List中的每个Map
        for (Map<String, String> map : dataMapList) {
            Map<String, String> newMap = new HashMap<>();
            // 遍历每个Map中的key,并将其转换为小写
            for (String key : map.keySet()) {
                newMap.put(isLowerCase ? key.toLowerCase():key.toLowerCase(Locale.ROOT), map.get(key));
            }
            // 用新的Map替换旧的Map
            dataMapList.set(dataMapList.indexOf(map), newMap);
        }
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
@@ -2507,7 +2507,7 @@
                            //处理关键属性查出多条的话,根据集成调用的当前分类代号取当前分类的码值。
                            Map<String/**编码**/, BaseModel/**重复编码数据**/> classOidTOBaseModelMap = new HashMap<>();
                                newCboList.stream().forEach(baseModel->{
                                    String codeclsfid=baseModel.getData().get(CODE_CLASSIFY_OID_FIELD.toUpperCase(Locale.ROOT));
                                String codeclsfid=baseModel.getData().get(CODE_CLASSIFY_OID_FIELD.toLowerCase(Locale.ROOT));
                                    classOidTOBaseModelMap.put(codeclsfid,baseModel);
                                });
                            String codeclsfid= classifyFullInfo.getCurrentClassifyVO().getOid();
@@ -2546,7 +2546,7 @@
                        }
                    }
                });
                //关键熟悉更改
                //关键属性更改
                if (!CollectionUtils.isEmpty(editBoList)) {
                    engineService.updateBatchByBaseModel(classifyFullInfo.getTopClassifyVO().getBtmTypeId(),editBoList);//保存数据
                }
@@ -2782,6 +2782,7 @@
        }
        List<Map<String,String>> dataMapList=commonsMapper.queryByOnlySqlForMap(sb.toString());
        DefaultAttrAssimtUtil.mapToLowerCase(dataMapList,true);
        List<ClientBusinessObject> cboList=    ChangeMapTOClientBusinessObjects(dataMapList);
        Map<String, ClientBusinessObject> codeSystemObjectMap = cboList.stream().filter(systeDataObject -> systeDataObject != null && StringUtils.isNotBlank(systeDataObject.getId())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getId(), t -> t));
        Map<String, String> errorMap = new HashMap<>();
@@ -3959,6 +3960,7 @@
                        String sql = "select " + valueField + "," + showText.toLowerCase(Locale.ROOT) +" from " + table + "  where " + showText + " in (%s)";
                        valueCollections.stream().forEach(values->{
                            List<Map<String,String>> dataMapList = commonsMapper.queryByOnlySqlForMap(String.format(sql, VciBaseUtil.toInSql(values.toArray(new String[0]))));
                            DefaultAttrAssimtUtil.mapToLowerCase(dataMapList,true);
                            List<ClientBusinessObject> cbos=    ChangeMapTOClientBusinessObjects(dataMapList);
                            if(!CollectionUtils.isEmpty(cbos)){
                                valueOidTextMap.putAll(cbos.stream().collect(Collectors.toMap(s->s.getAttributeValue(valueField),t->t.getAttributeValue(showText))));
@@ -4403,6 +4405,7 @@
                List<String> repeatData = commonsMapper.selectList(sqlBO.getSqlId());
                if(!repeatData.isEmpty()){
                    final List<Map<String,String>> newDataList = commonsMapper.queryByOnlySqlForMap(sqlBO.getSqlUnPage());
                    DefaultAttrAssimtUtil.mapToLowerCase(newDataList,true);
                    //List<ClientBusinessObject> newCboList=ChangeMapTOClientBusinessObjects(newDataList);
                    List<BaseModel> newCboList = new ArrayList<>();
                    newDataList.stream().forEach(stringStringMap -> {
@@ -4631,10 +4634,11 @@
    }
    private List<ClientBusinessObject> ChangeMapTOClientBusinessObjects(List<Map<String,String>> oldDataMap){
        List<ClientBusinessObject> clientBusinessObjectList=new ArrayList<>();
        DefaultAttrAssimtUtil.mapToLowerCase(oldDataMap,true);
        final BladeUser user = AuthUtil.getUser();
        oldDataMap.stream().forEach(dataMap->{
            ClientBusinessObject clientBusinessObject=new ClientBusinessObject();
            DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(dataMap,clientBusinessObject,true,user);
            DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(dataMap,clientBusinessObject,false,user);
            for (String key:dataMap.keySet()){
                Object value= dataMap.getOrDefault(key,"");
                clientBusinessObject.setAttributeValue(key.toLowerCase(Locale.ROOT),value==null?"":value.toString());
@@ -4925,6 +4929,7 @@
                    pageHelper.addDefaultDesc("id");
                    CodeTemplateAttrSqlBO sqlBO = engineService.getSqlByTemplateVO(btmtypeid, templateVO, conditionMap, pageHelper);
                    List<Map<String,String>> dataMapList=commonsMapper.queryByOnlySqlForMap(sqlBO.getSqlUnPage());
                    DefaultAttrAssimtUtil.mapToLowerCase(dataMapList,true);
                    List<ClientBusinessObject> resembleCboList=    ChangeMapTOClientBusinessObjects(dataMapList);
                    if(!CollectionUtils.isEmpty(resembleCboList)) {
                        List<Map<String, String>> finalDataMap = dataMap;
@@ -5293,7 +5298,7 @@
                final BladeUser user = AuthUtil.getUser();
                cboList.stream().forEach(clientBusinessObject -> {
                    BaseModel newBaseModel=new BaseModel();
                    DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(clientBusinessObject.getData(),newBaseModel,true,user);
                    DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(clientBusinessObject.getData(),newBaseModel,false,user);
                    newCbos.add(newBaseModel);
                });
                // 插入新的数据
@@ -5332,12 +5337,12 @@
            List<Map<String,String>>dataList=new ArrayList<>();
            List<String> fieldList= execGroupCodePortDataDTO.getFieldList();
            getDatas(classifyFullInfo,templateVO,execGroupCodePortDataDTO.getFieldList(),dataList,Arrays.asList(code));
            DefaultAttrAssimtUtil.mapToLowerCase(dataList,true);
            if(!CollectionUtils.isEmpty(dataList)){
                Map<String,String> newDataMap=new HashMap<>();//将新对象属性暂时存储在Map<>
                newDataMap.putAll(clientBusinessObject.getData());
                Map<String,String> dataMap=dataList.get(0);
                BaseModel oldBaseModel=new BaseModel();
                DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(dataMap,oldBaseModel,false,user);
                String oldOid=oldBaseModel.getOid();
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/UniversalInterfaceImpl.java
@@ -568,6 +568,7 @@
                sb.append(VciBaseUtil.toInSql(codeList.toArray(new String[0])));
                sb.append(")");
                List<Map<String,String>> dataMapList=commonsMapper.queryByOnlySqlForMap(sb.toString());
                List<ClientBusinessObject> cboList=    ChangeMapTOClientBusinessObjects(dataMapList);
                ApplyDatasVO applyDatasVO=new ApplyDatasVO();
                ApplyDatasVO editDatasVO=new ApplyDatasVO();
@@ -2306,10 +2307,11 @@
    private List<ClientBusinessObject> ChangeMapTOClientBusinessObjects(List<Map<String,String>> oldDataMap){
        List<ClientBusinessObject> clientBusinessObjectList=new ArrayList<>();
        DefaultAttrAssimtUtil.mapToLowerCase(oldDataMap,true);
        final BladeUser user = AuthUtil.getUser();
        oldDataMap.stream().forEach(dataMap->{
            ClientBusinessObject clientBusinessObject=new ClientBusinessObject();
            DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(dataMap,clientBusinessObject,true,user);
            DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(dataMap,clientBusinessObject,false,user);
            for (String key:dataMap.keySet()){
                Object value= dataMap.getOrDefault(key,"");
                clientBusinessObject.setAttributeValue(key.toLowerCase(Locale.ROOT),value==null?"":value.toString());