From 09ee5added9d59e90310a2586e846137ea597b19 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期五, 01 十二月 2023 13:15:42 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/crm/manager/controller/DashboardController.java |  179 ++++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 157 insertions(+), 22 deletions(-)

diff --git a/src/main/java/com/zy/crm/manager/controller/DashboardController.java b/src/main/java/com/zy/crm/manager/controller/DashboardController.java
index 891f151..78be2fb 100644
--- a/src/main/java/com/zy/crm/manager/controller/DashboardController.java
+++ b/src/main/java/com/zy/crm/manager/controller/DashboardController.java
@@ -1,13 +1,13 @@
 package com.zy.crm.manager.controller;
 
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.annotations.ManagerAuth;
+import com.core.common.Cools;
 import com.core.common.R;
 import com.zy.crm.common.web.BaseController;
-import com.zy.crm.manager.entity.CompanyTarget;
-import com.zy.crm.manager.entity.Order;
-import com.zy.crm.manager.service.CompanyTargetService;
-import com.zy.crm.manager.service.OrderService;
-import com.zy.crm.manager.utils.WordUtils;
+import com.zy.crm.manager.entity.*;
+import com.zy.crm.manager.service.*;
+import com.zy.crm.system.entity.Role;
 import com.zy.crm.system.entity.User;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -24,10 +24,30 @@
 @RestController
 public class DashboardController extends BaseController {
 
+    Integer PBN = 6;
+
     @Autowired
     private CompanyTargetService companyTargetService;
     @Autowired
     private OrderService orderService;
+    @Autowired
+    private PlanService planService;
+    @Autowired
+    private PriOnline2Service priOnline2Service;
+    @Autowired
+    private PriQuoteService priQuoteService;
+    @Autowired
+    private BusinessTripService businessTripService;
+    @Autowired
+    private BusinessTripOtherService businessTripOtherService;
+    @Autowired
+    private ReimburseOnlineService reimburseOnlineService;
+    @Autowired
+    private CompanyMoneyService companyMoneyService;
+    @Autowired
+    private ProcessPermissionsService processPermissionsService;
+    @Autowired
+    private PlanTypeService planTypeService;
 
     //鑾峰彇鍥㈤槦鏁版嵁
     @RequestMapping(value = "/dashboard/companyData/auth")
@@ -43,20 +63,30 @@
         if (companyTarget == null) {
             return R.error();
         }
-        map.put("yearTarget", formatter.format(Double.parseDouble(companyTarget.getTarget())));//鍏ㄥ勾浜ゆ槗鐩爣
+        double whole = Double.parseDouble(companyTarget.getTarget());
+        map.put("yearTarget", formatter.format(whole));//鍏ㄥ勾浜ゆ槗鐩爣
 
         //鑾峰彇鍏ㄥ勾浜ゆ槗鎴愬姛閲戦
         Double successMoney = orderService.selectMoneyByYearAndStatus(year, 1);
         //鑾峰彇鍏ㄥ勾鏈氦鏄撴垚鍔熼噾棰�
-        Double progressMoney = orderService.selectMoneyByYearAndStatus(year, 0);
+//        double v = whole - orderService.selectMoneyByYearAndStatus(year, 0);
+        double v = whole - orderService.selectMoneyByYearAndStatus(year, 1);
+        Double progressMoney =  v > 0? v : 0D;
         //鑾峰彇鍏ㄥ勾浜ゆ槗澶辫触閲戦
         Double failedMoney = orderService.selectMoneyByYearAndStatus(year, 2);
-        //鍏ㄥ勾浜ゆ槗鐜�
-        double yearTransactionRate = successMoney == 0 ? successMoney : (successMoney / (successMoney + progressMoney + failedMoney)) * 100;
+        //鍏ㄥ勾瀹屾垚鐜�
+//        double yearTransactionRate = successMoney == 0 ? successMoney : (successMoney / (successMoney + progressMoney + failedMoney)) * 100;
+        double yearTransactionRate = successMoney == 0 ? successMoney : (successMoney / Double.parseDouble(companyTarget.getTarget())) * 100;
+
+        Double successMoney1 = companyMoneyService.selectMoneyReceivablesAll(null, year);
+
+        Double successMoney2 = companyMoneyService.selectMoneyActualReceiptsAll(null, year);
 
         map.put("successMoney", formatter.format(successMoney));//鍏ㄥ勾浜ゆ槗鎴愬姛閲戦
         map.put("progressMoney", formatter.format(progressMoney));//鍏ㄥ勾鏈氦鏄撴垚鍔熼噾棰�
         map.put("yearTransactionRate", String.format("%.2f", yearTransactionRate));//鍏ㄥ勾浜ゆ槗鐜�
+        map.put("receivablesMoney", successMoney1/10000);//搴旀敹娆�
+        map.put("actualReceiptsMoney",successMoney2/10000);//瀹為檯鏀舵
         return R.ok().add(map);
     }
 
@@ -71,32 +101,80 @@
         SimpleDateFormat format = new SimpleDateFormat("yyyy");
         String year = format.format(date);
 
-        User user = getUser();
-        String yearTarget = "0";//鑾峰彇涓汉鍏ㄥ勾鐩爣鏁版嵁
-        if (user.getTarget() != null) {
-            yearTarget = formatter.format(Double.parseDouble(user.getTarget()));
+        Double yearTarget = 0D;//鑾峰彇涓汉鍏ㄥ勾鐩爣鏁版嵁
+        CompanyTarget person = companyTargetService.selectPersonByYear(year, getUserId());
+        if (person != null) {
+            yearTarget = Double.parseDouble(person.getTarget());
         }
-        map.put("yearTarget", yearTarget);//鍏ㄥ勾浜ゆ槗鐩爣
+        map.put("yearTarget", formatter.format(yearTarget));//鍏ㄥ勾浜ゆ槗鐩爣
 
         //鑾峰彇鍏ㄥ勾浜ゆ槗鎴愬姛閲戦
-        Double successMoney = orderService.selectMoneyByUserAndYearAndStatus(user.getId(), year, 1);
+        Double successMoney = orderService.selectMoneyByUserAndYearAndStatus(getUserId(), year, 1);
         //鑾峰彇鍏ㄥ勾鏈氦鏄撴垚鍔熼噾棰�
-        Double progressMoney = orderService.selectMoneyByUserAndYearAndStatus(user.getId(), year, 0);
+        double v = yearTarget - orderService.selectMoneyByUserAndYearAndStatus(getUserId(), year, 1);
+        Double progressMoney = v > 0? v : 0D;
+        Double progressMoney2 = orderService.selectMoneyByUserAndYearAndStatus(getUserId(), year, 0);
         //鑾峰彇鍏ㄥ勾浜ゆ槗澶辫触閲戦
-        Double failedMoney = orderService.selectMoneyByUserAndYearAndStatus(user.getId(), year, 2);
-        //鍏ㄥ勾浜ゆ槗鐜�
-        double yearTransactionRate = successMoney == 0 ? successMoney : (successMoney / (successMoney + progressMoney + failedMoney)) * 100;
+        Double failedMoney = orderService.selectMoneyByUserAndYearAndStatus(getUserId(), year, 2);
+        //鍏ㄥ勾瀹屾垚鐜�
+//        double yearTransactionRate = successMoney == 0 ? successMoney : (successMoney / (successMoney + progressMoney + failedMoney)) * 100;
+        double yearTransactionRate = yearTarget==0? 0 : successMoney == 0 ? successMoney : (successMoney / yearTarget) * 100;
 
         map.put("successMoney", formatter.format(successMoney));//鍏ㄥ勾浜ゆ槗鎴愬姛閲戦
         map.put("progressMoney", formatter.format(progressMoney));//鍏ㄥ勾鏈氦鏄撴垚鍔熼噾棰�
+        map.put("progressMoney2", formatter.format(progressMoney2));//璺熻釜椤圭洰閲戦
         map.put("yearTransactionRate", String.format("%.2f", yearTransactionRate));//鍏ㄥ勾浜ゆ槗鐜�
 
         //鑾峰彇鍏ㄥ勾璺熻釜鏁伴噺
-        Integer progressCount = orderService.selectCountByUserYearAndStatus(user.getId(), year, 0);
+        Integer progressCount = orderService.selectCountByUserYearAndStatus(getUserId(), year, 0);
         //鑾峰彇鍏ㄥ勾鎴愪氦鏁伴噺
-        Integer successCount = orderService.selectCountByUserYearAndStatus(user.getId(), year, 1);
+        Integer successCount = orderService.selectCountByUserYearAndStatus(getUserId(), year, 1);
         map.put("progressCount", progressCount);
         map.put("successCount", successCount);
+
+        //鑾峰彇寰呭鐞嗕换鍔℃暟閲�
+        int planPendingTaskCount = planService.selectPendingTaskCount(getUserId());
+        map.put("planPendingTaskCount", planPendingTaskCount);
+        int priOnlinePendingTaskCount = priOnline2Service.selectCount(new EntityWrapper<PriOnline2>().eq("member_id", getUserId()).lt("settle",2));
+        map.put("priOnlinePendingTaskCount", priOnlinePendingTaskCount);
+        int priQuotePendingTaskCount = priQuoteService.selectCount(new EntityWrapper<PriQuote>().eq("member_id", getUserId()).lt("settle",4));
+        map.put("priQuotePendingTaskCount", priQuotePendingTaskCount);
+        int businessTripCount = businessTripService.selectCount(new EntityWrapper<BusinessTrip>().eq("member_id", getUserId()).lt("settle", 2));
+        int businessTripOtherCount = businessTripOtherService.selectCount(new EntityWrapper<BusinessTripOther>().eq("member_id", getUserId()).lt("settle",2));
+        int businessTripPendingTaskCount = businessTripCount+businessTripOtherCount;
+        map.put("businessTripPendingTaskCount", businessTripPendingTaskCount);
+        int reimburseOnlinePendingTaskCount = reimburseOnlineService.selectCount(new EntityWrapper<ReimburseOnline>().eq("member_id", getUserId()).lt("settle",6));
+        map.put("reimburseOnlinePendingTaskCount", reimburseOnlinePendingTaskCount);
+        int planPriOnlinePendingTaskCount = 0;
+        List<ProcessPermissions> processPermissionsList = processPermissionsService.selectList(new EntityWrapper<ProcessPermissions>().eq("process_memo", 4).or().eq("process_memo", 5));//2锛氭牳浠锋祦绋�
+        int type =0;
+        for (ProcessPermissions processPermissions:processPermissionsList){
+            if (getUserId().equals(processPermissions.getUserId())){
+                type=PBN-processPermissions.getProcessMemo();
+                break;
+            }
+        }
+        if (type!=0){
+            EntityWrapper<Plan> wrapper = new EntityWrapper<>();
+            wrapper.eq("status",1);
+            wrapper.eq("assistant_host_sign",0);
+            List<Long> typeList = new ArrayList<>();
+            List<PlanType> planTypes = planTypeService.selectList(new EntityWrapper<PlanType>().eq("type", type));
+            for (PlanType planType : planTypes){
+                typeList.add(planType.getId());
+            }
+            wrapper.in("plan_type",typeList);
+            List<Plan> plans = planService.selectList(wrapper);
+            planPriOnlinePendingTaskCount=plans.size();
+        }
+        map.put("planPriOnlinePendingTaskCount", planPriOnlinePendingTaskCount);
+
+        Double successMoney1 = companyMoneyService.selectMoneyReceivablesAll(getUserId(), year);
+        map.put("successMoney1", successMoney1==null? 0:successMoney1);
+
+        Double successMoney2 = companyMoneyService.selectMoneyActualReceiptsAll(getUserId(), year);
+        map.put("successMoney2", successMoney2==null? 0:successMoney2);
+
 
         return R.ok().add(map);
     }
@@ -121,7 +199,64 @@
     @ManagerAuth
     public R getCurrentMonthData() {
         List<Double> list = orderService.selectCurrentYearMonthSuccess();
-        return R.ok().add(list);
+        List<Double> lists = new ArrayList<>();
+        int i = 0;
+        Double[] money=new Double[]{0.0,0.0,0.0,0.0};
+        for (Double d : list){
+            if (i<3){
+                money[0] = money[0]+d;
+            }else if (i<6){
+                money[1] = money[1]+d;
+            }else if (i<9){
+                money[2] = money[2]+d;
+            }else if (i<12){
+                money[3] = money[3]+d;
+            }
+            i++;
+        }
+        for (Double d : money){
+            double d1=d/3;
+            lists.add(d1);
+            lists.add(d1);
+            lists.add(d1);
+        }
+        return R.ok().add(lists);
+    }
+
+    @RequestMapping("/dashboard/popup/auth")
+    public R popup(String token) {
+        String item = "false";
+        if (Cools.isEmpty(token)){
+            return R.ok(item);
+        }
+        try{
+            User user = getUser(token);
+            if (Cools.isEmpty(user) || Cools.isEmpty(user.getRoleId())){
+                return R.ok(item);
+            }
+            if (user.getRoleId()<2){
+                item="true";
+            }else if (user.getRoleId()<3){
+                item="true2";
+            }
+        }catch (Exception ignored){ }
+        return R.ok(item);
+    }
+
+    @RequestMapping("/dashboard/user/id/popup/auth")
+    public R popupUserId(String token) {
+        Long item = 0L;
+        if (Cools.isEmpty(token)){
+            return R.ok(item);
+        }
+        try{
+            User user = getUser(token);
+            if (Cools.isEmpty(user) || Cools.isEmpty(user.getId())){
+                return R.ok(item);
+            }
+            item = user.getId();
+        }catch (Exception ignored){ }
+        return R.ok(item);
     }
 
 }

--
Gitblit v1.9.1