diff --git a/psdc-business/src/main/java/com/psdc/entity/res/PsdcDevicePowerRes.java b/psdc-business/src/main/java/com/psdc/entity/res/PsdcDevicePowerRes.java index bb88ae7..9d09fd9 100644 --- a/psdc-business/src/main/java/com/psdc/entity/res/PsdcDevicePowerRes.java +++ b/psdc-business/src/main/java/com/psdc/entity/res/PsdcDevicePowerRes.java @@ -21,6 +21,14 @@ public class PsdcDevicePowerRes { * 总有功功率 */ private Double totp; + /** + * 今日用电量 + */ + private Double eDay; + /** + * 本月用电量 + */ + private Double eMonth; /** * 当前总有功电能 */ diff --git a/psdc-business/src/main/java/com/psdc/entity/res/TodayThisHourUseElectricInfoRes.java b/psdc-business/src/main/java/com/psdc/entity/res/TodayThisHourUseElectricInfoRes.java new file mode 100644 index 0000000..9d6f6ac --- /dev/null +++ b/psdc-business/src/main/java/com/psdc/entity/res/TodayThisHourUseElectricInfoRes.java @@ -0,0 +1,26 @@ +package com.psdc.entity.res; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author:戴仕崑 + * @Project:psdc + * @Filename:TodayThisHourUseElectricInfoRes + * @Date:2023/5/10 15:20 + * @Version 1.0 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class TodayThisHourUseElectricInfoRes { + + Integer id; // 序号 + String hour; // 当前小时间段 + Integer deviceId; // 设备Id + String upDateTime; // 更新时间 + Double useElectric; // 该小时间段用电量 + + +} diff --git a/psdc-business/src/main/java/com/psdc/mapper/PsdcElectricHtdataMapper.java b/psdc-business/src/main/java/com/psdc/mapper/PsdcElectricHtdataMapper.java index 0fcbb0a..65cf669 100644 --- a/psdc-business/src/main/java/com/psdc/mapper/PsdcElectricHtdataMapper.java +++ b/psdc-business/src/main/java/com/psdc/mapper/PsdcElectricHtdataMapper.java @@ -3,6 +3,7 @@ package com.psdc.mapper; import java.util.List; import com.psdc.entity.PsdcElectricHtdata; +import com.psdc.entity.res.TodayThisHourUseElectricInfoRes; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.springframework.data.domain.Pageable; @@ -23,8 +24,12 @@ public interface PsdcElectricHtdataMapper{ */ PsdcElectricHtdata queryById(Integer electricHtdataId); + List selThisHourUseElectric(@Param(value = "deviceId") Integer deviceId, + @Param(value = "upDate") String upDate); + Double selTodayUseEnergy(@Param(value = "deviceId") Integer deviceId, - @Param(value = "updateTime") String updateTime); + @Param(value = "beginTime") String begin_time, + @Param(value = "endTime") String end_time); /** diff --git a/psdc-business/src/main/java/com/psdc/mapper/PsdcThermometerHtdataMapper.java b/psdc-business/src/main/java/com/psdc/mapper/PsdcThermometerHtdataMapper.java index 1d75f7e..7737a2f 100644 --- a/psdc-business/src/main/java/com/psdc/mapper/PsdcThermometerHtdataMapper.java +++ b/psdc-business/src/main/java/com/psdc/mapper/PsdcThermometerHtdataMapper.java @@ -34,12 +34,10 @@ public interface PsdcThermometerHtdataMapper{ List queryAllByLimit(PsdcThermometerHtdata psdcThermometerHtdata, @Param("pageable") Pageable pageable); - List selTodayThermometer(@Param(value = "temp") String temp, - @Param(value = "deviceId") Integer deviceId, - @Param(value = "updateTime") String updateTime); + List selTodayThermometer(@Param(value = "deviceId") Integer deviceId, + @Param(value = "beginTime") String begin_time, + @Param(value = "endTime") String end_time); - List selTodayThermometer2(@Param(value = "deviceId") Integer deviceId, - @Param(value = "updateTime") String updateTime); /** * 统计总行数 diff --git a/psdc-business/src/main/java/com/psdc/service/IPsdcElectricHtdataService.java b/psdc-business/src/main/java/com/psdc/service/IPsdcElectricHtdataService.java new file mode 100644 index 0000000..4844b6b --- /dev/null +++ b/psdc-business/src/main/java/com/psdc/service/IPsdcElectricHtdataService.java @@ -0,0 +1,20 @@ +package com.psdc.service; + +import java.util.List; +import java.util.Map; + +/** + * @Author:戴仕崑 + * @Project:psdc + * @Filename:IPsdcElectricHtdata + * @Date:2023/5/10 9:00 + * @Version 1.0 + */ +public interface IPsdcElectricHtdataService { + + + Map selTotalElectricityInfo(); + + List selThisHourUseElectric(); + +} diff --git a/psdc-business/src/main/java/com/psdc/service/IPsdcElectricRtdataService.java b/psdc-business/src/main/java/com/psdc/service/IPsdcElectricRtdataService.java new file mode 100644 index 0000000..0d00602 --- /dev/null +++ b/psdc-business/src/main/java/com/psdc/service/IPsdcElectricRtdataService.java @@ -0,0 +1,11 @@ +package com.psdc.service; + +/** + * @Author:戴仕崑 + * @Project:psdc + * @Filename:IPsdcElectricRtdata + * @Date:2023/5/10 9:00 + * @Version 1.0 + */ +public interface IPsdcElectricRtdataService { +} 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 93b816e..6b2c264 100644 --- a/psdc-business/src/main/java/com/psdc/service/IPsdcThermometerHtdataService.java +++ b/psdc-business/src/main/java/com/psdc/service/IPsdcThermometerHtdataService.java @@ -1,8 +1,9 @@ package com.psdc.service; import com.psdc.core.domain.AjaxResult; +import com.psdc.entity.PsdcDevicePowerHdata96; +import com.psdc.entity.res.PsdcDevicePowerRes; -import java.util.List; /** * @Author:戴仕崑 @@ -18,6 +19,6 @@ public interface IPsdcThermometerHtdataService { AjaxResult sel8WnDu(); - AjaxResult selTotalElectricityInfo(); + PsdcDevicePowerRes selTotalElectricityInfo(); } diff --git a/psdc-business/src/main/java/com/psdc/service/impl/PsdcElectricHtdataServiceImpl.java b/psdc-business/src/main/java/com/psdc/service/impl/PsdcElectricHtdataServiceImpl.java new file mode 100644 index 0000000..e0d9870 --- /dev/null +++ b/psdc-business/src/main/java/com/psdc/service/impl/PsdcElectricHtdataServiceImpl.java @@ -0,0 +1,64 @@ +package com.psdc.service.impl; + +import com.psdc.mapper.PsdcElectricHtdataMapper; +import com.psdc.service.IPsdcElectricHtdataService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * @Author:戴仕崑 + * @Project:psdc + * @Filename:PsdcElectricRtdataServiceImpl + * @Date:2023/5/10 9:01 + * @Version 1.0 + */ +@Service +public class PsdcElectricHtdataServiceImpl implements IPsdcElectricHtdataService { + + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + + @Resource + PsdcElectricHtdataMapper electricHtdataMapper; + + @Override + public Map selTotalElectricityInfo() { + Date date = new Date(); + Map map = new HashMap<>(); + String tb = df.format(date) + " 00:00:00"; // 今天开始检索时间 + String te = df.format(date) + " 23:59:59"; // 今天结束检索时间 + String mb = benYue()[0] + " 00:00:00"; // 本月开始检索时间 + String me = benYue()[1] + " 23:59:59"; // 本月结束检索时间 + Double todayUseElectric = electricHtdataMapper.selTodayUseEnergy(13, tb, te);// 总电表今日用电量 + Double toMonthUseElectric = electricHtdataMapper.selTodayUseEnergy(13, mb, me);// 总电表本月用电量 + map.put("eday", todayUseElectric); + map.put("emonth", toMonthUseElectric); + return map; + } + + @Override + public List selThisHourUseElectric() { + return electricHtdataMapper.selThisHourUseElectric(13, df.format(new Date())); + } + + private String[] benYue(){ + String startDay = df.format(new Date()); + String[] s1 = new String[2]; + + Calendar calendar = Calendar.getInstance(); + calendar.set(Integer.parseInt(startDay.substring(0,4)), Integer.parseInt(startDay.substring(5,7)) - 1, 1); + String firstDayOfMonth = df.format(calendar.getTime()); + s1[0] = firstDayOfMonth; + // 这里先设置要获取月份的下月的第一天 + calendar.set(Integer.parseInt(startDay.substring(0,4)), Integer.parseInt(startDay.substring(5,7)), 1); + // 这里将日期值减去一天,从而获取到要求的月份最后一天 + calendar.add(Calendar.DATE, -1); + String lastDayOfMonth = df.format(calendar.getTime()); + s1[1] = lastDayOfMonth; + + return s1; + } + +} 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 ecd78c9..882df65 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 @@ -2,7 +2,7 @@ package com.psdc.service.impl; import com.psdc.core.domain.AjaxResult; import com.psdc.entity.PsdcDevicePowerHdata96; -import com.psdc.entity.PsdcElectricRtdata; +import com.psdc.entity.PsdcThermometerHtdata; import com.psdc.entity.res.PsdcDevicePowerRes; import com.psdc.entity.res.PsdcThermometerDataRes; import com.psdc.mapper.*; @@ -49,13 +49,33 @@ public class PsdcThermometerHtdataServiceImpl implements IPsdcThermometerHtdataS List ary = new ArrayList(); for (Integer d : devList) { - + // 查询今日实时温度数据 PsdcThermometerDataRes dataRes = psdcThermometerRtdataMapper.queryById(d); - List listIn = psdcThermometerHtdataMapper.selTodayThermometer("thermometer_value_in", d, sdf.format(date)); - List listOut = psdcThermometerHtdataMapper.selTodayThermometer("thermometer_value_out", d, sdf.format(date)); - List listTemp = psdcThermometerHtdataMapper.selTodayThermometer("thermometer_value", d, sdf.format(date)); - List times = psdcThermometerHtdataMapper.selTodayThermometer2(d, sdf.format(date)); - Double useEnergy = psdcElectricHtdataMapper.selTodayUseEnergy(d, sdf.format(date)); + + String tb = sdf.format(date) + " 00:00:00"; // 今天开始检索时间 + String te = sdf.format(date) + " 23:59:59"; // 今天结束检索时间 + + List listIn = new ArrayList(); // 今天历史进水温度集合 + List listOut = new ArrayList(); // 今天历史出水温度集合 + List listTemp = new ArrayList(); // 今天历史温度集合 + List times = new ArrayList(); // 时间轴 + + // 循环遍历今天历史数据对象集合 + List htdata = psdcThermometerHtdataMapper.selTodayThermometer(d, tb, te); + for (PsdcThermometerHtdata h : htdata){ + listTemp.add(h.getThermometerValue()); + 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); + } + + Double useEnergy = psdcElectricHtdataMapper.selTodayUseEnergy(d, tb, te); dataRes.setTimeList(times); dataRes.setTempTodayList(listTemp); dataRes.setTempInTodayList(listIn); @@ -75,12 +95,12 @@ public class PsdcThermometerHtdataServiceImpl implements IPsdcThermometerHtdataS } @Override - public AjaxResult selTotalElectricityInfo() { + public PsdcDevicePowerRes selTotalElectricityInfo() { long userId = SecurityUtils.getUserId(); PsdcDevicePowerHdata96 hdata96 = psdcDevicePowerHdata96Mapper.queryById(userId, 13, sdf2.format(new Date())); PsdcDevicePowerRes rtdata = psdcElectricRtdataMapper.queryById(13); rtdata.setTodayUsePowers(hdata96); - return AjaxResult.success(rtdata); + return rtdata; } diff --git a/psdc-business/src/main/resources/mapper/business/PsdcElectricHtdataMapper.xml b/psdc-business/src/main/resources/mapper/business/PsdcElectricHtdataMapper.xml index f018226..e9180b0 100644 --- a/psdc-business/src/main/resources/mapper/business/PsdcElectricHtdataMapper.xml +++ b/psdc-business/src/main/resources/mapper/business/PsdcElectricHtdataMapper.xml @@ -45,6 +45,14 @@ + + + + + + + + + + + - + Select thermometer_htdata_id,device_id,thermometer_value,thermometer_value_in,thermometer_value_out,update_time From psdc_thermometer_htdata device_id = #{deviceId} - - And update_time Like concat('%',#{updateTime},'%') - - - - - +