From 33b9d2c203a9998272088ecdf43a15dd53669967 Mon Sep 17 00:00:00 2001 From: cjl <909710561@qq.com> Date: Thu, 28 Mar 2024 15:51:53 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into cjl --- screen-api/src/main/java/com/moral/api/service/impl/HandDeviceServiceImpl.java | 268 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 268 insertions(+), 0 deletions(-) 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..14a1a24 --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/service/impl/HandDeviceServiceImpl.java @@ -0,0 +1,268 @@ +package com.moral.api.service.impl; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +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.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 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.entity.HistoryMinutely; +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() { + LambdaQueryWrapper<Device> wrapper = new LambdaQueryWrapper<>(); + wrapper.select(Device::getMac,Device::getName,Device::getId); + wrapper.eq(Device::getMonitorPointId,123); + wrapper.eq(Device::getIsDelete,Constants.NOT_DELETE); + wrapper.orderByAsc(Device::getCreateTime); + List<Device> devices = deviceMapper.selectList(wrapper); + return devices; + } + + /** + * ������������������ + * + * @param handDevice + * @return + */ + @Override + public HandDevice update(HandDevice handDevice) { + QxUser currentUser = UserHelper.getCurrentUser(); + String state = handDevice.getState(); + if (state.equals("0")){ + HandDevice handDevice1 = getHand(handDevice); + handDevice1.setCreateName(currentUser.getUserName()); + handDeviceMapper.insert(handDevice1); + return handDevice1; + }else { + handDevice.setEndTime(new Date()); + handDevice.setState("0"); + handDevice.setUpdateName(currentUser.getUserName()); + handDeviceMapper.updateById(handDevice); + return 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); + handDevice.setName(deviceByMac.getName()); + handDevice.setMac(deviceByMac.getMac()); + 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); + List<Map<String, Object>> rsMap = new ArrayList<>(); + if (ObjectUtils.isEmpty(endTime)){ + endDate = new Date(); + + } + 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 if (type.equals("minute")){ + List<HistoryMinutely> historyMinutelys = historyHourlyService.getHistoryMinutely(mac, startDate, endDate); + for (HistoryMinutely historyMinutely : historyMinutelys) { + String value = historyMinutely.getValue(); + Map map = JSON.parseObject(value, Map.class); + map.put("time",DateUtils.dateToDateString(historyMinutely.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 if (type.equals("minutely")){ + 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(); + Object endTime = params.get("endTime"); + Date startDate = DateUtils.getDate(params.get("startTime").toString(),DateUtils.yyyy_MM_dd_HH_mm_EN); + Date endDate; + List<Map<String, Object>> rsMap = new ArrayList<>(); + if (ObjectUtils.isEmpty(endTime)){ + endDate = new Date(); + }else { + endDate = DateUtils.getDate(endTime.toString(),DateUtils.yyyy_MM_dd_HH_mm_EN); + } + 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; + } + + + private HandDevice getHand(HandDevice handDevice){ + HandDevice rsHandDevice = new HandDevice(); + rsHandDevice.setName(handDevice.getName()); + rsHandDevice.setMac(handDevice.getMac()); + rsHandDevice.setAddress(handDevice.getAddress()); + rsHandDevice.setLatitude(handDevice.getLatitude()); + rsHandDevice.setLongitude(handDevice.getLongitude()); + rsHandDevice.setIsDelete(Constants.NOT_DELETE); + rsHandDevice.setStartTime(new Date()); + rsHandDevice.setUpdateTime(new Date()); + rsHandDevice.setCreateTime(new Date()); + rsHandDevice.setState("1"); + return rsHandDevice; + } + + +} -- Gitblit v1.8.0