소스 검색

导入编号字段和其他字段去除特殊字符修改

guq 7 년 전
부모
커밋
8532baf640

+ 6 - 6
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/impl/ExcelServiceImpl.java

@@ -177,7 +177,7 @@ public class ExcelServiceImpl implements ExcelService{
                            //取编号字段
                            if (set.isCodefield() && !"".equals(value)) {
                                mainData = new JSONObject();
-                               codeValue = value;
+                               codeValue = RegexpUtils.replaceSpecialCharacter(value);
                                difference = true;
                                validateCode.add(codeValue);
                                dd.setDd_codevalue(codeValue);
@@ -409,12 +409,12 @@ public class ExcelServiceImpl implements ExcelService{
 
     public static Object getCellFormatValue(Cell cell){
         Object cellValue = null;
-        if(cell!=null){
+        if(cell != null){
             //判断cell类型
             switch(cell.getCellType()){
                 case Cell.CELL_TYPE_NUMERIC:{
                     cellValue = String.valueOf(cell.getNumericCellValue());
-                    cellValue = RegexpUtils.replaceSpecialCharacter(cellValue);
+                    cellValue = RegexpUtils.replaceSpecialCharacterNotcodefield(cellValue);
                     //判断是否为INT类型
                     if (Double.valueOf(cellValue.toString()).intValue() - Double.valueOf(cellValue.toString()) == 0) {
                         return cellValue.toString().substring(0, cellValue.toString().indexOf("."));
@@ -426,17 +426,17 @@ public class ExcelServiceImpl implements ExcelService{
                     if(DateUtil.isCellDateFormatted(cell)){
                         //转换为日期格式YYYY-mm-dd
                         cellValue = cell.getDateCellValue();
-                        cellValue = RegexpUtils.replaceSpecialCharacter(cellValue);
+                        cellValue = RegexpUtils.replaceSpecialCharacterNotcodefield(cellValue);
                     }else{
                         //数字
                         cellValue = String.valueOf(cell.getNumericCellValue());
-                        cellValue = RegexpUtils.replaceSpecialCharacter(cellValue);
+                        cellValue = RegexpUtils.replaceSpecialCharacterNotcodefield(cellValue);
                     }
                     break;
                 }
                 case Cell.CELL_TYPE_STRING:{
                     cellValue = cell.getRichStringCellValue().getString();
-                    cellValue = RegexpUtils.replaceSpecialCharacter(cellValue);
+                    cellValue = RegexpUtils.replaceSpecialCharacterNotcodefield(cellValue);
                     break;
                 }
                 default:

+ 16 - 0
framework/core/src/main/java/com/usoftchina/saas/utils/RegexpUtils.java

@@ -13,6 +13,7 @@ public class RegexpUtils {
     private static final String EMAIL_EXP = "^\\w+([-.]\\w+)*@\\w+([-]\\w+)*\\.(\\w+([-]\\w+)*\\.)*[a-z]{2,4}$";
     private static final String SPECCHARACTER_EXP = "[\\\\s~·`!!@#¥$%^……&*(())\\\\-——\\\\-_=+【\\\\[\\\\]】{{}}\\\\|、\\\\\\\\;;::‘'“”\\\",,《<。.》>、/??]";
     private static final String SPECIALCHARACTER_EXP = "[`~!@#$%^&*()+=|{}':;',\\[\\]<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?\"]";
+    private static final String NOTCODEFIELF_EXP = "[`@#$%^&*|{}':;',\\[\\]/?@#¥%……&*+|【】‘;:”“’。,、?\"]";
     /**
      * 匹配手机号码
      *
@@ -81,4 +82,19 @@ public class RegexpUtils {
         Matcher m = p.matcher(obj.toString().trim());
         return m.replaceAll("");
     }
+
+
+    /**
+     * 特殊字符替换 非编号字段
+     * @param obj
+     * @return
+     */
+    public static String replaceSpecialCharacterNotcodefield(Object obj){
+        if (StringUtils.isEmpty(obj)) {
+            return "";
+        }
+        Pattern p = Pattern.compile(NOTCODEFIELF_EXP);
+        Matcher m = p.matcher(obj.toString().trim());
+        return m.replaceAll("");
+    }
 }