Эх сурвалжийг харах

feat:新增下载文件接口
feat:新增获取冰箱趋势接口
feat:新增获取冰箱实时数据接口
fix:修复获取监控设备列表数据不隔离bug
feat:新增首页统计数据接口

黄渊昊 5 сар өмнө
parent
commit
7a09dd128c
16 өөрчлөгдсөн 296 нэмэгдсэн , 31 устгасан
  1. 2 1
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/notice/entity/BizNotice.java
  2. 5 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/notice/service/impl/BizNoticeServiceImpl.java
  3. 3 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/alarmuser/service/impl/AlarmUserServiceImpl.java
  4. 46 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/files/fileController.java
  5. 7 3
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevice/service/impl/MonitorDeviceServiceImpl.java
  6. 26 7
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitornotice/controller/MonitorNoticeController.java
  7. 15 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitornotice/entity/Realtime.java
  8. 57 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitornotice/entity/Trend.java
  9. 3 3
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitornotice/mapper/MonitorNoticeMapper.java
  10. 3 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitornotice/mapper/mapping/MonitorNoticeMapper.xml
  11. 17 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitornotice/param/RealtimeParam.java
  12. 27 0
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitornotice/param/TrendParam.java
  13. 17 3
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitornotice/service/MonitorNoticeService.java
  14. 63 13
      snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitornotice/service/impl/MonitorNoticeServiceImpl.java
  15. 1 0
      snowy-web-app/src/main/java/vip/xiaonuo/core/config/GlobalConfigure.java
  16. 4 1
      snowy-web-app/src/main/resources/application.properties

+ 2 - 1
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/notice/entity/BizNotice.java

@@ -17,6 +17,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Getter;
 import lombok.Setter;
 import vip.xiaonuo.common.pojo.CommonEntity;
+import vip.xiaonuo.common.pojo.OrgEntity;
 
 /**
  * 通知公告实体
@@ -27,7 +28,7 @@ import vip.xiaonuo.common.pojo.CommonEntity;
 @Getter
 @Setter
 @TableName("BIZ_NOTICE")
-public class BizNotice extends CommonEntity {
+public class BizNotice extends OrgEntity {
 
     /** 主键 */
     @TableId

+ 5 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/notice/service/impl/BizNoticeServiceImpl.java

@@ -22,7 +22,10 @@ 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.biz.modular.notice.enums.BizNoticeStatusEnum;
+import vip.xiaonuo.common.enums.CommonDeleteFlagEnum;
 import vip.xiaonuo.common.enums.CommonSortOrderEnum;
 import vip.xiaonuo.common.exception.CommonException;
 import vip.xiaonuo.common.page.CommonPageRequest;
@@ -48,6 +51,7 @@ public class BizNoticeServiceImpl extends ServiceImpl<BizNoticeMapper, BizNotice
 
     @Override
     public Page<BizNotice> page(BizNoticePageParam bizNoticePageParam) {
+        SaBaseLoginUser loginUser = StpLoginUserUtil.getLoginUser();
         QueryWrapper<BizNotice> queryWrapper = new QueryWrapper<BizNotice>().checkSqlInjection();
         if(ObjectUtil.isNotEmpty(bizNoticePageParam.getTitle())) {
             queryWrapper.lambda().like(BizNotice::getTitle, bizNoticePageParam.getTitle());
@@ -71,6 +75,7 @@ public class BizNoticeServiceImpl extends ServiceImpl<BizNoticeMapper, BizNotice
         } else {
             queryWrapper.lambda().orderByAsc(BizNotice::getId);
         }
+        queryWrapper.lambda().eq(BizNotice::getDeleteFlag, CommonDeleteFlagEnum.NOT_DELETE).eq(BizNotice::getCreateOrg,loginUser.getOrgId());
         return this.page(CommonPageRequest.defaultPage(), queryWrapper);
     }
 

+ 3 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/alarmuser/service/impl/AlarmUserServiceImpl.java

@@ -20,6 +20,7 @@ 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 lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import vip.xiaonuo.auth.core.pojo.SaBaseLoginUser;
@@ -47,6 +48,7 @@ import java.util.List;
  * @date  2024/12/02 15:41
  **/
 @Service
+@Slf4j
 public class AlarmUserServiceImpl extends ServiceImpl<AlarmUserMapper, AlarmUser> implements AlarmUserService {
 
     @Override
@@ -115,6 +117,7 @@ public class AlarmUserServiceImpl extends ServiceImpl<AlarmUserMapper, AlarmUser
     @Override
     public void getUserInfo(String code) {
         WeChatUser userInfo = PushUtil.getUserInfo(code);
+        log.info("获取用户信息……:{}", userInfo.getOpenid());
         if(ObjectUtil.isEmpty(userInfo)) {
             throw new CommonException("获取用户信息失败");
         }

+ 46 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/files/fileController.java

@@ -0,0 +1,46 @@
+package vip.xiaonuo.coldchain.modular.files;
+
+import cn.hutool.core.io.IoUtil;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.servlet.http.HttpServletResponse;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import vip.xiaonuo.common.exception.CommonException;
+import vip.xiaonuo.common.pojo.CommonResult;
+
+import java.io.*;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+
+import static cn.dev33.satoken.SaManager.log;
+
+@Tag(name = "文件控制器")
+@RestController
+@Validated
+public class fileController {
+
+    @Value("${file.path}")
+    private String filePath;
+
+    @Operation(summary = "下载文件")
+    @RequestMapping("/download")
+    public void fileDownLoad(HttpServletResponse response, @RequestParam("fileName") String fileName) throws IOException {
+        File file = new File(filePath, fileName);
+        if(!file.exists()){
+            throw new CommonException("下载文件不存在");
+        }
+
+        String encodeFileName = URLEncoder.encode(fileName, StandardCharsets.UTF_8);
+        response.setContentType("application/octet-stream");
+        response.setCharacterEncoding("utf-8");
+        response.setContentLength((int) file.length());
+        response.setHeader("Content-Disposition", "attachment;filename*=utf8''" + encodeFileName);
+
+        IoUtil.copy(Files.newInputStream(file.toPath()), response.getOutputStream());
+    }
+}

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

@@ -55,6 +55,7 @@ import vip.xiaonuo.common.exception.CommonException;
 import vip.xiaonuo.common.page.CommonPageRequest;
 
 import java.time.Instant;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -272,15 +273,18 @@ public class MonitorDeviceServiceImpl extends ServiceImpl<MonitorDeviceMapper, M
             typeQueryWrapper.eq(MonitorDeviceType::getSensorType, sensorType).eq(MonitorDeviceType::getDeleteFlag,CommonDeleteFlagEnum.NOT_DELETE);
         }
         List<MonitorDeviceType> list = monitorDeviceTypeService.list(typeQueryWrapper);
+        List<String> modelNameList = new ArrayList<>();
         for (MonitorDeviceType deviceType : list) {
-            deviceQueryWrapper.or().eq(MonitorDevice::getModelName,deviceType.getCode());
+            modelNameList.add(deviceType.getCode());
         }
+        deviceQueryWrapper.in(MonitorDevice::getModelName,modelNameList);
+        deviceQueryWrapper.eq(MonitorDevice::getCreateOrg,loginUser.getOrgId()).eq(MonitorDevice::getDeleteFlag, CommonDeleteFlagEnum.NOT_DELETE);
         if (!isAll) {
             deviceQueryWrapper.eq(MonitorDevice::getStatus, MonitorDeviceStatusEnum.NORMAL.getValue())
                     .orderByAsc(MonitorDevice::getSortCode);
         }
-        deviceQueryWrapper.eq(MonitorDevice::getCreateOrg,loginUser.getOrgId()).eq(MonitorDevice::getDeleteFlag, CommonDeleteFlagEnum.NOT_DELETE);
-        return list(deviceQueryWrapper);
+        List<MonitorDevice> monitorDeviceList = this.list(deviceQueryWrapper);
+        return monitorDeviceList;
     }
 
     // 通用更新方法,避免代码重复,并处理 timestamp 为空的情况

+ 26 - 7
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitornotice/controller/MonitorNoticeController.java

@@ -24,16 +24,13 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 import vip.xiaonuo.coldchain.core.alarm.bean.SensorAlarm;
 import vip.xiaonuo.coldchain.core.alarm.service.SensorAlarmService;
+import vip.xiaonuo.coldchain.core.bean.influxdb.SensorData;
 import vip.xiaonuo.coldchain.modular.app.param.MessagePageParam;
-import vip.xiaonuo.coldchain.modular.monitornotice.entity.CountWithTime;
-import vip.xiaonuo.coldchain.modular.monitornotice.entity.NoticeByDate;
+import vip.xiaonuo.coldchain.modular.monitordevice.service.MonitorDeviceService;
+import vip.xiaonuo.coldchain.modular.monitornotice.entity.*;
+import vip.xiaonuo.coldchain.modular.monitornotice.param.*;
 import vip.xiaonuo.common.annotation.CommonLog;
 import vip.xiaonuo.common.pojo.CommonResult;
-import vip.xiaonuo.coldchain.modular.monitornotice.entity.MonitorNotice;
-import vip.xiaonuo.coldchain.modular.monitornotice.param.MonitorNoticeAddParam;
-import vip.xiaonuo.coldchain.modular.monitornotice.param.MonitorNoticeEditParam;
-import vip.xiaonuo.coldchain.modular.monitornotice.param.MonitorNoticeIdParam;
-import vip.xiaonuo.coldchain.modular.monitornotice.param.MonitorNoticePageParam;
 import vip.xiaonuo.coldchain.modular.monitornotice.service.MonitorNoticeService;
 
 import jakarta.annotation.Resource;
@@ -56,6 +53,8 @@ public class MonitorNoticeController {
     private MonitorNoticeService monitorNoticeService;
     @Resource
     private SensorAlarmService sensorAlarmService;
+    @Resource
+    private MonitorDeviceService monitorDeviceService;
 
     /**
      * 获取监控通知分页
@@ -91,4 +90,24 @@ public class MonitorNoticeController {
     public CommonResult<List<CountWithTime>> getNoticeByDate() {
         return CommonResult.data(monitorNoticeService.getNoticeByDate());
     }
+
+    /**
+     * 获取冰箱点位监控数据趋势
+     */
+    @Operation(summary = "获取冰箱点位监控数据趋势")
+    @SaCheckPermission("/coldchain/monitornotice/getTrend")
+    @GetMapping("/coldchain/monitornotice/getTrend")
+    public CommonResult<Trend> getTrendList(TrendParam trendParam) {
+        return CommonResult.data(monitorNoticeService.getTrend(trendParam));
+    }
+
+    /**
+     * 获取冰箱实时数据
+     */
+    @Operation(summary = "获取冰箱实时数据")
+    @SaCheckPermission("/coldchain/monitornotice/getRealtime")
+    @GetMapping("/coldchain/monitornotice/getRealtime")
+    public CommonResult<Realtime> getRealtime(RealtimeParam realtimeParam) {
+        return CommonResult.data(monitorNoticeService.getRealtime(realtimeParam));
+    }
 }

+ 15 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitornotice/entity/Realtime.java

@@ -0,0 +1,15 @@
+package vip.xiaonuo.coldchain.modular.monitornotice.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+import vip.xiaonuo.coldchain.core.bean.influxdb.SensorData;
+
+@Getter
+@Setter
+public class Realtime {
+    private String regionName;
+
+    private SensorData sensorData;
+
+    private String updateTime;
+}

+ 57 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitornotice/entity/Trend.java

@@ -0,0 +1,57 @@
+package vip.xiaonuo.coldchain.modular.monitornotice.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.influxdb.annotations.Column;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.format.annotation.DateTimeFormat;
+import vip.xiaonuo.coldchain.core.bean.influxdb.SensorData;
+import vip.xiaonuo.coldchain.modular.app.param.FloatNullToDashSerializer;
+import vip.xiaonuo.coldchain.modular.app.param.SensorEchartDataResult;
+
+import java.util.Date;
+import java.util.List;
+
+@Getter
+@Setter
+public class Trend {
+
+    /**
+     * 温度报警上限 temperature humidity co2
+     */
+    @Schema(description = "温度报警上限")
+    private Float temperatureUp;
+    /**
+     * 温度报警下限
+     */
+    @Schema(description = "温度报警下限")
+    private Float temperatureDown;
+
+    /**
+     * 湿度报警上限 temperature humidity co2
+     */
+
+    @Schema(description = "湿度报警上限")
+    private Float humidityUp;
+    /**
+     * 湿度报警下限
+     */
+    @Schema(description = "湿度报警下限")
+    private Float humidityDown;
+
+    /**
+     * 二氧化碳报警上限 temperature humidity co2
+     */
+    @Schema(description = "二氧化碳报警上限")
+    private Float co2Up;
+
+    /**
+     * 二氧化碳报警下限
+     */
+    @Schema(description = "二氧化碳报警下限")
+    private Float co2Down;
+
+    private SensorEchartDataResult sensorEchartDataResult;
+}

+ 3 - 3
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitornotice/mapper/MonitorNoticeMapper.java

@@ -26,8 +26,8 @@ import java.util.Set;
  * @date  2024/11/25 10:58
  **/
 public interface MonitorNoticeMapper extends BaseMapper<MonitorNotice> {
-    Integer getDayBeforeYesterday(String startTime, String endTime);
-    Integer getYesterday(String startTime, String endTime);
-    Integer getToDay(String startTime, String endTime);
+    Integer getDayBeforeYesterday(String startTime, String endTime,String orgId);
+    Integer getYesterday(String startTime, String endTime,String orgId);
+    Integer getToDay(String startTime, String endTime,String orgId);
 
 }

+ 3 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitornotice/mapper/mapping/MonitorNoticeMapper.xml

@@ -9,6 +9,7 @@
             DATE_FORMAT(CREATE_TIME, '%H:%i:%S') between #{startTime} and #{endTime}
             )
           AND DELETE_FLAG = 'NOT_DELETE'
+          AND CREATE_ORG = #{orgId}
     </select>
 
     <select id="getYesterday" resultType="Integer">
@@ -19,6 +20,7 @@
             DATE_FORMAT(CREATE_TIME, '%H:%i:%S') between #{startTime} and #{endTime}
             )
           AND DELETE_FLAG = 'NOT_DELETE'
+          AND CREATE_ORG = #{orgId}
     </select>
 
     <select id="getToDay" resultType="Integer">
@@ -29,5 +31,6 @@
             DATE_FORMAT(CREATE_TIME, '%H:%i:%S') between #{startTime} and #{endTime}
             )
           AND DELETE_FLAG = 'NOT_DELETE'
+          AND CREATE_ORG = #{orgId}
     </select>
 </mapper>

+ 17 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitornotice/param/RealtimeParam.java

@@ -0,0 +1,17 @@
+package vip.xiaonuo.coldchain.modular.monitornotice.param;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Getter
+@Setter
+public class RealtimeParam {
+
+    private String deviceId;
+
+    private Integer roads;
+}

+ 27 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitornotice/param/TrendParam.java

@@ -0,0 +1,27 @@
+package vip.xiaonuo.coldchain.modular.monitornotice.param;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Getter
+@Setter
+public class TrendParam {
+
+    private String deviceId;
+
+    private Integer roads;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date startTime;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date endTime;
+
+    private String aggregationWindow;
+}

+ 17 - 3
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitornotice/service/MonitorNoticeService.java

@@ -15,6 +15,10 @@ package vip.xiaonuo.coldchain.modular.monitornotice.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import vip.xiaonuo.coldchain.modular.monitornotice.entity.CountWithTime;
 import vip.xiaonuo.coldchain.modular.monitornotice.entity.MonitorNotice;
+import vip.xiaonuo.coldchain.modular.monitornotice.entity.Realtime;
+import vip.xiaonuo.coldchain.modular.monitornotice.entity.Trend;
+import vip.xiaonuo.coldchain.modular.monitornotice.param.RealtimeParam;
+import vip.xiaonuo.coldchain.modular.monitornotice.param.TrendParam;
 
 import java.util.List;
 
@@ -29,20 +33,30 @@ public interface MonitorNoticeService extends IService<MonitorNotice> {
     /**
      * 获取今天报警情况
      */
-    CountWithTime today();
+    CountWithTime today(String orgId);
 
     /**
      * 获取昨天报警情况
      */
-    CountWithTime yesterday();
+    CountWithTime yesterday(String orgId);
 
     /**
      * 获取前天报警情况
      */
-    CountWithTime dayBeforeYesterday();
+    CountWithTime dayBeforeYesterday(String orgId);
 
     /**
      * 获取仅三天报警情况
      */
     List<CountWithTime> getNoticeByDate();
+
+    /**
+     * 获取冰箱点位监控数据趋势
+     */
+    Trend getTrend(TrendParam trendParam);
+
+    /**
+     * 获取冰箱实时数据
+     */
+    Realtime getRealtime(RealtimeParam realtimeParam);
 }

+ 63 - 13
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitornotice/service/impl/MonitorNoticeServiceImpl.java

@@ -12,35 +12,53 @@
  */
 package vip.xiaonuo.coldchain.modular.monitornotice.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import jakarta.annotation.Resource;
 import org.springframework.stereotype.Service;
-import vip.xiaonuo.coldchain.modular.monitornotice.entity.CountWithTime;
-import vip.xiaonuo.coldchain.modular.monitornotice.entity.NoticeByDate;
-import vip.xiaonuo.coldchain.modular.monitornotice.entity.MonitorNotice;
+import vip.xiaonuo.auth.core.util.StpLoginUserUtil;
+import vip.xiaonuo.coldchain.core.bean.influxdb.SensorData;
+import vip.xiaonuo.coldchain.modular.app.param.AppDeviceQueryParams;
+import vip.xiaonuo.coldchain.modular.app.param.SensorEchartDataResult;
+import vip.xiaonuo.coldchain.modular.app.service.AppDeviceService;
+import vip.xiaonuo.coldchain.modular.monitordevice.entity.MonitorDevice;
+import vip.xiaonuo.coldchain.modular.monitordevice.service.MonitorDeviceService;
+import vip.xiaonuo.coldchain.modular.monitornotice.entity.*;
 import vip.xiaonuo.coldchain.modular.monitornotice.enums.DateEnum;
 import vip.xiaonuo.coldchain.modular.monitornotice.mapper.MonitorNoticeMapper;
+import vip.xiaonuo.coldchain.modular.monitornotice.param.RealtimeParam;
+import vip.xiaonuo.coldchain.modular.monitornotice.param.TrendParam;
 import vip.xiaonuo.coldchain.modular.monitornotice.service.MonitorNoticeService;
+import vip.xiaonuo.coldchain.modular.monitortargetregion.entity.MonitorTargetRegion;
+import vip.xiaonuo.coldchain.modular.monitortargetregion.service.MonitorTargetRegionService;
 
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 /**
  * 监控通知Service接口实现类
  *
  * @author 黄渊昊
- * @date  2024/11/25 10:58
+ * @date 2024/11/25 10:58
  **/
 @Service
 public class MonitorNoticeServiceImpl extends ServiceImpl<MonitorNoticeMapper, MonitorNotice> implements MonitorNoticeService {
 
     @Resource
     private MonitorNoticeMapper monitorNoticeMapper;
+    @Resource
+    private MonitorDeviceService monitorDeviceService;
+    @Resource
+    private MonitorTargetRegionService monitorTargetRegionService;
+    @Resource
+    private AppDeviceService appDeviceService;
 
     private static int STP = 3;
 
     @Override
-    public CountWithTime today() {
+    public CountWithTime today(String orgId) {
         List<String> timePeriodList = new ArrayList<>();
         List<Integer> countList = new ArrayList<>();
         int timeFlag = 0;
@@ -49,7 +67,7 @@ public class MonitorNoticeServiceImpl extends ServiceImpl<MonitorNoticeMapper, M
             timeFlag += STP;
             String endTimeStr = getTimeStr(timeFlag);
             timePeriodList.add(startTimeStr + "-" + endTimeStr);
-            Integer toDay = monitorNoticeMapper.getToDay(startTimeStr, endTimeStr);
+            Integer toDay = monitorNoticeMapper.getToDay(startTimeStr, endTimeStr, orgId);
             countList.add(toDay);
         }
         CountWithTime countWithTime = new CountWithTime();
@@ -60,7 +78,7 @@ public class MonitorNoticeServiceImpl extends ServiceImpl<MonitorNoticeMapper, M
     }
 
     @Override
-    public CountWithTime yesterday() {
+    public CountWithTime yesterday(String orgId) {
         List<NoticeByDate> yesterdayNoticeList = new ArrayList<>();
         List<String> timePeriodList = new ArrayList<>();
         List<Integer> countList = new ArrayList<>();
@@ -70,7 +88,7 @@ public class MonitorNoticeServiceImpl extends ServiceImpl<MonitorNoticeMapper, M
             timeFlag += STP;
             String endTimeStr = getTimeStr(timeFlag);
             timePeriodList.add(startTimeStr + "-" + endTimeStr);
-            Integer yesterday = monitorNoticeMapper.getYesterday(startTimeStr, endTimeStr);
+            Integer yesterday = monitorNoticeMapper.getYesterday(startTimeStr, endTimeStr, orgId);
             countList.add(yesterday);
         }
         CountWithTime countWithTime = new CountWithTime();
@@ -81,7 +99,7 @@ public class MonitorNoticeServiceImpl extends ServiceImpl<MonitorNoticeMapper, M
     }
 
     @Override
-    public CountWithTime dayBeforeYesterday() {
+    public CountWithTime dayBeforeYesterday(String orgId) {
         List<NoticeByDate> yesterdayNoticeList = new ArrayList<>();
         List<String> timePeriodList = new ArrayList<>();
         List<Integer> countList = new ArrayList<>();
@@ -91,7 +109,7 @@ public class MonitorNoticeServiceImpl extends ServiceImpl<MonitorNoticeMapper, M
             timeFlag += STP;
             String endTimeStr = getTimeStr(timeFlag);
             timePeriodList.add(startTimeStr + "-" + endTimeStr);
-            Integer dayBeforeYesterday = monitorNoticeMapper.getDayBeforeYesterday(startTimeStr, endTimeStr);
+            Integer dayBeforeYesterday = monitorNoticeMapper.getDayBeforeYesterday(startTimeStr, endTimeStr, orgId);
             countList.add(dayBeforeYesterday);
         }
         CountWithTime countWithTime = new CountWithTime();
@@ -103,11 +121,12 @@ public class MonitorNoticeServiceImpl extends ServiceImpl<MonitorNoticeMapper, M
 
     @Override
     public List<CountWithTime> getNoticeByDate() {
+        String orgId = StpLoginUserUtil.getLoginUser().getOrgId();
         NoticeByDate noticeByDate = new NoticeByDate();
         List<CountWithTime> countWithTimeList = new ArrayList<>();
-        countWithTimeList.add(today());
-        countWithTimeList.add(yesterday());
-        countWithTimeList.add(dayBeforeYesterday());
+        countWithTimeList.add(today(orgId));
+        countWithTimeList.add(yesterday(orgId));
+        countWithTimeList.add(dayBeforeYesterday(orgId));
         return countWithTimeList;
     }
 
@@ -118,4 +137,35 @@ public class MonitorNoticeServiceImpl extends ServiceImpl<MonitorNoticeMapper, M
         }
         return timeStr;
     }
+
+    @Override
+    public Trend getTrend(TrendParam trendParam) {
+        MonitorDevice monitorDevice = monitorDeviceService.getById(trendParam.getDeviceId());
+        MonitorTargetRegion oneByDeviceCodeAndSensorNo = monitorTargetRegionService.findOneByDeviceCodeAndSensorNo(monitorDevice.getDeviceCode(), trendParam.getRoads());
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+        AppDeviceQueryParams appDeviceQueryParams = new AppDeviceQueryParams();
+        appDeviceQueryParams.setSensorCode(oneByDeviceCodeAndSensorNo.getSensorCode());
+        appDeviceQueryParams.setStartTime(format.format(trendParam.getStartTime()));
+        appDeviceQueryParams.setEndTime(format.format(trendParam.getEndTime()));
+        appDeviceQueryParams.setSensorRoute(trendParam.getRoads());
+        appDeviceQueryParams.setAggregationWindow(trendParam.getAggregationWindow());
+        SensorEchartDataResult sensorEchartDataResult = appDeviceService.queryDataByDeviceIdAndRoads(appDeviceQueryParams);
+        Trend trend = BeanUtil.copyProperties(oneByDeviceCodeAndSensorNo, Trend.class);
+        trend.setSensorEchartDataResult(sensorEchartDataResult);
+        return trend;
+    }
+
+    @Override
+    public Realtime getRealtime(RealtimeParam realtimeParam) {
+        MonitorDevice monitorDevice = monitorDeviceService.getById(realtimeParam.getDeviceId());
+        SensorData sensorData = monitorDeviceService.queryLatestDataByDeviceIdAndRoads(realtimeParam.getDeviceId(), realtimeParam.getRoads());
+        Realtime realtime = new Realtime();
+        realtime.setSensorData(sensorData);
+        MonitorTargetRegion oneByDeviceCodeAndSensorNo = monitorTargetRegionService.findOneByDeviceCodeAndSensorNo(monitorDevice.getDeviceCode(), realtimeParam.getRoads());
+        realtime.setRegionName(oneByDeviceCodeAndSensorNo.getName());
+        Date date = new Date();
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        realtime.setUpdateTime(format.format(date));
+        return realtime;
+    }
 }

+ 1 - 0
snowy-web-app/src/main/java/vip/xiaonuo/core/config/GlobalConfigure.java

@@ -109,6 +109,7 @@ public class GlobalConfigure implements WebMvcConfigurer {
             "/coldchain/api/sims/**",
             /* 微信相关的 */
             "/wx/**",
+            "/coldchain/alarmuser/getUserInfo",
             /* 静态资源 */
             "/favicon.ico", "/doc.html", "/webjars/**", "/v3/api-docs/**", "/druid/**",
             /* 移动端静态资源 */

+ 4 - 1
snowy-web-app/src/main/resources/application.properties

@@ -247,4 +247,7 @@ wechat.secret=6b177348efc2b21da105fc126b933db9
 wechat.templateId=WgKOAJrnNhnr2lIkfI_vppfY--7oImjddrd4GPnE_UA
 wechat.miniProgram=wx1eebc072a607c055
 wechat.getAccessTokenUrl=https://api.weixin.qq.com/sns/oauth2/access_token
-wechat.getUserInfoUrl=https://api.weixin.qq.com/sns/userinfo
+wechat.getUserInfoUrl=https://api.weixin.qq.com/sns/userinfo
+
+#file.path=/software/coldchain/ui/dist
+file.path=C:/Users/xiaozun/Desktop