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