Browse Source

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

ggooalice 2 years ago
parent
commit
0888fcca20

+ 4 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectController.java

@@ -625,6 +625,10 @@ public class ProjectController {
     public HttpRespMsg exportReportTimelinessRate(HttpServletRequest request,String startDate,String endDate){
         return projectService.exportReportTimelinessRate(request,startDate,endDate);
     }
+    @RequestMapping("/exportReportTimelinessRateByQuarter")
+    public HttpRespMsg exportReportTimelinessRateByQuarter(HttpServletRequest request,String year,Integer quarter){
+        return projectService.exportReportTimelinessRateByQuarter(request,year,quarter);
+    }
     @RequestMapping("/getWaitingReviewList")
     public HttpRespMsg getWaitingReviewList(HttpServletRequest request,Integer stateKey,String userId,Integer pageIndex,Integer pageSize,String startDate,String endDate,Integer departmentId){
         return projectService.getWaitingReviewList(request,stateKey,userId,pageIndex,pageSize,startDate,endDate,departmentId);

+ 2 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ProjectService.java

@@ -209,4 +209,6 @@ public interface ProjectService extends IService<Project> {
 
     HttpRespMsg exportDeptPartInProjects(String startDate,String endDate, Integer departmentId, HttpServletRequest request);
 
+
+    HttpRespMsg exportReportTimelinessRateByQuarter(HttpServletRequest request, String year, Integer quarter);
 }

+ 68 - 5
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -5788,7 +5788,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             }
             List<Map<String, Object>> mapList = listMap.get(user.getName());
             //请假的不参与及时率统计
-            System.out.println(leaveSheets);
             if(leaveSheets.size()>0){
                 for (LeaveSheet leaveSheet : leaveSheets) {
                     List<LocalDateTime> leaveDateList = getDays(leaveSheet.getStartDate().atTime(LocalTime.MIN), leaveSheet.getEndDate().atTime(LocalTime.MIN));
@@ -5833,8 +5832,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 }
 
             }
+            int num=0;
             if(mapList!=null){
-                int num=0;
                 for (Map<String, Object> map : mapList) {
                     Map<String,Object> objectMap=new HashMap<>();
                     Object date = map.get("createDate");
@@ -5867,8 +5866,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     }
                     dataList.add(objectMap);
                 }
-                System.out.println(days);
-                System.out.println(num);
                 BigDecimal bigDecimal=new BigDecimal(num);
                 BigDecimal divide;
                 if(days!=0){
@@ -5888,7 +5885,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 String number = dft.format(divide);
                 timelinessRateVO.setTimelinessRate(String.valueOf(number));
             }else {
-                int num=0;
                 BigDecimal bigDecimal=new BigDecimal(num);
                 BigDecimal divide;
                 if(days!=0){
@@ -7613,4 +7609,71 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         return msg;
     }
 
+    @Override
+    public HttpRespMsg exportReportTimelinessRateByQuarter(HttpServletRequest request, String year, Integer quarter) {
+        HttpRespMsg httpRespMsg=new HttpRespMsg();
+        DateTimeFormatter df=DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
+        String startDate=null;
+        String endDate=null;
+        LocalDate date1;
+        LocalDate date2;
+        switch (quarter){
+            case 1:
+                date1 = LocalDate.parse(year + "-01-01", df).minusWeeks(1);
+                startDate=date1.format(df);
+                date2 = LocalDate.parse(year + "-03-31", df).minusWeeks(1);
+                endDate=date2.format(df);
+                break;
+            case 2:
+                date1 = LocalDate.parse(year + "-04-01", df).minusWeeks(1);
+                startDate=date1.format(df);
+                date2 = LocalDate.parse(year + "-06-30", df).minusWeeks(1);
+                endDate=date2.format(df);
+                break;
+            case 3:
+                date1 = LocalDate.parse(year + "-07-01", df).minusWeeks(1);
+                startDate=date1.format(df);
+                date2 = LocalDate.parse(year + "-09-30", df).minusWeeks(1);
+                endDate=date2.format(df);
+                break;
+            case 4:
+                date1 = LocalDate.parse(year + "-10-01", df).minusWeeks(1);
+                startDate=date1.format(df);
+                date2 = LocalDate.parse(year + "-12-31", df).minusWeeks(1);
+                endDate=date2.format(df);
+                break;
+        }
+        HttpRespMsg msg = getUserReportTimelinessRate(request, startDate, endDate, null, null, null, null);
+        HashMap map= (HashMap) msg.data;
+        List<TimelinessRateVO> list = (List<TimelinessRateVO>) map.get("list");
+        //String[] s={"人员","工号","部门","填报及时率"};
+        String[] s={MessageUtils.message("entry.personnel"),MessageUtils.message("entry.No"),MessageUtils.message("excel.department"),MessageUtils.message("excel.timeFill")};
+        List<String> titleString = Arrays.asList(s);
+        List<List<String>> dataList=new ArrayList<>();
+        dataList.add(titleString);
+        for (TimelinessRateVO timelinessRateVO : list) {
+            List<String> item=new ArrayList<>();
+            if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                item.add(timelinessRateVO.getCorpwxUserId()==null?"":timelinessRateVO.getCorpwxUserId());
+            }else {
+                item.add(timelinessRateVO.getUserName());
+            }
+            item.add(timelinessRateVO.getJobNumber());
+            item.add(timelinessRateVO.getDepartmentName());
+            item.add(timelinessRateVO.getTimelinessRate());
+            dataList.add(item);
+        }
+        //生成excel文件导出
+        //String fileName = year+"人员填报及时率统计_"+System.currentTimeMillis();
+        String fileName = year+"_"+quarter+MessageUtils.message("fileName.quarter")+MessageUtils.message("fileName.timePerFill")+System.currentTimeMillis();
+        try {
+            return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , dataList, path);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return httpRespMsg;
+    }
+
 }

+ 1 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/i18n/messages.properties

@@ -515,6 +515,7 @@ fileName.hourCostAlert=工时成本预警表_
 fileName.proClassLaborCost=项目分类工时成本统计_
 fileName.perHoursAllSta=人员工时分配统计_
 fileName.timePerFill=人员填报及时率统计_
+fileName.quarter=季度_
 fileName.perReviewed=人员待审核统计_
 fileName.perHoursSta=人员工时统计_
 fileName.taskGroupHours=任务分组工时统计

+ 1 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/i18n/messages_en_US.properties

@@ -515,6 +515,7 @@ fileName.hourCostAlert=Hour Cost Alert_
 fileName.proClassLaborCost=Project Classification Labor Cost Statistics_
 fileName.perHoursAllSta=Personnel Hours Allocation Statistics_
 fileName.timePerFill=Statistics of timeliness rate of personnel filling_
+fileName.quarter=Quarter_
 fileName.perReviewed=Statistics of personnel to be approved_
 fileName.perHoursSta=Personnel Hours Statistics_
 fileName.taskGroupHours=Task Grouping Work Statistics