ludc
2023-12-01 bce3fcf05020405e33199706c3d91e9b9a71bd39
关键属性查重特殊字符转义添加
已修改4个文件
已添加1个文件
58 ■■■■ 文件已修改
Source/UBCS-WEB/src/views/monitor/log/operateLog.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-ops/ubcs-log/src/main/java/com/vci/ubcs/log/service/impl/LogLocalServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/SpecialCharacterConverter.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/monitor/log/operateLog.vue
@@ -63,18 +63,18 @@
              label: "用户名",
              prop: "userName",
              search: true,
              width:'100'
              width:'120'
            },
            {
              label: "姓名",
              prop: "realName",
              search: true,
              width:'100'
              width:'120'
            },
            {
              label: "用户ip",
              prop: "ip",
              width:'100'
              width:'130'
            },
            {
              label: "模块",
@@ -89,7 +89,7 @@
            {
              label: "操作结果",
              prop: "operateResult",
              width:'100'
              width:'110'
            },
            {
              label: "描述",
Source/UBCS/ubcs-ops/ubcs-log/src/main/java/com/vci/ubcs/log/service/impl/LogLocalServiceImpl.java
@@ -82,7 +82,7 @@
     * @param logParentPath
     * @return
     */
    //@Override
    @Override
    public List<LocalLogVO> getSystemLogList(String logParentPath) {
        List<LocalLogVO> localLogsVO = new ArrayList<>();
        // ä¸ä¸ºç©ºè¯´æ˜Žæ˜¯åŠ è½½å½“å‰è¿™ä¸ªæœåŠ¡è·¯å¾„ä¸‹çš„æ—¥å¿—æ–‡ä»¶
@@ -90,6 +90,7 @@
            File file = new File(logParentPath);
            if (file.isDirectory()) {
                File[] files = file.listFiles();
                if(Func.isNotEmpty(files) && files.length>0){
                Arrays.stream(files).forEach(item->{
                    // ç»„建日志文件对象
                    LocalLogVO localLog = new LocalLogVO();
@@ -105,9 +106,11 @@
                    localLogsVO.add(localLog);
                });
            }
            }
        }else {
            File fileDir = new File(PARENTPATH);
            File[] childDir = fileDir.listFiles();
            if(Func.isNotEmpty(childDir) && childDir.length > 0){
            Arrays.stream(childDir).forEach(dir->{
                if(dir.getName().contains("ubcs_")){
                    String fullPath = dir.getPath() + LOGPATH;
@@ -129,6 +132,7 @@
                }
            });
        }
        }
        return localLogsVO;
    }
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/SpecialCharacterConverter.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
package com.vci.ubcs.starter.util;
import net.logstash.logback.encoder.org.apache.commons.lang3.StringEscapeUtils;
/**
 *
 * @author ludc
 * @date 2023/12/1 9:16
 */
public class SpecialCharacterConverter {
    /**
     * ç‰¹æ®Šå­—符转义
     * @param input
     * @return
     */
    public static String escapeSpecialCharacters(String input) {
        input = input.replace("'", "''"); // è½¬ä¹‰å•引号
        input = input.replace("\"", "\\\""); // è½¬ä¹‰åŒå¼•号
        input = input.replace("%", "\\%"); // è½¬ä¹‰ç™¾åˆ†å·
        input = input.replace("_", "\\_"); // è½¬ä¹‰ä¸‹åˆ’线
        input = input.replace("\\", "\\\\"); // è½¬ä¹‰åæ–œæ 
        return input;
    }
    public static String unescapeSpecialCharacters(String input) {
        input = input.replace("''", "'"); // åè½¬ä¹‰å•引号
        input = input.replace("\\\"", "\""); // åè½¬ä¹‰åŒå¼•号
        input = input.replace("\\%", "%"); // åè½¬ä¹‰ç™¾åˆ†å·
        input = input.replace("\\_", "_"); // åè½¬ä¹‰ä¸‹åˆ’线
        input = input.replace("\\\\", "\\"); // åè½¬ä¹‰åæ–œæ 
        return input;
    }
}
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
@@ -44,6 +44,7 @@
import com.vci.ubcs.starter.revision.service.RevisionModelUtil;
import com.vci.ubcs.starter.util.MdmBtmTypeConstant;
import com.vci.ubcs.starter.util.SaveLogUtil;
import com.vci.ubcs.starter.util.SpecialCharacterConverter;
import com.vci.ubcs.starter.util.UBCSSqlKeyword;
import com.vci.ubcs.starter.web.constant.QueryOptionConstant;
import com.vci.ubcs.starter.web.constant.RegExpConstant;
@@ -791,6 +792,7 @@
                sql[0] += " and oid != '" + orderDTO.getCopyFromVersion() + "'";
            }
            sql[0] += " and lastR = '1' and lastV = '1' ";
            // èŽ·å–ä¸å‚ä¸Žæ ¡éªŒçš„åˆ†ç±»oid
            String isParticipateCheckOids = classifyService.selectLeafByParentClassifyOid(classifyFullInfo.getTopClassifyVO().getOid(), classifyFullInfo.getCurrentClassifyVO().getOid());
            if(Func.isNotEmpty(isParticipateCheckOids)){
                sql[0] += " and codeclsfid not in(" + isParticipateCheckOids + ")";
@@ -1193,12 +1195,12 @@
                    temp = "%s";
                }
                queryKey = String.format(temp, "nvl("+ "t." + attrId +",'/')");
                queryValue = String.format(temp, "'" + (trim ? value.trim() : value) + "'");
                queryValue = String.format(temp, "'" + (trim ? SpecialCharacterConverter.escapeSpecialCharacters(value.trim()):SpecialCharacterConverter.escapeSpecialCharacters(value)) + "'");
                conditionMap.put(queryKey, queryValue);
            } else {
                if(StringUtils.isNotBlank(value)) {
                    //为空的时候不代表不校验,只是不去除相关的信息
                    conditionMap.put("nvl("+ "t." + attrId+",'/')", "'" + value + "'");
                    conditionMap.put("nvl("+ "t." + attrId+",'/')", "'" + SpecialCharacterConverter.escapeSpecialCharacters(value) + "'");
                }else{
                    conditionMap.put("t." + attrId, QueryOptionConstant.ISNULL);
                }
@@ -2472,7 +2474,6 @@
                return getSqlByValue(key, value, attrVOMap,btmType);
            }
        }*/
    }
    /**
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
@@ -3824,7 +3824,7 @@
    private void batchSwitchClassifyAttrOnOrder(Collection<CodeClassifyTemplateAttrVO> attrVOS,List<ClientBusinessObject> dataList,
                                                CodeClassifyFullInfoBO classifyFullInfo,boolean isImPort) {
        Map<String, CodeClassifyTemplateAttrVO> dateAttrVOMap = attrVOS.stream().filter(
            s -> StringUtils.isNotBlank(s.getClassifyInvokeAttr()) && StringUtils.isNotBlank(s.getClassifyInvokeAttr())
            s -> StringUtils.isNotBlank(s.getClassifyInvokeAttr())
        ).collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t));
        Map<String,CodeClassifyFullInfoBO> classifyFullInfoMap=new HashMap<>();
        classifyFullInfoMap.put(classifyFullInfo.getCurrentClassifyVO().getOid(),classifyFullInfo);