Browse Source

项目导出修改 未填报列表查看修改

yurk 2 years ago
parent
commit
eb110a9b46

+ 3 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProviderInfoController.java

@@ -82,6 +82,9 @@ public class ProviderInfoController {
                 msg.setError("供货商编号已存在");
                 return msg;
             }
+            if(StringUtils.isEmpty(info.getProviderCategoryName())){
+                info.setProviderCategoryId(0);
+            }
             info.setCompanyId(user.getCompanyId());
             providerInfoMapper.updateById(info);
             //更新项目表中的客户名称

+ 1 - 3
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/CompanyDingdingServiceImpl.java

@@ -74,7 +74,6 @@ public class CompanyDingdingServiceImpl extends ServiceImpl<CompanyDingdingMappe
     public void sendFillReportAlertMsg(Integer companyId, Long agentId, String msg, String useridList) {
         CompanyDingding dingding = getOne(new QueryWrapper<CompanyDingding>().eq("company_id", companyId));
         if (isPrivateDeploy) {
-            sendInnerLinkMsg(dingding,useridList,"日报漏填提醒",msg);
             List<OapiMessageCorpconversationAsyncsendV2Request.Form> form=new ArrayList<>();
             OapiMessageCorpconversationAsyncsendV2Request.Form item=new OapiMessageCorpconversationAsyncsendV2Request.Form();
             item.setKey("说明:");
@@ -157,7 +156,6 @@ public class CompanyDingdingServiceImpl extends ServiceImpl<CompanyDingdingMappe
     public void sendLeaveApplyAlertMsg(Integer companyId, Long agentId, String msg, String useridList) {
         CompanyDingding dingding = getOne(new QueryWrapper<CompanyDingding>().eq("company_id", companyId));
         if (isPrivateDeploy) {
-            sendInnerLinkMsg(dingding,useridList,"请假提交审批提醒",msg);
             List<OapiMessageCorpconversationAsyncsendV2Request.Form> form=new ArrayList<>();
             OapiMessageCorpconversationAsyncsendV2Request.Form item=new OapiMessageCorpconversationAsyncsendV2Request.Form();
             item.setKey("说明:");
@@ -228,7 +226,7 @@ public class CompanyDingdingServiceImpl extends ServiceImpl<CompanyDingdingMappe
     public void sendBusinessTripSettingMsg(Integer companyId, Long agentId, String useridList) {
         CompanyDingding dingding = getOne(new QueryWrapper<CompanyDingding>().eq("company_id", companyId));
         if (isPrivateDeploy) {
-            sendInnerLinkMsg(dingding,useridList,"关联出差提醒","您还有出差记录尚未关联到项目");
+            sendOAMsg(dingding,useridList,"关联出差提醒","您还有出差记录尚未关联到项目",null,null);
         } else {
             DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/message/corpconversation/sendbytemplate");
             OapiMessageCorpconversationSendbytemplateRequest req = new OapiMessageCorpconversationSendbytemplateRequest();

+ 67 - 52
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -225,10 +225,16 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     queryWrapper.orderByAsc(sortProp);
                 }
             }
-
-            IPage<Project> projectIPage = projectMapper.selectPage(new Page<>(pageIndex, pageSize),
-                    queryWrapper);
+            IPage<Project> projectIPage;
+            if(pageIndex!=null && pageSize!=null){
+                projectIPage= projectMapper.selectPage(new Page<>(pageIndex, pageSize),
+                        queryWrapper);
+            }else {
+                projectIPage= projectMapper.selectPage(new Page<>(-1,-1),
+                        queryWrapper);
+            }
             List<Project> projectList = projectIPage.getRecords();
+            System.out.println(projectList);
             List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId));
             List<ProviderInfo> providerInfoList = providerInfoMapper.selectList(new QueryWrapper<ProviderInfo>().eq("company_id", companyId));
             List<ProviderCategory> providerCategoryList = providerCategoryMapper.selectList(new QueryWrapper<ProviderCategory>().eq("company_id", companyId));
@@ -254,11 +260,21 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                             Optional<ProviderCategory> providerCategory = providerCategoryList.stream().filter(pc -> pc.getId().equals(providerInfo.get().getProviderCategoryId())).findFirst();
                             if(providerCategory.isPresent()){
                                 map.put("providerCateGoryName",providerCategory.get().getProviderCategoryName());
-                                map.put("providerInfoName",providerInfo.get().getProviderName());
                             }else {
-                                map.put("providerCateGoryName","未定义");
-                                map.put("providerInfoName",providerInfo.get().getProviderName());
+                                map.put("providerCateGoryName","未分类");
+                            }
+                            map.put("providerInfoName",providerInfo.get().getProviderName());
+                        }
+                        //相同分类的供应商数据处理
+                        boolean b = mapList.stream().anyMatch(ml -> ml.get("providerCateGoryName").equals(map.get("providerCateGoryName")));
+                        if(b){
+                            List<Map<String, Object>> collect = mapList.stream().filter(ml -> ml.get("providerCateGoryName").equals(map.get("providerCateGoryName"))).collect(Collectors.toList());
+                            String result=providerInfo.get().getProviderName();
+                            for (Map<String, Object> stringObjectMap : collect) {
+                                mapList.remove(stringObjectMap);
+                                result+=","+stringObjectMap.get("providerInfoName");
                             }
+                            map.put("providerInfoName",result);
                         }
                         mapList.add(map);
                     }
@@ -267,7 +283,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 list.add(projectVO);
             }
             List<String> stringList = providerCategoryList.stream().distinct().map(ProviderCategory::getProviderCategoryName).collect(Collectors.toList());
-            stringList.add("未定义");
+            stringList.add("未分类");
             Long total = projectIPage.getTotal();
             Map<String, Object> map = new HashMap<>();
             map.put("records", list);
@@ -2218,6 +2234,9 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             projectLevelMap.put("紧急", 2);
             projectLevelMap.put("重要", 3);
             projectLevelMap.put("重要且紧急", 4);
+            projectLevelMap.put("低风险", 5);
+            projectLevelMap.put("中风险", 6);
+            projectLevelMap.put("高风险", 7);
             List<String> existCodeList = new ArrayList<>();
             int importCount = 0;
             for (int rowIndex = 0; rowIndex <= rowNum; rowIndex++) {
@@ -2446,6 +2465,10 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             userId = user.getId();
         }
         List<HashMap<String, Object>> list = projectMapper.getExportData(user.getCompanyId(), userId);
+        HttpRespMsg projectPage = getProjectPage(null, null, null, null, null, null, null, null, null, null, request);
+        Map<String,Object> resultMap= (Map<String, Object>) projectPage.data;
+        List<ProjectVO> projectVOList= (List<ProjectVO>) resultMap.get("records");
+        List<String> nameList= (List<String>) resultMap.get("nameList");
         Company company = companyMapper.selectById(user.getCompanyId());
         List<String> headList = new ArrayList<String>();
         headList.add("项目编号");
@@ -2460,20 +2483,13 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         headList.add("创建日期");
         //自定义维度
         TimeType timeType = timeTypeMapper.selectById(user.getCompanyId());
-        /*//供应商分类
-        List<ProviderCategory> providerCategoryList = providerCategoryMapper.selectList(new QueryWrapper<ProviderCategory>().eq("company_id", user.getCompanyId()));
-        List<String> providerCategoryNameList = providerCategoryList.stream().distinct().map(ProviderCategory::getProviderCategoryName).collect(Collectors.toList());
-        providerCategoryNameList.add("未定义");
-        //供应商
-        List<ProviderInfo> providerInfoList = providerInfoMapper.selectList(new QueryWrapper<ProviderInfo>().eq("company_id", user.getCompanyId()));*/
         if (timeType.getCustomDegreeActive() == 1) {
             headList.add(timeType.getCustomDegreeName());
         }
         if (company.getPackageProvider() == 1) {
-            /*for (String s : providerCategoryNameList) {
+            for (String s : nameList) {
                 headList.add(s);
-            }*/
-            headList.add("供应商");
+            }
         }
         if (company.getPackageProject() == 1) {
             //项目管理专业版以上的,导出的数据更全面
@@ -2483,61 +2499,60 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         }
         List<List<String>> allList = new ArrayList<List<String>>();
         allList.add(headList);
-        String[] levelArray = new String[]{"正常","紧急","重要","重要且紧急"};
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        String[] levelArray = new String[]{"正常","紧急","重要","重要且紧急","低风险","中风险","高风险"};
+        DateTimeFormatter sdf =DateTimeFormatter.ofPattern("yyyy-MM-dd");
         DecimalFormat df = new DecimalFormat("##0.0#");
-        for (Map<String, Object> map : list) {
+        for (ProjectVO projectVO : projectVOList) {
             List<String> rowData = new ArrayList<>();
-            rowData.add((String)map.get("project_code"));
-            rowData.add((String)map.get("category_name"));
-            rowData.add(("1".equals(map.get("is_public").toString())?"是":"否"));
-            rowData.add((String)map.get("project_name"));
-            rowData.add((String)map.get("incharger_name"));
-            rowData.add((String)map.get("participators"));
-            Date start = (Date)map.get("plan_start_date");
+            rowData.add(projectVO.getProjectCode());
+            rowData.add(projectVO.getCategoryName());
+            rowData.add(("1".equals(projectVO.getIsPublic())?"是":"否"));
+            rowData.add(projectVO.getProjectName());
+            rowData.add(projectVO.getInchargerName());
+            List<Map<String, Object>> participator = projectVO.getParticipator();
+            String names="";
+            for (int i = 0; i < participator.size(); i++) {
+                if(i==participator.size()-1){
+                    names+=participator.get(i).get("name");
+                }else {
+                    names+=participator.get(i).get("name")+",";
+                }
+            }
+            rowData.add(names);
+            LocalDate start = projectVO.getPlanStartDate();
             rowData.add(start==null?"":sdf.format(start));
-            Date end = (Date)map.get("plan_end_date");
+            LocalDate end = projectVO.getPlanEndDate();
             rowData.add(end==null?"":sdf.format(end));
-            rowData.add((String)map.get("creator_name"));
-            Date createDate = (Date)map.get("create_date");
+            rowData.add(projectVO.getCreatorName());
+            LocalDate createDate = projectVO.getCreateDate();
             rowData.add(createDate==null?"":sdf.format(createDate));
 
             if (timeType.getCustomDegreeActive() == 1) {
-                rowData.add((String)map.get("associate_degree_names"));
+                rowData.add(projectVO.getAssociateDegreeNames());
             }
             if (company.getPackageProvider() == 1) {
-                /*String providerIds = (String) map.get("provider_ids");
-                for (String providerCategoryName : providerCategoryNameList) {
-                    if (!StringUtils.isEmpty(providerIds)) {
-                        String[] providerIdsString = providerIds.split(",");
-                        List<String> providerIdList = Arrays.asList(providerIdsString);
-                        for (String s : providerIdList) {
-                            Optional<ProviderInfo> first = providerInfoList.stream().filter(pi -> pi.getId().equals(Integer.parseInt(s))).findFirst();
-                            if (first.isPresent()) {
-                                if (StringUtils.isEmpty(first.get().getProviderCategoryName())&&providerCategoryName.equals("未定义")) {
-                                    rowData.add(first.get().getProviderName());
-                                }
-                                if (first.get().getProviderCategoryName().equals(providerCategoryName)) {
-                                    rowData.add(first.get().getProviderName());
-                                }
-                            }else {
-                                rowData.add("");
-                            }
+                List<Map<String, Object>> providerInfoList = projectVO.getProviderInfoList();
+                for (String s : nameList) {
+                    if(providerInfoList!=null&&providerInfoList.size()>0){
+                        Optional<Map<String, Object>> providerCateGoryName = providerInfoList.stream().filter(pi ->(pi.get("providerCateGoryName")==null?"":pi.get("providerCateGoryName")).equals(s)).findFirst();
+                        if(providerCateGoryName.isPresent()){
+                            rowData.add((String) providerCateGoryName.get().get("providerInfoName"));
+                        }else {
+                            rowData.add("");
                         }
                     }else {
                         rowData.add("");
                     }
-                }*/
-                rowData.add((String)map.get("provider_names"));
+                }
             }
             if (company.getPackageProject() == 1) {
-                Integer level = (Integer)map.get("level");
+                Integer level = projectVO.getLevel();
                 if (level == null) {
                     level = 1;
                 }
-                rowData.add((String)map.get("customer_name"));
+                rowData.add(projectVO.getCustomerName());
                 rowData.add(levelArray[level-1]);
-                rowData.add(df.format((Double)map.get("contract_amount")));
+                rowData.add(df.format((Double)projectVO.getContractAmount()));
             }
             allList.add(rowData);
         }

+ 16 - 7
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -1656,8 +1656,10 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
 
         //获取公司全部人员; 按照人员状态,如果是已经离职的,当前日期在离职日期以后的,不需要显示该人员
         QueryWrapper<User> queryWrapper = new QueryWrapper<User>().eq("company_id", companyId);
-        queryWrapper.and(wrapper->wrapper.eq("is_active", 1).or(wrapper2->wrapper2.eq("is_active", 0).gt("inactive_date", date)));
+        queryWrapper.and(wrapper->wrapper.eq("is_active", 1).eq("report_status",0).or(wrapper2->wrapper2.eq("is_active", 0).gt("inactive_date", date)));
         List<User> userList = userMapper.selectList(queryWrapper);
+        List<LeaveSheet> leaveSheetList = leaveSheetMapper.selectList(new QueryWrapper<LeaveSheet>().eq("company_id", companyId));
+        LocalDate localDate = LocalDate.parse(date, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
         List<HashMap> userMapList = new ArrayList<>();
         for (User u : userList) {
             HashMap<String, Object> user = new HashMap<String, Object>();
@@ -1665,7 +1667,14 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             user.put("name", u.getName());
             user.put("departmentId", u.getDepartmentId());
             Optional<Map<String, Object>> first = reportNameByDate.stream().filter(r -> r.get("id").equals(u.getId())).findFirst();
-
+            //获取角色请假情况
+            Optional<LeaveSheet> leaveSheet = leaveSheetList.stream().filter(ls -> ls.getOwnerId().equals(u.getId()) &&
+                    ((localDate.isAfter(ls.getStartDate()) || localDate.isEqual(ls.getStartDate())) && (localDate.isBefore(ls.getEndDate()) || localDate.isEqual(ls.getEndDate())))).findFirst();
+            if(leaveSheet.isPresent()){
+                if(leaveSheet.get().getTimeType()==0){
+                    user.put("leaveDays",leaveSheet.get().getTimeDays());
+                }else user.put("leaveTimes",leaveSheet.get().getTimeHours());
+            }
             if (first.isPresent()) {
                 user.put("state", first.get().get("state"));
                 user.put("workingTime", first.get().get("workingTime"));
@@ -2385,7 +2394,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     //没有对应的打卡记录,直接加上当天请假
                     Map<String, Object> leaveMap = new HashMap<>();
                     leaveMap.put("createDate", leaveDateStr);
-                    leaveMap.put("workingTime", "请假"+corpTime.get("ask_leave_time")+"h");
+                    leaveMap.put("workingTime", "当天请假"+corpTime.get("ask_leave_time")+"h");
                     worktimeList.add(leaveMap);
                 }
             });
@@ -2412,7 +2421,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                             //没有对应的打卡记录,直接加上当天请假
                             Map<String, Object> leaveMap = new HashMap<>();
                             leaveMap.put("createDate", leaveDateStr);
-                            leaveMap.put("workingTime", "请假");
+                            leaveMap.put("workingTime", "当天请假");
                             worktimeList.add(leaveMap);
                         }
 
@@ -3267,7 +3276,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 List<Integer> collect = subDepts.stream().map(Department::getDepartmentId).collect(Collectors.toList());
                 list = reportMapper.getUserDailyWorkTime(companyId, startDate, endDate, collect, null);
                 //部门负责人看自己部门相关的
-                allRangeUserList = userMapper.selectList(new QueryWrapper<User>().in("department_id", collect));
+                allRangeUserList = userMapper.selectList(new QueryWrapper<User>().in("department_id", collect).eq("report_status",0));
             } else {
                 //看自己的所负责的项目相关人员的
                 list = reportMapper.getUserDailyWorkTime(companyId, startDate, endDate, null, user.getId());
@@ -3278,14 +3287,14 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     List<Participation> participationList = participationMapper.selectList(new QueryWrapper<Participation>().in("project_id", collect));
                     List<String> collect1 = participationList.stream().map(Participation::getUserId).collect(Collectors.toList());
                     if (collect1.size() > 0) {
-                        allRangeUserList = userMapper.selectList(new QueryWrapper<User>().in("id", collect1));
+                        allRangeUserList = userMapper.selectList(new QueryWrapper<User>().in("id", collect1).eq("report_status",0));
                     }
                 }
             }
         } else {
             list = reportMapper.getUserDailyWorkTime(companyId, startDate, endDate, null, null);
             //管理员看全公司所有人
-            allRangeUserList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId));
+            allRangeUserList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId).eq("report_status",0));
         }
         List<UserDailyWorkItem> noReportDataList = new ArrayList<UserDailyWorkItem>();
         //准备部门数据