From 55a34391ad668cb64764900c5427b02e07c4c62e Mon Sep 17 00:00:00 2001 From: lujiang Date: Sat, 17 Aug 2024 01:05:19 +0800 Subject: [PATCH] =?UTF-8?q?=E9=83=A8=E5=88=86=E7=BB=9F=E8=AE=A1=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/RepairStatsController.java | 25 ++- .../ics/admin/domain/RepairStatsByTimeVo.java | 16 -- .../ics/admin/mapper/RepairStatsMapper.java | 20 +- .../admin/service/IRepairStatsService.java | 19 +- .../service/impl/RepairStatsServiceImpl.java | 62 ++++-- .../com/ics/admin/vo/RepairAdminStatsVo.java | 36 ++++ .../{domain => vo}/RepairFloorStatsVo.java | 6 +- .../java/com/ics/admin/vo/RepairStatsVo.java | 79 +++++++ .../main/java/com/ics/admin/vo/RepairVO.java | 197 ------------------ .../{domain => vo}/RepairWorkerStatsVo.java | 2 +- .../mapper/admin/RepairStatsMapper.xml | 67 +++--- 11 files changed, 251 insertions(+), 278 deletions(-) delete mode 100644 shoot-hand/ics-admin/src/main/java/com/ics/admin/domain/RepairStatsByTimeVo.java create mode 100644 shoot-hand/ics-admin/src/main/java/com/ics/admin/vo/RepairAdminStatsVo.java rename shoot-hand/ics-admin/src/main/java/com/ics/admin/{domain => vo}/RepairFloorStatsVo.java (87%) create mode 100644 shoot-hand/ics-admin/src/main/java/com/ics/admin/vo/RepairStatsVo.java delete mode 100644 shoot-hand/ics-admin/src/main/java/com/ics/admin/vo/RepairVO.java rename shoot-hand/ics-admin/src/main/java/com/ics/admin/{domain => vo}/RepairWorkerStatsVo.java (96%) 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 029d02e..d95efa4 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 @@ -1,7 +1,9 @@ package com.ics.admin.controller; -import com.ics.admin.domain.RepairFloorStatsVo; -import com.ics.admin.domain.RepairWorkerStatsVo; +import com.alibaba.fastjson.JSONObject; +import com.ics.admin.vo.RepairAdminStatsVo; +import com.ics.admin.vo.RepairFloorStatsVo; +import com.ics.admin.vo.RepairWorkerStatsVo; import com.ics.admin.service.IRepairService; import com.ics.admin.service.IRepairStatsService; import com.ics.common.core.controller.BaseController; @@ -68,4 +70,23 @@ public class RepairStatsController extends BaseController { return result(repairService.floorRepairList(floorerId)); } + /** + * 第一行 管理员 工单与 通知统计 + */ + @RequiresPermissions(value = {"repair:manage:operator"}) + @RequestMapping("repairAdminStats") + public R repairAdminStats() { + RepairAdminStatsVo repairAdminStatsVo = repairWorkerStatsService.repairAdminStats(); + return R.ok().put("repairAdminStats", repairAdminStatsVo); + } + + /** + * 第二、三行 工单统计、工单完成情况、评价情况 + */ + @RequiresPermissions(value = {"repair:manage:operator"}) + @RequestMapping("repairStats") + public R repairStats() { + return R.ok().put("currentMonth", repairWorkerStatsService.repairStats(true)) + .put("currentYear", repairWorkerStatsService.repairStats(false)); + } } diff --git a/shoot-hand/ics-admin/src/main/java/com/ics/admin/domain/RepairStatsByTimeVo.java b/shoot-hand/ics-admin/src/main/java/com/ics/admin/domain/RepairStatsByTimeVo.java deleted file mode 100644 index 13488fd..0000000 --- a/shoot-hand/ics-admin/src/main/java/com/ics/admin/domain/RepairStatsByTimeVo.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.ics.admin.domain; - -import java.io.Serializable; - -/** - * created at 2024-8-15 21:46 - * - * @author lujiang - * @version 1.0.0 - * @since 1.0.0 - */ -public class RepairStatsByTimeVo implements Serializable { - private static final long serialVersionUID = -202408152311L; - - -} diff --git a/shoot-hand/ics-admin/src/main/java/com/ics/admin/mapper/RepairStatsMapper.java b/shoot-hand/ics-admin/src/main/java/com/ics/admin/mapper/RepairStatsMapper.java index 0f73d7c..63a70f3 100644 --- a/shoot-hand/ics-admin/src/main/java/com/ics/admin/mapper/RepairStatsMapper.java +++ b/shoot-hand/ics-admin/src/main/java/com/ics/admin/mapper/RepairStatsMapper.java @@ -1,9 +1,13 @@ package com.ics.admin.mapper; -import com.ics.admin.domain.RepairFloorStatsVo; -import com.ics.admin.domain.RepairWorkerStatsVo; +import com.ics.admin.vo.RepairAdminStatsVo; +import com.ics.admin.vo.RepairFloorStatsVo; +import com.ics.admin.vo.RepairStatsVo; +import com.ics.admin.vo.RepairWorkerStatsVo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; /** @@ -30,4 +34,16 @@ public interface RepairStatsMapper { * @return VIEW集合 */ List selectRepairFloorStatsVoList(RepairFloorStatsVo repairFloorStatsVo); + + /** + * 第一行 管理员 工单与 通知统计 + * @return + */ + List repairAdminStats(); + + /** + * 第二、三行 工单统计、工单完成情况、评价情况 + * @return + */ + List repairStats(@Param("startTime") Date startTime, @Param("endTime") Date endTime); } 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 6006903..3707462 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 @@ -1,9 +1,13 @@ package com.ics.admin.service; -import com.ics.admin.domain.RepairFloorStatsVo; -import com.ics.admin.domain.RepairWorkerStatsVo; +import com.alibaba.fastjson.JSONObject; +import com.ics.admin.vo.RepairAdminStatsVo; +import com.ics.admin.vo.RepairFloorStatsVo; +import com.ics.admin.vo.RepairStatsVo; +import com.ics.admin.vo.RepairWorkerStatsVo; import java.util.List; +import java.util.Map; /** * 维修人员统计接口 @@ -27,4 +31,15 @@ public interface IRepairStatsService { * @return VIEW集合 */ List selectRepairFloorStatsVoList(RepairFloorStatsVo repairFloorStatsVo); + + /** + * 第一行 管理员 工单与 通知统计 + */ + RepairAdminStatsVo repairAdminStats(); + /** + * 第二、三行 工单统计、工单完成情况、评价情况 + * @param isMonth true 本月,false 本年 + * @return + */ + Map repairStats(boolean isMonth); } 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 1ea9a6c..0acf863 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 @@ -1,16 +1,21 @@ package com.ics.admin.service.impl; -import com.ics.admin.domain.RepairFloorStatsVo; -import com.ics.admin.domain.RepairWorkerStatsVo; import com.ics.admin.mapper.RepairStatsMapper; import com.ics.admin.service.IRepairStatsService; +import com.ics.admin.vo.RepairAdminStatsVo; +import com.ics.admin.vo.RepairFloorStatsVo; +import com.ics.admin.vo.RepairStatsVo; +import com.ics.admin.vo.RepairWorkerStatsVo; import com.ics.common.utils.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.Calendar; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * created at 2024-8-15 20:34 @@ -46,23 +51,50 @@ public class RepairStatsServiceImpl implements IRepairStatsService { return repairStatsMapper.selectRepairFloorStatsVoList(repairFloorStatsVo); } + @Override + public RepairAdminStatsVo repairAdminStats() { + List list = repairStatsMapper.repairAdminStats(); + if (list != null && list.size() > 0) return list.get(0); + return null; + } -// -// public void tt() { -//// Calendar c = getCalendar(2024, 9); -//// -//// -//// System.out.println(getDate(c, 1, true)); -//// System.out.println(getDate(c, 1, false)); -//// System.out.println(getDate(c, 2, true)); -//// System.out.println(getDate(c, 2, false)); -//// System.out.println(getDate(c, 3, true)); -//// System.out.println(getDate(c, 3, false)); -// } + @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); + Map map = new HashMap<>(); + map.put("status", 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); + return map; + } + + private Map getMap(String name, Object value) { + Map map = new HashMap<>(); + map.put("name", name); + map.put("value", value); + return map; + } /** - * 获取指定年月的日历 + * 获取指定年月的日历 Calendar c = getCalendar(2024, 9); */ private Calendar getCalendar(int year, int month) { Calendar calendar = Calendar.getInstance(); diff --git a/shoot-hand/ics-admin/src/main/java/com/ics/admin/vo/RepairAdminStatsVo.java b/shoot-hand/ics-admin/src/main/java/com/ics/admin/vo/RepairAdminStatsVo.java new file mode 100644 index 0000000..05234f7 --- /dev/null +++ b/shoot-hand/ics-admin/src/main/java/com/ics/admin/vo/RepairAdminStatsVo.java @@ -0,0 +1,36 @@ +package com.ics.admin.vo; + +import lombok.Data; + +import java.io.Serializable; + +/** + * created at 2024-8-16 22:30 + * + * @author lujiang + * @version 1.0.0 + * @since 1.0.0 + */ +@Data +public class RepairAdminStatsVo implements Serializable { + private static final long serialVersionUID = -202408162231L; + + /** + * 待派工单 + */ + private Integer wait; + + /** + * 已重新派单 + */ + private Integer anew; + /** + * 未查看通知 + */ + private Integer newnotice; + + /** + * 已查看通知 + */ + private Integer oldnotice; +} diff --git a/shoot-hand/ics-admin/src/main/java/com/ics/admin/domain/RepairFloorStatsVo.java b/shoot-hand/ics-admin/src/main/java/com/ics/admin/vo/RepairFloorStatsVo.java similarity index 87% rename from shoot-hand/ics-admin/src/main/java/com/ics/admin/domain/RepairFloorStatsVo.java rename to shoot-hand/ics-admin/src/main/java/com/ics/admin/vo/RepairFloorStatsVo.java index dd7effb..80a20ff 100644 --- a/shoot-hand/ics-admin/src/main/java/com/ics/admin/domain/RepairFloorStatsVo.java +++ b/shoot-hand/ics-admin/src/main/java/com/ics/admin/vo/RepairFloorStatsVo.java @@ -1,7 +1,9 @@ -package com.ics.admin.domain; +package com.ics.admin.vo; import lombok.Data; +import java.io.Serializable; + /** * 对应视图floor_stats * created at 2024-8-15 21:18 @@ -11,7 +13,7 @@ import lombok.Data; * @since 1.0.0 */ @Data -public class RepairFloorStatsVo { +public class RepairFloorStatsVo implements Serializable { private static final long serialVersionUID = -202408152119L; /** * 用户id diff --git a/shoot-hand/ics-admin/src/main/java/com/ics/admin/vo/RepairStatsVo.java b/shoot-hand/ics-admin/src/main/java/com/ics/admin/vo/RepairStatsVo.java new file mode 100644 index 0000000..d02b199 --- /dev/null +++ b/shoot-hand/ics-admin/src/main/java/com/ics/admin/vo/RepairStatsVo.java @@ -0,0 +1,79 @@ +package com.ics.admin.vo; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serializable; + +/** + * created at 2024-8-15 21:46 + * + * @author lujiang + * @version 1.0.0 + * @since 1.0.0 + */ +@Data +public class RepairStatsVo implements Serializable { + private static final long serialVersionUID = -202408152311L; + + /** + * 工单总数 + */ + private Integer zs; + + /** + * 待维修工单 + */ + private Integer wait; + + /** + * 超时量 + */ + private Integer timeout; + /** + * 评价总数 + */ + @JsonIgnore + private Integer pj; + + /** + * 好评 + */ + private Integer h; + + /** + * 中评 + */ + private Integer m; + + /** + * 差评 + */ + private Integer l; + + /** + * 已完成 + */ + @JsonIgnore + private Integer wc; + /** + * 严重超时 + */ + @JsonIgnore + private Integer htimeout; + /** + * 超时 + */ + @JsonIgnore + private Integer mtimeout; + /** + * 轻微超时 + */ + @JsonIgnore + private Integer ltimeout; + /** + * 未超时 + */ + @JsonIgnore + private Integer ntimeout; +} diff --git a/shoot-hand/ics-admin/src/main/java/com/ics/admin/vo/RepairVO.java b/shoot-hand/ics-admin/src/main/java/com/ics/admin/vo/RepairVO.java deleted file mode 100644 index d9eaf2d..0000000 --- a/shoot-hand/ics-admin/src/main/java/com/ics/admin/vo/RepairVO.java +++ /dev/null @@ -1,197 +0,0 @@ -package com.ics.admin.vo; - -import com.baomidou.mybatisplus.annotation.TableField; -import com.fasterxml.jackson.annotation.JsonFormat; -import com.ics.admin.domain.BannerImage; -import com.ics.admin.domain.RepairLog; -import com.ics.admin.handler.BannerImageHandler; -import com.ics.system.domain.vo.UserVO; -import lombok.Data; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -/** - * 报修VO - * - * @author jack - */ -@Data -public class RepairVO { - - /** - * 最大Banner图片数量 - */ - public static final int MAX_REPAIR_IMAGE_SIZE = 4; - - /** - * Id - */ - private Long id; - - /** - * 报修单号 - */ - private String sn; - - /** - * 报修人 - */ - private String name; - - private String repairName; - - private String repairLevel; - - /** - * 联系电话 - */ - private String phone; - - /** - * 报修区域 - */ - private String area; - - /** - * 状态 - */ - private Integer status; - - /** - * 状态名称 - */ - private String statusName; - - /** - * 描述 - */ - private String content; - - /** - * 报修时间 - */ - private Date repairTime; - - /** - * 维修费 - */ - private Long repairFee; - - /** - * 评价 - */ - private Long repairScore; - - /** - * 备注 - */ - private String remark; - - /** - * 维修材料 - */ - private String repairMateriel; - - /** - * 开始时间 - */ - private Date beginDate; - - /** - * 结束时间 - */ - private Date endDate; - - /** - * 评价工人 - */ - private Long workerScore; - - /** - * 工人ID - */ - private Long workerId; - - /** - * 公司ID - */ - private Long customerId; - - /** - * 公司 - */ - private CustomerVO customerVO; - - /** - * 园区ID - */ - private Long parkId; - - /** - * 园区 - */ - private ParkVO parkVO; - - /** - * 用户 - */ - private UserVO userVO; - - /** - * 创建者 - */ - private String createBy; - - /** - * 创建时间 - */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date createTime; - - /** - * 更新者 - */ - private String updateBy; - - /** - * 更新时间 - */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date updateTime; - - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date failureDate; - - - /** - * 工单记录 - */ - private List repairLogs = new ArrayList<>(); - - - /** - * 报修图片 - */ - private String repairImages; - - - private String typeName; - - private String repairDeviceName; - - private String failureTypeName; - - private String userName; - - private String workerName; - - //评分 - private Integer speed; - - private Integer serve; - - private Integer effect; - -} diff --git a/shoot-hand/ics-admin/src/main/java/com/ics/admin/domain/RepairWorkerStatsVo.java b/shoot-hand/ics-admin/src/main/java/com/ics/admin/vo/RepairWorkerStatsVo.java similarity index 96% rename from shoot-hand/ics-admin/src/main/java/com/ics/admin/domain/RepairWorkerStatsVo.java rename to shoot-hand/ics-admin/src/main/java/com/ics/admin/vo/RepairWorkerStatsVo.java index 0beac4a..c368708 100644 --- a/shoot-hand/ics-admin/src/main/java/com/ics/admin/domain/RepairWorkerStatsVo.java +++ b/shoot-hand/ics-admin/src/main/java/com/ics/admin/vo/RepairWorkerStatsVo.java @@ -1,4 +1,4 @@ -package com.ics.admin.domain; +package com.ics.admin.vo; import lombok.Data; diff --git a/shoot-hand/ics-admin/src/main/resources/mapper/admin/RepairStatsMapper.xml b/shoot-hand/ics-admin/src/main/resources/mapper/admin/RepairStatsMapper.xml index 18ab3ea..27a9e47 100644 --- a/shoot-hand/ics-admin/src/main/resources/mapper/admin/RepairStatsMapper.xml +++ b/shoot-hand/ics-admin/src/main/resources/mapper/admin/RepairStatsMapper.xml @@ -4,23 +4,7 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - - - - - - - - - - - - - - - - SELECT id, username, mobile, typeid, typename, zs, process, closed, Unresolved, pj, case when pj>0 then CONCAT(h,',',ROUND(h/pj*100,1),'%') else '0,0%' end as h, case when pj>0 then CONCAT(m,',',ROUND(m/pj*100,1),'%') else '0,0%' end as m, @@ -33,22 +17,7 @@ - - - - - - - - - - - - - - - - SELECT id, name, mobile, adr, zs, process, closed, Unresolved, pj, case when pj>0 then CONCAT(h,',',ROUND(h/pj*100,1),'%') else '0,0%' end as h, case when pj>0 then CONCAT(m,',',ROUND(m/pj*100,1),'%') else '0,0%' end as m, @@ -61,21 +30,37 @@ - + + + + + + \ No newline at end of file