Pārlūkot izejas kodu

公式相关:批合格率计算

yangyj 1 gadu atpakaļ
vecāks
revīzija
ad49bf3df0

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

@@ -468,7 +468,12 @@ public class FormulaController {
         result.put("serve",   System.getProperty("os.name"));
         if (Func.isNotEmpty(pkeyId)) {
             String sql="select * from m_formula_log where id=?";
-            result.put("执行情况", this.jdbcTemplate.queryForList(sql,pkeyId));
+            List<Map<String,Object>> data = this.jdbcTemplate.queryForList(sql,pkeyId);
+            if(data.size()>0){
+                Map<String,Object> map =data.get(0);
+                result.put("执行情况", JSON.parse(map.get("content").toString()));
+            }
+
         }
         return R.data(result);
     }

+ 3 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ExcelTabServiceImpl.java

@@ -1,5 +1,6 @@
 package org.springblade.manager.service.impl;
 
+import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.StopWatch;
 import cn.hutool.log.StaticLog;
 import com.alibaba.fastjson.JSON;
@@ -426,9 +427,9 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
             };
             this.jdbcTemplate.batchUpdate(sql);*/
             String deleteSql = "DELETE FROM m_formula_log WHERE id = ?";
-            String insertSql = "INSERT INTO m_formula_log (id, content) VALUES (?, ?)";
+            String insertSql = "INSERT INTO m_formula_log (id, content,update_time) VALUES (?, ?,?)";
             jdbcTemplate.update(deleteSql, pKeyId);
-            jdbcTemplate.update(insertSql, pKeyId, log);
+            jdbcTemplate.update(insertSql, pKeyId, log, DateTime.now());
         } catch (Exception e) {
             e.printStackTrace();
         }

+ 19 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

@@ -1601,7 +1601,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                          /*表名+合同段+父节点*/
                          String findStr="OP['"+fd.getTableName()+"']['"+fd.getKey()+"']['RG']";
                           String rangeStr=StringUtils.handleNull(Expression.parse(findStr).calculate(tec.constantMap));
-                         System.out.println("随机值参数:"+rangeStr);
+                         //System.out.println("随机值参数:"+rangeStr);
                          if(false){
                           /*   Optional<RangeInfo> op=tableColKeyVal.stream().map(map-> BeanUtil.toBean(JSON.parseObject(map.get("val").toString()),RangeInfo.class)).findFirst();
                              if(op.isPresent()){
@@ -1665,6 +1665,24 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                              if(CustomFunction.containsZH(devStr)||StringUtils.isEmpty(devStr)||StringUtils.handleNull(devStr).contains("/")){
                                  devStr="±100000";
                              }
+                             if(devStr.contains("E[")){
+                                List<String> codes= getCodeByEl(devStr);
+                                Map<String,Object> map = new HashMap<>();
+                                boolean isNull=false;
+                                for (String c:codes){
+                                    FormData ffd= tec.getFormDataMap().get(c);
+                                    if(ffd.empty()){
+                                        isNull=true;
+                                        break;
+                                    } else{
+                                        map.put("E["+c+"]",ffd.getRawValue().stream().filter(StringUtils::isNotEmpty).findFirst().orElse(null)) ;
+                                    }
+                                }
+                               if(isNull){
+                                   devStr="±100000";
+                               }
+                               devStr= Arrays.stream(devStr.replaceAll("^\\[|\\]$","").split(",")).map(s->map.getOrDefault(s,s)).map(StringUtils::handleNull).collect(Collectors.joining(","));
+                             }
                              /*设计值可以是数值类型,或空(等效0)*/
                              if(dataFd!=null){
                                     List<Object> values= dataFd.getRawValue();