From 3467fa64f4be6efc9b742913419e7c3a501c541b Mon Sep 17 00:00:00 2001
From: ZQN <364596817@qq.com>
Date: 星期四, 20 六月 2024 16:52:21 +0800
Subject: [PATCH] 云片短信对接,审批流程优化

---
 project-report/src/main/java/com/project/report/service/impl/ReportServiceImpl.java |  132 ++++++++++++++++++++++++++++++++++++-------
 1 files changed, 110 insertions(+), 22 deletions(-)

diff --git a/project-report/src/main/java/com/project/report/service/impl/ReportServiceImpl.java b/project-report/src/main/java/com/project/report/service/impl/ReportServiceImpl.java
index b3df464..b02da7c 100644
--- a/project-report/src/main/java/com/project/report/service/impl/ReportServiceImpl.java
+++ b/project-report/src/main/java/com/project/report/service/impl/ReportServiceImpl.java
@@ -1,22 +1,26 @@
 package com.project.report.service.impl;
 
 import com.project.common.core.domain.entity.SysDept;
+import com.project.common.core.domain.entity.SysDictData;
 import com.project.common.core.domain.entity.SysUser;
 import com.project.common.vo.KeyVal;
 import com.project.enforce.domain.EnforceOrder;
 import com.project.enforce.service.IEnforceComplaintLogService;
 import com.project.enforce.service.IEnforceOrderService;
+import com.project.report.domain.bo.query.ReportQueryBo;
+import com.project.report.mapper.ReportMapper;
 import com.project.report.service.IReportService;
 import com.project.system.domain.SysCompany;
 import com.project.system.domain.SysDoc;
-import com.project.system.service.ISysCompanyService;
-import com.project.system.service.ISysDeptService;
-import com.project.system.service.ISysDocService;
-import com.project.system.service.ISysUserService;
+import com.project.system.service.*;
 import lombok.RequiredArgsConstructor;
+import org.jetbrains.annotations.NotNull;
 import org.springframework.stereotype.Service;
 
-import java.util.*;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -34,41 +38,124 @@
     private final ISysDeptService deptService;
     private final ISysUserService userService;
     private final ISysDocService docService;
+    private final ISysDictDataService dictDataService;
     private final IEnforceOrderService orderService;
     private final IEnforceComplaintLogService complaintLogService;
+    private final ReportMapper reportMapper;
+
 
     private final String[] months = {"1","2","3","4","5","6","7","8","9","10","11","12"};
+    private final String[] complaintStatus = {"-1","0","1","2"};
 
     @Override//姹囨��
     public Map<String, Object> getTotalInfo()
     {
-
         int companyNum = companyService.count(companyService.lq().eq(SysCompany::getCompanyStatus, 0));
         int enforceCompanyNum = orderService.count(orderService.lq().groupBy(EnforceOrder::getCompanyId));
         int enforceDeptNum = deptService.count(deptService.lq().eq(SysDept::getParentId,100));
         int enforceUserNum = userService.count(userService.lq().ne(SysUser::getUserType,"02"));
         int enforceOrderNum = orderService.count();
+        int enforceOrderCheckedNum = orderService.count(orderService.lq().eq(EnforceOrder::getOrderStatus,2));
+        int enforceOrderCompleteNum = orderService.count(orderService.lq().eq(EnforceOrder::getOrderStatus,4));
         int complaintNum = complaintLogService.count();
         int docNum = docService.count(docService.lq().eq(SysDoc::getDocStatus,0));
-
         Map<String, Object> result = new HashMap<>(7);
         result.put("companyNum", companyNum);
         result.put("enforceCompanyNum", enforceCompanyNum);
         result.put("enforceDeptNum", enforceDeptNum);
         result.put("enforceUserNum", enforceUserNum);
         result.put("enforceOrderNum", enforceOrderNum);
+        result.put("enforceOrderCheckedNum", enforceOrderCheckedNum);
+        result.put("enforceOrderCompleteNum", enforceOrderCompleteNum);
         result.put("complaintNum", complaintNum);
         result.put("docNum", docNum);
         return result;
     }
 
     @Override//鎵ф硶鍗曚綅鎵ф硶娆℃暟鏈堝害鍒嗗竷
-    public List<KeyVal> getMonthCount(Long deptId)
+    public List<KeyVal> getMonthCount(ReportQueryBo bo)
     {
-        List<KeyVal> list = orderService.getMonthCount(deptId);
-        Map<String, Object> resultMap = list.stream().collect(Collectors.toMap(KeyVal::getK,KeyVal::getV));
+        List<KeyVal> list = reportMapper.getMonthCount(bo);
+        return getKeyVal(list, months);
+    }
 
-        return Arrays.stream(months).map(e -> {
+    @Override//鎵ф硶鍗曚綅鎵ф硶娆℃暟閮ㄩ棬鍒嗗竷
+    public List<KeyVal> getDeptCount(ReportQueryBo bo)
+    {
+        List<KeyVal> list = reportMapper.getDeptCount(bo);
+        Map<String, Object> resultMap = list.stream().collect(Collectors.toMap(KeyVal::getK,KeyVal::getV));
+        List<SysDept> deptList = deptService.list(deptService.lq().eq(SysDept::getParentId, 100));
+        return deptList.stream().map(e -> {
+            KeyVal keyVal;
+            if (resultMap.get(e.getDeptId().toString()) == null) {
+                keyVal = new KeyVal(e.getDeptName(), 0);
+            } else {
+                keyVal = new KeyVal(e.getDeptName(), resultMap.get(e.getDeptId().toString()));
+            }
+            return keyVal;
+        }).collect(Collectors.toList());
+    }
+
+    @Override//浼佷笟琚墽娉曟鏁板垎甯�
+    public List<KeyVal> getCompanyCount(ReportQueryBo bo)
+    {
+        List<KeyVal> list = reportMapper.getCompanyCount(bo);
+        Map<String, Object> resultMap = list.stream().collect(Collectors.toMap(KeyVal::getK, KeyVal::getV));
+
+        List<SysCompany> companies = companyService.list(companyService.lq().eq(SysCompany::getCompanyStatus, 0));
+
+        return companies.stream().map(e -> {
+            KeyVal keyVal;
+            if (resultMap.get(e.getCompanyId().toString()) == null) {
+                keyVal = new KeyVal(e.getCompanyName(), 0);
+            } else {
+                keyVal = new KeyVal(e.getCompanyName(), resultMap.get(e.getCompanyId().toString()));
+            }
+            return keyVal;
+        }).collect(Collectors.toList());
+    }
+
+    @Override//鎵ф硶绫诲瀷
+    public List<KeyVal> getEnforceTypeCount(ReportQueryBo bo)
+    {
+        List<KeyVal> list = reportMapper.getEnforceTypeCount(bo);
+        Map<String, Object> resultMap = list.stream().collect(Collectors.toMap(KeyVal::getK, KeyVal::getV));
+        List<SysDictData> dictDataList = dictDataService.list(dictDataService.lq().eq(SysDictData::getDictType,"enforce_type"));
+        return getKeyVal(resultMap, dictDataList);
+    }
+
+
+    @Override//鎶曡瘔澶勭悊鐘舵��
+    public List<KeyVal> getComplaintStatusCount(ReportQueryBo bo)
+    {
+        List<KeyVal> list = reportMapper.getComplaintStatusCount(bo);
+        return getKeyVal(list, complaintStatus);
+    }
+
+
+    @Override//鎶曡瘔绫诲瀷
+    public List<KeyVal> getComplaintTypeCount(ReportQueryBo bo)
+    {
+        List<KeyVal> list = reportMapper.getComplaintTypeCount(bo);
+        Map<String, Object> resultMap = list.stream().collect(Collectors.toMap(KeyVal::getK, KeyVal::getV));
+        List<SysDictData> dictDataList = dictDataService.list(dictDataService.lq().eq(SysDictData::getDictType,"complaint_type"));
+        return getKeyVal(resultMap, dictDataList);
+    }
+
+
+//-----------------------------------------------------------------------------
+
+    /**
+     * 閫氳繃鏁扮粍鑾峰彇杩斿洖鏁版嵁
+     * @param list  缁撴灉
+     * @param array   鏁扮粍
+     * @return  缁撴灉
+     */
+    @NotNull
+    private List<KeyVal> getKeyVal(List<KeyVal> list, String[] array)
+    {
+        Map<String, Object> resultMap = list.stream().collect(Collectors.toMap(KeyVal::getK,KeyVal::getV));
+        return Arrays.stream(array).map(e -> {
             KeyVal keyVal;
             if (resultMap.get(e) == null) {
                 keyVal = new KeyVal(e, 0);
@@ -79,20 +166,21 @@
         }).collect(Collectors.toList());
     }
 
-    @Override//鎵ф硶鍗曚綅鎵ф硶娆℃暟閮ㄩ棬鍒嗗竷
-    public List<KeyVal> getDeptCount(String yearMonth)
+    /**
+     * 閫氳繃瀛楀吀鑾峰彇杩斿洖鏁版嵁
+     * @param resultMap  缁撴灉
+     * @param dictDataList   瀛楀吀
+     * @return  缁撴灉
+     */
+    @NotNull
+    private List<KeyVal> getKeyVal(Map<String, Object> resultMap, List<SysDictData> dictDataList)
     {
-        List<KeyVal> list = orderService.getDeptCount(yearMonth);
-        Map<String, Object> resultMap = list.stream().collect(Collectors.toMap(KeyVal::getK,KeyVal::getV));
-
-        List<SysDept> depts = deptService.list(deptService.lq().eq(SysDept::getParentId, 100));
-
-        return depts.stream().map(e -> {
+        return dictDataList.stream().map(e -> {
             KeyVal keyVal;
-            if (resultMap.get(e.getDeptId().toString()) == null) {
-                keyVal = new KeyVal(e.getDeptName(), 0);
+            if (resultMap.get(e.getDictValue()) == null) {
+                keyVal = new KeyVal(e.getDictLabel(), 0);
             } else {
-                keyVal = new KeyVal(e.getDeptName(), resultMap.get(e.getDeptId().toString()));
+                keyVal = new KeyVal(e.getDictLabel(), resultMap.get(e.getDictValue()));
             }
             return keyVal;
         }).collect(Collectors.toList());

--
Gitblit v1.9.1