Browse Source

公式相关

yangyj 3 years ago
parent
commit
dd57358df7

+ 1 - 1
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/dto/FormData.java

@@ -20,7 +20,7 @@ public class FormData {
     /**
      * 步长;跟别的元素计算时候,用于一对多
      */
-    private Integer step;
+    private Integer step=1;
     /**
      * 元素名称
      */

+ 1 - 17
blade-service/blade-business/src/main/java/org/springblade/business/utils/FunctionMain.java

@@ -172,22 +172,6 @@ public class FunctionMain {
           System.out.println(sql);
     }
 
- //   public static void main(String[] args)   {
-//        createTable(Formula.class,"公式配置");
-//        System.out.println(builder(Formula.class));
-//          getToken();
-         DatumPoint dap = new DatumPoint();
-         dap.setH(1.0);
-         dap.setY(2.0);
-         dap.setX(3.0);
-         dap.setType(1);
-         dap.setName("测试");
-         dap.setLevel("一级");
-         dap.setContractId(1L);
-         dap.setProjectId(2L);
-         dap.setRemark("导线点");
-        System.out.println(JSON.toJSONString(dap));
-    }
-**/
+
 
 }

+ 24 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ExcelTabServiceImpl.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.manager.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -33,8 +34,11 @@ import org.springblade.core.tool.utils.StringPool;
 import org.springblade.manager.bean.TableInfo;
 import org.springblade.manager.dto.FormData;
 import org.springblade.manager.entity.ExcelTab;
+import org.springblade.manager.entity.Formula;
 import org.springblade.manager.entity.WbsTree;
 import org.springblade.manager.entity.WbsTreeContract;
+import org.springblade.manager.formula.KeyMapper;
+import org.springblade.manager.service.IFormulaService;
 import org.springblade.manager.service.IWbsTreeContractService;
 import org.springblade.manager.service.IWbsTreeService;
 import org.springblade.manager.vo.ExceTabTreVO;
@@ -66,6 +70,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
 	// 元素信息表-
 	private final IWbsTreeContractService wbsTreeContractService;
 	private final IWbsTreeService wbsTreeService;
+	private final IFormulaService formulaService;
 	private final JdbcTemplate jdbcTemplate;
 	@Override
 	public IPage<ExcelTabVO> selectExcelTabPage(IPage<ExcelTabVO> page, ExcelTabVO excelTab) {
@@ -206,7 +211,25 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
 			Map<Long,List<WbsTree>>  treeMap = wbsTrees.stream().collect(Collectors.groupingBy(WbsTree::getId));
 			LinkedHashMap<Long,Long> map = new LinkedHashMap<>(wbsTreeContractList.size()*2);
 			String ids =tableInfoList.stream().map(TableInfo::getPkeyId).collect(Collectors.joining(","));
-			List<Map<String,Object>> keys=this.jdbcTemplate.queryForList("SELECT a.p_key_id,b.e_key,c.id from m_wbs_tree_contract a LEFT JOIN m_wbs_form_element b on a.id=b.f_id left JOIN m_wbs_tree c on a.id=c.id where a.p_key_id in ("+ids+")");
+			List<Map<String,Object>> list=this.jdbcTemplate.queryForList("SELECT   a.p_key_id as nodeId,b.id as fieldId,b.e_key as field,c.init_table_name as tableName  from m_wbs_tree_contract a LEFT JOIN m_wbs_form_element b on a.id=b.f_id left JOIN m_wbs_tree c on a.id=c.id where a.p_key_id in ("+ids+")");
+			List<KeyMapper> keyMappers = JSON.parseArray(JSONArray.toJSONString(list), KeyMapper.class);
+			if(Func.isNotEmpty(keyMappers)){
+				/*当前节点所有已经配置的公式*/
+				List<Formula> formulas =this.formulaService.list(Wrappers.<Formula>lambdaQuery().in(Formula::getElementId,keyMappers.stream().map(KeyMapper::getFieldId).distinct().collect(Collectors.toList())));
+				Map<Long,Formula> formulaMap = new HashMap<>();
+				if(Func.isNotEmpty(formulas)){
+					formulas.forEach(e->{
+						formulaMap.put(e.getElementId(),e);
+					});
+				}
+				LinkedHashMap<String,List<KeyMapper>> dataMap =keyMappers.stream().collect(Collectors.groupingBy(e->e.getTableName()+e.getField(), LinkedHashMap<String,List<KeyMapper>>::new,Collectors.toList()));
+				for(Map.Entry<String,List<KeyMapper>> entry:dataMap.entrySet()){
+					String code=	entry.getKey();
+					List<KeyMapper> keyMapperList =entry.getValue();
+					KeyMapper km = keyMapperList.get(0);
+					fds.add(new FormData(code,new ArrayList<>(),formulaMap.get(km.getFieldId())));
+				}
+			}
 			System.out.println();
 		}
 	}