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)); } } @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)); } } 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;; } 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; 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ãPostgreSQLãKingbaseãDB2ãH2 æ°æ®åºç主é®èªå¢ãå¦ææ¯ 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; } 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); } @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); } 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); } 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); } }