Browse Source

子项目工时成本表导出修改
获取每日填报情况 请假数据多条处理

yurk 2 years ago
parent
commit
36baf4b778

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

@@ -1163,8 +1163,8 @@ public class ProjectController {
     }
 
     @RequestMapping("/exportSubProjectTimeCost")
-    public HttpRespMsg exportSubProjectTimeCost(HttpServletRequest request,Integer projectId){
-        return projectService.exportSubProjectTimeCost(request,projectId);
+    public HttpRespMsg exportSubProjectTimeCost(HttpServletRequest request,String startDate,String endDate,Integer projectId){
+        return projectService.exportSubProjectTimeCost(request,startDate,endDate,projectId);
     }
 
 }

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

@@ -220,5 +220,5 @@ public interface ProjectService extends IService<Project> {
 
     HttpRespMsg getSubProjectTimeCost(HttpServletRequest request, String startDate, String endDate, Integer projectId,Integer pageIndex,Integer pageSize);
 
-    HttpRespMsg exportSubProjectTimeCost(HttpServletRequest request, Integer projectId);
+    HttpRespMsg exportSubProjectTimeCost(HttpServletRequest request,String startDate,String endDate, Integer projectId);
 }

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

@@ -8979,7 +8979,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     }
 
     @Override
-    public HttpRespMsg exportSubProjectTimeCost(HttpServletRequest request, Integer projectId) {
+    public HttpRespMsg exportSubProjectTimeCost(HttpServletRequest request,String startDate,String endDate, Integer projectId) {
         HttpRespMsg msg=new HttpRespMsg();
         User user = userMapper.selectById(request.getHeader("token"));
         Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
@@ -9000,15 +9000,15 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 inchagerIds.add(-1);
             }
         }
-        List<Map<String,Object>> list=projectMapper.getSubProjectTimeCost(companyId,null,null,projectId,null,null,inchagerIds);
+        List<Map<String,Object>> list=projectMapper.getSubProjectTimeCost(companyId,startDate,endDate,projectId,null,null,inchagerIds);
         List<List<String>> dataList=new ArrayList<>();
         List<String> titleList=new ArrayList<>();
         titleList.add("项目编号");
         titleList.add("项目名称");
         titleList.add("子项目编号");
         titleList.add("子项目名称");
-        titleList.add("子项目工时");
-        titleList.add("子项目成本");
+        titleList.add("子项目工时/h");
+        titleList.add("子项目成本/元");
         dataList.add(titleList);
         for (Map<String, Object> map : list) {
             List<String> item=new ArrayList<>();
@@ -9016,8 +9016,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             item.add(String.valueOf(map.get("projectName")==null?"":map.get("projectName")));
             item.add(String.valueOf(map.get("subProjectCode")==null?"":map.get("subProjectCode")));
             item.add(String.valueOf(map.get("subProjectName")==null?"":map.get("subProjectName")));
-            item.add(String.valueOf(map.get("cost")==null?"0":map.get("cost"))+"(元)");
-            item.add(String.valueOf(map.get("workingTime")==null?"0":map.get("workingTime"))+"(小时)");
+            item.add(String.valueOf(map.get("workingTime")==null?"0":map.get("workingTime")));
+            item.add(String.valueOf(map.get("cost")==null?"0":map.get("cost")));
             dataList.add(item);
         }
         String fileName = "子项目工时成本表"+System.currentTimeMillis();

+ 15 - 8
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -2222,14 +2222,21 @@ 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()){
-                user.put("leaveType",leaveSheet.get().getLeaveType());
-                if(leaveSheet.get().getTimeType()==0){
-                    user.put("leaveDays",leaveSheet.get().getTimeDays());
-                }else user.put("leaveTimes",leaveSheet.get().getTimeHours());
+            //获取角色请假情况 存在同条件下多条请假记录
+            List<LeaveSheet> leaveSheets = 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())))).collect(Collectors.toList());
+            if(leaveSheets.size()>0){
+                Integer leaveType=leaveSheets.get(0).getLeaveType();
+                BigDecimal leaveDays=new BigDecimal(0);
+                BigDecimal leaveTimes=new BigDecimal(0);
+                for (LeaveSheet leaveSheet : leaveSheets) {
+                    leaveDays=leaveDays.add(new BigDecimal(leaveSheet.getTimeDays()));
+                    leaveTimes=leaveTimes.add(new BigDecimal(leaveSheet.getTimeHours()));
+                }
+                user.put("leaveType",leaveType);
+                if(leaveSheets.stream().anyMatch(ls->ls.getTimeType()==0)){
+                    user.put("leaveDays",leaveDays);
+                }else user.put("leaveTimes",leaveTimes);
             }
             if (first.isPresent()) {
                 user.put("state", first.get().get("state"));