From b8e97933ddcffb65754a82b9993e3a37097cc2d2 Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Thu, 29 Feb 2024 10:02:27 +0800
Subject: [PATCH] fix:手持设备接口提交

---
 screen-api/src/main/java/com/moral/api/entity/HandDevice.java                           |   94 +++++++
 screen-api/src/main/java/com/moral/api/mapper/HandDeviceMapper.java                     |   19 +
 screen-api/src/main/java/com/moral/api/service/HistoryFiveMinutelyService.java          |   10 
 screen-api/src/main/java/com/moral/api/service/impl/HistoryFiveMinutelyServiceImpl.java |   15 +
 screen-api/src/main/java/com/moral/api/controller/HandDeviceController.java             |  139 +++++++++++
 screen-api/src/main/java/com/moral/api/pojo/enums/SysDictTypeEnum.java                  |    2 
 screen-api/src/main/java/com/moral/api/service/impl/HandDeviceServiceImpl.java          |  249 ++++++++++++++++++++
 screen-api/src/main/resources/mapper/HandDeviceMapper.xml                               |   45 +++
 screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java                |    4 
 screen-api/src/main/java/com/moral/api/service/HandDeviceService.java                   |   60 +++++
 screen-api/src/main/java/com/moral/api/pojo/query/handdevice/HandDevicePageCond.java    |   43 +++
 11 files changed, 680 insertions(+), 0 deletions(-)

diff --git a/screen-api/src/main/java/com/moral/api/controller/HandDeviceController.java b/screen-api/src/main/java/com/moral/api/controller/HandDeviceController.java
new file mode 100644
index 0000000..4903b6a
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/controller/HandDeviceController.java
@@ -0,0 +1,139 @@
+package com.moral.api.controller;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+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.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.moral.api.entity.Device;
+import com.moral.api.entity.HandDevice;
+import com.moral.api.pojo.query.handdevice.HandDevicePageCond;
+import com.moral.api.service.DeviceService;
+import com.moral.api.service.HandDeviceService;
+import com.moral.api.service.SpecialDeviceService;
+import com.moral.api.utils.EasyExcelUtils;
+import com.moral.api.utils.NoModelWriteData;
+import com.moral.constant.PageResult;
+import com.moral.constant.ResponseCodeEnum;
+import com.moral.constant.ResultMessage;
+import com.moral.util.WebUtils;
+
+/**
+ * Description //todo
+ *
+ * @author swb
+ * @ClassName HandDeviceController
+ * @date 2024.02.27 10:21
+ */
+
+@Slf4j
+@Api(tags = {"������������"})
+@RestController
+@RequestMapping("/hand")
+public class HandDeviceController {
+
+    @Autowired
+    private HandDeviceService handDeviceService;
+
+    @Autowired
+    private DeviceService deviceService;
+
+    @Autowired
+    private SpecialDeviceService specialDeviceService;
+
+    @PostMapping("/page")
+    @ApiOperation("������")
+    public ResultMessage page(@Valid @RequestBody HandDevicePageCond handDevicePageCond){
+        Page<HandDevice> page = handDeviceService.page(handDevicePageCond);
+        PageResult<HandDevice> rsList = new PageResult<>(page);
+        rsList.setList(page.getRecords());
+        return ResultMessage.ok(rsList);
+    }
+
+    @GetMapping("/check")
+    @ApiOperation("������������������")
+    public  ResultMessage select(){
+        List<Device> check = handDeviceService.check();
+        return ResultMessage.ok(check);
+    }
+
+    @GetMapping("/id")
+    @ApiOperation("������mac������������")
+    public  ResultMessage query(String mac){
+        HandDevice handDevice = handDeviceService.query(mac);
+        return ResultMessage.ok(handDevice);
+    }
+
+    @PostMapping("/update")
+    @ApiOperation("������������������")
+    public  ResultMessage update(@RequestBody Device device){
+        if (device.getId() == null) {
+            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
+                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+        }
+     /*   if (device.getMac() != null) {
+            //������mac���������������,���������������������������������������������
+            QueryWrapper<Device> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("mac", device.getMac()).eq("is_delete", Constants.NOT_DELETE);
+
+            QueryWrapper<SpecialDevice> specialDeviceQueryWrapper = new QueryWrapper<>();
+            specialDeviceQueryWrapper.eq("mac", device.getMac()).eq("is_delete", Constants.NOT_DELETE);
+            if (deviceService.getOne(queryWrapper) != null || specialDeviceService.getOne(specialDeviceQueryWrapper) != null) {
+                return ResultMessage.fail(ResponseCodeEnum.MAC_IS_EXIST.getCode(), ResponseCodeEnum.MAC_IS_EXIST.getMsg());
+            }
+        }*/
+        handDeviceService.update(device);
+        return ResultMessage.ok();
+    }
+
+    @GetMapping("/details")
+    @ApiOperation("������")
+    public  ResultMessage details(String mac,String startTime,String endTime,String type){
+        List<Map<String, Object>> details = handDeviceService.details(mac, startTime, endTime,type);
+        return ResultMessage.ok(details);
+    }
+
+    @GetMapping("/unitExel")
+    @ApiOperation("������")
+    public  void exel(HttpServletResponse response, HttpServletRequest request){
+        Map<String, Object> params = WebUtils.getParametersStartingWith(request, null);
+        List<Map<String, Object>> details = handDeviceService.detailsExecl(params);
+        if (CollectionUtils.isEmpty(details)) {
+            return;
+        }
+        Map<String, Object> map = details.get(0);
+        List<String> list = new ArrayList<>();
+        for (String key : map.keySet()) {
+            list.add(key);
+        }
+        String[] s2 = new String[list.size()];
+        list.toArray(s2);
+        NoModelWriteData d = new NoModelWriteData();
+        d.setFileName("������������");
+        d.setHeadMap(s2);
+        d.setDataStrMap(s2);
+        d.setDataList(details);
+        try {
+            EasyExcelUtils easyExcelUtils = new EasyExcelUtils();
+            easyExcelUtils.noModleWrite(d, response);
+        } catch (Exception e) {
+            int i = 0;
+        }
+    }
+
+}
diff --git a/screen-api/src/main/java/com/moral/api/entity/HandDevice.java b/screen-api/src/main/java/com/moral/api/entity/HandDevice.java
new file mode 100644
index 0000000..01495f0
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/entity/HandDevice.java
@@ -0,0 +1,94 @@
+package com.moral.api.entity;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+/**
+ * Description //todo
+ *
+ * @author swb
+ * @ClassName HandDevice
+ * @date 2024.02.27 09:46
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class HandDevice  extends Model<HandDevice> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * ������id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * ������������
+     */
+    private String name;
+
+    /**
+     * mac���
+     */
+    private String mac;
+
+    /**
+     * ������������
+     */
+    private String address;
+
+    /**
+     * ������
+     */
+    private Double longitude;
+
+    /**
+     * ������
+     */
+    private Double latitude;
+
+    /**
+     * ������������
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date startTime;
+    /**
+     * ������������
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endTime;
+    /**
+     * ���������
+     */
+    private String createName;
+    /**
+     * ���������
+     */
+    private String updateName;
+
+    /**
+     * ������������
+     */
+    private  String isDelete;
+
+    /**
+     * ������������
+     */
+    private Date createTime;
+    /**
+     * ������������
+     */
+    private Date updateTime;
+
+    private  String state;
+
+
+}
diff --git a/screen-api/src/main/java/com/moral/api/mapper/HandDeviceMapper.java b/screen-api/src/main/java/com/moral/api/mapper/HandDeviceMapper.java
new file mode 100644
index 0000000..7359b1e
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/mapper/HandDeviceMapper.java
@@ -0,0 +1,19 @@
+package com.moral.api.mapper;
+
+
+import org.apache.ibatis.annotations.Param;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.moral.api.entity.HandDevice;
+import com.moral.api.pojo.query.handdevice.HandDevicePageCond;
+
+
+public interface HandDeviceMapper  extends BaseMapper<HandDevice> {
+
+
+    Page<HandDevice> Page(Page page, @Param("mac")String mac,
+                          @Param("name")String name,
+                          @Param("startTime")String startTime,
+                          @Param("endTime")String endTime);
+}
diff --git a/screen-api/src/main/java/com/moral/api/pojo/enums/SysDictTypeEnum.java b/screen-api/src/main/java/com/moral/api/pojo/enums/SysDictTypeEnum.java
index 6137328..d3c0f76 100644
--- a/screen-api/src/main/java/com/moral/api/pojo/enums/SysDictTypeEnum.java
+++ b/screen-api/src/main/java/com/moral/api/pojo/enums/SysDictTypeEnum.java
@@ -43,6 +43,8 @@
 
     SYS_AMEND("AMEND","������������������������"),
 
+    SYS_HAND_DEVICE("HANDDEVICE","������������������"),
+
     ;
 
     @EnumValue
diff --git a/screen-api/src/main/java/com/moral/api/pojo/query/handdevice/HandDevicePageCond.java b/screen-api/src/main/java/com/moral/api/pojo/query/handdevice/HandDevicePageCond.java
new file mode 100644
index 0000000..c6df707
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/pojo/query/handdevice/HandDevicePageCond.java
@@ -0,0 +1,43 @@
+package com.moral.api.pojo.query.handdevice;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+import com.moral.api.pojo.query.PageCond;
+
+/**
+ * Description //todo
+ *
+ * @author swb
+ * @ClassName HandDevicePageCond
+ * @date 2024.02.27 10:40
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="HandDevice - ������������������", description="HandDevice - ������������������")
+public class HandDevicePageCond implements Serializable {
+
+
+    @ApiModelProperty(value = "mac���")
+    private  String mac;
+
+    @ApiModelProperty(value = "������������")
+    private PageCond page;
+
+    @ApiModelProperty(value = "������������")
+    private  String startTime;
+
+    @ApiModelProperty(value = "������������")
+    private  String endTime;
+
+    @ApiModelProperty(value = "������������")
+    private String name;
+
+}
diff --git a/screen-api/src/main/java/com/moral/api/service/HandDeviceService.java b/screen-api/src/main/java/com/moral/api/service/HandDeviceService.java
new file mode 100644
index 0000000..4043c7a
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/service/HandDeviceService.java
@@ -0,0 +1,60 @@
+package com.moral.api.service;
+
+import java.util.List;
+import java.util.Map;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import com.moral.api.entity.Device;
+import com.moral.api.entity.HandDevice;
+import com.moral.api.pojo.query.handdevice.HandDevicePageCond;
+
+public interface HandDeviceService extends IService<HandDevice> {
+
+    /**
+     * ������
+     * @param handDevicePageCond
+     * @return
+     */
+    Page<HandDevice> page(HandDevicePageCond handDevicePageCond);
+
+    /**
+     * ������������������
+     * @return
+     */
+    List<Device> check();
+
+
+    /**
+     * ������������������
+     * @return
+     */
+    void update(Device device);
+
+    /**
+     * ������mac������
+     * @param mac
+     * @return
+     */
+    HandDevice query(String mac);
+
+    /**
+     * ������
+     * @param mac
+     * @param startTime
+     * @param endTime
+     * @return
+     */
+    List<Map<String,Object>> details(String mac,String startTime,String endTime,String type);
+
+    /**
+     * ������
+     * @param params
+     * @return
+     */
+    List<Map<String,Object>> detailsExecl(Map<String, Object> params);
+
+
+
+}
diff --git a/screen-api/src/main/java/com/moral/api/service/HistoryFiveMinutelyService.java b/screen-api/src/main/java/com/moral/api/service/HistoryFiveMinutelyService.java
index 3125d8d..dbd3701 100644
--- a/screen-api/src/main/java/com/moral/api/service/HistoryFiveMinutelyService.java
+++ b/screen-api/src/main/java/com/moral/api/service/HistoryFiveMinutelyService.java
@@ -55,4 +55,14 @@
 
    QueryFiveDataByMacVO queryFiveDataByMac(String name,String chooseTime,String time);
 
+
+    /**
+     * @Description: ������������������������mac���������
+     * @Param: [mac, startDate, endDate]
+     * @return: java.util.List<com.moral.api.entity.HistoryHourly>
+     * @Author: ���������
+     * @Date: 2021/9/23
+     */
+    List<HistoryFiveMinutely> queryFiveMinutely(String mac, Date startDate, Date endDate);
+
 }
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/HandDeviceServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/HandDeviceServiceImpl.java
new file mode 100644
index 0000000..3c7bc5d
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/service/impl/HandDeviceServiceImpl.java
@@ -0,0 +1,249 @@
+package com.moral.api.service.impl;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.ObjectUtils;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import com.alibaba.fastjson.JSON;
+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 com.moral.api.config.Interceptor.UserHelper;
+import com.moral.api.entity.Device;
+import com.moral.api.entity.HandDevice;
+import com.moral.api.entity.HistoryFiveMinutely;
+import com.moral.api.entity.HistoryHourly;
+import com.moral.api.mapper.DeviceMapper;
+import com.moral.api.mapper.HandDeviceMapper;
+import com.moral.api.pojo.query.handdevice.HandDevicePageCond;
+import com.moral.api.pojo.vo.user.QxUser;
+import com.moral.api.service.DeviceService;
+import com.moral.api.service.HandDeviceService;
+import com.moral.api.service.HistoryFiveMinutelyService;
+import com.moral.api.service.HistoryHourlyService;
+import com.moral.constant.Constants;
+import com.moral.util.DateUtils;
+
+
+
+/**
+ * Description //todo
+ *
+ * @author swb
+ * @ClassName HandDeviceServiceImpl
+ * @date 2024.02.27 10:25
+ */
+@Service
+public class HandDeviceServiceImpl extends ServiceImpl<HandDeviceMapper, HandDevice> implements HandDeviceService {
+
+
+    @Autowired
+    private HandDeviceMapper handDeviceMapper;
+
+    @Autowired
+    private DeviceService deviceService;
+    @Autowired
+    private DeviceMapper deviceMapper;
+    @Autowired
+    private HistoryHourlyService historyHourlyService;
+
+
+    @Autowired
+    private HistoryFiveMinutelyService historyFiveMinutelyService;
+
+    /**
+     * ������
+     *
+     * @param handDevicePageCond
+     * @return
+     */
+    @Override
+    public Page<HandDevice> page(HandDevicePageCond handDevicePageCond) {
+        Page<HandDevice> page = handDeviceMapper.Page(handDevicePageCond.getPage().convertPage(),
+                                                    handDevicePageCond.getMac(),
+                                                    handDevicePageCond.getName(),
+                                                    handDevicePageCond.getStartTime(),
+                                                    handDevicePageCond.getEndTime());
+        return page;
+    }
+
+    /**
+     * ������������������
+     * @return
+     */
+    @Override
+    public List<Device> check() {
+        List<Device> organizationDevice = deviceService.getOrganizationDevice(123);
+        return organizationDevice;
+    }
+
+    /**
+     * ������������������
+     *
+     * @param device
+     * @return
+     */
+    @Override
+    @Transactional
+    public void update(Device device) {
+        QxUser currentUser = UserHelper.getCurrentUser();
+        deviceMapper.updateById(device);
+        QueryWrapper<HandDevice> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("mac",device.getMac());
+        queryWrapper.orderByDesc("create_time");
+        List<HandDevice> handDevices = handDeviceMapper.selectList(queryWrapper);
+        HandDevice handDevice = new HandDevice();
+        handDevice.setAddress(device.getAddress());
+        handDevice.setName(device.getName());
+        handDevice.setMac(device.getMac());
+        handDevice.setLongitude(device.getLongitude());
+        handDevice.setLatitude(device.getLatitude());
+        handDevice.setIsDelete(Constants.NOT_DELETE);
+        handDevice.setUpdateName(currentUser.getUserName());
+        handDevice.setStartTime(new Date());
+        handDevice.setUpdateTime(new Date());
+        handDevice.setCreateTime(new Date());
+        handDevice.setState("1");
+        if (!ObjectUtils.isEmpty(handDevices)){
+            HandDevice handDevice1 = handDevices.get(0);
+            String state = handDevice1.getState();
+            if (state.equals("1")){
+                handDevice1.setState("0");
+                handDevice1.setEndTime(new Date());
+                handDeviceMapper.updateById(handDevice1);
+            }else {
+            handDeviceMapper.insert(handDevice);
+            }
+        }else {
+            handDeviceMapper.insert(handDevice);
+        }
+
+    }
+
+    @Override
+    public HandDevice query(String mac) {
+        QueryWrapper<HandDevice> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("mac",mac);
+        queryWrapper.orderByDesc("create_time");
+        List<HandDevice> handDevices = handDeviceMapper.selectList(queryWrapper);
+        HandDevice handDevice;
+        if (ObjectUtils.isEmpty(handDevices)){
+            handDevice = new HandDevice();
+            Device deviceByMac = deviceService.getDeviceByMac(mac);
+            BeanUtils.copyProperties(deviceByMac,handDevice);
+            handDevice.setState("0");
+        }else {
+            handDevice = handDevices.get(0);
+        }
+        return handDevice;
+    }
+
+    /**
+     * ������
+     *
+     * @param mac
+     * @param startTime
+     * @param endTime
+     * @return
+     */
+    @Override
+    public List<Map<String, Object>> details(String mac, String startTime, String endTime,String type) {
+        Date startDate = DateUtils.getDate(startTime,DateUtils.yyyy_MM_dd_HH_mm_EN);
+        Date endDate = DateUtils.getDate(endTime,DateUtils.yyyy_MM_dd_HH_mm_EN);
+//        Date startDate = DateUtils.getDate("2024-01-02 00:00:00",DateUtils.yyyy_MM_dd_HH_mm_EN);
+//        Date endDate = DateUtils.getDate("2024-01-03 05:00:00",DateUtils.yyyy_MM_dd_HH_mm_EN);
+        List<Map<String, Object>> rsMap = new ArrayList<>();
+
+        if (type.equals("hour")){
+            List<HistoryHourly> valueByMacAndTime = historyHourlyService.getValueByMacAndTime(mac, startDate, endDate);
+            for (HistoryHourly historyHourly : valueByMacAndTime) {
+                String value = historyHourly.getValue();
+                Map map = JSON.parseObject(value, Map.class);
+                map.put("time",DateUtils.dateToDateString(historyHourly.getTime()));
+                map.put("a21001",ObjectUtils.isEmpty(map.get("a21001"))?0:map.get("a21001"));
+                map.put("a21028",ObjectUtils.isEmpty(map.get("a21028"))?0:map.get("a21028"));
+                rsMap.add(map);
+            }
+        }else {
+            List<HistoryFiveMinutely> historyFiveMinutelies = historyFiveMinutelyService.queryFiveMinutely(mac, startDate, endDate);
+            for (HistoryFiveMinutely historyFiveMinutely : historyFiveMinutelies) {
+                String value = historyFiveMinutely.getValue();
+                Map map = JSON.parseObject(value, Map.class);
+                map.put("time",DateUtils.dateToDateString(historyFiveMinutely.getTime()));
+                map.put("a21001",ObjectUtils.isEmpty(map.get("a21001"))?0:map.get("a21001"));
+                map.put("a21028",ObjectUtils.isEmpty(map.get("a21028"))?0:map.get("a21028"));
+                map.put("a31001",ObjectUtils.isEmpty(map.get("a31001"))?0:map.get("a31001"));
+                rsMap.add(map);
+            }
+        }
+        return rsMap;
+    }
+
+    /**
+     * ������
+     * @param params
+     * @return
+     */
+    @Override
+    public List<Map<String, Object>> detailsExecl(Map<String, Object> params) {
+        String type = params.get("type").toString();
+        String mac = params.get("mac").toString();
+        Date startDate = DateUtils.getDate(params.get("startTime").toString(),DateUtils.yyyy_MM_dd_HH_mm_EN);
+        Date endDate = DateUtils.getDate(params.get("endTime").toString(),DateUtils.yyyy_MM_dd_HH_mm_EN);
+//        Date startDate = DateUtils.getDate("2024-01-02 00:00:00",DateUtils.yyyy_MM_dd_HH_mm_EN);
+//        Date endDate = DateUtils.getDate("2024-01-03 05:00:00",DateUtils.yyyy_MM_dd_HH_mm_EN);
+        List<Map<String, Object>> rsMap = new ArrayList<>();
+        if (type.equals("hour")){
+            List<HistoryHourly> valueByMacAndTime = historyHourlyService.getValueByMacAndTime(mac, startDate, endDate);
+            for (HistoryHourly historyHourly : valueByMacAndTime) {
+                LinkedHashMap<String, Object> map1 = new LinkedHashMap<>();
+                String value = historyHourly.getValue();
+                Map map = JSON.parseObject(value, Map.class);
+                map1.put("������",DateUtils.dateToDateString(historyHourly.getTime()));
+                map1.put("pm25",ObjectUtils.isEmpty(map.get("a34004"))?0:map.get("a34004"));
+                map1.put("pm10",ObjectUtils.isEmpty(map.get("a34002"))?0:map.get("a34002"));
+                map1.put("������������",ObjectUtils.isEmpty(map.get("a21004"))?0:map.get("a21004"));
+                map1.put("������������",ObjectUtils.isEmpty(map.get("a21026"))?0:map.get("a21026"));
+                map1.put("������������",ObjectUtils.isEmpty(map.get("a21005"))?0:map.get("a21005"));
+                map1.put("������",ObjectUtils.isEmpty(map.get("a01006"))?0:map.get("a01006"));
+                map1.put("������",ObjectUtils.isEmpty(map.get("a01001"))?0:map.get("a01001"));
+                map1.put("������",ObjectUtils.isEmpty(map.get("a01002"))?0:map.get("a01002"));
+                map1.put("tvoc",ObjectUtils.isEmpty(map.get("a99054"))?0:map.get("a99054"));
+                map1.put("������",ObjectUtils.isEmpty(map.get("a31001"))?0:map.get("a31001"));
+                map1.put("���������",ObjectUtils.isEmpty(map.get("a21028"))?0:map.get("a21028"));
+                map1.put("������",ObjectUtils.isEmpty(map.get("a21001"))?0:map.get("a21001"));
+                rsMap.add(map1);
+            }
+        }else {
+            List<HistoryFiveMinutely> historyFiveMinutelies = historyFiveMinutelyService.queryFiveMinutely(mac, startDate, endDate);
+            for (HistoryFiveMinutely historyFiveMinutely : historyFiveMinutelies) {
+                LinkedHashMap<String, Object> map1 = new LinkedHashMap<>();
+                String value = historyFiveMinutely.getValue();
+                Map map = JSON.parseObject(value, Map.class);
+                map1.put("������",DateUtils.dateToDateString(historyFiveMinutely.getTime()));
+                map1.put("pm25",ObjectUtils.isEmpty(map.get("a34004"))?0:map.get("a34004"));
+                map1.put("pm10",ObjectUtils.isEmpty(map.get("a34002"))?0:map.get("a34002"));
+                map1.put("������������",ObjectUtils.isEmpty(map.get("a21004"))?0:map.get("a21004"));
+                map1.put("������������",ObjectUtils.isEmpty(map.get("a21026"))?0:map.get("a21026"));
+                map1.put("������������",ObjectUtils.isEmpty(map.get("a21005"))?0:map.get("a21005"));
+                map1.put("������",ObjectUtils.isEmpty(map.get("a01006"))?0:map.get("a01006"));
+                map1.put("������",ObjectUtils.isEmpty(map.get("a01001"))?0:map.get("a01001"));
+                map1.put("������",ObjectUtils.isEmpty(map.get("a01002"))?0:map.get("a01002"));
+                map1.put("tvoc",ObjectUtils.isEmpty(map.get("a99054"))?0:map.get("a99054"));
+                map1.put("������",ObjectUtils.isEmpty(map.get("a31001"))?0:map.get("a31001"));
+                map1.put("���������",ObjectUtils.isEmpty(map.get("a21028"))?0:map.get("a21028"));
+                map1.put("������",ObjectUtils.isEmpty(map.get("a21001"))?0:map.get("a21001"));
+                rsMap.add(map1);
+            }
+        }
+        return rsMap;
+    }
+
+
+}
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/HistoryFiveMinutelyServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/HistoryFiveMinutelyServiceImpl.java
index 5494430..5084b5b 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/HistoryFiveMinutelyServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/HistoryFiveMinutelyServiceImpl.java
@@ -328,6 +328,21 @@
         return queryFiveDataByMacVO;
     }
 
+
+    /**
+     * @Description: ������������������������mac���������
+     * @Param: [mac, startDate, endDate]
+     * @return: java.util.List<com.moral.api.entity.HistoryHourly>
+     * @Author: ���������
+     * @Date: 2021/9/23
+     */
+
+    @Override
+    public List<HistoryFiveMinutely> queryFiveMinutely(String mac, Date startDate, Date endDate) {
+        List<HistoryFiveMinutely> valueByMacAndTime = getValueByMacAndTime(mac, startDate, endDate);
+        return valueByMacAndTime;
+    }
+
     //���������������������������������
     private Map<String, Object> orderSixParam(Map<String, Object> data) {
         LinkedHashMap result = new LinkedHashMap();
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java
index cde7c7f..1b762a6 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java
@@ -217,8 +217,12 @@
         result.put("userId", user.getId());
         result.put("account", user.getAccount());
         ResponsibilityUnit responsibilityUnit = responsibilityUnitMapper.selectById(user.getUnitId());
+        //������������������
         List<Integer> list = responsibilityUnitMapper.selectCodeList(SysDictTypeEnum.SYS_DEVICE.value, user.getId());
+        //������������������������
+        List<Integer> handList = responsibilityUnitMapper.selectCodeList(SysDictTypeEnum.SYS_HAND_DEVICE.value, user.getId());
         result.put("device",ObjectUtils.isEmpty(list)? StateEnum.NOT_EFFECTIVE.value : StateEnum.TAKE_EFFECT.value);
+        result.put("handDevice",ObjectUtils.isEmpty(handList)? StateEnum.NOT_EFFECTIVE.value : StateEnum.TAKE_EFFECT.value);
         result.put("unName",Objects.nonNull(responsibilityUnit)&&Objects.nonNull(responsibilityUnit.getUnitName())?responsibilityUnit.getUnitName():"���������������");
         result.put("openId",openid);
         Map<String, Object> userInfo = new LinkedHashMap<>();
diff --git a/screen-api/src/main/resources/mapper/HandDeviceMapper.xml b/screen-api/src/main/resources/mapper/HandDeviceMapper.xml
new file mode 100644
index 0000000..18d162a
--- /dev/null
+++ b/screen-api/src/main/resources/mapper/HandDeviceMapper.xml
@@ -0,0 +1,45 @@
+<?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="com.moral.api.mapper.HandDeviceMapper">
+
+        <!-- ������������������������ -->
+        <resultMap id="BaseResultMap" type="com.moral.api.entity.HandDevice">
+                    <id column="id" property="id" />
+                    <result column="name" property="name" />
+                    <result column="mac" property="mac" />
+                    <result column="address" property="address" />
+                    <result column="longitude" property="longitude" />
+                    <result column="latitude" property="latitude" />
+                    <result column="start_time" property="startTime" />
+                    <result column="is_delete" property="isDelete" />
+                    <result column="end_time" property="endTime" />
+                    <result column="create_name" property="createName" />
+                    <result column="update_name" property="updateName" />
+        </resultMap>
+
+    <sql id="Base_Column_List">
+        id,name,mac,address,longitude,latitude,start_time,is_delete,end_time
+    </sql>
+    <select id="Page" resultType="com.moral.api.entity.HandDevice">
+        select
+        <include refid="Base_Column_List"/>
+        from hand_device
+        <where>
+            1=1 and is_delete=0
+            <if test="name != null and name != ''">
+                and name = #{name}
+            </if>
+            <if test="mac != null and mac != ''">
+                and mac = #{mac}
+            </if>
+            <if test="startTime != null and startTime != '' ">
+                and date(start_time) <![CDATA[>=]]> #{startTime}
+            </if>
+            <if test="endTime != null and endTime !='' ">
+                and date(end_time) <![CDATA[<=]]>  #{endTime}
+            </if>
+        </where>
+
+    </select>
+
+</mapper>
\ No newline at end of file

--
Gitblit v1.8.0