From 0d82e9bb89c8569847537f1ce8b9d994bbc4099b Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期一, 29 九月 2025 19:57:12 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetRepairRequestController.java   |   52 +++++++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalTodoController.java       |    7 +
 ruoyi-system/src/main/java/com/ruoyi/system/model/AssetHouseInspectionDetail.java          |    3 
 ruoyi-system/src/main/java/com/ruoyi/system/query/AsseIdleListQuery.java                   |   22 +++
 ruoyi-system/src/main/java/com/ruoyi/system/query/AssetRepairRequestListQuery.java         |   21 +++
 ruoyi-system/src/main/java/com/ruoyi/system/service/AssetTypeService.java                  |    6 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetRepairRecordServiceImpl.java |   18 ++
 ruoyi-system/src/main/resources/mapper/system/AssetRepairRecordMapper.xml                  |   10 +
 ruoyi-system/src/main/java/com/ruoyi/system/vo/AssetRepairRequestVO.java                   |   16 ++
 ruoyi-system/src/main/java/com/ruoyi/system/vo/AssetIdleListVO.java                        |   59 ++++++++
 ruoyi-system/src/main/java/com/ruoyi/system/vo/AssetIdleVO.java                            |   23 +++
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetTypeServiceImpl.java         |   27 +++
 ruoyi-system/src/main/java/com/ruoyi/system/vo/AssetStatisticsDetailVO.java                |    2 
 ruoyi-system/src/main/resources/mapper/system/OaApprovalApplicationAssetItemMapper.xml     |    2 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java  |    7 +
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/AssetTypeMapper.java                    |    4 
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/AssetRepairRecordMapper.java            |    9 +
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetStatisticsController.java      |   44 +++++
 ruoyi-system/src/main/java/com/ruoyi/system/service/AssetRepairRecordService.java          |    7 +
 ruoyi-system/src/main/resources/mapper/system/AssetTypeMapper.xml                          |   46 ++++++
 20 files changed, 379 insertions(+), 6 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetRepairRequestController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetRepairRequestController.java
index 3e88256..0a44643 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetRepairRequestController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetRepairRequestController.java
@@ -1,8 +1,30 @@
 package com.ruoyi.web.controller.api;
 
 
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.domain.entity.TDept;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.system.model.AssetMain;
+import com.ruoyi.system.query.AssetRepairRequestListQuery;
+import com.ruoyi.system.query.AssetStatisticsListQuery;
+import com.ruoyi.system.service.AssetMainService;
+import com.ruoyi.system.service.AssetRepairRecordService;
+import com.ruoyi.system.service.TDeptService;
+import com.ruoyi.system.vo.AssetRepairRequestVO;
+import com.ruoyi.system.vo.AssetStatisticsVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+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;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -14,7 +36,35 @@
  */
 @RestController
 @RequestMapping("/asset-repair-request")
-public class AssetRepairRequestController {
+@Api(tags = {"资产报修"})
 
+public class AssetRepairRequestController {
+    @Resource
+    private AssetRepairRecordService assetRepairRecordService;
+    @Autowired
+    private TokenService tokenService;
+    @Autowired
+    private TDeptService deptService;
+    @Resource
+    private AssetMainService assetMainService;
+
+    @ApiOperation("资产报修分页列表")
+    @PostMapping("/pageList")
+    public R<PageInfo<AssetRepairRequestVO>> pageList(@RequestBody AssetRepairRequestListQuery query) {
+        String deptId = tokenService.getLoginUser().getDeptId();
+        List<Integer> deptIds = deptService.getAllSubDeptIds(deptId);
+        if (deptIds.isEmpty()) {
+            return R.ok(new PageInfo<>());
+        } else {
+            query.setDeptIds(deptIds);
+        }
+        List<Integer> assetMainIds = assetMainService.lambdaQuery().in(AssetMain::getOwnershipDeptId, deptIds).list()
+                .stream().map(AssetMain::getId).collect(Collectors.toList());
+        if (assetMainIds.isEmpty()){
+            return R.ok(new PageInfo<>());
+        }
+        query.setAssetMainIds(assetMainIds);
+        return R.ok(assetRepairRecordService.pageList(query));
+    }
 }
 
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetStatisticsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetStatisticsController.java
index 0795b13..e5f61c6 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetStatisticsController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetStatisticsController.java
@@ -6,6 +6,8 @@
 import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.system.model.AssetInventoryRecord;
 import com.ruoyi.system.model.AssetMain;
+import com.ruoyi.system.model.AssetType;
+import com.ruoyi.system.query.AsseIdleListQuery;
 import com.ruoyi.system.query.AssetInventoryListQuery;
 import com.ruoyi.system.query.AssetStatisticsListDetailQuery;
 import com.ruoyi.system.query.AssetStatisticsListQuery;
@@ -13,9 +15,7 @@
 import com.ruoyi.system.service.AssetMainService;
 import com.ruoyi.system.service.AssetTypeService;
 import com.ruoyi.system.service.TDeptService;
-import com.ruoyi.system.vo.AssetInventoryVO;
-import com.ruoyi.system.vo.AssetStatisticsDetailVO;
-import com.ruoyi.system.vo.AssetStatisticsVO;
+import com.ruoyi.system.vo.*;
 import com.ruoyi.system.vo.asset.AssetTypeTreeVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -25,6 +25,8 @@
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import java.math.BigDecimal;
+import java.math.BigInteger;
 import java.time.LocalDateTime;
 import java.time.YearMonth;
 import java.util.ArrayList;
@@ -229,6 +231,42 @@
         PageInfo<AssetStatisticsDetailVO> res = assetTypeService.pageListInventoryDetail(query);
         return R.ok(res);
     }
+    @ApiOperation("闲置房产")
+    @PostMapping("/pageListIdle")
+    public R<AssetIdleVO> pageListIdle(@RequestBody AsseIdleListQuery query) {
+        AssetType child = assetTypeService.getById(8);
+        AssetType parent = assetTypeService.getById(child.getParentId());
+        AssetIdleVO res = new AssetIdleVO();
+        res.setAssetMainTypeName(parent.getTypeName()+">"+child.getTypeName());
+        if (StringUtils.hasLength(query.getNameOrCode())){
+            // 查询出资产名称或者资产编号符合条件的code
+            List<Integer> assetMainIds = assetMainService.lambdaQuery()
+                    .and(wrapper -> wrapper.like(AssetMain::getAssetName, query.getNameOrCode())
+                            .or()
+                            .like(AssetMain::getAssetCode, query.getNameOrCode()))
+                    .list()
+                    .stream()
+                    .map(AssetMain::getAssetTypeId)
+                    .collect(Collectors.toList());
+            query.setAssetMainIds(assetMainIds);
+            if (assetMainIds.isEmpty()){
+                res.setPageList(new PageInfo<>());
+                return R.ok(res);
+            }
+        }
+        PageInfo<AssetIdleListVO> pageList = assetTypeService.pageListIdle(query);
+        List<AssetIdleListVO> noLimit = assetTypeService.pageListIdleNoLimit(query);
+        Integer totalCount = 0;
+        BigDecimal totalValue = new BigDecimal(BigInteger.ZERO);
+        for (AssetIdleListVO assetIdleListVO : noLimit) {
+            totalCount+=assetIdleListVO.getQuantity();
+            totalValue = totalValue.add(new BigDecimal(assetIdleListVO.getQuantity()).multiply(assetIdleListVO.getUnitPrice()));
+        }
+        res.setTotalCount(totalCount);
+        res.setTotalValue(totalValue);
+        res.setPageList(pageList);
+        return R.ok(res);
+    }
 
     
 }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java
index cd68061..02da6dc 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java
@@ -295,6 +295,13 @@
                     break;
                 case 9:
                     OaApprovalApplicationAsset oaApprovalApplicationAssetBack = approvalApplicationAssetMap.get(approvalApplication.getId());
+                    // 归还资产条数
+                    List<OaApprovalApplicationAssetItem> back = approvalApplicationAssetItemMap.get(approvalApplication.getId());
+                    // 借用资产条数
+                    List<OaApprovalApplicationAssetItem> grab = approvalApplicationAssetItemMap.get(oaApprovalApplicationAssetBack.getBorrowApplicationId());
+                    if (back.size()==grab.size()){
+//                        approvalTodoVO.setReturnStatus(2);
+                    }
                     if (oaApprovalApplicationAssetBack!=null){
                         approvalTodoVO.setOperateTime(oaApprovalApplicationAssetBack.getExpectReturnDate());
                     }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalTodoController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalTodoController.java
index af49e9e..8eb7a3d 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalTodoController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalTodoController.java
@@ -533,6 +533,7 @@
     public R<PageInfo<PurchaseListVO>> detailPurchaseList(@RequestBody ApprovalDetailQuery query) {
         OaApprovalApplications approvalApplications = approvalApplicationsService.getById(query.getId());
         query.setId(approvalApplications.getId());
+        query.setApprovalApplicationId(approvalApplications.getId());
         PageInfo<PurchaseListVO> items = approvalApplicationPurchaseItemService.pageList(query);
         return R.ok(items);
     }
@@ -581,6 +582,7 @@
     public R<PageInfo<GrabListVO>> detailGrabList(@RequestBody ApprovalDetailQuery query) {
         OaApprovalApplications approvalApplications = approvalApplicationsService.getById(query.getId());
         query.setId(approvalApplications.getId());
+        query.setApprovalApplicationId(approvalApplications.getId());
         PageInfo<GrabListVO> items = approvalApplicationAssetItemService.pageList(query);
         return R.ok(items);
     }
@@ -629,6 +631,7 @@
     public R<PageInfo<StorageListVO>> detailInStockList(@RequestBody ApprovalDetailQuery query) {
         OaApprovalApplications approvalApplications = approvalApplicationsService.getById(query.getId());
         query.setId(approvalApplications.getId());
+        query.setApprovalApplicationId(approvalApplications.getId());
         PageInfo<StorageListVO> items = approvalApplicationStorageService.pageList(query);
         return R.ok(items);
     }
@@ -667,6 +670,7 @@
     public R<PageInfo<GrabListVO>> detailBurrowList(@RequestBody ApprovalDetailQuery query) {
         OaApprovalApplications approvalApplications = approvalApplicationsService.getById(query.getId());
         query.setId(approvalApplications.getId());
+        query.setApprovalApplicationId(approvalApplications.getId());
         PageInfo<GrabListVO> items = approvalApplicationAssetItemService.pageList(query);
         return R.ok(items);
     }
@@ -710,6 +714,7 @@
     public R<PageInfo<GrabListVO>> detailBackList(@RequestBody ApprovalDetailQuery query) {
         OaApprovalApplications approvalApplications = approvalApplicationsService.getById(query.getId());
         query.setId(approvalApplications.getId());
+        query.setApprovalApplicationId(approvalApplications.getId());
         PageInfo<GrabListVO> items = approvalApplicationAssetItemService.pageList(query);
         return R.ok(items);
     }
@@ -757,6 +762,7 @@
         
         OaApprovalApplications approvalApplications = approvalApplicationsService.getById(query.getId());
         query.setId(approvalApplications.getId());
+        query.setApprovalApplicationId(approvalApplications.getId());
         PageInfo<GrabListVO> items = approvalApplicationAssetItemService.pageList(query);
         return R.ok(items);
     }
@@ -808,6 +814,7 @@
     public R<PageInfo<GrabListVO>> detailChangeList(@RequestBody ApprovalDetailQuery query) {
         OaApprovalApplications approvalApplications = approvalApplicationsService.getById(query.getId());
         query.setId(approvalApplications.getId());
+        query.setApprovalApplicationId(approvalApplications.getId());
         PageInfo<GrabListVO> items = approvalApplicationAssetItemService.pageList(query);
         return R.ok(items);
     }
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 23bbf83..807fb33 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,7 +1,14 @@
 package com.ruoyi.system.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.system.model.AssetRepairRecord;
+import com.ruoyi.system.query.AssetRepairRequestListQuery;
+import com.ruoyi.system.query.AssetStatisticsListQuery;
+import com.ruoyi.system.vo.AssetRepairRequestVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +20,6 @@
  */
 public interface AssetRepairRecordMapper extends BaseMapper<AssetRepairRecord> {
 
+    List<AssetRepairRequestVO> pageList(@Param("query") AssetRepairRequestListQuery query, @Param("pageInfo") PageInfo<AssetRepairRequestVO> pageInfo);
+
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/AssetTypeMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/AssetTypeMapper.java
index a655310..39044e4 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/AssetTypeMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/AssetTypeMapper.java
@@ -3,9 +3,11 @@
 import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.system.model.AssetType;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.system.query.AsseIdleListQuery;
 import com.ruoyi.system.query.AssetInventoryListQuery;
 import com.ruoyi.system.query.AssetStatisticsListDetailQuery;
 import com.ruoyi.system.query.AssetStatisticsListQuery;
+import com.ruoyi.system.vo.AssetIdleListVO;
 import com.ruoyi.system.vo.AssetInventoryVO;
 import com.ruoyi.system.vo.AssetStatisticsDetailVO;
 import com.ruoyi.system.vo.AssetStatisticsVO;
@@ -34,5 +36,7 @@
     List<AssetStatisticsDetailVO> pageListInventoryDetail(@Param("query")AssetStatisticsListDetailQuery query,@Param("pageInfo") PageInfo<AssetStatisticsDetailVO> pageInfo);
 
 
+    List<AssetIdleListVO> pageListIdle(@Param("query")AsseIdleListQuery query,@Param("pageInfo") PageInfo<AssetIdleListVO> pageInfo);
 
+    List<AssetIdleListVO> pageListIdleNoLimit(@Param("query")AsseIdleListQuery query);
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/AssetHouseInspectionDetail.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/AssetHouseInspectionDetail.java
index ef8149d..6b02140 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/AssetHouseInspectionDetail.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/AssetHouseInspectionDetail.java
@@ -51,6 +51,9 @@
     @ApiModelProperty(value = "巡检子项名称(冗余字段)")
     @TableField("sub_item_name")
     private String subItemName;
+    @ApiModelProperty(value = "备注")
+    @TableField("remark")
+    private String remark;
 
     @ApiModelProperty(value = "巡检结果:1-正常、0-异常")
     @TableField("inspection_result")
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/AsseIdleListQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/AsseIdleListQuery.java
new file mode 100644
index 0000000..db6d5f1
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/AsseIdleListQuery.java
@@ -0,0 +1,22 @@
+package com.ruoyi.system.query;
+
+import com.ruoyi.common.core.domain.BasePage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Data
+@ApiModel(value = "闲置资产分页列表query")
+public class AsseIdleListQuery extends BasePage {
+
+    @ApiModelProperty(value = "资产名称或编号")
+    private String nameOrCode;
+    @ApiModelProperty(value = "资产状态")
+    private String assetStatus;
+    @ApiModelProperty(value = "资产ids 前端忽略")
+    private List<Integer> assetMainIds;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/AssetRepairRequestListQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/AssetRepairRequestListQuery.java
new file mode 100644
index 0000000..7527349
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/AssetRepairRequestListQuery.java
@@ -0,0 +1,21 @@
+package com.ruoyi.system.query;
+
+import com.ruoyi.common.core.domain.BasePage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel(value = "资产保修分页列表query")
+public class AssetRepairRequestListQuery extends BasePage {
+
+    @ApiModelProperty(value = "标题或单号")
+    private String numberOrTitle;
+
+    @ApiModelProperty(value = "资产ids 前端忽略")
+    private List<Integer> assetMainIds;
+    @ApiModelProperty(value = "部门id 前端忽略")
+    private List<Integer> deptIds;
+}
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 b71ae33..240be6c 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,7 +1,12 @@
 package com.ruoyi.system.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.system.model.AssetRepairRecord;
+import com.ruoyi.system.query.AssetRepairRequestListQuery;
+import com.ruoyi.system.query.AssetStatisticsListQuery;
+import com.ruoyi.system.vo.AssetRepairRequestVO;
+import com.ruoyi.system.vo.AssetStatisticsVO;
 
 /**
  * <p>
@@ -13,4 +18,6 @@
  */
 public interface AssetRepairRecordService extends IService<AssetRepairRecord> {
 
+    PageInfo<AssetRepairRequestVO> pageList(AssetRepairRequestListQuery query);
+
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/AssetTypeService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/AssetTypeService.java
index 2401d9e..80d3960 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/AssetTypeService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/AssetTypeService.java
@@ -4,9 +4,11 @@
 import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.system.dto.asset.AssetTypeDTO;
 import com.ruoyi.system.model.AssetType;
+import com.ruoyi.system.query.AsseIdleListQuery;
 import com.ruoyi.system.query.AssetInventoryListQuery;
 import com.ruoyi.system.query.AssetStatisticsListDetailQuery;
 import com.ruoyi.system.query.AssetStatisticsListQuery;
+import com.ruoyi.system.vo.AssetIdleListVO;
 import com.ruoyi.system.vo.AssetInventoryVO;
 import com.ruoyi.system.vo.AssetStatisticsDetailVO;
 import com.ruoyi.system.vo.AssetStatisticsVO;
@@ -69,4 +71,8 @@
 
     PageInfo<AssetStatisticsDetailVO> pageListInventoryDetail(AssetStatisticsListDetailQuery query);
 
+    PageInfo<AssetIdleListVO> pageListIdle(AsseIdleListQuery query);
+
+    List<AssetIdleListVO> pageListIdleNoLimit(AsseIdleListQuery query);
+
 }
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 b0c561c..c5acfe3 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,10 +1,21 @@
 package com.ruoyi.system.service.impl;
 
 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.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 org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -17,4 +28,11 @@
 @Service
 public class AssetRepairRecordServiceImpl extends ServiceImpl<AssetRepairRecordMapper, AssetRepairRecord> implements AssetRepairRecordService {
 
+    @Override
+    public PageInfo<AssetRepairRequestVO> pageList(AssetRepairRequestListQuery query) {
+        PageInfo<AssetRepairRequestVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
+        List<AssetRepairRequestVO> list = this.baseMapper.pageList(query,pageInfo);
+        pageInfo.setRecords(list);
+        return pageInfo;
+    }
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetTypeServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetTypeServiceImpl.java
index 20e3869..46354d3 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetTypeServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetTypeServiceImpl.java
@@ -14,12 +14,14 @@
 import com.ruoyi.system.model.AssetInventoryRecord;
 import com.ruoyi.system.model.AssetMain;
 import com.ruoyi.system.model.AssetType;
+import com.ruoyi.system.query.AsseIdleListQuery;
 import com.ruoyi.system.query.AssetInventoryListQuery;
 import com.ruoyi.system.query.AssetStatisticsListDetailQuery;
 import com.ruoyi.system.query.AssetStatisticsListQuery;
 import com.ruoyi.system.service.AssetInventoryRecordService;
 import com.ruoyi.system.service.AssetMainService;
 import com.ruoyi.system.service.AssetTypeService;
+import com.ruoyi.system.vo.AssetIdleListVO;
 import com.ruoyi.system.vo.AssetInventoryVO;
 import com.ruoyi.system.vo.AssetStatisticsDetailVO;
 import com.ruoyi.system.vo.AssetStatisticsVO;
@@ -491,4 +493,29 @@
         return pageInfo;
     }
 
+    @Override
+    public PageInfo<AssetIdleListVO> pageListIdle(AsseIdleListQuery query) {
+        Map<Integer, AssetType> assetTypeMap = assetTypeService.list().stream().collect(
+                Collectors.toMap(AssetType::getId, e -> e)
+        );
+        PageInfo<AssetIdleListVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
+        List<AssetIdleListVO> list = this.baseMapper.pageListIdle(query,pageInfo);
+        for (AssetIdleListVO assetIdleListVO : list) {
+            AssetType assetType = assetTypeMap.get(assetIdleListVO.getAssetTypeId());
+            if (assetType!=null){
+                AssetType parent = assetTypeMap.get(assetType.getParentId());
+                assetIdleListVO.setAssetTypeName(parent.getTypeName()+">"+assetType.getTypeName());
+            }
+        }
+        pageInfo.setRecords(list);
+        return pageInfo;
+    }
+
+    @Override
+    public List<AssetIdleListVO> pageListIdleNoLimit(AsseIdleListQuery query) {
+        List<AssetIdleListVO> list = this.baseMapper.pageListIdleNoLimit(query);
+
+        return list;
+    }
+
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/AssetIdleListVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/AssetIdleListVO.java
new file mode 100644
index 0000000..dca285e
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/AssetIdleListVO.java
@@ -0,0 +1,59 @@
+package com.ruoyi.system.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
+@Data
+@ApiModel(value = "闲置房产分页返回VO")
+public class AssetIdleListVO implements Serializable {
+    @ApiModelProperty(value = "资产名称")
+    private String assetName;
+    @ApiModelProperty(value = "规格型号")
+    private String specificationModel;
+    @ApiModelProperty(value = "资产类型")
+    private String assetTypeName;
+    @ApiModelProperty(value = "资产类型id")
+    private Integer assetTypeId;
+    @ApiModelProperty(value = "资产类别")
+    private String category;
+    @ApiModelProperty(value = "计量单位")
+    private String measurementUnit;
+
+    @ApiModelProperty(value = "数量")
+    private Integer quantity;
+
+    @ApiModelProperty(value = "单价")
+    private BigDecimal unitPrice;
+    @ApiModelProperty(value = "总价值(数量*单价)")
+    private BigDecimal totalValue;
+    @ApiModelProperty(value = "入账时间")
+    private LocalDate accountingDate;
+
+    @ApiModelProperty(value = "会计凭证号")
+    private String accountingVoucherNo;
+
+    @ApiModelProperty(value = "会计科目")
+    private String accountingSubject;
+
+    @ApiModelProperty(value = "入账金额")
+    private BigDecimal accountingAmount;
+    @ApiModelProperty(value = "入账状态")
+    private String accountingStatus;
+    @ApiModelProperty(value = "资产状态")
+    private String assetStatus;
+    @ApiModelProperty(value = "归属部门")
+    private String ownershipDeptName;
+    @ApiModelProperty(value = "使用人")
+    private String userName;
+    @ApiModelProperty(value = "使用部门/位置")
+    private String useName;
+    @ApiModelProperty(value = "备注")
+    private String remarks;
+    @ApiModelProperty(value = "位置类型 0-部门,1-仓库,2-录入地址")
+    private Integer addressType;
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/AssetIdleVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/AssetIdleVO.java
new file mode 100644
index 0000000..41ee4b0
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/AssetIdleVO.java
@@ -0,0 +1,23 @@
+package com.ruoyi.system.vo;
+
+import com.ruoyi.common.basic.PageInfo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
+@Data
+@ApiModel(value = "资产汇总分页返回VO")
+public class AssetIdleVO implements Serializable {
+   @ApiModelProperty(value = "合计数量")
+    private Integer totalCount;
+    @ApiModelProperty(value = "合计总价")
+    private BigDecimal totalValue;
+    @ApiModelProperty(value = "资产类型名称")
+    private String assetMainTypeName;
+    @ApiModelProperty(value = "分页列表数据")
+    private PageInfo<AssetIdleListVO> pageList;
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/AssetRepairRequestVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/AssetRepairRequestVO.java
new file mode 100644
index 0000000..640f6eb
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/AssetRepairRequestVO.java
@@ -0,0 +1,16 @@
+package com.ruoyi.system.vo;
+
+import com.ruoyi.system.model.AssetRepairRequest;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+@Data
+@ApiModel(value = "资产报修分页返回VO")
+public class AssetRepairRequestVO extends AssetRepairRequest {
+
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/AssetStatisticsDetailVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/AssetStatisticsDetailVO.java
index a330026..736b37f 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/AssetStatisticsDetailVO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/AssetStatisticsDetailVO.java
@@ -9,7 +9,7 @@
 import java.time.LocalDate;
 
 @Data
-@ApiModel(value = "资产汇总分页返回VO")
+@ApiModel(value = "资产出入库/明细分页返回VO")
 public class AssetStatisticsDetailVO implements Serializable {
     @ApiModelProperty(value = "出入库类型")
     private String typeName;
diff --git a/ruoyi-system/src/main/resources/mapper/system/AssetRepairRecordMapper.xml b/ruoyi-system/src/main/resources/mapper/system/AssetRepairRecordMapper.xml
index 8e52586..a1b48a1 100644
--- a/ruoyi-system/src/main/resources/mapper/system/AssetRepairRecordMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/AssetRepairRecordMapper.xml
@@ -25,5 +25,15 @@
     <sql id="Base_Column_List">
         id, repair_request_id, repair_no, title, repair_time, repair_by, asset_type_id, repair_remarks, attachment_urls, repair_status, create_time, create_by, update_time, update_by, disabled
     </sql>
+    <select id="pageList" resultType="com.ruoyi.system.vo.AssetRepairRequestVO">
+        select t1.*,t2.asset_main_id as assetMainId from asset_repair_request_item t1
+        left join asset_repair_request_item t2 on t1.id = t2.repair_request_id
+        where 1=1
+        <if test="query.numberOrTitle != null and query.numberOrTitle != ''">
+            AND (t1.repair_no like concat('%', #{query.numberOrTitle}, '%') or t1.title like concat('%', #{query.numberOrTitle}, '%'))
+        </if>
+        AND t1.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+        order by t1.repair_status, t1.urgency_level asc
+    </select>
 
 </mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/AssetTypeMapper.xml b/ruoyi-system/src/main/resources/mapper/system/AssetTypeMapper.xml
index 15e7004..4430581 100644
--- a/ruoyi-system/src/main/resources/mapper/system/AssetTypeMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/AssetTypeMapper.xml
@@ -148,5 +148,51 @@
         order by t1.create_time desc
 
     </select>
+    <select id="pageListIdle" resultType="com.ruoyi.system.vo.AssetIdleListVO">
+        select t1.* ,t2.type_name as assetTypeName,t4.dept_name as ownershipDeptName,
+        case
+        when t1.use_dept_id is not null and t1.use_dept_id != '' then t3.dept_name
+        when t1.address is not null and t1.address != '' then t1.address
+        when t1.warehouse_name is not null and t1.warehouse_name != '' then t1.warehouse_name
+        else null
+        end as useName from asset_main t1
+        left join asset_type t2 on t2.id = t1.asset_type_id
+        left join t_dept t3 on t3.id = t1.use_dept_id
+        left join t_dept t4 on t4.id = t1.ownership_dept_id
+        where 1=1
+        AND t1.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+        <if test="query.assetMainIds != null and query.assetMainIds.size()>0">
+            AND t1.id IN
+            <foreach collection="query.assetMainIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+
+
+        order by t1.create_time desc
+    </select>
+    <select id="pageListIdleNoLimit" resultType="com.ruoyi.system.vo.AssetIdleListVO">
+        select t1.* ,t2.type_name as assetTypeName,t4.dept_name as ownershipDeptName,
+        case
+        when t1.use_dept_id is not null and t1.use_dept_id != '' then t3.dept_name
+        when t1.address is not null and t1.address != '' then t1.address
+        when t1.warehouse_name is not null and t1.warehouse_name != '' then t1.warehouse_name
+        else null
+        end as useName from asset_main t1
+        left join asset_type t2 on t2.id = t1.asset_type_id
+        left join t_dept t3 on t3.id = t1.use_dept_id
+        left join t_dept t4 on t4.id = t1.ownership_dept_id
+        where 1=1
+        AND t1.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+        <if test="query.assetMainIds != null and query.assetMainIds.size()>0">
+            AND t1.id IN
+            <foreach collection="query.assetMainIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+
+
+        order by t1.create_time desc
+    </select>
 
 </mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/OaApprovalApplicationAssetItemMapper.xml b/ruoyi-system/src/main/resources/mapper/system/OaApprovalApplicationAssetItemMapper.xml
index 36dddfb..61e8401 100644
--- a/ruoyi-system/src/main/resources/mapper/system/OaApprovalApplicationAssetItemMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/OaApprovalApplicationAssetItemMapper.xml
@@ -32,7 +32,7 @@
                  left join asset_main t2 on t2.id = t1.asset_main_id
                  left join asset_type t3 on t3.id = t2.asset_type_id
                  left join t_dept t4 on t4.id = t2.ownership_dept_id
-                 left join oa_approval_application_storage t5 on t5.approval_application_id = t1.approval_application_id
+                 left join oa_approval_application_storage t5 on t5.approval_application_id = t2.approval_application_id
                  left join t_dept t6 on t6.id = t2.use_dept_id
         where t1.approval_application_id = #{query.approvalApplicationId}
         order by t1.id  desc

--
Gitblit v1.7.1