From 9297cc4820d91a655cc56501ecaf013a4b9b08a3 Mon Sep 17 00:00:00 2001
From: eight <641137800@qq.com>
Date: 星期日, 29 九月 2024 14:05:35 +0800
Subject: [PATCH] 设备统计
---
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/devmanage/DeviceDO.java | 2
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/devmanage/DeviceMapper.java | 23 +++++++
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devmanage/DeviceServiceImpl.java | 6 ++
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/devmanage/DeviceStatisticDO.java | 66 ++++++++++++++++++++++
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devmanage/DeviceController.java | 14 ++++
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devmanage/DeviceService.java | 8 ++
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devmanage/vo/DeviceStatisticVO.java | 53 +++++++++++++++++
7 files changed, 169 insertions(+), 3 deletions(-)
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devmanage/DeviceController.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devmanage/DeviceController.java
index 9e70728..054b4a7 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devmanage/DeviceController.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devmanage/DeviceController.java
@@ -1,5 +1,9 @@
package cn.lihu.jh.module.ecg.controller.admin.devmanage;
+import cn.lihu.jh.module.ecg.controller.admin.jobrecord.vo.JobRecordPageReqVO;
+import cn.lihu.jh.module.ecg.controller.admin.jobrecord.vo.JobRecordStatisticVO;
+import cn.lihu.jh.module.ecg.dal.dataobject.devmanage.DeviceStatisticDO;
+import cn.lihu.jh.module.ecg.dal.dataobject.jobrecord.JobRecordStatisticDO;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
@@ -112,4 +116,12 @@
BeanUtils.toBean(list, DeviceRespVO.class));
}
-}
\ No newline at end of file
+ @GetMapping("/dev-statistic")
+ @Operation(summary = "璁惧缁熻")
+ @PreAuthorize("@ss.hasPermission('ecg:device:statistic')")
+ public CommonResult<List<DeviceStatisticVO>> getDeviceStatistic(@Valid DevicePageReqVO pageReqVO) {
+ List<DeviceStatisticDO> statisticDOList = deviceService.getDeviceStatistic(pageReqVO);
+ return success(BeanUtils.toBean(statisticDOList, DeviceStatisticVO.class));
+ }
+
+}
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devmanage/vo/DeviceStatisticVO.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devmanage/vo/DeviceStatisticVO.java
new file mode 100644
index 0000000..9f7315f
--- /dev/null
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devmanage/vo/DeviceStatisticVO.java
@@ -0,0 +1,53 @@
+package cn.lihu.jh.module.ecg.controller.admin.devmanage.vo;
+
+import cn.lihu.jh.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+import static cn.lihu.jh.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "绠$悊鍚庡彴 - 璁惧缁熻 VO")
+@Data
+@ToString(callSuper = true)
+public class DeviceStatisticVO {
+
+ @Schema(description = "璁惧缂栧彿", example = "5317")
+ private String devId;
+
+ @Schema(description = "鍒嗙被鍚�")
+ private String category;
+
+ @Schema(description = "鍝佺墝")
+ private String brand;
+
+ @Schema(description = "鍨嬪彿")
+ private String model;
+
+ @Schema(description = "閲囪喘鏃ユ湡")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDate[] purchaseDate;
+
+ @Schema(description = "鍒涘缓鏃堕棿")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDateTime[] createTime;
+
+ @Schema(description = "鐘舵�佹棩鏈�")
+ @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+ private LocalDate stateDate[];
+
+ /**
+ * 0 - 绌洪棽 10 - 浣跨敤涓� 20 - 宸查仐澶�
+ */
+ @Schema(description = "鐘舵��")
+ private Integer state;
+
+ @Schema(description = "璁惧鏁伴噺")
+ private Integer devCount;;
+
+}
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/devmanage/DeviceDO.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/devmanage/DeviceDO.java
index 1dfce85..3ed1f5b 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/devmanage/DeviceDO.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/devmanage/DeviceDO.java
@@ -51,7 +51,7 @@
private LocalDate purchaseDate;
/**
- * 閬楀け鏃ユ湡
+ * 鐘舵�佹棩鏈�
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
private LocalDate stateDate;
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/devmanage/DeviceStatisticDO.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/devmanage/DeviceStatisticDO.java
new file mode 100644
index 0000000..0bbdbe0
--- /dev/null
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/devmanage/DeviceStatisticDO.java
@@ -0,0 +1,66 @@
+package cn.lihu.jh.module.ecg.dal.dataobject.devmanage;
+
+import cn.lihu.jh.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.*;
+
+import java.time.LocalDate;
+
+/**
+ * 璁惧 DO
+ *
+ * @author majianbo
+ */
+@TableName("device")
+@KeySequence("device_seq") // 鐢ㄤ簬 Oracle銆丳ostgreSQL銆並ingbase銆丏B2銆丠2 鏁版嵁搴撶殑涓婚敭鑷銆傚鏋滄槸 MySQL 绛夋暟鎹簱锛屽彲涓嶅啓銆�
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class DeviceStatisticDO extends BaseDO {
+
+ /**
+ * id
+ */
+ @TableId
+ private Integer id;
+ /**
+ * 璁惧缂栧彿
+ */
+ private String devId;
+
+ /**
+ * 鍒嗙被鍚�
+ */
+ private String category;
+ /**
+ * 鍝佺墝
+ */
+ private String brand;
+ /**
+ * 鍨嬪彿
+ */
+ private String model;
+ /**
+ * 閲囪喘鏃ユ湡
+ */
+ private LocalDate purchaseDate;
+
+ /**
+ * 鐘舵�佹棩鏈�
+ */
+ @TableField(updateStrategy = FieldStrategy.ALWAYS)
+ private LocalDate stateDate;
+
+ /**
+ * 0 - 绌洪棽 10 - 浣跨敤涓� 20 - 宸查仐澶�
+ */
+ private Integer state;
+
+ /**
+ * 缁熻鏁伴噺
+ */
+ private Integer devCount;
+}
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/devmanage/DeviceMapper.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/devmanage/DeviceMapper.java
index 2f09bae..77c6c0c 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/devmanage/DeviceMapper.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/devmanage/DeviceMapper.java
@@ -1,12 +1,15 @@
package cn.lihu.jh.module.ecg.dal.mysql.devmanage;
import java.time.LocalDate;
+import java.time.LocalDateTime;
import java.util.*;
import cn.lihu.jh.framework.common.pojo.PageResult;
import cn.lihu.jh.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.lihu.jh.framework.mybatis.core.mapper.BaseMapperX;
import cn.lihu.jh.module.ecg.dal.dataobject.devmanage.DeviceDO;
+import cn.lihu.jh.module.ecg.dal.dataobject.devmanage.DeviceStatisticDO;
+import cn.lihu.jh.module.ecg.dal.dataobject.jobrecord.JobRecordStatisticDO;
import org.apache.ibatis.annotations.Mapper;
import cn.lihu.jh.module.ecg.controller.admin.devmanage.vo.*;
import org.apache.ibatis.annotations.Param;
@@ -38,4 +41,22 @@
@Update("update lihu.device set state=#{state}, state_date=#{stateDate} where dev_id=#{devId}")
Integer updateDevState(@Param("devId") String devId, @Param("state") Integer state, @Param("stateDate") LocalDate stateDate);
-}
\ No newline at end of file
+ @Select("<script>" +
+ "select category, state, count(1) as dev_count from lihu.device " +
+ " <where> deleted = 0 " +
+ " <if test=\"category != null and category != ''\"> " +
+ " and category = #{category} " +
+ " </if> " +
+ " <if test=\"brand != null and brand != ''\"> " +
+ " and brand = #{brand} " +
+ " </if> " +
+ " <if test=\"model != null and model != ''\"> " +
+ " and model = #{model} " +
+ " </if> " +
+ " </where> " +
+ " group by category, state " +
+ " order by category " +
+ "</script>")
+ List<DeviceStatisticDO> getDevStatistic(DevicePageReqVO pageReqVO);
+
+}
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devmanage/DeviceService.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devmanage/DeviceService.java
index 17eca34..eafa19f 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devmanage/DeviceService.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devmanage/DeviceService.java
@@ -1,10 +1,13 @@
package cn.lihu.jh.module.ecg.service.devmanage;
+import java.time.LocalDateTime;
import java.util.*;
import cn.lihu.jh.module.ecg.controller.admin.devmanage.vo.*;
import cn.lihu.jh.module.ecg.dal.dataobject.devmanage.DeviceDO;
import cn.lihu.jh.framework.common.pojo.PageResult;
import cn.lihu.jh.framework.common.pojo.PageParam;
+import cn.lihu.jh.module.ecg.dal.dataobject.devmanage.DeviceStatisticDO;
+import cn.lihu.jh.module.ecg.dal.dataobject.jobrecord.JobRecordStatisticDO;
import javax.validation.Valid;
@@ -68,4 +71,9 @@
*/
PageResult<DeviceDO> getDevicePage(DevicePageReqVO pageReqVO);
+ /**
+ * 璁惧缁熻
+ * @return
+ */
+ List<DeviceStatisticDO> getDeviceStatistic(DevicePageReqVO pageReqVO);
}
\ No newline at end of file
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devmanage/DeviceServiceImpl.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devmanage/DeviceServiceImpl.java
index 97fcbdc..81da0b9 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devmanage/DeviceServiceImpl.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devmanage/DeviceServiceImpl.java
@@ -1,5 +1,6 @@
package cn.lihu.jh.module.ecg.service.devmanage;
+import cn.lihu.jh.module.ecg.dal.dataobject.devmanage.DeviceStatisticDO;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
@@ -86,4 +87,9 @@
return deviceMapper.selectPage(pageReqVO);
}
+ @Override
+ public List<DeviceStatisticDO> getDeviceStatistic(DevicePageReqVO pageReqVO) {
+ return deviceMapper.getDevStatistic(pageReqVO);
+ }
+
}
\ No newline at end of file
--
Gitblit v1.9.3