|
|
|
|
@ -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<String, Object> map1 = new HashMap<>(); |
|
|
|
|
Map<String, Object> map2 = new HashMap<>(); |
|
|
|
|
Map<String, Object> 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<Map<String, Object>> faultRatio(String startTime, String endTime, String perType) { |
|
|
|
|
Map<String, Object> map = new HashMap<>(); |
|
|
|
|
List<Map<String, Object>> fault = new ArrayList<>(); |
|
|
|
|
Map<String, Object> fault1 = new HashMap<>(); |
|
|
|
|
fault1.put("name", "空调"); |
|
|
|
|
fault1.put("value", 115); |
|
|
|
|
fault.add(fault1); |
|
|
|
|
List<PieStatVO> fault = deviceService.selectTypeCount(startTime, endTime); |
|
|
|
|
map.put("fault", fault); |
|
|
|
|
|
|
|
|
|
List<Map<String, Object>> rate = new ArrayList<>(); |
|
|
|
|
Map<String, Object> device1 = new HashMap<>(); |
|
|
|
|
device1.put("name", "正常数量"); |
|
|
|
|
device1.put("value", 115); |
|
|
|
|
rate.add(device1); |
|
|
|
|
map.put("rate", rate); |
|
|
|
|
List<PieStatVO> 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()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|