diff --git a/user-service/src/main/java/com/mh/user/controller/AreaController.java b/user-service/src/main/java/com/mh/user/controller/AreaController.java index 4b7c1fd..8ed790c 100644 --- a/user-service/src/main/java/com/mh/user/controller/AreaController.java +++ b/user-service/src/main/java/com/mh/user/controller/AreaController.java @@ -1,16 +1,26 @@ package com.mh.user.controller; import com.mh.common.http.HttpResult; +import com.mh.user.annotation.SysLogger; import com.mh.user.entity.AreaEntity; -import com.mh.user.entity.ExceptionTableData; +import com.mh.user.entity.BuildingEntity; +import com.mh.user.model.AreaModel; import com.mh.user.service.AreaService; +import lombok.extern.slf4j.Slf4j; +import org.apache.poi.hssf.usermodel.HSSFCell; +import org.apache.poi.hssf.usermodel.HSSFSheet; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.CellType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; -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 org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import java.io.IOException; +import java.io.InputStream; +import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.List; /** @@ -20,6 +30,7 @@ import java.util.List; * @updateTime 2022-06-09 * @throws : */ +@Slf4j @RestController @RequestMapping("area") public class AreaController { @@ -30,9 +41,183 @@ public class AreaController { @PreAuthorize("hasAuthority('sys:area:view')") @PostMapping(value = "/findArea") public HttpResult findArea() { - List list=areaService.findAll(); + List list = areaService.findAll(); // System.out.println("test"); - return HttpResult.ok("500",list); + return HttpResult.ok("500", list); + } + + //保存 + @SysLogger(title = "区域信息", optDesc = "保存区域信息") + @PostMapping(value = "/save") + public HttpResult saveArea(@RequestBody AreaEntity areaEntity) { + try { + int count = areaService.saveArea(areaEntity); + if (count > 0) { + return HttpResult.ok("保存成功"); + } else { + return HttpResult.error(500, "区域id或者区域名称已存在"); + } + } catch (Exception e) { + log.error("保存区域信息异常:{}", e); + return HttpResult.error(); + } + } + + //修改 + @SysLogger(title = "区域信息", optDesc = "修改区域信息") + @PostMapping(value = "/update") + public HttpResult updateBuilding(@RequestBody AreaEntity areaEntity) { + return HttpResult.ok("success", areaService.updateArea(areaEntity)); + } + + //查询所有 + @SysLogger(title = "区域信息", optDesc = "查询区域信息") + @PostMapping(value = "/query") + public HttpResult queryBuilding(@RequestParam(value = "areaId", required = false) String areaId, + @RequestParam(value = "page", required = true) Integer page, + @RequestParam(value = "limit", required = true) Integer limit) { + try { + int count = areaService.getCount(areaId, page, limit); + List records = areaService.queryArea(areaId, page, limit); + return HttpResult.ok(count, records); + } catch (Exception e) { + e.printStackTrace(); + return HttpResult.error(); + } + } + + //查询区域名称 + @PostMapping(value = "/name") + public HttpResult selectAreaName() { + try { + List list = areaService.selectAreaName(); + return HttpResult.ok(list); + } catch (Exception e) { + e.printStackTrace(); + return HttpResult.error(); + } + + } + + // 删除多 + @PostMapping(value = "/deletes") + public HttpResult deleteDevices(@RequestBody List records) { + return HttpResult.ok(areaService.deleteArea(records)); + } + + // 删除单个 + @SysLogger(title = "区域信息", optDesc = "删除区域信息") + @PostMapping(value = "/delete") + public HttpResult deleteDevice(@RequestParam String id) { + return HttpResult.ok(areaService.deleteAreaById(id)); + } + + // 资料批量上传 + @SysLogger(title = "区域信息", optDesc = "批量导入区域信息") + @PostMapping("/import_area") + public HttpResult importExcel(@RequestParam(value = "file") MultipartFile file, HttpServletRequest req) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + HttpResult httpResult = new HttpResult(); + try { + int is = 0; //判断是否有重复 + String msg = ""; + List a = new ArrayList(); + InputStream inputStream = file.getInputStream(); + //创建工作簿 + //如果是xls,使用HSSFWorkbook;如果是xlsx,使用XSSFWorkbook + HSSFWorkbook hssfWorkbook = new HSSFWorkbook(inputStream); + System.out.println("xssfWorkbook对象:" + hssfWorkbook); + //读取第一个工作表 + HSSFSheet sheet = hssfWorkbook.getSheetAt(0); + System.out.println("sheet对象:" + sheet); + //获取最后一行的num,即总行数。此处从0开始计数 + int maxRow = sheet.getLastRowNum(); + System.out.println("总行数为:" + maxRow); + if (maxRow >= 500) { + msg = "总行数不能超出500行"; + httpResult.setMsg(msg); + httpResult.setCode(500); + return httpResult; + } + if (maxRow == 0) { + msg = "请先录入数据到excel文件"; + httpResult.setMsg(msg); + httpResult.setCode(500); + return httpResult; + } + + // 创建数组集合 + List uploadEntityList = new ArrayList<>(); + List deviceList = new ArrayList<>(); + for (int row = 1; row <= maxRow; row++) { + //获取最后单元格num,即总单元格数 ***注意:此处从1开始计数*** + int maxRol = sheet.getRow(row).getLastCellNum(); + System.out.println("总列数为:" + maxRol); + System.out.println("--------第" + row + "行的数据如下--------"); + for (int rol = 0; rol < maxRol; rol++) { + String sCell; + if (sheet.getRow(row).getCell(rol) == null) { + sCell = ""; + } else { + HSSFCell cell = sheet.getRow(row).getCell(rol); + cell.setCellType(CellType.STRING); + sCell = cell.getStringCellValue(); + } + sCell = sCell.trim(); //去首尾空格 + sCell = sCell.replaceAll(" ", ""); //去掉所有空格,包括首尾、中间 + sCell = sCell.replaceAll("\\s*", ""); //可以替换大部分空白字符, 不限于空格,\s 可以匹配空格、制表符、换页符等空白字符的其中任意一个 + System.out.print(sCell + " "); + deviceList.add(sCell); + String rolName = ""; + switch (rol) { + case 2: + rolName = "区域ID"; + break; + case 1: + rolName = "区域名称"; + break; + case 3: + rolName = "排序"; + break; + } + if ((rol >= 1) && (rol <= 4) && (sCell.equals(""))) { + msg = rolName + "不能为空"; + httpResult.setMsg(msg); + httpResult.setCode(500); + return httpResult; + } + } + + // 创建实体类 + AreaEntity uploadEntity = new AreaEntity(); + uploadEntity.setAreaId(deviceList.get(1)); // 区域ID编号 + uploadEntity.setAreaName(deviceList.get(0)); // 区域名称 + uploadEntity.setSort(Integer.parseInt(deviceList.get(2))); // 排序 + + deviceList.clear(); + + uploadEntityList.add(uploadEntity); + is = areaService.selectByAreaName(uploadEntity.getAreaName()); + if (is > 0) { + httpResult.setMsg("楼栋名称有重复!"); + httpResult.setCode(500); + } + } + + if (is == 0) { + for (AreaEntity val : uploadEntityList) { + areaService.saveArea(val); + } + httpResult.setMsg("success"); + httpResult.setCode(200); + return httpResult; + } + + } catch (IOException e) { + // TODO Auto-generated catch block + log.error("批量导入区域异常:{}", e); + } + return httpResult; } } diff --git a/user-service/src/main/java/com/mh/user/controller/BuildingController.java b/user-service/src/main/java/com/mh/user/controller/BuildingController.java index f90b5bf..b165590 100644 --- a/user-service/src/main/java/com/mh/user/controller/BuildingController.java +++ b/user-service/src/main/java/com/mh/user/controller/BuildingController.java @@ -3,6 +3,7 @@ package com.mh.user.controller; import com.mh.common.http.HttpResult; import com.mh.user.annotation.SysLogger; import com.mh.user.entity.BuildingEntity; +import com.mh.user.model.AreaBuildingTreeModel; import com.mh.user.model.BuildingModel; import com.mh.user.service.BuildingService; import org.apache.poi.hssf.usermodel.HSSFCell; @@ -52,10 +53,11 @@ public class BuildingController { @PostMapping(value = "/query") public HttpResult queryBuilding(@RequestParam(value = "buildingId", required = false)String buildingId, @RequestParam(value= "page", required=true)Integer page, + @RequestParam(value = "level", required = false, defaultValue = "0")int level, @RequestParam(value= "limit", required=true)Integer limit) { try{ - int count=buildingService.getCount(buildingId, page,limit); - List records=buildingService.queryBuilding(buildingId, page,limit); + List records=buildingService.queryBuilding(buildingId, page,limit, level); + int count=buildingService.getCount(buildingId, page,limit, level); return HttpResult.ok(count,records); }catch (Exception e){ e.printStackTrace(); @@ -67,6 +69,8 @@ public class BuildingController { @PostMapping(value="/name") public HttpResult selectBuildingName() { try{ +// List list=buildingService.queryTree(); +// return HttpResult.ok(list); List list=buildingService.selectBuildingName(); return HttpResult.ok(list); }catch (Exception e){ @@ -236,4 +240,13 @@ public class BuildingController { return HttpResult.ok("success",count); } + /** + * 查询树形结构楼栋信息 + */ + @PostMapping(value="/tree") + public HttpResult queryTree() { + List list=buildingService.queryTree(); + return HttpResult.ok(list); + } + } diff --git a/user-service/src/main/java/com/mh/user/controller/DeviceInstallController.java b/user-service/src/main/java/com/mh/user/controller/DeviceInstallController.java index 43ff65a..ee1ba95 100644 --- a/user-service/src/main/java/com/mh/user/controller/DeviceInstallController.java +++ b/user-service/src/main/java/com/mh/user/controller/DeviceInstallController.java @@ -129,6 +129,7 @@ public class DeviceInstallController { @RequestParam(value = "isOnline", required=false)String isOnline, @RequestParam(value = "isUse", required=false)String isUse, @RequestParam(value = "isFault", required=false)String isFault, + @RequestParam(value = "level", required=false, defaultValue = "0")int level, @RequestParam(value = "page", required=true)Integer page, @RequestParam(value = "limit", required=true)Integer limit) { try{ @@ -137,8 +138,8 @@ public class DeviceInstallController { String curDate=sdf1.format(date); dealDataService.proDeviceState(curDate); //刷新统计设备状态数据 - int count=deviceInstallService.getCount(buildingId,deviceType, startDate, endDate,isOnline,isUse,isFault, page,limit); - List records=deviceInstallService.queryDevice(buildingId,deviceType, startDate, endDate,isOnline,isUse,isFault, page,limit); + int count=deviceInstallService.getCount(buildingId,deviceType, startDate, endDate,isOnline,isUse,isFault, page,limit, level); + List records=deviceInstallService.queryDevice(buildingId,deviceType, startDate, endDate,isOnline,isUse,isFault, page,limit, level); return HttpResult.ok(count,records); }catch (Exception e){ //e.printStackTrace(); diff --git a/user-service/src/main/java/com/mh/user/controller/EnergyController.java b/user-service/src/main/java/com/mh/user/controller/EnergyController.java index 28ea980..c949851 100644 --- a/user-service/src/main/java/com/mh/user/controller/EnergyController.java +++ b/user-service/src/main/java/com/mh/user/controller/EnergyController.java @@ -2,12 +2,14 @@ package com.mh.user.controller; import com.mh.common.http.HttpResult; import com.mh.user.annotation.SysLogger; +import com.mh.user.entity.BuildingEntity; import com.mh.user.entity.EnergyEntity; import com.mh.user.model.SumModel; import com.mh.user.service.BuildingService; import com.mh.user.service.EnergyService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; + import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -23,192 +25,196 @@ public class EnergyController { @Autowired BuildingService buildingService; - @SysLogger(title="用能分析",optDesc = "保存能耗信息") + @SysLogger(title = "用能分析", optDesc = "保存能耗信息") @PostMapping("/save") - public HttpResult saveEnergy(@RequestBody EnergyEntity energyEntity, @RequestParam(value = "type") int type){ - try{ - energyService.saveEnergy(energyEntity,type); - return HttpResult.ok(); - }catch (Exception e){ - return HttpResult.error("保存出错!"); - } + public HttpResult saveEnergy(@RequestBody EnergyEntity energyEntity, @RequestParam(value = "type") int type) { + try { + energyService.saveEnergy(energyEntity, type); + return HttpResult.ok(); + } catch (Exception e) { + return HttpResult.error("保存出错!"); + } } - @SysLogger(title="用能分析",optDesc = "修改能耗信息") + @SysLogger(title = "用能分析", optDesc = "修改能耗信息") @PostMapping("/update") - public HttpResult updateEnergy(@RequestBody EnergyEntity energyEntity, @RequestParam(value = "type") int type){ - try{ - energyService.updateEnergy(energyEntity,type); - return HttpResult.ok(); - }catch (Exception e){ - return HttpResult.error("修改出错!"); + public HttpResult updateEnergy(@RequestBody EnergyEntity energyEntity, @RequestParam(value = "type") int type) { + try { + energyService.updateEnergy(energyEntity, type); + return HttpResult.ok(); + } catch (Exception e) { + return HttpResult.error("修改出错!"); } } @PostMapping("/delete") - @SysLogger(title="用能分析",optDesc = "删除能耗信息") + @SysLogger(title = "用能分析", optDesc = "删除能耗信息") public HttpResult deleteEnergy(@RequestParam(value = "curDate") String curDate, @RequestParam(value = "buildingId") String buildingId, - @RequestParam(value = "type") int type){ - try{ + @RequestParam(value = "type") int type) { + try { - energyService.deleteEnergy(curDate,buildingId,type); - return HttpResult.ok(); - }catch (Exception e){ - return HttpResult.error("删除出错!"); + energyService.deleteEnergy(curDate, buildingId, type); + return HttpResult.ok(); + } catch (Exception e) { + return HttpResult.error("删除出错!"); } } - @SysLogger(title="用能分析",optDesc = "查询能耗信息") + @SysLogger(title = "用能分析", optDesc = "查询能耗信息") @PostMapping("/query") - public HttpResult queryEnergy(@RequestParam(value = "buildingId",required = false) String buildingId, - @RequestParam(value = "startDate",required = false) String startDate, - @RequestParam(value = "endDate",required = false) String endDate, + public HttpResult queryEnergy(@RequestParam(value = "buildingId", required = false) String buildingId, + @RequestParam(value = "startDate", required = false) String startDate, + @RequestParam(value = "endDate", required = false) String endDate, + @RequestParam(value = "level", required = false, defaultValue = "0") int level, @RequestParam(value = "page") int page, @RequestParam(value = "limit") int limit, - @RequestParam(value = "type") int type){ - try{ - String areaId=""; - if (buildingId!=null && buildingId.length()>0){ - if (!buildingId.equals("所有")){ - areaId=buildingService.queryAreaId(Integer.parseInt(buildingId)); - } - } - List list=new ArrayList<>(); - int count=0; - if (areaId!=null && areaId.length()>0){ - list=energyService.queryEnergy(areaId,startDate,endDate,page,limit,type); - count=energyService.getEnergyCount(areaId,startDate,endDate,page,limit,type); - }else{ - list=energyService.queryEnergy(buildingId,startDate,endDate,page,limit,type); - count=energyService.getEnergyCount(buildingId,startDate,endDate,page,limit,type); - } + @RequestParam(value = "type") int type) { + try { +// String areaId=""; +// if (buildingId!=null && buildingId.length()>0){ +// if (!buildingId.equals("所有")){ +// areaId=buildingService.queryAreaId(Integer.parseInt(buildingId)); +// } +// } + List list = new ArrayList<>(); + int count = 0; +// if (areaId!=null && areaId.length()>0){ + list = energyService.queryEnergy(buildingId, startDate, endDate, page, limit, type, level); + count = energyService.getEnergyCount(buildingId, startDate, endDate, page, limit, type, level); +// }else{ +// list=energyService.queryEnergy(buildingId,startDate,endDate,page,limit,type, level); +// count=energyService.getEnergyCount(buildingId,startDate,endDate,page,limit,type, level); +// } // System.out.println("返回前端数据:"+list); - return HttpResult.ok(count,list); - }catch (Exception e){ -// e.printStackTrace(); - return HttpResult.error("查询出错!"); + return HttpResult.ok(count, list); + } catch (Exception e) { + e.printStackTrace(); + return HttpResult.error("查询出错!"); } } //主界面水、电、单耗查询 - @SysLogger(title="项目概况",optDesc = "查询能耗信息") + @SysLogger(title = "项目概况", optDesc = "查询能耗信息") @PostMapping("/queryGroup") - public HttpResult queryEnergyGroup(@RequestParam(value = "curDate",required = true) String curDate, - @RequestParam(value = "type",required = true,defaultValue = "1") int type){ - try{ - List list=new ArrayList(); - list=energyService.queryEnergyGroup(curDate,type); - return HttpResult.ok(list); - }catch (Exception e){ + public HttpResult queryEnergyGroup(@RequestParam(value = "curDate", required = true) String curDate, + @RequestParam(value = "type", required = true, defaultValue = "1") int type) { + try { + List list = new ArrayList(); + list = energyService.queryEnergyGroup(curDate, type); + return HttpResult.ok(list); + } catch (Exception e) { e.printStackTrace(); - return HttpResult.error("查询出错!"); + return HttpResult.error("查询出错!"); } } //查询每天的用量 - @SysLogger(title="用能分析",optDesc = "查询每天的用量") + @SysLogger(title = "用能分析", optDesc = "查询每天的用量") @PostMapping("/queryDay") - public HttpResult queryDayEnergy(@RequestParam(value = "buildingId",required = false) String buildingId, - @RequestParam(value = "startDate",required = false) String startDate, - @RequestParam(value = "endDate",required = false) String endDate, + public HttpResult queryDayEnergy(@RequestParam(value = "buildingId", required = false) String buildingId, + @RequestParam(value = "startDate", required = false) String startDate, + @RequestParam(value = "endDate", required = false) String endDate, @RequestParam(value = "page") int page, - @RequestParam(value = "limit") int limit){ - try{ - String areaId=""; - if (buildingId!=null && buildingId.length()>0){ - if (!buildingId.equals("所有")){ - areaId=buildingService.queryAreaId(Integer.parseInt(buildingId)); + @RequestParam(value = "limit") int limit) { + try { + String areaId = ""; + if (buildingId != null && buildingId.length() > 0) { + if (!buildingId.equals("所有")) { + areaId = buildingService.queryAreaId(Integer.parseInt(buildingId)); } } List list; - int count=0; - if (areaId!=null && areaId.length()>0){ - list=energyService.queryDayEnergy(areaId,startDate,endDate,page,limit); - count=energyService.getDayEnergyCount(areaId,startDate,endDate,page,limit); - }else{ - list=energyService.queryDayEnergy(buildingId,startDate,endDate,page,limit); - count=energyService.getDayEnergyCount(buildingId,startDate,endDate,page,limit); + int count = 0; + if (areaId != null && areaId.length() > 0) { + list = energyService.queryDayEnergy(areaId, startDate, endDate, page, limit); + count = energyService.getDayEnergyCount(areaId, startDate, endDate, page, limit); + } else { + list = energyService.queryDayEnergy(buildingId, startDate, endDate, page, limit); + count = energyService.getDayEnergyCount(buildingId, startDate, endDate, page, limit); } - return HttpResult.ok(count,list); - }catch (Exception e){ + return HttpResult.ok(count, list); + } catch (Exception e) { e.printStackTrace(); - return HttpResult.error("查询出错!"); + return HttpResult.error("查询出错!"); } } //查询小时的用量 - @SysLogger(title="用能分析",optDesc = "查询小时的用量") + @SysLogger(title = "用能分析", optDesc = "查询小时的用量") @PostMapping("/queryHour") - public HttpResult queryHourEnergy(@RequestParam(value = "buildingId",required = false) String buildingId, - @RequestParam(value = "curDate",required = false) String curDate, - @RequestParam(value = "page") int page, - @RequestParam(value = "limit") int limit){ - try{ - String areaId=""; - if (buildingId!=null && buildingId.length()>0){ - if (!buildingId.equals("所有")){ - areaId=buildingService.queryAreaId(Integer.parseInt(buildingId)); - } - } + public HttpResult queryHourEnergy(@RequestParam(value = "buildingId", required = false) String buildingId, + @RequestParam(value = "curDate", required = false) String curDate, + @RequestParam(value = "level", required = false, defaultValue = "0") int level, + @RequestParam(value = "page") int page, + @RequestParam(value = "limit") int limit) { + try { +// String areaId = ""; +// if (buildingId != null && buildingId.length() > 0) { +// if (!buildingId.equals("所有")) { +// areaId = buildingService.queryAreaId(Integer.parseInt(buildingId)); +// } +// } List list; - int count=0; - if (areaId!=null && areaId.length()>0){ - list=energyService.queryHourEnergy(areaId,curDate,page,limit); - count=energyService.getHourEnergyCount(areaId,curDate); - }else{ - list=energyService.queryHourEnergy(buildingId,curDate,page,limit); - count=energyService.getHourEnergyCount(buildingId,curDate); - } - - return HttpResult.ok(count,list); - }catch (Exception e){ + int count = 0; +// if (areaId != null && areaId.length() > 0) { +// list = energyService.queryHourEnergy(areaId, curDate, page, limit, level); +//// count=energyService.getHourEnergyCount(areaId,curDate, level); +// count = list.size(); +// } else { + list = energyService.queryHourEnergy(buildingId, curDate, page, limit, level); +// count=energyService.getHourEnergyCount(buildingId,curDate, level); + count = list.size(); +// } + + return HttpResult.ok(count, list); + } catch (Exception e) { e.printStackTrace(); - return HttpResult.error("查询出错!"); + return HttpResult.error("查询出错!"); } } //查询楼栋时段用量对比 - @SysLogger(title="用能分析",optDesc = "查询楼栋时段用量对比") + @SysLogger(title = "用能分析", optDesc = "查询楼栋时段用量对比") @PostMapping("/queryBuild") - public HttpResult queryEnergyBuilding(@RequestParam(value = "curDate",required = false) String curDate, - @RequestParam(value = "endDate",required = false) String endDate, - @RequestParam(value = "type",required = false) int type, + public HttpResult queryEnergyBuilding(@RequestParam(value = "curDate", required = false) String curDate, + @RequestParam(value = "endDate", required = false) String endDate, + @RequestParam(value = "type", required = false) int type, @RequestParam(value = "page") int page, - @RequestParam(value = "limit") int limit){ - try{ - energyService.proEnergyBuilding(curDate,endDate,type); - List list=energyService.queryEnergyBuilding(page,limit); - SumModel list2=energyService.queryEnergySum(); - Map map=new HashMap<>(); - map.put("a",list); - map.put("b",list2); - int count=energyService.getEnergyBuildingCount(); - return HttpResult.ok(count,map); - }catch (Exception e){ + @RequestParam(value = "limit") int limit) { + try { + energyService.proEnergyBuilding(curDate, endDate, type); + List list = energyService.queryEnergyBuilding(page, limit); + SumModel list2 = energyService.queryEnergySum(); + Map map = new HashMap<>(); + map.put("a", list); + map.put("b", list2); + int count = energyService.getEnergyBuildingCount(); + return HttpResult.ok(count, map); + } catch (Exception e) { e.printStackTrace(); - return HttpResult.error("查询出错!"); + return HttpResult.error("查询出错!"); } } //查询合计 - @SysLogger(title="用能分析",optDesc = "查询合计") + @SysLogger(title = "用能分析", optDesc = "查询合计") @PostMapping("/querySum") - public HttpResult queryEnergySum(){ - try{ - SumModel list=energyService.queryEnergySum(); - return HttpResult.ok(list); - }catch (Exception e){ + public HttpResult queryEnergySum() { + try { + SumModel list = energyService.queryEnergySum(); + return HttpResult.ok(list); + } catch (Exception e) { e.printStackTrace(); - return HttpResult.error("查询出错!"); + return HttpResult.error("查询出错!"); } } diff --git a/user-service/src/main/java/com/mh/user/controller/NowDataController.java b/user-service/src/main/java/com/mh/user/controller/NowDataController.java index 433f644..b636c6f 100644 --- a/user-service/src/main/java/com/mh/user/controller/NowDataController.java +++ b/user-service/src/main/java/com/mh/user/controller/NowDataController.java @@ -41,42 +41,42 @@ public class NowDataController { @Autowired DeviceFloorService deviceFloorService; - @SysLogger(title="实时监控",optDesc = "实时查看每楼栋热水运行情况") + @SysLogger(title = "实时监控", optDesc = "实时查看每楼栋热水运行情况") @PostMapping("/queryNow") - public HttpResult queryNowData(@RequestParam(value = "buildingId") String buildingId){ - try{ + public HttpResult queryNowData(@RequestParam(value = "buildingId") String buildingId) { + try { //把热泵的水温保存到公共信息中中的用水温度和回水温度 - String avgWaterTemp=nowDataService.selectAve(buildingId); - String maxWaterTemp=nowDataService.selectMaxTemp(buildingId); - String buildingName=buildingService.queryBuildingName(buildingId);//获取楼栋名称 + String avgWaterTemp = nowDataService.selectAve(buildingId); + String maxWaterTemp = nowDataService.selectMaxTemp(buildingId); + String buildingName = buildingService.queryBuildingName(buildingId);//获取楼栋名称 SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - Date date=new Date(); - String curDate=sdf1.format(date); - curDate=curDate.substring(0,13)+":00:00"; + Date date = new Date(); + String curDate = sdf1.format(date); + curDate = curDate.substring(0, 13) + ":00:00"; - NowPublicDataEntity nowPublicData=new NowPublicDataEntity(); + NowPublicDataEntity nowPublicData = new NowPublicDataEntity(); nowPublicData.setBuildingId(buildingId); nowPublicData.setBuildingName(buildingName); - if (avgWaterTemp!=null){ + if (avgWaterTemp != null) { nowPublicData.setBackWaterTemp(avgWaterTemp); - }else{ + } else { nowPublicData.setBackWaterTemp("0"); } - if (maxWaterTemp!=null){ + if (maxWaterTemp != null) { nowPublicData.setUseWaterTemp(maxWaterTemp); - }else{ + } else { nowPublicData.setUseWaterTemp("0"); } nowPublicDataService.saveNowHistoryPublicData(nowPublicData); //监视表生成初始记录 - List list=nowDataService.queryNowData(buildingId); - if (list.size()==0){//实时表生成记录 - List deviceList=deviceInstallService.selectDevices(buildingId,"热泵"); - if (deviceList.size()>0){ - for (DeviceModel list2:deviceList){ - NowDataEntity nowData=new NowDataEntity(); + List list = nowDataService.queryNowData(buildingId); + if (list.size() == 0) {//实时表生成记录 + List deviceList = deviceInstallService.selectDevices(buildingId, "热泵"); + if (deviceList.size() > 0) { + for (DeviceModel list2 : deviceList) { + NowDataEntity nowData = new NowDataEntity(); nowData.setPumpId(list2.getDeviceAddr()); nowData.setPumpName(list2.getDeviceName()); nowData.setBuildingId(buildingId); @@ -85,10 +85,10 @@ public class NowDataController { nowDataService.saveNowData(nowData); //当前状态表 nowDataService.saveHistoryData(nowData); //历史状态表 } - }else{ - NowDataEntity nowData=new NowDataEntity(); - PumpModel pump=deviceFloorService.selectDeviceId2("热泵",buildingId); - if (pump!=null){ + } else { + NowDataEntity nowData = new NowDataEntity(); + PumpModel pump = deviceFloorService.selectDeviceId2("热泵", buildingId); + if (pump != null) { nowData.setPumpId(pump.getPumpId()); nowData.setPumpName(pump.getPumpName()); nowData.setBuildingId(buildingId); @@ -99,140 +99,144 @@ public class NowDataController { } } } - list=nowDataService.queryNowData(buildingId); - return HttpResult.ok(list); - }catch (Exception e){ - log.error("查询当前监控状态出错!",e); - return HttpResult.error("查询当前监控状态出错!"); + list = nowDataService.queryNowData(buildingId); + return HttpResult.ok(list); + } catch (Exception e) { + log.error("查询当前监控状态出错!", e); + return HttpResult.error("查询当前监控状态出错!"); } } - @SysLogger(title="实时监控",optDesc = "分别查看热泵运行情况") + @SysLogger(title = "实时监控", optDesc = "分别查看热泵运行情况") @PostMapping("/queryNowByPump") - public HttpResult queryNowByPump(@RequestParam(value = "buildingId") String buildingId,@RequestParam(value = "pumpId") String pumpId){ - try{ - NowDataEntity nowDataEntity=nowDataService.queryNowDataByPump(buildingId,pumpId); - return HttpResult.ok(nowDataEntity); - }catch (Exception e){ + public HttpResult queryNowByPump(@RequestParam(value = "buildingId") String buildingId, @RequestParam(value = "pumpId") String pumpId) { + try { + NowDataEntity nowDataEntity = nowDataService.queryNowDataByPump(buildingId, pumpId); + return HttpResult.ok(nowDataEntity); + } catch (Exception e) { e.printStackTrace(); - return HttpResult.error("按热泵查询当前监控状态出错!"); + return HttpResult.error("按热泵查询当前监控状态出错!"); } } - @SysLogger(title="运行信息",optDesc = "热泵历史状态查询") + @SysLogger(title = "运行信息", optDesc = "热泵历史状态查询") @PostMapping("/query") public HttpResult queryHistoryData(@RequestParam(value = "curDate") String curDate, @RequestParam(value = "buildingId") String buildingId, - @RequestParam(value = "pumpId",required = false) String pumpId, - @RequestParam(value = "tankId",required = false) String tankId, + @RequestParam(value = "pumpId", required = false) String pumpId, + @RequestParam(value = "tankId", required = false) String tankId, @RequestParam(value = "page") int page, - @RequestParam(value = "limit") int limit){ - try{ + @RequestParam(value = "limit") int limit) { + try { List list; - list=nowDataService.queryHistoryData(curDate,buildingId,pumpId,tankId,page,limit); - int count=nowDataService.getHistoryDataCount(curDate,buildingId,pumpId,tankId,page,limit); - return HttpResult.ok(count,list); - }catch (Exception e){ + list = nowDataService.queryHistoryData(curDate, buildingId, pumpId, tankId, page, limit); + int count = nowDataService.getHistoryDataCount(curDate, buildingId, pumpId, tankId, page, limit); + return HttpResult.ok(count, list); + } catch (Exception e) { // e.printStackTrace(); - return HttpResult.error("查询出错!"); + return HttpResult.error("查询出错!"); } } //查询水位开始 - @SysLogger(title="水位变化表",optDesc = "水位变化查询") + @SysLogger(title = "水位变化表", optDesc = "水位变化查询") @PostMapping("/waterLevel") public HttpResult queryWaterLevel(@RequestParam(value = "curDate") String curDate, - @RequestParam(value = "buildingID") String buildingID, - @RequestParam(value = "page") int page, - @RequestParam(value = "limit") int limit){ - try{ - if (buildingID==null || buildingID.equals("") || buildingID.equals("所有楼栋")){ - List list=nowDataService.queryBuildWaterLevel(curDate, page, limit); - int count=nowDataService.buildWaterLevelCount(curDate); - return HttpResult.ok(count,list); - }else{ - List list=nowDataService.queryWaterLevel(curDate,buildingID,page,limit); - int count=nowDataService.getWaterLevelCount(curDate,buildingID); - return HttpResult.ok(count,list); + @RequestParam(value = "buildingID") String buildingID, + @RequestParam(value = "level", defaultValue = "0") int level, + @RequestParam(value = "page") int page, + @RequestParam(value = "limit") int limit) { + try { + if (buildingID == null || buildingID.equals("") || buildingID.equals("所有楼栋") || level == 0 || level == 1) { + List list = nowDataService.queryBuildWaterLevel(curDate, page, limit, level, buildingID); +// int count = nowDataService.buildWaterLevelCount(curDate); + int count = list.size(); + return HttpResult.ok(count, list); + } else { + List list = nowDataService.queryWaterLevel(curDate, buildingID, page, limit); + int count = nowDataService.getWaterLevelCount(curDate, buildingID); + return HttpResult.ok(count, list); } - - }catch (Exception e){ + } catch (Exception e) { // e.printStackTrace(); - return HttpResult.error("查询出错!"); + return HttpResult.error("查询出错!"); } } @PostMapping("/levelByTime") public HttpResult queryWaterLevelByTime(@RequestParam(value = "curDate") String curDate, @RequestParam(value = "page") int page, - @RequestParam(value = "limit") int limit){ - try{ - int count=nowDataService.waterLevelByTimeCount(curDate); - List list=nowDataService.queryWaterLevelByTime(curDate,page,limit); - return HttpResult.ok(count,list); - }catch (Exception e){ + @RequestParam(value = "limit") int limit) { + try { + int count = nowDataService.waterLevelByTimeCount(curDate); + List list = nowDataService.queryWaterLevelByTime(curDate, page, limit); + return HttpResult.ok(count, list); + } catch (Exception e) { // e.printStackTrace(); - return HttpResult.error("查询出错!"); + return HttpResult.error("查询出错!"); } } //查询水位结束 //查询水温,每天24小时情况 - @SysLogger(title="温度变化表",optDesc = "温度变化查询") + @SysLogger(title = "温度变化表", optDesc = "温度变化查询") @PostMapping("/waterTemp") public HttpResult queryWaterTemp(@RequestParam(value = "buildingID") String buildingID, @RequestParam(value = "curDate") String curDate, + @RequestParam(value = "level", defaultValue = "0") int level, @RequestParam(value = "page") int page, - @RequestParam(value = "limit") int limit){ - try{ + @RequestParam(value = "limit") int limit) { + try { List list; int count; - if (buildingID==null || buildingID.equals("") || buildingID.equals("所有楼栋")){ - list=nowDataService.queryWaterTemp2(curDate,page,limit); - count=nowDataService.queryWaterTempCount2(curDate); - }else{ - list=nowDataService.queryWaterTemp(buildingID,curDate,page,limit); - count=nowDataService.queryWaterTempCount(buildingID,curDate); + // 校区或者区域 + if (buildingID == null || buildingID.equals("") || buildingID.equals("所有楼栋") || level == 0 || level == 1) { + list = nowDataService.queryWaterTemp2(curDate, page, limit, level, buildingID); +// count = nowDataService.queryWaterTempCount2(curDate, level, buildingID); + count = list.size(); + } else { + list = nowDataService.queryWaterTemp(buildingID, curDate, page, limit); + count = nowDataService.queryWaterTempCount(buildingID, curDate); } - return HttpResult.ok(count,list); - }catch (Exception e){ + return HttpResult.ok(count, list); + } catch (Exception e) { // e.printStackTrace(); - return HttpResult.error("查询出错!"); + return HttpResult.error("查询出错!"); } } //查询运行时长 - @SysLogger(title="运行时长",optDesc = "热泵运行时长查询") + @SysLogger(title = "运行时长", optDesc = "热泵运行时长查询") @PostMapping("/minutes") public HttpResult pumpMinutes(@RequestParam(value = "startDate") String startDate, @RequestParam(value = "endDate") String endDate, - @RequestParam(value = "buildingId",required = false) String buildingId, - @RequestParam(value = "pumpId",required = false) String pumpId, + @RequestParam(value = "buildingId", required = false) String buildingId, + @RequestParam(value = "pumpId", required = false) String pumpId, @RequestParam(value = "type") int type, @RequestParam(value = "page") int page, - @RequestParam(value = "limit") int limit){ - try{ - int count=0; + @RequestParam(value = "limit") int limit) { + try { + int count = 0; List list; - if(type==1){ - list=nowDataService.pumpMinutes(startDate,endDate,buildingId,pumpId,page,limit); - count=nowDataService.pumpMinutesCount(startDate,endDate,buildingId,pumpId); - }else if(type==2){ - list=nowDataService.pumpWeekMinutes(startDate,endDate,buildingId,pumpId,page,limit); - count=nowDataService.pumpWeekMinutesCount(startDate,endDate,buildingId,pumpId); - }else if(type==3){ - list=nowDataService.pumpMonthMinutes(startDate,endDate,buildingId,pumpId,page,limit); - count=nowDataService.pumpMonthMinutesCount(startDate,endDate,buildingId,pumpId); - }else{ - list=nowDataService.pumpMinutes(startDate,endDate,buildingId,pumpId,page,limit); - count=nowDataService.pumpMinutesCount(startDate,endDate,buildingId,pumpId); + if (type == 1) { + list = nowDataService.pumpMinutes(startDate, endDate, buildingId, pumpId, page, limit); + count = nowDataService.pumpMinutesCount(startDate, endDate, buildingId, pumpId); + } else if (type == 2) { + list = nowDataService.pumpWeekMinutes(startDate, endDate, buildingId, pumpId, page, limit); + count = nowDataService.pumpWeekMinutesCount(startDate, endDate, buildingId, pumpId); + } else if (type == 3) { + list = nowDataService.pumpMonthMinutes(startDate, endDate, buildingId, pumpId, page, limit); + count = nowDataService.pumpMonthMinutesCount(startDate, endDate, buildingId, pumpId); + } else { + list = nowDataService.pumpMinutes(startDate, endDate, buildingId, pumpId, page, limit); + count = nowDataService.pumpMinutesCount(startDate, endDate, buildingId, pumpId); } - return HttpResult.ok(count,list); - }catch (Exception e){ + return HttpResult.ok(count, list); + } catch (Exception e) { // e.printStackTrace(); - return HttpResult.error("查询出错!"); + return HttpResult.error("查询出错!"); } } } diff --git a/user-service/src/main/java/com/mh/user/controller/SummaryController.java b/user-service/src/main/java/com/mh/user/controller/SummaryController.java index cae1e51..b4c3505 100644 --- a/user-service/src/main/java/com/mh/user/controller/SummaryController.java +++ b/user-service/src/main/java/com/mh/user/controller/SummaryController.java @@ -40,20 +40,21 @@ public class SummaryController { @PostMapping(value="/energySum") public HttpResult queryEnergySum(@RequestParam(value= "buildingId", required=false)String buildingId, @RequestParam(value= "curDate", required=false)String curDate, + @RequestParam(value= "level", required=false, defaultValue="0") int level, @RequestParam(value= "type", required=true)Integer type) { try{ - String areaId=""; - if (buildingId!=null && buildingId.length()>0){ - if (!buildingId.equals("所有")){ - areaId=buildingService.queryAreaId(Integer.parseInt(buildingId)); - } - } +// String areaId=""; +// if (buildingId!=null && buildingId.length()>0){ +// if (!buildingId.equals("所有")){ +// areaId=buildingService.queryAreaId(Integer.parseInt(buildingId)); +// } +// } EnergySumEntity record; - if (areaId!=null && areaId.length()>0){ - record=summaryService.queryEnergySum(areaId,curDate,type); - }else{ - record=summaryService.queryEnergySum(buildingId,curDate,type); - } +// if (areaId!=null && areaId.length()>0){ +// record=summaryService.queryEnergySum(areaId,curDate,type); +// }else{ + record=summaryService.queryEnergySum(buildingId,curDate,type, level); +// } return HttpResult.ok(record); }catch (Exception e){ //e.printStackTrace(); diff --git a/user-service/src/main/java/com/mh/user/entity/AreaEntity.java b/user-service/src/main/java/com/mh/user/entity/AreaEntity.java index a635d19..e7292d0 100644 --- a/user-service/src/main/java/com/mh/user/entity/AreaEntity.java +++ b/user-service/src/main/java/com/mh/user/entity/AreaEntity.java @@ -1,11 +1,33 @@ package com.mh.user.entity; +import java.util.StringJoiner; + public class AreaEntity { + private Long id; + private String areaId; private String areaName; + private int sort; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public int getSort() { + return sort; + } + + public void setSort(int sort) { + this.sort = sort; + } + public String getAreaId() { return areaId; } @@ -24,9 +46,11 @@ public class AreaEntity { @Override public String toString() { - return "AreaEntity{" + - "areaId='" + areaId + '\'' + - ", areaName='" + areaName + '\'' + - '}'; + return new StringJoiner(", ", AreaEntity.class.getSimpleName() + "[", "]") + .add("id=" + id) + .add("areaId='" + areaId + "'") + .add("areaName='" + areaName + "'") + .add("sort=" + sort) + .toString(); } } diff --git a/user-service/src/main/java/com/mh/user/entity/BuildingEntity.java b/user-service/src/main/java/com/mh/user/entity/BuildingEntity.java index 92e84bd..9fa353f 100644 --- a/user-service/src/main/java/com/mh/user/entity/BuildingEntity.java +++ b/user-service/src/main/java/com/mh/user/entity/BuildingEntity.java @@ -14,9 +14,11 @@ public class BuildingEntity { private int bedCount; private int checkInCount; private String areaId; + private String areaName; private String remarks; private Double tankHeight; private Double lowTankHeight; private int pumpCount; + private int sort; } diff --git a/user-service/src/main/java/com/mh/user/mapper/AnalysisMapper.java b/user-service/src/main/java/com/mh/user/mapper/AnalysisMapper.java index 5683e5a..43b2952 100644 --- a/user-service/src/main/java/com/mh/user/mapper/AnalysisMapper.java +++ b/user-service/src/main/java/com/mh/user/mapper/AnalysisMapper.java @@ -46,7 +46,6 @@ public interface AnalysisMapper { @Result(column = "item_type", property = "itemType"), @Result(column = "total_value", property = "totalValue") }) - @Select("select * from analysis_elect_month where cur_date=#{curDate} and building_id=#{buildingId}") List queryAnalysisElectMonth(@Param("curDate") String curDate, @Param("buildingId") String buildingId); diff --git a/user-service/src/main/java/com/mh/user/mapper/AreaMapper.java b/user-service/src/main/java/com/mh/user/mapper/AreaMapper.java index bde517c..9ad1ea5 100644 --- a/user-service/src/main/java/com/mh/user/mapper/AreaMapper.java +++ b/user-service/src/main/java/com/mh/user/mapper/AreaMapper.java @@ -1,18 +1,79 @@ package com.mh.user.mapper; import com.mh.user.entity.AreaEntity; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Result; -import org.apache.ibatis.annotations.Results; -import org.apache.ibatis.annotations.Select; +import com.mh.user.model.AreaModel; +import org.apache.ibatis.annotations.*; +import tk.mybatis.mapper.common.BaseMapper; import java.util.List; @Mapper -public interface AreaMapper { +public interface AreaMapper extends BaseMapper { - @Results({ @Result(property = "areaId", column = "area_id"), - @Result(property = "areaName", column = "area_name")}) - @Select("select * from area ") + @Results({ + @Result(property = "areaId", column = "area_id"), + @Result(property = "areaName", column = "area_name"), + @Result(property = "sort", column = "sort"), + }) + @Select("select * from area order by sort ") List findAll(); + + @Select("select count(*) from area where area_id=#{areaId} and area_name=#{areaName}") + int selectCountByAreaIdAndAreaName(String areaId, String areaName); + + @Select("select count(*) from area where id= #{areaId}") + int getCount(String areaId, Integer page, Integer limit); + + @Select({ + "" + }) + @Results(value = { + @Result(property="id",column="id"), + @Result(property="areaName",column="area_name"), + @Result(property="areaId",column="area_id") + }) + List queryArea(String areaId, Integer page, Integer limit); + + //查询所有楼栋编号和名称 + @Select("select * from area order by sort ") + @Results(value = { + @Result(property="areaId",column="id"), + @Result(property="areaName",column="area_name") + }) + List selectAreaName(); + + @Delete("delete from area where id=#{id} ") + int deleteArea(String id); + + @Select("select count(*) from area where area_name= #{areaName}") + int selectByAreaName(String areaName); + + @Results({ + @Result(property = "areaId", column = "area_id"), + @Result(property = "areaName", column = "area_name"), + @Result(property = "sort", column = "sort"), + @Result(property = "id", column = "id") + }) + @Select("select * from area where id= #{id} ") + AreaEntity selectById(String buildingId); + + @Insert("insert into area(area_id,area_name,sort) values(#{areaId},#{areaName},#{sort})") + int insertArea(AreaEntity areaEntity); + + @Update("update area set area_id=#{areaId},area_name=#{areaName},sort=#{sort} where id=#{id}") + int updateArea(AreaEntity areaEntity); } diff --git a/user-service/src/main/java/com/mh/user/mapper/BuildingMapper.java b/user-service/src/main/java/com/mh/user/mapper/BuildingMapper.java index 173269d..5332cde 100644 --- a/user-service/src/main/java/com/mh/user/mapper/BuildingMapper.java +++ b/user-service/src/main/java/com/mh/user/mapper/BuildingMapper.java @@ -60,11 +60,11 @@ public interface BuildingMapper { @Result(property="pumpCount",column="pump_count"), @Result(property="remarks",column="remarks"), @Result(property="tankHeight",column="tankHeight"), - @Result(property="lowTankHeight",column="low_tank_height") + @Result(property="lowTankHeight",column="low_tank_height"), + @Result(property="areaName",column="area_name") }) - @SelectProvider(type = BuildingProvider.class,method = "queryBuilding") - List queryBuilding(@Param("buildingId") String buildingId,@Param("page") int page, @Param("limit") int limit); + List queryBuilding(@Param("buildingId") String buildingId,@Param("page") int page, @Param("limit") int limit, @Param("level") int level); /** * 楼栋管理模块: @@ -72,7 +72,7 @@ public interface BuildingMapper { * @return */ @SelectProvider(type = BuildingProvider.class,method = "getCount") - int getCount(@Param("buildingId") String buildingId,@Param("page") int page, @Param("limit") int limit); + int getCount(@Param("buildingId") String buildingId,@Param("page") int page, @Param("limit") int limit, @Param("level") int level); //查询所有楼栋编号和名称 @Results(value = { @@ -122,4 +122,28 @@ public interface BuildingMapper { @Select("select low_tank_height from building where id=#{id}" ) Double queryLowTankHeight(@Param("id") String buildingId); + + @Results(value = { + @Result(property="id",column="id"), + @Result(property="buildingName",column="building_name"), + @Result(property="levelsCount",column="levels_count"), + @Result(property="beginLevel",column="begin_level"), + @Result(property ="houseCount",column ="house_count"), + @Result(property ="bedCount",column ="bed_count"), + @Result(property="checkInCount",column="check_in_count"), + @Result(property="areaId",column="area_id"), + @Result(property="pumpCount",column="pump_count"), + @Result(property="remarks",column="remarks"), + @Result(property="tankHeight",column="tankHeight"), + @Result(property="lowTankHeight",column="low_tank_height"), + @Result(property="sort",column="sort"), + }) + @Select("select * from building ") + List selectAll(); + + @Select("select id from building where area_id = #{areaId} order by sort ") + List queryBuildingIdListByAreaId(String areaId); + + @Select("select sum(check_in_count) from building where area_id = #{areaId} ") + int queryCheckInCount(@Param("areaId") String areaId); } diff --git a/user-service/src/main/java/com/mh/user/mapper/DeviceInstallMapper.java b/user-service/src/main/java/com/mh/user/mapper/DeviceInstallMapper.java index c422c60..59630fd 100644 --- a/user-service/src/main/java/com/mh/user/mapper/DeviceInstallMapper.java +++ b/user-service/src/main/java/com/mh/user/mapper/DeviceInstallMapper.java @@ -118,7 +118,8 @@ public interface DeviceInstallMapper extends BaseMapper { @Param("isUse")String isUse, @Param("isFault")String isFault, @Param("page") int page, - @Param("limit") int limit); + @Param("limit") int limit, + @Param("level") int level); /** * 设备管理模块: * 根据条件获取设备查询的总条数 @@ -133,7 +134,8 @@ public interface DeviceInstallMapper extends BaseMapper { @Param("isUse")String isUse, @Param("isFault")String isFault, @Param("page") int page, - @Param("limit") int limit); + @Param("limit") int limit, + @Param("level") int level); //查询设备故障情况 @SelectProvider(type = DeviceInstallProvider.class,method = "getIsFaultCount") diff --git a/user-service/src/main/java/com/mh/user/mapper/EnergyMapper.java b/user-service/src/main/java/com/mh/user/mapper/EnergyMapper.java index ba22126..9389617 100644 --- a/user-service/src/main/java/com/mh/user/mapper/EnergyMapper.java +++ b/user-service/src/main/java/com/mh/user/mapper/EnergyMapper.java @@ -230,4 +230,308 @@ public interface EnergyMapper { SumModel queryEnergySum(); + @Select({ + "" + }) + int getAreaEnergyDayCount(@Param("buildingIds") List buildingIds, + @Param("startDate") String startDate, + @Param("endDate") String endDate, + @Param("page") int page, + @Param("limit") int limit); + + @Select({ + "" + }) + @ResultMap("rs") + List getAreaEnergyDay(@Param("buildingIds") List buildingIds, + @Param("startDate") String startDate, + @Param("endDate") String endDate, + @Param("page") int page, + @Param("limit") int limit, + @Param("areaName") String areaName); + + @Select({ + "" + }) + int getAreaEnergyMonthCount(@Param("buildingIds") List buildingIds, + @Param("startDate") String startDate, + @Param("endDate") String endDate, + @Param("page") int page, + @Param("limit") int limit); + + @Select({ + "" + }) + @ResultMap("rs") + List getAreaEnergyMonth(@Param("buildingIds") List buildingIds, + @Param("startDate") String startDate, + @Param("endDate") String endDate, + @Param("page") int page, + @Param("limit") int limit, + @Param("areaName") String areaName); + + @Select({ + "" + }) + int getAreaEnergyYearCount(@Param("buildingIds") List buildingIds, + @Param("startDate") String startDate, + @Param("endDate") String endDate, + @Param("page") int page, + @Param("limit") int limit); + + @Select({ + "" + }) + @ResultMap("rs") + List getAreaEnergyYear(@Param("buildingIds") List buildingIds, + @Param("startDate") String startDate, + @Param("endDate") String endDate, + @Param("page") int page, + @Param("limit") int limit, + @Param("areaName") String areaName); + + @Select({ + "" + }) + @ResultMap("rs") + List getAreaEnergyHour(@Param("buildingIds") List buildingIds, + @Param("curDate") String curDate, + @Param("page") int page, + @Param("limit") int limit, + @Param("areaName") String areaName); } diff --git a/user-service/src/main/java/com/mh/user/mapper/provider/BuildingProvider.java b/user-service/src/main/java/com/mh/user/mapper/provider/BuildingProvider.java index 042d723..a35dfc7 100644 --- a/user-service/src/main/java/com/mh/user/mapper/provider/BuildingProvider.java +++ b/user-service/src/main/java/com/mh/user/mapper/provider/BuildingProvider.java @@ -2,14 +2,20 @@ package com.mh.user.mapper.provider; public class BuildingProvider { - public String queryBuilding(String buildingId, int page, int limit){ + public String queryBuilding(String buildingId, int page, int limit, int level){ StringBuffer sql = new StringBuffer(""); sql.append("select * from (" + - " select *,ROW_NUMBER() over(order by id) as rn from building " + + " select bd.*,ar.area_name,ROW_NUMBER() over(order by bd.id) as rn from building bd left join area ar on bd.area_id = ar.id " + " where 1=1 "); - if (buildingId != null && !buildingId.equals("")){ - sql.append(" AND id = #{buildingId} "); + if (level == 2) { + if (buildingId != null && !buildingId.equals("")) { + sql.append(" AND bd.id = #{buildingId} "); + } + } else if (level == 1) { + if (buildingId != null && !buildingId.equals("")) { + sql.append(" AND ar.id = #{buildingId} "); + } } if ((page != 0) && (limit != 0)){ sql.append(" ) T where T.rn>(#{page}-1)*#{limit} and T.rn<=#{page}*#{limit}"); @@ -20,14 +26,20 @@ public class BuildingProvider { return sql.toString(); } - public String getCount(String buildingId, int page, int limit){ + public String getCount(String buildingId, int page, int limit, int level){ StringBuffer sql = new StringBuffer(""); sql.append("select count(*) from (" + " select *,ROW_NUMBER() over(order by id) as rn from building " + " where 1=1 "); - if (buildingId != null && !buildingId.equals("")){ - sql.append(" AND id = #{buildingId} "); + if (level == 2) { + if (buildingId != null && !buildingId.equals("")) { + sql.append(" AND id = #{buildingId} "); + } + } else if (level == 1) { + if (buildingId != null && !buildingId.equals("")) { + sql.append(" AND area_id = #{buildingId} "); + } } sql.append(" ) T "); diff --git a/user-service/src/main/java/com/mh/user/mapper/provider/DeviceInstallProvider.java b/user-service/src/main/java/com/mh/user/mapper/provider/DeviceInstallProvider.java index 75fe499..72e36a2 100644 --- a/user-service/src/main/java/com/mh/user/mapper/provider/DeviceInstallProvider.java +++ b/user-service/src/main/java/com/mh/user/mapper/provider/DeviceInstallProvider.java @@ -2,13 +2,19 @@ package com.mh.user.mapper.provider; public class DeviceInstallProvider { - public String queryDevice(String buildingId,String deviceType,String startDate,String endDate,String isOnline,String isUse,String isFault, int page, int limit){ + public String queryDevice(String buildingId,String deviceType,String startDate,String endDate,String isOnline,String isUse,String isFault, int page, int limit, int level){ StringBuffer sql = new StringBuffer(""); sql.append("select * from (" + " select top 1000 *,ROW_NUMBER() over(order by T.sort) as rn from (select top 1000 t1.*,t2.sort from device_install t1 " + - " join building t2 on t1.building_id=t2.id where 1=1 "); - if (buildingId != null && !buildingId.equals("")){ - sql.append(" AND t1.building_id = #{buildingId} "); + " join building t2 on t1.building_id=t2.id left join area ar on ar.id = t2.area_id where 1=1 "); + if (level == 2) { + if (buildingId != null && !buildingId.equals("")) { + sql.append(" AND t1.building_id = #{buildingId} "); + } + } else if (level == 1) { + if (buildingId != null && !buildingId.equals("")) { + sql.append(" AND ar.id = #{buildingId} "); + } } if (deviceType != null && !deviceType.equals("")){ sql.append(" AND t1.device_type = #{deviceType} "); @@ -34,13 +40,19 @@ public class DeviceInstallProvider { return sql.toString(); } - public String getCount(String buildingId,String deviceType,String startDate,String endDate,String isOnline,String isUse,String isFault, int page, int limit){ + public String getCount(String buildingId,String deviceType,String startDate,String endDate,String isOnline,String isUse,String isFault, int page, int limit, int level){ StringBuffer sql = new StringBuffer(""); sql.append("select count(*) from (" + " select top 1000 *,ROW_NUMBER() over(order by T.sort) as rn from (select top 1000 t1.*,t2.sort from device_install t1 " + - " join building t2 on t1.building_id=t2.id where 1=1 "); - if (buildingId != null && !buildingId.equals("")){ - sql.append(" AND t1.building_id = #{buildingId} "); + " join building t2 on t1.building_id=t2.id left join area ar on ar.id = t2.area_id where 1=1 "); + if (level == 2) { + if (buildingId != null && !buildingId.equals("")) { + sql.append(" AND t1.building_id = #{buildingId} "); + } + } else if (level == 1) { + if (buildingId != null && !buildingId.equals("")) { + sql.append(" AND ar.id = #{buildingId} "); + } } if (deviceType != null && !deviceType.equals("")){ sql.append(" AND t1.device_type = #{deviceType} "); diff --git a/user-service/src/main/java/com/mh/user/mapper/provider/EnergyProvider.java b/user-service/src/main/java/com/mh/user/mapper/provider/EnergyProvider.java index 9e52252..fd8aa4f 100644 --- a/user-service/src/main/java/com/mh/user/mapper/provider/EnergyProvider.java +++ b/user-service/src/main/java/com/mh/user/mapper/provider/EnergyProvider.java @@ -23,7 +23,7 @@ public class EnergyProvider { if(buildingId.equals("所有")){ if ((page != 0) && (limit != 0)){ sql.append(" )T where T.rn>(#{page}-1)*#{limit} and T.rn<=#{page}*#{limit} order by T.cur_date desc"); - } else if (page == 0){ + } else if (page == 0 || limit == 0){ sql.append(" )T order by T.cur_date desc"); } }else{ diff --git a/user-service/src/main/java/com/mh/user/model/AreaBuildingTreeModel.java b/user-service/src/main/java/com/mh/user/model/AreaBuildingTreeModel.java new file mode 100644 index 0000000..885c399 --- /dev/null +++ b/user-service/src/main/java/com/mh/user/model/AreaBuildingTreeModel.java @@ -0,0 +1,88 @@ +package com.mh.user.model; + +import java.util.List; +import java.util.StringJoiner; + +/** + * @author LJF + * @version 1.0 + * @project CHWS + * @description 区域楼栋树形结构数据 + * @date 2025-09-08 17:28:47 + */ +public class AreaBuildingTreeModel { + + private Long id; + + private String name; + + private Long parentId; + + private int sort; + + /** + * 层级:0:学校,1:区域,2:楼栋 + */ + private int level; + + private List children; + + public int getLevel() { + return level; + } + + public void setLevel(int level) { + this.level = level; + } + + public int getSort() { + return sort; + } + + public void setSort(int sort) { + this.sort = sort; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Long getParentId() { + return parentId; + } + + public void setParentId(Long parentId) { + this.parentId = parentId; + } + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } + + @Override + public String toString() { + return new StringJoiner(", ", AreaBuildingTreeModel.class.getSimpleName() + "[", "]") + .add("id=" + id) + .add("name='" + name + "'") + .add("parentId='" + parentId + "'") + .add("children=" + children) + .toString(); + } + +} diff --git a/user-service/src/main/java/com/mh/user/model/AreaModel.java b/user-service/src/main/java/com/mh/user/model/AreaModel.java new file mode 100644 index 0000000..aff8d26 --- /dev/null +++ b/user-service/src/main/java/com/mh/user/model/AreaModel.java @@ -0,0 +1,10 @@ +package com.mh.user.model; + +import lombok.Data; + +@Data +public class AreaModel { + + private Long areaId; + private String areaName; +} diff --git a/user-service/src/main/java/com/mh/user/service/AreaService.java b/user-service/src/main/java/com/mh/user/service/AreaService.java index 969afc5..eec5570 100644 --- a/user-service/src/main/java/com/mh/user/service/AreaService.java +++ b/user-service/src/main/java/com/mh/user/service/AreaService.java @@ -1,10 +1,29 @@ package com.mh.user.service; import com.mh.user.entity.AreaEntity; +import com.mh.user.model.AreaModel; import java.util.List; public interface AreaService { List findAll(); + + int saveArea(AreaEntity areaEntity); + + int updateArea(AreaEntity areaEntity); + + int getCount(String areaId, Integer page, Integer limit); + + List queryArea(String areaId, Integer page, Integer limit); + + List selectAreaName(); + + int deleteArea(List records); + + int deleteAreaById(String id); + + int selectByAreaName(String areaName); + + AreaEntity selectById(String buildingId); } diff --git a/user-service/src/main/java/com/mh/user/service/BuildingService.java b/user-service/src/main/java/com/mh/user/service/BuildingService.java index 6a750cb..a51b740 100644 --- a/user-service/src/main/java/com/mh/user/service/BuildingService.java +++ b/user-service/src/main/java/com/mh/user/service/BuildingService.java @@ -1,6 +1,7 @@ package com.mh.user.service; import com.mh.user.entity.BuildingEntity; +import com.mh.user.model.AreaBuildingTreeModel; import com.mh.user.model.BuildingModel; import org.apache.ibatis.annotations.Param; @@ -29,14 +30,14 @@ public interface BuildingService { * @param limit * @return */ - List queryBuilding(String buildingId,int page, int limit); + List queryBuilding(String buildingId,int page, int limit, int level); /** * 楼栋管理模块: * 获取楼栋信息查询的总条数 * @return */ - int getCount(String buildingId,int page, int limit); + int getCount(String buildingId,int page, int limit, int level); //查询楼栋名称 List selectBuildingName(); @@ -74,4 +75,10 @@ public interface BuildingService { String selectBuildingNameById(String buildingId); Double queryLowTankHeight(String buildingId); + + List queryTree(); + + List queryBuildingIdListByAreaId(String areaId); + + int queryCheckInCount(String areaId); } diff --git a/user-service/src/main/java/com/mh/user/service/DeviceInstallService.java b/user-service/src/main/java/com/mh/user/service/DeviceInstallService.java index 621b1e8..8882281 100644 --- a/user-service/src/main/java/com/mh/user/service/DeviceInstallService.java +++ b/user-service/src/main/java/com/mh/user/service/DeviceInstallService.java @@ -67,7 +67,7 @@ public interface DeviceInstallService { * @param limit * @return */ - List queryDevice(String buildingId,String deviceType, String startDate, String endDate,String isOnline, String isUse, String isFault, int page, int limit); + List queryDevice(String buildingId,String deviceType, String startDate, String endDate,String isOnline, String isUse, String isFault, int page, int limit, int level); /** * 设备管理模块: @@ -75,7 +75,7 @@ public interface DeviceInstallService { * * @return */ - int getCount(String buildingId,String deviceType, String startDate, String endDate,String isOnline, String isUse, String isFault, int page, int limit); + int getCount(String buildingId,String deviceType, String startDate, String endDate,String isOnline, String isUse, String isFault, int page, int limit, int level); //查询设备故障情况 int getIsFaultCount(String isFault,String deviceType); diff --git a/user-service/src/main/java/com/mh/user/service/EnergyService.java b/user-service/src/main/java/com/mh/user/service/EnergyService.java index 5b02839..6b7106e 100644 --- a/user-service/src/main/java/com/mh/user/service/EnergyService.java +++ b/user-service/src/main/java/com/mh/user/service/EnergyService.java @@ -41,7 +41,7 @@ public interface EnergyService { * @return */ List queryEnergy(String buildingId, String startDate,String endDate, - int page, int limit,int type); + int page, int limit,int type, int level); /** * 生产信息 @@ -49,7 +49,7 @@ public interface EnergyService { * @return */ int getEnergyCount( String buildingId, String startDate,String endDate, - int page, int limit,int type); + int page, int limit,int type, int level); /** * 生产信息 @@ -66,9 +66,9 @@ public interface EnergyService { int getDayEnergyCount(String buildingId, String startDate, String endDate, int page, int limit); //查询小时的用量 - List queryHourEnergy(String buildingId,String curDate, int page, int limit); + List queryHourEnergy(String buildingId,String curDate, int page, int limit, int level); - int getHourEnergyCount(String buildingId, String curDate); + int getHourEnergyCount(String buildingId, String curDate, int level); //查询记录 List queryEnergyBuilding(int page,int limit); diff --git a/user-service/src/main/java/com/mh/user/service/NowDataService.java b/user-service/src/main/java/com/mh/user/service/NowDataService.java index d14d1ac..e4a7ddf 100644 --- a/user-service/src/main/java/com/mh/user/service/NowDataService.java +++ b/user-service/src/main/java/com/mh/user/service/NowDataService.java @@ -57,7 +57,7 @@ public interface NowDataService { int waterLevelByTimeCount(String curDate); //查询每天楼栋水位变化 - List queryBuildWaterLevel(String curDate, int page, int limit); + List queryBuildWaterLevel(String curDate, int page, int limit, int level, String buildingID); //查询每天楼栋水位变化记录数 int buildWaterLevelCount(String curDate); @@ -97,9 +97,9 @@ public interface NowDataService { int queryWaterTempCount(String buildingID,String curDate); //查询每天24小时每个热泵温度变化情况2 - List queryWaterTemp2(String curDate,int page,int limit); + List queryWaterTemp2(String curDate,int page,int limit, int level, String buildingID); - int queryWaterTempCount2(String curDate); + int queryWaterTempCount2(String curDate, int level, String buildingID); //生成楼栋温度 void proWaterTemp(String curDate,String buildingID,String pumpID); diff --git a/user-service/src/main/java/com/mh/user/service/SummaryService.java b/user-service/src/main/java/com/mh/user/service/SummaryService.java index 4432dd2..b07c325 100644 --- a/user-service/src/main/java/com/mh/user/service/SummaryService.java +++ b/user-service/src/main/java/com/mh/user/service/SummaryService.java @@ -11,7 +11,7 @@ public interface SummaryService { DeviceStateEntity queryDeviceState(); //查询用量汇总比较 - EnergySumEntity queryEnergySum(String buildingId,String curDate,int type); + EnergySumEntity queryEnergySum(String buildingId,String curDate,int type, int level); //查询维修量汇总 MaintainSumEntity queryMaintainSum(String buildingId, String curDate); diff --git a/user-service/src/main/java/com/mh/user/service/impl/AreaServiceImpl.java b/user-service/src/main/java/com/mh/user/service/impl/AreaServiceImpl.java index 6874f66..d7ebb68 100644 --- a/user-service/src/main/java/com/mh/user/service/impl/AreaServiceImpl.java +++ b/user-service/src/main/java/com/mh/user/service/impl/AreaServiceImpl.java @@ -2,6 +2,7 @@ package com.mh.user.service.impl; import com.mh.user.entity.AreaEntity; import com.mh.user.mapper.AreaMapper; +import com.mh.user.model.AreaModel; import com.mh.user.service.AreaService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -14,8 +15,61 @@ public class AreaServiceImpl implements AreaService { @Autowired AreaMapper areaMapper; - public List findAll(){ + public List findAll() { - return areaMapper.findAll(); + return areaMapper.findAll(); + } + + @Override + public int saveArea(AreaEntity areaEntity) { + // 判断区域id和区域名称是否存在 + int count = areaMapper.selectCountByAreaIdAndAreaName(areaEntity.getAreaId(), areaEntity.getAreaName()); + if (count > 0) { + return 0; + } + return areaMapper.insertArea(areaEntity); + } + + @Override + public int updateArea(AreaEntity areaEntity) { + return areaMapper.updateArea(areaEntity); + } + + @Override + public int getCount(String areaId, Integer page, Integer limit) { + return areaMapper.getCount(areaId, page, limit); + } + + @Override + public List queryArea(String areaId, Integer page, Integer limit) { + return areaMapper.queryArea(areaId, page, limit); + } + + @Override + public List selectAreaName() { + return areaMapper.selectAreaName(); + } + + @Override + public int deleteArea(List records) { + for(AreaEntity record:records) { + areaMapper.deleteArea(record.getId().toString()); + } + return 0; + } + + @Override + public int deleteAreaById(String id) { + return areaMapper.deleteArea(String.valueOf(id)); + } + + @Override + public int selectByAreaName(String areaName) { + return areaMapper.selectByAreaName(areaName); + } + + @Override + public AreaEntity selectById(String buildingId) { + return areaMapper.selectById(buildingId); } } diff --git a/user-service/src/main/java/com/mh/user/service/impl/BuildingServiceImpl.java b/user-service/src/main/java/com/mh/user/service/impl/BuildingServiceImpl.java index 99f3b10..199be84 100644 --- a/user-service/src/main/java/com/mh/user/service/impl/BuildingServiceImpl.java +++ b/user-service/src/main/java/com/mh/user/service/impl/BuildingServiceImpl.java @@ -2,14 +2,25 @@ package com.mh.user.service.impl; import com.mh.common.http.HttpResult; import com.mh.user.constants.SysConstants; +import com.mh.user.entity.AreaEntity; import com.mh.user.entity.BuildingEntity; +import com.mh.user.entity.SysParamEntity; +import com.mh.user.mapper.AreaMapper; import com.mh.user.mapper.BuildingMapper; +import com.mh.user.model.AreaBuildingTreeModel; import com.mh.user.model.BuildingModel; import com.mh.user.service.BuildingService; +import com.mh.user.service.SysParamService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.List; +import java.util.stream.Collectors; + +import static java.util.Comparator.*; @Service public class BuildingServiceImpl implements BuildingService { @@ -17,6 +28,12 @@ public class BuildingServiceImpl implements BuildingService { @Autowired private BuildingMapper buildingMapper; + @Autowired + private AreaMapper areaMapper; + + @Autowired + private SysParamService sysParamService; + @Override public int saveBuilding(BuildingEntity buildingEntity) { return buildingMapper.saveBuilding(buildingEntity); @@ -28,13 +45,13 @@ public class BuildingServiceImpl implements BuildingService { } @Override - public List queryBuilding(String buildingId,int page, int limit) { - return buildingMapper.queryBuilding(buildingId,page,limit); + public List queryBuilding(String buildingId,int page, int limit, int level) { + return buildingMapper.queryBuilding(buildingId,page,limit, level); } @Override - public int getCount(String buildingId,int page, int limit) { - return buildingMapper.getCount(buildingId,page,limit); + public int getCount(String buildingId,int page, int limit, int level) { + return buildingMapper.getCount(buildingId,page,limit, level); } @Override @@ -98,4 +115,103 @@ public class BuildingServiceImpl implements BuildingService { public Double queryLowTankHeight(String buildingId) { return buildingMapper.queryLowTankHeight(buildingId); } + + @Override + public List queryTree() { + // 查询项目名称和id + SysParamEntity sysParamEntity = sysParamService.selectSysParam(); + + // 获取区域并按sort排序 + List areaList = areaMapper.findAll().stream() + .sorted(comparing(AreaEntity::getSort)) + .collect(Collectors.toList()); + + // 获取楼栋并按sort排序 + List buildingList = buildingMapper.selectAll().stream() + .sorted(comparing(BuildingEntity::getSort)) + .collect(Collectors.toList()); + + // 创建结果列表 + List treeList = new ArrayList<>(); + + // 项目名称 + AreaBuildingTreeModel projectNode = new AreaBuildingTreeModel(); + projectNode.setId(0L); + projectNode.setName(sysParamEntity.getCustomName()); + projectNode.setSort(0); + projectNode.setParentId(-1L); + projectNode.setLevel(0); + projectNode.setChildren(new ArrayList<>()); + + // 判断区域是否有数据 + if (areaList.isEmpty()) { + // 没有数据只能遍历楼栋 + // 为该区域添加对应的楼栋 + List buildingNodes = buildingList.stream() + .map(building -> { + AreaBuildingTreeModel buildingNode = new AreaBuildingTreeModel(); + buildingNode.setId(building.getId()); + buildingNode.setName(building.getBuildingName()); + buildingNode.setParentId(0L); + buildingNode.setSort(building.getSort()); + buildingNode.setLevel(2); + buildingNode.setChildren(null); + return buildingNode; + }) + .collect(Collectors.toList()); + + projectNode.setChildren(buildingNodes); + treeList.add(projectNode); + } else { + List areaTreeList = new ArrayList<>(); + // 将区域转换为树节点 + for (AreaEntity area : areaList) { + AreaBuildingTreeModel areaNode = new AreaBuildingTreeModel(); + areaNode.setId(area.getId()); + areaNode.setName(area.getAreaName()); + areaNode.setSort(area.getSort()); + areaNode.setLevel(1); + areaNode.setParentId(projectNode.getId()); // 修改为projectNode的ID + areaNode.setChildren(new ArrayList<>()); + + // 为该区域添加对应的楼栋 + List buildingNodes = buildingList.stream() + .filter(building -> building.getAreaId() != null && + building.getAreaId().equals(area.getId().toString())) + .map(building -> { + AreaBuildingTreeModel buildingNode = new AreaBuildingTreeModel(); + buildingNode.setId(building.getId()); + buildingNode.setName(building.getBuildingName()); + buildingNode.setParentId(area.getId()); + buildingNode.setSort(building.getSort()); + buildingNode.setLevel(2); + buildingNode.setChildren(null); + return buildingNode; + }) + .collect(Collectors.toList()); + + areaNode.setChildren(buildingNodes); + areaTreeList.add(areaNode); + } + + // 将projectNode添加到树的根节点 + projectNode.setChildren(areaTreeList.stream() + .filter(node -> !node.getId().equals(0L)) // 过滤掉projectNode自身 + .collect(Collectors.toList())); + + } + treeList.add(projectNode); + + return treeList; + } + + @Override + public List queryBuildingIdListByAreaId(String areaId) { + return buildingMapper.queryBuildingIdListByAreaId(areaId); + } + + @Override + public int queryCheckInCount(String areaId) { + return buildingMapper.queryCheckInCount(areaId); + } } diff --git a/user-service/src/main/java/com/mh/user/service/impl/DeviceControlServiceImpl.java b/user-service/src/main/java/com/mh/user/service/impl/DeviceControlServiceImpl.java index a435498..772f1ce 100644 --- a/user-service/src/main/java/com/mh/user/service/impl/DeviceControlServiceImpl.java +++ b/user-service/src/main/java/com/mh/user/service/impl/DeviceControlServiceImpl.java @@ -375,11 +375,13 @@ public class DeviceControlServiceImpl implements DeviceControlService { case "weekSet": // 星期设置 registerStr = ExchangeStringUtil.addZeroForNum(ExchangeStringUtil.decToHex(String.valueOf(67 + (scene - 1) * 6)), 4); - String dataValue = ExchangeStringUtil.addZeroForNum(deviceCodeParam.getDataValue(), 8); - dataValue = ExchangeStringUtil.addZeroForNum(ExchangeStringUtil.parseByte2HexStr(dataValue), 4); - dataValue = ExchangeStringUtil.hexToDec(dataValue); - deviceCodeParam.setDataValue(dataValue); - serialPortModel.setDataValue(dataValue); + if (Constant.WRITE.equals(type)) { + String dataValue = ExchangeStringUtil.addZeroForNum(deviceCodeParam.getDataValue(), 8); + dataValue = ExchangeStringUtil.addZeroForNum(ExchangeStringUtil.parseByte2HexStr(dataValue), 4); + dataValue = ExchangeStringUtil.hexToDec(dataValue); + deviceCodeParam.setDataValue(dataValue); + serialPortModel.setDataValue(dataValue); + } deviceCodeParam.setRegisterSize(1); break; case "dateCalibrationSet": diff --git a/user-service/src/main/java/com/mh/user/service/impl/DeviceInstallServiceImpl.java b/user-service/src/main/java/com/mh/user/service/impl/DeviceInstallServiceImpl.java index 5461111..464d9f2 100644 --- a/user-service/src/main/java/com/mh/user/service/impl/DeviceInstallServiceImpl.java +++ b/user-service/src/main/java/com/mh/user/service/impl/DeviceInstallServiceImpl.java @@ -56,14 +56,15 @@ public class DeviceInstallServiceImpl implements DeviceInstallService { /** * 生成采集信息内容 + * * @param deviceInstallEntity */ @Override public void createParamCode(DeviceInstallEntity deviceInstallEntity) { DeviceCodeParamEntity deviceCodeParamEntity = new DeviceCodeParamEntity(); - BeanUtils.copyProperties(deviceInstallEntity,deviceCodeParamEntity); + BeanUtils.copyProperties(deviceInstallEntity, deviceCodeParamEntity); deviceCodeParamEntity.setBaudrate(deviceInstallEntity.getBaudRate()); - deviceCodeParamEntity.setThread(deviceInstallEntity.getDataCom().toLowerCase().replace("com","")); + deviceCodeParamEntity.setThread(deviceInstallEntity.getDataCom().toLowerCase().replace("com", "")); // 顺便生成采集信息 switch (deviceInstallEntity.getDeviceType()) { case "压变": @@ -121,7 +122,7 @@ public class DeviceInstallServiceImpl implements DeviceInstallService { deviceCodeParamEntity.setRegisterAddr("000B"); //故障状态 deviceCodeParamEntity.setFunCode("03"); deviceCodeParamMapper.insertDeviceCodeParamList(Collections.singletonList(deviceCodeParamEntity)); - break; + break; case "美的2": // 插入device_code_param表 deviceCodeParamEntity.setRegisterAddr("0064"); //实际水温 @@ -203,12 +204,12 @@ public class DeviceInstallServiceImpl implements DeviceInstallService { @Override public void updateLastValue(Long id, String lastValue, Date lastDate) { - deviceInstallMapper.updateLastValue(id,lastValue,lastDate); + deviceInstallMapper.updateLastValue(id, lastValue, lastDate); } @Override public List getAllDevice(int page, int limit) { - return deviceInstallMapper.getAllDevice(page,limit); + return deviceInstallMapper.getAllDevice(page, limit); } @Override @@ -228,56 +229,56 @@ public class DeviceInstallServiceImpl implements DeviceInstallService { // 查询所有启用的设备 @Override - public int getAllCount(){ + public int getAllCount() { return deviceInstallMapper.getAllCount(); } @Override - public List queryDevice(String buildingId,String deviceType, String startDate, String endDate,String isOnline, String isUse,String isFault,int page, int limit) { - return deviceInstallMapper.queryDevice(buildingId,deviceType,startDate, endDate,isOnline,isUse, isFault,page, limit); + public List queryDevice(String buildingId, String deviceType, String startDate, String endDate, String isOnline, String isUse, String isFault, int page, int limit, int level) { + return deviceInstallMapper.queryDevice(buildingId, deviceType, startDate, endDate, isOnline, isUse, isFault, page, limit, level); } @Override - public int getCount(String buildingId,String deviceType, String startDate, String endDate,String isOnline, String isUse, String isFault, int page, int limit) { - return deviceInstallMapper.getCount(buildingId,deviceType, startDate, endDate,isOnline,isUse, isFault, page, limit); + public int getCount(String buildingId, String deviceType, String startDate, String endDate, String isOnline, String isUse, String isFault, int page, int limit, int level) { + return deviceInstallMapper.getCount(buildingId, deviceType, startDate, endDate, isOnline, isUse, isFault, page, limit, level); } //查询设备故障情况 @Override - public int getIsFaultCount(String isFault,String deviceType){ - return deviceInstallMapper.getIsFaultCount(isFault,deviceType); + public int getIsFaultCount(String isFault, String deviceType) { + return deviceInstallMapper.getIsFaultCount(isFault, deviceType); } //查询设备在线情况 @Override - public int getIsOnlineCount(String isOnline,String deviceType){ - return deviceInstallMapper.getIsOnlineCount(isOnline,deviceType); + public int getIsOnlineCount(String isOnline, String deviceType) { + return deviceInstallMapper.getIsOnlineCount(isOnline, deviceType); } @Override - public void updateOnline(String deviceAddr, String deviceType,String buildingId,String isOnline) { - deviceInstallMapper.updateOnline(deviceAddr,deviceType,buildingId,isOnline); + public void updateOnline(String deviceAddr, String deviceType, String buildingId, String isOnline) { + deviceInstallMapper.updateOnline(deviceAddr, deviceType, buildingId, isOnline); } @Override - public void updateNotOnline(String deviceAddr, String deviceType,String buildingId,String isOnline) { - deviceInstallMapper.updateNotOnline(deviceAddr,deviceType,buildingId,isOnline); + public void updateNotOnline(String deviceAddr, String deviceType, String buildingId, String isOnline) { + deviceInstallMapper.updateNotOnline(deviceAddr, deviceType, buildingId, isOnline); } //根据通讯地址和设备类型查询对应的设备信息 @Override - public DeviceInstallEntity selectDevice(String deviceAddr, String deviceType,String buildingId) { - return deviceInstallMapper.selectDevice(deviceAddr,deviceType,buildingId); + public DeviceInstallEntity selectDevice(String deviceAddr, String deviceType, String buildingId) { + return deviceInstallMapper.selectDevice(deviceAddr, deviceType, buildingId); } @Override public int selectDeviceCount(String deviceAddr, String deviceType) { - return deviceInstallMapper.selectDeviceCount(deviceAddr,deviceType); + return deviceInstallMapper.selectDeviceCount(deviceAddr, deviceType); } @Override public int deleteDevice(List records) { - for(DeviceInstallEntity record:records) { + for (DeviceInstallEntity record : records) { // deviceInstallMapper.deleteDevice(record.getId().toString()); } return 0; @@ -305,27 +306,31 @@ public class DeviceInstallServiceImpl implements DeviceInstallService { @Override public void insertDevice_install_temp(UploadDeviceInstallEntity uploadDeviceInstallEntity) { String deviceAddr = uploadDeviceInstallEntity.getDeviceAddr(); - String deviceName = uploadDeviceInstallEntity.getDeviceName(); - String deviceType = uploadDeviceInstallEntity.getDeviceType(); - int baudRate = uploadDeviceInstallEntity.getBaudRate(); - String dataCom = uploadDeviceInstallEntity.getDataCom(); - double ratio = uploadDeviceInstallEntity.getRatio(); - String buildingId = uploadDeviceInstallEntity.getBuildingId(); - String rowId = uploadDeviceInstallEntity.getRowId(); + String deviceName = uploadDeviceInstallEntity.getDeviceName(); + String deviceType = uploadDeviceInstallEntity.getDeviceType(); + int baudRate = uploadDeviceInstallEntity.getBaudRate(); + String dataCom = uploadDeviceInstallEntity.getDataCom(); + double ratio = uploadDeviceInstallEntity.getRatio(); + String buildingId = uploadDeviceInstallEntity.getBuildingId(); + String rowId = uploadDeviceInstallEntity.getRowId(); deviceInstallMapper.insertDevice_install_temp(deviceAddr, deviceName, deviceType, baudRate, dataCom, ratio, buildingId, rowId); } // 查询Excel导入的数据 @Override - public List queryExcelDevices(){ + public List queryExcelDevices() { return deviceInstallMapper.queryExcelDevices(); - }; + } + + ; // 查询Excel导入的数据的记录数 @Override - public int queryExcelDevicesCount(){ + public int queryExcelDevicesCount() { return deviceInstallMapper.queryExcelDevicesCount(); - }; + } + + ; // 在导入中的数据有重复 @Override @@ -334,13 +339,13 @@ public class DeviceInstallServiceImpl implements DeviceInstallService { } /** + * @throws : * @author nxr * @title : * @description :判断导入资料数据的合法性 * @updateTime 2022-06-19 - * @throws : */ - public void updateDevice_install_temp(){ + public void updateDevice_install_temp() { //判断通讯地址,在导入中的数据有重复 deviceInstallMapper.updateDevice_install_temp__multiple(); } @@ -355,7 +360,7 @@ public class DeviceInstallServiceImpl implements DeviceInstallService { //修改设备启用状态 @Override public void updateDeviceIsUse(String isUse, String deviceAddr) { - deviceInstallMapper.updateDeviceIsUse(isUse,deviceAddr); + deviceInstallMapper.updateDeviceIsUse(isUse, deviceAddr); } @Override @@ -370,13 +375,13 @@ public class DeviceInstallServiceImpl implements DeviceInstallService { @Override public void updateDeviceFault(String isFault, String deviceAddr, String deviceType) { - deviceInstallMapper.updateDeviceFault(isFault,deviceAddr,deviceType); + deviceInstallMapper.updateDeviceFault(isFault, deviceAddr, deviceType); } //查询设备品牌 @Override - public String selectBrand(String buildingId,String deviceAddr) { - return deviceInstallMapper.selectBrand(buildingId,deviceAddr); + public String selectBrand(String buildingId, String deviceAddr) { + return deviceInstallMapper.selectBrand(buildingId, deviceAddr); } @Override @@ -405,8 +410,8 @@ public class DeviceInstallServiceImpl implements DeviceInstallService { } @Override - public String selectLastDate(String deviceType, String deviceAddr,String buildingId) { - return deviceInstallMapper.selectLastDate(deviceType,deviceAddr,buildingId); + public String selectLastDate(String deviceType, String deviceAddr, String buildingId) { + return deviceInstallMapper.selectLastDate(deviceType, deviceAddr, buildingId); } @Override diff --git a/user-service/src/main/java/com/mh/user/service/impl/EnergyServiceImpl.java b/user-service/src/main/java/com/mh/user/service/impl/EnergyServiceImpl.java index 7185788..09120ba 100644 --- a/user-service/src/main/java/com/mh/user/service/impl/EnergyServiceImpl.java +++ b/user-service/src/main/java/com/mh/user/service/impl/EnergyServiceImpl.java @@ -1,8 +1,12 @@ package com.mh.user.service.impl; +import com.alibaba.druid.util.StringUtils; +import com.mh.user.entity.AreaEntity; import com.mh.user.entity.EnergyEntity; import com.mh.user.mapper.EnergyMapper; import com.mh.user.model.SumModel; +import com.mh.user.service.AreaService; +import com.mh.user.service.BuildingService; import com.mh.user.service.EnergyService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -16,6 +20,12 @@ public class EnergyServiceImpl implements EnergyService { @Autowired EnergyMapper energyMapper; + @Autowired + private BuildingService buildingService; + + @Autowired + private AreaService areaService; + @Override public void saveEnergy(EnergyEntity energyEntity,int type) { @@ -53,22 +63,58 @@ public class EnergyServiceImpl implements EnergyService { } @Override - public List queryEnergy(String buildingId, String startDate,String endDate, int page, int limit,int type) { + public List queryEnergy(String buildingId, String startDate,String endDate, int page, int limit,int type, int level) { List list=new ArrayList(); - if(type==1) { - list=energyMapper.queryEnergyDay(buildingId,startDate,endDate,page,limit); - } else if (type==2){ - list=energyMapper.queryEnergyMonth(buildingId,startDate,endDate,page,limit); - System.out.println(list); - } else if (type==3){ - list=energyMapper.queryEnergyYear(buildingId,startDate,endDate,page,limit); + // 判断级别类型 + if (level == 1) { + // 根据区域id查询区域名称 + AreaEntity areaEntity = areaService.selectById(buildingId); + if (null == areaEntity) { + return list; + } + // 根据区域id获取所有楼栋 id + List buildingIds = buildingService.queryBuildingIdListByAreaId(buildingId); + if(type==1) { + list=energyMapper.getAreaEnergyDay(buildingIds,startDate,endDate, page, limit, areaEntity.getAreaName()); + }else if (type==2){ + list=energyMapper.getAreaEnergyMonth(buildingIds,startDate,endDate, page, limit, areaEntity.getAreaName()); + } else if (type==3){ + list=energyMapper.getAreaEnergyYear(buildingIds,startDate,endDate, page, limit, areaEntity.getAreaName()); + } + } else { + if (StringUtils.isEmpty(buildingId)) { + buildingId = "所有"; + } + // 楼栋 + if (type == 1) { + list = energyMapper.queryEnergyDay(buildingId, startDate, endDate, page, limit); + } else if (type == 2) { + list = energyMapper.queryEnergyMonth(buildingId, startDate, endDate, page, limit); + System.out.println(list); + } else if (type == 3) { + list = energyMapper.queryEnergyYear(buildingId, startDate, endDate, page, limit); + } } return list; } @Override - public int getEnergyCount(String buildingId, String startDate,String endDate, int page, int limit,int type) { + public int getEnergyCount(String buildingId, String startDate,String endDate, int page, int limit,int type, int level) { int r=0; // 记录数 + // 判断级别类型 + if (level == 0) { + buildingId = "所有"; + } else if (level == 1) { + // 根据区域id获取所有楼栋 id + List buildingIds = buildingService.queryBuildingIdListByAreaId(buildingId); + if(type==1) { + r=energyMapper.getAreaEnergyDayCount(buildingIds,startDate,endDate, page, limit); + }else if (type==2){ + r=energyMapper.getAreaEnergyMonthCount(buildingIds,startDate,endDate, page, limit); + } else if (type==3){ + r=energyMapper.getAreaEnergyYearCount(buildingIds,startDate,endDate, page, limit); + } + } if(type==1) { r=energyMapper.getEnergyDayCount(buildingId,startDate,endDate, page, limit); }else if (type==2){ @@ -101,12 +147,29 @@ public class EnergyServiceImpl implements EnergyService { } @Override - public List queryHourEnergy(String buildingId, String curDate, int page, int limit) { + public List queryHourEnergy(String buildingId, String curDate, int page, int limit, int level) { + List list=new ArrayList(); + // 判断级别类型 + if (level == 0 || null == buildingId) { + buildingId = "所有"; + level = 0; + } + if (level == 1) { + // 根据区域id查询区域名称 + AreaEntity areaEntity = areaService.selectById(buildingId); + if (null == areaEntity) { + return list; + } + // 根据区域id获取所有楼栋 id + List buildingIds = buildingService.queryBuildingIdListByAreaId(buildingId); + list=energyMapper.getAreaEnergyHour(buildingIds,curDate, page, limit, areaEntity.getAreaName()); + return list; + } return energyMapper.queryHourEnergy(buildingId,curDate,page,limit); } @Override - public int getHourEnergyCount(String buildingId, String curDate) { + public int getHourEnergyCount(String buildingId, String curDate, int level) { return energyMapper.getHourEnergyCount(buildingId,curDate); } diff --git a/user-service/src/main/java/com/mh/user/service/impl/NowDataServiceImpl.java b/user-service/src/main/java/com/mh/user/service/impl/NowDataServiceImpl.java index c771642..b63e336 100644 --- a/user-service/src/main/java/com/mh/user/service/impl/NowDataServiceImpl.java +++ b/user-service/src/main/java/com/mh/user/service/impl/NowDataServiceImpl.java @@ -457,12 +457,20 @@ public class NowDataServiceImpl implements NowDataService { //查询所有楼栋每栋楼的平均温度 @Override - public List queryWaterTemp2(String curDate,int page,int limit) { - return nowDataMapper.queryWaterTemp2(curDate,page,limit); + public List queryWaterTemp2(String curDate,int page,int limit, int level, String buildingID) { + List waterTempEntityList = nowDataMapper.queryWaterTemp2(curDate, page, limit); + // 根据level层级查询 + if (level == 1) { + // 根据区域id获取对应的楼栋id + List buildingIdList = buildingService.queryBuildingIdListByAreaId(buildingID); + // waterTempEntityList过滤掉非该区域的楼栋 + waterTempEntityList.removeIf(waterTempEntity -> !buildingIdList.contains(waterTempEntity.getBuildingID())); + } + return waterTempEntityList; } //查询所有楼栋每栋楼的平均温度记录数 @Override - public int queryWaterTempCount2(String curDate) { + public int queryWaterTempCount2(String curDate, int level, String buildingID) { return nowDataMapper.queryWaterTempCount2(curDate); } @@ -483,8 +491,15 @@ public class NowDataServiceImpl implements NowDataService { } @Override - public List queryBuildWaterLevel(String curDate, int page, int limit) { - return nowDataMapper.queryBuildWaterLevel(curDate, page, limit); + public List queryBuildWaterLevel(String curDate, int page, int limit, int level, String buildingID) { + List waterLevelEntities = nowDataMapper.queryBuildWaterLevel(curDate, page, limit); + if (level == 1) { + // 根据区域id获取对应的楼栋id + List buildingIdList = buildingService.queryBuildingIdListByAreaId(buildingID); + // waterLevelEntities过滤掉非该区域的楼栋 + waterLevelEntities.removeIf(waterLevelEntity -> !buildingIdList.contains(waterLevelEntity.getBuildingID())); + } + return waterLevelEntities; } @Override diff --git a/user-service/src/main/java/com/mh/user/service/impl/SummaryServiceImpl.java b/user-service/src/main/java/com/mh/user/service/impl/SummaryServiceImpl.java index 45f35c4..0840799 100644 --- a/user-service/src/main/java/com/mh/user/service/impl/SummaryServiceImpl.java +++ b/user-service/src/main/java/com/mh/user/service/impl/SummaryServiceImpl.java @@ -5,32 +5,140 @@ import com.mh.user.entity.DeviceStateEntity; import com.mh.user.entity.EnergySumEntity; import com.mh.user.entity.MaintainSumEntity; import com.mh.user.mapper.SummaryMapper; +import com.mh.user.service.BuildingService; import com.mh.user.service.SummaryService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.Year; +import java.time.YearMonth; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.List; + +import static java.lang.Double.parseDouble; + @Service public class SummaryServiceImpl implements SummaryService { @Autowired SummaryMapper summaryMapper; + @Autowired + private BuildingService buildingService; + @Override public DeviceStateEntity queryDeviceState() { return summaryMapper.queryDeviceState(); } @Override - public EnergySumEntity queryEnergySum(String buildingId, String curDate, int type) { - if (type==1){ - return summaryMapper.queryEnergyDaySum(buildingId,curDate); //日 - }else if (type==2){ - return summaryMapper.queryEnergyMonthSum(buildingId,curDate); //月 - }else { - return summaryMapper.queryEnergyYearSum(buildingId,curDate); //年 + public EnergySumEntity queryEnergySum(String buildingId, String curDate, int type, int level) { + // 判断层级属于校区 + if (level == 1) { + // 根据buildingId查询对应的所有楼栋id + List strings = buildingService.queryBuildingIdListByAreaId(buildingId); + // 查询所有楼栋人数 + int count = buildingService.queryCheckInCount(buildingId); + // 遍历楼栋id,查询所有楼栋的energySum + List curList = new ArrayList<>(); + List lastList = new ArrayList<>(); + + for (String id : strings) { + if (type == 1) { + // 日统计 + curList.add(summaryMapper.queryEnergyDaySum(id, curDate)); + + // 日期yyyy-MM-dd格式的字符串减去一天 + LocalDate date = LocalDate.parse(curDate, DateTimeFormatter.ofPattern("yyyy-MM-dd")); + LocalDate previousDate = date.minusDays(1); + String previousDateString = previousDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); + lastList.add(summaryMapper.queryEnergyDaySum(id, previousDateString)); + + } else if (type == 2) { + // 月统计 + curList.add(summaryMapper.queryEnergyMonthSum(id, curDate)); + + // 日期yyyy-MM格式的字符串减去一个月 + YearMonth yearMonth = YearMonth.parse(curDate, DateTimeFormatter.ofPattern("yyyy-MM")); + YearMonth previousMonth = yearMonth.minusMonths(1); + String previousMonthString = previousMonth.format(DateTimeFormatter.ofPattern("yyyy-MM")); + lastList.add(summaryMapper.queryEnergyMonthSum(id, previousMonthString)); + + } else { + // 年统计 + curList.add(summaryMapper.queryEnergyYearSum(id, curDate)); + + // 日期yyyy格式的字符串减去一年 + Year year = Year.parse(curDate); + Year previousYear = year.minusYears(1); + String previousYearString = previousYear.toString(); + lastList.add(summaryMapper.queryEnergyYearSum(id, previousYearString)); + } + } + + // curList每一个参数求和,得出 EnergySumEntity + EnergySumEntity curSum = new EnergySumEntity(); + curSum.setFillWater(String.valueOf(curList.stream().mapToDouble(e -> parseDouble(e.getFillWater())).sum())); + curSum.setWaterValue(String.valueOf(curList.stream().mapToDouble(e -> parseDouble(e.getWaterValue())).sum())); + curSum.setElectValue(String.valueOf(curList.stream().mapToDouble(e -> parseDouble(e.getElectValue())).sum())); + curSum.setElectWater(String.valueOf(curList.stream().mapToDouble(e -> parseDouble(e.getElectWater())).sum())); + + // lastList每一个参数求和,得出 EnergySumEntity + EnergySumEntity lastSum = new EnergySumEntity(); + lastSum.setFillWater(String.valueOf(lastList.stream().mapToDouble(e -> parseDouble(e.getFillWater())).sum())); + lastSum.setWaterValue(String.valueOf(lastList.stream().mapToDouble(e -> parseDouble(e.getWaterValue())).sum())); + lastSum.setElectValue(String.valueOf(lastList.stream().mapToDouble(e -> parseDouble(e.getElectValue())).sum())); + lastSum.setElectWater(String.valueOf(lastList.stream().mapToDouble(e -> parseDouble(e.getElectWater())).sum())); + + // 昨日的EnergySumEntity和今日的EnergySumEntity,对比计算出补水昨日比、用水与昨日比、用电与昨日比、单耗与昨日比 + EnergySumEntity result = new EnergySumEntity(); + result.setFillWater(String.valueOf(curList.stream().mapToDouble(e -> parseDouble(e.getFillWater())).sum())); + result.setWaterValue(String.valueOf(curList.stream().mapToDouble(e -> parseDouble(e.getWaterValue())).sum())); + result.setElectValue(String.valueOf(curList.stream().mapToDouble(e -> parseDouble(e.getElectValue())).sum())); + result.setElectWater(String.valueOf(curList.stream().mapToDouble(e -> parseDouble(e.getElectWater())).sum())); + + + // 计算与昨日的比较百分比 + result.setFillWaterP(calculateRatio(curSum.getFillWater(), lastSum.getFillWater())); + result.setWaterP(calculateRatio(curSum.getWaterValue(), lastSum.getWaterValue())); + result.setElectP(calculateRatio(curSum.getElectValue(), lastSum.getElectValue())); + + // 计算单耗比较 + String curPerElect = count != 0 ? new BigDecimal(curSum.getElectValue()).divide(new BigDecimal(count)).toString() : "0"; + String lastPerElect = count != 0 ? new BigDecimal(lastSum.getElectValue()).divide(new BigDecimal(count)).toString() : "0"; + result.setElectWaterP(calculateRatio(curPerElect, lastPerElect)); + + return result; + } + + if (type == 1) { + return summaryMapper.queryEnergyDaySum(buildingId, curDate); //日 + } else if (type == 2) { + return summaryMapper.queryEnergyMonthSum(buildingId, curDate); //月 + } else { + return summaryMapper.queryEnergyYearSum(buildingId, curDate); //年 + } + } + + /** + * 计算比率的方法 + * + * @param current 当前值 + * @param previous 前一个值 + * @return 比率(百分比形式) + */ + private String calculateRatio(String current, String previous) { + if (parseDouble(previous) == 0) { + return parseDouble(current) > 0 ? "100" : "0"; // 避免除零错误 } + return String.valueOf(((parseDouble(current) - parseDouble(previous)) / parseDouble(previous)) * 100); } + + @Override public MaintainSumEntity queryMaintainSum(String buildingId, String curDate) { return summaryMapper.queryMaintainSum(buildingId,curDate); diff --git a/user-service/src/main/java/com/mh/user/strategy/EleMeterStrategy.java b/user-service/src/main/java/com/mh/user/strategy/EleMeterStrategy.java index da86edb..db02eda 100644 --- a/user-service/src/main/java/com/mh/user/strategy/EleMeterStrategy.java +++ b/user-service/src/main/java/com/mh/user/strategy/EleMeterStrategy.java @@ -53,10 +53,10 @@ public class EleMeterStrategy implements DeviceStrategy { // }else if(registerAddr.equals("")){ // str=str+"0300000002"; // } - String funCode = ExchangeStringUtil.addZeroForNum(deviceCodeParamEntity.getFunCode(), 2); - if ("04".equals(funCode)) { - str = str + funCode + "00010002"; - } +// String funCode = ExchangeStringUtil.addZeroForNum(deviceCodeParamEntity.getFunCode(), 2); +// if ("04".equals(funCode)) { + str = str + "04" + "00010002"; +// } String checkWord = ExchangeStringUtil.getStrCRC16(str); //CRC16校验 str = str + checkWord; } else { diff --git a/user-service/src/main/java/com/mh/user/strategy/TimeControlStrategy.java b/user-service/src/main/java/com/mh/user/strategy/TimeControlStrategy.java index 027932c..49d0ae0 100644 --- a/user-service/src/main/java/com/mh/user/strategy/TimeControlStrategy.java +++ b/user-service/src/main/java/com/mh/user/strategy/TimeControlStrategy.java @@ -175,9 +175,9 @@ public class TimeControlStrategy implements DeviceStrategy { data = checkStr.substring(8, 10) + checkStr.substring(12, 14) + checkStr.substring(16, 18) - + checkStr.substring(22, 24) - + checkStr.substring(26, 28) - + checkStr.substring(30, 32); + + checkStr.substring(24, 26) + + checkStr.substring(28, 30) + + checkStr.substring(32, 34); } } else { if (rec == 26) { //读时间设置值 diff --git a/user-service/src/main/java/com/mh/user/strategy/WtMeterStrategy.java b/user-service/src/main/java/com/mh/user/strategy/WtMeterStrategy.java index ac79a16..79cfcbc 100644 --- a/user-service/src/main/java/com/mh/user/strategy/WtMeterStrategy.java +++ b/user-service/src/main/java/com/mh/user/strategy/WtMeterStrategy.java @@ -45,7 +45,7 @@ public class WtMeterStrategy implements DeviceStrategy { String str = ""; if (deviceAddr != null && deviceAddr.length() > 0) { try { - if (StringUtils.isBlank(brand) || brand.equals("艾美柯")) { + if (StringUtils.isBlank(brand) || brand.equals("埃美柯")) { // 0 代表前面补充0,14 代表长度为14,d 代表参数为正数型 str = String.format("%014d", Long.parseLong(deviceAddr));//基表通讯号 // 转换位置 diff --git a/user-service/src/main/java/com/mh/user/utils/GetReadOrder485.java b/user-service/src/main/java/com/mh/user/utils/GetReadOrder485.java index 535fe44..789c122 100644 --- a/user-service/src/main/java/com/mh/user/utils/GetReadOrder485.java +++ b/user-service/src/main/java/com/mh/user/utils/GetReadOrder485.java @@ -651,6 +651,8 @@ public class GetReadOrder485 { deviceCodeParamEntity3.setDataCom(devices.getDataCom()); deviceCodeParamEntity3.setBuildingId(devices.getBuildingId()); deviceCodeParamEntity3.setParity(devices.getParity()); + // 只获取字符串数字 + deviceCodeParamEntity3.setThread(ExchangeStringUtil.getNumFromString(devices.getDataCom())); deviceCodeParamEntityList.add(deviceCodeParamEntity3); break; case "美的2": @@ -665,6 +667,8 @@ public class GetReadOrder485 { deviceCodeParamEntity3.setBuildingId(devices.getBuildingId()); deviceCodeParamEntity3.setParity(devices.getParity()); deviceCodeParamEntityList.add(deviceCodeParamEntity3); + // 只获取字符串数字 + deviceCodeParamEntity3.setThread(ExchangeStringUtil.getNumFromString(devices.getDataCom())); break; case "瑞星": deviceCodeParamEntity3.setRegisterAddr("0046");//实际水温 @@ -678,6 +682,8 @@ public class GetReadOrder485 { deviceCodeParamEntity3.setBuildingId(devices.getBuildingId()); deviceCodeParamEntity3.setParity(devices.getParity()); deviceCodeParamEntityList.add(deviceCodeParamEntity3); + // 只获取字符串数字 + deviceCodeParamEntity3.setThread(ExchangeStringUtil.getNumFromString(devices.getDataCom())); break; case "海尔": // 多联机模式 @@ -693,6 +699,8 @@ public class GetReadOrder485 { deviceCodeParamEntity3.setBuildingId(devices.getBuildingId()); deviceCodeParamEntity3.setParity(devices.getParity()); deviceCodeParamEntityList.add(deviceCodeParamEntity3); + // 只获取字符串数字 + deviceCodeParamEntity3.setThread(ExchangeStringUtil.getNumFromString(devices.getDataCom())); break; default: break; @@ -752,6 +760,8 @@ public class GetReadOrder485 { deviceCodeParamEntity1.setBaudrate(devices.getBaudRate()); deviceCodeParamEntity1.setBrand(devices.getBrand()); deviceCodeParamEntity1.setDataCom(devices.getDataCom()); + // 只获取字符串数字 + deviceCodeParamEntity1.setThread(ExchangeStringUtil.getNumFromString(devices.getDataCom())); deviceCodeParamEntity1.setBuildingId(devices.getBuildingId()); deviceCodeParamEntity1.setParity(devices.getParity()); deviceCodeParamEntityList.add(deviceCodeParamEntity1);//添加到列表 @@ -765,6 +775,8 @@ public class GetReadOrder485 { deviceCodeParamEntity1.setBaudrate(devices.getBaudRate()); deviceCodeParamEntity1.setBrand(devices.getBrand()); deviceCodeParamEntity1.setDataCom(devices.getDataCom()); + // 只获取字符串数字 + deviceCodeParamEntity1.setThread(ExchangeStringUtil.getNumFromString(devices.getDataCom())); deviceCodeParamEntity1.setBuildingId(devices.getBuildingId()); deviceCodeParamEntity1.setParity(devices.getParity()); deviceCodeParamEntityList.add(deviceCodeParamEntity1);//添加到列表 @@ -778,6 +790,8 @@ public class GetReadOrder485 { deviceCodeParamEntity1.setBaudrate(devices.getBaudRate()); deviceCodeParamEntity1.setBrand(devices.getBrand()); deviceCodeParamEntity1.setDataCom(devices.getDataCom()); + // 只获取字符串数字 + deviceCodeParamEntity1.setThread(ExchangeStringUtil.getNumFromString(devices.getDataCom())); deviceCodeParamEntity1.setBuildingId(devices.getBuildingId()); deviceCodeParamEntity1.setParity(devices.getParity()); deviceCodeParamEntityList.add(deviceCodeParamEntity1);//添加到列表 @@ -793,6 +807,8 @@ public class GetReadOrder485 { deviceCodeParamEntity1.setBaudrate(devices.getBaudRate()); deviceCodeParamEntity1.setBrand(devices.getBrand()); deviceCodeParamEntity1.setDataCom(devices.getDataCom()); + // 只获取字符串数字 + deviceCodeParamEntity1.setThread(ExchangeStringUtil.getNumFromString(devices.getDataCom())); deviceCodeParamEntity1.setBuildingId(devices.getBuildingId()); deviceCodeParamEntity1.setParity(devices.getParity()); deviceCodeParamEntityList.add(deviceCodeParamEntity1);//添加到列表 @@ -855,6 +871,8 @@ public class GetReadOrder485 { deviceCodeParamEntity2.setBaudrate(devices.getBaudRate()); deviceCodeParamEntity2.setBrand(devices.getBrand()); deviceCodeParamEntity2.setDataCom(devices.getDataCom()); + // 只获取字符串数字 + deviceCodeParamEntity2.setThread(ExchangeStringUtil.getNumFromString(devices.getDataCom())); deviceCodeParamEntity2.setBuildingId(devices.getBuildingId()); deviceCodeParamEntity2.setParity(devices.getParity()); deviceCodeParamEntityList.add(deviceCodeParamEntity2); @@ -867,6 +885,8 @@ public class GetReadOrder485 { deviceCodeParamEntity4.setBaudrate(devices.getBaudRate()); deviceCodeParamEntity4.setBrand(devices.getBrand()); deviceCodeParamEntity4.setDataCom(devices.getDataCom()); + // 只获取字符串数字 + deviceCodeParamEntity4.setThread(ExchangeStringUtil.getNumFromString(devices.getDataCom())); deviceCodeParamEntity4.setBuildingId(devices.getBuildingId()); deviceCodeParamEntity4.setParity(devices.getParity()); deviceCodeParamEntityList.add(deviceCodeParamEntity4); @@ -880,6 +900,8 @@ public class GetReadOrder485 { deviceCodeParamEntity2.setBaudrate(devices.getBaudRate()); deviceCodeParamEntity2.setBrand(devices.getBrand()); deviceCodeParamEntity2.setDataCom(devices.getDataCom()); + // 只获取字符串数字 + deviceCodeParamEntity2.setThread(ExchangeStringUtil.getNumFromString(devices.getDataCom())); deviceCodeParamEntity2.setBuildingId(devices.getBuildingId()); deviceCodeParamEntity2.setParity(devices.getParity()); deviceCodeParamEntityList.add(deviceCodeParamEntity2); @@ -892,6 +914,8 @@ public class GetReadOrder485 { deviceCodeParamEntity4.setBaudrate(devices.getBaudRate()); deviceCodeParamEntity4.setBrand(devices.getBrand()); deviceCodeParamEntity4.setDataCom(devices.getDataCom()); + // 只获取字符串数字 + deviceCodeParamEntity4.setThread(ExchangeStringUtil.getNumFromString(devices.getDataCom())); deviceCodeParamEntity4.setBuildingId(devices.getBuildingId()); deviceCodeParamEntity4.setParity(devices.getParity()); deviceCodeParamEntityList.add(deviceCodeParamEntity4); @@ -905,6 +929,8 @@ public class GetReadOrder485 { deviceCodeParamEntity2.setBaudrate(devices.getBaudRate()); deviceCodeParamEntity2.setBrand(devices.getBrand()); deviceCodeParamEntity2.setDataCom(devices.getDataCom()); + // 只获取字符串数字 + deviceCodeParamEntity2.setThread(ExchangeStringUtil.getNumFromString(devices.getDataCom())); deviceCodeParamEntity2.setBuildingId(devices.getBuildingId()); deviceCodeParamEntity2.setParity(devices.getParity()); deviceCodeParamEntityList.add(deviceCodeParamEntity2); @@ -917,6 +943,8 @@ public class GetReadOrder485 { deviceCodeParamEntity4.setBaudrate(devices.getBaudRate()); deviceCodeParamEntity4.setBrand(devices.getBrand()); deviceCodeParamEntity4.setDataCom(devices.getDataCom()); + // 只获取字符串数字 + deviceCodeParamEntity4.setThread(ExchangeStringUtil.getNumFromString(devices.getDataCom())); deviceCodeParamEntity4.setBuildingId(devices.getBuildingId()); deviceCodeParamEntity4.setParity(devices.getParity()); deviceCodeParamEntityList.add(deviceCodeParamEntity4); @@ -932,12 +960,14 @@ public class GetReadOrder485 { deviceCodeParamEntity2.setBaudrate(devices.getBaudRate()); deviceCodeParamEntity2.setBrand(devices.getBrand()); deviceCodeParamEntity2.setDataCom(devices.getDataCom()); + // 只获取字符串数字 + deviceCodeParamEntity2.setThread(ExchangeStringUtil.getNumFromString(devices.getDataCom())); deviceCodeParamEntity2.setBuildingId(devices.getBuildingId()); deviceCodeParamEntity2.setParity(devices.getParity()); deviceCodeParamEntityList.add(deviceCodeParamEntity2); registerAddr = ExchangeStringUtil.addZeroForNum(ExchangeStringUtil.decToHex("20041"), 4); - deviceCodeParamEntity2.setRegisterAddr(registerAddr);//故障状态 + deviceCodeParamEntity4.setRegisterAddr(registerAddr);//故障状态 deviceCodeParamEntity4.setFunCode("03"); deviceCodeParamEntity4.setDeviceAddr(devices.getDeviceAddr()); deviceCodeParamEntity4.setDeviceName(devices.getDeviceName()); @@ -945,6 +975,8 @@ public class GetReadOrder485 { deviceCodeParamEntity4.setBaudrate(devices.getBaudRate()); deviceCodeParamEntity4.setBrand(devices.getBrand()); deviceCodeParamEntity4.setDataCom(devices.getDataCom()); + // 只获取字符串数字 + deviceCodeParamEntity4.setThread(ExchangeStringUtil.getNumFromString(devices.getDataCom())); deviceCodeParamEntity4.setBuildingId(devices.getBuildingId()); deviceCodeParamEntity4.setParity(devices.getParity()); deviceCodeParamEntityList.add(deviceCodeParamEntity4); @@ -1017,6 +1049,8 @@ public class GetReadOrder485 { deviceCodeParamEntity2.setBaudrate(devices.getBaudRate()); deviceCodeParamEntity2.setBrand(devices.getBrand()); deviceCodeParamEntity2.setDataCom(devices.getDataCom()); + // 只获取字符串数字 + deviceCodeParamEntity2.setThread(ExchangeStringUtil.getNumFromString(devices.getDataCom())); deviceCodeParamEntity2.setBuildingId(devices.getBuildingId()); deviceCodeParamEntity2.setParity(devices.getParity()); deviceCodeParamEntityList.add(deviceCodeParamEntity2); @@ -1030,6 +1064,8 @@ public class GetReadOrder485 { deviceCodeParamEntity4.setBaudrate(devices.getBaudRate()); deviceCodeParamEntity4.setBrand(devices.getBrand()); deviceCodeParamEntity4.setDataCom(devices.getDataCom()); + // 只获取字符串数字 + deviceCodeParamEntity4.setThread(ExchangeStringUtil.getNumFromString(devices.getDataCom())); deviceCodeParamEntity4.setBuildingId(devices.getBuildingId()); deviceCodeParamEntity4.setParity(devices.getParity()); deviceCodeParamEntityList.add(deviceCodeParamEntity4); @@ -1043,6 +1079,8 @@ public class GetReadOrder485 { deviceCodeParamEntity2.setBaudrate(devices.getBaudRate()); deviceCodeParamEntity2.setBrand(devices.getBrand()); deviceCodeParamEntity2.setDataCom(devices.getDataCom()); + // 只获取字符串数字 + deviceCodeParamEntity2.setThread(ExchangeStringUtil.getNumFromString(devices.getDataCom())); deviceCodeParamEntity2.setBuildingId(devices.getBuildingId()); deviceCodeParamEntity2.setParity(devices.getParity()); deviceCodeParamEntityList.add(deviceCodeParamEntity2); @@ -1056,6 +1094,8 @@ public class GetReadOrder485 { deviceCodeParamEntity2.setBaudrate(devices.getBaudRate()); deviceCodeParamEntity2.setBrand(devices.getBrand()); deviceCodeParamEntity2.setDataCom(devices.getDataCom()); + // 只获取字符串数字 + deviceCodeParamEntity2.setThread(ExchangeStringUtil.getNumFromString(devices.getDataCom())); deviceCodeParamEntity2.setBuildingId(devices.getBuildingId()); deviceCodeParamEntity2.setParity(devices.getParity()); deviceCodeParamEntityList.add(deviceCodeParamEntity2); diff --git a/user-service/src/main/resources/application-prod.yml b/user-service/src/main/resources/application-prod.yml index 96d645b..47a887c 100644 --- a/user-service/src/main/resources/application-prod.yml +++ b/user-service/src/main/resources/application-prod.yml @@ -53,16 +53,16 @@ spring: # driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver # username: chws_gw # password: chws_gw@803 - url: jdbc:sqlserver://111.230.50.186:32012;DatabaseName=chws_gw;allowMultiQueries=true - driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver - username: chws_gw - password: chws_gw@803 +# url: jdbc:sqlserver://111.230.50.186:32012;DatabaseName=chws_gw;allowMultiQueries=true +# driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver +# username: chws_gw +# password: chws_gw@803 # 华软江门 -# url: jdbc:sqlserver://127.0.0.1:57238;DatabaseName=chws_jm;allowMultiQueries=true -# driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver -# username: chws_jm -# password: Mhtech@803 + url: jdbc:sqlserver://127.0.0.1:57238;DatabaseName=chws_jm;allowMultiQueries=true + driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver + username: chws_jm + password: Mhtech@803 filters: stat,wall,config max-active: 100