Forráskód Böngészése

设备启停时记录日志

lingpeng.li 5 hónapja
szülő
commit
cc9e86ea47

+ 70 - 0
jeecg-module-gather/src/main/java/org/jeecg/modules/device/entity/DeviceOperationLog.java

@@ -0,0 +1,70 @@
+package org.jeecg.modules.device.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description: 设备启动停止记录日志
+ * @Author: llp
+ * @Date:   2024-12-13
+ * @Version: V1.0
+ */
+@Data
+@TableName("device_operation_log")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="device_operation_log对象", description="设备启动停止记录日志")
+public class DeviceOperationLog implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**主键*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "主键")
+    private String id;
+	/**创建人*/
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+	/**创建日期*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "创建日期")
+    private Date createTime;
+	/**更新人*/
+    @ApiModelProperty(value = "更新人")
+    private String updateBy;
+	/**更新日期*/
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "更新日期")
+    private Date updateTime;
+	/**设备名称*/
+    @ApiModelProperty(value = "设备名称")
+    private String deviceName;
+	/**操作类型*/
+	@Excel(name = "操作类型:启动/停止", width = 15)
+    @ApiModelProperty(value = "操作类型:启动/停止")
+    private String operationType;
+	/**时间*/
+	@Excel(name = "操作时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "操作时间")
+    private Date operationTime;
+
+    public DeviceOperationLog() {
+    }
+
+
+}

+ 13 - 0
jeecg-module-gather/src/main/java/org/jeecg/modules/device/mapper/DeviceOperationLogMapper.java

@@ -0,0 +1,13 @@
+package org.jeecg.modules.device.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.device.entity.DeviceOperationLog;
+
+/**
+ * @Description: 设备启动停止记录日志
+ * @Author: jeecg-boot
+ * @Date:   2024-12-13
+ * @Version: V1.0
+ */
+public interface DeviceOperationLogMapper extends BaseMapper<DeviceOperationLog> {
+}

+ 9 - 0
jeecg-module-gather/src/main/java/org/jeecg/modules/device/service/IDeviceOperationLogService.java

@@ -0,0 +1,9 @@
+package org.jeecg.modules.device.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.device.entity.DeviceOperationLog;
+
+public interface IDeviceOperationLogService extends IService<DeviceOperationLog> {
+
+
+}

+ 26 - 0
jeecg-module-gather/src/main/java/org/jeecg/modules/device/service/impl/IDeviceOperationLogServiceImpl.java

@@ -0,0 +1,26 @@
+package org.jeecg.modules.device.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.modules.device.entity.DeviceOperationLog;
+import org.jeecg.modules.device.mapper.DeviceOperationLogMapper;
+import org.jeecg.modules.device.service.IDeviceOperationLogService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+
+
+@Service
+public class IDeviceOperationLogServiceImpl extends ServiceImpl<DeviceOperationLogMapper, DeviceOperationLog> implements IDeviceOperationLogService {
+
+
+    // 添加记录日志的方法
+    public void logDeviceOperation(String deviceName, String operationType, Date operationTime) {
+        DeviceOperationLog deviceOperationLog = new DeviceOperationLog();
+        deviceOperationLog.setDeviceName(deviceName);
+        deviceOperationLog.setOperationType(operationType);
+        deviceOperationLog.setOperationTime(operationTime);
+        baseMapper.insert(deviceOperationLog);
+    }
+
+}

+ 10 - 0
jeecg-module-gather/src/main/java/org/jeecg/modules/fpgJob/LeanModelStatistics.java

@@ -7,6 +7,7 @@ import org.jeecg.common.util.DateUtils;
 import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.device.entity.DeviceInformation;
 import org.jeecg.modules.device.service.IDeviceInformationService;
+import org.jeecg.modules.device.service.impl.IDeviceOperationLogServiceImpl;
 import org.jeecg.modules.devicePoint.service.IDevicePointService;
 import org.jeecg.modules.fpgJob.entity.FpgLeanModel;
 import org.jeecg.modules.fpgJob.service.IFpgLeanModelService;
@@ -66,6 +67,8 @@ public class LeanModelStatistics {
     @Autowired
     MongoTemplate mongoTemplate;
 
+    @Autowired
+    private IDeviceOperationLogServiceImpl deviceOperationLogService;
 
     /**
      * 精益模型统计数据
@@ -174,8 +177,15 @@ public class LeanModelStatistics {
                 // 比较大小
                 int result = compareStringWithBigDecimal(systemVariable.getDefaultValue(), latestRecord.getRunCurrent());
                 if (result > 0) {
+                    if (!"1".equals(deviceInformation.getStatus())) { // 只有状态变更时记录日志
+                        deviceOperationLogService.logDeviceOperation(deviceInformation.getDeviceTitle(), "启动", latestRecord.getCreateTime());
+                    }
                     deviceInformation.setStatus("1");
                 } else if (result < 0) {
+
+                    if (!"0".equals(deviceInformation.getStatus())) { // 只有状态变更时记录日志
+                        deviceOperationLogService.logDeviceOperation(deviceInformation.getDeviceTitle(), "停止", latestRecord.getCreateTime());
+                    }
                     deviceInformation.setStatus("0");
                 }
                 // 只有在 systemVariable 不为空时才进行更新操作