更改统计接口

This commit is contained in:
lujiang 2024-08-23 15:53:38 +08:00
parent ad8a38fb97
commit 6ae3116e45
4 changed files with 136 additions and 114 deletions

View File

@ -84,20 +84,6 @@ public class RepairController extends BaseController {
return toAjax(repairService.eval(repairDTO.getRepair(), userId));
}
/**
* 工单列表
* menu:1.报修查询3派单入口5维修入口, 7 管理员,9 楼层管理员
* <p>
* 报修查询全部处理中待评价已评价无效申请 type对应值allprocessevalingevaledinvalid
* 派单入口重新派单待派单已派单已关闭无效申请 type对应值anewwaitalreadyclose
* 维修入口待完成进行中已完成 type对应值waitworkingclose
* 管理员重派单全部无效申请 type对应值anewallinvalid 小程序暂时用不到
* 楼层管理员全部无效申请 type对应值allinvalid
*
* name : 工单描述搜索关键字
* </p>
*/
/**
* 工单列表
* role 1.普通用户3派单员5维修人员, 7管理员, 9 楼层管理员

View File

@ -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));
}
}

View File

@ -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);
}

View File

@ -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;
// }
}