liyong
昨天 af107f8697ed128acfe7fca372ca365ac597d6cf
2025-06-23 设备台账,设备报修接口开发
已修改1个文件
已添加8个文件
497 ■■■■■ 文件已修改
src/main/java/com/ruoyi/common/config/IgnoreTableConfig.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/device/dto/DeviceLedgerExeclDto.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/device/mapper/DeviceLedgerMapper.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/device/pojo/DeviceLedger.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/device/pojo/DeviceRepair.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/device/service/IDeviceLedgerService.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/device/DeviceLedgerMapper.xml 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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");
    }
}
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);
    }
}
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;
}
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);
}
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;
}
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;
}
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);
}
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, "设备台账导出");
    }
}
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>