Jelajahi Sumber

Merge branch 'master' of http://47.100.37.243:10191/wutt/manHourHousekeeper

cs 2 tahun lalu
induk
melakukan
e455b210c2

+ 55 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectDocumentController.java

@@ -47,6 +47,8 @@ public class ProjectDocumentController {
     @Resource
     private UserMapper userMapper;
     @Resource
+    private ProjectMapper projectMapper;
+    @Resource
     private ProjectDocumentMapper projectDocumentMapper;
     @Resource
     private ProjectDocumentService projectDocumentService;
@@ -225,9 +227,13 @@ public class ProjectDocumentController {
     }
 
     @RequestMapping(value="createDocument")
-    public HttpRespMsg createDocument(Integer id, Integer projectId, String documentName, Integer folderId, Integer isFolder) {
+    public HttpRespMsg createDocument(Integer id, Integer projectId, String documentName, Integer folderId, Integer isFolder, @RequestParam(required = false, defaultValue = "false") Boolean syncChange) {
         User user = userMapper.selectById(request.getHeader("Token"));
         ProjectDocument record = new ProjectDocument();
+        ProjectDocument oldDocument = null;
+        if (id != null) {
+            oldDocument = projectDocumentMapper.selectById(id);
+        }
         record.setId(id);
         record.setIsFolder(isFolder);
         record.setDocumentName(documentName);
@@ -236,6 +242,20 @@ public class ProjectDocumentController {
         record.setCreatorId(user.getId());
         record.setCreatorName(user.getName());
         projectDocumentService.saveOrUpdate(record);
+
+        if (id != null && syncChange) {
+            //同步修改其他项目中的同名文件夹
+            QueryWrapper<ProjectDocument> exp = new QueryWrapper<ProjectDocument>();
+            List<Project> pList = projectMapper.selectList(new QueryWrapper<Project>().select("id").eq("company_id", user.getCompanyId()));
+            List<Integer> collect = pList.stream().filter(p->!p.getId().equals(projectId)).mapToInt(Project::getId).boxed().collect(Collectors.toList());
+            if (collect.size() > 0) {
+                exp.eq("document_name", oldDocument.getDocumentName()).eq("is_folder", isFolder).eq("is_deleted", 0);
+                exp.in("project_id", collect);
+                ProjectDocument update = new ProjectDocument();
+                update.setDocumentName(documentName);
+                projectDocumentMapper.update(update, exp);
+            }
+        }
         HttpRespMsg msg = new HttpRespMsg();
         return msg;
     }
@@ -252,6 +272,40 @@ public class ProjectDocumentController {
         msg.data = projectDocumentMapper.selectList(exp);
         return msg;
     }
+
+    @RequestMapping(value="generateDefaultFolders")
+    public HttpRespMsg generateDefaultFolders(Integer companyId) {
+        User user = userMapper.selectOne(new QueryWrapper<User>().eq("company_id", companyId).eq("role_name", "超级管理员"));
+        List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().select("id").eq("company_id", companyId));
+        if (projectList.size() > 0) {
+            List<ProjectDocument> documentList = new ArrayList<>();
+            projectList.forEach(p->{
+                QueryWrapper<ProjectDocument> firstQuery = new QueryWrapper<ProjectDocument>();
+                Integer projectId = p.getId();
+                firstQuery.eq("project_id", projectId);
+                if (projectDocumentMapper.selectCount(firstQuery) == 0) {
+                    String[] names = new String[]{MessageUtils.message("project.storesReserve"),MessageUtils.message("project.processDocuments"),MessageUtils.message("project.deliverable")};
+                    for (String name : names) {
+                        ProjectDocument doc = new ProjectDocument();
+                        doc.setProjectId(projectId);
+                        doc.setIsFolder(1);
+                        doc.setDocumentName(name);
+                        doc.setCreatorId(user.getId());
+                        doc.setCreatorName(user.getName());
+                        documentList.add(doc);
+                    }
+                }
+            });
+            if (documentList.size() > 0) {
+                projectDocumentService.saveBatch(documentList);
+            }
+
+        }
+
+        HttpRespMsg msg = new HttpRespMsg();
+        return msg;
+    }
+
     /**
      * 所有文件列表
      * projectId 项目id

+ 0 - 86
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java

@@ -978,69 +978,6 @@ public class ReportController {
             }
         }
 
-          if(company.getId()==862){
-            Collection<Integer> projectIds = reportList.stream().map(Report::getProjectId).distinct().collect(Collectors.toList());
-            List<Project> targetProjectList = projectList.stream().filter(pl -> projectIds.contains(pl.getId())).collect(Collectors.toList());
-            String creatorId = reportList.get(0).getCreatorId();
-            User reportUser = userMapper.selectById(creatorId);
-            DateTimeFormatter df=DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
-            LocalDateTime time = LocalDateTime.now();
-            String format = time.format(df);
-            String tokenOfYiWei = getTokenOfYiWei();
-            String url = "http://183.194.0.98:3202/api/web-server/controlCenter/billApply";
-            HttpHeaders headers = new HttpHeaders();
-            headers.setContentType(MediaType.APPLICATION_JSON);
-            headers.add("token",tokenOfYiWei);
-            headers.add("Accept-Language","zh-CN");
-            JSONObject body=new JSONObject();
-            body.put("dataSource","工时管家");
-            body.put("type","EXPENSE");
-            body.put("applicant",reportUser.getName());
-            body.put("applyTime",format);
-            body.put("billNo","GS"+ reportUser.getId()+reportList.get(0).getCreateDate());
-            JSONArray expenseDetails=new JSONArray();
-            for (Report report : reportList) {
-                Optional<Project> first = targetProjectList.stream().filter(tl -> tl.getId().equals(report.getProjectId())).findFirst();
-                if(first.isPresent()){
-                    JSONObject expenseDetail =new JSONObject();
-                    expenseDetail.put("company","FONE");
-                    expenseDetail.put("department","DEFAULT");
-                    expenseDetail.put("project",first.get().getProjectCode());
-                    expenseDetail.put("expenseItem","DEFAULT");
-                    expenseDetail.put("amount",report.getWorkingTime());
-                    expenseDetails.add(expenseDetail);
-                }
-
-            }
-            body.put("expenseDetails",expenseDetails);
-            HttpEntity<String> requestEntity = new HttpEntity<String>(body.toJSONString(), headers);
-            ResponseEntity<String> responseEntity = this.restTemplate.exchange(url,
-                    HttpMethod.POST, requestEntity, String.class);
-            if (responseEntity.getStatusCode() == HttpStatus.OK) {
-                String resp = responseEntity.getBody();
-                JSONObject json = JSONObject.parseObject(resp);
-                if(json.getIntValue("status")==0){
-                    JSONArray data = json.getJSONArray("data");
-                    JSONObject jsonObject = data.getJSONObject(0);
-                    Integer totalBudgetAmount = jsonObject.getInteger("totalBudgetAmount");
-                    Integer occurredBudgetAmount = jsonObject.getInteger("occurredBudgetAmount");
-                    BigDecimal divide = (new BigDecimal(occurredBudgetAmount).add(new BigDecimal(jsonObject.getInteger("amount")))).divide(new BigDecimal(totalBudgetAmount), 3, RoundingMode.HALF_UP);
-                    if(divide.doubleValue()>0.85){
-                        HttpRespMsg httpRespMsg=new HttpRespMsg();
-                        httpRespMsg.setMsg("当前预算占用已到85%");
-                    }
-                } else if(json.getIntValue("status")==14001){
-                    HttpRespMsg httpRespMsg=new HttpRespMsg();
-                    httpRespMsg.setError("当前项目预算不足,无法填报");
-                    return httpRespMsg;
-                }else if(json.getIntValue("status")==14002){
-                    HttpRespMsg httpRespMsg=new HttpRespMsg();
-                    httpRespMsg.setError("未找到预算控制单元:"+json.getString("message"));
-                    return httpRespMsg;
-                }
-            }
-        }
-
         //如果锁定工作时长上限的话,需要校验每日的合计工作时长
         if (comTimeType.getLockWorktime() == 1) {
             for (Report report : reportList) {
@@ -1364,29 +1301,6 @@ public class ReportController {
         return httpRespMsg;
     }
 
-
-    private String getTokenOfYiWei(){
-        String url = "http://183.194.0.98:3202/api/web-server/controlCenter/token";
-        HttpHeaders headers = new HttpHeaders();
-        String token="";
-        headers.setContentType(MediaType.APPLICATION_JSON);
-        JSONObject jsonObject=new JSONObject();
-        jsonObject.put("appId","GongShi");
-        jsonObject.put("appSecret","858a6e0b60d228a556d8e353ebbd2c5c");
-        HttpEntity<String> requestEntity;
-        requestEntity = new HttpEntity<String>(jsonObject.toJSONString(), headers);
-        ResponseEntity<String> responseEntity = this.restTemplate.exchange(url,
-                HttpMethod.POST, requestEntity, String.class);
-        if (responseEntity.getStatusCode() == HttpStatus.OK) {
-            String resp = responseEntity.getBody();
-            JSONObject json = JSONObject.parseObject(resp);
-            if(json.getIntValue("status")==0){
-                token= json.getString("data");
-            }
-        }
-        return token;
-    }
-
     private void fillReportHours(Report report, BigDecimal hourCost, Double workingTime, Integer timeType, String startTime, String endTime, SimpleDateFormat sdf, TimeType comTimeType, List<TimeAutoExclude> excludeTimeList) {
         if (report.getMultiWorktime() == 0) {
             //普通工时成本计算

+ 2 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ProjectMapper.java

@@ -28,7 +28,7 @@ public interface ProjectMapper extends BaseMapper<Project> {
 
     List<Map<String, Object>> getTimeCost(@Param("companyId") Integer companyId, @Param("startDate") String startDate, @Param("endDate") String endDate,
                                           @Param("projectId") Integer projectId, @Param("userIdList") List<String> userIdList,
-                                          @Param("deptIds")List<Integer> deptIds,@Param("filterDeptIds")List<Integer> filterDeptIds, @Param("deptRelatedProjectIds") List<Integer> deptRelatedProjectIds);
+                                          @Param("deptIds")List<Integer> deptIds,@Param("filterDeptIds")List<Integer> filterDeptIds, @Param("deptRelatedProjectIds") List<Integer> deptRelatedProjectIds, @Param("projectIds") List<Integer> projectIds);
 
     List<Map<String, Object>> getCustomDataSum(@Param("companyId") Integer companyId, @Param("startDate") String startDate, @Param("endDate") String endDate,
                                           @Param("projectId") Integer projectId, @Param("userId") String userId);
@@ -95,7 +95,7 @@ public interface ProjectMapper extends BaseMapper<Project> {
 
     List<Map<String, Object>> getProjectCostGroupByProject(Integer companyId, String startDate, String endDate, Integer projectId,List<String> userIdList,List<Integer> deptIds);
 
-    List<Map<String, Object>> getTimeCostByCategory(Integer companyId, String startDate, String endDate, Integer projectCategoryId,List<String> userIdList,List<Integer> deptIds);
+    List<Map<String, Object>> getTimeCostByCategory(Integer companyId, String startDate, String endDate, Integer projectCategoryId,List<String> userIdList,List<Integer> deptIds, List<Integer> projectIds);
 
     List<Map<String, Object>> getProjectCostGroupByCategory(Integer companyId, String startDate, String endDate, Integer projectCategoryId,List<String> userIdList,List<Integer> deptIds);
 

+ 73 - 30
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -238,8 +238,10 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             } else {
                 if (!sysFunctionService.hasPriviledge(user.getRoleId(), "查看全部项目")) {
                     //只能看本人相关的项目
+                    System.out.println("只看本人相关的项目");
                     httpRespMsg.data = projectMapper.getParticipatedProject(user.getId(), user.getCompanyId());
                 } else {
+                    System.out.println("查看全部项目");
                     //有权限的看全部的
                     httpRespMsg.data = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", user.getCompanyId()).orderByDesc("is_public").orderByAsc("id"));
                 }
@@ -682,28 +684,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);
+                    //随着存在随着项目创建而创建的文件中心模板:暂时注释掉,等设计好了再打开
+//                    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 {
@@ -1176,6 +1178,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             List<SysRichFunction> functionTimeList = sysFunctionMapper.getRoleFunctions(targetUser.getRoleId(), "查看工时统计");
             List<SysRichFunction> functionCostList = sysFunctionMapper.getRoleFunctions(targetUser.getRoleId(), "查看成本统计");
             List<Integer> deptRelatedProjectIds = new ArrayList<>();
+            List<Integer> projectIds = null;
             //判断查看权限
             if(functionAllList.size()==0){
                 deptIds=new ArrayList<>();
@@ -1199,15 +1202,24 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     if(functionTimeList.size()>0||functionCostList.size()>0){
                         deptIds.addAll(allMyManagedDeptIds);
                     }
+                } else {
+                    //担任项目经理的项目
+                    List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().select("id").eq("incharger_id", targetUser.getId()));
+                    if (projectList.size() > 0) {
+                        projectIds = projectList.stream().map(Project::getId).collect(Collectors.toList());
+                    } else {
+                        projectIds = new ArrayList<>();
+                        projectIds.add(-1);
+                    }
+                    deptIds = null;
                 }
-
             }
             List<String> userIdList=new ArrayList<>();
             if(userIds!=null&&userIds.length()>0){
                 String[] split = userIds.split(",");
                 userIdList = Arrays.asList(split);
             }
-            List<Map<String, Object>> list = projectMapper.getTimeCost(companyId, startDate, endDate, projectId, userIdList,deptIds,null, deptRelatedProjectIds);
+            List<Map<String, Object>> list = projectMapper.getTimeCost(companyId, startDate, endDate, projectId, userIdList,deptIds,null, deptRelatedProjectIds, projectIds);
             BigDecimal totalMoneyCost = BigDecimal.valueOf(0);
             for (Map<String, Object> map : list) {
                 if (!map.containsKey("cost")) {
@@ -1268,7 +1280,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             List<SysRichFunction> functionTimeList = sysFunctionMapper.getRoleFunctions(targetUser.getRoleId(), "查看工时统计");
             List<SysRichFunction> functionCostList = sysFunctionMapper.getRoleFunctions(targetUser.getRoleId(), "查看成本统计");
             List<Integer> deptRelatedProjectIds = new ArrayList<>();
-
+            List<Integer> manProjectIds = null;
             //判断查看权限
             List<Integer> filterDeptIds=null;
             if(deptId!=null){
@@ -1294,9 +1306,19 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     if(functionTimeList.size()>0||functionCostList.size()>0){
                         deptIds.addAll(allMyManagedDeptIds);
                     }
+                } else {
+                    //担任项目经理的项目
+                    List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().select("id").eq("incharger_id", targetUser.getId()));
+                    if (projectList.size() > 0) {
+                        manProjectIds = projectList.stream().map(Project::getId).collect(Collectors.toList());
+                    } else {
+                        manProjectIds = new ArrayList<>();
+                        manProjectIds.add(-1);
+                    }
+                    deptIds = null;
                 }
                 //没有查看全公司的权限 只能先判断当前部门/父级别是否在负责部门才能获取数据
-                if(deptId!=null){
+                if(deptId != null){
                     Optional<Department> first = allDepartmentList.stream().filter(ad -> ad.getDepartmentId().equals(deptId)).findFirst();
                     if(first.isPresent()){
                         if(deptIds.contains(first.get().getSuperiorId())||deptIds.contains(deptId)){
@@ -1308,13 +1330,12 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     }
                 }
             }
-            System.out.println(filterDeptIds);
             List<String> userIdList=new ArrayList<>();
             if(userIds!=null&&userIds.length()>0){
                 String[] split = userIds.split(",");
                 userIdList = Arrays.asList(split);
             }
-            List<Map<String, Object>> list = projectMapper.getTimeCost(companyId, startDate, endDate, projectId, userIdList,deptIds,filterDeptIds,deptRelatedProjectIds);
+            List<Map<String, Object>> list = projectMapper.getTimeCost(companyId, startDate, endDate, projectId, userIdList,deptIds,filterDeptIds,deptRelatedProjectIds, manProjectIds);
             BigDecimal totalMoneyCost = BigDecimal.valueOf(0);
             List<List<String>> allList=null ;
             List<String> sumRow = null;
@@ -6189,6 +6210,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             List<SysRichFunction> functionDpartList = sysFunctionMapper.getRoleFunctions(targetUser.getRoleId(), "查看负责部门");
             List<SysRichFunction> functionTimeList = sysFunctionMapper.getRoleFunctions(targetUser.getRoleId(), "查看工时统计");
             List<SysRichFunction> functionCostList = sysFunctionMapper.getRoleFunctions(targetUser.getRoleId(), "查看成本统计");
+            List<Integer> projectIds = null;
             //判断查看权限
             if(functionAllList.size()==0){
                 deptIds=new ArrayList<>();
@@ -6203,6 +6225,16 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                             deptIds.addAll(branchDepartment);
                         }
                     }
+                } else {
+                    //担任项目经理的项目
+                    List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().select("id").eq("incharger_id", targetUser.getId()));
+                    if (projectList.size() > 0) {
+                        projectIds = projectList.stream().map(Project::getId).collect(Collectors.toList());
+                    } else {
+                        projectIds = new ArrayList<>();
+                        projectIds.add(-1);
+                    }
+                    deptIds = null;
                 }
             }
             TimeType timeType = timeTypeMapper.selectById(companyId);
@@ -6211,7 +6243,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 String[] split = userIds.split(",");
                 userIdList = Arrays.asList(split);
             }
-            List<Map<String, Object>> list = projectMapper.getTimeCostByCategory(companyId, startDate, endDate, null,userIdList,deptIds);
+            List<Map<String, Object>> list = projectMapper.getTimeCostByCategory(companyId, startDate, endDate, null,userIdList,deptIds, projectIds);
             BigDecimal totalMoneyCost = BigDecimal.valueOf(0);
             for (Map<String, Object> map : list) {
                 if (!map.containsKey("cost")) {
@@ -6264,6 +6296,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             List<SysRichFunction> functionDpartList = sysFunctionMapper.getRoleFunctions(targetUser.getRoleId(), "查看负责部门");
             List<SysRichFunction> functionTimeList = sysFunctionMapper.getRoleFunctions(targetUser.getRoleId(), "查看工时统计");
             List<SysRichFunction> functionCostList = sysFunctionMapper.getRoleFunctions(targetUser.getRoleId(), "查看成本统计");
+            List<Integer> projectIds = null;
             //判断查看权限
             if(functionAllList.size()==0){
                 deptIds=new ArrayList<>();
@@ -6278,6 +6311,16 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                             deptIds.addAll(branchDepartment);
                         }
                     }
+                } else {
+                    //担任项目经理的项目
+                    List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().select("id").eq("incharger_id", targetUser.getId()));
+                    if (projectList.size() > 0) {
+                        projectIds = projectList.stream().map(Project::getId).collect(Collectors.toList());
+                    } else {
+                        projectIds = new ArrayList<>();
+                        projectIds.add(-1);
+                    }
+                    deptIds = null;
                 }
             }
             List<String> userIdList=new ArrayList<>();
@@ -6285,7 +6328,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 String[] split = userIds.split(",");
                 userIdList = Arrays.asList(split);
             }
-            List<Map<String, Object>> list = projectMapper.getTimeCostByCategory(companyId, startDate, endDate, projectCategoryId, userIdList,deptIds);
+            List<Map<String, Object>> list = projectMapper.getTimeCostByCategory(companyId, startDate, endDate, projectCategoryId, userIdList,deptIds, projectIds);
             BigDecimal totalMoneyCost = BigDecimal.valueOf(0);
             List<List<String>> allList=null ;
             List<String> sumRow = null;

+ 0 - 57
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -1704,25 +1704,6 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 if (updateReportList.size() > 0) {
                     updateBatchById(updateReportList);
                 }
-                if(company.getId()==862){
-                    String url = "http://183.194.0.98:3202/api/web-server/controlCenter/billApproved";
-                    HttpHeaders headers = new HttpHeaders();
-                    headers.setContentType(MediaType.APPLICATION_JSON);
-                    headers.add("token",getTokenOfYiWei());
-                    JSONObject body=new JSONObject();
-                    body.put("type","EXPENSE");
-                    body.put("billNo","GS"+reportList.get(0).getCreatorId()+reportList.get(0).getCreateDate());
-                    HttpEntity<String> requestEntity = new HttpEntity<String>(body.toJSONString(), headers);
-                    ResponseEntity<String> responseEntity = this.restTemplate.exchange(url,
-                            HttpMethod.POST, requestEntity, String.class);
-                    if (responseEntity.getStatusCode() == HttpStatus.OK) {
-                        String resp = responseEntity.getBody();
-                        JSONObject json = JSONObject.parseObject(resp);
-                        if(json.getIntValue("status")==0){
-                            JSONArray jsonArray = json.getJSONArray("data");
-                        }
-                    }
-                }
             }else if(timeType.getReportAuditType() == 5){
                 List<Report> updateReportList = new ArrayList<>();
                 //项目所属BU审核
@@ -2215,25 +2196,6 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             }
             updateBatchById(newList);
         }
-        if(company.getId()==862){
-            String url = "http://183.194.0.98:3202/api/web-server/controlCenter/billRejected";
-            HttpHeaders headers = new HttpHeaders();
-            headers.setContentType(MediaType.APPLICATION_JSON);
-            headers.add("token",getTokenOfYiWei());
-            JSONObject body=new JSONObject();
-            body.put("type","EXPENSE");
-            body.put("billNo","GS"+rList.get(0).getCreatorId()+rList.get(0).getCreateDate());
-            HttpEntity<String> requestEntity = new HttpEntity<String>(body.toJSONString(), headers);
-            ResponseEntity<String> responseEntity = this.restTemplate.exchange(url,
-                    HttpMethod.POST, requestEntity, String.class);
-            if (responseEntity.getStatusCode() == HttpStatus.OK) {
-                String resp = responseEntity.getBody();
-                JSONObject json = JSONObject.parseObject(resp);
-                if(json.getIntValue("status")==0){
-                    JSONArray jsonArray = json.getJSONArray("data");
-                }
-            }
-        }
         List<Integer> collect = rList.stream().map(Report::getProjectId).collect(Collectors.toList());
         List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().in("id", collect));
         String pNames = projectList.stream().map(Project::getProjectName).collect(Collectors.joining(", ", "[", "]"));
@@ -3294,25 +3256,6 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 }
             }
         }
-        if(user.getCompanyId()==862){
-            String url = "http://183.194.0.98:3202/api/web-server/controlCenter/billRejected";
-            HttpHeaders headers = new HttpHeaders();
-            headers.setContentType(MediaType.APPLICATION_JSON);
-            headers.add("token",getTokenOfYiWei());
-            JSONObject body=new JSONObject();
-            body.put("type","EXPENSE");
-            body.put("billNo","GS"+reportList.get(0).getCreatorId()+reportList.get(0).getCreateDate());
-            HttpEntity<String> requestEntity = new HttpEntity<String>(body.toJSONString(), headers);
-            ResponseEntity<String> responseEntity = this.restTemplate.exchange(url,
-                    HttpMethod.POST, requestEntity, String.class);
-            if (responseEntity.getStatusCode() == HttpStatus.OK) {
-                String resp = responseEntity.getBody();
-                JSONObject json = JSONObject.parseObject(resp);
-                if(json.getIntValue("status")==0){
-                    JSONArray jsonArray = json.getJSONArray("data");
-                }
-            }
-        }
         if (cnt == 0) {
             //msg.setError("只有待审核状态的报告才能撤回");
             msg.setError(MessageUtils.message("finance.revokeReport"));

+ 12 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectMapper.xml

@@ -157,6 +157,12 @@
         <if test="projectId != null">
             AND a.id = #{projectId}
         </if>
+        <if test="projectIds != null">
+            and a.id in
+            <foreach collection="projectIds" open="(" close=")" separator="," item="item">
+                #{item}
+            </foreach>
+        </if>
         <if test="userIdList != null and userIdList.size()>0">
             AND b.creator_id in
             <foreach collection="userIdList" item="item" open="(" separator="," close=")">
@@ -281,6 +287,12 @@
         <if test="projectCategoryId != null">
             AND a.category = #{projectCategoryId}
         </if>
+        <if test="projectIds != null">
+            and a.id in
+            <foreach collection="projectIds" open="(" close=")" separator="," item="item">
+                #{item}
+            </foreach>
+        </if>
         <if test="userIdList != null and userIdList.size()>0">
             AND b.creator_id in
             <foreach collection="userIdList" item="item" open="(" separator="," close=")">

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/project/cost.vue

@@ -32,7 +32,7 @@
                 <el-radio-button :label="$t('other.project')"></el-radio-button>
                 <el-radio-button :label="$t('zhu-xiang-mu')" v-if="user.timeType.mainProjectState"></el-radio-button>
                 <el-radio-button :label="$t('projectclassification')"></el-radio-button>
-                <el-radio-button :label="$t('lable.department')"></el-radio-button>
+                <el-radio-button :label="$t('lable.department')" v-if="permissions.viewAllSummary || permissions.viewMagDeptSummary"></el-radio-button>
                 <el-radio-button :label="$t('ren-yuan')" v-if="permissions.countPersonnel"></el-radio-button>
                 <el-radio-button :label="namess" v-if="jichu.customDegreeActive == 1"></el-radio-button>
                 <el-radio-button v-for="item in theCustomList" :key="item.id" :label="item.name"></el-radio-button>

+ 11 - 7
fhKeeper/formulahousekeeper/timesheet/src/views/project/fileCenter.vue

@@ -6,8 +6,8 @@
             <span @click="viewFolder(null)" style="color: #409EFF;cursor: pointer;">{{ $t('library') }}</span>
             <span v-for="path in pathList" :key="path.id" @click="viewFolder(path)" class="mianbaoxie"> <i class="el-icon-arrow-right jianto"></i> {{path.documentName}}</span>
             <span style="float:right;">
-                <el-link type="primary" :underline="false" v-if="list.length
-                > 0"><i class="el-icon-setting"></i><span style="margin-right:5px;" @click="templatedialingClick('设为模板')">设为模板</span></el-link>
+                <!-- <el-link type="primary" :underline="false" v-if="list.length
+                > 0"><i class="el-icon-setting"></i><span style="margin-right:5px;" @click="templatedialingClick('设为模板')">设为模板</span></el-link> -->
                     <el-link type="primary" :underline="false" @click="createFolder"><i class="el-icon-folder-add"></i><span style="margin-left:5px;">{{ $t('createafolder') }}</span></el-link>
                     <el-upload ref="upload" action="#" :http-request="uploadFile" :show-file-list="false" :limit="1" style="display:inline-block;">
                         <el-link type="primary" :underline="false" style="margin-left:10px;"><i class="iconfont firerock-iconshangchuan"></i><span style="margin-left:5px;">{{ $t('fileupload') }}</span></el-link>
@@ -112,7 +112,7 @@
         <el-dialog :title="$t('modifyingFolder')" v-if="addFolderDialog" :visible.sync="addFolderDialog" :close-on-click-modal="false" customClass="customWidth" width="500px">
             <div class="titleBox">
                 <el-tabs v-model="activeName" @tab-click="handleClick" v-if="!addFolderDialogTwo">
-                    <el-tab-pane label="新建/修改文件夹" name="one">
+                    <el-tab-pane label="自定义名称" name="one">
                         <el-form ref="form2" :model="folderForm" :rules="rules" style="margin-top: 10px">
                             <el-form-item prop="documentName">
                                 <el-input v-model="folderForm.documentName" :placeholder="$t('pleaseenterfoldername')" maxlength="25"
@@ -120,7 +120,7 @@
                             </el-form-item>
                         </el-form>
                     </el-tab-pane>
-                    <el-tab-pane label="从模板中创建" name="two">
+                    <!-- <el-tab-pane label="从模板中创建" name="two">
                         <div v-for="(item,index) in templateList" :key="index" @click="cardClick(index)">
                             <el-card :class="`box-card ${templateIndex == index ? 'cardOn' : ''}`">
                                 <div class="text item">
@@ -135,7 +135,7 @@
                                 </div>
                             </el-card>
                         </div>
-                    </el-tab-pane>
+                    </el-tab-pane> -->
                 </el-tabs>
 
                 <el-form ref="form2" :model="folderForm" :rules="rules" v-if="addFolderDialogTwo">
@@ -143,6 +143,9 @@
                         <el-input v-model="folderForm.documentName" :placeholder="$t('pleaseenterfoldername')" maxlength="25"
                             show-word-limit clearable></el-input>
                     </el-form-item>
+                    <el-form-item >
+                        <el-checkbox v-model="folderForm.syncChange">同步修改其他项目中的同名文件夹</el-checkbox>
+                    </el-form-item>
                 </el-form>
             </div>
             <div slot="footer" class="dialog-footer">
@@ -591,7 +594,7 @@
                     }
                 }
                 
-                console.log('list===='+list);
+                console.log('list=view folder==='+list);
                 this.pathList = list;
                 this.getList();
             },
@@ -785,6 +788,7 @@
                     this.listLoading = false;
                     if (res.code == "ok") {
                         this.list = res.data;
+                        this.$forceUpdate();
                     } else {
                         this.$message({
                         message: res.msg,
@@ -803,7 +807,7 @@
             refreshPage() {
                 this.curProjectId = parseInt(this.$route.params.id);
                 this.getRecentList();
-                this.getList();
+                this.clearPathList();
             }
         },
         created() {

+ 2 - 2
fhKeeper/formulahousekeeper/timesheet/src/views/project/projectInside.vue

@@ -2085,7 +2085,7 @@
                 this.templateForm = {groupId: item.id, name:item.name, saveTask:false, saveMileStone:false, saveRisk:false};
             },
             changeBase() {
-                this.$refs.earning.refreshPage();
+                // this.$refs.earning.refreshPage();
             },
             // 批量导入人员
             importTask(item) {
@@ -3345,7 +3345,7 @@
                 this.$refs.projectInfo.refreshPage();
                 this.$refs.summary.refreshPage();
                 this.$refs.costbaseline.refreshPage();
-                this.$refs.earning.refreshPage();
+                // this.$refs.earning.refreshPage();
                 if(this.user.companyId == '936') {
                     this.$refs.projectInfo.getKeyNodes()
                 }