|
@@ -18,6 +18,7 @@ package org.springblade.manager.service.impl;
|
|
|
|
|
|
import cn.hutool.core.date.StopWatch;
|
|
|
import cn.hutool.log.StaticLog;
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
@@ -26,6 +27,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.mixsmart.utils.ListUtils;
|
|
|
import com.mixsmart.utils.RegexUtils;
|
|
|
+import com.spire.xls.CellRange;
|
|
|
+import com.spire.xls.Workbook;
|
|
|
+import com.spire.xls.*;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
@@ -86,6 +90,7 @@ import java.util.*;
|
|
|
import java.util.function.Function;
|
|
|
import java.util.regex.Matcher;
|
|
|
import java.util.stream.Collectors;
|
|
|
+import java.util.stream.Stream;
|
|
|
|
|
|
/**
|
|
|
* 清表基础数据表 服务实现类
|
|
@@ -379,7 +384,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
|
|
|
currentNode.setPkId(wtc.getPKeyId());
|
|
|
currentNode.setParentId(wtc.getParentId());
|
|
|
currentNode.setWbsId(Long.parseLong(wtc.getWbsId()));
|
|
|
- currentNode.setId(StringUtils.isNotEmpty(wtc.getOldId()) ? Long.valueOf(wtc.getOldId()) : wtc.getId());
|
|
|
+ currentNode.setId(StringUtils.isNotEmpty(wtc.getOldId())? Long.valueOf(wtc.getOldId()) :wtc.getId());
|
|
|
currentNode.setRelateId(wtc.getId());
|
|
|
List<Long> privateIds = this.jdbcTemplate.queryForList("select p_key_id from m_wbs_tree_private where id=" + currentNode.getRelateId() + " and project_id=" + wtc.getProjectId() + " and wbs_id=" + wtc.getWbsId(), Long.class);
|
|
|
if (Func.isNotEmpty(privateIds)) {
|
|
@@ -563,77 +568,67 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
|
|
|
.eq(WbsTreeContract::getIsDeleted, 0));
|
|
|
|
|
|
// 数据维数据
|
|
|
- Map<String, List<WbsTreeContract>> Data = new HashMap<>();
|
|
|
- if (wbsTreeContractList != null && wbsTreeContractList.size() >= 1) {
|
|
|
- for (WbsTreeContract dataInfo : wbsTreeContractList) {
|
|
|
- String dataId = dataInfo.getId() + "";
|
|
|
- String parentId = dataInfo.getParentId() + "";
|
|
|
+ Map<String , List<WbsTreeContract> > Data = new HashMap<>();
|
|
|
+ if(wbsTreeContractList!=null && wbsTreeContractList.size()>=1){
|
|
|
+ for(WbsTreeContract dataInfo : wbsTreeContractList){
|
|
|
+ String dataId = dataInfo.getId()+"";
|
|
|
+ String parentId = dataInfo.getParentId()+"";
|
|
|
|
|
|
- if (!Data.containsKey(dataId)) {
|
|
|
+ if(!Data.containsKey(dataId)){
|
|
|
List<WbsTreeContract> newData = new ArrayList<>();
|
|
|
- Data.put(dataId, newData);
|
|
|
+ Data.put(dataId,newData);
|
|
|
}
|
|
|
// 添加数据
|
|
|
- if (Data.containsKey(parentId)) {
|
|
|
+ if(Data.containsKey(parentId)){
|
|
|
List<WbsTreeContract> newData = Data.get(parentId);
|
|
|
newData.add(dataInfo);
|
|
|
- Data.put(parentId, newData);
|
|
|
+ Data.put(parentId,newData);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//
|
|
|
- List<WbsTreeContract> lastList = new ArrayList<>();
|
|
|
+ Map<Long,String> lastList = new HashMap<>();
|
|
|
List<WbsTreeContract> collect = wbsTreeContractList.stream().filter(wbsTreeContract -> "0".equals(wbsTreeContract.getParentId().toString())).collect(Collectors.toList());
|
|
|
|
|
|
- this.dataInfo(collect, lastList, Data);
|
|
|
-
|
|
|
- if (lastList != null && lastList.size() >= 1) {
|
|
|
- for (WbsTreeContract data : lastList) {
|
|
|
- UpdateWrapper<WbsTreeContract> updateWrapper = new UpdateWrapper<>();
|
|
|
- updateWrapper.eq("p_key_id", data.getPKeyId() + "");
|
|
|
- updateWrapper.set("ancestors", data.getAncestors());
|
|
|
- wbsTreeContractService.getBaseMapper().update(data, updateWrapper);
|
|
|
+ this.dataInfo(collect,lastList,Data);
|
|
|
+
|
|
|
+ if(lastList!=null && lastList.size()>=1){
|
|
|
+ int index = 0;
|
|
|
+ StringBuffer sb =new StringBuffer();
|
|
|
+ for(Long data : lastList.keySet()){
|
|
|
+ sb.append(" update m_wbs_tree_contract set ancestors='"+lastList.get(data)+"' where p_key_id="+data+";");
|
|
|
+ index = index+1;
|
|
|
+ System.out.println(index);
|
|
|
+ if(index>=1000){
|
|
|
+ jdbcTemplate.execute(sb.toString());
|
|
|
+ sb = new StringBuffer();
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
return R.data("成功");
|
|
|
}
|
|
|
|
|
|
|
|
|
- public void dataInfo(List<WbsTreeContract> collect, List<WbsTreeContract> lastList, Map<String, List<WbsTreeContract>> Data) {
|
|
|
-
|
|
|
- /*List<WbsTreeContract> redata = new ArrayList<>();
|
|
|
- if (collect!=null && collect.size()==1){
|
|
|
- // 主节点
|
|
|
- for(WbsTreeContract fu:collect){
|
|
|
- String dataId = fu.getId()+"";
|
|
|
- List<WbsTreeContract> er = Data.get(dataId);
|
|
|
- redata.add(fu);
|
|
|
- if(er!=null && er.size()>=1){
|
|
|
- for(WbsTreeContract erData : er){
|
|
|
- erData.setAncestors(fu.getAncestors()+","+erData.getParentId());
|
|
|
- lastList.add(erData);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if(redata!=null && redata.size()>=1){
|
|
|
- this.dataInfo(redata,lastList,Data);
|
|
|
- }*/
|
|
|
-
|
|
|
+ public void dataInfo(List<WbsTreeContract> collect,Map<Long ,String > lastList,Map<String , List<WbsTreeContract> > Data){
|
|
|
|
|
|
Queue<WbsTreeContract> queue = new LinkedList<>();
|
|
|
//将第一层级的目录全部入列
|
|
|
collect.forEach(queue::offer);
|
|
|
while (!queue.isEmpty()) {
|
|
|
//每次循环出列一个对象 一直到队列为空
|
|
|
- WbsTreeContract tree = queue.poll();
|
|
|
- String dataId = tree.getId() + "";
|
|
|
+ WbsTreeContract tree= queue.poll();
|
|
|
+ String dataId = tree.getId()+"";
|
|
|
List<WbsTreeContract> er = Data.get(dataId);
|
|
|
- if (er != null && er.size() >= 1) {
|
|
|
- for (WbsTreeContract erData : er) {
|
|
|
- erData.setAncestors(tree.getAncestors() + "," + erData.getParentId());
|
|
|
- lastList.add(erData);
|
|
|
+ if(er!=null && er.size()>=1){
|
|
|
+ for(WbsTreeContract erData : er){
|
|
|
+ String Ancestors="";
|
|
|
+ if(lastList.containsKey(tree.getPKeyId())){
|
|
|
+ Ancestors = lastList.get(tree.getPKeyId());
|
|
|
+ }else{
|
|
|
+ Ancestors = tree.getAncestors();
|
|
|
+ }
|
|
|
+ lastList.put(erData.getPKeyId(),Ancestors+","+erData.getParentId());
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -645,6 +640,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
|
|
|
}
|
|
|
|
|
|
|
|
|
+
|
|
|
/**
|
|
|
* 保存首件
|
|
|
*/
|
|
@@ -2262,6 +2258,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
|
|
|
|
|
|
return bladeFile2.getLink();
|
|
|
}
|
|
|
+
|
|
|
return "";
|
|
|
}
|
|
|
|