diff --git a/shoot-hand/ics-admin/src/main/java/com/ics/admin/controller/RepairController.java b/shoot-hand/ics-admin/src/main/java/com/ics/admin/controller/RepairController.java index 11e70c7..3de5247 100644 --- a/shoot-hand/ics-admin/src/main/java/com/ics/admin/controller/RepairController.java +++ b/shoot-hand/ics-admin/src/main/java/com/ics/admin/controller/RepairController.java @@ -84,20 +84,6 @@ public class RepairController extends BaseController { return toAjax(repairService.eval(repairDTO.getRepair(), userId)); } - /** - * 工单列表 - * menu:1.报修查询,3派单入口,5维修入口, 7 管理员,9 楼层管理员 - *

- * 报修查询:全部、处理中、待评价、已评价、无效申请 type对应值:all、process、evaling、evaled、invalid - * 派单入口:重新派单、待派单、已派单、已关闭(无效申请) type对应值:anew、wait、already、close - * 维修入口:待完成、进行中、已完成 type对应值:wait、working、close - * 管理员:重派单,全部,无效申请 type对应值:anew、all、invalid 【小程序暂时用不到】 - * 楼层管理员:全部、无效申请 type对应值:all、invalid - * - * name : 工单描述搜索关键字 - *

- */ - /** * 工单列表 * role 1.普通用户,3派单员,5维修人员, 7管理员, 9 楼层管理员 diff --git a/shoot-hand/ics-admin/src/main/java/com/ics/admin/controller/RepairStatsController.java b/shoot-hand/ics-admin/src/main/java/com/ics/admin/controller/RepairStatsController.java index 3236406..da37f19 100644 --- a/shoot-hand/ics-admin/src/main/java/com/ics/admin/controller/RepairStatsController.java +++ b/shoot-hand/ics-admin/src/main/java/com/ics/admin/controller/RepairStatsController.java @@ -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)); } } diff --git a/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/IRepairStatsService.java b/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/IRepairStatsService.java index bd71fe9..536039e 100644 --- a/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/IRepairStatsService.java +++ b/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/IRepairStatsService.java @@ -43,28 +43,28 @@ public interface IRepairStatsService { /** * 第二、三行 工单统计、工单完成情况、评价情况 * - * @param isMonth true 本月,false 本年 + * @param type repair 工单统计 end 工单完成情况 eval 评价情况 * @return */ - Map repairStats(boolean isMonth); + Map repairStats(Date start, Date end, String type); /** * 第四行 左侧 楼层负责人情况统计 */ - Map floorStats(String date); + Map floorStats(Date start, Date end); /** * 第四行 右上 设备故障统计 */ - Map deviceStats(String date); + Map deviceStats(Date start, Date end); /** * 第四行 右下 故障类型统计 */ - List> failureStats(String date); + List> failureStats(Date start, Date end); /** * 第五行 设备、品牌、评价 统计 */ - List deviceTypeStats(String date); + List deviceTypeStats(Date start, Date end); } diff --git a/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/impl/RepairStatsServiceImpl.java b/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/impl/RepairStatsServiceImpl.java index 87bb6a5..6efd3d3 100644 --- a/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/impl/RepairStatsServiceImpl.java +++ b/shoot-hand/ics-admin/src/main/java/com/ics/admin/service/impl/RepairStatsServiceImpl.java @@ -62,38 +62,38 @@ public class RepairStatsServiceImpl implements IRepairStatsService { } @Override - public Map repairStats(boolean isMonth) { - List 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 repairStats(Date start, Date end, String type) { + List list = repairStatsMapper.repairStats(start, end); Map map = new HashMap<>(); - map.put("stats", repairStatsVo); - List> wc = new ArrayList<>(); - wc.add(getMap("已完成", repairStatsVo.getWc())); - wc.add(getMap("未完成", repairStatsVo.getZs() - repairStatsVo.getWc())); - map.put("wc", wc); - List> timeout = new ArrayList<>(); - timeout.add(getMap("严重超时", repairStatsVo.getHtimeout())); - timeout.add(getMap("超时", repairStatsVo.getMtimeout())); - timeout.add(getMap("轻微超时", repairStatsVo.getLtimeout())); - timeout.add(getMap("未超时", repairStatsVo.getNtimeout())); - map.put("timeout", timeout); - List> pj = new ArrayList<>(); - pj.add(getMap("好评", repairStatsVo.getH())); - pj.add(getMap("中评", repairStatsVo.getM())); - pj.add(getMap("差评", repairStatsVo.getL())); - map.put("pj", pj); + 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> wc = new ArrayList<>(); + wc.add(getMap("已完成", repairStatsVo.getWc())); + wc.add(getMap("未完成", repairStatsVo.getZs() - repairStatsVo.getWc())); + map.put("wc", wc); + List> timeout = new ArrayList<>(); + timeout.add(getMap("严重超时", repairStatsVo.getHtimeout())); + timeout.add(getMap("超时", repairStatsVo.getMtimeout())); + timeout.add(getMap("轻微超时", repairStatsVo.getLtimeout())); + timeout.add(getMap("未超时", repairStatsVo.getNtimeout())); + map.put("timeout", timeout); + } else if ("eval".equals(type)) { + List> 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 floorStats(String date) { - Date[] dates = getStartEndTime(date); - if (dates == null) return null; - List list = repairStatsMapper.floorStats(dates[0], dates[1]); + public Map floorStats(Date start, Date end) { + List list = repairStatsMapper.floorStats(start, end); List y = new ArrayList<>(); List zs = new ArrayList<>(); List wc = new ArrayList<>(); @@ -110,10 +110,8 @@ public class RepairStatsServiceImpl implements IRepairStatsService { } @Override - public Map deviceStats(String date) { - Date[] dates = getStartEndTime(date); - if (dates == null) return null; - List list = repairStatsMapper.deviceStats(dates[0], dates[1]); + public Map deviceStats(Date start, Date end) { + List list = repairStatsMapper.deviceStats(start, end); List x = new ArrayList<>(); List zs = new ArrayList<>(); List wc = new ArrayList<>(); @@ -130,10 +128,8 @@ public class RepairStatsServiceImpl implements IRepairStatsService { } @Override - public List> failureStats(String date) { - Date[] dates = getStartEndTime(date); - if (dates == null) return null; - List list = repairStatsMapper.failureStats(dates[0], dates[1]); + public List> failureStats(Date start, Date end) { + List list = repairStatsMapper.failureStats(start, end); List> 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 deviceTypeStats(String date) { - Date[] dates = getStartEndTime(date); - if (dates == null) return null; - List list = repairStatsMapper.deviceTypeStats(dates[0], dates[1]); + public List deviceTypeStats(Date start, Date end) { + List 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 getMap(String name, Object value) { Map 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; +// } }