From 23069ec5183fa3d2b12d2c2391b2a9f76093f626 Mon Sep 17 00:00:00 2001 From: XMnhwj_BackTechnologyDevelopment <3512363680@qq.com> Date: Mon, 15 May 2023 16:46:26 +0800 Subject: [PATCH] =?UTF-8?q?2023-05-15=2016:46:15=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=AE=8C=E5=96=84=E9=A6=96=E9=A1=B5=E5=A4=A7=E5=B1=8F=E3=80=81?= =?UTF-8?q?=E8=83=BD=E6=BA=90=E7=9B=91=E6=B5=8B=E7=9A=84=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/psdc/entity/PsdcDevice.java | 9 --- .../psdc/entity/res/PsdcDeviceInfoRes.java | 73 +++++++++++++++++++ .../com/psdc/mapper/PsdcDeviceMapper.java | 3 +- .../com/psdc/service/IPsdcDeviceService.java | 3 +- .../IPsdcThermometerHtdataService.java | 2 +- .../service/impl/PsdcDeviceServiceImpl.java | 35 +++++++-- .../PsdcThermometerHtdataServiceImpl.java | 67 ++++++----------- .../mapper/business/PsdcDeviceMapper.xml | 47 +++++++++--- .../manager/PsdcDeviceController.java | 15 ++-- .../controller/monitor/WenDuController.java | 9 +-- 10 files changed, 174 insertions(+), 89 deletions(-) create mode 100644 psdc-business/src/main/java/com/psdc/entity/res/PsdcDeviceInfoRes.java diff --git a/psdc-business/src/main/java/com/psdc/entity/PsdcDevice.java b/psdc-business/src/main/java/com/psdc/entity/PsdcDevice.java index 7b97ddf..cfa55f7 100644 --- a/psdc-business/src/main/java/com/psdc/entity/PsdcDevice.java +++ b/psdc-business/src/main/java/com/psdc/entity/PsdcDevice.java @@ -32,9 +32,6 @@ public class PsdcDevice { /** 设备类型:1-监测设备,2-运行设备 */ private Integer deviceType ; - /** 设备类型:1-监测设备,2-运行设备 */ - @Excel(name = "设备类型") - private String devType ; /** 设备名称 */ @Excel(name = "设备名称") private String deviceName ; @@ -58,9 +55,6 @@ public class PsdcDevice { /** 设备状态:1-未激活,2-禁用,3-在线,4-离线 */ private Integer deviceStatus ; - /** 设备状态:1-未激活,2-禁用,3-在线,4-离线 */ - @Excel(name = "设备状态") - private String devStatus ; /** 图片地址 */ private String photoUrl ; /** 创建者 */ @@ -74,9 +68,6 @@ public class PsdcDevice { /** 设备运行状态:1-开启,2-关闭 */ private Integer deviceRunstatus ; - /** 设备运行状态:1-开启,2-关闭 */ - @Excel(name = "设备运行状态") - private String devRunstatus ; } diff --git a/psdc-business/src/main/java/com/psdc/entity/res/PsdcDeviceInfoRes.java b/psdc-business/src/main/java/com/psdc/entity/res/PsdcDeviceInfoRes.java new file mode 100644 index 0000000..f4be2eb --- /dev/null +++ b/psdc-business/src/main/java/com/psdc/entity/res/PsdcDeviceInfoRes.java @@ -0,0 +1,73 @@ +package com.psdc.entity.res; + +import com.psdc.annotation.Excel; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author:戴仕崑 + * @Project:psdc + * @Filename:PsdcDeviceInfoRes + * @Date:2023/5/15 15:24 + * @Version 1.0 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class PsdcDeviceInfoRes { + + /** 设备id */ + @Excel(name = "设备Id", cellType = Excel.ColumnType.NUMERIC) + private Integer deviceId ; + /** 设备模型 */ + @Excel(name = "设备模型") + private String deviceModel; + /** 安装地址 */ + @Excel(name = "安装地址") + private String deviceAddress ; + /** 用户id */ + private Integer userId ; + /** 用户名称 */ + @Excel(name = "用户名称") + private String userName ; + + /** 父设备Id */ + private Integer parentId; + /** 设备名称 */ + @Excel(name = "设备名称") + private String deviceName ; + /** 设备sn */ + @Excel(name = "设备Sn") + private String deviceSn ; + /** 启用时间 */ + @Excel(name = "启用时间") + private String startTime ; + /** 当前功率 */ + @Excel(name = "当前功率") + private Double totp; + /** 当前温度 */ + @Excel(name = "当前温度") + private Double temp; + /** 目前实时进水温度 */ + @Excel(name = "进水温度") + private Double tempIn; + /** 目前实时出水温度 */ + @Excel(name = "出水温度") + private Double tempOut; + /** 当前总有功电能 */ + @Excel(name = "总用电量") + private Double totWh; + + /** 设备状态:1-未激活,2-禁用,3-在线,4-离线 */ + private Integer deviceStatus ; + /** 设备状态:1-未激活,2-禁用,3-在线,4-离线 */ + @Excel(name = "设备状态") + private String devStatus ; + /** 设备运行状态:1-开启,2-关闭 */ + private Integer deviceRunstatus ; + /** 设备运行状态:1-开启,2-关闭 */ + @Excel(name = "设备运行状态") + private String devRunstatus ; + +} diff --git a/psdc-business/src/main/java/com/psdc/mapper/PsdcDeviceMapper.java b/psdc-business/src/main/java/com/psdc/mapper/PsdcDeviceMapper.java index cb8538b..bd9b1c5 100644 --- a/psdc-business/src/main/java/com/psdc/mapper/PsdcDeviceMapper.java +++ b/psdc-business/src/main/java/com/psdc/mapper/PsdcDeviceMapper.java @@ -3,6 +3,7 @@ package com.psdc.mapper; import java.util.List; import com.psdc.entity.PsdcDevice; +import com.psdc.entity.res.PsdcDeviceInfoRes; import com.psdc.entity.vo.DeviceStatusVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -38,7 +39,7 @@ public interface PsdcDeviceMapper{ * @param psdcDevice 查询条件 * @return 对象列表 */ - List queryAllByLimit(PsdcDevice psdcDevice); + List queryAllByLimit(PsdcDevice psdcDevice); /** * 统计总行数 * diff --git a/psdc-business/src/main/java/com/psdc/service/IPsdcDeviceService.java b/psdc-business/src/main/java/com/psdc/service/IPsdcDeviceService.java index 76aa545..b9f7b80 100644 --- a/psdc-business/src/main/java/com/psdc/service/IPsdcDeviceService.java +++ b/psdc-business/src/main/java/com/psdc/service/IPsdcDeviceService.java @@ -1,6 +1,7 @@ package com.psdc.service; import com.psdc.entity.PsdcDevice; +import com.psdc.entity.res.PsdcDeviceInfoRes; import com.psdc.entity.vo.DeviceStatusVo; import org.springframework.web.multipart.MultipartFile; @@ -47,7 +48,7 @@ public interface IPsdcDeviceService { * @param psdcDevice 查询条件 * @return 对象列表 */ - List queryAllByLimit(PsdcDevice psdcDevice); + List queryAllByLimit(PsdcDevice psdcDevice); /** * 更新数据 diff --git a/psdc-business/src/main/java/com/psdc/service/IPsdcThermometerHtdataService.java b/psdc-business/src/main/java/com/psdc/service/IPsdcThermometerHtdataService.java index 5450247..736461a 100644 --- a/psdc-business/src/main/java/com/psdc/service/IPsdcThermometerHtdataService.java +++ b/psdc-business/src/main/java/com/psdc/service/IPsdcThermometerHtdataService.java @@ -24,7 +24,7 @@ public interface IPsdcThermometerHtdataService { PsdcDevicePowerRes selTotalElectricityInfo(Integer deviceId); - Map selTodayThermometerById(Integer deviceId); + List selTodayThermometerById(); AjaxResult selDzglWenDu(Integer deviceId); diff --git a/psdc-business/src/main/java/com/psdc/service/impl/PsdcDeviceServiceImpl.java b/psdc-business/src/main/java/com/psdc/service/impl/PsdcDeviceServiceImpl.java index 7c60ada..d216f1e 100644 --- a/psdc-business/src/main/java/com/psdc/service/impl/PsdcDeviceServiceImpl.java +++ b/psdc-business/src/main/java/com/psdc/service/impl/PsdcDeviceServiceImpl.java @@ -2,6 +2,7 @@ package com.psdc.service.impl; import com.psdc.entity.PsdcControlLog; import com.psdc.entity.PsdcDevice; +import com.psdc.entity.res.PsdcDeviceInfoRes; import com.psdc.entity.vo.DeviceStatusVo; import com.psdc.enums.ControlKeyEnum; import com.psdc.exception.ControlException; @@ -18,6 +19,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.InputStream; +import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -76,19 +78,36 @@ public class PsdcDeviceServiceImpl implements IPsdcDeviceService { * @return 实例对象 */ public Integer insert(PsdcDevice psdcDevice) { + psdcDevice.setDeviceStatus(1); // 未激活 + psdcDevice.setDeviceRunstatus(2); // 关闭 return psdcDeviceMapper.insert(psdcDevice); } @Override - public List queryAllByLimit(PsdcDevice psdcDevice) { - List list = psdcDeviceMapper.queryAllByLimit(psdcDevice); - for (PsdcDevice dev : list){ + public List queryAllByLimit(PsdcDevice psdcDevice) { + List list = psdcDeviceMapper.queryAllByLimit(psdcDevice); + List ary = new ArrayList<>(); + List removeList = new ArrayList<>(); + for (PsdcDeviceInfoRes dev : list){ // 导出时转换为String - dev.setDevType(coverStr("t", dev.getDeviceType())); - dev.setDevStatus(coverStr("s", dev.getDeviceStatus())); - dev.setDevRunstatus(coverStr("r", dev.getDeviceRunstatus())); + if (null != dev){ + dev.setDevStatus(coverStr("s", dev.getDeviceStatus())); + dev.setDevRunstatus(coverStr("r", dev.getDeviceRunstatus())); + if (dev.getParentId() != 0){ + ary.add(dev.getParentId()); + } + } } - +// for (PsdcDeviceInfoRes dev : list){ +// // 剔除多设备父模型 +// for (Integer pId : ary){ +// if (dev.getDeviceId() == pId){ +// removeList.add(dev); +// } +// } +// } +// +// list.removeAll(removeList); return list; } @@ -124,7 +143,7 @@ public class PsdcDeviceServiceImpl implements IPsdcDeviceService { for (PsdcDevice pd : devices){ pd.setCreateBy(cjr); pd.setCreateTime(new Date()); - pd.setDeviceType(Integer.parseInt(pd.getDevType())); + // pd.setDeviceType(Integer.parseInt(pd.getDevType())); // 新导入的设备默认状态为: 未激活 // 新导入的设备默认启动时间为null,请在设备激活后手动修改! pd.setDeviceStatus(1); diff --git a/psdc-business/src/main/java/com/psdc/service/impl/PsdcThermometerHtdataServiceImpl.java b/psdc-business/src/main/java/com/psdc/service/impl/PsdcThermometerHtdataServiceImpl.java index c844f1d..7ab52f5 100644 --- a/psdc-business/src/main/java/com/psdc/service/impl/PsdcThermometerHtdataServiceImpl.java +++ b/psdc-business/src/main/java/com/psdc/service/impl/PsdcThermometerHtdataServiceImpl.java @@ -114,61 +114,40 @@ public class PsdcThermometerHtdataServiceImpl implements IPsdcThermometerHtdataS } @Override - public Map selTodayThermometerById(Integer deviceId) { + public List selTodayThermometerById() { Date date = new Date(); String tb = sdf.format(date) + " 00:00:00"; // 今天开始检索时间 String te = sdf.format(date) + " 23:59:59"; // 今天结束检索时间 - Map map = new HashMap(); - // 查询该设备实时温度数据 - PsdcThermometerDataRes dataRes = psdcThermometerRtdataMapper.queryById(deviceId, sdf.format(date)); - List htdata = psdcThermometerHtdataMapper.selTodayThermometer(deviceId, tb, te); - - if (null == dataRes || null == htdata) { - return null; - } + List ary = new ArrayList<>(); + List dataResList = psdcThermometerRtdataMapper.selWenDu(SecurityUtils.getUserId(), 16); + for (PsdcThermometerDataRes dec : dataResList ){ + PsdcThermometerDataRes dataRes = psdcThermometerRtdataMapper.queryById(dec.getDeviceId(), sdf.format(date)); + List htdata = psdcThermometerHtdataMapper.selTodayThermometer(dec.getDeviceId(), tb, te); - List listIn = new ArrayList(); // 今天历史进水温度集合 - List listOut = new ArrayList(); // 今天历史出水温度集合 - List listTemp = new ArrayList(); // 今天历史温度集合 - List times = new ArrayList(); // 时间轴 + List listTemp = new ArrayList(); // 今天历史温度集合 + List times = new ArrayList(); // 时间轴 - // 循环遍历今天历史数据对象集合 + // 循环遍历今天历史数据对象集合 + for (PsdcThermometerHtdata h : htdata) { + if (null != h.getThermometerValue()) { + listTemp.add(h.getThermometerValue()); + } - for (PsdcThermometerHtdata h : htdata) { - if (null != h.getThermometerValue()) { - listTemp.add(h.getThermometerValue()); + String t = h.getUpdateTime().split(" ")[1].substring(0, 5); + times.add(t); } - if (null != h.getThermometerValueIn()) { - listIn.add(h.getThermometerValueIn()); - } - if (null != h.getThermometerValueOut()) { - listOut.add(h.getThermometerValueOut()); - } - - String t = h.getUpdateTime().split(" ")[1].substring(0, 5); - times.add(t); - } - map.put("deviceId", dataRes.getDeviceId()); - map.put("deviceName", dataRes.getDeviceName()); - map.put("tempIn", listIn); - map.put("tempOut", listOut); - map.put("temps", listTemp); - map.put("times", times); - Map map2 = new HashMap(); - List dataRes1 = psdcThermometerRtdataMapper.selWenDu(SecurityUtils.getUserId(), 16); - ArrayList ary = new ArrayList<>(); - // 循环遍历温度实时对象集合并 - for (PsdcThermometerDataRes temp : dataRes1) { Map map3 = new HashMap(); - map3.put("deviceId", temp.getDeviceId()); - map3.put("deviceName", temp.getDeviceName()); - map3.put("deviceTemp", temp.getThermometerValue()); + + map3.put("deviceId", dataRes.getDeviceId()); + map3.put("deviceName", dataRes.getDeviceName()); + map3.put("deviceTemp", dec.getThermometerValue()); + map3.put("temps", listTemp); + map3.put("times", times); ary.add(map3); } - map2.put("realTemp", ary); - map2.put("tempList", map); - return map2; + + return ary; } /** diff --git a/psdc-business/src/main/resources/mapper/business/PsdcDeviceMapper.xml b/psdc-business/src/main/resources/mapper/business/PsdcDeviceMapper.xml index aef6622..b86b868 100644 --- a/psdc-business/src/main/resources/mapper/business/PsdcDeviceMapper.xml +++ b/psdc-business/src/main/resources/mapper/business/PsdcDeviceMapper.xml @@ -33,6 +33,25 @@ + + + + + + + + + + + + + + + + + + + - + Select + pd.device_id, device_name, device_address, device_status, device_runstatus, parent_id, device_model, su.user_id, su.user_name, + device_sn, per.TotP, per.TotWh, start_time, ptr.thermometer_value, ptr.thermometer_value_in, ptr.thermometer_value_out + From psdc_device pd + Left Join sys_user su On su.user_id = pd.user_id + Left Join psdc_electric_rtdata per On per.device_id = pd.device_id + Left Join psdc_thermometer_rtdata ptr On ptr.device_id = pd.device_id + Where !(device_model = "温度传感器" And parent_id = 0) - and device_id = #{deviceId} + and pd.device_id = #{deviceId} - and user_id = #{userId} + and pd.user_id = #{userId} - - and device_type = #{deviceType} + + and device_model Like concat('%', #{deviceModel}, '%') and device_sn = #{deviceSn} @@ -138,7 +161,7 @@ and update_time = #{updateTime} - + Order by pd.device_id @@ -199,7 +222,7 @@ - insert into psdc_device(user_id, device_type, parent_id, device_model, is_control, device_sn, device_name, hard_version, soft_version, + insert into psdc_device(user_id, device_type, device_model, parent_id, is_control, device_sn, device_name, hard_version, soft_version, device_address, start_time, device_status, device_runstatus, photo_url, create_by, create_time, update_by, update_time) values (#{userId}, #{deviceType}, #{deviceModel},#{parentId},#{isControl}, #{deviceSn}, #{deviceName}, #{hardVersion}, #{softVersion}, #{deviceAddress}, @@ -213,7 +236,7 @@ create_time, update_by, update_time) Values - (NULL, #{entity.deviceType}, #{entity.deviceSn}, #{entity.deviceModel},#{entity.parentId},#{entity.isControl}, #{entity.deviceName}, #{entity.hardVersion}, #{entity.softVersion}, #{entity.deviceAddress}, + (NULL, #{entity.deviceType}, #{entity.deviceSn},#{entity.parentId}, #{entity.deviceModel}, #{entity.isControl}, #{entity.deviceName}, #{entity.hardVersion}, #{entity.softVersion}, #{entity.deviceAddress}, #{entity.startTime}, #{entity.deviceStatus}, #{entity.deviceRunstatus}, #{entity.photoUrl}, #{entity.createBy}, #{entity.createTime}, NULL, NULL) diff --git a/psdc-web/src/main/java/com/psdc/controller/manager/PsdcDeviceController.java b/psdc-web/src/main/java/com/psdc/controller/manager/PsdcDeviceController.java index 7e9c322..e87e3f0 100644 --- a/psdc-web/src/main/java/com/psdc/controller/manager/PsdcDeviceController.java +++ b/psdc-web/src/main/java/com/psdc/controller/manager/PsdcDeviceController.java @@ -8,6 +8,7 @@ import com.psdc.core.domain.AjaxResult; import com.psdc.core.domain.entity.SysUser; import com.psdc.core.page.TableDataInfo; import com.psdc.entity.PsdcDevice; +import com.psdc.entity.res.PsdcDeviceInfoRes; import com.psdc.enums.BusinessType; import com.psdc.service.IPsdcDeviceService; import com.psdc.service.ISysUserService; @@ -96,7 +97,7 @@ public class PsdcDeviceController extends BaseController { // PageMethod.startPage(jsonObject.getInteger("pageNum"),jsonObject.getInteger("pageSize")); // PsdcDevice deviceVo = JSON.parseObject(String.valueOf(jsonObject), PsdcDevice.class); PsdcDevice deviceVo = myPage(jsonObject, PsdcDevice.class); - List list = psdcDeviceService.queryAllByLimit(deviceVo); + List list = psdcDeviceService.queryAllByLimit(deviceVo); return getDataTable(list); } @@ -107,12 +108,12 @@ public class PsdcDeviceController extends BaseController { @Log(title = "设备管理", businessType = BusinessType.EXPORT) @RequestMapping(value = "/daochuDevs", method = RequestMethod.POST) public void daochuDevDta(HttpServletResponse response, @RequestBody PsdcDevice pd) { - List list = psdcDeviceService.queryAllByLimit(pd); - for (PsdcDevice dev : list){ - dev.setUserName(sysUserService.selectUserById(Long.valueOf(dev.getUserId())).getUserName()); - } - ExcelUtil util = new ExcelUtil<>(PsdcDevice.class); - util.exportExcel(response, list, "角色数据"); +// List list = psdcDeviceService.queryAllByLimit(pd); +// for (PsdcDevice dev : list){ +// dev.setUserName(sysUserService.selectUserById(Long.valueOf(dev.getUserId())).getUserName()); +// } +// ExcelUtil util = new ExcelUtil<>(PsdcDevice.class); +// util.exportExcel(response, list, "角色数据"); } /** diff --git a/psdc-web/src/main/java/com/psdc/controller/monitor/WenDuController.java b/psdc-web/src/main/java/com/psdc/controller/monitor/WenDuController.java index 073288b..0ffcaa5 100644 --- a/psdc-web/src/main/java/com/psdc/controller/monitor/WenDuController.java +++ b/psdc-web/src/main/java/com/psdc/controller/monitor/WenDuController.java @@ -24,12 +24,9 @@ public class WenDuController { IPsdcThermometerHtdataService psdcThermometerHtdataService; @PreAuthorize("@ss.hasPermi('emonitor:wdcgq')") - @RequestMapping(value = "/sel1/{deviceId}", method = RequestMethod.GET) - public AjaxResult seldrgl1(@PathVariable(value = "deviceId", required = false) Integer deviceId){ - if (null == psdcThermometerHtdataService.selTodayThermometerById(deviceId)){ - return AjaxResult.success("今日该设备暂无温度数据!"); - } - return AjaxResult.success(psdcThermometerHtdataService.selTodayThermometerById(deviceId)); + @RequestMapping(value = "/sel1", method = RequestMethod.GET) + public AjaxResult selwd(){ + return AjaxResult.success(psdcThermometerHtdataService.selTodayThermometerById()); } }