|
@@ -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();
|
|
|
}
|
|
|
}
|