From bb5ce8ef60a63815f222716c40111bd045464689 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期二, 30 九月 2025 18:32:10 +0800 Subject: [PATCH] 资产维修记录列表查询接口 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetRepairRecordController.java | 51 +++++++++++++++++++++++++ ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetRepairRecordServiceImpl.java | 10 +++++ ruoyi-system/src/main/resources/mapper/system/AssetRepairRecordMapper.xml | 28 ++++++++++++++ ruoyi-system/src/main/java/com/ruoyi/system/mapper/AssetRepairRecordMapper.java | 12 ++++++ ruoyi-system/src/main/java/com/ruoyi/system/service/AssetRepairRecordService.java | 10 +++++ ruoyi-system/src/main/java/com/ruoyi/system/model/AssetRepairRecord.java | 7 +++ 6 files changed, 117 insertions(+), 1 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetRepairRecordController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetRepairRecordController.java index 4d9a524..4d6acc7 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetRepairRecordController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetRepairRecordController.java @@ -1,6 +1,22 @@ package com.ruoyi.web.controller.api; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.system.constants.AssetDeptConstant; +import com.ruoyi.system.query.AssetRepairRecordPageQuery; +import com.ruoyi.system.service.AssetRepairRecordService; +import com.ruoyi.system.service.ISysUserService; +import com.ruoyi.system.vo.asset.AssetRepairRecordPageVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.context.annotation.Lazy; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -13,8 +29,43 @@ * @since 2025-09-15 */ @RestController +@Api(tags = {"资产维修记录相关接口"}) +@RequiredArgsConstructor(onConstructor_ = {@Lazy}) @RequestMapping("/asset-repair-record") public class AssetRepairRecordController { + private final AssetRepairRecordService assetRepairRecordService; + private final ISysUserService sysUserService; + + @ApiOperation("获取维修记录分页列表") + @PostMapping("/page-list") + public R<IPage<AssetRepairRecordPageVO>> getRepairRecordPageList(@RequestBody AssetRepairRecordPageQuery pageQuery) { + // 数据权限:超级管理员/资产管理部查看所有数据,其他部门查看当前及下级部门的数据 + Long userId = SecurityUtils.getUserId(); + boolean isAdmin = SecurityUtils.isAdmin(userId); + + if (!isAdmin) { + try { + // 获取当前用户的部门名称 + String deptName = sysUserService.selectUserById(userId).getDept().getDeptName(); + + // 非超级管理员且非资产管理部,设置部门权限 + if (!AssetDeptConstant.ASSET_DEPARTMENT_NAME.equals(deptName)) { + pageQuery.setDeptId(Integer.valueOf(SecurityUtils.getLoginUser().getDeptId())); + } + } catch (Exception e) { + // 如果获取部门信息失败,默认设置部门权限 + try { + pageQuery.setDeptId(Integer.valueOf(SecurityUtils.getLoginUser().getDeptId())); + } catch (Exception ex) { + // ignore parse, leave null if cannot parse + } + } + } + + IPage<AssetRepairRecordPageVO> page = assetRepairRecordService.getRepairRecordPageList(pageQuery); + return R.ok(page); + } + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/AssetRepairRecordMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/AssetRepairRecordMapper.java index 807fb33..43e8c4e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/AssetRepairRecordMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/AssetRepairRecordMapper.java @@ -1,11 +1,15 @@ package com.ruoyi.system.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.common.basic.PageInfo; import com.ruoyi.system.model.AssetRepairRecord; +import com.ruoyi.system.query.AssetRepairRecordPageQuery; import com.ruoyi.system.query.AssetRepairRequestListQuery; import com.ruoyi.system.query.AssetStatisticsListQuery; import com.ruoyi.system.vo.AssetRepairRequestVO; +import com.ruoyi.system.vo.asset.AssetRepairRecordPageVO; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -22,4 +26,12 @@ List<AssetRepairRequestVO> pageList(@Param("query") AssetRepairRequestListQuery query, @Param("pageInfo") PageInfo<AssetRepairRequestVO> pageInfo); + /** + * 分页查询维修记录列表 + * @param page 分页参数 + * @param pageQuery 查询条件 + * @return 分页结果 + */ + IPage<AssetRepairRecordPageVO> getRepairRecordPageList(Page<AssetRepairRecordPageVO> page, @Param("query") AssetRepairRecordPageQuery pageQuery); + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/AssetRepairRecord.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/AssetRepairRecord.java index d63b2c2..42b6d44 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/model/AssetRepairRecord.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/AssetRepairRecord.java @@ -10,6 +10,7 @@ import lombok.EqualsAndHashCode; import java.io.Serializable; +import java.math.BigDecimal; import java.time.LocalDateTime; /** @@ -36,7 +37,7 @@ @TableField("repair_request_id") private Integer repairRequestId; - @ApiModelProperty(value = "报修单号") + @ApiModelProperty(value = "维修单号") @TableField("repair_no") private String repairNo; @@ -68,6 +69,10 @@ @TableField("repair_status") private Boolean repairStatus; + @ApiModelProperty(value = "维修费用") + @TableField("total_fee") + private BigDecimal totalFee; + @ApiModelProperty(value = "创建时间") @TableField("create_time") private LocalDateTime createTime; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/AssetRepairRecordService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/AssetRepairRecordService.java index 240be6c..0ea19c3 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/AssetRepairRecordService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/AssetRepairRecordService.java @@ -1,12 +1,15 @@ package com.ruoyi.system.service; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.model.AssetRepairRecord; +import com.ruoyi.system.query.AssetRepairRecordPageQuery; import com.ruoyi.system.query.AssetRepairRequestListQuery; import com.ruoyi.system.query.AssetStatisticsListQuery; import com.ruoyi.system.vo.AssetRepairRequestVO; import com.ruoyi.system.vo.AssetStatisticsVO; +import com.ruoyi.system.vo.asset.AssetRepairRecordPageVO; /** * <p> @@ -20,4 +23,11 @@ PageInfo<AssetRepairRequestVO> pageList(AssetRepairRequestListQuery query); + /** + * 获取维修记录分页列表 + * @param pageQuery 查询参数 + * @return 分页结果 + */ + IPage<AssetRepairRecordPageVO> getRepairRecordPageList(AssetRepairRecordPageQuery pageQuery); + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetRepairRecordServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetRepairRecordServiceImpl.java index c5acfe3..a1ebac1 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetRepairRecordServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetRepairRecordServiceImpl.java @@ -1,16 +1,20 @@ package com.ruoyi.system.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.basic.PageInfo; import com.ruoyi.system.mapper.AssetRepairRecordMapper; import com.ruoyi.system.model.AssetRepairRecord; import com.ruoyi.system.model.AssetType; +import com.ruoyi.system.query.AssetRepairRecordPageQuery; import com.ruoyi.system.query.AssetRepairRequestListQuery; import com.ruoyi.system.query.AssetStatisticsListQuery; import com.ruoyi.system.service.AssetRepairRecordService; import com.ruoyi.system.vo.AssetIdleListVO; import com.ruoyi.system.vo.AssetRepairRequestVO; import com.ruoyi.system.vo.AssetStatisticsVO; +import com.ruoyi.system.vo.asset.AssetRepairRecordPageVO; import org.springframework.stereotype.Service; import java.util.List; @@ -35,4 +39,10 @@ pageInfo.setRecords(list); return pageInfo; } + + @Override + public IPage<AssetRepairRecordPageVO> getRepairRecordPageList(AssetRepairRecordPageQuery pageQuery) { + Page<AssetRepairRecordPageVO> page = new Page<>(pageQuery.getPageNum(), pageQuery.getPageSize()); + return this.baseMapper.getRepairRecordPageList(page, pageQuery); + } } diff --git a/ruoyi-system/src/main/resources/mapper/system/AssetRepairRecordMapper.xml b/ruoyi-system/src/main/resources/mapper/system/AssetRepairRecordMapper.xml index a1b48a1..facab9f 100644 --- a/ruoyi-system/src/main/resources/mapper/system/AssetRepairRecordMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/AssetRepairRecordMapper.xml @@ -36,4 +36,32 @@ order by t1.repair_status, t1.urgency_level asc </select> + <!-- 分页查询维修记录列表 --> + <select id="getRepairRecordPageList" resultType="com.ruoyi.system.vo.asset.AssetRepairRecordPageVO"> + SELECT + arr.repair_no AS repairNo, + arr.title, + pt.type_name AS assetTypeFirstLevel, + ct.type_name AS assetTypeSecondLevel, + u.nick_name AS reporterName, + arr.total_fee AS totalFee, + arr.repair_time AS repairTime, + arr.repair_status AS repairStatus + FROM asset_repair_record arr + LEFT JOIN asset_repair_request req ON arr.repair_request_id = req.id + LEFT JOIN sys_user u ON req.reporter_id = u.user_id + LEFT JOIN asset_type ct ON arr.asset_type_id = ct.id + LEFT JOIN asset_type pt ON ct.parent_id = pt.id + LEFT JOIN t_dept d ON u.dept_id = d.id + WHERE arr.disabled = 0 + <if test="query.keyword != null and query.keyword != ''"> + AND (arr.repair_no LIKE CONCAT('%', #{query.keyword}, '%') + OR arr.title LIKE CONCAT('%', #{query.keyword}, '%')) + </if> + <if test="query.deptId != null"> + AND (d.id = #{query.deptId} OR FIND_IN_SET(#{query.deptId}, d.parent_id)) + </if> + ORDER BY arr.create_time DESC + </select> + </mapper> -- Gitblit v1.7.1