From edd51e72fb0d3d9ac3e604f164618dde92a0c29a Mon Sep 17 00:00:00 2001
From: lidongdong <1459917685@qq.com>
Date: 星期二, 11 十月 2022 18:07:23 +0800
Subject: [PATCH] 新增首页工单  办事指南饼状图数据   修改小程序登录用户状态问题

---
 flower_city/src/main/java/com/dg/core/controller/HomeStatisticsController.java |  192 ++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 186 insertions(+), 6 deletions(-)

diff --git a/flower_city/src/main/java/com/dg/core/controller/HomeStatisticsController.java b/flower_city/src/main/java/com/dg/core/controller/HomeStatisticsController.java
index 9b50967..b696e0d 100644
--- a/flower_city/src/main/java/com/dg/core/controller/HomeStatisticsController.java
+++ b/flower_city/src/main/java/com/dg/core/controller/HomeStatisticsController.java
@@ -1,32 +1,212 @@
 package com.dg.core.controller;
 
 import com.dg.core.ResultData;
-import com.dg.core.db.gen.entity.WorkOrder;
+import com.dg.core.db.gen.entity.*;
+import com.dg.core.service.IClassifyAdministrationService;
+import com.dg.core.service.IGuideEvolveService;
+import com.dg.core.service.IGuideRepairOrderService;
+import com.dg.core.service.ITransactionEventService;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.List;
 
 @Api(tags = {"首页统计接口"})
 @RestController
 @RequestMapping("/Home")
 public class HomeStatisticsController
 {
+    //导办工单接口
+    @Autowired
+    IGuideRepairOrderService iGuideRepairOrderService;
 
+    //导办进展
+    @Autowired
+    IGuideEvolveService iGuideEvolveService;
 
+    //分类
+    @Autowired
+    IClassifyAdministrationService iClassifyAdministrationService;
 
+    @Autowired
+    ITransactionEventService iTransactionEventService;
 
-
-
-
-
+    @ApiOperation("首页统计不同状态工单数")
     @GetMapping("/getWorkOrder")
     public ResultData getWorkOrder()
     {
-
         WorkOrder workOrder=new WorkOrder();
+        //状态(1待分配  2 待办结 3 已办结 4 待评价 5 已取消  6未解决  7已解决)
+        workOrder.setAllNum(iGuideRepairOrderService.countStatisticsNum("",null,null,null,null,null));
+        workOrder.setWaitDistribution(iGuideRepairOrderService.countStatisticsNum("1",null,null,null,null,null));
+        workOrder.setWaitDealWith(iGuideRepairOrderService.countStatisticsNum("2",null,null,null,null,null));
+        workOrder.setHaveDealWith(iGuideRepairOrderService.countStatisticsNum("3",null,null,null,null,null));
+        workOrder.setRemainEvaluated(iGuideRepairOrderService.countStatisticsNum("4",null,null,null,null,null));
+        workOrder.setCanceled(iGuideRepairOrderService.countStatisticsNum("5",null,null,null,null,null));
+        workOrder.setUnsolved(iGuideRepairOrderService.countStatisticsNum("6",null,null,null,null,null));
+        workOrder.setResolved(iGuideRepairOrderService.countStatisticsNum("7",null,null,null,null,null));
+
+        //是否超时 (1 未超时   2已超时) 超时未办结
+        workOrder.setOvertime(iGuideRepairOrderService.countStatisticsNum(null,null,null,"2",null,null));
+//        超时未办结
+        workOrder.setOvertimeWaitDealWith(iGuideRepairOrderService.countStatisticsNum("2",null,null,"2",null,null));
+        return ResultData.success(workOrder);
+    }
 
 
+    @ApiOperation("首页统计不同时间段的工单数量")
+    @GetMapping("/getTimeWorkOrder")
+    public ResultData getTimeWorkOrder()
+    {
+        //1 今天   2昨天   3本月   4本年度
+        //累计全部 本年 本月 今日 昨日
+        TimeWorkOrder timeWorkOrder=new TimeWorkOrder();
+        timeWorkOrder.setAllNum(iGuideRepairOrderService.countStatisticsNum(null,null,null,null,null,null));
+        timeWorkOrder.setYearNum(iGuideRepairOrderService.countStatisticsNum(null,null,"4",null,null,null));
+        timeWorkOrder.setMonthNum(iGuideRepairOrderService.countStatisticsNum(null,null,"3",null,null,null));
+        timeWorkOrder.setTodayNum(iGuideRepairOrderService.countStatisticsNum(null,null,"1",null,null,null));
+        timeWorkOrder.setYesterdayNum(iGuideRepairOrderService.countStatisticsNum(null,null,"2",null,null,null));
+        return ResultData.success(timeWorkOrder);
+    }
+
+
+    @ApiOperation("根据选择的时间段 筛选导办工单数 timeType:1 本年度 15 近15天的   30 近30天的")
+    @GetMapping("/getSelectionTimeOrder")
+    public ResultData getSelectionTimeOrder(@RequestParam("timeType") Integer timeType)
+    {
+        if(timeType<1)
+        {
+            return ResultData.error("请输入时间");
+        }
+
+        if(timeType==1)
+        {
+            Calendar calendar=Calendar.getInstance();
+            timeType=calendar.get(Calendar.DAY_OF_YEAR);
+        }
+//        System.out.println(timeType);
+        //1 本年度 15 近15天的   30 近30天的
+        List<CountListNum> listOne=iGuideRepairOrderService.countListNum("2",null,timeType);
+        List<CountListNum> listTwo=iGuideRepairOrderService.countListNum("3",null,timeType);
+        CountList countList=new CountList();
+        countList.setWaitDealWithList(listOne);
+        countList.setHaveDealWith(listTwo);
+        return ResultData.success(countList);
+    }
+
+
+
+    @ApiOperation("获取效率比值")
+    @GetMapping("/getEfficiency")
+    public ResultData getEfficiency()
+    {
+        EfficiencyEntity entity=new EfficiencyEntity();
+        //总工单数
+        int allNum=iGuideRepairOrderService.countStatisticsNum("",null,null,null,null,null);
+
+        java.text.DecimalFormat weekDf=new java.text.DecimalFormat("##.##%");//传入格式模板
+
+        int bj=iGuideRepairOrderService.countStatisticsNum("3",null,null,null,null,null);
+        if(bj!=0)
+        {
+            //        好评率=评价为满意的导办工单数量/已办结状态工单数量
+            String goodReputationEfficiency=weekDf.format((float)(iGuideRepairOrderService.countStatisticsNum(null,null,null,null,"1",null)
+                    /bj));
+            entity.setGoodReputationEfficiency(goodReputationEfficiency);
+
+            //      解决率=已解决状态的导办工单数量/已办结状态工单数量
+            String resolveEfficiency=weekDf.format((float)(iGuideRepairOrderService.countStatisticsNum("7",null,null,null,null,null)
+                    /bj));
+            entity.setResolveEfficiency(resolveEfficiency);
+
+            if(allNum!=0)
+            {
+//              办结率=待评价+已办结状态的导办工单数量/总工单数量
+                String workEfficiency=weekDf.format((float)((iGuideRepairOrderService.countStatisticsNum("4",null,null,null,null,null)
+                        +bj)/allNum));
+                entity.setWorkEfficiency(workEfficiency);
+            }
+        }
+
+        int cs=iGuideRepairOrderService.countStatisticsNum(null,null,null,"2",null,null);
+        if(cs!=0)
+        {
+            //        超时办结率=超时状态下的待评价+已办结状态的导办工单数量/超时状态的导办工单数量
+            String timeoutEfficiency=weekDf.format((float)((iGuideRepairOrderService.countStatisticsNum("4",null,null,"2",null,null)
+                    +iGuideRepairOrderService.countStatisticsNum("3",null,null,null,null,null))
+                    /cs));
+            entity.setTimeoutEfficiency(timeoutEfficiency);
+
+        }
+
+        if(allNum!=0)
+        {
+            //        回复率=最新进展里0条回复的导办工单数量/总工单数量
+            //状态(1待分配  2 待办结 3 已办结 4 待评价 5 已取消 6未解决  7已解决  8 系统自动分配 9 回复   10转派    11手动分配)
+            String reversionRate=weekDf.format((float)(iGuideEvolveService.countStatisticsNum("9",null)/allNum));
+            entity.setReversionRate(reversionRate);
+        }
+
+        return ResultData.success(entity);
+    }
+
+    @ApiOperation("工单  办事指南饼状图数据")
+    @GetMapping("/getPieChart")
+    public ResultData getPieChart()
+    {
+        PieChartAll pieChartAll=new PieChartAll();
+        pieChartAll.setWorkOrderNum(iGuideRepairOrderService.countStatisticsNum("",null,null,null,null,null)+"");
+        pieChartAll.setFingerpostNum(iTransactionEventService.countStatisticsNum(null)+"");
+        List<PieChart> workOrderList=new ArrayList<>();
+        List<PieChart> fingerpostList=new ArrayList<>();
+        List<ClassifyAdministration> oneIds=iClassifyAdministrationService.getClassify(null,"1");
+        for (ClassifyAdministration oneClassify:oneIds)
+        {
+            PieChart workOrder=new PieChart();
+            PieChart fingerpost=new PieChart();
+            workOrder.setName(oneClassify.getClassifyName());
+            fingerpost.setName(oneClassify.getClassifyName());
+            List<ClassifyAdministration> twoIds = iClassifyAdministrationService.getClassify(oneClassify.getId()+"",null);
+
+            List clasIds=new ArrayList();
+
+            clasIds.add(oneClassify.getId());
+            for (ClassifyAdministration classify:twoIds)
+            {
+                clasIds.add(classify.getId());
+            }
+            int workOrderNum=0;
+            int fingerpostNum=0;
+            if(clasIds.size()>0)
+            {
+                workOrderNum=iGuideRepairOrderService.countStatisticsNum(null,null,null,null,null,clasIds);
+                fingerpostNum=iTransactionEventService.countStatisticsNum(clasIds);
+            }
+            workOrder.setNum(workOrderNum+"");
+            fingerpost.setNum(fingerpostNum+"");
+            workOrderList.add(workOrder);
+            fingerpostList.add(fingerpost);
+        }
+
+        pieChartAll.setWorkOrderList(workOrderList);
+        pieChartAll.setFingerpostList(fingerpostList);
+
+        return ResultData.success(pieChartAll);
+    }
+
+
+    @ApiOperation("组织排行榜")
+    @GetMapping("/getOrganization")
+    public ResultData getOrganization()
+    {
 
 
         return ResultData.success();

--
Gitblit v1.7.1