diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/iot/IndexController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/iot/IndexController.java index b68eddc..7da267b 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/iot/IndexController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/iot/IndexController.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.ruoyi.common.core.domain.entity.SysMenu; import com.ruoyi.common.core.text.Convert; +import com.ruoyi.common.utils.DateUtils; import com.ruoyi.system.domain.*; import com.ruoyi.system.domain.dto.*; import com.ruoyi.system.service.*; @@ -14,8 +15,9 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import java.util.ArrayList; -import java.util.List; +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.*; import java.util.stream.Collectors; /** @@ -34,11 +36,9 @@ public class IndexController { @Autowired private IBaseSensorInfoService baseSensorInfoService; - @Autowired - private IBaseAlarmModuleService baseAlarmModuleService; + @Autowired private IBaseAlarmModuleService baseAlarmModuleService; - @Autowired - private IRecordAlarmService recordAlarmService; + @Autowired private IRecordAlarmService recordAlarmService; @GetMapping() public String index() { @@ -315,28 +315,33 @@ public class IndexController { /** * 告警数量统计 + * * @author WenJY * @date 2022/3/27 14:52 * @return java.lang.String */ - @GetMapping("/getAlarmAmount") - @ResponseBody - public String getAlarmAmount(){ - List info = new ArrayList<>(); - List recordAlarms = recordAlarmService.selectRecordAlarmList(new RecordAlarm()); - - if(recordAlarms.size() > 0){ - int size = recordAlarms.stream().filter(x -> x.getDisposeFlag() == 0L).collect(Collectors.toList()).size(); - - info.add(size+""); - info.add(recordAlarms.size()+""); - - }else{ - info.add("--"); - info.add("--"); - } + @GetMapping("/getAlarmAmount") + @ResponseBody + public String getAlarmAmount() { + List info = new ArrayList<>(); + List recordAlarms = recordAlarmService.selectRecordAlarmList(new RecordAlarm()); + + if (recordAlarms.size() > 0) { + int size = + recordAlarms.stream() + .filter(x -> x.getDisposeFlag() == 0L) + .collect(Collectors.toList()) + .size(); + + info.add(size + ""); + info.add(recordAlarms.size() + ""); + + } else { + info.add("--"); + info.add("--"); + } - return JSONArray.toJSONString(info); + return JSONArray.toJSONString(info); } /** @@ -350,23 +355,25 @@ public class IndexController { @ResponseBody public String getAlarmModuleAmount() { - List yAxis = new ArrayList<>(); + List yAxis = new ArrayList<>(); - List data = new ArrayList<>(); + List data = new ArrayList<>(); - List baseAlarmModuleDtos = baseAlarmModuleService.selectAlarmModuleAmountList(new BaseAlarmModule()); + List baseAlarmModuleDtos = + baseAlarmModuleService.selectAlarmModuleAmountList(new BaseAlarmModule()); - if(baseAlarmModuleDtos.size()>0){ - baseAlarmModuleDtos.forEach(x->{ - yAxis.add(x.getAlarmmoduleText()); + if (baseAlarmModuleDtos.size() > 0) { + baseAlarmModuleDtos.forEach( + x -> { + yAxis.add(x.getAlarmmoduleText()); - data.add(Convert.toInt(x.getAlarmModuleAmount())); + data.add(Convert.toInt(x.getAlarmModuleAmount())); }); - } + } - String s = JSONArray.toJSONString(new AlarmJsonBean(null, yAxis, data)); + String s = JSONArray.toJSONString(new AlarmJsonBean(null, yAxis, data)); - return s; + return s; } /** @@ -380,40 +387,99 @@ public class IndexController { @ResponseBody public String getAlarmTrend() { - List xAxis = new ArrayList<>(); + List xAxis = new ArrayList<>(); - List data = new ArrayList<>(); + List data = new ArrayList<>(); - List recordAlarmDtos = recordAlarmService.selectAlarmTrendList(""); + List dayByMonth = getSevenDate(); - if(recordAlarmDtos.size()>0){ - recordAlarmDtos.forEach(x->{ - xAxis.add(x.getCollectTime()); - data.add(Convert.toInt(x.getAlarmValue())); - }); - } + List recordAlarmDtos = recordAlarmService.selectAlarmTrendList(""); + + dayByMonth.forEach( + x -> { + List collect = + recordAlarmDtos.stream() + .filter(y -> y.getCollectTime().equals(x)) + .collect(Collectors.toList()); + xAxis.add(x); + BigDecimal reduce = + collect.stream() + .map(RecordAlarmDto::getAlarmValue) + .reduce(BigDecimal.ZERO, BigDecimal::add); + data.add(Convert.toInt(reduce)); + }); + + String s = JSONArray.toJSONString(new AlarmJsonBean(xAxis, null, data)); + + return s; + } + + /** + * 获取前七天的日期 + * @author WenJY + * @date 2022/3/31 10:13 + * @return java.util.List + */ + public static List getSevenDate() { + List dateList = new ArrayList<>(); + SimpleDateFormat sdf = new SimpleDateFormat("MM-dd"); + for (int i = 0; i < 7; i++) { + Date date = DateUtils.addDays(new Date(), -i); + String formatDate = sdf.format(date); + dateList.add(formatDate); + } + dateList.sort((a, b) -> a.compareTo(b.toString())); + return dateList; + } - String s = JSONArray.toJSONString(new AlarmJsonBean(xAxis, null, data)); + /** + * 获取当月的日期 + * @author WenJY + * @date 2022/3/31 10:14 + * @return java.util.List + */ + public static List getDayByMonth() { + List list = new ArrayList(); + Calendar aCalendar = Calendar.getInstance(Locale.CHINA); + aCalendar.setTime(new Date()); + int year = aCalendar.get(Calendar.YEAR); // 年份 + int month = aCalendar.get(Calendar.MONTH) + 1; // 月份 + int day = aCalendar.getActualMaximum(Calendar.DATE); + for (int i = 1; i <= day; i++) { + String aDate = null; + if (month < 10 && i < 10) { + aDate = "0" + month + "-0" + i; + } + if (month < 10 && i >= 10) { + aDate = "0" + month + "-" + i; + } + if (month >= 10 && i < 10) { + aDate = month + "-0" + i; + } + if (month >= 10 && i >= 10) { + aDate = month + "-" + i; + } - return s; + list.add(aDate); + } + return list; } } @Data -class AlarmJsonBean{ +class AlarmJsonBean { - public AlarmJsonBean() { - } + public AlarmJsonBean() {} - public AlarmJsonBean(List xAxis,List yAxis, List data) { - this.xAxis = xAxis; - this.yAxis = yAxis; - this.data = data; - } + public AlarmJsonBean(List xAxis, List yAxis, List data) { + this.xAxis = xAxis; + this.yAxis = yAxis; + this.data = data; + } - private List yAxis; + private List yAxis; - private List xAxis; + private List xAxis; - private List data; + private List data; } diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml index ed3ae52..abaf8f6 100644 --- a/ruoyi-admin/src/main/resources/application-druid.yml +++ b/ruoyi-admin/src/main/resources/application-druid.yml @@ -6,12 +6,12 @@ spring: druid: # 主库数据源 master: - url: jdbc:mysql://121.36.58.109:3306/jrm-intelligent-iot?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 - username: root - password: Haiwei123456 -# url: jdbc:mysql://localhost:3306/jrm-intelligent-iot?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 +# url: jdbc:mysql://121.36.58.109:3306/jrm-intelligent-iot?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 # username: root -# password: root +# password: Haiwei123456 + url: jdbc:mysql://localhost:3306/jrm-intelligent-iot?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + username: root + password: root # 从库数据源 slave: # 从数据源开关/默认关闭 diff --git a/ruoyi-admin/src/main/resources/static/js/Iot-ui/iotIndex.js b/ruoyi-admin/src/main/resources/static/js/Iot-ui/iotIndex.js index e7251fb..ed0cca0 100644 --- a/ruoyi-admin/src/main/resources/static/js/Iot-ui/iotIndex.js +++ b/ruoyi-admin/src/main/resources/static/js/Iot-ui/iotIndex.js @@ -188,7 +188,7 @@ function barChats(datas, id) { show: false, //是否显示滑动条,不影响使用 type: "slider", // 这个 dataZoom 组件是 slider 型 dataZoom 组件 startValue: 0, // 从头开始。 - endValue: 4, // 一次性展示5个。 + endValue: 5, // 一次性展示6个。 }, ], xAxis: { @@ -314,7 +314,7 @@ function barChats(datas, id) { //自动滚动 this.timeOut = setInterval(() => { if (options.dataZoom[0].endValue == datas.data.length) { - options.dataZoom[0].endValue = 4; + options.dataZoom[0].endValue = 5; options.dataZoom[0].startValue = 0; } else { options.dataZoom[0].endValue = options.dataZoom[0].endValue + 1; @@ -507,7 +507,7 @@ function lineCharts(datas, id) { grid: { left: 10, top: 30, - right: 10, + right: 20, bottom: 2, containLabel: true, },