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