From af107f8697ed128acfe7fca372ca365ac597d6cf Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期一, 23 六月 2025 09:24:20 +0800
Subject: [PATCH] 2025-06-23 设备台账,设备报修接口开发

---
 src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java    |   65 +++++++
 src/main/java/com/ruoyi/device/pojo/DeviceLedger.java                    |   98 ++++++++++
 src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java |   65 +++++++
 src/main/java/com/ruoyi/device/mapper/DeviceLedgerMapper.java            |   18 ++
 src/main/java/com/ruoyi/device/dto/DeviceLedgerExeclDto.java             |   93 ++++++++++
 src/main/java/com/ruoyi/device/pojo/DeviceRepair.java                    |   68 +++++++
 src/main/java/com/ruoyi/device/service/IDeviceLedgerService.java         |   20 ++
 src/main/resources/mapper/device/DeviceLedgerMapper.xml                  |   68 +++++++
 src/main/java/com/ruoyi/common/config/IgnoreTableConfig.java             |    2 
 9 files changed, 497 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/common/config/IgnoreTableConfig.java b/src/main/java/com/ruoyi/common/config/IgnoreTableConfig.java
index fcb7a12..66f674a 100644
--- a/src/main/java/com/ruoyi/common/config/IgnoreTableConfig.java
+++ b/src/main/java/com/ruoyi/common/config/IgnoreTableConfig.java
@@ -33,5 +33,7 @@
         IGNORE_TABLES.add("sys_oper_log");
         IGNORE_TABLES.add("sys_user_dept");
         IGNORE_TABLES.add("sys_job_log");
+        IGNORE_TABLES.add("gen_table");
+        IGNORE_TABLES.add("gen_table_column");
     }
 }
diff --git a/src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java b/src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java
new file mode 100644
index 0000000..ea8dd73
--- /dev/null
+++ b/src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java
@@ -0,0 +1,65 @@
+package com.ruoyi.device.controller;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.device.pojo.DeviceLedger;
+import com.ruoyi.device.service.IDeviceLedgerService;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+
+@Api(tags = "璁惧鍙拌处绠$悊")
+@RequestMapping("/device/ledger")
+@RestController
+public class DeviceLedgerController {
+
+    @Autowired
+    private IDeviceLedgerService deviceLedgerService;
+
+    @ApiModelProperty("璁惧鍙拌处鍒楄〃")
+    @GetMapping("/page")
+    public AjaxResult page(Page page , DeviceLedger deviceLedger) {
+        return AjaxResult.success(deviceLedgerService.queryPage(page,deviceLedger));
+    }
+
+    @PostMapping()
+    @ApiModelProperty("娣诲姞璁惧鍙拌处")
+    public AjaxResult add(DeviceLedger deviceLedger) {
+
+        return deviceLedgerService.saveDeviceLedger(deviceLedger);
+    }
+
+    @ApiModelProperty("鏍规嵁id鏌ヨ璁惧鍙拌处")
+    @GetMapping("/{id}")
+    public AjaxResult detail(@PathVariable Long id) {
+        return AjaxResult.success(deviceLedgerService.getById(id));
+    }
+
+    @PutMapping ()
+    @ApiModelProperty("淇敼璁惧鍙拌处")
+    public AjaxResult update(DeviceLedger deviceLedger) {
+
+        return deviceLedgerService.updateDeviceLedger(deviceLedger);
+    }
+
+    @DeleteMapping("/{id}")
+    @ApiModelProperty("鍒犻櫎璁惧鍙拌处")
+    public AjaxResult delete(@PathVariable ArrayList<Long> ids) {
+        boolean b = deviceLedgerService.removeBatchByIds(ids);
+        if (!b) {
+            return AjaxResult.error("鍒犻櫎澶辫触");
+        }
+        return AjaxResult.success();
+    }
+
+    @GetMapping("export")
+    @ApiModelProperty("瀵煎嚭璁惧鍙拌处")
+    public void export(HttpServletResponse response, ArrayList<Long> ids) {
+         deviceLedgerService.export(response, ids);
+    }
+}
diff --git a/src/main/java/com/ruoyi/device/dto/DeviceLedgerExeclDto.java b/src/main/java/com/ruoyi/device/dto/DeviceLedgerExeclDto.java
new file mode 100644
index 0000000..6613c27
--- /dev/null
+++ b/src/main/java/com/ruoyi/device/dto/DeviceLedgerExeclDto.java
@@ -0,0 +1,93 @@
+package com.ruoyi.device.dto;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Data
+public class DeviceLedgerExeclDto {
+
+
+    /**
+     * 璁惧鍚嶇О
+     */
+    @Excel(name = "璁惧鍚嶇О")
+    private String deviceName;
+
+    /**
+     * 瑙勬牸鍨嬪彿
+     */
+    @Excel(name = "瑙勬牸鍨嬪彿")
+    private String deviceModel;
+
+    /**
+     * 渚涘簲鍟嗗悕绉�
+     */
+    @Excel(name = "渚涘簲鍟嗗悕绉�")
+    private String supplierName;
+
+    /**
+     * 鍗曚綅
+     */
+    @Excel(name = "鍗曚綅")
+    private String unit;
+
+    /**
+     * 鏁伴噺
+     */
+    @Excel(name = "鏁伴噺")
+    private BigDecimal number;
+
+    /**
+     * 鍚◣鍗曚环
+     */
+    @Excel(name = "鍚◣鍗曚环")
+    private BigDecimal taxIncludingPriceUnit;
+
+    /**
+     * 鍚◣鎬讳环
+     */
+    @Excel(name = "鍚◣鎬讳环")
+    private BigDecimal taxIncludingPriceTotal;
+
+    /**
+     * 绋庣巼
+     */
+    @Excel(name = "绋庣巼")
+    private BigDecimal taxRate;
+
+    /**
+     * 涓嶅惈绋庢�讳环
+     */
+    @Excel(name = "涓嶅惈绋庢�讳环")
+    private BigDecimal unTaxIncludingPriceTotal;
+
+    /**
+     * 褰曞叆鏃堕棿
+     *
+     */
+    @Excel(name = "褰曞叆鏃堕棿")
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+
+
+    /**
+     * 褰曞叆浜�
+     */
+    @Excel(name = "褰曞叆浜�")
+    @TableField(fill = FieldFill.INSERT)
+    private String createUser;
+
+
+
+    /**
+     * 绉熸埛ID
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Long tenantId;
+}
diff --git a/src/main/java/com/ruoyi/device/mapper/DeviceLedgerMapper.java b/src/main/java/com/ruoyi/device/mapper/DeviceLedgerMapper.java
new file mode 100644
index 0000000..1a9ed7c
--- /dev/null
+++ b/src/main/java/com/ruoyi/device/mapper/DeviceLedgerMapper.java
@@ -0,0 +1,18 @@
+package com.ruoyi.device.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.device.dto.DeviceLedgerExeclDto;
+import com.ruoyi.device.pojo.DeviceLedger;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface DeviceLedgerMapper extends BaseMapper<DeviceLedger> {
+
+    IPage<DeviceLedger> queryPage(Page page, DeviceLedger deviceLedger);
+
+    List<DeviceLedgerExeclDto> deviceLedgerExportList(DeviceLedger deviceLedger);
+}
diff --git a/src/main/java/com/ruoyi/device/pojo/DeviceLedger.java b/src/main/java/com/ruoyi/device/pojo/DeviceLedger.java
new file mode 100644
index 0000000..f9c05b4
--- /dev/null
+++ b/src/main/java/com/ruoyi/device/pojo/DeviceLedger.java
@@ -0,0 +1,98 @@
+package com.ruoyi.device.pojo;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * 璁惧鍙拌处瀹炰綋绫�
+ */
+@Data
+@TableName("device_ledger")
+public class DeviceLedger {
+
+    /**
+     * 涓婚敭ID锛岃嚜澧�
+     */
+
+    private Long id;
+
+    /**
+     * 璁惧鍚嶇О
+     */
+    private String deviceName;
+
+    /**
+     * 瑙勬牸鍨嬪彿
+     */
+    private String deviceModel;
+
+    /**
+     * 渚涘簲鍟嗗悕绉�
+     */
+    private String supplierName;
+
+    /**
+     * 鍗曚綅
+     */
+    private String unit;
+
+    /**
+     * 鏁伴噺
+     */
+    private BigDecimal number;
+
+    /**
+     * 鍚◣鍗曚环
+     */
+    private BigDecimal taxIncludingPriceUnit;
+
+    /**
+     * 鍚◣鎬讳环
+     */
+    private BigDecimal taxIncludingPriceTotal;
+
+    /**
+     * 绋庣巼
+     */
+    private BigDecimal taxRate;
+
+    /**
+     * 涓嶅惈绋庢�讳环
+     */
+    private BigDecimal unTaxIncludingPriceTotal;
+
+    /**
+     * 褰曞叆鏃堕棿
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    /**
+     * 鏇存柊鏃堕棿
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    private LocalDateTime updateTime;
+
+    /**
+     * 褰曞叆浜�
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private String createUser;
+
+    /**
+     * 鏇存柊浜�
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    private String updateUser;
+
+    /**
+     * 绉熸埛ID
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Long tenantId;
+}
diff --git a/src/main/java/com/ruoyi/device/pojo/DeviceRepair.java b/src/main/java/com/ruoyi/device/pojo/DeviceRepair.java
new file mode 100644
index 0000000..3d68c65
--- /dev/null
+++ b/src/main/java/com/ruoyi/device/pojo/DeviceRepair.java
@@ -0,0 +1,68 @@
+package com.ruoyi.device.pojo;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import nonapi.io.github.classgraph.json.Id;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+@Data
+@TableName("device_repair")
+public class DeviceRepair {
+
+    private Long id;
+
+    @TableField(value = "device_ledger_id")
+    @ApiModelProperty("璁惧鍙拌处id")
+    private String deviceLedgerId;
+
+    @TableField(value = "repair_time")
+    @ApiModelProperty("缁翠慨鏃堕棿")
+    private Date repairTime;
+
+    @TableField(value = "repair_name")
+    @ApiModelProperty("缁翠慨浜�")
+    private String repairName;
+
+    @TableField(value = "remark")
+    @ApiModelProperty("澶囨敞")
+    private String remark;
+
+    @TableField(value = "maintenance_name")
+    @ApiModelProperty("缁翠慨浜�")
+    private String maintenanceName;
+
+    @TableField(value = "maintenance_time")
+    @ApiModelProperty("缁翠慨鏃堕棿")
+    private LocalDateTime maintenanceTime;
+
+    @TableField(value = "maintenance_result")
+    @ApiModelProperty("缁翠慨缁撴灉")
+    private String maintenanceResult;
+
+    @ApiModelProperty("鐘舵��")
+    private Integer status;
+
+    @TableField(value = "create_time" ,fill = FieldFill.INSERT)
+    @ApiModelProperty("鍒涘缓鏃堕棿")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty("淇敼鏃堕棿")
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty("鍒涘缓浜�")
+    private String createUser;
+
+    @ApiModelProperty("淇敼浜�")
+    private String updateUser;
+
+    @ApiModelProperty("绉熸埛id")
+    private Long tenantId;
+
+}
diff --git a/src/main/java/com/ruoyi/device/service/IDeviceLedgerService.java b/src/main/java/com/ruoyi/device/service/IDeviceLedgerService.java
new file mode 100644
index 0000000..2e07f03
--- /dev/null
+++ b/src/main/java/com/ruoyi/device/service/IDeviceLedgerService.java
@@ -0,0 +1,20 @@
+package com.ruoyi.device.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.device.pojo.DeviceLedger;
+import com.ruoyi.framework.web.domain.AjaxResult;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+
+public interface IDeviceLedgerService  extends IService<DeviceLedger> {
+    IPage<DeviceLedger> queryPage(Page page, DeviceLedger deviceLedger);
+
+    AjaxResult saveDeviceLedger(DeviceLedger deviceLedger);
+
+    AjaxResult updateDeviceLedger(DeviceLedger deviceLedger);
+
+    void export(HttpServletResponse response, ArrayList<Long> ids);
+}
diff --git a/src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java b/src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java
new file mode 100644
index 0000000..ce4accd
--- /dev/null
+++ b/src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java
@@ -0,0 +1,65 @@
+package com.ruoyi.device.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.bean.BeanUtils;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.device.dto.DeviceLedgerExeclDto;
+import com.ruoyi.device.mapper.DeviceLedgerMapper;
+import com.ruoyi.device.pojo.DeviceLedger;
+import com.ruoyi.device.service.IDeviceLedgerService;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.List;
+
+@Service
+@AllArgsConstructor
+@Slf4j
+public class DeviceLedgerServiceImpl  extends ServiceImpl<DeviceLedgerMapper, DeviceLedger> implements IDeviceLedgerService {
+
+    @Autowired
+    private DeviceLedgerMapper deviceLedgerMapper;
+
+    @Override
+    public IPage<DeviceLedger> queryPage(Page page, DeviceLedger deviceLedger) {
+
+        return deviceLedgerMapper.queryPage(page, deviceLedger);
+    }
+
+    @Override
+    public AjaxResult saveDeviceLedger(DeviceLedger deviceLedger) {
+        boolean save = this.save(deviceLedger);
+        if (save){
+            return AjaxResult.success();
+        }
+        return AjaxResult.error();
+    }
+
+    @Override
+    public AjaxResult updateDeviceLedger(DeviceLedger deviceLedger) {
+        if (this.updateById(deviceLedger)) {
+            return AjaxResult.success();
+        }
+        return AjaxResult.error();
+    }
+
+    @Override
+    public void export(HttpServletResponse response, ArrayList<Long> ids) {
+        List<DeviceLedger> supplierManageList = deviceLedgerMapper.selectBatchIds(ids);
+        ArrayList<DeviceLedgerExeclDto> deviceLedgerExeclDtos = new ArrayList<>();
+        supplierManageList.stream().forEach(deviceLedger -> {
+            DeviceLedgerExeclDto deviceLedgerExeclDto = new DeviceLedgerExeclDto();
+            BeanUtils.copyProperties(deviceLedger,deviceLedgerExeclDto);
+            deviceLedgerExeclDtos.add(deviceLedgerExeclDto);
+        });
+        ExcelUtil<DeviceLedgerExeclDto> util = new ExcelUtil<DeviceLedgerExeclDto>(DeviceLedgerExeclDto.class);
+        util.exportExcel(response, deviceLedgerExeclDtos, "璁惧鍙拌处瀵煎嚭");
+    }
+}
diff --git a/src/main/resources/mapper/device/DeviceLedgerMapper.xml b/src/main/resources/mapper/device/DeviceLedgerMapper.xml
new file mode 100644
index 0000000..43b7472
--- /dev/null
+++ b/src/main/resources/mapper/device/DeviceLedgerMapper.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.ruoyi.device.mapper.DeviceLedgerMapper">
+
+    <select id="queryPage" resultType="com.ruoyi.device.pojo.DeviceLedger">
+        SELECT
+        id,
+        device_name AS deviceName,
+        device_model AS deviceModel,
+        supplier_name AS supplierName,
+        unit,
+        number,
+        tax_including_price_unit AS taxIncludingPriceUnit,
+        tax_including_price_total AS taxIncludingPriceTotal,
+        tax_rate AS taxRate,
+        un_tax_including_price_total AS unTaxIncludingPriceTotal,
+        create_time AS createTime,
+        update_time AS updateTime,
+        create_user AS createUser,
+        update_user AS updateUser,
+        tenant_id AS tenantId
+        FROM device_ledger
+        <where>
+            <!-- 璁惧鍚嶇О -->
+            <if test="deviceLedger.deviceName != null and deviceLedger.deviceName != ''">
+                AND device_name LIKE CONCAT('%', #{deviceLedger.deviceName}, '%')
+            </if>
+
+            <!-- 瑙勬牸鍨嬪彿 -->
+            <if test="deviceLedger.deviceModel != null and deviceLedger.deviceModel != ''">
+                AND device_model LIKE CONCAT('%', #{deviceLedger.deviceModel}, '%')
+            </if>
+
+            <!-- 渚涘簲鍟嗗悕绉� -->
+            <if test="deviceLedger.supplierName != null and deviceLedger.supplierName != ''">
+                AND supplier_name LIKE CONCAT('%', #{deviceLedger.supplierName}, '%')
+            </if>
+
+            <!-- 鍗曚綅 -->
+            <if test="deviceLedger.unit != null and deviceLedger.unit != ''">
+                AND unit = #{deviceLedger.unit}
+            </if>
+
+            <!-- 褰曞叆浜� -->
+            <if test="deviceLedger.createUser != null and deviceLedger.createUser != ''">
+                AND create_user LIKE CONCAT('%', #{deviceLedger.createUser}, '%')
+            </if>
+
+            <!-- 鏇存柊浜� -->
+            <if test="deviceLedger.updateUser != null and deviceLedger.updateUser != ''">
+                AND update_user LIKE CONCAT('%', #{deviceLedger.updateUser}, '%')
+            </if>
+
+            <!-- 绉熸埛ID -->
+            <if test="deviceLedger.tenantId != null">
+                AND tenant_id = #{deviceLedger.tenantId}
+            </if>
+        </where>
+        ORDER BY create_time DESC
+    </select>
+    <select id="deviceLedgerExportList" resultType="com.ruoyi.device.dto.DeviceLedgerExeclDto">
+
+    </select>
+
+</mapper>

--
Gitblit v1.9.3