fengjin
2022-10-11 5dbea4c452f77c5458e55762c94c2f830eb98617
flower_city/src/main/java/com/dg/core/controller/HomeStatisticsController.java
@@ -1,10 +1,8 @@
package com.dg.core.controller;
import com.dg.core.ResultData;
import com.dg.core.db.gen.entity.CountList;
import com.dg.core.db.gen.entity.CountListNum;
import com.dg.core.db.gen.entity.TimeWorkOrder;
import com.dg.core.db.gen.entity.WorkOrder;
import com.dg.core.db.gen.entity.*;
import com.dg.core.service.IGuideEvolveService;
import com.dg.core.service.IGuideRepairOrderService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -23,27 +21,33 @@
@RequestMapping("/Home")
public class HomeStatisticsController
{
    //导办工单接口
    @Autowired
    IGuideRepairOrderService iGuideRepairOrderService;
    //导办进展
    @Autowired
    IGuideEvolveService iGuideEvolveService;
    @ApiOperation("首页统计不同状态工单数")
    @GetMapping("/getWorkOrder")
    public ResultData getWorkOrder()
    {
        WorkOrder workOrder=new WorkOrder();
        //状态(1待分配  2 待办结 3 已办结 4 待评价 5 已取消6 已超时   7超时未办结  8未解决  9已解决)
        workOrder.setAllNum(iGuideRepairOrderService.countStatisticsNum("",null,null));
        workOrder.setWaitDistribution(iGuideRepairOrderService.countStatisticsNum("1",null,null));
        workOrder.setWaitDealWith(iGuideRepairOrderService.countStatisticsNum("2",null,null));
        workOrder.setHaveDealWith(iGuideRepairOrderService.countStatisticsNum("3",null,null));
        workOrder.setRemainEvaluated(iGuideRepairOrderService.countStatisticsNum("4",null,null));
        workOrder.setCanceled(iGuideRepairOrderService.countStatisticsNum("5",null,null));
        workOrder.setOvertime(iGuideRepairOrderService.countStatisticsNum("6",null,null));
        workOrder.setOvertimeWaitDealWith(iGuideRepairOrderService.countStatisticsNum("7",null,null));
        workOrder.setUnsolved(iGuideRepairOrderService.countStatisticsNum("8",null,null));
        workOrder.setResolved(iGuideRepairOrderService.countStatisticsNum("9",null,null));
        //状态(1待分配  2 待办结 3 已办结 4 待评价 5 已取消  6未解决  7已解决)
        workOrder.setAllNum(iGuideRepairOrderService.countStatisticsNum("",null,null,null,null));
        workOrder.setWaitDistribution(iGuideRepairOrderService.countStatisticsNum("1",null,null,null,null));
        workOrder.setWaitDealWith(iGuideRepairOrderService.countStatisticsNum("2",null,null,null,null));
        workOrder.setHaveDealWith(iGuideRepairOrderService.countStatisticsNum("3",null,null,null,null));
        workOrder.setRemainEvaluated(iGuideRepairOrderService.countStatisticsNum("4",null,null,null,null));
        workOrder.setCanceled(iGuideRepairOrderService.countStatisticsNum("5",null,null,null,null));
        workOrder.setUnsolved(iGuideRepairOrderService.countStatisticsNum("6",null,null,null,null));
        workOrder.setResolved(iGuideRepairOrderService.countStatisticsNum("7",null,null,null,null));
        //是否超时 (1 未超时   2已超时) 超时未办结
        workOrder.setOvertime(iGuideRepairOrderService.countStatisticsNum(null,null,null,"2",null));
//        超时未办结
        workOrder.setOvertimeWaitDealWith(iGuideRepairOrderService.countStatisticsNum("2",null,null,"2",null));
        return ResultData.success(workOrder);
    }
@@ -55,11 +59,11 @@
        //1 今天   2昨天   3本月   4本年度
        //累计全部 本年 本月 今日 昨日
        TimeWorkOrder timeWorkOrder=new TimeWorkOrder();
        timeWorkOrder.setAllNum(iGuideRepairOrderService.countStatisticsNum(null,null,null));
        timeWorkOrder.setYearNum(iGuideRepairOrderService.countStatisticsNum(null,null,"4"));
        timeWorkOrder.setMonthNum(iGuideRepairOrderService.countStatisticsNum(null,null,"3"));
        timeWorkOrder.setTodayNum(iGuideRepairOrderService.countStatisticsNum(null,null,"1"));
        timeWorkOrder.setYesterdayNum(iGuideRepairOrderService.countStatisticsNum(null,null,"2"));
        timeWorkOrder.setAllNum(iGuideRepairOrderService.countStatisticsNum(null,null,null,null,null));
        timeWorkOrder.setYearNum(iGuideRepairOrderService.countStatisticsNum(null,null,"4",null,null));
        timeWorkOrder.setMonthNum(iGuideRepairOrderService.countStatisticsNum(null,null,"3",null,null));
        timeWorkOrder.setTodayNum(iGuideRepairOrderService.countStatisticsNum(null,null,"1",null,null));
        timeWorkOrder.setYesterdayNum(iGuideRepairOrderService.countStatisticsNum(null,null,"2",null,null));
        return ResultData.success(timeWorkOrder);
    }
@@ -90,6 +94,66 @@
    @ApiOperation("获取效率比值")
    @GetMapping("/getEfficiency")
    public ResultData getEfficiency()
    {
        EfficiencyEntity entity=new EfficiencyEntity();
        //总工单数
        int allNum=iGuideRepairOrderService.countStatisticsNum("",null,null,null,null);
        java.text.DecimalFormat weekDf=new java.text.DecimalFormat("##.##%");//传入格式模板
        int bj=iGuideRepairOrderService.countStatisticsNum("3",null,null,null,null);
        if(bj!=0)
        {
            //        好评率=评价为满意的导办工单数量/已办结状态工单数量
            String goodReputationEfficiency=weekDf.format((float)(iGuideRepairOrderService.countStatisticsNum(null,null,null,null,"1")
                    /bj));
            entity.setGoodReputationEfficiency(goodReputationEfficiency);
            //      解决率=已解决状态的导办工单数量/已办结状态工单数量
            String resolveEfficiency=weekDf.format((float)(iGuideRepairOrderService.countStatisticsNum("7",null,null,null,null)
                    /bj));
            entity.setResolveEfficiency(resolveEfficiency);
            if(allNum!=0)
            {
//              办结率=待评价+已办结状态的导办工单数量/总工单数量
                String workEfficiency=weekDf.format((float)((iGuideRepairOrderService.countStatisticsNum("4",null,null,null,null)
                        +bj)/allNum));
                entity.setWorkEfficiency(workEfficiency);
            }
        }
        int cs=iGuideRepairOrderService.countStatisticsNum(null,null,null,"2",null);
        if(cs!=0)
        {
            //        超时办结率=超时状态下的待评价+已办结状态的导办工单数量/超时状态的导办工单数量
            String timeoutEfficiency=weekDf.format((float)((iGuideRepairOrderService.countStatisticsNum("4",null,null,"2",null)
                    +iGuideRepairOrderService.countStatisticsNum("3",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);
    }
}