Browse Source

Merge remote-tracking branch 'origin/develop' into develop

develop
wangsixiang 10 months ago
parent
commit
c5e710d9dc
  1. 24
      zc-business/src/main/java/com/zc/business/controller/StatusController.java
  2. 42
      zc-business/src/main/java/com/zc/business/interfaces/OperationLogAspect.java
  3. 2
      zc-business/src/main/java/com/zc/business/service/impl/DcEventServiceImpl.java

24
zc-business/src/main/java/com/zc/business/controller/StatusController.java

@ -1,4 +1,5 @@
package com.zc.business.controller;
import com.github.pagehelper.util.StringUtil;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
@ -21,7 +22,10 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.*;
import java.util.stream.Collectors;
@ -130,19 +134,27 @@ public class StatusController extends BaseController {
List<Status> listStatus = statusService.deviceStatusListById(status);
// Calculate average successRate by day
Map<Integer, Double> averageSuccessRateByDay = listStatus.stream()
.collect(Collectors.groupingBy(s -> s.getTime().getDayOfMonth(),
Map<String, Double> averageSuccessRateByDay = listStatus.stream()
.collect(Collectors.groupingBy(s -> {
// 使用 DateTimeFormatter 格式化日期
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String formattedDate = s.getTime().format(formatter);
return formattedDate;
},
Collectors.averagingDouble(s -> Double.parseDouble(s.getSuccessRate().replace("%", "")))));
if (averageSuccessRateByDay.isEmpty()) {
return AjaxResult.success("暂无数据");
}
// Round average successRate to two decimal places
Map<Integer, Double> roundedAverageSuccessRateByDay = averageSuccessRateByDay.entrySet().stream()
.collect(Collectors.toMap(Map.Entry::getKey, entry -> Math.round(entry.getValue() * 100.0) / 100.0));
averageSuccessRateByDay.keySet().forEach(item -> {
BigDecimal bigDecimal = new BigDecimal(averageSuccessRateByDay.get(item));
averageSuccessRateByDay.put(item, bigDecimal.setScale(2, RoundingMode.HALF_UP).doubleValue());
});
return AjaxResult.success(roundedAverageSuccessRateByDay);
return AjaxResult.success(new TreeMap<>(averageSuccessRateByDay));
}
//按类型划分设备

42
zc-business/src/main/java/com/zc/business/interfaces/OperationLogAspect.java

@ -14,8 +14,11 @@ import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.system.service.ISysDeptService;
import com.zc.business.domain.DcDevice;
import com.zc.business.domain.DcOperLog;
import com.zc.business.domain.DcPublishManage;
import com.zc.business.service.IDcDeviceService;
import com.zc.business.service.IDcOperLogService;
import com.zc.business.service.IDcPublishInfoService;
import com.zc.business.service.IDcPublishManageService;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.*;
@ -108,6 +111,7 @@ public class OperationLogAspect {
ISysDeptService deptService = SpringUtils.getBean(ISysDeptService.class);
IDcOperLogService dcOperLogService = SpringUtils.getBean(IDcOperLogService.class);
IDcDeviceService dcDeviceService = SpringUtils.getBean(IDcDeviceService.class);
IDcPublishManageService dcPublishManageService = SpringUtils.getBean(IDcPublishManageService.class);
try {
DcOperLog operLog = new DcOperLog();
@ -177,6 +181,7 @@ public class OperationLogAspect {
deviceType = dcDevice.getDeviceType();
deviceIds.add(String.valueOf(deviceId));
deviceNames.add(deviceName);
@ -190,7 +195,10 @@ public class OperationLogAspect {
"发布语音广播" :
String.valueOf(
((HashMap<String, Object>) (DEVICEFUNCTIONNAME.get(deviceType)))
.get(function.getString("functionId")));
.get(function.getString("functionId")) == null ?
"未知方法" :
((HashMap<String, Object>) (DEVICEFUNCTIONNAME.get(deviceType)))
.get(function.getString("functionId")));
remark.append("调用").append(hashMap).append("功能").append(sta);
@ -227,7 +235,37 @@ public class OperationLogAspect {
operLog.setDcDeviceType(deviceType);
operLog.setRemark(remark.toString());
operLog.setJsonResult(jsonResult.toString());
dcOperLogService.addDcOperLog(operLog);
dcOperLogService.save(operLog);
if ((Objects.equals(deviceType, "2") || Objects.equals(deviceType, "5")) && Objects.nonNull(operLog.getId())) {
DcPublishManage dcPublishManage = new DcPublishManage();
if (Objects.equals(state, "0") && Objects.equals(String.valueOf(((AjaxResult) jsonResult).get("code")), "200")) {
dcPublishManage.setPublishStatus(1);//发布状态1-成功2-失败
} else {
dcPublishManage.setPublishStatus(2);//发布状态1-成功2-失败
}
if (loginUser != null) {
dcPublishManage.setPublisher(loginUser.getUsername());//发布人
} else {
dcPublishManage.setPublisher("系统定时调用");//发布人
}
dcPublishManage.setPublishTime(new Date());//发布时间
dcPublishManage.setCreateTime(new Date());//创建时间
dcPublishManage.setLogId(Long.valueOf(operLog.getId()));//发布的如果的情报板传对应id
if (Objects.equals(deviceType, "2")) {
dcPublishManage.setPublishChannels(4);
} else {
dcPublishManage.setPublishChannels(7);
}
dcPublishManage.setContentDetails(remark.toString());
dcPublishManageService.insertDcPublishManage(dcPublishManage);
}
} else if (operUrl.contains("functions")) {

2
zc-business/src/main/java/com/zc/business/service/impl/DcEventServiceImpl.java

@ -219,7 +219,7 @@ public class DcEventServiceImpl extends ServiceImpl<DcEventMapper, DcEvent> impl
//TODO 插入多个收费站
if (dcEvent.getDcEventTrafficControl().getFacilityIds().length == 1) {//facilityIds==1 说明只选择了一个收费站
if (dcEventId != null) {//不等于空 事件处置页面 修改
if (dcEventId != null && !dcEventId.equals("")) {//不等于空 事件处置页面 修改
dcEventMapper.deleteDcEventById(uuid);//删除添加的事件主类
DcEvent dcEvent1 = new DcEvent();
dcEvent1.setId(dcEventId);//事件id

Loading…
Cancel
Save