Przeglądaj źródła

正则表达式相关

liuyc 2 lat temu
rodzic
commit
7eede8be10

+ 2 - 2
blade-service/blade-business/src/main/java/org/springblade/business/utils/FunctionMain.java

@@ -118,9 +118,9 @@ public class FunctionMain {
         }
     }
 
-    public static void main(String[] args) {
+    /*public static void main(String[] args) {
         getToken();
-    }
+    }*/
     public static void createTable(Class<?> clazz,String remark) {
                String tableName=clazz.getAnnotation(TableName.class).value();
                StringBuilder sql = new StringBuilder( "DROP TABLE IF EXISTS `"+tableName+"`;\n");

+ 21 - 17
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java

@@ -46,6 +46,8 @@ import org.springblade.manager.entity.*;
 import org.springblade.manager.mapper.WbsTreePrivateMapper;
 import org.springblade.manager.service.*;
 import org.springblade.manager.unit.FileUtils;
+import org.springblade.manager.unit.RegularExpressionUtil;
+import org.springblade.manager.unit.WbsElementUtil;
 import org.springblade.manager.vo.*;
 import org.springblade.manager.wrapper.ExcelTabWrapper;
 import org.springblade.resource.feign.CommonFileClient;
@@ -483,19 +485,25 @@ public class ExcelTabController extends BladeController {
                     double maxScore = 0.48;
                     String lastName = "警告";
                     String attrInfo = "key" + "__" + i + "_" + j;
-                    ;
+                    String filedType = "";
 
                     for (WbsFormElement elementInfo : elementList) {
                         String ysName = elementInfo.getEName().replaceAll("[^\u4E00-\u9FA5_]", "");
                         if (titleName.equals(ysName)) {
                             lastName = elementInfo.getEName();
                             attrInfo = elementInfo.getEKey() + "__" + i + "_" + j;
+
+                            filedType = WbsElementUtil.getInitTableFiledType(elementInfo.getEType());
+
                             maxScore = 100;
                             is_true = true;
                             break;
                         } else {
                             if (MathUtil.sim(titleName, ysName) > maxScore) {
                                 attrInfo = elementInfo.getEKey() + "__" + i + "_" + j;
+
+                                filedType = WbsElementUtil.getInitTableFiledType(elementInfo.getEType());
+
                                 lastName = ysName;
                                 maxScore = MathUtil.sim(titleName, ysName);
                                 is_true = true;
@@ -503,15 +511,19 @@ public class ExcelTabController extends BladeController {
                         }
                     }
                     String oncklickText = "'" + lastName + "'," + i + "," + j;
-                    if (is_true) {
-                        element.children().get(0).attr("placeholder", lastName).attr("@focus", "getInformation(" + oncklickText + ")")
-                                .attr("weighing", maxScore + "").attr("id", attrInfo).attr("keyName", attrInfo).attr("v-model", "formData." + attrInfo);
 
-                        //todo 正则表达式返回字段类型校验
+                    //字段正则表达式校验
+                    String regularExpression = "'" + RegularExpressionUtil.getRegularExpression(filedType) + "'," + "字段类型:" + (StringUtils.isNotEmpty(filedType) ? WbsElementUtil.getTypeName(filedType) : null) + "," + i + "," + j;
 
+                    if (is_true) {
+                        element.children().get(0).attr("placeholder", lastName).attr("@focus", "getInformation(" + oncklickText + ")")
+                                .attr("weighing", maxScore + "").attr("id", attrInfo).attr("keyName", attrInfo)
+                                .attr("@blur", "getRegularExpression(" + regularExpression + ")")
+                                .attr("v-model", "formData." + attrInfo);
                     } else {
                         element.children().get(0).attr("placeholder", lastName).attr("@focus", "getInformation(" + oncklickText + ")")
-                                .attr("weighing", maxScore + "").attr("id", attrInfo).attr("keyName", attrInfo);
+                                .attr("weighing", maxScore + "").attr("id", attrInfo).attr("keyName", attrInfo)
+                                .attr("@blur", "getRegularExpression(" + regularExpression + ")");
                     }
 
                 }
@@ -1767,7 +1779,7 @@ public class ExcelTabController extends BladeController {
             }
 
             //获取数据
-            List<Map<String, Object>> businessDataMapList = this.getTheLogBusinessData(theLogId, nodePrimaryKeyId, recordTime).getData();
+            List<Map<String, Object>> businessDataMapList = (List<Map<String, Object>>)this.getTheLogBusinessData(theLogId, nodePrimaryKeyId, recordTime).getData();
             //PDF路径
             List<String> pdfUrls = new ArrayList<>();
 
@@ -1873,7 +1885,6 @@ public class ExcelTabController extends BladeController {
                                 int y1 = Integer.parseInt(data.children().get(0).attr("y1"));
 
                                 final CellRange cellRange = sheet.getCellRange(y1, x1);
-
                                 cellRange.setText(e.getId() + "");
                                 cellRange.getCellStyle().getFont().setColor(Color.white);
 
@@ -1921,18 +1932,11 @@ public class ExcelTabController extends BladeController {
         return R.data(null);
     }
 
-    /**
-     * 获取当前用户当前日期的填报记录
-     */
     @GetMapping("/get-the-log-business-data")
     @ApiOperationSupport(order = 26)
     @ApiOperation(value = "获取当前用户当前日期的填报记录")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "theLogId", value = "日志记录的id,可能为空"),
-            @ApiImplicitParam(name = "nodePrimaryKeyId", value = "当前操作的日志类型ID,即左侧列表的节点primaryKeyId"),
-            @ApiImplicitParam(name = "recordTime", value = "当前选择的填写日期,即右侧日期控件所选日期,格式为 yyyy-MM-dd")
-    })
-    public R<List<Map<String, Object>>> getTheLogBusinessData(String theLogId, String nodePrimaryKeyId, String recordTime) {
+    @ApiImplicitParam(name = "theLogId", value = "日志ID", required = true)
+    public R getTheLogBusinessData(String theLogId, String nodePrimaryKeyId, String recordTime) {
         List<Map<String, Object>> resultMapList = new ArrayList<>();
         //获取对应的记录
         JSONObject theLogJson;

+ 3 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreeController.java

@@ -174,10 +174,10 @@ public class WbsTreeController extends BladeController {
     @ApiImplicitParam(name = "id", value = "表单id", required = true)
     public R removeTableById(@RequestParam("id") String id) {
         if (StringUtils.isNotEmpty(id)) {
-            List<WbsFormElementVO> wbsFormElements = wbsTreeService.selectFormElements(id);
+            /*List<WbsFormElementVO> wbsFormElements = wbsTreeService.selectFormElements(id);
             if (wbsFormElements.size() > 0) {
-                throw new ServiceException("该表单中存在元素,删除失败");
-            }
+                throw new ServiceException("该表单中存在元素,删除失败");
+            }*/
             List<WbsTreePrivate> wbsTreePrivates = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
                     .eq(WbsTreePrivate::getStatus, 1)
                     .eq(WbsTreePrivate::getId, id));

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreePrivateController.java

@@ -369,7 +369,7 @@ public class WbsTreePrivateController extends BladeController {
      * 查询节点元素表与节点参数
      */
     @ApiOperationSupport(order = 12)
-    @ApiOperation(value = "查询节点元素表与节点参数", notes = "传入节点oldId、节点oldId")
+    @ApiOperation(value = "查询节点元素表与节点参数", notes = "传入节点parentId、wbsId、projectId")
     @RequestMapping(value = "/getNodeTabAndParam", method = RequestMethod.GET)
     public R<WbsNodeTabAndParamVO> getNodeTabAndParam(@RequestParam("parentId") String parentId,
                                                       @RequestParam("wbsId") String wbsId,

+ 34 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/unit/RegularExpressionUtil.java

@@ -0,0 +1,34 @@
+package org.springblade.manager.unit;
+
+/**
+ * 正则表达式工具类
+ */
+public class RegularExpressionUtil {
+
+    //正、负整数
+    String POSITIVE_NEGTIVE_INTEGER = "-?[1-9]\\d*";
+    //正、负浮点数
+    String POSITIVE_NEGTIVE_FLOAT = "-?([1-9]\\d*.\\d*|0\\.\\d*[1-9]\\d*)";
+    //日期 yyyy MM dd
+    String DATE_TIME = "\\d{4}(\\-|\\/|.)\\d{1,2}\\1\\d{1,2}";
+
+    public static String getRegularExpression(String filedType) {
+        RegularExpressionUtil obj = new RegularExpressionUtil();
+        switch (filedType) {
+            case "bigint":
+                return obj.POSITIVE_NEGTIVE_INTEGER.replaceAll("\\\\\\\\", "\\\\");
+            case "decimal":
+                return obj.POSITIVE_NEGTIVE_FLOAT.replaceAll("\\\\\\\\", "\\\\");
+            case "datetime":
+                return obj.DATE_TIME.replaceAll("\\\\\\\\", "\\\\");
+        }
+        return "";
+    }
+
+    /*public static void main(String[] args) {
+        String str = "datetime";
+        System.out.println(getRegularExpression(str));
+    }*/
+
+
+}

+ 13 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/unit/WbsElementUtil.java

@@ -171,4 +171,17 @@ public class WbsElementUtil {
         }
     }
 
+    public static String getTypeName(String type) {
+        switch (type) {
+            case "bigint":
+                return "整数或数值";
+            case "decimal":
+                return "小数";
+            case "datetime":
+                return "日期";
+            default:
+                return "字符串";
+        }
+    }
+
 }