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/mapper/HandDeviceMapper.java | 19
screen-api/src/main/java/com/moral/api/service/HistoryFiveMinutelyService.java | 10
screen-api/src/main/java/com/moral/api/controller/HandDeviceController.java | 112 +++++
screen-api/src/main/java/com/moral/api/pojo/enums/SysDictTypeEnum.java | 2
screen-api/src/main/java/com/moral/api/pojo/vo/monitorPoint/MonitorPointVos.java | 40 +
screen-api/src/main/resources/mapper/HandDeviceMapper.xml | 48 ++
screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java | 8
screen-api/src/main/java/com/moral/api/controller/DeviceOnlineRateController.java | 12
screen-api/src/main/java/com/moral/api/mapper/DeviceMapper.java | 5
screen-api/src/main/java/com/moral/api/mapper/MonitorPointMapper.java | 2
screen-api/src/main/java/com/moral/api/entity/HandDevice.java | 94 ++++
screen-api/src/main/java/com/moral/api/dto/OnlineRatePageCond.java | 5
screen-api/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java | 59 ++
screen-api/src/main/java/com/moral/api/service/DeviceService.java | 8
screen-api/src/main/java/com/moral/api/service/OrganizationService.java | 1
screen-api/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java | 67 +-
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 +
screen-api/src/main/resources/mapper/DeviceMapper.xml | 14
screen-api/src/main/java/com/moral/api/service/SpecialDeviceService.java | 3
screen-api/src/main/resources/word/盐城市走航监测报告.docx | 0
screen-api/src/main/java/com/moral/api/service/impl/DataDisplayServiceImpl.java | 115 +++-
screen-api/src/main/java/com/moral/api/service/impl/HistoryFiveMinutelyServiceImpl.java | 15
screen-api/src/main/java/com/moral/api/controller/CruiserController.java | 200 ++++++++
screen-api/src/main/java/com/moral/api/pojo/bo/ExcelBO.java | 4
screen-api/src/main/java/com/moral/api/controller/OrganizationController.java | 8
screen-api/src/main/java/com/moral/api/pojo/vo/excel/DailyVo.java | 5
screen-api/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java | 58 ++
screen-api/src/main/java/com/moral/api/entity/Organization.java | 11
screen-api/src/main/java/com/moral/api/service/impl/HandDeviceServiceImpl.java | 268 ++++++++++++
screen-api/src/main/resources/mapper/MonitorPointMapper.xml | 5
31 files changed, 1,201 insertions(+), 100 deletions(-)
diff --git a/screen-api/src/main/java/com/moral/api/controller/CruiserController.java b/screen-api/src/main/java/com/moral/api/controller/CruiserController.java
index 31908f5..23c3e71 100644
--- a/screen-api/src/main/java/com/moral/api/controller/CruiserController.java
+++ b/screen-api/src/main/java/com/moral/api/controller/CruiserController.java
@@ -4,8 +4,8 @@
import cn.hutool.poi.word.WordUtil;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
+import com.deepoove.poi.data.PictureRenderData;
import com.deepoove.poi.data.RowRenderData;
-import com.deepoove.poi.data.TextRenderData;
import com.deepoove.poi.policy.HackLoopTableRenderPolicy;
import com.moral.api.entity.Dustld;
import com.moral.api.exception.BusinessException;
@@ -17,6 +17,7 @@
import com.moral.api.service.SpecialDeviceService;
import com.moral.constant.ResponseCodeEnum;
import com.moral.constant.ResultMessage;
+import com.moral.util.DateUtils;
import com.moral.util.WebUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -26,17 +27,16 @@
import org.apache.commons.io.FileUtils;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.system.ApplicationHome;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.springframework.util.ResourceUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
-
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
-import java.net.URL;
import java.net.URLEncoder;
import java.text.ParseException;
import java.util.ArrayList;
@@ -153,19 +153,21 @@
return ObjectUtils.isEmpty(daily) ? ResultMessage.ok() : ResultMessage.ok(daily);
}
+
+
/**
* ���������������������
- * @param id
+ * @param params
* @return
*/
- @GetMapping("loadDaily")
- public ResultMessage loadDaily(Integer id){
-
- DailyVo dailyVo = specialDeviceService.loadDaily(id);
- if (dailyVo==null){
- return ResultMessage.fail(ResponseCodeEnum.TARGET_IS_NULL.getCode(), ResponseCodeEnum.TARGET_IS_NULL.getMsg());
+ @PostMapping("loadDaily")
+ public void loadDaily( @RequestBody Map<String,Object> params,HttpServletResponse response) throws IOException {
+ List<Integer> ids = (List<Integer>) params.get("ids");
+ List<DailyVo> dailyVos = specialDeviceService.loadDaily(ids);
+ if (ObjectUtils.isEmpty(dailyVos)){
+ throw new BusinessException("���������������������");
}
- return new ResultMessage(ResponseCodeEnum.SUCCESS.getCode(), ResponseCodeEnum.SUCCESS.getMsg(),dailyVo);
+ dailyDocx(dailyVos,response);
}
/**
@@ -397,4 +399,180 @@
}
+
+ public void dailyDocx( List<DailyVo> dailyVos,HttpServletResponse response) throws IOException {
+// String path = getPath(fileName);
+ //������jar���������������
+ ApplicationHome applicationHome = new ApplicationHome(getClass());
+ //���jar������������������������������upload������������������������������������
+ String path = applicationHome.getSource().getParentFile().toString() + "\\static\\img";
+ try {
+ //InputStream inputStream = WordUtil.class.getClassLoader().getResourceAsStream("word/���������������������.docx");
+ InputStream stream = WordUtil.class.getClassLoader().getResourceAsStream("word/���������������������������.docx");
+ //������������������
+ File file = new File("word/���������������������������.docx");
+ //���������������������������������������������������������������������������������������������
+ FileUtils.copyInputStreamToFile(stream, file);
+ //��������������������������������������������� ������������������������
+ String filePath = file.getAbsolutePath();
+
+
+
+ //������������������������������������������������������{{}}������������������������,map������������key������������������������������������������
+ HashMap<String, Object> map = new HashMap<>();
+ //������������������������
+ //RowRenderData header1 = RowRenderData.build(new TextRenderData("6495ED", "������"), new TextRenderData("6495ED", "������"),new TextRenderData("6495ED", "���������������������/������������"));
+
+ //���������������������������������������������������������list������������������������������foreach������������������
+ List<Map> detailList1 = new ArrayList<>();
+ List<Map> detailList2 = new ArrayList<>();
+ List<Map> detailList3 = new ArrayList<>();
+ List<Map> detailList4 = new ArrayList<>();
+ List<Map> detailList5 = new ArrayList<>();
+ List<Map> detailList6 = new ArrayList<>();
+ List<Map> detailList7 = new ArrayList<>();
+ List<Map> detailList8 = new ArrayList<>();
+ StringBuilder builder = new StringBuilder();
+ List<Map> pic1 = new ArrayList<>();
+ List<Map> pic2 = new ArrayList<>();
+ List<Map> pic3 = new ArrayList<>();
+ List<Map> pic4 = new ArrayList<>();
+ List<Map> pic5 = new ArrayList<>();
+ List<Map> pic6 = new ArrayList<>();
+ List<Map> pic7 = new ArrayList<>();
+ List<Map> pic8 = new ArrayList<>();
+
+// picMap.put("urlImg", Pictures.ofUrl(str, PictureType.JPEG).size(width, height).create());
+// picMap.put("urlImg",new PictureRenderData(500, 500, "G:\\home\\3d423e3cb05d7edc35c38e3173af2a0d.jpg"));
+// picMap.put("urlImg1",new PictureRenderData(500, 500, "G:\\home\\3d423e3cb05d7edc35c38e3173af2a0d.jpg"));
+// picMap.put("urlImg", Pictures.ofUrl("G:\\home\\3d423e3cb05d7edc35c38e3173af2a0d.jpg", PictureType.JPEG).size(500, 500).create());
+// picMap.put("urlImg1", Pictures.ofUrl("G:\\home\\3d423e3cb05d7edc35c38e3173af2a0d.jpg", PictureType.JPEG).size(500, 500).create());
+ int i =1;
+ for (DailyVo dailyVo : dailyVos) {
+ Map picMap1 = new HashMap();
+ Map picMap2 = new HashMap();
+ Map picMap3 = new HashMap();
+ Map picMap4 = new HashMap();
+ Map picMap5 = new HashMap();
+ Map picMap6 = new HashMap();
+ Map picMap7 = new HashMap();
+ Map picMap8 = new HashMap();
+ List<String> images = dailyVo.getImages();
+ if (!ObjectUtils.isEmpty(images)){
+
+ picMap1.put("urlImg"+i,new PictureRenderData(500, 500, path+"\\"+images.get(0)));
+// picMap1.put("urlImg"+i,new PictureRenderData(500, 500, path+"\\0a4ab467-304d-4871-948f-55aa7e820975.png"));
+ pic1.add(picMap1);
+ picMap2.put("urlImg"+i,new PictureRenderData(500, 500, path+"\\"+images.get(1)));
+// picMap2.put("urlImg"+i,new PictureRenderData(500, 500, path+"\\0a4ab467-304d-4871-948f-55aa7e820975.png"));
+ pic2.add(picMap2);
+ picMap3.put("urlImg"+i,new PictureRenderData(500, 500, path+"\\"+images.get(2)));
+ pic3.add(picMap3);
+ picMap4.put("urlImg"+i,new PictureRenderData(500, 500, path+"\\"+images.get(3)));
+ pic4.add(picMap4);
+ picMap5.put("urlImg"+i,new PictureRenderData(500, 500, path+"\\"+images.get(4)));
+ pic5.add(picMap5);
+ picMap6.put("urlImg"+i,new PictureRenderData(500, 500, path+"\\"+images.get(5)));
+ pic6.add(picMap6);
+ picMap7.put("urlImg"+i,new PictureRenderData(500, 500, path+"\\"+images.get(6)));
+ pic7.add(picMap7);
+ picMap8.put("urlImg"+i,new PictureRenderData(500, 500, path+"\\"+images.get(7)));
+ pic8.add(picMap8);
+ i++;
+ }
+ detailList1.add(dailyVo.getCode());
+ detailList2.add(dailyVo.getCode());
+ detailList3.add(dailyVo.getCode());
+ detailList4.add(dailyVo.getCode());
+ detailList5.add(dailyVo.getCode());
+ detailList6.add(dailyVo.getCode());
+ detailList7.add(dailyVo.getCode());
+ detailList8.add(dailyVo.getCode());
+ builder.append("("+dailyVo.getCode().get("mac")+")������������������������������������������������������������������������������������������7���������������������PM2.5���������������"+dailyVo.getCode().get("avgPm25")+"ug/m3���PM10���������������"+dailyVo.getCode().get("avgPm10")+"ug/m3���NO2���������������"
+ +dailyVo.getCode().get("avgNO2")+"ug/m3���CO���������������"+dailyVo.getCode().get("avgCO")+"mg/m3���SO2���������������"+dailyVo.getCode().get("avgSO2")+"ug/m3���O3���������������"+dailyVo.getCode().get("avgO3")+"ug/m3���VOCs������������"+dailyVo.getCode().get("avgVOC")+"mg/m3���"+"\n"+" ");
+ }
+/* for (HashMap<String, Object> list : lists) {
+ detailList1.add(list);
+ detailList2.add(list);
+ detailList3.add(list);
+ detailList4.add(list);
+ detailList5.add(list);
+ detailList6.add(list);
+ detailList7.add(list);
+ detailList8.add(list);
+ builder.append("("+list.get("mac")+")������������������������������������������������������������������������������������������7���������������������PM2.5���������������"+list.get("avgPm25")+"ug/m3���PM10���������������"+list.get("avgPm10")+"ug/m3���NO2���������������"
+ +list.get("avgNO2")+"ug/m3���CO���������������"+list.get("avgCO")+"mg/m3���SO2���������������"+list.get("avgSO2")+"ug/m3���O3���������������"+list.get("avgO3")+"ug/m3���VOCs������������"+list.get("avgVOC")+"mg/m3���"+"\n"+" ");
+ }*/
+/* List<Map> pic = new ArrayList<>();
+ for (MultipartFile multipartFile : files) {
+ Map picMap = new HashMap();
+ InputStream inputStream = multipartFile.getInputStream();
+ picMap.put("urlImg", Pictures.ofStream(inputStream, PictureType.JPEG).size(500, 500).create());
+ pic.add(picMap);
+ }*/
+
+
+ String name = dailyVos.get(0).getName();
+ String type = dailyVos.get(0).getType();
+ map.put("code",builder);
+ map.put("time1",DateUtils.getCurCNDate());
+ map.put("name",name);
+ map.put("type",type);
+// map.put("pho",new PictureRenderData(100, 100, "G:\\home\\3d423e3cb05d7edc35c38e3173af2a0d.jpg"));
+// map.put("pho1",new PictureRenderData(500, 500, path+"\\0a4ab467-304d-4871-948f-55aa7e820975.png"));
+
+ HackLoopTableRenderPolicy policy = new HackLoopTableRenderPolicy();
+ Configure config = Configure.newBuilder().bind("detailList1", policy).bind("detailList2", policy).bind("detailList3", policy).bind("detailList4", policy)
+ .bind("detailList5", policy).bind("detailList6", policy).bind("detailList7", policy).bind("detailList8", policy).build();
+ XWPFTemplate compile = XWPFTemplate.compile(filePath,config).render(new HashMap<String, Object>(){{
+ put("code",map.get("code"));
+ put("time1",map.get("time1"));
+// put("pho", map.get("pho"));
+// put("pho1", map.get("pho1"));
+ put("name",map.get("name"));
+ put("type",map.get("type"));
+ put("detailList1", detailList1);
+ put("detailList2", detailList2);
+ put("detailList3", detailList3);
+ put("detailList4", detailList4);
+ put("detailList5", detailList5);
+ put("detailList6", detailList6);
+ put("detailList7", detailList7);
+ put("detailList8", detailList8);
+ put("picList1", pic1);
+ put("picList2", pic2);
+ put("picList3", pic3);
+ put("picList4", pic4);
+ put("picList5", pic5);
+ put("picList6", pic6);
+ put("picList7", pic7);
+ put("picList8", pic8);
+ }});
+
+
+
+
+ response.setContentType("multipart/form-data");
+ // ���������������
+ response.addHeader("Content-Disposition", "attachment;fileName=ce.docx" );
+// response.setHeader("Content-Disposition", "attachment; filename=\"" + name+type+"������������" + "\"");
+ response.setCharacterEncoding("UTF-8");
+ //���������������
+/* File file1 = new File("G:\\test\\test2.docx");
+ FileOutputStream out = new FileOutputStream(file1);
+ compile.write(out);*/
+ //���������������
+ OutputStream out = response.getOutputStream();
+ compile.write(out);
+ out.flush();
+ out.close();
+ compile.close();
+ } catch (IOException e) {
+ log.error ("������������������������������������������", e);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+
+ }
+
}
diff --git a/screen-api/src/main/java/com/moral/api/controller/DeviceOnlineRateController.java b/screen-api/src/main/java/com/moral/api/controller/DeviceOnlineRateController.java
index 0f52f13..eb4e6ab 100644
--- a/screen-api/src/main/java/com/moral/api/controller/DeviceOnlineRateController.java
+++ b/screen-api/src/main/java/com/moral/api/controller/DeviceOnlineRateController.java
@@ -13,10 +13,10 @@
import java.util.List;
import java.util.Map;
import javax.validation.Valid;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.moral.api.dto.OnlineRatePageCond;
import com.moral.api.service.DeviceService;
import com.moral.api.vo.OnlineRateVo;
+import com.moral.constant.ResponseCodeEnum;
import com.moral.constant.ResultMessage;
/**
@@ -55,10 +55,14 @@
- @GetMapping("state")
+ @PostMapping("state")
@ApiOperation("���������������")
- public ResultMessage state(Integer organizationId){
- Map<String, Object> start = deviceService.getStart(organizationId);
+ public ResultMessage state(@RequestBody Map<String, Object> params){
+ if (!params.containsKey("macs")) {
+ return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+ }
+ List<String> macs = (List<String>) params.get("macs");
+ Map<String, Object> start = deviceService.getStart(macs);
return ResultMessage.ok(start);
}
}
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..fd03a5d
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/controller/HandDeviceController.java
@@ -0,0 +1,112 @@
+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.HandDeviceService;
+import com.moral.api.utils.EasyExcelUtils;
+import com.moral.api.utils.NoModelWriteData;
+import com.moral.constant.PageResult;
+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;
+
+ @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 HandDevice handDevice){
+ HandDevice handDevice1 = handDeviceService.update(handDevice);
+ return ResultMessage.ok(handDevice1);
+ }
+
+ @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/controller/OrganizationController.java b/screen-api/src/main/java/com/moral/api/controller/OrganizationController.java
index 58fdf2c..ac56f25 100644
--- a/screen-api/src/main/java/com/moral/api/controller/OrganizationController.java
+++ b/screen-api/src/main/java/com/moral/api/controller/OrganizationController.java
@@ -86,4 +86,12 @@
List<Organization> organizations = organizationService.getOrganizationId();
return ResultMessage.ok(ObjectUtils.isEmpty(organizations)?"0":organizations);
}
+
+
+ @GetMapping("queryDevices")
+ @ApiOperation("������������������")
+ public ResultMessage queryDevices(){
+ List<Organization> organizations = organizationService.queryDevices();
+ return ResultMessage.ok(organizations);
+ }
}
diff --git a/screen-api/src/main/java/com/moral/api/dto/OnlineRatePageCond.java b/screen-api/src/main/java/com/moral/api/dto/OnlineRatePageCond.java
index 84bee9b..712e4d2 100644
--- a/screen-api/src/main/java/com/moral/api/dto/OnlineRatePageCond.java
+++ b/screen-api/src/main/java/com/moral/api/dto/OnlineRatePageCond.java
@@ -7,6 +7,7 @@
import lombok.experimental.Accessors;
import java.io.Serializable;
+import java.util.List;
import com.moral.api.pojo.query.PageCond;
@@ -25,8 +26,8 @@
public class OnlineRatePageCond implements Serializable {
- @ApiModelProperty(value = "������id")
- private Integer organizationId;
+ @ApiModelProperty(value = "������������")
+ private List<String> macs;
// @ApiModelProperty(value = "������������")
// private PageCond page;
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/entity/Organization.java b/screen-api/src/main/java/com/moral/api/entity/Organization.java
index cbc3b98..cbe07b6 100644
--- a/screen-api/src/main/java/com/moral/api/entity/Organization.java
+++ b/screen-api/src/main/java/com/moral/api/entity/Organization.java
@@ -1,10 +1,13 @@
package com.moral.api.entity;
import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.TableId;
-import java.io.Serializable;
+import com.moral.api.pojo.vo.monitorPoint.MonitorPointVos;
+
import java.util.Date;
+import java.util.List;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -124,5 +127,9 @@
*/
private String isDelete;
-
+ /**
+ * ������������
+ */
+ @TableField(exist = false)
+ private List<MonitorPointVos> monitorPoint;
}
diff --git a/screen-api/src/main/java/com/moral/api/mapper/DeviceMapper.java b/screen-api/src/main/java/com/moral/api/mapper/DeviceMapper.java
index 0ef8f55..459da41 100644
--- a/screen-api/src/main/java/com/moral/api/mapper/DeviceMapper.java
+++ b/screen-api/src/main/java/com/moral/api/mapper/DeviceMapper.java
@@ -9,6 +9,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.moral.api.pojo.dto.dataDisplay.HeatMapDTO;
import com.moral.api.pojo.vo.device.AppDeviceVo;
+import com.moral.api.pojo.vo.device.DeviceVO;
import com.moral.api.vo.OnlineRateVo;
import io.lettuce.core.dynamic.annotation.Param;
@@ -52,6 +53,8 @@
Page<OnlineRateVo> getPage(Page page, @Param("organizationId")Integer organizationId);
//������������������������
- List<OnlineRateVo> getLists(@Param("organizationId")Integer organizationId,@Param("state")Integer state);
+ List<OnlineRateVo> getLists(List<String> macs,@Param("state")Integer state);
+
+ List<DeviceVO> getListVo(Integer monitorPointId);
}
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/mapper/MonitorPointMapper.java b/screen-api/src/main/java/com/moral/api/mapper/MonitorPointMapper.java
index 107aaed..359abd5 100644
--- a/screen-api/src/main/java/com/moral/api/mapper/MonitorPointMapper.java
+++ b/screen-api/src/main/java/com/moral/api/mapper/MonitorPointMapper.java
@@ -4,6 +4,7 @@
import com.moral.api.entity.MonitorPoint;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.moral.api.pojo.vo.monitorPoint.MonitorPointVos;
/**
* <p>
@@ -17,4 +18,5 @@
List<Integer> getMonitorPointiId(Integer id);
+ List<MonitorPointVos> getMonitorPoint(Integer id);
}
diff --git a/screen-api/src/main/java/com/moral/api/pojo/bo/ExcelBO.java b/screen-api/src/main/java/com/moral/api/pojo/bo/ExcelBO.java
index 5f11771..719c4f2 100644
--- a/screen-api/src/main/java/com/moral/api/pojo/bo/ExcelBO.java
+++ b/screen-api/src/main/java/com/moral/api/pojo/bo/ExcelBO.java
@@ -16,5 +16,9 @@
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
private Date date;
+ private String mac;
+
+ private String type;
+
}
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/pojo/vo/excel/DailyVo.java b/screen-api/src/main/java/com/moral/api/pojo/vo/excel/DailyVo.java
index bbee169..6caff58 100644
--- a/screen-api/src/main/java/com/moral/api/pojo/vo/excel/DailyVo.java
+++ b/screen-api/src/main/java/com/moral/api/pojo/vo/excel/DailyVo.java
@@ -15,4 +15,9 @@
private List<String> images;
+
+ private String type;
+
+ private String name;
+
}
diff --git a/screen-api/src/main/java/com/moral/api/pojo/vo/monitorPoint/MonitorPointVos.java b/screen-api/src/main/java/com/moral/api/pojo/vo/monitorPoint/MonitorPointVos.java
new file mode 100644
index 0000000..b947405
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/pojo/vo/monitorPoint/MonitorPointVos.java
@@ -0,0 +1,40 @@
+package com.moral.api.pojo.vo.monitorPoint;
+
+import lombok.Data;
+
+import java.util.List;
+
+import com.moral.api.pojo.vo.device.DeviceVO;
+
+/**
+ * Description //todo
+ *
+ * @author swb
+ * @ClassName MonitorPointVos
+ * @date 2024.03.07 14:23
+ */
+@Data
+public class MonitorPointVos {
+
+ private Integer id;
+
+ private Integer organizationId;
+
+ private String name;
+
+ private Double longitude;
+
+ private Double latitude;
+
+ private String state;
+
+ private Integer provinceCode;
+
+ private Integer cityCode;
+
+ private Integer areaCode;
+
+ private String address;
+
+ private List<DeviceVO> monitorPoint;
+}
diff --git a/screen-api/src/main/java/com/moral/api/service/DeviceService.java b/screen-api/src/main/java/com/moral/api/service/DeviceService.java
index fdb62f1..b5b3bd8 100644
--- a/screen-api/src/main/java/com/moral/api/service/DeviceService.java
+++ b/screen-api/src/main/java/com/moral/api/service/DeviceService.java
@@ -87,8 +87,12 @@
Map<String,Object> detail(String mac,String startTime,String endTime, String type);
-
- Map<String,Object> getStart(Integer organizationId);
+ /**
+ * ���������������
+ * @param macs
+ * @return
+ */
+ Map<String,Object> getStart(List<String> macs);
Map<String,Object> detailV1(String mac,String startTime,String endTime, String type);
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..7e6c583
--- /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
+ */
+ HandDevice update(HandDevice handDevice);
+
+ /**
+ * ������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/OrganizationService.java b/screen-api/src/main/java/com/moral/api/service/OrganizationService.java
index 559b4e5..5f78975 100644
--- a/screen-api/src/main/java/com/moral/api/service/OrganizationService.java
+++ b/screen-api/src/main/java/com/moral/api/service/OrganizationService.java
@@ -51,4 +51,5 @@
List<Organization> getOrganizationId();
+ List<Organization> queryDevices();
}
diff --git a/screen-api/src/main/java/com/moral/api/service/SpecialDeviceService.java b/screen-api/src/main/java/com/moral/api/service/SpecialDeviceService.java
index 3810dd8..b6d2b5b 100644
--- a/screen-api/src/main/java/com/moral/api/service/SpecialDeviceService.java
+++ b/screen-api/src/main/java/com/moral/api/service/SpecialDeviceService.java
@@ -6,7 +6,6 @@
import java.text.ParseException;
import java.util.List;
import java.util.Map;
-
import com.moral.api.entity.SpecialDevice;
import com.baomidou.mybatisplus.extension.service.IService;
import com.moral.api.pojo.bo.ExcelBO;
@@ -48,7 +47,7 @@
ExcelBO getDaily(Map<String, Object> params, List<MultipartFile> files) throws ParseException;
//���������������������
- DailyVo loadDaily(Integer id);
+ List<DailyVo> loadDaily(List<Integer> ids);
//������������
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/DataDisplayServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/DataDisplayServiceImpl.java
index e560813..12b96f5 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/DataDisplayServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/DataDisplayServiceImpl.java
@@ -439,12 +439,12 @@
ArrayList<Integer> list = new ArrayList<>();
list.add(id);
ArrayList<HeatMapDTO> rsHeatMap = new ArrayList<>();
- ArrayList<String> list1 = new ArrayList<>();
+/* ArrayList<String> list1 = new ArrayList<>();
list1.add("���������������");
list1.add("���������������");
list1.add("���������������");
list1.add("���������������");
- list1.add("������������������");
+ list1.add("������������������");*/
if (form.equals("hour")){ //������
// String[] split = startTime.split("-");
@@ -508,43 +508,84 @@
getHeatMap(heatMap,type);
rsHeatMap.addAll(heatMap);
}
- for (int i = 0; i <6; i++) {
- HeatMapDTO heatMapDTO = new HeatMapDTO();
- heatMapDTO.setCount(0.0);
- if (i==0){
- heatMapDTO.setLat(40.590436);
- heatMapDTO.setLng(122.861935);
- heatMapDTO.setMac("1111");
- heatMapDTO.setName("1111");
- }else if (i==1){
- heatMapDTO.setLat(40.636617);
- heatMapDTO.setLng(123.101544);
- heatMapDTO.setMac("2222");
- heatMapDTO.setName("2222");
- }else if (i==2){
- heatMapDTO.setLat(40.890881);
- heatMapDTO.setLng(122.910687);
- heatMapDTO.setMac("3333");
- heatMapDTO.setName("3333");
- }else if (i==3){
- heatMapDTO.setLat(40.682129);
- heatMapDTO.setLng(123.105836);
- heatMapDTO.setMac("4444");
- heatMapDTO.setName("4444");
- }else if (i==4){
- heatMapDTO.setLat(40.890037);
- heatMapDTO.setLng(123.021151);
- heatMapDTO.setMac("5555");
- heatMapDTO.setName("5555");
- }else {
- heatMapDTO.setLat(41.051333);
- heatMapDTO.setLng(122.505864);
- heatMapDTO.setMac("6666");
- heatMapDTO.setName("6666");
+ if (id==71){
+ for (int i = 0; i <6; i++) {
+ HeatMapDTO heatMapDTO = new HeatMapDTO();
+ heatMapDTO.setCount(0.0);
+ if (i==0){
+ heatMapDTO.setLat(40.590436);
+ heatMapDTO.setLng(122.861935);
+ heatMapDTO.setMac("1111");
+ heatMapDTO.setName("1111");
+ }else if (i==1){
+ heatMapDTO.setLat(40.636617);
+ heatMapDTO.setLng(123.101544);
+ heatMapDTO.setMac("2222");
+ heatMapDTO.setName("2222");
+ }else if (i==2){
+ heatMapDTO.setLat(40.890881);
+ heatMapDTO.setLng(122.910687);
+ heatMapDTO.setMac("3333");
+ heatMapDTO.setName("3333");
+ }else if (i==3){
+ heatMapDTO.setLat(40.682129);
+ heatMapDTO.setLng(123.105836);
+ heatMapDTO.setMac("4444");
+ heatMapDTO.setName("4444");
+ }else if (i==4){
+ heatMapDTO.setLat(40.890037);
+ heatMapDTO.setLng(123.021151);
+ heatMapDTO.setMac("5555");
+ heatMapDTO.setName("5555");
+ }else {
+ heatMapDTO.setLat(41.051333);
+ heatMapDTO.setLng(122.505864);
+ heatMapDTO.setMac("6666");
+ heatMapDTO.setName("6666");
+ }
+ rsHeatMap.add(heatMapDTO);
}
- rsHeatMap.add(heatMapDTO);
}
-
+ if (id==73){
+ //���������
+ double lat =33.414538;
+ double lng =120.066616;
+ for (int i = 0; i <11 ; i++) {
+ for (int j = 0; j < 20; j++) {
+ HeatMapDTO heatMapDTO = new HeatMapDTO();
+ heatMapDTO.setCount(0.0);
+ heatMapDTO.setLat(lat);
+ heatMapDTO.setLng(lng);
+ heatMapDTO.setName("1");
+ heatMapDTO.setMac(i+"1"+j);
+ rsHeatMap.add(heatMapDTO);
+ lng=lng+0.01;
+ if (j==19){
+ lng=120.066616;
+ }
+ }
+ lat =lat-0.01;
+ }
+ //���������
+ double lat1 =33.214555;
+ double lng1 =120.416805;
+ for (int i = 0; i < 11 ; i++) {
+ for (int j = 0; j < 10; j++) {
+ HeatMapDTO heatMapDTO = new HeatMapDTO();
+ heatMapDTO.setCount(0.0);
+ heatMapDTO.setLat(lat1);
+ heatMapDTO.setLng(lng1);
+ heatMapDTO.setName("2");
+ heatMapDTO.setMac(i+"2"+j);
+ rsHeatMap.add(heatMapDTO);
+ lng1=lng1+0.004;
+ if (j==9){
+ lng1=120.416805;
+ }
+ }
+ lat1 =lat1-0.0022;
+ }
+ }
return distrinList(rsHeatMap);
}
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
index 2d779fd..8763d27 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java
@@ -350,7 +350,7 @@
Date startDate = DateUtils.getDate(startTime,DateUtils.yyyy_MM_dd_HH_mm_ss_EN);
Date endDate = DateUtils.getDate(endTime,DateUtils.yyyy_MM_dd_HH_mm_ss_EN);
List<String> tableNames = MybatisPLUSUtils.getTableNamesByWrapper(startDate, endDate, SeparateTableType.MONTH);
- for (String mac:macs) {
+/* for (String mac:macs) {
Map<String, Object> mapParams = new HashMap<>();
mapParams.put("startDate",startDate);
mapParams.put("endDate",endDate);
@@ -384,6 +384,56 @@
historyHourlyMap.put("time",timeStr);
list.add(historyHourlyMap);
}
+ }*/
+
+
+ for (String mac:macs) {
+ Map<String, Object> mapParams = new HashMap<>();
+ mapParams.put("startDate",startDate);
+ mapParams.put("endDate",endDate);
+ mapParams.put("mac",mac);
+ List<HistoryFiveMinutely> HistoryFiveMinutelys = FiveMinuteTableQuery(mapParams, tableNames);
+ HistoryFiveMinutelys = HistoryFiveMinutelys.stream().distinct().collect(Collectors.toList());
+ List<HistoryFiveMinutely> distinctHistoryHourlies = new ArrayList<>();
+ Map<String, Object> disMap = new HashMap<>();
+ for (HistoryFiveMinutely historyFiveMinutely:HistoryFiveMinutelys) {
+ Date time = historyFiveMinutely.getTime();
+ String timeStr = DateUtils.dateToDateString(time,DateUtils.yyyy_MM_dd_HH_mm_EN);
+ if (!disMap.containsKey(timeStr)){
+ distinctHistoryHourlies.add(historyFiveMinutely);
+ disMap.put(timeStr,true);
+ }
+ }
+ for (HistoryFiveMinutely historyFiveMinutely:distinctHistoryHourlies) {
+ Map<String,Object> historyHourlyMap = new HashMap<>();
+ historyHourlyMap.put("mac",mac);
+ JSONObject value= JSONObject.parseObject(historyFiveMinutely.getValue());
+ Double sensorValue = Objects.nonNull(value)&&Objects.nonNull(value.get(sensorCode))?Double.parseDouble(value.get(sensorCode).toString()):0d;
+ historyHourlyMap.put(sensorCode,sensorValue);
+ Date time = historyFiveMinutely.getTime();
+ String timeStr = DateUtils.dateToDateString(time, DateUtils.yyyy_MM_dd_HH_mm_EN);
+ historyHourlyMap.put("time",timeStr);
+ list.add(historyHourlyMap);
+ }
+ }
+ Date middleDate = DateUtils.getDate(startTime,DateUtils.yyyy_MM_dd_HH_mm_EN);
+ while (DateUtils.compareDateStr(endTime,DateUtils.dateToDateString(middleDate,DateUtils.yyyy_MM_dd_HH_mm_EN),DateUtils.yyyy_MM_dd_HH_mm_EN)<=0){
+ for (String mac:macs) {
+ boolean flag = true;
+ for (Map map:list) {
+ if (map.get("time").equals(DateUtils.dateToDateString(middleDate, DateUtils.yyyy_MM_dd_HH_mm_EN)) && map.get("mac").toString().equals(mac.toString())){
+ flag = false;
+ }
+ }
+ if (flag){
+ Map<String,Object> historyHourlyMap = new HashMap<>();
+ historyHourlyMap.put("mac",mac);
+ historyHourlyMap.put(sensorCode,"0.0");
+ historyHourlyMap.put("time",DateUtils.dateToDateString(middleDate,DateUtils.yyyy_MM_dd_HH_mm_EN));
+ list.add(historyHourlyMap);
+ }
+ }
+ middleDate = DateUtils.getDateOfMin(middleDate,5);
}
}
for (Map map:list) {
@@ -558,7 +608,8 @@
long hour = (diff / nh)+1; //������������������������
Map<String, List<OnlineRateVo>> collectList=new HashMap<>();
- List<OnlineRateVo> OnlineRateVoList = deviceMapper.getLists(onlineRatePageCond.getOrganizationId(),onlineRatePageCond.getState());
+// List<OnlineRateVo> OnlineRateVoList = deviceMapper.getLists(onlineRatePageCond.getOrganizationId(),onlineRatePageCond.getState());
+ List<OnlineRateVo> OnlineRateVoList = deviceMapper.getLists(onlineRatePageCond.getMacs(),onlineRatePageCond.getState());
if (!ObjectUtils.isEmpty(OnlineRateVoList)){
for (OnlineRateVo onlineRateVo : OnlineRateVoList) {
@@ -972,9 +1023,9 @@
}
@Override
- public Map<String,Object> getStart(Integer organizationId) {
+ public Map<String,Object> getStart(List<String> macs) {
HashMap<String, Object> map = new HashMap<>();
- List<OnlineRateVo> lists = deviceMapper.getLists(organizationId, null);
+ List<OnlineRateVo> lists = deviceMapper.getLists(macs, null);
if (!ObjectUtils.isEmpty(lists)){
Map<String, List<OnlineRateVo>> collect = lists.stream().collect(Collectors.groupingBy(OnlineRateVo::getState));
int size1 = lists.size();
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;
+ }
+
+
+}
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/OrganizationServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java
index 8f75d49..bc6608c 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java
@@ -2,23 +2,21 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.moral.api.config.Interceptor.UserHelper;
-import com.moral.api.entity.MonitorPoint;
import com.moral.api.entity.Organization;
+import com.moral.api.mapper.DeviceMapper;
import com.moral.api.mapper.MonitorPointMapper;
import com.moral.api.mapper.OrganizationMapper;
-import com.moral.api.pojo.vo.user.QxUser;
+import com.moral.api.pojo.vo.device.DeviceVO;
+import com.moral.api.pojo.vo.monitorPoint.MonitorPointVos;
import com.moral.api.service.DeviceService;
-import com.moral.api.service.MonitorPointService;
import com.moral.api.service.OrganizationService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.moral.constant.Constants;
import com.moral.util.TokenUtils;
-
+import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
-
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -36,6 +34,13 @@
@Autowired
OrganizationMapper organizationMapper;
+
+ @Autowired
+ MonitorPointMapper monitorPointMapper;
+
+
+ @Autowired
+ DeviceMapper deviceMapper;
@@ -107,4 +112,45 @@
}
return rsList;
}
+
+ /**
+ * ������������������
+ * @return
+ */
+ @Override
+ public List<Organization> queryDevices() {
+ Map<String, Object> userInfo = (Map<String, Object>) TokenUtils.getUserInfo();
+ Map<String, Object> orgInfo = (Map<String, Object>) userInfo.get("organization");
+ Integer organizationId = (Integer) orgInfo.get("id");
+ LambdaQueryWrapper<Organization> wrapper = new LambdaQueryWrapper<>();
+ wrapper.select(Organization::getId,Organization::getAddress,Organization::getAreaName,Organization::getName);
+ wrapper.eq(Organization::getIsDelete,Constants.NOT_DELETE);
+ wrapper.orderByDesc(Organization::getCreateTime);
+ List<Organization> organizations;
+ if (organizationId==24){
+ wrapper.eq(Organization::getParentId,organizationId);
+ organizations = organizationMapper.selectList(wrapper);
+ }else {
+ wrapper.eq(Organization::getId,organizationId);
+ organizations = organizationMapper.selectList(wrapper);
+ }
+ if (CollectionUtils.isNotEmpty(organizations)){
+ organizations.forEach(it ->{
+ //������������
+// QueryWrapper<MonitorPoint> queryMonitorPointsWrapper = new QueryWrapper<>();
+// queryMonitorPointsWrapper.eq("organization_id", it.getId());
+// queryMonitorPointsWrapper.eq("is_delete", Constants.NOT_DELETE);
+// List<MonitorPoint> monitorPoints = monitorPointMapper.selectList(queryMonitorPointsWrapper);
+ List<MonitorPointVos> monitorPoints = monitorPointMapper.getMonitorPoint(it.getId());
+ //���������������������������
+ for (MonitorPointVos monitorPoint : monitorPoints) {
+// List<Device> devices = deviceService.getDevicesByMonitorPointId(monitorPoint.getId());
+ List<DeviceVO> listVo = deviceMapper.getListVo(monitorPoint.getId());
+ monitorPoint.setMonitorPoint(listVo);
+ }
+ it.setMonitorPoint(monitorPoints);
+ } );
+ }
+ return organizations;
+ }
}
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java
index 44190f4..2c5e931 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java
@@ -3,13 +3,11 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-
import com.moral.api.config.Interceptor.UserHelper;
import com.moral.api.entity.*;
import com.moral.api.mapper.DailyMapper;
import com.moral.api.mapper.HistorySecondCruiserMapper;
import com.moral.api.mapper.SpecialDeviceMapper;
-import com.moral.api.mapper.SysDictTypeMapper;
import com.moral.api.pojo.bo.ExcelBO;
import com.moral.api.pojo.dto.historySecondCruiser.HistorySecondCruiserListDTO;
import com.moral.api.pojo.dto.historySecondCruiser.HistorySecondCruiserResultCountDTO;
@@ -22,6 +20,7 @@
import com.moral.api.service.SpecialDeviceHistoryService;
import com.moral.api.service.SpecialDeviceService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.moral.api.service.SysAreaService;
import com.moral.api.service.SysDictTypeService;
import com.moral.constant.Constants;
@@ -30,7 +29,6 @@
import com.moral.util.FileUtils;
import com.moral.util.GeodesyUtils;
import com.moral.util.TokenUtils;
-
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -38,9 +36,7 @@
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
-import org.springframework.util.StringUtils;
import org.springframework.web.multipart.MultipartFile;
-
import java.io.File;
import java.math.BigDecimal;
import java.text.ParseException;
@@ -85,6 +81,9 @@
@Autowired
RedisTemplate redisTemplate;
+
+ @Autowired
+ private SysAreaService sysAreaService;
private final static Double dis = 50d;
@@ -327,10 +326,11 @@
String type = params.get("type").toString();
String code = params.get("code").toString();
String area = params.get("area").toString();
+ String mac = params.get("mac").toString();
rsMap.put("area",area);
+ rsMap.put("mac",mac.substring(9));
String value = JSON.toJSONString(rsMap);
- String mac = params.get("mac").toString();
QueryWrapper<TbDaily> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("mac",mac);
queryWrapper.likeRight("time",time1.substring(0,10));
@@ -446,29 +446,40 @@
/**
* ���������������������
- * @param id
+ * @param ids
* @return
*/
@Override
- public DailyVo loadDaily(Integer id) {
- ArrayList<String> rsList = new ArrayList<>();
- DailyVo dailyVo = new DailyVo();
- TbDaily tbDaily = dailyMapper.selectById(id);
- if (tbDaily==null){
- return null;
+ public List<DailyVo> loadDaily(List<Integer> ids) {
+ ArrayList<DailyVo> dailyVos = new ArrayList<>();
+ for (Integer id : ids) {
+ ArrayList<String> rsList = new ArrayList<>();
+ DailyVo dailyVo = new DailyVo();
+ TbDaily tbDaily = dailyMapper.selectById(id);
+
+ SysArea areaByCode = sysAreaService.getAreaByCode(Integer.parseInt(tbDaily.getCode()));
+ if (tbDaily==null){
+ continue;
+ }
+ String images = tbDaily.getImages();
+ if (!ObjectUtils.isEmpty(images)){
+ String[] split = images.split(",");
+ List<String> list1 = Arrays.asList(split);
+ dailyVo.setImages(list1);
+ }else {
+ dailyVo.setImages(rsList);
+ }
+ String value = tbDaily.getValue();
+ Map map = JSON.parseObject(value, Map.class);
+ List<String> list = (List<String>) map.get("time");
+ String join = String.join("-", list);
+ map.put("time",join);
+ dailyVo.setCode(map);
+ dailyVo.setName(areaByCode.getAreaName());
+ dailyVo.setType(tbDaily.getType().equals("car")?"���������":"���������");
+ dailyVos.add(dailyVo);
}
- String images = tbDaily.getImages();
- if (!ObjectUtils.isEmpty(images)){
- String[] split = images.split(",");
- List<String> list1 = Arrays.asList(split);
- dailyVo.setImages(list1);
- }else {
- dailyVo.setImages(rsList);
- }
- String value = tbDaily.getValue();
- Map map = JSON.parseObject(value, Map.class);
- dailyVo.setCode(map);
- return dailyVo;
+ return dailyVos;
}
/**
@@ -486,9 +497,11 @@
Object mac = params.get("mac");
if (!ObjectUtils.isEmpty(mac)){
- String MAC = mac.toString();
+ String[] split = mac.toString().split(",");
+ List<String> list = Arrays.asList(split);
+ List<String> macList = new ArrayList<>(new TreeSet<>(list));
QueryWrapper<TbDaily> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("type",type).eq("code",code).eq("mac",MAC);
+ queryWrapper.eq("type",type).eq("code",code).in("mac",macList);
queryWrapper.between("time",startTime,endTime);
List<TbDaily> dailies = dailyMapper.selectList(queryWrapper);
for (TbDaily daily : dailies) {
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..b57e552 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
@@ -115,6 +115,10 @@
result.put("msg", ResponseCodeEnum.ACCOUNT_IS_DELETE.getMsg());
return result;
}
+ //������������������
+ List<Integer> handList = responsibilityUnitMapper.selectCodeList(SysDictTypeEnum.SYS_HAND_DEVICE.value, userBo.getId());
+ result.put("handDevice",ObjectUtils.isEmpty(handList)? StateEnum.NOT_EFFECTIVE.value : StateEnum.TAKE_EFFECT.value);
+ //������������������
ResponsibilityUnit responsibilityUnit = responsibilityUnitMapper.selectById(userBo.getUnitId());
List<Integer> list = responsibilityUnitMapper.selectCodeList(SysDictTypeEnum.SYS_DEVICE.value, userBo.getId());
result.put("userName", userBo.getUserName());
@@ -217,8 +221,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/DeviceMapper.xml b/screen-api/src/main/resources/mapper/DeviceMapper.xml
index 24526c4..64c99ba 100644
--- a/screen-api/src/main/resources/mapper/DeviceMapper.xml
+++ b/screen-api/src/main/resources/mapper/DeviceMapper.xml
@@ -257,7 +257,7 @@
#{id}
</foreach>
</if>
- inner JOIN device_map_hierarchy as dm on d.id = dm.device_id
+ left JOIN device_map_hierarchy as dm on d.id = dm.device_id
<if test="tableName !=null">
left join history_hourly${tableName} hd on hd.time = #{start} and d.mac = hd.mac
</if>
@@ -276,7 +276,13 @@
<select id="getLists" resultType="com.moral.api.vo.OnlineRateVo">
- select d.name,d.state,d.mac from device as d where organization_id=#{organizationId} and is_delete=0
+ select d.name,d.state,d.mac from device as d where is_delete=0
+ <if test="macs != null and macs.size !=0">
+ and mac in
+ <foreach collection="macs" item="mac" index="index" open="(" close=")" separator=",">
+ #{mac}
+ </foreach>
+ </if>
<if test="state !=null and state == 0" >
and state=#{state}
</if>
@@ -284,4 +290,8 @@
and state<![CDATA[>=]]>#{state}
</if>
</select>
+
+ <select id="getListVo" resultType="com.moral.api.pojo.vo.device.DeviceVO">
+ select * from device where monitor_point_id=#{monitorPointId} and is_delete=0
+ </select>
</mapper>
\ No newline at end of file
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..a7abf36
--- /dev/null
+++ b/screen-api/src/main/resources/mapper/HandDeviceMapper.xml
@@ -0,0 +1,48 @@
+<?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" />
+ <result column="create_time" property="createTime" />
+ <result column="update_time" property="updateTime" />
+ </resultMap>
+
+ <sql id="Base_Column_List">
+ id,name,mac,address,longitude,latitude,start_time,is_delete,end_time,create_name,update_name,create_time,update_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 endTime == '' ">
+ and date(start_time) like CONCAT('%',#{startTime},'%')
+ </if>
+ <if test="endTime != '' and startTime != ''">
+ and date(start_time) <![CDATA[>=]]> #{startTime}
+ and date(end_time) <![CDATA[<=]]> #{endTime}
+ </if>
+ </where>
+ order by start_time desc
+ </select>
+
+</mapper>
\ No newline at end of file
diff --git a/screen-api/src/main/resources/mapper/MonitorPointMapper.xml b/screen-api/src/main/resources/mapper/MonitorPointMapper.xml
index 4b975ee..4efdee7 100644
--- a/screen-api/src/main/resources/mapper/MonitorPointMapper.xml
+++ b/screen-api/src/main/resources/mapper/MonitorPointMapper.xml
@@ -25,4 +25,9 @@
select id from monitor_point where organization_id=#{id} and is_delete=0
</select>
+ <select id="getMonitorPoint" resultType="com.moral.api.pojo.vo.monitorPoint.MonitorPointVos">
+ select * from monitor_point where organization_id=#{id} and is_delete=0
+ </select>
+
+
</mapper>
\ No newline at end of file
diff --git "a/screen-api/src/main/resources/word/\347\233\220\345\237\216\345\270\202\350\265\260\350\210\252\347\233\221\346\265\213\346\212\245\345\221\212.docx" "b/screen-api/src/main/resources/word/\347\233\220\345\237\216\345\270\202\350\265\260\350\210\252\347\233\221\346\265\213\346\212\245\345\221\212.docx"
new file mode 100644
index 0000000..8c5f29d
--- /dev/null
+++ "b/screen-api/src/main/resources/word/\347\233\220\345\237\216\345\270\202\350\265\260\350\210\252\347\233\221\346\265\213\346\212\245\345\221\212.docx"
Binary files differ
--
Gitblit v1.8.0