From 1fb23cbeeaaeda0a66cf8fe8977c3f5915743cc7 Mon Sep 17 00:00:00 2001 From: fengjin <1435304038@qq.com> Date: 星期五, 21 十月 2022 15:13:10 +0800 Subject: [PATCH] Merge branch 'zigonggao_dev' into huacheng_test --- flower_city/src/main/java/com/dg/core/controller/HomeStatisticsController.java | 376 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 368 insertions(+), 8 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..31ed007 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,397 @@ 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.db.manual.pojo.AppletUserCount; +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 + HomeStatisticsService homeStatisticsService; + @Autowired + com.dg.core.service.ISysUserService IUserService; + @Autowired + IOrganizationChartService iOrganizationChartService; + @Autowired + IAreaCodeService iAreaCodeService; + + @Autowired + private ISysUserRecordService iSysUserRecordService; + + + @ApiOperation("首页统计不同状态工单数") @GetMapping("/getWorkOrder") - public ResultData getWorkOrder() + public ResultData<WorkOrder> getWorkOrder() { - WorkOrder workOrder=new WorkOrder(); + //状态(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)); - - - - return ResultData.success(); + //是否超时 (1 未超时 2已超时) 超时未办结 + workOrder.setOvertime(iGuideRepairOrderService.countStatisticsNum(null,null,null,"2",null,null,null,null)); +// 超时未办结 + workOrder.setOvertimeWaitDealWith(iGuideRepairOrderService.countStatisticsNum("2",null,null,"2",null,null,null,null)); + return ResultData.success(workOrder); } + @ApiOperation("首页统计不同时间段的工单数量") + @GetMapping("/getTimeWorkOrder") + public ResultData<TimeWorkOrder> getTimeWorkOrder() + { + //1 今天 2昨天 3本月 4本年度 + //累计全部 本年 本月 今日 昨日 + TimeWorkOrder timeWorkOrder=new TimeWorkOrder(); + 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); + } + + + @ApiOperation("根据选择的时间段 筛选导办工单数 timeType:1 本年度 15 近15天的 30 近30天的") + @GetMapping("/getSelectionTimeOrder") + public ResultData<CountList> 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<EfficiencyEntity> getEfficiency() + { + EfficiencyEntity entity=new EfficiencyEntity(); + //总工单数 + 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,null,null); + if(bj!=0) + { + // 好评率=评价为满意的导办工单数量/已办结状态工单数量 + 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(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,null,null) + +bj)/(float)allNum)); + entity.setWorkEfficiency(workEfficiency); + } + } + + 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,null,null) + +iGuideRepairOrderService.countStatisticsNum("3",null,null,null,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 reversionRate=weekDf.format((float)(homeStatisticsService.reversionRate("9",null)/(float)allNum)); + entity.setReversionRate(reversionRate); + } + + return ResultData.success(entity); + } + + @ApiOperation("工单 办事指南饼状图数据") + @GetMapping("/getPieChart") + public ResultData<PieChartAll> getPieChart() + { + PieChartAll pieChartAll=new PieChartAll(); + pieChartAll.setWorkOrderNum(iGuideRepairOrderService.countStatisticsNum("",null,null,null,null,null,null,null)+""); + pieChartAll.setFingerpostNum(homeStatisticsService.countStatisticsNum(null)+""); + 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,null,null,null,null,clasIds,null,null); + fingerpostNum=homeStatisticsService.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<OrganizationEntity> 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<GuidePlate> 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<Guidance> 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); + } + + } + + + + @ApiOperation("导办工单按区域统计") + @GetMapping("/getRangeStatistics") + public TableDataInfo<RangeStatistics> getRangeStatistics() + { + List<AreaCode2022> code2022s=iAreaCodeService.getListByPCode("510400000000"); + + List<RangeStatistics> rangeStatistics=new ArrayList<>(); + + for (AreaCode2022 bean:code2022s) + { + RangeStatistics range=new RangeStatistics(); + range.setName(bean.getName()); + + List<String> ids; + + if(bean.getCode()==510401000000L) + { + ids=homeStatisticsService.countId(""); + } + else + { + ids=homeStatisticsService.countId(bean.getCode()+""); + } + int num=0; + if(ids!=null&&ids.size()>0) + { + num=iGuideRepairOrderService.countStatisticsNum(null,ids,null,null,null,null,null,null); + } + range.setNum(num+""); + rangeStatistics.add(range); + } + + + return getDataTable(rangeStatistics); + } + + + /** + * 小程序用户访问量统计1.累计访问量2.本年访问量 3.本月访问量 4.今日访问量 5.昨日访问 + * @return + */ + @ApiOperation(value = "小程序用户访问量统计1.累计访问量2.本年访问量 3.本月访问量 4.今日访问量 5.昨日访问",response = AppletUserCount.class) + @GetMapping("/selectUserRecordCount") + public ResultData selectUserRecordCount(){ + return iSysUserRecordService.selectUserRecordCount(); + } + + /** + * 小程序用户访问量统计1.近15天 2.近30天 3.近一年 + * @return + */ + @ApiOperation(value = "小程序用户访问量统计1.近15天 2.近30天 3.近一年",response = AppletUserCount.class) + @GetMapping("/selectByDateType") + public ResultData selectByDateType(@RequestParam("dateType") Integer dateType){ + return iSysUserRecordService.selectByDateType(dateType); + } + + + + + + + + + + + } -- Gitblit v1.7.1