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