Explorar el Código

项目成本统计导出关于项目在列上 多个人员

yurk hace 2 años
padre
commit
56066ac773

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

@@ -219,8 +219,8 @@ public class ProjectController {
      * 获取查询者所在公司每个项目的工时成本
      */
     @RequestMapping("/getTimeCost")
-    public HttpRespMsg getTimeCost(String startDate, String endDate, String userId) {
-        return projectService.getTimeCost(startDate, endDate, userId, request);
+    public HttpRespMsg getTimeCost(String startDate, String endDate, String userIds) {
+        return projectService.getTimeCost(startDate, endDate, userIds, request);
     }
 
     /**
@@ -235,24 +235,24 @@ public class ProjectController {
      * 获取查询者所在公司每个项目分类的工时成本
      */
     @RequestMapping("/getTimeCostByCategory")
-    public HttpRespMsg getTimeCostByCategory(String startDate, String endDate, String userId) {
-        return projectService.getTimeCostByCategory(startDate, endDate, userId, request);
+    public HttpRespMsg getTimeCostByCategory(String startDate, String endDate, String userIds) {
+        return projectService.getTimeCostByCategory(startDate, endDate, userIds, request);
     }
 
     /**
      * 导出查询者所在公司每个项目的工时成本
      */
     @RequestMapping("/exportTimeCost")
-    public HttpRespMsg exportTimeCost(String exportContent,String startDate, String endDate, Integer projectId, String userId, Boolean projectSum,Integer type,Integer deptId,@RequestParam(defaultValue = "1") Integer stateKey) {
-        return projectService.exportTimeCost(exportContent,startDate, endDate, projectId, userId, projectSum,type,deptId,stateKey, request);
+    public HttpRespMsg exportTimeCost(String exportContent,String startDate, String endDate, Integer projectId, String userIds, Boolean projectSum,Integer type,Integer deptId,@RequestParam(defaultValue = "1") Integer stateKey) {
+        return projectService.exportTimeCost(exportContent,startDate, endDate, projectId, userIds, projectSum,type,deptId,stateKey, request);
     }
 
     /**
      * 导出查询者所在公司每个项目分类的工时成本
      */
     @RequestMapping("/exportTimeCostByCategory")
-    public HttpRespMsg exportTimeCostByCategory(String exportContent,String startDate, String endDate, Integer projectCategoryId, String userId, Boolean projectSum,Integer type) {
-        return projectService.exportTimeCostByCategory(exportContent,startDate, endDate, projectCategoryId, userId, projectSum,type, request);
+    public HttpRespMsg exportTimeCostByCategory(String exportContent,String startDate, String endDate, Integer projectCategoryId, String userIds, Boolean projectSum,Integer type) {
+        return projectService.exportTimeCostByCategory(exportContent,startDate, endDate, projectCategoryId, userIds, projectSum,type, request);
     }
 
     /**

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

@@ -26,13 +26,13 @@ public interface ProjectMapper extends BaseMapper<Project> {
     List<Map<String, Object>> getOnlyJoinProjects(@Param("userId") String userId, @Param("companyId") Integer companyId);
 
     List<Map<String, Object>> getTimeCost(@Param("companyId") Integer companyId, @Param("startDate") String startDate, @Param("endDate") String endDate,
-                                          @Param("projectId") Integer projectId, @Param("userId") String userId,
+                                          @Param("projectId") Integer projectId, @Param("userIdList") List<String> userIdList,
                                           @Param("deptIds")List<Integer> deptIds,@Param("filterDeptIds")List<Integer> filterDeptIds, @Param("deptRelatedProjectIds") List<Integer> deptRelatedProjectIds);
 
     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);
 
-    List<Map<String, Object>> getProjectCost(@Param("companyId")Integer companyId,@Param("startDate") String startDate, @Param("endDate") String endDate, @Param("projectId") Integer projectId,@Param("stateKey")Integer stateKey, @Param("userId") String userId,@Param("deptIds")List<Integer> deptIds,@Param("filterDeptIds")List<Integer> filterDeptIds);
+    List<Map<String, Object>> getProjectCost(@Param("companyId")Integer companyId,@Param("startDate") String startDate, @Param("endDate") String endDate, @Param("projectId") Integer projectId,@Param("stateKey")Integer stateKey, @Param("userIdList") List<String> userIdList,@Param("deptIds")List<Integer> deptIds,@Param("filterDeptIds")List<Integer> filterDeptIds);
 
     List<Map<String, Object>> getProjectCusDataSumItem(@Param("companyId") Integer companyId, @Param("startDate") String startDate,
                                                        @Param("endDate") String endDate, @Param("projectId") Integer projectId,
@@ -92,11 +92,11 @@ public interface ProjectMapper extends BaseMapper<Project> {
 
     List getBaseCostAndRealCost(Integer companyId, Integer pageStart, Integer pageSize, Integer projectId);
 
-    List<Map<String, Object>> getProjectCostGroupByProject(Integer companyId, String startDate, String endDate, Integer projectId,String userId,List<Integer> deptIds);
+    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, String userId,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>> getProjectCostGroupByCategory(Integer companyId, String startDate, String endDate, Integer projectCategoryId,String userId,List<Integer> deptIds);
+    List<Map<String, Object>> getProjectCostGroupByCategory(Integer companyId, String startDate, String endDate, Integer projectCategoryId,List<String> userIdList,List<Integer> deptIds);
 
     List<Map<String, Object>> getProjectCostByCategory(Integer companyId, String startDate, String endDate, Integer curProjectCategoryId, String userId);
 

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

@@ -51,7 +51,7 @@ public interface ProjectService extends IService<Project> {
 
     HttpRespMsg deleteProject(Integer id, Integer force);
 
-    HttpRespMsg getTimeCost(String startDate, String endDate, String userId, HttpServletRequest request);
+    HttpRespMsg getTimeCost(String startDate, String endDate, String userIds, HttpServletRequest request);
 
     HttpRespMsg getProjectCost(String startDate, String endDate, Integer projectId,Integer stateKey, HttpServletRequest request);
 
@@ -59,7 +59,7 @@ public interface ProjectService extends IService<Project> {
 
     HttpRespMsg getAllMembCost(String startDate, String endDate, Integer projectId, HttpServletRequest request);
 
-    HttpRespMsg exportTimeCost(String exportContent,String startDate, String endDate, Integer projectId,String userId, Boolean projectSum,Integer type,Integer deptId,Integer stateKey,HttpServletRequest request);
+    HttpRespMsg exportTimeCost(String exportContent,String startDate, String endDate, Integer projectId,String userIds, Boolean projectSum,Integer type,Integer deptId,Integer stateKey,HttpServletRequest request);
 
     HttpRespMsg updateProgress(Integer id, Integer progress, HttpServletRequest request);
 
@@ -142,9 +142,9 @@ public interface ProjectService extends IService<Project> {
 
     HttpRespMsg getProjectByCustomer(Integer customerId, HttpServletRequest request);
 
-    HttpRespMsg getTimeCostByCategory(String startDate, String endDate, String userId, HttpServletRequest request);
+    HttpRespMsg getTimeCostByCategory(String startDate, String endDate, String userIds, HttpServletRequest request);
 
-    HttpRespMsg exportTimeCostByCategory(String exportContent,String startDate, String endDate, Integer projectCategoryId, String userId, Boolean projectSum, Integer type, HttpServletRequest request);
+    HttpRespMsg exportTimeCostByCategory(String exportContent,String startDate, String endDate, Integer projectCategoryId, String userIds, Boolean projectSum, Integer type, HttpServletRequest request);
 
     HttpRespMsg getUserWorkingTimeList(String userId, Integer projectId, String startDate, String endDate, Integer pageIndex, Integer pageSize,HttpServletRequest request,Integer departmentId);
 

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

@@ -1037,7 +1037,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
 
     //获取查询者所在公司每个项目的工时成本
     @Override
-    public HttpRespMsg getTimeCost(String startDate, String endDate, String userId, HttpServletRequest request) {
+    public HttpRespMsg getTimeCost(String startDate, String endDate, String userIds, HttpServletRequest request) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         try {
             //根据系统配置的员工成本计算方式,按固定时薪还是固定月薪,分情况计算。
@@ -1080,8 +1080,12 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 }
 
             }
-
-            List<Map<String, Object>> list = projectMapper.getTimeCost(companyId, startDate, endDate, null, userId,deptIds,null, deptRelatedProjectIds);
+            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, null, userIdList,deptIds,null, deptRelatedProjectIds);
             BigDecimal totalMoneyCost = BigDecimal.valueOf(0);
             for (Map<String, Object> map : list) {
                 if (!map.containsKey("cost")) {
@@ -1120,7 +1124,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
 
     //导出查询者所在公司每个项目的工时成本,包括项目人员明细统计
     @Override
-    public HttpRespMsg exportTimeCost(String exportContent,String startDate, String endDate,Integer projectId, String userId, Boolean projectSum,Integer type,Integer deptId, Integer stateKey,HttpServletRequest request) {
+    public HttpRespMsg exportTimeCost(String exportContent,String startDate, String endDate,Integer projectId, String userIds, Boolean projectSum,Integer type,Integer deptId, Integer stateKey,HttpServletRequest request) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         try {
             User targetUser = userMapper.selectById(request.getHeader("Token"));
@@ -1178,7 +1182,12 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 }
             }
             System.out.println(filterDeptIds);
-            List<Map<String, Object>> list = projectMapper.getTimeCost(companyId, startDate, endDate, projectId, userId,deptIds,filterDeptIds,deptRelatedProjectIds);
+            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);
             BigDecimal totalMoneyCost = BigDecimal.valueOf(0);
             List<List<String>> allList=null ;
             List<String> sumRow = null;
@@ -1256,7 +1265,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     } else {
                         finalDeptIds = deptIds;
                     }
-                    List<Map<String, Object>> membList = projectMapper.getProjectCost(companyId,startDate, endDate, curProjectId,stateKey, userId,finalDeptIds,filterDeptIds);
+                    List<Map<String, Object>> membList = projectMapper.getProjectCost(companyId,startDate, endDate, curProjectId,stateKey, userIdList,finalDeptIds,filterDeptIds);
                     map.put("membList", membList);
                     for (Map<String, Object> membMap : membList) {
                         double pTotalTime = 0;
@@ -1366,7 +1375,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 allList=new ArrayList<>();
                 allList.add(headList);
                 //统计当前所有项目所有人的时间成本投入
-                List<Map<String, Object>> membList = projectMapper.getProjectCostGroupByProject(companyId,startDate, endDate, projectId,userId,deptIds);
+                List<Map<String, Object>> membList = projectMapper.getProjectCostGroupByProject(companyId,startDate, endDate, projectId,userIdList,deptIds);
                 for (User user : userList) {
                     BigDecimal moneyCost = BigDecimal.valueOf(0);
                     double costTime = 0;
@@ -5644,7 +5653,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     }
 
     @Override
-    public HttpRespMsg getTimeCostByCategory(String startDate, String endDate, String userId, HttpServletRequest request) {
+    public HttpRespMsg getTimeCostByCategory(String startDate, String endDate, String userIds, HttpServletRequest request) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         try {
             User targetUser = userMapper.selectById(request.getHeader("Token"));
@@ -5676,7 +5685,12 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 }
             }
             TimeType timeType = timeTypeMapper.selectById(companyId);
-            List<Map<String, Object>> list = projectMapper.getTimeCostByCategory(companyId, startDate, endDate, null, userId,deptIds);
+            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.getTimeCostByCategory(companyId, startDate, endDate, null,userIdList,deptIds);
             BigDecimal totalMoneyCost = BigDecimal.valueOf(0);
             for (Map<String, Object> map : list) {
                 if (!map.containsKey("cost")) {
@@ -5712,7 +5726,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     }
 
     @Override
-    public HttpRespMsg exportTimeCostByCategory(String exportContent,String startDate, String endDate, Integer projectCategoryId, String userId, Boolean projectSum, Integer type, HttpServletRequest request) {
+    public HttpRespMsg exportTimeCostByCategory(String exportContent,String startDate, String endDate, Integer projectCategoryId, String userIds, Boolean projectSum, Integer type, HttpServletRequest request) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         try {
             //根据系统配置的员工成本计算方式,按固定时薪还是固定月薪,分情况计算。
@@ -5745,7 +5759,12 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     }
                 }
             }
-            List<Map<String, Object>> list = projectMapper.getTimeCostByCategory(companyId, startDate, endDate, projectCategoryId, userId,deptIds);
+            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.getTimeCostByCategory(companyId, startDate, endDate, projectCategoryId, userIdList,deptIds);
             BigDecimal totalMoneyCost = BigDecimal.valueOf(0);
             List<List<String>> allList=null ;
             List<String> sumRow = null;
@@ -5863,7 +5882,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 allList=new ArrayList<>();
                 allList.add(headList);
                 //统计当前所有项目所有人的时间成本投入
-                List<Map<String, Object>> membList = projectMapper.getProjectCostGroupByCategory(companyId,startDate,endDate, projectCategoryId,userId,deptIds);
+                List<Map<String, Object>> membList = projectMapper.getProjectCostGroupByCategory(companyId,startDate,endDate, projectCategoryId,userIdList,deptIds);
                 for (User user : userList) {
                     BigDecimal moneyCost = BigDecimal.valueOf(0);
                     double costTime = 0;

+ 25 - 10
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectMapper.xml

@@ -138,8 +138,11 @@
         <if test="projectId != null">
             AND a.id = #{projectId}
         </if>
-        <if test="userId != null">
-            AND b.creator_id = #{userId}
+        <if test="userIdList != null and userIdList.size()>0">
+            AND b.creator_id in
+            <foreach collection="userIdList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
         </if>
         <if test="startDate != null and endDate != null">
             AND b.create_date between #{startDate} and #{endDate}
@@ -210,8 +213,11 @@
         <if test="projectCategoryId != null">
             AND a.category = #{projectCategoryId}
         </if>
-        <if test="userId != null">
-            AND b.creator_id = #{userId}
+        <if test="userIdList != null and userIdList.size()>0">
+            AND b.creator_id in
+            <foreach collection="userIdList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
         </if>
         <if test="startDate != null and endDate != null">
             AND b.create_date between #{startDate} and #{endDate}
@@ -308,8 +314,11 @@
         <if test="startDate != null and endDate != null">
             AND a.create_date between #{startDate} and #{endDate}
         </if>
-        <if test="userId != null">
-            AND a.creator_id = #{userId}
+        <if test="userIdList != null and userIdList.size()>0">
+            AND a.creator_id in
+            <foreach collection="userIdList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
         </if>
         <choose>
             <when test="filterDeptIds!=null and filterDeptIds.size()>0">
@@ -365,8 +374,11 @@
         <if test="startDate != null and endDate != null">
             AND a.create_date between #{startDate} and #{endDate}
         </if>
-        <if test="userId != null">
-            AND a.creator_id = #{userId}
+        <if test="userIdList != null and userIdList.size()>0">
+            AND a.creator_id in
+            <foreach collection="userIdList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
         </if>
         <if test="deptIds!=null and deptIds.size()>0">
             and a.dept_id in
@@ -393,8 +405,11 @@
         <if test="startDate != null and endDate != null">
             AND a.create_date between #{startDate} and #{endDate}
         </if>
-        <if test="userId != null">
-            AND a.creator_id = #{userId}
+        <if test="userIdList != null and userIdList.size()>0">
+            AND a.creator_id in
+            <foreach collection="userIdList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
         </if>
         <if test="deptIds!=null and deptIds.size()>0">
             and a.dept_id in