Min 2 lat temu
rodzic
commit
09e6cdcb6c

+ 53 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -205,6 +205,12 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     private ExpenseSheetMapper expenseSheetMapper;
     @Resource
     private ExpenseTypeMapper expenseTypeMapper;
+    @Resource
+    private ProjectDocumentService projectDocumentService;
+    @Resource
+    private ProDocumentTemDetailMapper proDocumentTemDetailMapper;
+    @Resource
+    private ProjectDocumentTemplateMapper projectDocumentTemplateMapper;
 
     @Resource
     private HttpServletResponse response;
@@ -676,6 +682,28 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     operationRecord.setContent(MessageUtils.message("Template.creatProject"));
                     operationRecord.setCompanyId(user.getCompanyId());
                     operationRecordService.save(operationRecord);
+                    //随着存在随着项目创建而创建的文件中心模板
+                    List<ProjectDocumentTemplate> templateList = projectDocumentTemplateMapper.selectList(new QueryWrapper<ProjectDocumentTemplate>().eq("company_id", companyId).eq("cre_with_pro", 1));
+                    List<Integer> collect = templateList.stream().map(ProjectDocumentTemplate::getId).distinct().collect(Collectors.toList());
+                    collect.add(-1);
+                    List<ProDocumentTemDetail> proDocumentTemDetailList = proDocumentTemDetailMapper.selectList(new QueryWrapper<ProDocumentTemDetail>().in("template_id", collect));
+                    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(project.getId());
+                        projectDocument.setIsDeleted(0);
+                        projectDocument.setCreatorId(project.getCreatorId());
+                        projectDocument.setCreatorName(user.getName());
+                        projectDocument.setProDocumentTemDetailId(dl.getId());
+                        list.add(projectDocument);
+                    });
+                    projectDocumentService.saveBatch(list);
+                    getParentFolders(list,proDocumentTemDetailList,project,user);
                 }
             }
         } else {
@@ -2177,7 +2205,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             for (ExpenseMainType expenseMainType : expenseMainTypes) {
                 Map<String,Object> item=new HashMap<>();
                 item.put("type",expenseMainType.getId());
-                List<ExpenseSheet> sheetList = expenseSheetList.stream().filter(es -> es.getType().equals(expenseMainType.getId())).collect(Collectors.toList());
+                List<ExpenseSheet> sheetList = expenseSheetList.stream().filter(es ->es.getType()!=null&&es.getType().equals(expenseMainType.getId())).collect(Collectors.toList());
                 List<Integer> collect = sheetList.stream().map(ExpenseSheet::getId).distinct().collect(Collectors.toList());
                 collect.add(-1);
                 double sum = expenseItemList.stream().filter(el -> collect.contains(el.getExpenseId())&&el.getProjectId()!=null&&el.getProjectId().equals(map.get("id"))).mapToDouble(el -> el.getAmount()==null?0:el.getAmount()).sum();
@@ -2253,7 +2281,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             for (ExpenseMainType expenseMainType : expenseMainTypes) {
                 Map<String,Object> it=new HashMap<>();
                 it.put("type",expenseMainType.getId());
-                List<ExpenseSheet> sheetList = expenseSheetList.stream().filter(es -> es.getType().equals(expenseMainType.getId())).collect(Collectors.toList());
+                List<ExpenseSheet> sheetList = expenseSheetList.stream().filter(es ->es.getType()!=null&& es.getType().equals(expenseMainType.getId())).collect(Collectors.toList());
                 List<Integer> collect = sheetList.stream().map(ExpenseSheet::getId).distinct().collect(Collectors.toList());
                 collect.add(-1);
                 double sum = expenseItemList.stream().filter(el -> collect.contains(el.getExpenseId())&&el.getProjectId()!=null&&el.getProjectId().equals(item.get("id"))).mapToDouble(el -> el.getAmount()==null?0:el.getAmount()).sum();
@@ -10087,4 +10115,27 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         httpRespMsg.data =  pathPrefix + fileName+".xlsx";
         return httpRespMsg;
     }
+
+    public void getParentFolders(List<ProjectDocument> projectDocumentList,List<ProDocumentTemDetail> proDocumentTemDetailList,Project project,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(project.getId());
+                item.setIsDeleted(0);
+                item.setCreatorId(project.getCreatorId());
+                item.setCreatorName(user.getName());
+                item.setProDocumentTemDetailId(c.getId());
+                item.setFolderId(projectDocument.getProDocumentTemDetailId());
+                list.add(item);
+            });
+            projectDocumentService.saveBatch(list);
+            getParentFolders(list,proDocumentTemDetailList,project,user);
+        }
+    }
 }