From 231c97c180bffc08f189a579aee7abbc53d647b2 Mon Sep 17 00:00:00 2001 From: litao Date: Thu, 28 Nov 2024 20:17:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E5=8F=B0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../contraller/WorkBenchesController.java | 99 ++++++++++++++----- 1 file changed, 75 insertions(+), 24 deletions(-) diff --git a/src/main/java/org/springblade/modules/business/contraller/WorkBenchesController.java b/src/main/java/org/springblade/modules/business/contraller/WorkBenchesController.java index 5b65886..fdab499 100644 --- a/src/main/java/org/springblade/modules/business/contraller/WorkBenchesController.java +++ b/src/main/java/org/springblade/modules/business/contraller/WorkBenchesController.java @@ -3,6 +3,7 @@ package org.springblade.modules.business.contraller; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.AllArgsConstructor; +import org.springblade.common.cache.UserCache; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; @@ -26,10 +27,12 @@ import org.springframework.web.bind.annotation.RestController; import java.text.ParseException; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.time.*; +import java.time.temporal.TemporalAdjusters; +import java.util.*; + +import static org.springblade.modules.business.enums.MaintenanceStatusEnum.TASK_CUSTOMER_CONFIRM; +import static org.springblade.modules.business.enums.WorkOrderStatusEnum.*; /** * 工作台 控制器 @@ -185,30 +188,65 @@ public class WorkBenchesController extends BladeController { Map map1 = new HashMap<>(); Map map2 = new HashMap<>(); Map map3 = new HashMap<>(); + // 今日开始时间 + Date start = Date.from(LocalDateTime.now().with(LocalTime.MIN).atZone(ZoneId.systemDefault()).toInstant()); + // 今日结束时间 + Date end = Date.from(LocalDateTime.now().with(LocalTime.MAX).atZone(ZoneId.systemDefault()).toInstant()); + int todoCount = 0; + int finish = 0; + + if ("0".equals(perType)) { + // 客服今日待办 + todoCount = (int) workOrderService.count(Wrappers.lambdaQuery(WorkOrder.class).in(WorkOrder::getStatus, CUSTOMER_SUBMIT, EVALUATE_FINISH)); + // 客服今日已办 + finish = (int) workOrderService.count(Wrappers.lambdaQuery(WorkOrder.class).between(WorkOrder::getDispatchTime, start, end)); + } else if ("1".equals(perType)) { + // 主管今日待办 + todoCount = (int) workOrderService.count(Wrappers.lambdaQuery(WorkOrder.class).eq(WorkOrder::getStatus, SUPERVISOR_CONFIRM)); + // 主管今日已办 + finish = (int) workOrderService.count(Wrappers.lambdaQuery(WorkOrder.class).between(WorkOrder::getDispatchTime, start, end)); + } + + LocalDate now = LocalDate.now(); + // 本月已办结-需求提报 + int monthCountWork = (int) workOrderService.count(Wrappers.lambdaQuery(WorkOrder.class).eq(WorkOrder::getStatus, TICKET).between(WorkOrder::getDispatchTime, getMonthStartAsDate(now), getMonthEndAsDate(now))); + // 本月已办结-巡检任务 + int monthCount = (int) maintenanceTaskService.count(Wrappers.lambdaQuery(MaintenanceTask.class).eq(MaintenanceTask::getTaskStatus, TASK_CUSTOMER_CONFIRM).between(MaintenanceTask::getFinishTime, getMonthStartAsDate(now), getMonthEndAsDate(now))); + // 今年已办结-需求提报 + int yearCountWork = (int) workOrderService.count(Wrappers.lambdaQuery(WorkOrder.class).eq(WorkOrder::getStatus, TICKET).between(WorkOrder::getDispatchTime, getYearStartAsDate(now), getYearEndAsDate(now))); + // 今年已办结-巡检任务 + int yearCount = (int) maintenanceTaskService.count(Wrappers.lambdaQuery(MaintenanceTask.class).eq(MaintenanceTask::getStatus, TASK_CUSTOMER_CONFIRM).between(MaintenanceTask::getFinishTime, getYearStartAsDate(now), getYearEndAsDate(now))); + map1.put("title", "我的任务"); map1.put("mainName", "今日待办"); map1.put("subName", "今日已办"); - map1.put("num", 5); - map1.put("num1", 10); + map1.put("num", todoCount); + map1.put("num1", finish); map2.put("title", "维修已办结"); map2.put("mainName", "本月"); map2.put("subName", "本年"); - map2.put("num", 16); - map2.put("num1", 129); + map2.put("num", monthCountWork + monthCount); + map2.put("num1", yearCountWork + yearCount); if ("0".equals(perType)) { map3.put("title", "巡检计划"); map3.put("mainName", "巡检签约"); map3.put("subName", "巡检"); - map3.put("num", 22); - map3.put("num1", 159); + // 巡检计划签约数量 + int count = (int) maintenancePlanService.count(Wrappers.lambdaQuery(MaintenancePlan.class)); + // 巡检次数 + int xjCount = (int) maintenanceTaskService.count(Wrappers.lambdaQuery(MaintenanceTask.class).eq(MaintenanceTask::getStatus, TASK_CUSTOMER_CONFIRM)); + map3.put("num", count); + map3.put("num1", xjCount); } else if ("1".equals(perType)) { map3.put("title", "维修人员"); map3.put("mainName", "在岗"); map3.put("subName", "总计"); - map3.put("num", 22); - map3.put("num1", 159); + // 维修人员数量 + long count = userService.count(Wrappers.lambdaQuery(User.class).eq(User::getStatus, 1).eq(User::getRoleId, 1839552581620793346L)); + map3.put("num", count); + map3.put("num1", count); } list.add(map1); list.add(map2); @@ -240,19 +278,32 @@ public class WorkBenchesController extends BladeController { @GetMapping("/faultRatio") public R> faultRatio(String startTime, String endTime, String perType) { Map map = new HashMap<>(); - List> fault = new ArrayList<>(); - Map fault1 = new HashMap<>(); - fault1.put("name", "空调"); - fault1.put("value", 115); - fault.add(fault1); + List fault = deviceService.selectTypeCount(startTime, endTime); map.put("fault", fault); - - List> rate = new ArrayList<>(); - Map device1 = new HashMap<>(); - device1.put("name", "正常数量"); - device1.put("value", 115); - rate.add(device1); - map.put("rate", rate); + List device = deviceService.selectStatusCount(startTime, endTime); + map.put("rate", device); return R.data(map); } + + public static Date getMonthStartAsDate(LocalDate date) { + LocalDate startOfMonth = date.with(TemporalAdjusters.firstDayOfMonth()); + return Date.from(startOfMonth.atStartOfDay(ZoneId.systemDefault()).toInstant()); + } + + public static Date getMonthEndAsDate(LocalDate date) { + YearMonth yearMonth = YearMonth.from(date); + int lastDayOfMonth = yearMonth.lengthOfMonth(); + LocalDate endOfMonth = date.withDayOfMonth(lastDayOfMonth); + return Date.from(endOfMonth.atTime(23, 59, 59).atZone(ZoneId.systemDefault()).toInstant()); + } + + public static Date getYearStartAsDate(LocalDate date) { + LocalDate startOfYear = date.with(TemporalAdjusters.firstDayOfYear()); + return Date.from(startOfYear.atStartOfDay(ZoneId.systemDefault()).toInstant()); + } + + public static Date getYearEndAsDate(LocalDate date) { + LocalDate endOfYear = date.with(TemporalAdjusters.lastDayOfYear()); + return Date.from(endOfYear.atTime(23, 59, 59).atZone(ZoneId.systemDefault()).toInstant()); + } }