Browse Source

feat:新增电源管理功能模块及相关接口
feat:新增AirNow设备实体类
feat:冷链设备新增电源编码字段

黄渊昊 4 months ago
parent
commit
57ed3b0c10
15 changed files with 531 additions and 24 deletions
  1. 49 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/airnow/entity/airnow.java
  2. 6 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevice/entity/MonitorDevice.java
  3. 6 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevice/param/MonitorDeviceAddParam.java
  4. 6 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevice/param/MonitorDeviceEditParam.java
  5. 1 24
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevice/service/impl/MonitorDeviceServiceImpl.java
  6. 104 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevicepower/controller/MonitorDevicePowerController.java
  7. 48 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevicepower/entity/MonitorDevicePower.java
  8. 7 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevicepower/mapper/MonitorDevicePowerMapper.java
  9. 4 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevicepower/mapper/mapping/MonitorDeviceMapper.xml
  10. 42 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevicepower/param/MonitorDevicePowerAddParam.java
  11. 48 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevicepower/param/MonitorDevicePowerEditParam.java
  12. 36 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevicepower/param/MonitorDevicePowerIdParam.java
  13. 58 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevicepower/param/MonitorDevicePowerPageParam.java
  14. 31 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevicepower/service/MonitorDevicePowerService.java
  15. 85 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevicepower/service/impl/MonitorDevicePowerServiceImpl.java

+ 49 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/airnow/entity/airnow.java

@@ -0,0 +1,49 @@
+package vip.xiaonuo.coldchain.modular.airnow.entity;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class airnow {
+    /** mac地址 */
+    @Schema(description = "mac地址")
+    private String mac;
+
+    /** 设备名称 */
+    @Schema(description = "设备名称")
+    private String devName;
+
+    /** 显示使能标示 */
+    @Schema(description = "显示使能标示")
+    private String dispEn;
+
+    /** 设备型号 */
+    @Schema(description = "设备型号")
+    private String devType;
+
+    /** 设备固件版本 */
+    @Schema(description = "设备固件版本")
+    private String ver;
+
+    /** 硬件版本 */
+    @Schema(description = "硬件版本")
+    private String hwVer;
+
+    /** 重启原因代码 */
+    @Schema(description = "重启原因代码")
+    private String resetReason;
+
+    /** 电池电量状态 */
+    @Schema(description = "电池电量状态")
+    private String battery;
+
+    /** 接收信号强度指示 */
+    @Schema(description = "接收信号强度指示")
+    private String rssi;
+
+    /** 历史记录条数 */
+    @Schema(description = "历史记录条数")
+    private Integer historyCount;
+}

+ 6 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevice/entity/MonitorDevice.java

@@ -65,6 +65,12 @@ public class MonitorDevice  extends OrgEntity {
     @Schema(description = "设备型号")
     private String modelName;
 
+    /**
+     * 电源编码
+     */
+    @Schema(description = "电源编码")
+    private String powerCode;
+
     /**
      * mac
      */

+ 6 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevice/param/MonitorDeviceAddParam.java

@@ -48,6 +48,12 @@ public class MonitorDeviceAddParam {
     @NotNull(message = "设备型号不能为空")
     private String modelName;
 
+    /**
+     * 电源编码
+     */
+    @Schema(description = "电源编码")
+    private String powerCode;
+
     /**
      * 设备状态(1:正常,2:闲置)
      */

+ 6 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevice/param/MonitorDeviceEditParam.java

@@ -57,6 +57,12 @@ public class MonitorDeviceEditParam {
     @NotNull(message = "设备型号不能为空")
     private String modelName;
 
+    /**
+     * 电源编码
+     */
+    @Schema(description = "电源编码")
+    private String powerCode;
+
     /**
      * 设备状态(1:正常,2:闲置)
      */

+ 1 - 24
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevice/service/impl/MonitorDeviceServiceImpl.java

@@ -418,30 +418,6 @@ public class MonitorDeviceServiceImpl extends ServiceImpl<MonitorDeviceMapper, M
     public void downloadTemplate(HttpServletResponse response) {
         String fileName = "冷链设备导入模板";
         String sheetName = "冷链设备导入模板";
-        /*try {
-//            ExcelUtil.writeExcel(response, null, fileName, sheetName, MonitorDeviceTemplate.class);
-            //表头样式
-            WriteCellStyle headWriteCellStyle = new WriteCellStyle();
-            //设置表头居中对齐
-            headWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
-            //内容样式
-            WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
-            //设置内容靠左对齐
-            contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.LEFT);
-
-            response.setContentType("application/vnd.ms-excel");
-            response.setCharacterEncoding("utf8");
-            response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, StandardCharsets.UTF_8) + ".xlsx");
-
-            HorizontalCellStyleStrategy horizontalCellStyleStrategy = new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
-            EasyExcel.write(response.getOutputStream(), MonitorDeviceTemplate.class)
-                    .excelType(ExcelTypeEnum.XLSX).sheet(sheetName)
-                    .registerWriteHandler(horizontalCellStyleStrategy)
-                    .doWrite(new ArrayList<MonitorDeviceTemplate>());
-        } catch (Exception e) {
-            throw new RuntimeException(e);
-        }*/
-//        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
         response.setContentType("application/vnd.ms-excel");
         response.setCharacterEncoding("utf-8");
 
@@ -474,6 +450,7 @@ public class MonitorDeviceServiceImpl extends ServiceImpl<MonitorDeviceMapper, M
         map.put(0, billingNameList.toArray(new String[0]));
         return map;
     }
+
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void importMonitorDevice(MultipartFile file) {

+ 104 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevicepower/controller/MonitorDevicePowerController.java

@@ -0,0 +1,104 @@
+package vip.xiaonuo.coldchain.modular.monitordevicepower.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import jakarta.validation.Valid;
+import jakarta.validation.constraints.NotEmpty;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+import vip.xiaonuo.coldchain.modular.monitordevice.entity.MonitorDevice;
+import vip.xiaonuo.coldchain.modular.monitordevice.param.MonitorDeviceAddParam;
+import vip.xiaonuo.coldchain.modular.monitordevice.param.MonitorDeviceEditParam;
+import vip.xiaonuo.coldchain.modular.monitordevice.param.MonitorDeviceIdParam;
+import vip.xiaonuo.coldchain.modular.monitordevicepower.entity.MonitorDevicePower;
+import vip.xiaonuo.coldchain.modular.monitordevicepower.param.MonitorDevicePowerAddParam;
+import vip.xiaonuo.coldchain.modular.monitordevicepower.param.MonitorDevicePowerEditParam;
+import vip.xiaonuo.coldchain.modular.monitordevicepower.param.MonitorDevicePowerIdParam;
+import vip.xiaonuo.coldchain.modular.monitordevicepower.param.MonitorDevicePowerPageParam;
+import vip.xiaonuo.coldchain.modular.monitordevicepower.service.MonitorDevicePowerService;
+import vip.xiaonuo.common.annotation.CommonLog;
+import vip.xiaonuo.common.pojo.CommonResult;
+
+import java.util.List;
+
+@Tag(name = "电源管理控制器")
+@RestController
+@Validated
+public class MonitorDevicePowerController {
+
+    @Resource
+    MonitorDevicePowerService monitorDevicePowerService;
+
+    /**
+     * 获取电源管理分页
+     */
+    @Operation(summary = "获取电源管理分页")
+    @SaCheckPermission("/coldchain/monitordevicepower/page")
+    @GetMapping("/coldchain/monitordevicepower/page")
+    public CommonResult<Page<MonitorDevicePower>> page(MonitorDevicePowerPageParam monitorDevicePowerPageParam) {
+        return CommonResult.data(monitorDevicePowerService.page(monitorDevicePowerPageParam));
+    }
+
+    /**
+     * 添加电源管理
+     */
+    @Operation(summary = "添加电源管理")
+    @CommonLog("添加电源管理")
+    @SaCheckPermission("/coldchain/monitordevicepower/add")
+    @PostMapping("/coldchain/monitordevicepower/add")
+    public CommonResult<String> add(@RequestBody @Valid MonitorDevicePowerAddParam monitorDevicePowerAddParam) {
+        monitorDevicePowerService.add(monitorDevicePowerAddParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 编辑电源管理
+     */
+    @Operation(summary = "编辑电源管理")
+    @CommonLog("编辑电源管理")
+    @SaCheckPermission("/coldchain/monitordevicepower/edit")
+    @PostMapping("/coldchain/monitordevicepower/edit")
+    public CommonResult<String> edit(@RequestBody @Valid MonitorDevicePowerEditParam monitorDevicePowerEditParam) {
+        monitorDevicePowerService.edit(monitorDevicePowerEditParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 删除电源管理
+     */
+    @Operation(summary = "删除电源管理")
+    @CommonLog("删除电源管理")
+    @SaCheckPermission("/coldchain/monitordevicepower/delete")
+    @PostMapping("/coldchain/monitordevicepower/delete")
+    public CommonResult<String> delete(@RequestBody @Valid @NotEmpty(message = "集合不能为空")
+                                       List<MonitorDevicePowerIdParam> monitorDevicePowerIdParamList) {
+        monitorDevicePowerService.delete(monitorDevicePowerIdParamList);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 获取电源管理详情
+     */
+    @Operation(summary = "获取电源管理详情")
+    @SaCheckPermission("/coldchain/monitordevicepower/detail")
+    @GetMapping("/coldchain/monitordevicepower/detail")
+    public CommonResult<MonitorDevicePower> detail(@Valid MonitorDevicePowerIdParam monitorDevicePowerIdParam) {
+        return CommonResult.data(monitorDevicePowerService.detail(monitorDevicePowerIdParam));
+    }
+
+    /**
+     * 获取电源列表
+     */
+    @Operation(summary = "获取电源列表")
+    @SaCheckPermission("/coldchain/monitordevicepower/list")
+    @GetMapping("/coldchain/monitordevicepower/list")
+    public CommonResult<List<MonitorDevicePower>> list() {
+        return CommonResult.data(monitorDevicePowerService.myList());
+    }
+}

+ 48 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevicepower/entity/MonitorDevicePower.java

@@ -0,0 +1,48 @@
+package vip.xiaonuo.coldchain.modular.monitordevicepower.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotBlank;
+import lombok.Getter;
+import lombok.Setter;
+import vip.xiaonuo.common.pojo.OrgEntity;
+
+@Getter
+@Setter
+@TableName(value = "monitor_device_power", autoResultMap = true)
+public class MonitorDevicePower extends OrgEntity {
+
+    /** id */
+    @TableId
+    @Schema(description = "唯一标识符,UUID", requiredMode = Schema.RequiredMode.REQUIRED)
+    private String id;
+
+    /** 电源名 */
+    @Schema(description = "电源名称")
+    private String powerName;
+
+    /** 电源编码 */
+    @Schema(description = "电源编码")
+    private String powerCode;
+
+    /** 电源类型 */
+    @Schema(description = "电源类型")
+    private String powerType;
+
+    /** ip */
+    @Schema(description = "ip地址")
+    private String ip;
+
+    /** mac地址 */
+    @Schema(description = "mac地址")
+    private String mac;
+
+    /** 生产厂家 */
+    @Schema(description = "生产厂家")
+    private String factory;
+
+    /** 排序码 */
+    @Schema(description = "排序码")
+    private String sortCode;
+}

+ 7 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevicepower/mapper/MonitorDevicePowerMapper.java

@@ -0,0 +1,7 @@
+package vip.xiaonuo.coldchain.modular.monitordevicepower.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import vip.xiaonuo.coldchain.modular.monitordevicepower.entity.MonitorDevicePower;
+
+public interface MonitorDevicePowerMapper extends BaseMapper<MonitorDevicePower> {
+}

+ 4 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevicepower/mapper/mapping/MonitorDeviceMapper.xml

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="vip.xiaonuo.coldchain.modular.monitordevicepower.mapper.MonitorDevicePowerMapper">
+</mapper>

+ 42 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevicepower/param/MonitorDevicePowerAddParam.java

@@ -0,0 +1,42 @@
+package vip.xiaonuo.coldchain.modular.monitordevicepower.param;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotBlank;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class MonitorDevicePowerAddParam{
+
+    /** 电源名 */
+    @Schema(description = "电源名称")
+    @NotBlank(message = "电源名称不能为空")
+    private String powerName;
+
+    /** 电源编码 */
+    @Schema(description = "电源编码")
+    @NotBlank(message = "电源编码不能为空")
+    private String powerCode;
+
+    /** 电源类型 */
+    @Schema(description = "电源类型")
+    @NotBlank(message = "电源类型不能为空")
+    private String powerType;
+
+    /** ip */
+    @Schema(description = "ip地址")
+    private String ip;
+
+    /** mac地址 */
+    @Schema(description = "mac地址")
+    private String mac;
+
+    /** 生产厂家 */
+    @Schema(description = "生产厂家")
+    private String factory;
+
+    /** 排序码 */
+    @Schema(description = "排序码")
+    private String sortCode;
+}

+ 48 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevicepower/param/MonitorDevicePowerEditParam.java

@@ -0,0 +1,48 @@
+package vip.xiaonuo.coldchain.modular.monitordevicepower.param;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotBlank;
+import lombok.Getter;
+import lombok.Setter;
+import vip.xiaonuo.common.pojo.OrgEntity;
+
+@Getter
+@Setter
+public class MonitorDevicePowerEditParam extends OrgEntity {
+
+    /** id */
+    @Schema(description = "唯一标识符,UUID", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotBlank(message = "id不能为空")
+    private String id;
+
+    /** 电源名 */
+    @Schema(description = "电源名称")
+    @NotBlank(message = "电源名称不能为空")
+    private String powerName;
+
+    /** 电源编码 */
+    @Schema(description = "电源编码")
+    @NotBlank(message = "电源编码不能为空")
+    private String powerCode;
+
+    /** 电源类型 */
+    @Schema(description = "电源类型")
+    @NotBlank(message = "电源类型不能为空")
+    private String powerType;
+
+    /** ip */
+    @Schema(description = "ip地址")
+    private String ip;
+
+    /** mac地址 */
+    @Schema(description = "mac地址")
+    private String mac;
+
+    /** 生产厂家 */
+    @Schema(description = "生产厂家")
+    private String factory;
+
+    /** 排序码 */
+    @Schema(description = "排序码")
+    private String sortCode;
+}

+ 36 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevicepower/param/MonitorDevicePowerIdParam.java

@@ -0,0 +1,36 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.coldchain.modular.monitordevicepower.param;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotBlank;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 采集器管理Id参数
+ *
+ * @author 黄渊昊
+ * @date 2024/11/13 16:55
+ **/
+@Getter
+@Setter
+public class MonitorDevicePowerIdParam {
+
+    /**
+     * id
+     */
+    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotBlank(message = "id不能为空")
+    private String id;
+}

+ 58 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevicepower/param/MonitorDevicePowerPageParam.java

@@ -0,0 +1,58 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.coldchain.modular.monitordevicepower.param;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 采集器管理查询参数
+ *
+ * @author 黄渊昊
+ * @date 2024/11/13 16:55
+ **/
+@Getter
+@Setter
+public class MonitorDevicePowerPageParam {
+
+    /**
+     * 当前页
+     */
+    @Schema(description = "当前页码")
+    private Integer current;
+
+    /**
+     * 每页条数
+     */
+    @Schema(description = "每页条数")
+    private Integer size;
+
+    /**
+     * 排序字段
+     */
+    @Schema(description = "排序字段,字段驼峰名称,如:userName")
+    private String sortField;
+
+    /**
+     * 关键词
+     */
+    @Schema(description = "关键词")
+    private String searchKey;
+
+    /**
+     * 电源名称
+     */
+    @Schema(description = "设备名称")
+    private String powerName;
+}

+ 31 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevicepower/service/MonitorDevicePowerService.java

@@ -0,0 +1,31 @@
+package vip.xiaonuo.coldchain.modular.monitordevicepower.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import vip.xiaonuo.coldchain.modular.monitordevicepower.entity.MonitorDevicePower;
+import vip.xiaonuo.coldchain.modular.monitordevicepower.param.MonitorDevicePowerAddParam;
+import vip.xiaonuo.coldchain.modular.monitordevicepower.param.MonitorDevicePowerEditParam;
+import vip.xiaonuo.coldchain.modular.monitordevicepower.param.MonitorDevicePowerIdParam;
+import vip.xiaonuo.coldchain.modular.monitordevicepower.param.MonitorDevicePowerPageParam;
+
+import java.util.List;
+
+public interface MonitorDevicePowerService  extends IService<MonitorDevicePower> {
+
+    /**
+     * 获取电源管理分页
+     */
+    Page<MonitorDevicePower> page(MonitorDevicePowerPageParam monitorDevicePowerPageParam);
+
+    void add(MonitorDevicePowerAddParam monitorDevicePowerAddParam);
+
+    void edit(MonitorDevicePowerEditParam monitorDevicePowerEditParam);
+
+    void delete(List<MonitorDevicePowerIdParam> monitorDevicePowerIdParamList);
+
+    MonitorDevicePower detail(MonitorDevicePowerIdParam monitorDevicePowerIdParam);
+
+    MonitorDevicePower queryEntity(String id);
+
+    List<MonitorDevicePower> myList();
+}

+ 85 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevicepower/service/impl/MonitorDevicePowerServiceImpl.java

@@ -0,0 +1,85 @@
+package vip.xiaonuo.coldchain.modular.monitordevicepower.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import vip.xiaonuo.auth.core.pojo.SaBaseLoginUser;
+import vip.xiaonuo.auth.core.util.StpLoginUserUtil;
+import vip.xiaonuo.coldchain.modular.monitordevicepower.entity.MonitorDevicePower;
+import vip.xiaonuo.coldchain.modular.monitordevicepower.mapper.MonitorDevicePowerMapper;
+import vip.xiaonuo.coldchain.modular.monitordevicepower.param.MonitorDevicePowerAddParam;
+import vip.xiaonuo.coldchain.modular.monitordevicepower.param.MonitorDevicePowerEditParam;
+import vip.xiaonuo.coldchain.modular.monitordevicepower.param.MonitorDevicePowerIdParam;
+import vip.xiaonuo.coldchain.modular.monitordevicepower.param.MonitorDevicePowerPageParam;
+import vip.xiaonuo.coldchain.modular.monitordevicepower.service.MonitorDevicePowerService;
+import vip.xiaonuo.common.enums.CommonDeleteFlagEnum;
+import vip.xiaonuo.common.enums.CommonSortOrderEnum;
+import vip.xiaonuo.common.exception.CommonException;
+import vip.xiaonuo.common.page.CommonPageRequest;
+
+import java.util.List;
+
+@Service
+public class MonitorDevicePowerServiceImpl extends ServiceImpl<MonitorDevicePowerMapper, MonitorDevicePower> implements MonitorDevicePowerService {
+
+    @Override
+    public Page<MonitorDevicePower> page(MonitorDevicePowerPageParam monitorDevicePowerPageParam) {
+        SaBaseLoginUser loginUser = StpLoginUserUtil.getLoginUser();
+        QueryWrapper<MonitorDevicePower> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(StrUtil.isNotBlank(monitorDevicePowerPageParam.getPowerName())
+                , MonitorDevicePower::getPowerName, monitorDevicePowerPageParam.getPowerName())
+                .eq(MonitorDevicePower::getCreateOrg,loginUser.getOrgId())
+                .orderByAsc(MonitorDevicePower::getSortCode);
+        return this.page(CommonPageRequest.defaultPage(), queryWrapper);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void add(MonitorDevicePowerAddParam monitorDevicePowerAddParam) {
+        MonitorDevicePower monitorDevicePower = BeanUtil.copyProperties(monitorDevicePowerAddParam, MonitorDevicePower.class);
+        this.save(monitorDevicePower);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void edit(MonitorDevicePowerEditParam monitorDevicePowerEditParam) {
+        MonitorDevicePower monitorDevicePower = this.queryEntity(monitorDevicePowerEditParam.getId());
+        BeanUtil.copyProperties(monitorDevicePowerEditParam, monitorDevicePower);
+        this.updateById(monitorDevicePower);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void delete(List<MonitorDevicePowerIdParam> monitorDevicePowerIdParamList) {
+        this.removeByIds(monitorDevicePowerIdParamList);
+    }
+
+    @Override
+    public MonitorDevicePower detail(MonitorDevicePowerIdParam monitorDevicePowerIdParam) {
+        return this.queryEntity(monitorDevicePowerIdParam.getId());
+    }
+
+    @Override
+    public MonitorDevicePower queryEntity(String id) {
+        MonitorDevicePower monitorDevicePower = this.getById(id);
+        if (ObjectUtil.isEmpty(monitorDevicePower)) {
+            throw new CommonException("电源不存在,id值为:{}", id);
+        }
+        return monitorDevicePower;
+    }
+
+    @Override
+    public List<MonitorDevicePower> myList() {
+        SaBaseLoginUser loginUser = StpLoginUserUtil.getLoginUser();
+        LambdaQueryWrapper<MonitorDevicePower> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(MonitorDevicePower::getCreateOrg,loginUser.getOrgId())
+                .eq(MonitorDevicePower::getDeleteFlag, CommonDeleteFlagEnum.NOT_DELETE);
+        return list(queryWrapper);
+    }
+}