mirror of
https://gitee.com/elegant_wings/dbd-meeting.git
synced 2025-06-21 17:09:36 +08:00
更改统计接口
This commit is contained in:
parent
ad8a38fb97
commit
6ae3116e45
@ -84,20 +84,6 @@ public class RepairController extends BaseController {
|
||||
return toAjax(repairService.eval(repairDTO.getRepair(), userId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 工单列表
|
||||
* menu:1.报修查询,3派单入口,5维修入口, 7 管理员,9 楼层管理员
|
||||
* <p>
|
||||
* 报修查询:全部、处理中、待评价、已评价、无效申请 type对应值:all、process、evaling、evaled、invalid
|
||||
* 派单入口:重新派单、待派单、已派单、已关闭(无效申请) type对应值:anew、wait、already、close
|
||||
* 维修入口:待完成、进行中、已完成 type对应值:wait、working、close
|
||||
* 管理员:重派单,全部,无效申请 type对应值:anew、all、invalid 【小程序暂时用不到】
|
||||
* 楼层管理员:全部、无效申请 type对应值:all、invalid
|
||||
*
|
||||
* name : 工单描述搜索关键字
|
||||
* </p>
|
||||
*/
|
||||
|
||||
/**
|
||||
* 工单列表
|
||||
* role 1.普通用户,3派单员,5维修人员, 7管理员, 9 楼层管理员
|
||||
|
@ -9,11 +9,13 @@ import com.ics.admin.service.IRepairService;
|
||||
import com.ics.admin.service.IRepairStatsService;
|
||||
import com.ics.common.core.controller.BaseController;
|
||||
import com.ics.common.core.domain.R;
|
||||
import com.ics.common.utils.DateUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.wf.jwtp.annotation.RequiresPermissions;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@ -99,49 +101,89 @@ public class RepairStatsController extends BaseController {
|
||||
|
||||
/**
|
||||
* 第二、三行 工单统计、工单完成情况、评价情况
|
||||
* 日期格式示例:2024-08-23
|
||||
* @param type repair 工单统计 end 工单完成情况 eval 评价情况
|
||||
*/
|
||||
@RequiresPermissions(value = {"repair:manage:operator"})
|
||||
@RequestMapping("repairStats")
|
||||
public R repairStats() {
|
||||
return R.ok().put("currentMonth", repairWorkerStatsService.repairStats(true))
|
||||
.put("currentYear", repairWorkerStatsService.repairStats(false));
|
||||
public R repairStats(String startDate, String endDate, String type) {
|
||||
Date start, end;
|
||||
try {
|
||||
start = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, startDate + " 00:00:00");
|
||||
end = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, endDate + " 23:59:59");
|
||||
} catch (Exception e) {
|
||||
return R.error("参数错误");
|
||||
}
|
||||
return R.ok().put("data", repairWorkerStatsService.repairStats(start, end, type));
|
||||
}
|
||||
|
||||
/**
|
||||
* 第四行 左侧 楼层负责人情况统计
|
||||
* 日期格式示例:2024-08-23
|
||||
*/
|
||||
@RequiresPermissions(value = {"repair:manage:operator"})
|
||||
@RequestMapping("floorStats")
|
||||
public R floorStats(String date) {
|
||||
return R.ok().put("data", repairWorkerStatsService.floorStats(date));
|
||||
public R floorStats(String startDate, String endDate) {
|
||||
Date start, end;
|
||||
try {
|
||||
start = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, startDate + " 00:00:00");
|
||||
end = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, endDate + " 23:59:59");
|
||||
} catch (Exception e) {
|
||||
return R.error("参数错误");
|
||||
}
|
||||
return R.ok().put("data", repairWorkerStatsService.floorStats(start, end));
|
||||
}
|
||||
|
||||
/**
|
||||
* 第四行 右上 设备故障统计
|
||||
* 日期格式示例:2024-08-23
|
||||
*/
|
||||
@RequiresPermissions(value = {"repair:manage:operator"})
|
||||
@RequestMapping("deviceStats")
|
||||
public R deviceStats(String date) {
|
||||
return R.ok().put("data", repairWorkerStatsService.deviceStats(date));
|
||||
public R deviceStats(String startDate, String endDate) {
|
||||
Date start, end;
|
||||
try {
|
||||
start = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, startDate + " 00:00:00");
|
||||
end = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, endDate + " 23:59:59");
|
||||
} catch (Exception e) {
|
||||
return R.error("参数错误");
|
||||
}
|
||||
return R.ok().put("data", repairWorkerStatsService.deviceStats(start, end));
|
||||
}
|
||||
|
||||
/**
|
||||
* 第四行 右下 故障类型统计
|
||||
* 日期格式示例:2024-08-23
|
||||
*/
|
||||
@RequiresPermissions(value = {"repair:manage:operator"})
|
||||
@RequestMapping("failureStats")
|
||||
public R failureStats(String date) {
|
||||
return R.ok().put("data", repairWorkerStatsService.failureStats(date));
|
||||
public R failureStats(String startDate, String endDate) {
|
||||
Date start, end;
|
||||
try {
|
||||
start = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, startDate + " 00:00:00");
|
||||
end = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, endDate + " 23:59:59");
|
||||
} catch (Exception e) {
|
||||
return R.error("参数错误");
|
||||
}
|
||||
return R.ok().put("data", repairWorkerStatsService.failureStats(start, end));
|
||||
}
|
||||
|
||||
/**
|
||||
* 第五行 设备、品牌、评价 统计
|
||||
* 日期格式示例:2024-08-23
|
||||
*/
|
||||
@RequiresPermissions(value = {"repair:manage:operator"})
|
||||
@RequestMapping("deviceTypeStats")
|
||||
public R deviceTypeStats(String date) {
|
||||
public R deviceTypeStats(String startDate, String endDate) {
|
||||
Date start, end;
|
||||
try {
|
||||
start = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, startDate + " 00:00:00");
|
||||
end = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, endDate + " 23:59:59");
|
||||
} catch (Exception e) {
|
||||
return R.error("参数错误");
|
||||
}
|
||||
startPage();
|
||||
return result(repairWorkerStatsService.deviceTypeStats(date));
|
||||
return result(repairWorkerStatsService.deviceTypeStats(start, end));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -43,28 +43,28 @@ public interface IRepairStatsService {
|
||||
/**
|
||||
* 第二、三行 工单统计、工单完成情况、评价情况
|
||||
*
|
||||
* @param isMonth true 本月,false 本年
|
||||
* @param type repair 工单统计 end 工单完成情况 eval 评价情况
|
||||
* @return
|
||||
*/
|
||||
Map<String, Object> repairStats(boolean isMonth);
|
||||
Map<String, Object> repairStats(Date start, Date end, String type);
|
||||
|
||||
/**
|
||||
* 第四行 左侧 楼层负责人情况统计
|
||||
*/
|
||||
Map<String, Object> floorStats(String date);
|
||||
Map<String, Object> floorStats(Date start, Date end);
|
||||
|
||||
/**
|
||||
* 第四行 右上 设备故障统计
|
||||
*/
|
||||
Map<String, Object> deviceStats(String date);
|
||||
Map<String, Object> deviceStats(Date start, Date end);
|
||||
|
||||
/**
|
||||
* 第四行 右下 故障类型统计
|
||||
*/
|
||||
List<Map<String, Object>> failureStats(String date);
|
||||
List<Map<String, Object>> failureStats(Date start, Date end);
|
||||
|
||||
/**
|
||||
* 第五行 设备、品牌、评价 统计
|
||||
*/
|
||||
List<RepairDivceTypeStatsVo> deviceTypeStats(String date);
|
||||
List<RepairDivceTypeStatsVo> deviceTypeStats(Date start, Date end);
|
||||
}
|
||||
|
@ -62,15 +62,14 @@ public class RepairStatsServiceImpl implements IRepairStatsService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> repairStats(boolean isMonth) {
|
||||
List<RepairStatsVo> list = isMonth ?
|
||||
repairStatsMapper.repairStats(getDate(null, 2, true), getDate(null, 2, false)) :
|
||||
repairStatsMapper.repairStats(getDate(null, 3, true), getDate(null, 3, false));
|
||||
|
||||
if (list == null || list.size() == 0) return null;
|
||||
RepairStatsVo repairStatsVo = list.get(0);
|
||||
public Map<String, Object> repairStats(Date start, Date end, String type) {
|
||||
List<RepairStatsVo> list = repairStatsMapper.repairStats(start, end);
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
if (list == null || list.size() == 0) return map;
|
||||
RepairStatsVo repairStatsVo = list.get(0);
|
||||
if ("repair".equals(type)) {
|
||||
map.put("stats", repairStatsVo);
|
||||
} else if ("end".equals(type)) {
|
||||
List<Map<String, Object>> wc = new ArrayList<>();
|
||||
wc.add(getMap("已完成", repairStatsVo.getWc()));
|
||||
wc.add(getMap("未完成", repairStatsVo.getZs() - repairStatsVo.getWc()));
|
||||
@ -81,19 +80,20 @@ public class RepairStatsServiceImpl implements IRepairStatsService {
|
||||
timeout.add(getMap("轻微超时", repairStatsVo.getLtimeout()));
|
||||
timeout.add(getMap("未超时", repairStatsVo.getNtimeout()));
|
||||
map.put("timeout", timeout);
|
||||
} else if ("eval".equals(type)) {
|
||||
List<Map<String, Object>> pj = new ArrayList<>();
|
||||
pj.add(getMap("好评", repairStatsVo.getH()));
|
||||
pj.add(getMap("中评", repairStatsVo.getM()));
|
||||
pj.add(getMap("差评", repairStatsVo.getL()));
|
||||
map.put("pj", pj);
|
||||
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> floorStats(String date) {
|
||||
Date[] dates = getStartEndTime(date);
|
||||
if (dates == null) return null;
|
||||
List<RepairFloorStatsVo> list = repairStatsMapper.floorStats(dates[0], dates[1]);
|
||||
public Map<String, Object> floorStats(Date start, Date end) {
|
||||
List<RepairFloorStatsVo> list = repairStatsMapper.floorStats(start, end);
|
||||
List<String> y = new ArrayList<>();
|
||||
List<Long> zs = new ArrayList<>();
|
||||
List<Long> wc = new ArrayList<>();
|
||||
@ -110,10 +110,8 @@ public class RepairStatsServiceImpl implements IRepairStatsService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> deviceStats(String date) {
|
||||
Date[] dates = getStartEndTime(date);
|
||||
if (dates == null) return null;
|
||||
List<RepairFloorStatsVo> list = repairStatsMapper.deviceStats(dates[0], dates[1]);
|
||||
public Map<String, Object> deviceStats(Date start, Date end) {
|
||||
List<RepairFloorStatsVo> list = repairStatsMapper.deviceStats(start, end);
|
||||
List<String> x = new ArrayList<>();
|
||||
List<Long> zs = new ArrayList<>();
|
||||
List<Long> wc = new ArrayList<>();
|
||||
@ -130,10 +128,8 @@ public class RepairStatsServiceImpl implements IRepairStatsService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> failureStats(String date) {
|
||||
Date[] dates = getStartEndTime(date);
|
||||
if (dates == null) return null;
|
||||
List<RepairFloorStatsVo> list = repairStatsMapper.failureStats(dates[0], dates[1]);
|
||||
public List<Map<String, Object>> failureStats(Date start, Date end) {
|
||||
List<RepairFloorStatsVo> list = repairStatsMapper.failureStats(start, end);
|
||||
List<Map<String, Object>> data = new ArrayList<>();
|
||||
for (RepairFloorStatsVo repairFloorStatsVo : list) {
|
||||
data.add(getMap(repairFloorStatsVo.getName(), repairFloorStatsVo.getZs()));
|
||||
@ -142,10 +138,8 @@ public class RepairStatsServiceImpl implements IRepairStatsService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<RepairDivceTypeStatsVo> deviceTypeStats(String date) {
|
||||
Date[] dates = getStartEndTime(date);
|
||||
if (dates == null) return null;
|
||||
List<RepairDivceTypeStatsVo> list = repairStatsMapper.deviceTypeStats(dates[0], dates[1]);
|
||||
public List<RepairDivceTypeStatsVo> deviceTypeStats(Date start, Date end) {
|
||||
List<RepairDivceTypeStatsVo> list = repairStatsMapper.deviceTypeStats(start, end);
|
||||
for (RepairDivceTypeStatsVo rdtStatsVo : list) {
|
||||
rdtStatsVo.setWcl(compute(rdtStatsVo.getClosed(), rdtStatsVo.getZs()));
|
||||
rdtStatsVo.setHl(compute(rdtStatsVo.getH(), rdtStatsVo.getPj()));
|
||||
@ -169,25 +163,25 @@ public class RepairStatsServiceImpl implements IRepairStatsService {
|
||||
/**
|
||||
* 解析开始时间和结束时间
|
||||
*/
|
||||
private Date[] getStartEndTime(String date) {
|
||||
if (StringUtils.isBlank(date)) return null;
|
||||
Date startTime, endTime;
|
||||
try {
|
||||
if (date.indexOf("-") > 1) {//年月
|
||||
String[] ym = date.split("-");
|
||||
Calendar calendar = getCalendar(Integer.valueOf(ym[0]), Integer.valueOf(ym[1]));
|
||||
startTime = getDate(calendar, 2, true);
|
||||
endTime = getDate(calendar, 2, false);
|
||||
} else {//年
|
||||
Calendar calendar = getCalendar(Integer.valueOf(date), 0);
|
||||
startTime = getDate(calendar, 3, true);
|
||||
endTime = getDate(calendar, 3, false);
|
||||
}
|
||||
return new Date[]{startTime, endTime};
|
||||
} catch (NumberFormatException e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
// private Date[] getStartEndTime(String date) {
|
||||
// if (StringUtils.isBlank(date)) return null;
|
||||
// Date startTime, endTime;
|
||||
// try {
|
||||
// if (date.indexOf("-") > 1) {//年月
|
||||
// String[] ym = date.split("-");
|
||||
// Calendar calendar = getCalendar(Integer.valueOf(ym[0]), Integer.valueOf(ym[1]));
|
||||
// startTime = getDate(calendar, 2, true);
|
||||
// endTime = getDate(calendar, 2, false);
|
||||
// } else {//年
|
||||
// Calendar calendar = getCalendar(Integer.valueOf(date), 0);
|
||||
// startTime = getDate(calendar, 3, true);
|
||||
// endTime = getDate(calendar, 3, false);
|
||||
// }
|
||||
// return new Date[]{startTime, endTime};
|
||||
// } catch (NumberFormatException e) {
|
||||
// return null;
|
||||
// }
|
||||
// }
|
||||
|
||||
private Map<String, Object> getMap(String name, Object value) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
@ -199,12 +193,12 @@ public class RepairStatsServiceImpl implements IRepairStatsService {
|
||||
/**
|
||||
* 获取指定年月的日历 Calendar c = getCalendar(2024, 9);
|
||||
*/
|
||||
private Calendar getCalendar(int year, int month) {
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.set(Calendar.YEAR, year);
|
||||
calendar.set(Calendar.MONTH, month > 0 ? month - 1 : month);
|
||||
return calendar;
|
||||
}
|
||||
// private Calendar getCalendar(int year, int month) {
|
||||
// Calendar calendar = Calendar.getInstance();
|
||||
// calendar.set(Calendar.YEAR, year);
|
||||
// calendar.set(Calendar.MONTH, month > 0 ? month - 1 : month);
|
||||
// return calendar;
|
||||
// }
|
||||
|
||||
/**
|
||||
* 获取边界日期
|
||||
@ -214,23 +208,23 @@ public class RepairStatsServiceImpl implements IRepairStatsService {
|
||||
* @param start ture 开始时间 false 结束时间
|
||||
* @return
|
||||
*/
|
||||
private Date getDate(Calendar calendar, int type, boolean start) {
|
||||
if (calendar == null) calendar = Calendar.getInstance();
|
||||
String time = start ? " 00:00:00" : " 23:59:59";
|
||||
if (type == 1) {
|
||||
calendar.setFirstDayOfWeek(Calendar.MONDAY);
|
||||
calendar.set(Calendar.DAY_OF_WEEK, calendar.getFirstDayOfWeek());
|
||||
if (!start) calendar.add(Calendar.DAY_OF_MONTH, 6);
|
||||
return DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, DateUtils.dateTime(calendar.getTime()) + time);
|
||||
}
|
||||
if (type == 2) {
|
||||
calendar.set(Calendar.DAY_OF_MONTH, start ? calendar.getActualMinimum(Calendar.DAY_OF_MONTH) : calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
|
||||
return DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, DateUtils.dateTime(calendar.getTime()) + time);
|
||||
}
|
||||
if (type == 3) {
|
||||
calendar.set(Calendar.DAY_OF_YEAR, start ? calendar.getActualMinimum(Calendar.DAY_OF_YEAR) : calendar.getActualMaximum(Calendar.DAY_OF_YEAR));
|
||||
return DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, DateUtils.dateTime(calendar.getTime()) + time);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
// private Date getDate(Calendar calendar, int type, boolean start) {
|
||||
// if (calendar == null) calendar = Calendar.getInstance();
|
||||
// String time = start ? " 00:00:00" : " 23:59:59";
|
||||
// if (type == 1) {
|
||||
// calendar.setFirstDayOfWeek(Calendar.MONDAY);
|
||||
// calendar.set(Calendar.DAY_OF_WEEK, calendar.getFirstDayOfWeek());
|
||||
// if (!start) calendar.add(Calendar.DAY_OF_MONTH, 6);
|
||||
// return DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, DateUtils.dateTime(calendar.getTime()) + time);
|
||||
// }
|
||||
// if (type == 2) {
|
||||
// calendar.set(Calendar.DAY_OF_MONTH, start ? calendar.getActualMinimum(Calendar.DAY_OF_MONTH) : calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
|
||||
// return DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, DateUtils.dateTime(calendar.getTime()) + time);
|
||||
// }
|
||||
// if (type == 3) {
|
||||
// calendar.set(Calendar.DAY_OF_YEAR, start ? calendar.getActualMinimum(Calendar.DAY_OF_YEAR) : calendar.getActualMaximum(Calendar.DAY_OF_YEAR));
|
||||
// return DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, DateUtils.dateTime(calendar.getTime()) + time);
|
||||
// }
|
||||
// return null;
|
||||
// }
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user