mitao
2025-03-14 08f1b1f1804a8bd833d42f257908d80e88387b55
flower_city/src/main/java/com/dg/core/controller/HomeStatisticsController.java
@@ -48,26 +48,30 @@
    @Autowired
    private ISysUserRecordService iSysUserRecordService;
    @Autowired(required = true)
    IAutomessageSmartConsultingService iAutomessageSmartConsultingService;
    @ApiOperation("首页统计不同状态工单数")
    @GetMapping("/getWorkOrder")
    public ResultData<WorkOrder> 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 待办结 3 已办结 4 待评价 5 已取消)
        workOrder.setAllNum(iGuideRepairOrderService.countStatisticsNum("",null,null,null,null,null,null,null));
        workOrder.setWaitDistribution(iGuideRepairOrderService.countStatisticsNum("1",null,null,null,null,null,null,null));
        workOrder.setWaitDealWith(iGuideRepairOrderService.countStatisticsNum("2",null,null,null,null,null,null,null));
        workOrder.setHaveDealWith(iGuideRepairOrderService.countStatisticsNum("3",null,null,null,null,null,null,null));
        workOrder.setRemainEvaluated(iGuideRepairOrderService.countStatisticsNum("4",null,null,null,null,null,null,null));
        workOrder.setCanceled(iGuideRepairOrderService.countStatisticsNum("5",null,null,null,null,null,null,null));
        // //服务状态(1.已解决 2.未解决)
        workOrder.setUnsolved(iGuideRepairOrderService.countStatisticsNum(null,null,null,null,null,null,"2",null));
        workOrder.setResolved(iGuideRepairOrderService.countStatisticsNum(null,null,null,null,null,null,"1",null));
        //是否超时 (1 未超时   2已超时) 超时未办结
        workOrder.setOvertime(iGuideRepairOrderService.countStatisticsNum(null,null,null,"2",null,null));
        workOrder.setOvertime(iGuideRepairOrderService.countStatisticsNum(null,null,null,"2",null,null,null,null));
//        超时未办结
        workOrder.setOvertimeWaitDealWith(iGuideRepairOrderService.countStatisticsNum("2",null,null,"2",null,null));
        workOrder.setOvertimeWaitDealWith(iGuideRepairOrderService.countStatisticsNum("2",null,null,"2",null,null,null,null));
        return ResultData.success(workOrder);
    }
@@ -79,11 +83,11 @@
        //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));
        timeWorkOrder.setAllNum(iGuideRepairOrderService.countStatisticsNum(null,null,null,null,null,null,null,null));
        timeWorkOrder.setYearNum(iGuideRepairOrderService.countStatisticsNum(null,null,"4",null,null,null,null,null));
        timeWorkOrder.setMonthNum(iGuideRepairOrderService.countStatisticsNum(null,null,"3",null,null,null,null,null));
        timeWorkOrder.setTodayNum(iGuideRepairOrderService.countStatisticsNum(null,null,"1",null,null,null,null,null));
        timeWorkOrder.setYesterdayNum(iGuideRepairOrderService.countStatisticsNum(null,null,"2",null,null,null,null,null));
        return ResultData.success(timeWorkOrder);
    }
@@ -120,49 +124,56 @@
    {
        EfficiencyEntity entity=new EfficiencyEntity();
        //总工单数
        int allNum=iGuideRepairOrderService.countStatisticsNum("",null,null,null,null,null);
        int allNum=iGuideRepairOrderService.countStatisticsNum("",null,null,null,null,null,null,null);
        java.text.DecimalFormat weekDf=new java.text.DecimalFormat("##.##%");//传入格式模板
        int bj=iGuideRepairOrderService.countStatisticsNum("3",null,null,null,null,null);
        int bj=iGuideRepairOrderService.countStatisticsNum("3",null,null,null,null,null,null,null);
        if(bj!=0)
        {
            //        好评率=评价为满意的导办工单数量/已办结状态工单数量
            String goodReputationEfficiency=weekDf.format((float)(iGuideRepairOrderService.countStatisticsNum(null,null,null,null,"1",null)
                    /bj));
            String goodReputationEfficiency=weekDf.format((float)(iGuideRepairOrderService.countStatisticsNum(null,null,null,null,"1",null,null,null)
                    /(float)bj));
            entity.setGoodReputationEfficiency(goodReputationEfficiency);
            //      解决率=已解决状态的导办工单数量/已办结状态工单数量
            String resolveEfficiency=weekDf.format((float)(iGuideRepairOrderService.countStatisticsNum("7",null,null,null,null,null)
                    /bj));
            String resolveEfficiency=weekDf.format((float)(iGuideRepairOrderService.countStatisticsNum(null,null,null,null,null,null,"1",null)
                    /(float)bj));
            entity.setResolveEfficiency(resolveEfficiency);
            if(allNum!=0)
            {
//              办结率=待评价+已办结状态的导办工单数量/总工单数量
                String workEfficiency=weekDf.format((float)((iGuideRepairOrderService.countStatisticsNum("4",null,null,null,null,null)
                        +bj)/allNum));
                String workEfficiency=weekDf.format((float)((iGuideRepairOrderService.countStatisticsNum("4",null,null,null,null,null,null,null)
                        +bj)/(float)allNum));
                entity.setWorkEfficiency(workEfficiency);
            }
        }
        int cs=iGuideRepairOrderService.countStatisticsNum(null,null,null,"2",null,null);
        int cs=iGuideRepairOrderService.countStatisticsNum(null,null,null,"2",null,null,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));
            String timeoutEfficiency=weekDf.format((float)((iGuideRepairOrderService.countStatisticsNum("4",null,null,"2",null,null,null,null)
                    +iGuideRepairOrderService.countStatisticsNum("3",null,null,"2",null,null,null,null))
                    /(float)cs));
            entity.setTimeoutEfficiency(timeoutEfficiency);
        }
        if(allNum!=0)
        {
            //        回复率=最新进展里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);
            String num=(homeStatisticsService.reversionRate("9",null));
            if(!StringUtils.isEmpty(num))
            {
                String reversionRate=weekDf.format(Float.valueOf(num)/(float)allNum);
                entity.setReversionRate(reversionRate);
            }
        }
        return ResultData.success(entity);
@@ -173,8 +184,8 @@
    public ResultData<PieChartAll> getPieChart()
    {
        PieChartAll pieChartAll=new PieChartAll();
        pieChartAll.setWorkOrderNum(iGuideRepairOrderService.countStatisticsNum("",null,null,null,null,null)+"");
        pieChartAll.setFingerpostNum(homeStatisticsService.countStatisticsNum(null)+"");
        pieChartAll.setWorkOrderNum(iGuideRepairOrderService.countStatisticsNum("",null,null,null,null,null,null,null)+"");
        pieChartAll.setFingerpostNum(homeStatisticsService.countStatisticsNum(null,null)+"");
        List<PieChart> workOrderList=new ArrayList<>();
        List<PieChart> fingerpostList=new ArrayList<>();
        List<ClassifyAdministration> oneIds=homeStatisticsService.getClassify(null,"1");
@@ -197,8 +208,8 @@
            int fingerpostNum=0;
            if(clasIds.size()>0)
            {
                workOrderNum=iGuideRepairOrderService.countStatisticsNum(null,null,null,null,null,clasIds);
                fingerpostNum=homeStatisticsService.countStatisticsNum(clasIds);
                workOrderNum=iGuideRepairOrderService.countStatisticsNum(null,null,null,null,null,clasIds,null,null);
                fingerpostNum=homeStatisticsService.countStatisticsNum(clasIds,null);
            }
            workOrder.setNum(workOrderNum+"");
            fingerpost.setNum(fingerpostNum+"");
@@ -242,8 +253,8 @@
                if(allNum>0 && score>0)
                {
                    java.text.DecimalFormat weekDf=new java.text.DecimalFormat("##.##");//传入格式模板
                    String workEfficiency=weekDf.format((float)(score/allNum));
                    java.text.DecimalFormat weekDf=new java.text.DecimalFormat("##.#");//传入格式模板
                    String workEfficiency=weekDf.format((float)score/(float)allNum);
                    bean.setNum(workEfficiency);
                }
            }
@@ -287,22 +298,22 @@
    @GetMapping("/getGuidePlate")
    public TableDataInfo<GuidePlate> getGuidePlate(@RequestParam("type") String type)
    {
        int allNum=homeStatisticsService.staffNum();
        int allNum=homeStatisticsService.staffNum(null);
        if(StringUtils.equals("1",type))
        {
            //安评价
            return getDataTable(homeStatisticsService.score(),allNum);
            return getDataTable(homeStatisticsService.score(null),allNum);
        }
        else if(StringUtils.equals("2",type))
        {
            //2 按办结量
            return getDataTable(homeStatisticsService.guidePlatePeople(),allNum);
            return getDataTable(homeStatisticsService.guidePlatePeople(null),allNum);
        }
        else
        {
            //3 按超时
            return getDataTable(homeStatisticsService.timeout(),allNum);
            return getDataTable(homeStatisticsService.timeout(null),allNum);
        }
    }
@@ -311,14 +322,14 @@
    @GetMapping("/getGuidance")
    public TableDataInfo<Guidance> getGuidance(@RequestParam("type") String type)
    {
        int allNum=homeStatisticsService.countWork();
        int allNum=homeStatisticsService.countWork(null);
        if(StringUtils.equals("1",type))
        {
            return getDataTable(homeStatisticsService.guidanceBrowse(),allNum);
            return getDataTable(homeStatisticsService.guidanceBrowse(null),allNum);
        }
        else
        {
            return getDataTable(homeStatisticsService.guidanceTransaction(),allNum);
            return getDataTable(homeStatisticsService.guidanceTransaction(null),allNum);
        }
    }
@@ -351,7 +362,7 @@
            int num=0;
            if(ids!=null&&ids.size()>0)
            {
                num=iGuideRepairOrderService.countStatisticsNum(null,ids,null,null,null,null);
                num=homeStatisticsService.rangeStatistics(ids);
            }
            range.setNum(num+"");
            rangeStatistics.add(range);
@@ -366,7 +377,7 @@
     * 小程序用户访问量统计1.累计访问量2.本年访问量 3.本月访问量 4.今日访问量 5.昨日访问
     * @return
     */
    @ApiOperation(value = "导办工单按区域统计",response = AppletUserCount.class)
    @ApiOperation(value = "小程序用户访问量统计1.累计访问量2.本年访问量 3.本月访问量 4.今日访问量 5.昨日访问",response = AppletUserCount.class)
    @GetMapping("/selectUserRecordCount")
    public ResultData selectUserRecordCount(){
        return  iSysUserRecordService.selectUserRecordCount();
@@ -385,8 +396,281 @@
    /***************************************************    部门数据统计  start   **********************************************************/
    @ApiOperation("部门数据根据选择的时间段 筛选导办工单数 timeType:1 本年度 15 近15天的   30 近30天的")
    @GetMapping("/department/getSelectionTimeOrder")
    public ResultData<CountList> getDepartmentOrder(@RequestParam("timeType") Integer timeType,@RequestParam("ids") List<String> ids)
    {
        if(ids==null || ids.size()<1)
        {
            return  ResultData.success();
        }
        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",ids,timeType);
        List<CountListNum> listTwo=iGuideRepairOrderService.countListNum("3",ids,timeType);
        CountList countList=new CountList();
        countList.setWaitDealWithList(listOne);
        countList.setHaveDealWith(listTwo);
        return ResultData.success(countList);
    }
    @ApiOperation("部门数据首页统计不同时间段的工单数量")
    @GetMapping("/department/getTimeWorkOrder")
    public ResultData<TimeWorkOrder> getDepartmentTimeWorkOrder(@RequestParam("ids") List<String> ids)
    {
        if(ids==null || ids.size()<1)
        {
            return  ResultData.success();
        }
        //1 今天   2昨天   3本月   4本年度
        //累计全部 本年 本月 今日 昨日
        TimeWorkOrder timeWorkOrder=new TimeWorkOrder();
        timeWorkOrder.setAllNum(iGuideRepairOrderService.countStatisticsNum(null,ids,null,null,null,null,null,null));
        timeWorkOrder.setYearNum(iGuideRepairOrderService.countStatisticsNum(null,ids,"4",null,null,null,null,null));
        timeWorkOrder.setMonthNum(iGuideRepairOrderService.countStatisticsNum(null,ids,"3",null,null,null,null,null));
        timeWorkOrder.setTodayNum(iGuideRepairOrderService.countStatisticsNum(null,ids,"1",null,null,null,null,null));
        timeWorkOrder.setYesterdayNum(iGuideRepairOrderService.countStatisticsNum(null,ids,"2",null,null,null,null,null));
        return ResultData.success(timeWorkOrder);
    }
    @ApiOperation("部门数据首页统计不同状态工单数")
    @GetMapping("/department/getWorkOrder")
    public ResultData<WorkOrder> getDepartmentWorkOrder(@RequestParam("ids") List<String> ids)
    {
        if(ids==null || ids.size()<1)
        {
            return  ResultData.success();
        }
        WorkOrder workOrder=new WorkOrder();
        //状态(1待分配  2 待办结 3 已办结 4 待评价 5 已取消)
        workOrder.setAllNum(iGuideRepairOrderService.countStatisticsNum("",ids,null,null,null,null,null,null));
        workOrder.setWaitDistribution(iGuideRepairOrderService.countStatisticsNum("1",ids,null,null,null,null,null,null));
        workOrder.setWaitDealWith(iGuideRepairOrderService.countStatisticsNum("2",ids,null,null,null,null,null,null));
        workOrder.setHaveDealWith(iGuideRepairOrderService.countStatisticsNum("3",ids,null,null,null,null,null,null));
        workOrder.setRemainEvaluated(iGuideRepairOrderService.countStatisticsNum("4",ids,null,null,null,null,null,null));
        workOrder.setCanceled(iGuideRepairOrderService.countStatisticsNum("5",ids,null,null,null,null,null,null));
        // //服务状态(1.已解决 2.未解决)
        workOrder.setUnsolved(iGuideRepairOrderService.countStatisticsNum(null,ids,null,null,null,null,"2",null));
        workOrder.setResolved(iGuideRepairOrderService.countStatisticsNum(null,ids,null,null,null,null,"1",null));
        //是否超时 (1 未超时   2已超时) 超时未办结
        workOrder.setOvertime(iGuideRepairOrderService.countStatisticsNum(null,ids,null,"2",null,null,null,null));
//        超时未办结
        workOrder.setOvertimeWaitDealWith(iGuideRepairOrderService.countStatisticsNum("2",ids,null,"2",null,null,null,null));
        return ResultData.success(workOrder);
    }
    @ApiOperation("部门数据获取效率比值")
    @GetMapping("/department/getEfficiency")
    public ResultData<EfficiencyEntity> getDepartmentEfficiency(@RequestParam("ids") List<String> ids)
    {
        if(ids==null || ids.size()<1)
        {
            return  ResultData.success();
        }
        EfficiencyEntity entity=new EfficiencyEntity();
        //总工单数
        int allNum=iGuideRepairOrderService.countStatisticsNum("",ids,null,null,null,null,null,null);
        java.text.DecimalFormat weekDf=new java.text.DecimalFormat("##.##%");//传入格式模板
        int bj=iGuideRepairOrderService.countStatisticsNum("3",ids,null,null,null,null,null,null);
        if(bj!=0)
        {
            //        好评率=评价为满意的导办工单数量/已办结状态工单数量
            String goodReputationEfficiency=weekDf.format((float)(iGuideRepairOrderService.countStatisticsNum(null,ids,null,null,"1",null,null,null)
                    /(float)bj));
            entity.setGoodReputationEfficiency(goodReputationEfficiency);
            //      解决率=已解决状态的导办工单数量/已办结状态工单数量
            String resolveEfficiency=weekDf.format((float)(iGuideRepairOrderService.countStatisticsNum(null,ids,null,null,null,null,"1",null)
                    /(float)bj));
            entity.setResolveEfficiency(resolveEfficiency);
            if(allNum!=0)
            {
//              办结率=待评价+已办结状态的导办工单数量/总工单数量
                String workEfficiency=weekDf.format((float)((iGuideRepairOrderService.countStatisticsNum("4",ids,null,null,null,null,null,null)
                        +bj)/(float)allNum));
                entity.setWorkEfficiency(workEfficiency);
            }
        }
        int cs=iGuideRepairOrderService.countStatisticsNum(null,ids,null,"2",null,null,null,null);
        if(cs!=0)
        {
            //        超时办结率=超时状态下的待评价+已办结状态的导办工单数量/超时状态的导办工单数量
            String timeoutEfficiency=weekDf.format((float)((iGuideRepairOrderService.countStatisticsNum("4",ids,null,"2",null,null,null,null)
                    +iGuideRepairOrderService.countStatisticsNum("3",ids,null,"2",null,null,null,null))
                    /(float)cs));
            entity.setTimeoutEfficiency(timeoutEfficiency);
        }
        if(allNum!=0)
        {
            //        回复率=最新进展里大于0条回复的导办工单数量/总工单数量
            //状态(1待分配  2 待办结 3 已办结 4 待评价 5 已取消 6未解决  7已解决  8 系统自动分配 9 回复   10转派    11手动分配)
            String num=(homeStatisticsService.reversionRate("9",null));
            if(!StringUtils.isEmpty(num))
            {
                String reversionRate=weekDf.format(Float.valueOf(num)/(float)allNum);
                entity.setReversionRate(reversionRate);
            }
        }
        return ResultData.success(entity);
    }
    @ApiOperation("部门数据 工单  办事指南饼状图数据")
    @GetMapping("/department/getPieChart")
    public ResultData<PieChartAll> getDepartmentPieChart(@RequestParam("ids") List<String> ids)
    {
        if(ids==null || ids.size()<1)
        {
            return  ResultData.success();
        }
        PieChartAll pieChartAll=new PieChartAll();
        pieChartAll.setWorkOrderNum(iGuideRepairOrderService.countStatisticsNum("",ids,null,null,null,null,null,null)+"");
        pieChartAll.setFingerpostNum(homeStatisticsService.countStatisticsNum(null,ids)+"");
        List<PieChart> workOrderList=new ArrayList<>();
        List<PieChart> fingerpostList=new ArrayList<>();
        List<ClassifyAdministration> oneIds=homeStatisticsService.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 = homeStatisticsService.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,ids,null,null,null,clasIds,null,null);
                fingerpostNum=homeStatisticsService.countStatisticsNum(clasIds,ids);
            }
            workOrder.setNum(workOrderNum+"");
            fingerpost.setNum(fingerpostNum+"");
            workOrderList.add(workOrder);
            fingerpostList.add(fingerpost);
        }
        pieChartAll.setWorkOrderList(workOrderList);
        pieChartAll.setFingerpostList(fingerpostList);
        return ResultData.success(pieChartAll);
    }
    @ApiOperation("部门数据导办人员排行榜 type 1 安评价   2按工单量  3按办结量  4 按未办结量 5 按超时")
    @GetMapping("/department/getGuidePlate")
    public TableDataInfo<GuidePlate> getDepartmentGuidePlate(@RequestParam("type") String type,@RequestParam("ids") List<String> ids)
    {
        if(ids==null || ids.size()<1)
        {
            return  getDataTable(new ArrayList<>());
        }
        int allNum=homeStatisticsService.staffNum(ids);
        if(StringUtils.equals("1",type))
        {
            //安评价
            return getDataTable(homeStatisticsService.score(ids),allNum);
        }
        else if(StringUtils.equals("2",type))
        {
            //2按工单量
            return getDataTable(homeStatisticsService.workunit(ids),allNum);
        }
        else if(StringUtils.equals("3",type))
        {
            //3 按办结量
            return getDataTable(homeStatisticsService.guidePlatePeople(ids),allNum);
        }
        else if(StringUtils.equals("4",type))
        {
            //4按未办结量
            return getDataTable(homeStatisticsService.tosettled(ids),allNum);
        }
        else
        {
            //5 按超时
            return getDataTable(homeStatisticsService.timeout(ids),allNum);
        }
    }
    @ApiOperation("部门数据办事指南排行榜 type 1 按浏览量   2 按办结量")
    @GetMapping("/department/getGuidance")
    public TableDataInfo<Guidance> getDepartmentGuidance(@RequestParam("type") String type,@RequestParam("ids") List<String> ids)
    {
        if(ids==null || ids.size()<1)
        {
            return  getDataTable(new ArrayList<>());
        }
        int allNum=homeStatisticsService.countWork(ids);
        if(StringUtils.equals("1",type))
        {
            return getDataTable(homeStatisticsService.guidanceBrowse(ids),allNum);
        }
        else
        {
            return getDataTable(homeStatisticsService.guidanceTransaction(ids),allNum);
        }
    }
    /***************************************************    部门数据统计 end   **********************************************************/
    /**
     * 统计访问量
     * @return
     */
    @ApiOperation("统计访问量")
    @GetMapping("/countSmartConsulting")
    public ResultData countSmartConsulting(){
       return  ResultData.success(iAutomessageSmartConsultingService.countSmartConsulting()) ;
    }