package com.dg.core.controller;
|
|
import com.dg.core.ResultData;
|
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();
|
}
|
|
|
|
}
|