From d68c61517a3a6d4ec4d47844c21bdc143f99cbab Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期三, 17 四月 2024 22:58:05 +0800
Subject: [PATCH] 大屏接口

---
 ruoyi-system/src/main/java/com/ruoyi/system/dto/BasicDataConfigDTO.java |   44 +++++++++++++++++++++++++++-----------------
 1 files changed, 27 insertions(+), 17 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/BasicDataConfigDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/BasicDataConfigDTO.java
index 2a4b5e4..e5bd60d 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/dto/BasicDataConfigDTO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/BasicDataConfigDTO.java
@@ -1,15 +1,14 @@
 package com.ruoyi.system.dto;
 
 import com.ruoyi.common.enums.CalculateTypeEnum;
+import com.ruoyi.common.utils.CalculateUtil;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
+import java.util.List;
+import java.util.Map;
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
+import lombok.Data;
 
 /**
  * @author mitao
@@ -25,7 +24,7 @@
 
     @ApiModelProperty(value = "基础数据分类id")
     @NotNull(message = "基础数据分类id不能为空")
-    private Integer basicDataCategoryId;
+    private Long basicDataCategoryId;
 
     @ApiModelProperty(value = "字段说明")
     @NotBlank(message = "字段说明不能为空")
@@ -35,24 +34,27 @@
     @NotNull(message = "计算类型不能为空")
     private CalculateTypeEnum calculateType;
 
-    @ApiModelProperty(value = "字段id (多个id使用 ',' 拼接)")
-    @NotBlank(message = "字段id不能为空")
+    @ApiModelProperty(value = "字段id ", notes = "文本统计 和百分比统计的的字段id")
     private String fieldIdStr;
 
-    @ApiModelProperty(value = "计算公式",notes = "计算类型为数字计算,配置内容使用该字段接收;公式中字段的格式为:field_字段id,e.g:field_1,field_2等。")
-    private String numberCalculateFormula;
+    @ApiModelProperty(value = "最大分值")
+    private Double maxScore;
 
-    @ApiModelProperty(value = "文本和百分比配置信息",notes = "当计算方式为 文本统计/百分比统计 " +
+    @ApiModelProperty(value = "计算公式")
+    private List<CalculateItemDTO> calculateItemList;
+
+    @ApiModelProperty(value = "文本和百分比配置信息", notes = "当计算方式为 文本统计/百分比统计 " +
             "配置内容使用这个字段接收;key为键,value为得分;百分比统计 将百分比区间使用'_'拼接作为key,e.g: 10_20,20_30")
     private List<CalculateDTO> dtoList;
 
     public static void main(String[] args) {
-        String rule = "(field1_13+field2_50) × 5 ÷field3_63×10";
+    /*    String rule = "(field1_13+field2_50) × 5 ÷ field3_63×10";
 
         // 正则表达式模式,匹配形如 "fieldName:value" 的字符串
         Pattern pattern = Pattern.compile("\\b(\\w+)_(\\d+)\\b");
         Matcher matcher = pattern.matcher(rule);
 
+        Map<String, Integer> map = new HashMap<>();
         // 循环匹配并输出字段名和值
         while (matcher.find()) {
             String fieldName = matcher.group(1);
@@ -60,10 +62,10 @@
             System.out.println("Field: " + fieldName + ", Value: " + value);
         }
 
-       /* // 假设用户上传的字段值
-        int field1 = 500;
-        int field2 = 30;
-        int field3 = 1000;
+        // 假设用户上传的字段值
+        int field1_13 = 500;
+        int field2_50 = 30;
+        int field3_63 = 1000;
 
         // 计算表达式
         String expression = "(field1_13 + field2_50) * 5 / field3_63 * 10";
@@ -85,5 +87,13 @@
 
         // 输出结果
         System.out.println("Result: " + result);*/
+
+        String expression = "(field_13 + field_50) × 5 ÷ field_63 × 10-1";
+        expression = CalculateUtil.formatExpression(expression);
+        System.err.println(expression);
+        Map<String, Integer> fieldsAndValue = CalculateUtil.getFieldsAndValue(expression);
+        System.out.println(fieldsAndValue);
+      /*  double calculate = CalculateUtil.calculate(expression, fieldsAndValue);
+        System.out.println(calculate);*/
     }
- }
+}

--
Gitblit v1.7.1