yangyj 2 lat temu
rodzic
commit
21e15effa0

+ 3 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/dto/ParamElements.java

@@ -10,10 +10,13 @@ import org.springblade.core.tool.utils.Func;
  */
 @Data
 public class ParamElements {
+    public final static String LEVEL_REG="(?i)(C\\d-?)+";
     private Long paramId;
+    private Long nodeId;
     private String k;
     private String v;
     private String elementIds;
+    private String name;
     public Boolean verify(){
        return Func.isNotEmpty(paramId)&&Func.isNotBlank(k)&&Func.isNotBlank(v)&&Func.isNotBlank(elementIds);
     }

+ 20 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/dto/RangeInfo.java

@@ -0,0 +1,20 @@
+package org.springblade.manager.dto;
+
+import lombok.Data;
+import org.springblade.core.tool.utils.Func;
+
+/**
+ * @author yangyj
+ * @Date 2022/9/22 17:52
+ * @description TODO
+ */
+@Data
+public class RangeInfo {
+    private String design;
+    private Integer size;
+    private String dev;
+    private String key;
+    public Boolean verify(){
+        return Func.isNotBlank(design)&&Func.isNotEmpty(size)&&size>0&&Func.isNotEmpty(dev)&&Func.isNotBlank(key);
+    }
+}

+ 1 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/Formula.java

@@ -41,4 +41,5 @@ public class Formula extends BaseEntity {
          return null;
       }
    }
+
 }

+ 46 - 11
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/FormulaController.java

@@ -1,9 +1,12 @@
 package org.springblade.manager.controller;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.mixsmart.utils.CustomFunction;
+import com.mixsmart.utils.ListUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -12,10 +15,8 @@ import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.Func;
-import org.springblade.manager.dto.ElementData;
-import org.springblade.manager.dto.FormData;
-import org.springblade.manager.dto.FormulaBean;
-import org.springblade.manager.dto.ParamElements;
+import org.springblade.core.tool.utils.RegexUtil;
+import org.springblade.manager.dto.*;
 import org.springblade.manager.entity.Formula;
 import org.springblade.manager.service.impl.FormulaServiceImpl;
 import org.springblade.manager.wrapper.FormulaWrapper;
@@ -23,10 +24,7 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.web.bind.annotation.*;
 import springfox.documentation.annotations.ApiIgnore;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -131,21 +129,58 @@ public class FormulaController {
          return FormulaWrapper.build().pageVO(pages);
     }
 
+
     @PostMapping("/element-bind")
-    @ApiOperationSupport(order = 5)
+    @ApiOperationSupport(order = 9)
     @ApiOperation(value = "节点参数批量绑定", notes = "节点参数批量绑定")
     public R elementsBind( @RequestBody ParamElements bean) {
            if(bean!=null&&bean.verify()){
                List<Long> elementIds = Arrays.stream(bean.getElementIds().split(",")).map(Long::parseLong).collect(Collectors.toList());
-
+               List<Formula> saveList = new ArrayList<>();
+               Map<String,Map> map = new HashMap<>();
                elementIds.forEach(e->{
-
+                     Formula formula = new Formula();
+                     formula.setElementId(e);
+                     formula.setWbsId(bean.getNodeId());
+                     Map<String,String> m= new HashMap<>();
+                     m.put("name",bean.getName());
+                     m.put("id",bean.getParamId().toString());
+                     map.put(bean.getK(),m);
+                    if(RegexUtil.match(ParamElements.LEVEL_REG,bean.getV())){
+                          /*取层级*/
+                          formula.setFormula("FC.tree(trees,WP["+bean.getK()+"])");
+                    }else{
+                        /*直接取数*/
+                          formula.setFormula("WP["+bean.getK()+"]");
+                    }
+                    formula.setMap(JSON.toJSONString(map));
+                    map.clear();
+                    saveList.add(formula);
                });
+               if(ListUtils.isNotEmpty(saveList)){
+                   if(this.service.saveBatch(saveList)){
+                       return R.success("绑定成功");
+                   }
+               }
            }
           return R.fail("绑定失败");
     }
 
 
+
+    @PostMapping("/range")
+    @ApiOperationSupport(order = 10)
+    @ApiOperation(value = "自动填充数据", notes = "根据设计值、偏差范围、频率自动填充数据")
+    public R<Map<String,List<Object>>> rangeList( @RequestBody RangeInfo info) {
+        if(info.verify()){
+            Map<String,List<Object>> map = new HashMap<>();
+            List<Object> data = CustomFunction.rangeList(info.getSize(),info.getDesign(),info.getDev(),1,0,1);
+            map.put(info.getKey(),data);
+            return R.data(map);
+        }
+        return R.fail("无数据");
+    }
+
     @GetMapping("/execute")
     @ApiIgnore
     public R execute() {