|
@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
+import com.fasterxml.jackson.annotation.JsonFormat;
|
|
import com.management.platform.entity.ProDocumentTemDetail;
|
|
import com.management.platform.entity.ProDocumentTemDetail;
|
|
import com.management.platform.entity.ProjectDocument;
|
|
import com.management.platform.entity.ProjectDocument;
|
|
import com.management.platform.entity.ProjectDocumentTemplate;
|
|
import com.management.platform.entity.ProjectDocumentTemplate;
|
|
@@ -22,10 +23,7 @@ import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
-import java.util.ArrayList;
|
|
|
|
-import java.util.HashMap;
|
|
|
|
-import java.util.List;
|
|
|
|
-import java.util.Map;
|
|
|
|
|
|
+import java.util.*;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -55,67 +53,84 @@ public class ProjectDocumentTemplateController {
|
|
public HttpRespMsg list(){
|
|
public HttpRespMsg list(){
|
|
HttpRespMsg httpRespMsg=new HttpRespMsg();
|
|
HttpRespMsg httpRespMsg=new HttpRespMsg();
|
|
Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
|
|
Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
|
|
- List<ProjectDocumentTemplate> documentTemplateList = projectDocumentTemplateService.list(new QueryWrapper<ProjectDocumentTemplate>().eq("company_id", companyId));
|
|
|
|
|
|
+ List<ProjectDocumentTemplate> documentTemplateList = projectDocumentTemplateService.list(new QueryWrapper<ProjectDocumentTemplate>().eq("company_id", companyId).orderByDesc("id"));
|
|
List<Integer> collect = documentTemplateList.stream().map(ProjectDocumentTemplate::getId).distinct().collect(Collectors.toList());
|
|
List<Integer> collect = documentTemplateList.stream().map(ProjectDocumentTemplate::getId).distinct().collect(Collectors.toList());
|
|
collect.add(-1);
|
|
collect.add(-1);
|
|
List<ProDocumentTemDetail> proDocumentTemDetails = proDocumentTemDetailService.list(new QueryWrapper<ProDocumentTemDetail>().in("template_id", collect));
|
|
List<ProDocumentTemDetail> proDocumentTemDetails = proDocumentTemDetailService.list(new QueryWrapper<ProDocumentTemDetail>().in("template_id", collect));
|
|
documentTemplateList.forEach(dl->{
|
|
documentTemplateList.forEach(dl->{
|
|
List<ProDocumentTemDetail> details = proDocumentTemDetails.stream().filter(p -> p.getTemplateId().equals(dl.getId())).collect(Collectors.toList());
|
|
List<ProDocumentTemDetail> details = proDocumentTemDetails.stream().filter(p -> p.getTemplateId().equals(dl.getId())).collect(Collectors.toList());
|
|
- List<ProDocumentTemDetail> parentFolders = getParentFolders(details);
|
|
|
|
- dl.setProDocumentTemDetailList(parentFolders);
|
|
|
|
|
|
+ List<ProDocumentTemDetail> rootDirectory = proDocumentTemDetails.stream().filter(pt -> pt.getParentId() == null&&pt.getTemplateId().equals(dl.getId())).collect(Collectors.toList());
|
|
|
|
+ getParentFolders(rootDirectory,details);
|
|
|
|
+ dl.setProDocumentTemDetailList(rootDirectory);
|
|
});
|
|
});
|
|
httpRespMsg.setData(documentTemplateList);
|
|
httpRespMsg.setData(documentTemplateList);
|
|
return httpRespMsg;
|
|
return httpRespMsg;
|
|
}
|
|
}
|
|
|
|
|
|
- public List<ProDocumentTemDetail> getParentFolders(List<ProDocumentTemDetail> proDocumentTemDetails){
|
|
|
|
|
|
+ public List<ProDocumentTemDetail> getParentFolders(List<ProDocumentTemDetail> rootDirectory,List<ProDocumentTemDetail> proDocumentTemDetails){
|
|
//过滤出一级文件夹
|
|
//过滤出一级文件夹
|
|
- List<ProDocumentTemDetail> rootDirectory = proDocumentTemDetails.stream().filter(pt -> pt.getParentId() == null).collect(Collectors.toList());
|
|
|
|
rootDirectory.forEach(rd->{
|
|
rootDirectory.forEach(rd->{
|
|
|
|
+ rd.setLabel(rd.getName());
|
|
List<ProDocumentTemDetail> documentTemDetails = proDocumentTemDetails.stream().filter(pl -> pl.getParentId() != null && pl.getParentId().equals(rd.getId())).collect(Collectors.toList());
|
|
List<ProDocumentTemDetail> documentTemDetails = proDocumentTemDetails.stream().filter(pl -> pl.getParentId() != null && pl.getParentId().equals(rd.getId())).collect(Collectors.toList());
|
|
rd.setChildren(documentTemDetails);
|
|
rd.setChildren(documentTemDetails);
|
|
- getParentFolders(documentTemDetails);
|
|
|
|
-;
|
|
|
|
|
|
+ getParentFolders(documentTemDetails,proDocumentTemDetails);
|
|
});
|
|
});
|
|
- return rootDirectory;
|
|
|
|
|
|
+ return proDocumentTemDetails;
|
|
}
|
|
}
|
|
|
|
|
|
@RequestMapping("/addTemplate")
|
|
@RequestMapping("/addTemplate")
|
|
- public HttpRespMsg addTemplate(String documentString,String name ,Integer creWithPro){
|
|
|
|
- JSONArray jsonArray = JSONArray.parseArray(documentString);
|
|
|
|
- Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
|
|
|
|
- if(jsonArray!=null&&jsonArray.size()>0){
|
|
|
|
- Integer projectId = jsonArray.getJSONObject(0).getInteger("projectId");
|
|
|
|
- List<ProjectDocument> list = projectDocumentMapper.selectList(new QueryWrapper<ProjectDocument>().eq("project_id", projectId).eq("is_folder",1).eq("is_deleted",0));
|
|
|
|
- ProjectDocumentTemplate projectDocumentTemplate=new ProjectDocumentTemplate();
|
|
|
|
- projectDocumentTemplate.setCompanyId(companyId);
|
|
|
|
- projectDocumentTemplate.setCreWithPro(creWithPro);
|
|
|
|
- projectDocumentTemplate.setName(name);
|
|
|
|
- projectDocumentTemplateService.save(projectDocumentTemplate);
|
|
|
|
- List<ProDocumentTemDetail> detailList = getSubordinateFolders(jsonArray, projectDocumentTemplate.getId(), list);
|
|
|
|
- proDocumentTemDetailService.saveOrUpdateBatch(detailList);
|
|
|
|
|
|
+ public HttpRespMsg addTemplate(String documentString,String name ,Integer creWithPro,Integer id){
|
|
|
|
+ if(id==null){
|
|
|
|
+ JSONArray jsonArray = JSONArray.parseArray(documentString);
|
|
|
|
+ Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
|
|
|
|
+ if(jsonArray!=null&&jsonArray.size()>0){
|
|
|
|
+ ProjectDocumentTemplate projectDocumentTemplate=new ProjectDocumentTemplate();
|
|
|
|
+ projectDocumentTemplate.setCompanyId(companyId);
|
|
|
|
+ projectDocumentTemplate.setCreWithPro(creWithPro);
|
|
|
|
+ projectDocumentTemplate.setName(name);
|
|
|
|
+ projectDocumentTemplateService.save(projectDocumentTemplate);
|
|
|
|
+ //模板第一层
|
|
|
|
+ for (int i = 0; i < jsonArray.size(); i++) {
|
|
|
|
+ JSONObject jsonObject = jsonArray.getJSONObject(i);
|
|
|
|
+ JSONArray children = jsonObject.getJSONArray("children");
|
|
|
|
+ ProDocumentTemDetail proDocumentTemDetail=new ProDocumentTemDetail();
|
|
|
|
+ proDocumentTemDetail.setName(jsonObject.getString("label"));
|
|
|
|
+ proDocumentTemDetail.setTemplateId(projectDocumentTemplate.getId());
|
|
|
|
+ proDocumentTemDetailService.save(proDocumentTemDetail);
|
|
|
|
+ List<ProDocumentTemDetail> subordinateFolders = getSubordinateFolders(proDocumentTemDetail, children, projectDocumentTemplate.getId());
|
|
|
|
+ proDocumentTemDetailService.saveBatch(subordinateFolders);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }else {
|
|
|
|
+ proDocumentTemDetailService.remove(new QueryWrapper<ProDocumentTemDetail>().eq("template_id",id));
|
|
|
|
+ JSONArray jsonArray = JSONArray.parseArray(documentString);
|
|
|
|
+ for (int i = 0; i < jsonArray.size(); i++) {
|
|
|
|
+ JSONObject jsonObject = jsonArray.getJSONObject(i);
|
|
|
|
+ ProDocumentTemDetail p=new ProDocumentTemDetail();
|
|
|
|
+ p.setTemplateId(id);
|
|
|
|
+ p.setName(jsonObject.getString("name")==null?jsonObject.getString("label"):jsonObject.getString("name"));
|
|
|
|
+ proDocumentTemDetailService.save(p);
|
|
|
|
+ JSONArray children = jsonObject.getJSONArray("children");
|
|
|
|
+ getChildren(children,id, p.getId());
|
|
|
|
+ }
|
|
}
|
|
}
|
|
return new HttpRespMsg();
|
|
return new HttpRespMsg();
|
|
}
|
|
}
|
|
|
|
|
|
- public List<ProDocumentTemDetail> getSubordinateFolders(JSONArray jsonArray,Integer templateId,List<ProjectDocument> allList){
|
|
|
|
|
|
+ public List<ProDocumentTemDetail> getSubordinateFolders(ProDocumentTemDetail proDocumentTemDetail,JSONArray children,Integer templateId){
|
|
List<ProDocumentTemDetail> proDocumentTemDetailList=new ArrayList<>();
|
|
List<ProDocumentTemDetail> proDocumentTemDetailList=new ArrayList<>();
|
|
- for (int i = 0; i < jsonArray.size(); i++) {
|
|
|
|
- JSONObject jsonObject = jsonArray.getJSONObject(i);
|
|
|
|
- ProDocumentTemDetail proDocumentTemDetail=new ProDocumentTemDetail();
|
|
|
|
- proDocumentTemDetail.setName(jsonObject.getString("documentName"));
|
|
|
|
- proDocumentTemDetail.setTemplateId(templateId);
|
|
|
|
- proDocumentTemDetailService.saveOrUpdate(proDocumentTemDetail);
|
|
|
|
- proDocumentTemDetailList.add(proDocumentTemDetail);
|
|
|
|
- List<ProjectDocument> collect = allList.stream().filter(l ->l.getFolderId()!=null&& l.getFolderId().equals(jsonObject.get("id"))).collect(Collectors.toList());
|
|
|
|
- if(collect.size()>0){
|
|
|
|
- List<ProDocumentTemDetail> subordinateFolders = getSubordinateFolders(JSONArray.parseArray(JSON.toJSONString(collect)), templateId, allList);
|
|
|
|
- subordinateFolders.forEach(sf->{
|
|
|
|
- sf.setParentId(proDocumentTemDetail.getId());
|
|
|
|
- proDocumentTemDetailService.saveOrUpdate(sf);
|
|
|
|
- });
|
|
|
|
|
|
+ for (int i = 0; i < children.size(); i++) {
|
|
|
|
+ JSONObject jsonObject1 = children.getJSONObject(i);
|
|
|
|
+ ProDocumentTemDetail proDocumentTemDetail1=new ProDocumentTemDetail();
|
|
|
|
+ proDocumentTemDetail1.setName(jsonObject1.getString("label"));
|
|
|
|
+ proDocumentTemDetail1.setTemplateId(templateId);
|
|
|
|
+ proDocumentTemDetail1.setParentId(proDocumentTemDetail.getId());
|
|
|
|
+ JSONArray children1 = jsonObject1.getJSONArray("children");
|
|
|
|
+ proDocumentTemDetailService.save(proDocumentTemDetail1);
|
|
|
|
+ List<ProDocumentTemDetail> subordinateFolders = getSubordinateFolders(proDocumentTemDetail1, children1, templateId);
|
|
|
|
+ proDocumentTemDetailList.addAll(subordinateFolders);
|
|
}
|
|
}
|
|
- }
|
|
|
|
return proDocumentTemDetailList;
|
|
return proDocumentTemDetailList;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -132,15 +147,17 @@ public class ProjectDocumentTemplateController {
|
|
}
|
|
}
|
|
return httpRespMsg;
|
|
return httpRespMsg;
|
|
}
|
|
}
|
|
-
|
|
|
|
- @RequestMapping("/update")
|
|
|
|
- public HttpRespMsg update(ProjectDocumentTemplate projectDocumentTemplate){
|
|
|
|
- HttpRespMsg httpRespMsg=new HttpRespMsg();
|
|
|
|
- if(!projectDocumentTemplateService.updateById(projectDocumentTemplate)){
|
|
|
|
- httpRespMsg.setError("验证失败");
|
|
|
|
- return httpRespMsg;
|
|
|
|
|
|
+ public void getChildren(JSONArray list,Integer templateId,Integer parentId){
|
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
|
+ JSONObject jsonObject = list.getJSONObject(i);
|
|
|
|
+ ProDocumentTemDetail p=new ProDocumentTemDetail();
|
|
|
|
+ p.setTemplateId(templateId);
|
|
|
|
+ p.setName(jsonObject.getString("name")==null?jsonObject.getString("label"):jsonObject.getString("name"));
|
|
|
|
+ p.setParentId(parentId);
|
|
|
|
+ proDocumentTemDetailService.save(p);
|
|
|
|
+ JSONArray children = jsonObject.getJSONArray("children");
|
|
|
|
+ getChildren(children,templateId, p.getId());
|
|
}
|
|
}
|
|
- return httpRespMsg;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|