浏览代码

Merge remote-tracking branch 'origin/master'

liuyc 2 年之前
父节点
当前提交
cf67f8b0dc

+ 2 - 2
blade-service/blade-business/src/main/java/org/springblade/business/excel/DatumPointxyExcel.java

@@ -20,8 +20,8 @@ import java.io.Serializable;
 @HeadRowHeight(20)
 @ContentRowHeight(18)
 public class DatumPointxyExcel extends DatumPointExcel {
-    @ExcelProperty(value = "x坐标(m)", index = 2)
+    @ExcelProperty(value = "x坐标(m)")
     private String x;
-    @ExcelProperty(value = "y坐标(m)", index = 3)
+    @ExcelProperty(value = "y坐标(m)")
     private String y;
 }

+ 25 - 18
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/impl/FormulaTurnPoint.java

@@ -37,6 +37,8 @@ public class FormulaTurnPoint implements FormulaStrategy {
     private FormData cur;
     static final List<String> KEYS;
     private List<String> args;
+    /**从节点参数获取G8偏差范围的公式脚本*/
+    static final String F_DEV="WP['g8pcfw']";
 
     static {
         KEYS = new ArrayList<>(Arrays.asList(CD, YG, HS, QS, SC, SJ, GC, "备注"));
@@ -62,8 +64,6 @@ public class FormulaTurnPoint implements FormulaStrategy {
                     return;
                 }
             }
-            /*从节点参数获取G8偏差范围*/
-            String g8pcfw =Expression.parse("WP['g8pcfw']").calculate(tec.getConstantMap());
             /*用来映射元素*/
             LinkedHashMap<String, String> configMap = new LinkedHashMap<>(KEYS.size() * 2);
             for (int i = 0; i < KEYS.size(); i++) {
@@ -71,27 +71,34 @@ public class FormulaTurnPoint implements FormulaStrategy {
             }
             /*原始数据转ListMap*/
             List<Map<String, Object>>  tableData=listMaps( tec, dataSourceMap,configMap);
-            /*保存多组测量数据*/
+            /*数据分组*/
             List<List<Map<String, Object>>> total = group(tableData);
-           /* List<TurnPoint> result = ITurnPointCalculator.create(tableData, configMap,g8pcfw);*/
-            List<List<TurnPoint>> result = total.stream().map(e->ITurnPointCalculator.create(e, configMap,g8pcfw)).collect(Collectors.toList());
-            /*V判断*/
+           /* 分组计算*/
+            List<List<TurnPoint>> result = total.stream().map(e->ITurnPointCalculator.create(e, configMap,Expression.parse(F_DEV).calculate(tec.getConstantMap()))).collect(Collectors.toList());
+            /*附加属性如:顶面和底面高程判断*/
             forG8(result.stream().flatMap(Collection::stream).collect(Collectors.toList()), (Map<String, Object>)tec.getConstantMap().computeIfAbsent("G8", k -> new HashMap<>()),tec);
-            int rowSize= cur.getCoordsList().size();
-            List<Object> data = new ArrayList<>();
-            for(List<TurnPoint> turnPoints:result){
-                data.addAll(turnPoints2ListObj(turnPoints,configMap));
-                int dummyRow=rowSize-turnPoints.size()%rowSize;
-                if(dummyRow!=0) {
-                    data.addAll(Collections.nCopies(configMap.size() * dummyRow, StringPool.EMPTY));
-                }
-            }
-
+           /*插值分页*/
+            List<Object> data = paginate(result,configMap);
+            /*数据回写*/
             write(data,dataSourceMap,configMap.size());
 
         }
     }
 
+
+    public List<Object> paginate( List<List<TurnPoint>> result,LinkedHashMap<String, String> configMap){
+        int rowSize= cur.getCoordsList().size();
+        List<Object> data = new ArrayList<>();
+        for(List<TurnPoint> turnPoints:result){
+            data.addAll(turnPoints2ListObj(turnPoints,configMap));
+            int dummyRow=rowSize-turnPoints.size()%rowSize;
+            if(dummyRow!=0) {
+                data.addAll(Collections.nCopies(configMap.size() * dummyRow, StringPool.EMPTY));
+            }
+        }
+        return data;
+    }
+
     private List<Map<String, Object>> listMaps(TableElementConverter tec,LinkedHashMap<String, FormData> dataSourceMap,LinkedHashMap<String, String> configMap){
         CompositeDataAccess cda = new CompositeDataAccess(dataSourceMap);
         List<Map<String, Object>> tableData = new ArrayList<>();
@@ -176,8 +183,8 @@ public class FormulaTurnPoint implements FormulaStrategy {
     }
 
     public void c8103(List<TurnPoint> data,List<NodeTable> nodeTableList,TableElementConverter tec){
-        nodeTableList.stream().filter(e->e.getInitTableName().equals("m_20220928163111_1575040410223378432")).findFirst().ifPresent(t->{
-            List<FormData> fds= tec.formDataMap.values().stream().filter(k->k.getTableName().equals("m_20220928163111_1575040410223378432")&&k.getCoordsList().size()>1).collect(Collectors.toList());
+        nodeTableList.stream().filter(e-> "m_20220928163111_1575040410223378432".equals(e.getInitTableName())).findFirst().ifPresent(t->{
+            List<FormData> fds= tec.formDataMap.values().stream().filter(k-> "m_20220928163111_1575040410223378432".equals(k.getTableName())&&k.getCoordsList().size()>1).collect(Collectors.toList());
             /*[{"key":"#2","m":"垫石编号"},{"key":"#3","m":"顶面高程设计"},{"key":"#4","m":"顶面高程实测"},{"key":"#5","m":"顶面高程偏差"},{"key":"#6","m":"顶面四角高差实测"}]*/
             FormData dsbh=null,dmgcsj=null, dmgcsc=null,dmgcpc=null,sjgcsc=null;
             for(FormData u:fds){

+ 6 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaOptionServiceImpl.java

@@ -48,10 +48,12 @@ public class FormulaOptionServiceImpl extends ServiceImpl<FormulaOptionMapper, F
         *  2)右键随机值融入说明:参数名RG 每个元素可以进行若干次右键,每次右键只要范围不跟已知的冲突就会保留,但这并不一定和表单最后保存的内容100%一样
         * 如果要计算合格率或者模仿数据需要结合实际内容
         * */
+        long start = System.currentTimeMillis();
         if (StringUtils.isNotEmpty(contractId, parentId, pkeyId, key)) {
             WbsTreeContract wbc = this.wbsTreeContractService.getOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getPKeyId, pkeyId));
-            FormulaOption fo = this.getOne(Wrappers.<FormulaOption>lambdaQuery().eq(FormulaOption::getParentId, parentId).eq(FormulaOption::getContractId, contractId));
-            if (fo != null && wbc != null) {
+            WbsTreeContract parent = this.wbsTreeContractService.getOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getId, wbc.getParentId()).eq(WbsTreeContract::getContractId, wbc.getContractId()));
+            FormulaOption fo =this.getById(parent.getPKeyId());
+            if (fo != null) {
                 JSONObject jo = JSON.parseObject(fo.getVal());
                 if (jo.containsKey(wbc.getInitTableName())) {
                     JSONObject tableJson = jo.getJSONObject(wbc.getInitTableName());
@@ -61,6 +63,7 @@ public class FormulaOptionServiceImpl extends ServiceImpl<FormulaOptionMapper, F
                             JSONObject excel = tableJson.getJSONObject(cellKey);
                             if (excel.containsKey("TF")) {
                                 /*暂时只有TF:是或否*/
+                                System.out.println(this.getClass()+"参数查询耗时:"+(System.currentTimeMillis()-start)+"ms");
                                 return excel.getString("TF");
                             }
                         }
@@ -69,6 +72,7 @@ public class FormulaOptionServiceImpl extends ServiceImpl<FormulaOptionMapper, F
                             JSONObject excel = tableJson.getJSONObject(key);
                             if (excel.containsKey("TF")) {
                                 /*暂时只有TF:是或否*/
+                                System.out.println(this.getClass()+"参数查询耗时:"+(System.currentTimeMillis()-start)+"ms");
                                 return excel.getString("TF");
                             }
                         }

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

@@ -1008,6 +1008,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                     /*执行公式*/
                     Object data = Expression.parse(e.getFormula().getFormula()).calculate(tec.constantMap);
                     if(data!=null){
+                        e.getFormula().setOutm(1);
                         FormulaUtils.write(e,data,false);
                         e.setUpdate(1);
                     }

+ 5 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsParamServiceImpl.java

@@ -249,6 +249,11 @@ public class WbsParamServiceImpl extends BaseServiceImpl<WbsParamMapper, WbsPara
         Map<String,Long> fkMap= formulaIdKeyMap(ks);
         if(fkMap.size()>0) {
            List<Formula> list =  this.formulaService.listByIds(fkMap.values());
+           if(list.size()<fkMap.size()){
+               /*this.formulaService.update(Wrappers.<Formula>lambdaUpdate().set(Formula::getIsDeleted,0).eq(Formula::getIsDeleted,1).in(Formula::getId,fkMap.values()));*/
+               this.jdbcTemplate.execute("update m_formula set is_deleted = 0 where is_deleted = 1 and id in ("+fkMap.values().stream().map(Object::toString).collect(Collectors.joining(","))+")");
+               list =  this.formulaService.listByIds(fkMap.values());
+           }
            Map<Long,Formula> idMap=list.stream().collect(Collectors.toMap(BaseEntity::getId, f->f));
            fkMap.forEach((k,v)->{
                result.put(k,idMap.get(v));