zss
2025-09-22 26e2b3964f08031dfe6e70a82c60ad08530b28f7
设备运行管理
已修改4个文件
61 ■■■■■ 文件已修改
src/main/java/com/ruoyi/device/dto/DeviceLedgerDto.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/device/pojo/DeviceLedger.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/device/DeviceLedgerMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
}
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;
}
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();
        }
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,