Преглед изворни кода

人员工时填报及时率导出

yurk пре 2 година
родитељ
комит
b537881fbf

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

@@ -492,5 +492,9 @@ public class ProjectController {
     public HttpRespMsg getUserReportTimelinessRate(HttpServletRequest request,String startDate,String endDate,Integer departmentId,String userId,Integer pageIndex,Integer pageSize){
         return projectService.getUserReportTimelinessRate(request,startDate,endDate,departmentId,userId,pageIndex,pageSize);
     }
+    @RequestMapping("/exportReportTimelinessRate")
+    public HttpRespMsg exportReportTimelinessRate(HttpServletRequest request,String startDate,String endDate){
+        return projectService.exportReportTimelinessRate(request,startDate,endDate);
+    }
 }
 

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

@@ -137,4 +137,6 @@ public interface ProjectService extends IService<Project> {
     HttpRespMsg exportUserWorkingTimeList(String userId, Integer projectId, String startDate, String endDate,HttpServletRequest request);
 
     HttpRespMsg getUserReportTimelinessRate(HttpServletRequest request, String startDate, String endDate, Integer departmentId, String userId,Integer pageIndex,Integer pageSize);
+
+    HttpRespMsg exportReportTimelinessRate(HttpServletRequest request, String startDate, String endDate);
 }

+ 36 - 4
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -3097,7 +3097,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         Integer alertType = timeType.getAlertType();
         LocalTime alert = LocalTime.parse(alertTime);
         List<Map<String,Object>> reportList=reportMapper.getUserReportTimelinessRate(companyId,startDate,endDate);
-        int i=0;
+        System.out.println(reportList);
         QueryWrapper<User> queryWrapper=new QueryWrapper();
         queryWrapper.eq("company_id",companyId);
         if(departmentId!=null){
@@ -3106,11 +3106,20 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         if(userId!=null){
             queryWrapper.eq("id",userId);
         }
+        queryWrapper.orderByAsc("department_id");
         List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
-        IPage<User> userIPage = userMapper.selectPage(new Page<>(pageIndex,pageSize),queryWrapper);
+        List<User> userList;
+        long total=0;
+        if(pageIndex!=null&&pageSize!=null){
+            IPage<User>  userIPage = userMapper.selectPage(new Page<>(pageIndex,pageSize),queryWrapper);
+            userList=userIPage.getRecords();
+            total=userIPage.getTotal();
+        }else {
+            userList = userMapper.selectList(queryWrapper);
+        }
         Map<Object, List<Map<String, Object>>> listMap = reportList.stream().collect(Collectors.groupingBy(rp -> rp.get("userName")));
         List<TimelinessRateVO> resultList=new ArrayList<>();
-        for (User user : userIPage.getRecords()){
+        for (User user : userList){
             TimelinessRateVO timelinessRateVO=new TimelinessRateVO();
             timelinessRateVO.setUserName(user.getName());
             Optional<Department> first = departmentList.stream().filter(dp -> dp.getDepartmentId().equals(user.getDepartmentId())).findFirst();
@@ -3150,7 +3159,6 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             }
             resultList.add(timelinessRateVO);
         }
-        long total=userIPage.getTotal();
         HashMap map=new HashMap();
         map.put("total",total);
         map.put("list",resultList);
@@ -3158,6 +3166,30 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         return msg;
     }
 
+    @Override
+    public HttpRespMsg exportReportTimelinessRate(HttpServletRequest request, String startDate, String endDate) {
+        HttpRespMsg httpRespMsg=new HttpRespMsg();
+        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={"人员","部门","填报及时率"};
+        List<String> titleString = Arrays.asList(s);
+        List<List<String>> dataList=new ArrayList<>();
+        dataList.add(titleString);
+        for (TimelinessRateVO timelinessRateVO : list) {
+            List<String> item=new ArrayList<>();
+            item.add(timelinessRateVO.getUserName());
+            item.add(timelinessRateVO.getDepartmentName());
+            item.add(timelinessRateVO.getTimelinessRate());
+            dataList.add(item);
+        }
+        //生成excel文件导出
+        String fileName = "人员填报及时率统计_"+System.currentTimeMillis();
+        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(fileName , dataList, path);
+        httpRespMsg.data = resp;
+        return httpRespMsg;
+    }
+
 
     private List<Department> getSubDepts(Department dp, List<Department> list) {
         List<Department> collect = list.stream().filter(l -> dp.getDepartmentId().equals(l.getSuperiorId())).collect(Collectors.toList());