From 26e2b3964f08031dfe6e70a82c60ad08530b28f7 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期一, 22 九月 2025 16:56:13 +0800
Subject: [PATCH] 设备运行管理

---
 src/main/java/com/ruoyi/device/pojo/DeviceLedger.java                    |   23 +++++++++++
 src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java |   10 +++++
 src/main/java/com/ruoyi/device/dto/DeviceLedgerDto.java                  |   23 +++++++++++
 src/main/resources/mapper/device/DeviceLedgerMapper.xml                  |    5 ++
 4 files changed, 61 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/device/dto/DeviceLedgerDto.java b/src/main/java/com/ruoyi/device/dto/DeviceLedgerDto.java
index 65faef8..26bdc91 100644
--- a/src/main/java/com/ruoyi/device/dto/DeviceLedgerDto.java
+++ b/src/main/java/com/ruoyi/device/dto/DeviceLedgerDto.java
@@ -5,10 +5,12 @@
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.dto.DateQueryDto;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 
 /**
@@ -99,4 +101,25 @@
      * 绉熸埛ID
      */
     private Long tenantId;
+
+    @ApiModelProperty("鐘舵��")
+    private String status;
+
+    @ApiModelProperty("璁″垝杩愯鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private LocalDate planRuntimeTime;
+
+    @ApiModelProperty("寮�濮嬭繍琛屾椂闂�")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime startRuntimeTime;
+
+    @ApiModelProperty("缁撴潫杩愯鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime endRuntimeTime;
+
+    @ApiModelProperty("杩愯鏃堕暱")
+    private String runtimeDuration;
 }
diff --git a/src/main/java/com/ruoyi/device/pojo/DeviceLedger.java b/src/main/java/com/ruoyi/device/pojo/DeviceLedger.java
index 01233be..caa8f32 100644
--- a/src/main/java/com/ruoyi/device/pojo/DeviceLedger.java
+++ b/src/main/java/com/ruoyi/device/pojo/DeviceLedger.java
@@ -108,4 +108,27 @@
      */
     @TableField(fill = FieldFill.INSERT)
     private Long tenantId;
+
+    /* ***************************     杩愯绠$悊        ***************************   */
+
+    @ApiModelProperty("鐘舵��")
+    private String status;
+
+    @ApiModelProperty("璁″垝杩愯鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private LocalDate planRuntimeTime;
+
+    @ApiModelProperty("寮�濮嬭繍琛屾椂闂�")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime startRuntimeTime;
+
+    @ApiModelProperty("缁撴潫杩愯鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime endRuntimeTime;
+
+    @ApiModelProperty("杩愯鏃堕暱")
+    private String runtimeDuration;
 }
diff --git a/src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java b/src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java
index 0687aad..31c2f0e 100644
--- a/src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.utils.SecurityUtils;
@@ -23,6 +24,7 @@
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
+import java.time.ZoneOffset;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -59,6 +61,14 @@
 
     @Override
     public AjaxResult updateDeviceLedger(DeviceLedger deviceLedger) {
+        if (ObjectUtils.isNotNull(deviceLedger.getStartRuntimeTime()) && ObjectUtils.isNotNull(deviceLedger.getEndRuntimeTime())){
+            //璁$畻杩愯鏃堕暱
+            long start = deviceLedger.getStartRuntimeTime().toEpochSecond(ZoneOffset.UTC) * 1000;
+            long end = deviceLedger.getEndRuntimeTime().toEpochSecond(ZoneOffset.UTC) * 1000;
+            long diffMillis = Math.abs(end - start);
+            double time = diffMillis / (1000.0 * 60 * 60);// 姣 -> 绉� -> 鍒嗛挓 -> 灏忔椂
+            deviceLedger.setRuntimeDuration(time+"h");
+        }
         if (this.updateById(deviceLedger)) {
             return AjaxResult.success();
         }
diff --git a/src/main/resources/mapper/device/DeviceLedgerMapper.xml b/src/main/resources/mapper/device/DeviceLedgerMapper.xml
index b2a849f..6fdef39 100644
--- a/src/main/resources/mapper/device/DeviceLedgerMapper.xml
+++ b/src/main/resources/mapper/device/DeviceLedgerMapper.xml
@@ -13,6 +13,11 @@
         dl.supplier_name,
         dl.unit,
         dl.number,
+        dl.status,
+        dl.planRuntimeTime,
+        dl.startRuntimeTime,
+        dl.endRuntimeTime,
+        dl.runtimeDuration,
         dl.tax_including_price_unit,
         dl.tax_including_price_total,
         dl.tax_rate,

--
Gitblit v1.9.3