yangyj %!s(int64=2) %!d(string=hai) anos
pai
achega
a1b78c6b84

+ 2 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/dto/FormulaBean.java

@@ -17,4 +17,6 @@ public class FormulaBean {
     private Long wbsId;
     private Long elementId;
     private String map;
+    private Integer scale;
+    private Integer batch;
 }

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

@@ -31,6 +31,8 @@ public class Formula extends BaseEntity {
    @Size(max = 20)
    private Long elementId;
    private String map;
+   private Integer scale;
+   private Integer batch;
 
    public List<String> getRelyList(){
       if(Func.isNotBlank(rely)){

+ 4 - 0
blade-service/blade-business/pom.xml

@@ -92,6 +92,10 @@
             <version>2.9.1.RELEASE</version>
             <scope>compile</scope>
         </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+        </dependency>
     </dependencies>
 
 </project>

+ 5 - 0
blade-service/blade-business/src/main/java/org/springblade/business/utils/FunctionMain.java

@@ -87,6 +87,7 @@ public class FunctionMain {
              return  toMapper(clazz);
         }
     }
+
     public static void getToken()  {
         HttpClient httpClient = HttpClientBuilder.create().build();
         HttpPost httpPost = new HttpPost("http://localhost/blade-auth/oauth/token");
@@ -116,6 +117,10 @@ public class FunctionMain {
             e.printStackTrace();
         }
     }
+
+    public static void main(String[] args) {
+        getToken();
+    }
     public static void createTable(Class<?> clazz,String remark) {
                String tableName=clazz.getAnnotation(TableName.class).value();
                StringBuilder sql = new StringBuilder( "DROP TABLE IF EXISTS `"+tableName+"`;\n");

+ 2 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/impl/CompositeDataAccess.java

@@ -32,6 +32,7 @@ public class CompositeDataAccess  {
     }
 
     public CompositeDataAccess() {
+
     }
 
     /**
@@ -52,6 +53,7 @@ public class CompositeDataAccess  {
         }
     }
 
+
     private   LinkedHashMap<String, ElementData> get(Integer index){
         LinkedHashMap<String, ElementData> data =new LinkedHashMap<>();
         for(FormData fd:fds.values()){

+ 3 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/impl/FormulaMileage.java

@@ -150,6 +150,9 @@ public class FormulaMileage implements FormulaStrategy {
 
     @Override
     public boolean accept(FormData fd) {
+        if(Func.isEmpty(fd.getFormula())){
+            return false;
+        }
         this.cur=fd;
         String f= fd.getFormula().getFormula();
         return StringUtils.isNotEmpty(f)&&f.startsWith("MILE-");

+ 9 - 7
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/impl/TableElementConverter.java

@@ -33,16 +33,17 @@ public class TableElementConverter implements ITableElementConverter {
     List<KeyMapper> keyMappers;
     List<Formula> formulas;
     /**公式执行时的元素对象*/
-    List<FormData> fds;
+    List<FormData> fds =new ArrayList<>();
     Map<String,Map<String,String>> coordinateMap;
-    Map<String,ElementData> elementDataMap;
+    Map<String,ElementData> elementDataMap = new HashMap<>();
 
 
-    public TableElementConverter(List<TableInfo> tableInfoList, List<KeyMapper> keyMappers, List<Formula> formulas,Map<String,Map<String,String>> coordinateMap) {
+    public TableElementConverter(List<TableInfo> tableInfoList, List<KeyMapper> keyMappers, List<Formula> formulas,Map<String,Map<String,String>> coordinateMap,Long nodeId) {
         this.tableInfoList = tableInfoList;
         this.keyMappers = keyMappers;
         this.formulas = formulas;
         this.coordinateMap=coordinateMap;
+        this.nodeId=nodeId;
         if(Func.isNotEmpty(tableInfoList)){
             this.contractId = Long.parseLong(tableInfoList.get(0).getContractId());
         }
@@ -79,11 +80,12 @@ public class TableElementConverter implements ITableElementConverter {
                         LinkedHashMap<String,String>   page = k.getDataMap();
                         String v=page.get(b.getField());
                         if(StringUtils.isNotEmpty(v)){
-                            String[] values = v.split(StringPool.COMMA);
+                            String[] values = v.split("☆");
                             for(String s:values){
-                                String[] t = s.split("_+");
-                                ElementData ed = new ElementData(index.get(),0,t[0],Func.toInt(t[2]),Func.toInt(t[1]));
-                                this.elementDataMap.put(StringUtils.join(b.getCode(),ed.getGroupId(),ed.getIndex(),Func.toInt(t[2]),Func.toInt(t[1]),StringPool.AT),ed);
+                                String[] t = s.split("_\\^_");
+                                String[] c =t[1].split("_");
+                                ElementData ed = new ElementData(index.get(),0,t[0],Func.toInt(c[1]),Func.toInt(c[0]));
+                                this.elementDataMap.put(StringUtils.join(b.getCode(),ed.getGroupId(),ed.getIndex(),Func.toInt(c[1]),Func.toInt(c[0]),StringPool.AT),ed);
                                 eds.add(ed);
                             }
                         }

+ 2 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/FormulaMapper.xml

@@ -18,6 +18,8 @@
         <result column="wbsId" property="wbs_id"/>
         <result column="elementId" property="element_id"/>
         <result column="map" property="map"/>
+        <result column="scale" property="scale"/>
+        <result column="batch" property="batch"/>
     </resultMap>
 
 </mapper>

+ 8 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IWbsParamService.java

@@ -4,6 +4,8 @@ import org.springblade.core.mp.base.BaseService;
 import org.springblade.manager.entity.WbsParam;
 import org.springblade.manager.entity.WbsTreeContract;
 
+import java.util.List;
+
 /**
  * @author yangyj
  * @Date 2022/6/17 17:02
@@ -17,4 +19,10 @@ public interface IWbsParamService  extends BaseService<WbsParam> {
      * @Author yangyj
      **/
     String createFileTitle(Long nodeId,Long contractId,	WbsTreeContract wbsTreeContract);
+    /**
+     * @Description 获取节点参数 nodeId:项目集节点id
+     * @Author yangyj
+     * @Date 2022.09.16 17:54
+     **/
+    List<WbsParam> findByNodeId(Long nodeId);
 }

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

@@ -270,7 +270,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
 			});
 			stopWatch.start("公式处理");
 			List<Formula> formulas = this.formulaService.list(Wrappers.<Formula>lambdaQuery().in(Formula::getElementId, keyMappers.stream().map(KeyMapper::getFieldId).distinct().collect(Collectors.toList())));
-			TableElementConverter tec = new TableElementConverter(tableInfoList, keyMappers, formulas,coordinateMap);
+			TableElementConverter tec = new TableElementConverter(tableInfoList, keyMappers, formulas,coordinateMap,1111111L);
 			if (tec.isPresent()) {
 				tec.before();
 				this.formulaService.execute(tec);
@@ -387,7 +387,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
 
 				if (wbsTreeContractByP!=null){
 					//处理文件提名
-					String fileName = this.wbsParamService.createFileTitle(Func.isNotEmpty(wbsTreeContractByP.getOldId())? Long.valueOf(wbsTreeContractByP.getOldId()) :wbsTreeContractByP.getId(), Long.parseLong(wbsTreeContractByP.getContractId()));
+					String fileName = this.wbsParamService.createFileTitle(Func.isNotEmpty(wbsTreeContractByP.getOldId())? Long.valueOf(wbsTreeContractByP.getOldId()) :wbsTreeContractByP.getId(), Long.parseLong(wbsTreeContractByP.getContractId()),wbsTreeContractByP);
 					fileName = StringUtils.isNotEmpty(fileName) ? fileName : "缺少文件提名配置";
 
 					//huangjn 保存成功后调用生成资料查询列表数据
@@ -432,7 +432,9 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
 		//获取html
 		WbsTreeContract wbsTreeContract = wbsTreeContractService.getBaseMapper().selectOne(Wrappers.<WbsTreeContract>query().lambda()
 				.eq(WbsTreeContract::getPKeyId,pkeyid));
-
+        if(Func.isEmpty(wbsTreeContract.getHtmlUrl())){
+        	return  dataMap;
+		}
 		File file1 = ResourceUtil.getFile(wbsTreeContract.getHtmlUrl());
 		//File file1 = ResourceUtil.getFile("file:///Users/hongchuangyanfa/Desktop/privateUrl/1568060412589506560.html");
 

+ 8 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

@@ -73,7 +73,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
 
     @Override
     public void execute(TableElementConverter tec) {
-        WbsTreeContract one = this.treeContractService.getById(tec.getTableInfoList().get(0).getPkeyId());
+        WbsTreeContract one=  this.treeContractService.getOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getPKeyId,tec.getTableInfoList().get(0).getPkeyId()));
         this.execute(tec.getFds(),tec.getContractId(),Func.isNotEmpty(one.getOldId())?Long.parseLong(one.getOldId()):one.getParentId());
     }
 
@@ -97,7 +97,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
 
     @Override
     public IFormulaService sort() {
-        Map<Boolean,List<FormData>> map = this.env.formDataList.stream().collect(Collectors.partitioningBy(e->e!=null&&e.getFormula().getFormula().contains("E[")));
+        Map<Boolean,List<FormData>> map = this.env.formDataList.stream().collect(Collectors.partitioningBy(e->Func.isNotEmpty(e.getFormula())&&e.getFormula().getFormula().contains("E[")));
         this.env.formDataList.clear();
         /*没有依赖的*/
         List<FormData> simple=map.get(false);
@@ -118,6 +118,9 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
         if(CollectionUtil.isNotEmpty(this.env.formDataList)){
             for(FormData fd:this.env.formDataList){
                 /*预处理公式脚本*/
+                if(Func.isEmpty(fd.getFormula())){
+                    continue;
+                }
                 String tmp =fd.getFormula().getFormula();
                 tmp = tmp.replace(FC, CustomFunction.CLASS_CALL);
                 if(tmp.contains(CustomFunction.CLASS_CALL+"ifelse")){
@@ -147,7 +150,9 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
     @Override
     public IFormulaService special() {
         for(FormData fd:this.env.formDataList) {
-            formulaStrategyFactory.get(fd).forEach(e->e.execute(this.env.formDataList,this.env.constantMap));
+            if(Func.isNotEmpty(fd.getFormula())) {
+                formulaStrategyFactory.get(fd).forEach(e -> e.execute(this.env.formDataList, this.env.constantMap));
+            }
         }
         return this;
     }

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

@@ -54,6 +54,14 @@ public class WbsParamServiceImpl extends BaseServiceImpl<WbsParamMapper, WbsPara
         return null;
     }
 
+    @Override
+    public List<WbsParam> findByNodeId(Long nodeId) {
+        if(Func.isEmpty(nodeId)){
+           return this.list(Wrappers.<WbsParam>lambdaQuery().eq(WbsParam::getWbsId,nodeId));
+        }
+        return Collections.emptyList();
+    }
+
 
 }