Min 2 vuotta sitten
vanhempi
commit
7d2b3c40e4

+ 91 - 12
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectDocumentController.java

@@ -1,16 +1,13 @@
 package com.management.platform.controller;
 
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.management.platform.constant.Constant;
-import com.management.platform.entity.PdfFile;
-import com.management.platform.entity.ProjectDocfolder;
-import com.management.platform.entity.ProjectDocument;
-import com.management.platform.entity.User;
-import com.management.platform.mapper.PdfFileMapper;
-import com.management.platform.mapper.ProjectDocfolderMapper;
-import com.management.platform.mapper.ProjectDocumentMapper;
-import com.management.platform.mapper.UserMapper;
+import com.management.platform.entity.*;
+import com.management.platform.mapper.*;
 import com.management.platform.service.ProjectDocumentService;
 import com.management.platform.util.*;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -27,12 +24,11 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.io.IOException;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
+import java.time.LocalDateTime;
+import java.util.*;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -57,6 +53,10 @@ public class ProjectDocumentController {
     @Resource
     private ProjectDocfolderMapper projectDocfolderMapper;
     @Resource
+    private ProDocumentTemDetailMapper proDocumentTemDetailMapper;
+    @Resource
+    private ProjectDocumentTemplateMapper projectDocumentTemplateMapper;
+    @Resource
     private PdfFileMapper pdfFileMapper;
     @Value("${upload.path}")
     private String uploadPath;
@@ -315,5 +315,84 @@ public class ProjectDocumentController {
         msg.data=map;
         return msg;
     }
+
+    @RequestMapping("/getSubList")
+    public HttpRespMsg getSubList(Integer projectId, Integer parentFid){
+        HttpRespMsg httpRespMsg=new HttpRespMsg();
+        List<ProjectDocument> documentList = projectDocumentMapper.selectList(new QueryWrapper<ProjectDocument>().eq("project_id", projectId).eq("is_folder", 1).eq("is_deleted", 0));
+        List<ProjectDocument> firstHierarchy;
+        List<ProjectDocument> sub;
+        if(parentFid==null){
+            firstHierarchy = documentList.stream().filter(dl -> dl.getFolderId() == null).collect(Collectors.toList());
+        }else {
+            firstHierarchy = documentList.stream().filter(dl -> dl.getFolderId() != null && dl.getFolderId().equals(parentFid)).collect(Collectors.toList());
+        }
+        sub = getSub(firstHierarchy, documentList);
+        sub.forEach(s->{
+            s.setLabel(s.getDocumentName());
+        });
+        httpRespMsg.setData(sub);
+        return httpRespMsg;
+    }
+
+    public List<ProjectDocument> getSub(List<ProjectDocument> firstHierarchy,List<ProjectDocument> documentList){
+        for (ProjectDocument projectDocument : firstHierarchy) {
+            List<ProjectDocument> collect = documentList.stream().filter(dl -> dl.getFolderId() != null && dl.getFolderId().equals(projectDocument.getId())).collect(Collectors.toList());
+            List<ProjectDocument> sub = getSub(collect, documentList);
+            sub.forEach(s->{
+                s.setLabel(s.getDocumentName());
+            });
+            projectDocument.setChildren(sub);
+        }
+        return firstHierarchy;
+    }
+
+
+    @RequestMapping("/buildWithTemplate")
+    public HttpRespMsg buildWithTemplate(Integer templateId,Integer projectId){
+        User user = userMapper.selectById(request.getHeader("token"));
+        List<ProDocumentTemDetail> proDocumentTemDetailList = proDocumentTemDetailMapper.selectList(new QueryWrapper<ProDocumentTemDetail>().eq("template_id", templateId));
+        List<ProDocumentTemDetail> collect = proDocumentTemDetailList.stream().filter(pl -> pl.getParentId() == null).collect(Collectors.toList());
+        List<ProDocumentTemDetail> details = proDocumentTemDetailList.stream().filter(p -> p.getParentId() == null).collect(Collectors.toList());
+        List<ProjectDocument> list=new ArrayList<>();
+        details.forEach(dl->{
+            ProjectDocument projectDocument=new ProjectDocument();
+            projectDocument.setDocumentName(dl.getName());
+            projectDocument.setLabel(dl.getName());
+            projectDocument.setIsFolder(1);
+            projectDocument.setIndate(LocalDateTime.now());
+            projectDocument.setProjectId(projectId);
+            projectDocument.setIsDeleted(0);
+            projectDocument.setCreatorId(user.getId());
+            projectDocument.setCreatorName(user.getName());
+            projectDocument.setProDocumentTemDetailId(dl.getId());
+            list.add(projectDocument);
+        });
+        projectDocumentService.saveBatch(list);
+        getParentFolders(list,proDocumentTemDetailList,projectId,user);
+        return new HttpRespMsg();
+    }
+    public void getParentFolders(List<ProjectDocument> projectDocumentList,List<ProDocumentTemDetail> proDocumentTemDetailList,Integer projectId,User user){
+        List<ProjectDocument> list=new ArrayList<>();
+        for (ProjectDocument projectDocument : projectDocumentList) {
+            List<ProDocumentTemDetail> collect = proDocumentTemDetailList.stream().filter(pd -> pd.getParentId() != null && pd.getParentId().equals(projectDocument.getProDocumentTemDetailId())).collect(Collectors.toList());
+            collect.forEach(c->{
+                ProjectDocument item=new ProjectDocument();
+                item.setDocumentName(c.getName());
+                item.setLabel(c.getName());
+                item.setIsFolder(1);
+                item.setIndate(LocalDateTime.now());
+                item.setProjectId(projectId);
+                item.setIsDeleted(0);
+                item.setCreatorId(user.getId());
+                item.setCreatorName(user.getName());
+                item.setProDocumentTemDetailId(c.getId());
+                item.setFolderId(projectDocument.getProDocumentTemDetailId());
+                list.add(item);
+            });
+            projectDocumentService.saveBatch(list);
+            getParentFolders(list,proDocumentTemDetailList,projectId,user);
+        }
+    }
 }
 

+ 66 - 49
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectDocumentTemplateController.java

@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 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.ProjectDocument;
 import com.management.platform.entity.ProjectDocumentTemplate;
@@ -22,10 +23,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
 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;
 
 /**
@@ -55,67 +53,84 @@ public class ProjectDocumentTemplateController {
     public HttpRespMsg list(){
       HttpRespMsg httpRespMsg=new HttpRespMsg();
         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());
         collect.add(-1);
         List<ProDocumentTemDetail> proDocumentTemDetails = proDocumentTemDetailService.list(new QueryWrapper<ProDocumentTemDetail>().in("template_id", collect));
         documentTemplateList.forEach(dl->{
             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);
         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->{
+            rd.setLabel(rd.getName());
             List<ProDocumentTemDetail> documentTemDetails = proDocumentTemDetails.stream().filter(pl -> pl.getParentId() != null && pl.getParentId().equals(rd.getId())).collect(Collectors.toList());
             rd.setChildren(documentTemDetails);
-            getParentFolders(documentTemDetails);
-;
+            getParentFolders(documentTemDetails,proDocumentTemDetails);
         });
-        return rootDirectory;
+        return proDocumentTemDetails;
     }
 
     @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();
     }
 
-    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<>();
-        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;
     }
 
@@ -132,15 +147,17 @@ public class ProjectDocumentTemplateController {
         }
         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;
     }
 
 }

+ 3 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/ProDocumentTemDetail.java

@@ -41,6 +41,9 @@ public class ProDocumentTemDetail extends Model<ProDocumentTemDetail> {
     @TableField(exist =  false)
     private List<ProDocumentTemDetail> children;
 
+    @TableField(exist = false)
+    private String label;
+
 
     @Override
     protected Serializable pkVal() {

+ 10 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/ProjectDocument.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
 import com.baomidou.mybatisplus.annotation.TableField;
 import java.io.Serializable;
+import java.util.List;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
@@ -102,6 +103,15 @@ public class ProjectDocument extends Model<ProjectDocument> {
     @TableField("is_folder")
     private Integer isFolder;
 
+    @TableField(exist = false)
+    private List<ProjectDocument> children;
+
+    @TableField(exist = false)
+    private String label;
+
+    @TableField(exist = false)
+    private Integer proDocumentTemDetailId;
+
 
     @Override
     protected Serializable pkVal() {

+ 13 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -4473,7 +4473,19 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                                 operateDate = operateDate.plusSeconds(offsetSeconds);
                             }
                             String time = dtf.format(operateDate);
-                            String msg = time+" " + audit.getMsg();
+                            String msg="";
+                            if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                                if(audit.getMsg().contains("提交了")){
+                                    audit.getMsg().indexOf("提");
+                                    msg = time+" " + audit.getMsg();
+                                }else if(audit.getMsg().contains("审核通过了")){
+                                    msg = time+" " + audit.getMsg();
+                                }else if(audit.getMsg().contains("驳回了")) {
+                                    msg = time+" " + audit.getMsg();
+                                }
+                            }else {
+                                msg = time+" " + audit.getMsg();
+                            }
                             if (!isFirst) {
                                 sb.append("->");
                             } else {