From 94e3a209bb9a31c4ddbd31494bb1628f6fe2e96e Mon Sep 17 00:00:00 2001 From: lidongdong <1459917685@qq.com> Date: 星期三, 12 十月 2022 17:54:49 +0800 Subject: [PATCH] 新增首页工单 办事指南排行榜接口 导办人员排行榜接口 组织排行榜接口 新增办事指南统计接口 导办人员统计接口 组织胖行榜统计接口 --- flower_city/src/main/java/com/dg/core/controller/HomeStatisticsController.java | 310 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 301 insertions(+), 9 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..03a9ca0 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,37 +1,329 @@ 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.*; +import com.dg.core.util.TableDataInfo; 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.*; @Api(tags = {"首页统计接口"}) @RestController @RequestMapping("/Home") -public class HomeStatisticsController +public class HomeStatisticsController extends BaseController { + //导办工单接口 + @Autowired + IGuideRepairOrderService iGuideRepairOrderService; + + //导办进展 + @Autowired + IGuideEvolveService iGuideEvolveService; + + //分类 + @Autowired + IClassifyAdministrationService iClassifyAdministrationService; + + @Autowired + ITransactionEventService iTransactionEventService; + + @Autowired + HomeStatisticsService homeStatisticsService; + @Autowired + com.dg.core.service.ISysUserService IUserService; + @Autowired + IOrganizationChartService iOrganizationChartService; - - + @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)); - - - - return ResultData.success(); + //是否超时 (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("组织排行榜 type 1 安评价 2 按办结量") + @GetMapping("/getOrganization") + public TableDataInfo getOrganization(@RequestParam("type") String type) + { + List<OrganizationEntity> guidePlates=homeStatisticsService.getDepartment(); + + if(StringUtils.equals("1",type)) + { + for (OrganizationEntity bean:guidePlates) + { + bean.setNum(0+""); + List<String> ids=iOrganizationChartService.getIds(bean.getId()+""); + + //总评分 + String scoreNum=homeStatisticsService.organizationScore(ids)+""; + int score=0; + if(!StringUtils.isEmpty(scoreNum) && !StringUtils.equals("null",scoreNum)) + { + score=Integer.valueOf(scoreNum); + } + + //总数量 + int allNum=homeStatisticsService.organizationNum(ids); + + if(allNum>0 && score>0) + { + java.text.DecimalFormat weekDf=new java.text.DecimalFormat("##.##");//传入格式模板 + String workEfficiency=weekDf.format((float)(score/allNum)); + bean.setNum(workEfficiency); + } + } + } + else + { + for (OrganizationEntity bean:guidePlates) + { + bean.setNum(0+""); + List<String> ids=iOrganizationChartService.getIds(bean.getId()+""); + //总数量 + int allNum=homeStatisticsService.organizationNum(ids); + if(allNum>0) + { + bean.setNum(allNum+""); + } + } + } + + OrganizationEntity entity=null; + for(int i = 0 ;i< guidePlates.size() -1; i++) { + for (int j = 0; j < guidePlates.size() - 1 - i; j++) { + + if(Float.valueOf(guidePlates.get(j).getNum())>Float.valueOf(guidePlates.get(j+1).getNum())) + { + entity=guidePlates.get(j); + guidePlates.set(j,guidePlates.get(j+1)); + guidePlates.set(j+1,entity); + } + } + } + + Collections.reverse(guidePlates); + + return getDataTable(guidePlates,guidePlates.size()); + } + + + + @ApiOperation("导办人员排行榜 type 1 安评价 2 按办结量 3 按超时") + @GetMapping("/getGuidePlate") + public TableDataInfo getGuidePlate(@RequestParam("type") String type) + { + int allNum=homeStatisticsService.staffNum(); + + if(StringUtils.equals("1",type)) + { + //安评价 + return getDataTable(homeStatisticsService.score(),allNum); + } + else if(StringUtils.equals("2",type)) + { + //2 按办结量 + return getDataTable(homeStatisticsService.guidePlatePeople(),allNum); + } + else + { + //3 按超时 + return getDataTable(homeStatisticsService.timeout(),allNum); + } + } + + + + @ApiOperation("办事指南排行榜 type 1 按浏览量 2 按办结量") + @GetMapping("/getGuidance") + public TableDataInfo getGuidance(@RequestParam("type") String type) + { + int allNum=homeStatisticsService.countWork(); + if(StringUtils.equals("1",type)) + { + return getDataTable(homeStatisticsService.guidanceBrowse(),allNum); + } + else + { + return getDataTable(homeStatisticsService.guidanceTransaction(),allNum); + } + + } + + + + } -- Gitblit v1.7.1