瀏覽代碼

公式相关:宝顶山项目前后视约束在0.4~4.6之间

yangyj 1 年之前
父節點
當前提交
98ee3a3505

+ 27 - 5
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/FormulaController.java

@@ -15,6 +15,7 @@ import com.mixsmart.utils.StringUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
+import lombok.SneakyThrows;
 import org.springblade.common.utils.BaseUtils;
 import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.core.log.exception.ServiceException;
@@ -28,6 +29,7 @@ import org.springblade.core.tool.utils.StringPool;
 import org.springblade.manager.dto.*;
 import org.springblade.manager.entity.*;
 import org.springblade.manager.enums.ExecuteType;
+import org.springblade.manager.formula.ITurnPointCalculator;
 import org.springblade.manager.formula.KeyMapper;
 import org.springblade.manager.formula.impl.CompositeDataAccess;
 import org.springblade.manager.formula.impl.StartupTimeListener;
@@ -42,6 +44,8 @@ import org.springframework.web.bind.annotation.*;
 import springfox.documentation.annotations.ApiIgnore;
 
 import java.io.FileNotFoundException;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
 import java.time.Instant;
 import java.time.ZoneId;
 import java.time.format.DateTimeFormatter;
@@ -439,13 +443,16 @@ public class FormulaController {
     }
 
     @GetMapping("/log")
-    public R<Object> log(Long pkeyId) {
+    public R<Object> log(Long pkeyId) throws UnknownHostException {
         Map<String, Object> result = new HashMap<>();
         Instant startupTime = StartupTimeListener.getStartupTime();
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
         result.put("版本信息", "Application started at:" + formatter.format(startupTime));
+        result.put("公式版本", "Formula version:" + ITurnPointCalculator.VERSION);
+        result.put("serve",   System.getProperty("os.name"));
         if (Func.isNotEmpty(pkeyId)) {
-            result.put("执行情况", this.jdbcTemplate.queryForList("select * from m_formula_log where id=" + pkeyId));
+            String sql="select * from m_formula_log where id=?";
+            result.put("执行情况", this.jdbcTemplate.queryForList(sql,pkeyId));
         }
         return R.data(result);
     }
@@ -770,10 +777,13 @@ public class FormulaController {
         return formula;
     }
 
-
+    /**initTableName 缺失刷入*/
     @GetMapping("/table-name")
-    public R<Object> lack() {
-        List<Map<String,Object>> listMap=this.jdbcTemplate.queryForList("select p_key_id pkeyId,node_name nodeName from m_wbs_tree_contract where  project_id=1630011899725201410 and table_type>0  and is_deleted=0 and init_table_name is null ");
+    public R<Object> lack(Long projectId) {
+        if(!StringUtils.isNumber(projectId)){
+            return R.fail("错误项目id格式");
+        }
+        List<Map<String,Object>> listMap=this.jdbcTemplate.queryForList("select p_key_id pkeyId,node_name nodeName from m_wbs_tree_contract where  project_id="+projectId+" and table_type>0  and is_deleted=0 and init_table_name is null ");
         Map<Long,String> idMap= listMap.stream().collect(Collectors.toMap(m->Long.parseLong(m.get("pkeyId").toString()),m->m.get("nodeName").toString()));
         List<Map<String,Object>> tn = this.jdbcTemplate.queryForList("select tab_ch_name ch,tab_en_name en  from m_table_info where tab_ch_name in("+idMap.values().stream().distinct().map(Object::toString).collect(Collectors.joining("','","'","'"))+")");
         Map<String,String> tbMap= tn.stream().collect(Collectors.toMap(m->m.get("ch").toString(),m->m.get("en").toString()));
@@ -811,5 +821,17 @@ public class FormulaController {
         return R.fail("失败");
     }
 
+    @GetMapping("/ref")
+    public R<Object> ref() {
+        /*专门用刷数据的*/
+        Long contractId=1630017379264610305L;
+        String sql ="select p_key_id pkeyId ,id,old_id originId,full_name fullName,node_name nodeName from m_wbs_tree_contract where contract_id=? and node_type=6 AND is_deleted=0 and is_type_private_pid is null";
+        List<Map<String,Object>> listMaps=this.jdbcTemplate.queryForList(sql,contractId);
+        if(listMaps.size()>0){
+
+        }
+      return    R.success("成功");
+    }
+
 
 }

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

@@ -14,7 +14,6 @@ import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
 import org.springblade.common.utils.BaseUtils;
-import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.base.BaseService;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
@@ -455,8 +454,7 @@ public class WbsParamController {
         return formula;
     }
 
-    @GetMapping("/del-duplicate")
-    public R<Object> duplicate() {
+    /*private R<Object> duplicate() {删除重复节点参数配置,方法已经过时无法直接使用
         try {
             StopWatch stopWatch = new StopWatch();
             stopWatch.start("节点参数查重及删除");
@@ -473,7 +471,7 @@ public class WbsParamController {
                         if (!relationMap.isEmpty()) {
                             Object id = relationMap.get(0).get("paramId");
                             removeWpIds.addAll(v.stream().map(WbsParam::getId).filter(eId -> !StringUtils.isNotEquals(id, eId)).collect(Collectors.toList()));
-                            /*同一道工序下,一个节点参数可能会关联多个元素,除了保留参数关联的以外全部添加到待删除列表*/
+                            *//*同一道工序下,一个节点参数可能会关联多个元素,除了保留参数关联的以外全部添加到待删除列表*//*
                             relationMap.stream().filter(x -> StringUtils.isNotEquals(x.get("paramId"), id)).forEach(e -> {
                                 removeMapingIds.add(Long.parseLong(e.get("mappingId").toString()));
                                 removeFormulaIds.add(Long.parseLong(e.get("formulaId").toString()));
@@ -504,7 +502,7 @@ public class WbsParamController {
             e.printStackTrace();
         }
         return R.fail("执行异常");
-    }
+    }*/
 
     public <T> void  batchDel(BaseService<T> sv,List<Long> list){
         if(sv!=null&&Func.isNotEmpty(list)) {

+ 4 - 4
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/ITurnPointCalculator.java

@@ -17,15 +17,15 @@ import static org.springblade.manager.formula.TurnPoint.*;
  * @author yangyj
  */
 public interface ITurnPointCalculator {
-
+    Long VERSION=2309061500L;
      String ZD_REG="(?i)zd\\d+";
-    static List<TurnPoint> create(List<Map<String, Object>> data, LinkedHashMap<String, String> configMap,String g8pcfw) {
+    static List<TurnPoint> create(List<Map<String, Object>> data, LinkedHashMap<String, String> configMap,LevelInfo levelInfo) {
         /*1.验证数据的合理性,如果已经合理则不需要计算
         * 2.尝试补充数据,如果不合理则重新生成转点,并用正尺方式生成
         * 3.合理性定义:(测点前视不存在或者非负数则视线高-测点实测高程在【0.5~4.8】范围,如果前视为负数则视线高-实际高程在【-0.5~-4.8】范围)*/
         if (Func.isNotEmpty(data) && configMap != null) {
-            LevelInfo levelInfo = new LevelInfo();
-            levelInfo.setDx(g8pcfw);
+         /*   LevelInfo levelInfo = new LevelInfo();
+            levelInfo.setDx(g8pcfw);*/
             List<TurnPoint> tmp = new ArrayList<>();
             /*是否尝试初步补充数据*/
             boolean checked=true;

+ 12 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/impl/FormulaTurnPoint.java

@@ -71,8 +71,19 @@ public class FormulaTurnPoint implements FormulaStrategy {
             List<Map<String, Object>>  tableData=listMaps( cur,tec, dataSourceMap,configMap,args);
             /*数据分组*/
             List<List<Map<String, Object>>> total = group(tableData);
+            /*项目配置*/
+            LevelInfo info = new LevelInfo();
+            String dev=Expression.parse(F_DEV).calculate(tec.getConstantMap());
+            if(Func.isNotBlank(dev)){
+                info.setDx(dev);
+            }
+            if(1630011899725201410L== tec.getProjectId()){
+                /*宝顶山项目*/
+                info.setStep(4.6D);
+                info.setMin(0.4D);
+            }
            /* 分组计算*/
-            List<List<TurnPoint>> result = total.stream().map(e->ITurnPointCalculator.create(e, configMap,Expression.parse(F_DEV).calculate(tec.getConstantMap()))).collect(Collectors.toList());
+            List<List<TurnPoint>> result = total.stream().map(e->ITurnPointCalculator.create(e, configMap,info)).collect(Collectors.toList());
             /*附加属性如:顶面和底面高程判断*/
             forG8(result.stream().flatMap(Collection::stream).collect(Collectors.toList()), (Map<String, Object>)tec.getConstantMap().computeIfAbsent("G8", k -> new HashMap<>()),tec);
            /*插值分页*/