Ver Fonte

统计部门2

Reiskuchen há 5 anos atrás
pai
commit
acbc3210d2

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/DepartmentController.java

@@ -84,7 +84,7 @@ public class DepartmentController {
      * departmentId 要查询的项目
      */
     @RequestMapping("/userStatistic")
-    public HttpRespMsg getUserStatistics(Integer departmentId, HttpServletRequest request) {
+    public HttpRespMsg getUserStatistics(@RequestParam Integer departmentId, HttpServletRequest request) {
         return departmentService.getUserStatistics(departmentId, request);
     }
 }

+ 2 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/DepartmentMapper.java

@@ -17,4 +17,6 @@ import java.util.Map;
  */
 public interface DepartmentMapper extends BaseMapper<Department> {
     Map<String, Object> getCostByDepartment(@Param("departmentIds") List departmentIds);
+
+    List<Map<String, Object>> getCostByUser(@Param("departmentIds") List departmentIds);
 }

+ 20 - 7
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/DepartmentServiceImpl.java

@@ -15,10 +15,7 @@ import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Stack;
+import java.util.*;
 
 /**
  * <p>
@@ -256,17 +253,24 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
             Integer companyId = userMapper.selectById(request.getHeader("Token")).getCompanyId();
             List<Department> masterList = departmentMapper.selectList(new QueryWrapper<Department>()
                     .eq("company_id", companyId).isNull("superior_id"));
+            Map<String, Object> resultMap = new HashMap<>();
             List<DepartmentMasterVO> list = new ArrayList<>();
+            Double totalCostMoney = (double) 0;
             for (Department department : masterList) {
                 DepartmentMasterVO departmentMasterVO = new DepartmentMasterVO();
                 BeanUtils.copyProperties(department, departmentMasterVO);
                 Map<String, Object> map = departmentMapper.getCostByDepartment(
                         getBranchDepartment(department.getDepartmentId(), companyId));
-                departmentMasterVO.setCostTime(map == null ? new Double(0) : (Double) map.get("time"));
-                departmentMasterVO.setCostMoney(map == null ? new Double(0) : (Double) map.get("money"));
+                Double time = map == null ? new Double(0) : (Double) map.get("time");
+                Double money = map == null ? new Double(0) : (Double) map.get("money");
+                totalCostMoney += money;
+                departmentMasterVO.setCostTime(time);
+                departmentMasterVO.setCostMoney(money);
                 list.add(departmentMasterVO);
             }
-            httpRespMsg.data = list;
+            resultMap.put("totalCostMoney", totalCostMoney);
+            resultMap.put("costList", list);
+            httpRespMsg.data = resultMap;
         } catch (NullPointerException e) {
             e.printStackTrace();
             httpRespMsg.setError("验证失败");
@@ -275,12 +279,21 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
         return httpRespMsg;
     }
 
+    //获取某个部门下人员的统计
     @Override
     public HttpRespMsg getUserStatistics(Integer departmentId, HttpServletRequest request) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         try {
 //            Integer companyId = userMapper.selectById(request.getHeader("Token")).getCompanyId();
             Integer companyId = 6;
+            //首先校验有无权限
+            if (departmentMapper.selectCount(new QueryWrapper<Department>()
+                    .eq("department_id", departmentId)
+                    .eq("company_id", companyId)) == 1) {
+                httpRespMsg.data = "啦啦啦";
+            } else {
+                httpRespMsg.setError("部门不存在或无查看权限");
+            }
         } catch (NullPointerException e) {
             httpRespMsg.setError("验证失败");
             return httpRespMsg;

+ 12 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/DepartmentMapper.xml

@@ -15,7 +15,7 @@
         department_id, department_name, superior_id, company_id
     </sql>
 
-    <!--范围分页获取人员-->
+    <!--根据部门获取成本-->
     <select id="getCostByDepartment" resultType="java.util.Map">
         SELECT SUM(b.working_time) AS time, SUM(b.working_time * a.cost) AS money
         FROM user AS a
@@ -26,4 +26,15 @@
         </foreach>
     </select>
 
+    <!--根据人员获取成本-->
+    <select id="getCostByUser" resultType="java.util.Map">
+        SELECT SUM(b.working_time) AS time, SUM(b.working_time * a.cost) AS money
+        FROM user AS a
+        LEFT JOIN report AS b ON a.id = b.creator_id
+        WHERE a.department_id IN
+        <foreach collection="departmentIds" item="departmentId" index="index" open="(" close=")" separator=",">
+            #{departmentId}
+        </foreach>
+    </select>
+
 </mapper>