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