From f769d817f8ba2522147c73fa93ccacdc3aab0cb6 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期五, 24 十月 2025 18:15:15 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/CleanToiletMaintenanceController.java          |  214 ++++++++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalController.java                      |   26 +
 ruoyi-system/src/main/java/com/ruoyi/system/query/DrDisplacementListQuery.java                        |   20 
 ruoyi-system/src/main/java/com/ruoyi/system/service/CleanToiletMaintenanceService.java                |    3 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CleanToiletSanitizationServiceImpl.java      |   12 
 ruoyi-system/src/main/resources/mapper/system/CleanSludgeMapper.xml                                   |    9 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CleanToiletMaintenanceServiceImpl.java       |   12 
 ruoyi-system/src/main/java/com/ruoyi/system/model/DrDisplacement.java                                 |   14 
 ruoyi-system/src/main/java/com/ruoyi/system/service/CleanSludgeService.java                           |    4 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CleanSludgeServiceImpl.java                  |   13 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetTypeServiceImpl.java                    |    2 
 ruoyi-system/src/main/java/com/ruoyi/system/vo/AssetStatisticsDetailVO.java                           |    2 
 ruoyi-system/src/main/java/com/ruoyi/system/export/CleanToiletMaintenanceExportNoImg.java             |   25 +
 ruoyi-system/src/main/java/com/ruoyi/system/service/DrDisplacementService.java                        |    4 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java             |   67 ++
 ruoyi-system/src/main/java/com/ruoyi/system/dto/AddDrDisplacementDTO.java                             |   23 
 ruoyi-system/src/main/java/com/ruoyi/system/query/CleanSludgeListQuery.java                           |   15 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetHouseInspectionItemController.java        |   49 +
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/CleanToiletMaintenanceMapper.java                  |    6 
 ruoyi-system/src/main/resources/mapper/system/DrDisplacementMapper.xml                                |   20 
 ruoyi-system/src/main/java/com/ruoyi/system/model/AssetMain.java                                      |    3 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java                      |   15 
 ruoyi-system/src/main/java/com/ruoyi/system/model/AssetUseRecord.java                                 |    5 
 ruoyi-system/src/main/java/com/ruoyi/system/model/CleanSludge.java                                    |    2 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TDeptServiceImpl.java                        |    4 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetStatisticsController.java                 |  171 ++++--
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/CleanSludgeController.java                     |   66 ++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/CleanToiletSanitizationController.java         |  206 ++++++++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DrDisplacementController.java                  |  253 ++++++++++
 ruoyi-system/src/main/resources/mapper/system/AssetTypeMapper.xml                                     |   14 
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/CleanSludgeMapper.java                             |    8 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalTodoController.java                  |    4 
 ruoyi-system/src/main/java/com/ruoyi/system/utils/ExcelStyleUtil.java                                 |   14 
 ruoyi-system/src/main/java/com/ruoyi/system/service/CleanToiletSanitizationService.java               |    3 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DrDisplacementServiceImpl.java               |   12 
 ruoyi-system/src/main/java/com/ruoyi/system/vo/DrDisplacementListVO.java                              |   21 
 ruoyi-system/src/main/resources/mapper/system/CleanToiletSanitizationMapper.xml                       |   10 
 ruoyi-system/src/main/java/com/ruoyi/system/export/CleanToiletSanitizationExport.java                 |   33 +
 ruoyi-system/src/main/java/com/ruoyi/system/vo/DrDisplacementStatisticsVO.java                        |   18 
 ruoyi-system/src/main/java/com/ruoyi/system/model/CleanToiletSanitization.java                        |    2 
 ruoyi-system/src/main/resources/mapper/system/CleanToiletMaintenanceMapper.xml                        |    8 
 ruoyi-system/src/main/java/com/ruoyi/system/model/CleanToiletMaintenance.java                         |    4 
 ruoyi-system/src/main/java/com/ruoyi/system/export/CleanToiletMaintenanceExport.java                  |   32 +
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/CleanToiletSanitizationMapper.java                 |    7 
 ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/OaApprovalApplicationStorageGeneralDetailVO.java |    1 
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/DrDisplacementMapper.java                          |    7 
 ruoyi-system/src/main/java/com/ruoyi/system/vo/ApprovalFlowNodeListVO.java                            |    4 
 47 files changed, 1,369 insertions(+), 98 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetHouseInspectionItemController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetHouseInspectionItemController.java
index b7c8bfa..35f9633 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetHouseInspectionItemController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetHouseInspectionItemController.java
@@ -14,6 +14,7 @@
 import com.ruoyi.common.core.domain.entity.TDept;
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.WebUtils;
 import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.system.dto.AddAssetHouseInspection;
@@ -87,6 +88,7 @@
     private TDeptService deptService;
     @Autowired
     private AssetMainService assetMainService;
+
     @Autowired
     private AssetTypeService assetTypeService;
     @Autowired
@@ -132,22 +134,41 @@
         String deptId = tokenService.getLoginUser().getDeptId();
         TDept dept = deptService.getById(tokenService.getLoginUser().getDeptId());
         List<Integer> deptIds = deptService.getAllSubDeptIds(deptId);
-        AssetType assetType = assetTypeService.lambdaQuery().like(AssetType::getTypeName, "不动").
+        AssetType assetType = assetTypeService.lambdaQuery().like(AssetType::getTypeName, "房屋").
                 last("limit 1").one();
-        if (dept.getDeptName().contains("资产管理")){
+        Map<Integer, String> map = assetPropertyExtService.lambdaQuery().isNotNull(AssetPropertyExt::getRoomNumber).list()
+                .stream().collect(Collectors.toMap(AssetPropertyExt::getAssetMainId, AssetPropertyExt::getRoomNumber));
+        Long userId = tokenService.getLoginUser().getUserId();
+        if (!SecurityUtils.isAdmin(userId)) {
+            if (dept.getDeptName().contains("资产管理") || dept.getDeptName().contains("董事长") || dept.getDeptName().contains("总经理")) {
+                List<AssetMain> list = assetMainService.lambdaQuery()
+                        .eq(AssetMain::getAssetTypeId, assetType.getId())
+                        .list();
+                for (AssetMain assetMain : list) {
+                    assetMain.setRoomNumber(map.get(assetMain.getId()));
+                }
+                return R.ok(list);
+            } else {
+                if (deptIds.isEmpty()) {
+                    return R.ok(new ArrayList<>());
+                } else {
+                    List<AssetMain> list = assetMainService.lambdaQuery()
+                            .eq(AssetMain::getAssetTypeId, assetType.getId())
+                            .in(AssetMain::getOwnershipDeptId, deptIds).list();
+                    for (AssetMain assetMain : list) {
+                        assetMain.setRoomNumber(map.get(assetMain.getId()));
+                    }
+                    return R.ok(list);
+                }
+            }
+        }else{
             List<AssetMain> list = assetMainService.lambdaQuery()
                     .eq(AssetMain::getAssetTypeId, assetType.getId())
                     .list();
-            return R.ok(list);
-        }else{
-            if (deptIds.isEmpty()){
-                return R.ok(new ArrayList<>());
-            }else{
-                List<AssetMain> list = assetMainService.lambdaQuery()
-                        .eq(AssetMain::getAssetTypeId, assetType.getId())
-                        .in(AssetMain::getOwnershipDeptId, deptIds).list();
-                return R.ok(list);
-            }
+                    for (AssetMain assetMain : list) {
+                        assetMain.setRoomNumber(map.get(assetMain.getId()));
+                    }
+                    return R.ok(list);
         }
     }
     @ApiOperation(value = "巡检子项树状结构")
@@ -341,7 +362,9 @@
                 assetHouseInspectionRecord.setRoomNumber(assetPropertyExt.getRoomNumber());
             }
             if (StringUtils.hasLength(assetHouseInspectionImport.getInspectionDate())){
-                LocalDate parse = LocalDate.parse(assetHouseInspectionImport.getInspectionDate(), DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+                String s = assetHouseInspectionImport.getInspectionDate().replaceAll("\\.", "-");
+                String s1 = assetHouseInspectionImport.getInspectionDate().replaceAll("/", "-");
+                LocalDate parse = LocalDate.parse(s1, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
                 assetHouseInspectionRecord.setInspectionDate(parse);
             }else{
                 result.append("未填写巡检日期:[", "未填写巡检日期"+"]");
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 b35f66e..8258523 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
@@ -3,22 +3,22 @@
 import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.domain.entity.TDept;
+import com.ruoyi.common.utils.SecurityUtils;
 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.model.AssetUseRecord;
 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.service.TDeptService;
+import com.ruoyi.system.service.*;
 import com.ruoyi.system.vo.*;
 import com.ruoyi.system.vo.asset.AssetTypeTreeVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.models.auth.In;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.StringUtils;
@@ -49,7 +49,9 @@
 public class AssetStatisticsController {
 
     @Autowired
-    private  AssetTypeService assetTypeService;
+    private AssetTypeService assetTypeService;
+    @Autowired
+    private AssetUseRecordService assetUseRecordService;
     @Autowired
     private AssetInventoryRecordService assetInventoryRecordService;
     @Autowired
@@ -67,13 +69,13 @@
     }
 
 
-
     public List<Integer> getAllSubDeptIds(Integer parentId) {
         List<Integer> allSubIds = new ArrayList<>();
         allSubIds.add(parentId);
         getSubDeptIdsRecursive(parentId, allSubIds);
         return allSubIds.stream().distinct().collect(Collectors.toList());
     }
+
     private void getSubDeptIdsRecursive(Integer parentId, List<Integer> allSubIds) {
         // 查询直接下级
         List<Integer> directSubIds = deptService.lambdaQuery().eq(TDept::getParentId, parentId).list()
@@ -85,58 +87,78 @@
             getSubDeptIdsRecursive(subId, allSubIds);
         }
     }
+
     @ApiOperation("资产汇总分页列表")
     @PostMapping("/pageList")
     public R<PageInfo<AssetStatisticsVO>> pageList(@RequestBody AssetStatisticsListQuery query) {
         String deptId = tokenService.getLoginUser().getDeptId();
-        TDept dept = deptService.getById(tokenService.getLoginUser().getDeptId());
+        TDept dept = deptService.getById(deptId);
         List<Integer> deptIds = deptService.getAllSubDeptIds(deptId);
-        if (dept.getDeptName().contains("资产管理")){
-            // 可以查询所有数据
-            query.setDeptIds(new ArrayList<>());
-        }else{
-            if (deptIds.isEmpty()){
-                return R.ok(new PageInfo<>());
-            }else{
-                query.setDeptIds(deptIds);
+        Long userId = tokenService.getLoginUser().getUserId();
+        if (!SecurityUtils.isAdmin(userId)) {
+            if (dept.getDeptName().contains("资产管理")||dept.getDeptName().contains("董事长")||dept.getDeptName().contains("总经理")) {
+                // 可以查询所有数据
+                query.setDeptIds(new ArrayList<>());
+            } else {
+                if (deptIds.isEmpty()) {
+                    return R.ok(new PageInfo<>());
+                } else {
+                    query.setDeptIds(deptIds);
+                }
             }
+        }else{
+
         }
+
         return R.ok(assetTypeService.pageList(query));
     }
+
     @ApiOperation("资产明细")
     @PostMapping("/pageListDetail")
     public R<PageInfo<AssetStatisticsDetailVO>> pageListDetail(@RequestBody AssetStatisticsListDetailQuery query) {
         String deptId = tokenService.getLoginUser().getDeptId();
         TDept dept = deptService.getById(tokenService.getLoginUser().getDeptId());
         List<Integer> deptIds = deptService.getAllSubDeptIds(deptId);
-        if (dept.getDeptName().contains("资产管理")){
-            // 可以查询所有数据
-            query.setDeptIds(new ArrayList<>());
-        }else{
-            if (deptIds.isEmpty()){
-                return R.ok(new PageInfo<>());
-            }else{
-                query.setDeptIds(deptIds);
+        Long userId = tokenService.getLoginUser().getUserId();
+        if (!SecurityUtils.isAdmin(userId)) {
+            if (dept.getDeptName().contains("资产管理")||dept.getDeptName().contains("董事长")||dept.getDeptName().contains("总经理")) {
+                // 可以查询所有数据
+                query.setDeptIds(new ArrayList<>());
+            } else {
+                if (deptIds.isEmpty()) {
+                    return R.ok(new PageInfo<>());
+                } else {
+                    query.setDeptIds(deptIds);
+                }
             }
+        }else{
+            query.setDeptIds(deptService.list().stream().map(TDept::getId).collect(Collectors.toList()));
         }
         PageInfo<AssetStatisticsDetailVO> res = assetTypeService.pageListDetail(query);
         return R.ok(res);
     }
+
     @ApiOperation("资产出入库分页列表")
     @PostMapping("/pageListInventory")
     public R<PageInfo<AssetInventoryVO>> pageListInventory(@RequestBody AssetInventoryListQuery query) {
         String deptId = tokenService.getLoginUser().getDeptId();
         TDept dept = deptService.getById(tokenService.getLoginUser().getDeptId());
         List<Integer> deptIds = deptService.getAllSubDeptIds(deptId);
-        if (dept.getDeptName().contains("资产管理")){
-            // 可以查询所有数据
-            query.setDeptIds(new ArrayList<>());
-        }else{
-            if (deptIds.isEmpty()){
-                return R.ok(new PageInfo<>());
-            }else{
-                query.setDeptIds(deptIds);
+        Long userId = tokenService.getLoginUser().getUserId();
+        if (!SecurityUtils.isAdmin(userId)) {
+            if (dept.getDeptName().contains("资产管理")||dept.getDeptName().contains("董事长")||dept.getDeptName().contains("总经理")) {
+                // 可以查询所有数据
+                query.setDeptIds(new ArrayList<>());
+            } else {
+                if (deptIds.isEmpty()) {
+                    return R.ok(new PageInfo<>());
+                } else {
+                    query.setDeptIds(deptIds);
+                }
             }
+        }else{
+            query.setDeptIds(deptService.list().stream().map(TDept::getId).collect(Collectors.toList()));
+
         }
         String[] dateList = query.getDate().split("-");
         String month = dateList[1];
@@ -149,10 +171,10 @@
         query.setDateEnd(lastDay);
         List<Integer> assetMainIds = assetInventoryRecordService.lambdaQuery().between(AssetInventoryRecord::getCreateTime, query.getDateStart(), query.getDateEnd())
                 .list().stream().map(AssetInventoryRecord::getAssetMainId).collect(Collectors.toList());
-        if (assetMainIds.isEmpty()){
+        if (assetMainIds.isEmpty()) {
             return R.ok(new PageInfo<>());
         }
-        if (StringUtils.hasLength(query.getNameOrCode())){
+        if (StringUtils.hasLength(query.getNameOrCode())) {
             // 查询出资产名称或者资产编号符合条件的code
             List<Integer> assetTypeIds = assetMainService.lambdaQuery()
                     .in(AssetMain::getOwnershipDeptId, deptIds)
@@ -164,33 +186,40 @@
                     .map(AssetMain::getAssetTypeId)
                     .collect(Collectors.toList());
             query.setAssetMainIds(assetTypeIds);
-            if (assetTypeIds.isEmpty()){
+            if (assetTypeIds.isEmpty()) {
                 return R.ok(new PageInfo<>());
             }
             // 和assetMainIds取交集
             List<Integer> res = assetMainIds.stream().filter(assetTypeIds::contains).collect(Collectors.toList());
-            if (res.isEmpty()){
+            if (res.isEmpty()) {
                 return R.ok(new PageInfo<>());
             }
             query.setAssetMainIds(res);
         }
         return R.ok(assetTypeService.pageListInventory(query));
     }
+
     @ApiOperation("资产出入库明细分页列表")
     @PostMapping("/pageListInventoryDetail")
     public R<PageInfo<AssetStatisticsDetailVO>> pageListInventoryDetail(@RequestBody AssetStatisticsListDetailQuery query) {
         String deptId = tokenService.getLoginUser().getDeptId();
         TDept dept = deptService.getById(tokenService.getLoginUser().getDeptId());
         List<Integer> deptIds = deptService.getAllSubDeptIds(deptId);
-        if (dept.getDeptName().contains("资产管理")){
-            // 可以查询所有数据
-            query.setDeptIds(new ArrayList<>());
-        }else{
-            if (deptIds.isEmpty()){
-                return R.ok(new PageInfo<>());
-            }else{
-                query.setDeptIds(deptIds);
+        Long userId = tokenService.getLoginUser().getUserId();
+        if (!SecurityUtils.isAdmin(userId)) {
+            if (dept.getDeptName().contains("资产管理")||dept.getDeptName().contains("董事长")||dept.getDeptName().contains("总经理")) {
+                // 可以查询所有数据
+                query.setDeptIds(new ArrayList<>());
+            } else {
+                if (deptIds.isEmpty()) {
+                    return R.ok(new PageInfo<>());
+                } else {
+                    query.setDeptIds(deptIds);
+                }
             }
+        }else{
+            query.setDeptIds(deptService.list().stream().map(TDept::getId).collect(Collectors.toList()));
+
         }
         String[] dateList = query.getDate().split("-");
         String month = dateList[1];
@@ -203,10 +232,10 @@
         query.setDateEnd(lastDay);
         List<Integer> assetMainIds = assetInventoryRecordService.lambdaQuery().between(AssetInventoryRecord::getCreateTime, query.getDateStart(), query.getDateEnd())
                 .list().stream().map(AssetInventoryRecord::getAssetMainId).collect(Collectors.toList());
-        if (assetMainIds.isEmpty()){
+        if (assetMainIds.isEmpty()) {
             return R.ok(new PageInfo<>());
         }
-        if (StringUtils.hasLength(query.getNameOrCode())){
+        if (StringUtils.hasLength(query.getNameOrCode())) {
             // 查询出资产名称或者资产编号符合条件的code
             List<Integer> assetTypeIds = assetMainService.lambdaQuery()
                     .in(AssetMain::getOwnershipDeptId, deptIds)
@@ -218,12 +247,12 @@
                     .map(AssetMain::getAssetTypeId)
                     .collect(Collectors.toList());
             query.setAssetMainIds(assetTypeIds);
-            if (assetTypeIds.isEmpty()){
+            if (assetTypeIds.isEmpty()) {
                 return R.ok(new PageInfo<>());
             }
             // 和assetMainIds取交集
             List<Integer> res = assetMainIds.stream().filter(assetTypeIds::contains).collect(Collectors.toList());
-            if (res.isEmpty()){
+            if (res.isEmpty()) {
                 return R.ok(new PageInfo<>());
             }
             query.setAssetMainIds(res);
@@ -231,17 +260,38 @@
         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())){
+        res.setAssetMainTypeName(parent.getTypeName() + ">" + child.getTypeName());
+        String deptId = tokenService.getLoginUser().getDeptId();
+        TDept dept = deptService.getById(tokenService.getLoginUser().getDeptId());
+        List<Integer> deptIds = new ArrayList<>();
+        Long userId = tokenService.getLoginUser().getUserId();
+        if (!SecurityUtils.isAdmin(userId)) {
+            if (dept.getDeptName().contains("资产管理")||dept.getDeptName().contains("拆迁")||dept.getDeptName().contains("安置")
+            ||dept.getDeptName().contains("董事长")||dept.getDeptName().contains("总经理")) {
+                // 可以查询所有数据
+                deptIds = deptService.list().stream().map(TDept::getId).collect(Collectors.toList());
+            } else {
+                // 查询下级部门
+                deptIds = deptService.getAllSubDeptIds(deptId);
+                if (deptIds.isEmpty()) {
+                    deptIds.add(-1);
+                }
+            }
+        }else{
+            deptIds = deptService.list().stream().map(TDept::getId).collect(Collectors.toList());
+        }
+        if (StringUtils.hasLength(query.getNameOrCode())) {
             // 查询出资产名称或者资产编号符合条件的code
             List<Integer> assetMainIds = assetMainService.lambdaQuery()
-                    .eq(AssetMain::getAssetTypeId,8)
+                    .eq(AssetMain::getAssetTypeId, 8)
+                    .in(AssetMain::getOwnershipDeptId, deptIds)
                     .and(wrapper -> wrapper.like(AssetMain::getAssetName, query.getNameOrCode())
                             .or()
                             .like(AssetMain::getAssetCode, query.getNameOrCode()))
@@ -250,19 +300,20 @@
                     .map(AssetMain::getId)
                     .collect(Collectors.toList());
             query.setAssetMainIds(assetMainIds);
-            if (assetMainIds.isEmpty()){
+            if (assetMainIds.isEmpty()) {
                 res.setPageList(new PageInfo<>());
                 return R.ok(res);
             }
-        }else{
+        } else {
             List<Integer> assetMainIds = assetMainService.lambdaQuery()
-                    .eq(AssetMain::getAssetTypeId,8)
+                    .eq(AssetMain::getAssetTypeId, 8)
+                    .in(AssetMain::getOwnershipDeptId, deptIds)
                     .list()
                     .stream()
                     .map(AssetMain::getId)
                     .collect(Collectors.toList());
             query.setAssetMainIds(assetMainIds);
-            if (assetMainIds.isEmpty()){
+            if (assetMainIds.isEmpty()) {
                 res.setPageList(new PageInfo<>());
                 return R.ok(res);
             }
@@ -272,7 +323,7 @@
         Integer totalCount = 0;
         BigDecimal totalValue = new BigDecimal(BigInteger.ZERO);
         for (AssetIdleListVO assetIdleListVO : noLimit) {
-            totalCount+=assetIdleListVO.getQuantity();
+            totalCount += assetIdleListVO.getQuantity();
             totalValue = totalValue.add(new BigDecimal(assetIdleListVO.getQuantity()).multiply(assetIdleListVO.getUnitPrice()));
         }
         res.setTotalCount(totalCount);
@@ -280,5 +331,15 @@
         res.setPageList(pageList);
         return R.ok(res);
     }
+
+    @ApiOperation("安置")
+    @PostMapping("/placement")
+    public R<Boolean> placement(@RequestBody AssetUseRecord assetUseRecord) {
+        assetUseRecordService.save(assetUseRecord)                ;
+        AssetMain assetMain = assetMainService.getById(assetUseRecord.getAssetMainId());
+        assetMain.setAssetStatus(assetUseRecord.getStatus());
+        assetMainService.updateById(assetMain);
+        return R.ok();
+    }
 }
 
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/CleanSludgeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/CleanSludgeController.java
index 917660c..2fd4b9f 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/CleanSludgeController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/CleanSludgeController.java
@@ -1,9 +1,30 @@
 package com.ruoyi.web.controller.api;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.bean.BeanUtils;
+import com.ruoyi.system.dto.AddDrDisplacementDTO;
+import com.ruoyi.system.model.CleanSludge;
+import com.ruoyi.system.model.DrDisplacement;
+import com.ruoyi.system.model.DrDisplacementHouse;
+import com.ruoyi.system.model.DrDisplacementReturnHouse;
+import com.ruoyi.system.query.CleanSludgeListQuery;
+import com.ruoyi.system.query.DrDisplacementListQuery;
+import com.ruoyi.system.service.CleanSludgeService;
+import com.ruoyi.system.vo.DrDisplacementListVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.*;
 
-import org.springframework.web.bind.annotation.RestController;
+import javax.annotation.Resource;
+import java.util.Arrays;
+import java.util.List;
 
 /**
  * <p>
@@ -14,7 +35,48 @@
  * @since 2025-10-17
  */
 @RestController
+@Api(tags = "污泥管理台账")
 @RequestMapping("/clean-sludge")
 public class CleanSludgeController {
+    @Resource
+    private CleanSludgeService cleanSludgeService;
+    @ApiOperation(value = "污泥管理分页列表")
+    @PostMapping(value = "/pageList")
+    public R<PageInfo<CleanSludge>> pageList(@RequestBody CleanSludgeListQuery query) {
+        PageInfo<CleanSludge> drDisplacementPageInfo = cleanSludgeService.pageList(query);
 
+        return R.ok(drDisplacementPageInfo);
+    }
+    @ApiOperation(value = "添加")
+    @Transactional
+    @Log(title = "污泥管理-添加", businessType = BusinessType.INSERT)
+    @PostMapping(value = "/add")
+    public R<Boolean> save(@RequestBody CleanSludge entity) {
+        cleanSludgeService.save(entity);
+        return R.ok();
+    }
+
+    @ApiOperation(value = "修改")
+    @Transactional
+    @Log(title = "污泥管理-修改", businessType = BusinessType.UPDATE)
+    @PostMapping(value = "/edit")
+    public R<Boolean> edit(@RequestBody CleanSludge entity) {
+        cleanSludgeService.updateById(entity);
+        return R.ok();
+    }
+
+    @ApiOperation(value = "详情")
+    @GetMapping(value = "/detail")
+    public R<CleanSludge> detail(String id) {
+        return R.ok(cleanSludgeService.getById( id));
+    }
+
+    @Log(title = "污泥管理-删除", businessType = BusinessType.DELETE)
+    @Transactional
+    @ApiOperation(value = "污泥管理-删除")
+    @DeleteMapping(value = "/delete")
+    public R delete(@RequestParam String ids) {
+        cleanSludgeService.removeBatchByIds(Arrays.asList(ids.split(",")));
+        return R.ok();
+    }
 }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/CleanToiletMaintenanceController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/CleanToiletMaintenanceController.java
index ef98718..63e6239 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/CleanToiletMaintenanceController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/CleanToiletMaintenanceController.java
@@ -1,9 +1,45 @@
 package com.ruoyi.web.controller.api;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
+import cn.afterturn.easypoi.excel.ExcelExportUtil;
+import cn.afterturn.easypoi.excel.ExcelImportUtil;
+import cn.afterturn.easypoi.excel.entity.ExportParams;
+import cn.afterturn.easypoi.excel.entity.ImportParams;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.exception.ServiceException;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.WebUtils;
+import com.ruoyi.system.export.CleanToiletMaintenanceExport;
+import com.ruoyi.system.export.CleanToiletMaintenanceExportNoImg;
+import com.ruoyi.system.model.CleanToiletMaintenance;
+import com.ruoyi.system.model.CleanToiletMaintenance;
+import com.ruoyi.system.query.CleanSludgeListQuery;
+import com.ruoyi.system.service.CleanToiletMaintenanceService;
+import com.ruoyi.system.service.CleanToiletMaintenanceService;
+import com.ruoyi.system.utils.ExcelStyleUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
-import org.springframework.web.bind.annotation.RestController;
+import javax.annotation.Resource;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URLEncoder;
+import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
 
 /**
  * <p>
@@ -14,7 +50,181 @@
  * @since 2025-10-17
  */
 @RestController
+@Api(tags = "厕所维保记录")
 @RequestMapping("/clean-toilet-maintenance")
+@Slf4j
 public class CleanToiletMaintenanceController {
+    @Resource
+    private CleanToiletMaintenanceService cleanToiletMaintenanceService;
 
+    @ApiOperation(value = "厕所维保记录分页列表")
+    @PostMapping(value = "/pageList")
+    public R<PageInfo<CleanToiletMaintenance>> pageList(@RequestBody CleanSludgeListQuery query) {
+        PageInfo<CleanToiletMaintenance> cleanToiletSanitizationPageInfo = cleanToiletMaintenanceService.pageList(query);
+        return R.ok(cleanToiletSanitizationPageInfo);
+    }
+
+    @Log(title = "厕所维保记录导入", businessType = BusinessType.INSERT)
+    @ApiOperation(value = "厕所维保记录导入")
+    @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
+    @PostMapping("/import")
+    public R<String> importCleaner(@RequestPart("file") MultipartFile file) {
+        ImportParams params = new ImportParams();
+        params.setHeadRows(1); //表头行数
+        InputStream inputStream = null;
+        List<CleanToiletMaintenanceExport> locationExcelList;
+        try {
+            inputStream = file.getInputStream();
+            locationExcelList = ExcelImportUtil.importExcel(inputStream,
+                    CleanToiletMaintenanceExport.class, params);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("厕所维保记录导入失败:{}", e.getMessage());
+            throw new ServiceException("厕所维保记录导入失败!");
+        } finally {
+            try {
+                inputStream.close();
+            } catch (IOException e) {
+                throw new ServiceException(e.getMessage());
+            }
+        }
+        if (CollectionUtils.isEmpty(locationExcelList)) {
+            throw new ServiceException("厕所维保记录数据为空!");
+        }
+        List<CleanToiletMaintenance> cleanToiletSanitizations = new ArrayList<>();
+        for (CleanToiletMaintenanceExport locationExcel : locationExcelList) {
+            CleanToiletMaintenance cleanToiletSanitization = new CleanToiletMaintenance();
+            String recordDate = locationExcel.getRecordDate();
+            LocalDate localDate = LocalDate.parse(recordDate);
+            cleanToiletSanitization.setRecordDate(localDate);
+            cleanToiletSanitization.setMaintainer(locationExcel.getMaintainer());
+            cleanToiletSanitization.setMaintenanceTime(locationExcel.getMaintenanceTime());
+            cleanToiletSanitization.setMaintenanceImages(locationExcel.getMaintenanceImages());
+            cleanToiletSanitization.setRemarks(locationExcel.getRemarks());
+            cleanToiletSanitizations.add(cleanToiletSanitization);
+        }
+        cleanToiletMaintenanceService.saveBatch(cleanToiletSanitizations);
+        return R.ok();
+    }
+
+    @ApiOperation(value = "厕所维保记录导出")
+    @Log(title = "厕所维保记录导出", businessType = BusinessType.OTHER)
+    @PostMapping(value = "/export")
+    public void export(@RequestBody CleanSludgeListQuery query) {
+        List<CleanToiletMaintenance> list = cleanToiletMaintenanceService.lambdaQuery()
+                .like(StringUtils.hasLength(query.getRecordDate()), CleanToiletMaintenance::getRecordDate, query.getRecordDate())
+                .list();
+
+        List<CleanToiletMaintenanceExport> cleanToiletSanitizationExports = new ArrayList<>();
+
+        int i = 1;
+        for (CleanToiletMaintenance cleanToiletSanitization : list) {
+            CleanToiletMaintenanceExport cleanToiletSanitizationExport = new CleanToiletMaintenanceExport();
+            cleanToiletSanitizationExport.setNumber(i);
+            LocalDate recordDate = cleanToiletSanitization.getRecordDate();
+            cleanToiletSanitizationExport.setRecordDate(recordDate.toString());
+            cleanToiletSanitizationExport.setMaintainer(cleanToiletSanitization.getMaintainer());
+            cleanToiletSanitizationExport.setMaintenanceTime(cleanToiletSanitization.getMaintenanceTime());
+
+            // 处理图片URL,将逗号分隔的URL转换为EasyPOI需要的格式
+            String imageUrls = cleanToiletSanitization.getMaintenanceImages();
+            if (StringUtils.hasLength(imageUrls)) {
+                // 将逗号分隔的URL转换为分号分隔(EasyPOI支持多图片用分号分隔)
+                cleanToiletSanitizationExport.setMaintenanceImages(imageUrls.replace(",", ";"));
+            }
+
+            cleanToiletSanitizationExport.setRemarks(cleanToiletSanitization.getRemarks());
+            cleanToiletSanitizationExports.add(cleanToiletSanitizationExport);
+            i++;
+        }
+
+        // 设置导出参数,支持图片
+        ExportParams exportParams = new ExportParams();
+        exportParams.setStyle(ExcelStyleUtil.class);
+
+        // 获取excel模板
+        Workbook workbook = ExcelExportUtil.exportExcel(exportParams, CleanToiletMaintenanceExport.class, cleanToiletSanitizationExports);
+        HttpServletResponse response = WebUtils.response();
+        response.setContentType("application/vnd.ms-excel");
+        response.setCharacterEncoding("utf-8");
+        ServletOutputStream outputStream = null;
+        try {
+            String fileName = URLEncoder.encode("厕所维保记录.xls", "utf-8");
+            response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
+            outputStream = response.getOutputStream();
+            workbook.write(outputStream);
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            try {
+                if (outputStream != null) {
+                    outputStream.close();
+                }
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    @ApiOperation(value = "厕所维保记录导入模板下载")
+    @GetMapping("/download")
+    public void download() {
+        List<CleanToiletMaintenanceExportNoImg> locationImportExcels = new ArrayList<>();
+        CleanToiletMaintenanceExportNoImg tLocationImportExcel = new CleanToiletMaintenanceExportNoImg();
+        locationImportExcels.add(tLocationImportExcel);
+        Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), CleanToiletMaintenanceExportNoImg.class, locationImportExcels);
+        HttpServletResponse response = WebUtils.response();
+        ServletOutputStream outputStream = null;
+        try {
+            String fileName = URLEncoder.encode("厕所维保记录导入模板.xls", "utf-8");
+            response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
+            response.setHeader("content-Type", "application/vnd.ms-excel");
+            response.setHeader("Pragma", "no-cache");
+            response.setHeader("Cache-Control", "no-cache");
+            outputStream = response.getOutputStream();
+            workbook.write(outputStream);
+        } catch (IOException e) {
+            e.printStackTrace();
+            System.out.println("厕所维保记录导入模板下载失败!");
+        } finally {
+            try {
+                outputStream.close();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    @ApiOperation(value = "添加")
+    @Transactional
+    @Log(title = "厕所维保记录-添加", businessType = BusinessType.INSERT)
+    @PostMapping(value = "/add")
+    public R<Boolean> save(@RequestBody CleanToiletMaintenance entity) {
+        cleanToiletMaintenanceService.save(entity);
+        return R.ok();
+    }
+
+    @ApiOperation(value = "修改")
+    @Transactional
+    @Log(title = "厕所维保记录-修改", businessType = BusinessType.UPDATE)
+    @PostMapping(value = "/edit")
+    public R<Boolean> edit(@RequestBody CleanToiletMaintenance entity) {
+        cleanToiletMaintenanceService.updateById(entity);
+        return R.ok();
+    }
+
+    @ApiOperation(value = "详情")
+    @GetMapping(value = "/detail")
+    public R<CleanToiletMaintenance> detail(String id) {
+        return R.ok(cleanToiletMaintenanceService.getById(id));
+    }
+
+    @Log(title = "厕所维保记录-删除", businessType = BusinessType.DELETE)
+    @Transactional
+    @ApiOperation(value = "厕所维保记录-删除")
+    @DeleteMapping(value = "/delete")
+    public R delete(@RequestParam String ids) {
+        cleanToiletMaintenanceService.removeBatchByIds(Arrays.asList(ids.split(",")));
+        return R.ok();
+    }
 }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/CleanToiletSanitizationController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/CleanToiletSanitizationController.java
index f49bc22..46d7f2e 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/CleanToiletSanitizationController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/CleanToiletSanitizationController.java
@@ -1,9 +1,47 @@
 package com.ruoyi.web.controller.api;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
+import cn.afterturn.easypoi.excel.ExcelExportUtil;
+import cn.afterturn.easypoi.excel.ExcelImportUtil;
+import cn.afterturn.easypoi.excel.entity.ExportParams;
+import cn.afterturn.easypoi.excel.entity.ImportParams;
+import cn.hutool.json.JSONObject;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.exception.ServiceException;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.WebUtils;
+import com.ruoyi.system.export.CleanToiletSanitizationExport;
+import com.ruoyi.system.model.CleanSludge;
+import com.ruoyi.system.model.CleanToiletSanitization;
+import com.ruoyi.system.model.DrDisplacement;
+import com.ruoyi.system.query.CleanSludgeListQuery;
+import com.ruoyi.system.query.DrDisplacementListQuery;
+import com.ruoyi.system.service.CleanSludgeService;
+import com.ruoyi.system.service.CleanToiletSanitizationService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
-import org.springframework.web.bind.annotation.RestController;
+import javax.annotation.Resource;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URLEncoder;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
 
 /**
  * <p>
@@ -14,7 +52,171 @@
  * @since 2025-10-17
  */
 @RestController
+@Api(tags = "厕所消杀记录")
+@Slf4j
 @RequestMapping("/clean-toilet-sanitization")
 public class CleanToiletSanitizationController {
+    @Resource
+    private CleanToiletSanitizationService cleanToiletSanitizationService;
 
+    @ApiOperation(value = "厕所消杀记录分页列表")
+    @PostMapping(value = "/pageList")
+    public R<PageInfo<CleanToiletSanitization>> pageList(@RequestBody CleanSludgeListQuery query) {
+        PageInfo<CleanToiletSanitization> cleanToiletSanitizationPageInfo = cleanToiletSanitizationService.pageList(query);
+        return R.ok(cleanToiletSanitizationPageInfo);
+    }
+
+    @Log(title = "厕所消杀记录导入", businessType = BusinessType.INSERT)
+    @ApiOperation(value = "厕所消杀记录导入")
+    @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
+    @PostMapping("/import")
+    public R<String> importCleaner(@RequestPart("file") MultipartFile file) {
+        ImportParams params = new ImportParams();
+        params.setHeadRows(1); //表头行数
+        InputStream inputStream = null;
+        List<CleanToiletSanitizationExport> locationExcelList;
+        try {
+            inputStream = file.getInputStream();
+            locationExcelList = ExcelImportUtil.importExcel(inputStream,
+                    CleanToiletSanitizationExport.class, params);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("厕所消杀记录导入失败:{}", e.getMessage());
+            throw new ServiceException("厕所消杀记录导入失败!");
+        } finally {
+            try {
+                inputStream.close();
+            } catch (IOException e) {
+                throw new ServiceException(e.getMessage());
+            }
+        }
+        if (CollectionUtils.isEmpty(locationExcelList)) {
+            throw new ServiceException("厕所消杀记录数据为空!");
+        }
+        List<CleanToiletSanitization> cleanToiletSanitizations = new ArrayList<>();
+        for (CleanToiletSanitizationExport locationExcel : locationExcelList) {
+            CleanToiletSanitization cleanToiletSanitization = new CleanToiletSanitization();
+            String recordDate = locationExcel.getRecordDate();
+            LocalDate localDate = LocalDate.parse(recordDate);
+            cleanToiletSanitization.setRecordDate(localDate);
+            cleanToiletSanitization.setIsCleaned(StringUtils.hasLength(locationExcel.getIsCleaned()) && locationExcel.getIsCleaned().equals("是"));
+            cleanToiletSanitization.setIsDisinfected(StringUtils.hasLength(locationExcel.getIsDisinfected()) && locationExcel.getIsDisinfected().equals("是"));
+            cleanToiletSanitization.setCleaner(locationExcel.getCleaner());
+            cleanToiletSanitization.setInspectionTime(locationExcel.getInspectionTime());
+            cleanToiletSanitization.setInspector(locationExcel.getInspector());
+            cleanToiletSanitization.setInspectionSituation(locationExcel.getInspectionSituation());
+            cleanToiletSanitizations.add(cleanToiletSanitization);
+        }
+        cleanToiletSanitizationService.saveBatch(cleanToiletSanitizations);
+        return R.ok();
+    }
+
+    @ApiOperation(value = "厕所消杀记录导出")
+    @Log(title = "厕所消杀记录导出", businessType = BusinessType.OTHER)
+    @PostMapping(value = "/export")
+    public void export(@RequestBody CleanSludgeListQuery query) {
+        List<CleanToiletSanitization> list = cleanToiletSanitizationService.lambdaQuery()
+                .like(StringUtils.hasLength(query.getRecordDate()), CleanToiletSanitization::getRecordDate, query.getRecordDate())
+                .list();
+
+        List<CleanToiletSanitizationExport> cleanToiletSanitizationExports = new ArrayList<>();
+
+        int i = 1;
+        for (CleanToiletSanitization cleanToiletSanitization : list) {
+            CleanToiletSanitizationExport cleanToiletSanitizationExport = new CleanToiletSanitizationExport();
+            cleanToiletSanitizationExport.setNumber(i);
+            LocalDate recordDate = cleanToiletSanitization.getRecordDate();
+            cleanToiletSanitizationExport.setRecordDate(recordDate.toString());
+            cleanToiletSanitizationExport.setIsCleaned(cleanToiletSanitization.getIsCleaned() ? "是" : "否");
+            cleanToiletSanitizationExport.setIsDisinfected(cleanToiletSanitization.getIsDisinfected() ? "是" : "否");
+            cleanToiletSanitizationExport.setCleaner(cleanToiletSanitization.getCleaner());
+            cleanToiletSanitizationExport.setInspectionTime(cleanToiletSanitization.getInspectionTime());
+            cleanToiletSanitizationExport.setInspector(cleanToiletSanitization.getInspector());
+            cleanToiletSanitizationExport.setInspectionSituation(cleanToiletSanitization.getInspectionSituation());
+            cleanToiletSanitizationExports.add(cleanToiletSanitizationExport);
+            i++;
+        }
+        //1.获取excel模板
+        Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), CleanToiletSanitizationExport.class, cleanToiletSanitizationExports);
+        HttpServletResponse response = WebUtils.response();
+        response.setContentType("application/vnd.ms-excel");
+        response.setCharacterEncoding("utf-8");
+        ServletOutputStream outputStream = null;
+        try {
+            String fileName = URLEncoder.encode("厕所消杀记录.xls", "utf-8");
+            response.setHeader("Content-dispodition", "attachment;filename=" + fileName);
+            outputStream = response.getOutputStream();
+            workbook.write(outputStream);
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            try {
+                outputStream.close();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    @ApiOperation(value = "厕所消杀记录导入模板下载")
+    @GetMapping("/download")
+    public void download() {
+        List<CleanToiletSanitizationExport> locationImportExcels = new ArrayList<>();
+        CleanToiletSanitizationExport tLocationImportExcel = new CleanToiletSanitizationExport();
+        locationImportExcels.add(tLocationImportExcel);
+        Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), CleanToiletSanitizationExport.class, locationImportExcels);
+        HttpServletResponse response = WebUtils.response();
+        ServletOutputStream outputStream = null;
+        try {
+            String fileName = URLEncoder.encode("厕所消杀记录导入模板.xls", "utf-8");
+            response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
+            response.setHeader("content-Type", "application/vnd.ms-excel");
+            response.setHeader("Pragma", "no-cache");
+            response.setHeader("Cache-Control", "no-cache");
+            outputStream = response.getOutputStream();
+            workbook.write(outputStream);
+        } catch (IOException e) {
+            e.printStackTrace();
+            System.out.println("厕所消杀记录导入模板下载失败!");
+        } finally {
+            try {
+                outputStream.close();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    @ApiOperation(value = "添加")
+    @Transactional
+    @Log(title = "厕所消杀记录-添加", businessType = BusinessType.INSERT)
+    @PostMapping(value = "/add")
+    public R<Boolean> save(@RequestBody CleanToiletSanitization entity) {
+        cleanToiletSanitizationService.save(entity);
+        return R.ok();
+    }
+
+    @ApiOperation(value = "修改")
+    @Transactional
+    @Log(title = "厕所消杀记录-修改", businessType = BusinessType.UPDATE)
+    @PostMapping(value = "/edit")
+    public R<Boolean> edit(@RequestBody CleanToiletSanitization entity) {
+        cleanToiletSanitizationService.updateById(entity);
+        return R.ok();
+    }
+
+    @ApiOperation(value = "详情")
+    @GetMapping(value = "/detail")
+    public R<CleanToiletSanitization> detail(String id) {
+        return R.ok(cleanToiletSanitizationService.getById(id));
+    }
+
+    @Log(title = "厕所消杀记录-删除", businessType = BusinessType.DELETE)
+    @Transactional
+    @ApiOperation(value = "厕所消杀记录-删除")
+    @DeleteMapping(value = "/delete")
+    public R delete(@RequestParam String ids) {
+        cleanToiletSanitizationService.removeBatchByIds(Arrays.asList(ids.split(",")));
+        return R.ok();
+    }
 }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DrDisplacementController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DrDisplacementController.java
index a916c9a..e39fd55 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DrDisplacementController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DrDisplacementController.java
@@ -1,8 +1,49 @@
 package com.ruoyi.web.controller.api;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import cn.afterturn.easypoi.excel.ExcelExportUtil;
+import cn.afterturn.easypoi.excel.entity.ExportParams;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.domain.entity.TDept;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.WebUtils;
+import com.ruoyi.common.utils.bean.BeanUtils;
+import com.ruoyi.system.dto.AddDrDisplacementDTO;
+import com.ruoyi.system.model.DrDisplacement;
+import com.ruoyi.system.model.DrDisplacementHouse;
+import com.ruoyi.system.model.DrDisplacementReturnHouse;
+import com.ruoyi.system.model.LandReported;
+import com.ruoyi.system.query.DrDisplacementListQuery;
+import com.ruoyi.system.query.LandReportedListQuery;
+import com.ruoyi.system.service.DrDisplacementHouseService;
+import com.ruoyi.system.service.DrDisplacementReturnHouseService;
+import com.ruoyi.system.service.DrDisplacementService;
+import com.ruoyi.system.service.LandReportedService;
+import com.ruoyi.system.vo.DrDisplacementListVO;
+import com.ruoyi.system.vo.DrDisplacementStatisticsVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.ehcache.impl.persistence.DefaultDiskResourceService;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.net.URLEncoder;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -13,7 +54,215 @@
  * @since 2025-10-17
  */
 @RestController
+@Api(tags = "拆迁情况管理")
 @RequestMapping("/dr-displacement")
 public class DrDisplacementController {
 
+    @Resource
+    private DrDisplacementService drDisplacementService;
+    @Resource
+    private DrDisplacementHouseService drDisplacementHouseService;
+    @Resource
+    private DrDisplacementReturnHouseService drDisplacementReturnHouseService;
+
+    @ApiOperation(value = "拆迁统计")
+    @PostMapping(value = "/statistics")
+    public R<Map<Double,Map<String,Integer>>> statistics() {
+        List<DrDisplacementReturnHouse> houses = drDisplacementReturnHouseService.list();
+
+        // 定义需要统计的面积段
+        List<Double> areaList = Arrays.asList(30.0, 60.0, 80.0, 90.0, 100.0, 110.0, 120.0);
+
+        // 初始化结果集
+        Map<Double, Map<String,Integer>> result = areaList.stream()
+                .collect(Collectors.toMap(
+                        area -> area,
+                        area -> {
+                            Map<String, Integer> typeMap = new HashMap<>();
+                            typeMap.put("营业房", 0);
+                            typeMap.put("库房", 0);
+                            typeMap.put("住房", 0);
+                            return typeMap;
+                        }
+                ));
+
+        // 按面积分组统计
+        Map<Double, List<DrDisplacementReturnHouse>> groupedByArea = houses.stream()
+                .collect(Collectors.groupingBy(DrDisplacementReturnHouse::getArea));
+
+        // 处理统计数据
+        groupedByArea.forEach((area, houseList) -> {
+            if (result.containsKey(area)) {
+                houseList.forEach(house -> {
+                    String returnType = getReturnTypeString(house.getReturnType());
+                    result.get(area).merge(returnType, house.getQuantity(), Integer::sum);
+                });
+            }
+        });
+        return R.ok(result);
+    }
+
+
+
+    private String getReturnTypeString(Integer returnType) {
+        switch (returnType) {
+            case 0: return "营业房";
+            case 1: return "住房";
+            case 2: return "库房";
+            default: return "未知";
+        }
+    }
+    @ApiOperation(value = "拆迁情况分页列表")
+    @PostMapping(value = "/pageList")
+    public R<DrDisplacementListVO> pageList(@RequestBody DrDisplacementListQuery query) {
+        DrDisplacementListVO drDisplacementListVO = new DrDisplacementListVO();
+        PageInfo<DrDisplacement> drDisplacementPageInfo = drDisplacementService.pageList(query);
+        if (drDisplacementPageInfo.getRecords().isEmpty()){
+            drDisplacementListVO.setTotalCount(0);
+            drDisplacementListVO.setTotalArea(0.0);
+            drDisplacementListVO.setPageList(new PageInfo<>());
+            return R.ok(drDisplacementListVO);
+        }
+        Map<Integer, List<DrDisplacementHouse>> houseMap = drDisplacementHouseService.lambdaQuery()
+                .in(DrDisplacementHouse::getDisplacementId, drDisplacementPageInfo.getRecords()
+                        .stream().map(DrDisplacement::getId).collect(Collectors.toList()))
+                .list().stream().collect(Collectors.groupingBy(DrDisplacementHouse::getDisplacementId));
+
+        for (DrDisplacement record : drDisplacementPageInfo.getRecords()) {
+            StringBuilder temp = new StringBuilder();
+            List<DrDisplacementHouse> drDisplacementHouses = houseMap.get(record.getId());
+            if (drDisplacementHouses!=null){
+                for (DrDisplacementHouse house : drDisplacementHouses) {
+                    temp.append(house.getConstructionType()).append(",");
+                }
+                record.setConstructionTypes(temp.substring(0, temp.length() - 1));
+            }
+        }
+        List<DrDisplacement> list = drDisplacementService.lambdaQuery()
+                .like(StringUtils.hasLength(query.getName()), DrDisplacement::getName, query.getName())
+                .eq(query.getCommunityId() != null, DrDisplacement::getCommunityId, query.getCommunityId())
+                .like(StringUtils.hasLength(query.getPhone()), DrDisplacement::getPhone, query.getPhone())
+                .like(StringUtils.hasLength(query.getIdCard()), DrDisplacement::getIdCard, query.getIdCard()).list();
+        double totalArea = 0.0;
+        for (DrDisplacement drDisplacement : list) {
+            totalArea += drDisplacement.getTotalArea();
+        }
+        drDisplacementListVO.setTotalCount(list.size());
+        drDisplacementListVO.setTotalArea(totalArea);
+        drDisplacementListVO.setPageList(drDisplacementPageInfo);
+        return R.ok(drDisplacementListVO);
+    }
+    @ApiOperation(value = "拆迁情况导出")
+    @Log(title = "拆迁情况导出", businessType = BusinessType.OTHER)
+    @PostMapping(value = "/export")
+    public void export(@RequestBody DrDisplacementListQuery query) {
+        List<DrDisplacement> list = drDisplacementService.lambdaQuery()
+                .like(StringUtils.hasLength(query.getName()), DrDisplacement::getName, query.getName())
+                .eq(query.getCommunityId() != null, DrDisplacement::getCommunityId, query.getCommunityId())
+                .like(StringUtils.hasLength(query.getPhone()), DrDisplacement::getPhone, query.getPhone())
+                .like(StringUtils.hasLength(query.getIdCard()), DrDisplacement::getIdCard, query.getIdCard()).list();
+        if (!list.isEmpty()){
+            Map<Integer, List<DrDisplacementHouse>> houseMap = drDisplacementHouseService.lambdaQuery()
+                    .in(DrDisplacementHouse::getDisplacementId, list
+                            .stream().map(DrDisplacement::getId).collect(Collectors.toList()))
+                    .list().stream().collect(Collectors.groupingBy(DrDisplacementHouse::getDisplacementId));
+            for (DrDisplacement record : list) {
+                StringBuilder temp = new StringBuilder();
+                List<DrDisplacementHouse> drDisplacementHouses = houseMap.get(record.getId());
+                if (drDisplacementHouses!=null){
+                    for (DrDisplacementHouse house : drDisplacementHouses) {
+                        temp.append(house.getConstructionType()).append(",");
+                    }
+                    record.setConstructionTypes(temp.substring(0, temp.length() - 1));
+                }
+            }
+        }
+        //1.获取excel模板
+        Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), DrDisplacement.class, list);
+        HttpServletResponse response = WebUtils.response();
+        response.setContentType("application/vnd.ms-excel");
+        response.setCharacterEncoding("utf-8");
+        ServletOutputStream outputStream = null;
+        try {
+            String fileName = URLEncoder.encode("拆迁情况.xls", "utf-8");
+            response.setHeader("Content-dispodition", "attachment;filename=" + fileName);
+            outputStream = response.getOutputStream();
+            workbook.write(outputStream);
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            try {
+                outputStream.close();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+    @ApiOperation(value = "添加")
+    @Transactional
+    @Log(title = "拆迁情况-添加", businessType = BusinessType.INSERT)
+    @PostMapping(value = "/add")
+    public R<Boolean> save(@RequestBody AddDrDisplacementDTO entity) {
+        drDisplacementService.save(entity);
+        List<DrDisplacementHouse> drDisplacementHouses = entity.getDrDisplacementHouses();
+        for (DrDisplacementHouse drDisplacementHouse : drDisplacementHouses) {
+            drDisplacementHouse.setDisplacementId(entity.getId());
+        }
+        drDisplacementHouseService.saveBatch(drDisplacementHouses);
+        List<DrDisplacementReturnHouse> drDisplacementReturnHouses = entity.getDrDisplacementReturnHouses();
+        for (DrDisplacementReturnHouse drDisplacementReturnHouse : drDisplacementReturnHouses) {
+            drDisplacementReturnHouse.setDisplacementId(entity.getId());
+        }
+        drDisplacementReturnHouseService.saveBatch(entity.getDrDisplacementReturnHouses());
+        return R.ok();
+    }
+
+    @ApiOperation(value = "修改")
+    @Transactional
+    @Log(title = "拆迁情况-修改", businessType = BusinessType.UPDATE)
+    @PostMapping(value = "/edit")
+    public R<Boolean> edit(@RequestBody AddDrDisplacementDTO entity) {
+        drDisplacementService.updateById(entity);
+        drDisplacementHouseService.remove(new LambdaQueryWrapper<DrDisplacementHouse>()
+                .eq(DrDisplacementHouse::getDisplacementId, entity.getId()));
+        List<DrDisplacementHouse> drDisplacementHouses = entity.getDrDisplacementHouses();
+        for (DrDisplacementHouse drDisplacementHouse : drDisplacementHouses) {
+            drDisplacementHouse.setDisplacementId(entity.getId());
+        }
+        drDisplacementHouseService.saveBatch(drDisplacementHouses);
+        drDisplacementReturnHouseService.remove(new LambdaQueryWrapper<DrDisplacementReturnHouse>()
+                .eq(DrDisplacementReturnHouse::getDisplacementId, entity.getId()));
+        List<DrDisplacementReturnHouse> drDisplacementReturnHouses = entity.getDrDisplacementReturnHouses();
+        for (DrDisplacementReturnHouse drDisplacementReturnHouse : drDisplacementReturnHouses) {
+            drDisplacementReturnHouse.setDisplacementId(entity.getId());
+        }
+        drDisplacementReturnHouseService.saveBatch(entity.getDrDisplacementReturnHouses());
+        return R.ok();
+    }
+
+    @ApiOperation(value = "详情")
+    @GetMapping(value = "/detail")
+    public R<AddDrDisplacementDTO> detail(String id) {
+        AddDrDisplacementDTO addDrDisplacementDTO = new AddDrDisplacementDTO();
+        DrDisplacement drDisplacement = drDisplacementService.getById(id);
+        BeanUtils.copyProperties(drDisplacement, addDrDisplacementDTO);
+        List<DrDisplacementHouse> drDisplacementHouses = drDisplacementHouseService.lambdaQuery().eq(DrDisplacementHouse::getDisplacementId, id).list();
+        List<DrDisplacementReturnHouse> drDisplacementReturnHouses = drDisplacementReturnHouseService.lambdaQuery().eq(DrDisplacementReturnHouse::getDisplacementId, id).list();
+        addDrDisplacementDTO.setDrDisplacementHouses(drDisplacementHouses);
+        addDrDisplacementDTO.setDrDisplacementReturnHouses(drDisplacementReturnHouses);
+        return R.ok(addDrDisplacementDTO);
+    }
+
+    @Log(title = "拆迁情况-删除", businessType = BusinessType.DELETE)
+    @Transactional
+    @ApiOperation(value = "拆迁情况-删除")
+    @DeleteMapping(value = "/delete")
+    public R delete(@RequestParam String ids) {
+        drDisplacementService.removeBatchByIds(Arrays.asList(ids.split(",")));
+        drDisplacementHouseService.remove(new LambdaQueryWrapper<DrDisplacementHouse>()
+                .in(DrDisplacementHouse::getDisplacementId, Arrays.asList(ids.split(","))));
+        drDisplacementReturnHouseService.remove(new LambdaQueryWrapper<DrDisplacementReturnHouse>()
+                .in(DrDisplacementReturnHouse::getDisplacementId, Arrays.asList(ids.split(","))));
+        return R.ok();
+    }
 }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalController.java
index a87d9c7..6b3f8c9 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalController.java
@@ -3,10 +3,13 @@
 
 import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.system.dto.SetDeptDTO;
 import com.ruoyi.system.model.OaApproval;
 import com.ruoyi.system.query.ApprovalListQuery;
 import com.ruoyi.system.query.ApprovalNodeListQuery;
+import com.ruoyi.system.service.ISysUserService;
 import com.ruoyi.system.service.OaApprovalService;
 import com.ruoyi.system.vo.system.ApprovalVO;
 import io.swagger.annotations.Api;
@@ -14,6 +17,7 @@
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -30,6 +34,10 @@
 public class OaApprovalController {
     @Resource
     private OaApprovalService oaApprovalService;
+    @Resource
+    private ISysUserService sysUserService;
+    @Resource
+    private TokenService tokenService;
 
     /**
      * 获取部门树列表
@@ -42,7 +50,23 @@
     @ApiOperation("流程设计不分页列表")
     @PostMapping("/listAll")
     public R<List<OaApproval>> listAll() {
-        return R.ok( oaApprovalService.list());
+        List<OaApproval> res = new ArrayList<>();
+        List<OaApproval> approvals = oaApprovalService.list();
+        Long userId = tokenService.getLoginUser().getUserId();
+        SysUser sysUser = sysUserService.selectUserById(userId);
+        String deptId = sysUser.getDeptId();
+        for (OaApproval approval : approvals) {
+            if (approval.getDeptIds().equals("-1")){
+                res.add(approval);
+            }else{
+                for (String s : approval.getDeptIds().split(",")) {
+                    if (s.equals(deptId)){
+                        res.add(approval);
+                    }
+                }
+            }
+        }
+        return R.ok(res );
     }
     @ApiOperation(value = "启用禁用")
     @GetMapping(value = "/updateStatus")
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 bd7634d..3ebd6e8 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
@@ -263,7 +263,7 @@
                     if (oaApprovalApplicationAssetBack!=null){
                         approvalTodoVO.setTitle(oaApprovalApplicationAssetBack.getTitle());
 
-                        approvalTodoVO.setOperateTime(oaApprovalApplicationAssetBack.getExpectReturnDate());
+                        approvalTodoVO.setOperateTime(oaApprovalApplicationAssetBack.getOperateTime());
                     }
                     break;
                 case 10:
@@ -466,7 +466,7 @@
                     if (oaApprovalApplicationAssetBack!=null){
                         approvalTodoVO.setTitle(oaApprovalApplicationAssetBack.getTitle());
 
-                        approvalTodoVO.setOperateTime(oaApprovalApplicationAssetBack.getExpectReturnDate());
+                        approvalTodoVO.setOperateTime(oaApprovalApplicationAssetBack.getOperateTime());
                     }
                     break;
                 case 10:
@@ -601,27 +601,72 @@
                             List<OaApprovalApplicationAssetItem> back = approvalApplicationAssetItemService.lambdaQuery()
                                     .eq(OaApprovalApplicationAssetItem::getApprovalApplicationId, approvalApplications.getId())
                                     .list();
-                           // 借用资产条数
-                            OaApprovalApplicationAsset borrowApplications = approvalApplicationAssetService.lambdaQuery()
+                            OaApprovalApplicationAsset backAsset = approvalApplicationAssetService.lambdaQuery()
                                     .eq(OaApprovalApplicationAsset::getApprovalApplicationId, approvalApplications.getId())
                                     .last("limit 1").one();
+                            // 借用资产条数
                             List<OaApprovalApplicationAssetItem> borrow = approvalApplicationAssetItemService.lambdaQuery()
-                                    .eq(OaApprovalApplicationAssetItem::getApprovalApplicationId, borrowApplications.getId())
+                                    .eq(OaApprovalApplicationAssetItem::getApprovalApplicationId, backAsset.getBorrowApplicationId())
                                     .list();
+                            List<AssetMain> list = assetMainService.lambdaQuery().in(AssetMain::getId, back.stream().map(OaApprovalApplicationAssetItem::getAssetMainId)
+                                            .collect(Collectors.toList()))
+                                    .list();
+                            List<AssetMain> listBorrow = assetMainService.lambdaQuery().in(AssetMain::getId, borrow.stream().map(OaApprovalApplicationAssetItem::getAssetMainId)
+                                            .collect(Collectors.toList()))
+                                    .list();
+                            OaApprovalApplicationAsset borrowApplicationAsset = approvalApplicationAssetService.lambdaQuery()
+                                    .eq(OaApprovalApplicationAsset::getApprovalApplicationId, backAsset.getBorrowApplicationId())
+                                    .last("limit 1").one();
                             if (back.size()==borrow.size()){
-                                borrowApplications.setReturnStatus(2);
+                                for (AssetMain assetMain : list) {
+                                    assetMain.setBorrowed(0);
+                                    assetMain.setAssetStatus("闲置");
+                                }
+
+                                backAsset.setReturnStatus(2);
+                                borrowApplicationAsset.setReturnStatus(2);
                             }else if (!back.isEmpty()){
-                                borrowApplications.setReturnStatus(1);
+                                for (AssetMain assetMain : list) {
+                                    assetMain.setBorrowed(1);
+
+                                }
+                                backAsset.setReturnStatus(1);
+                                borrowApplicationAsset.setReturnStatus(1);
+
                             }else{
-                                borrowApplications.setReturnStatus(0);
+                                for (AssetMain assetMain : list) {
+                                    assetMain.setBorrowed(1);
+
+                                }
+                                backAsset.setReturnStatus(0);
+                                borrowApplicationAsset.setReturnStatus(0);
+
                             }
-                            approvalApplicationAssetService.updateById(borrowApplications);
+                            assetMainService.updateBatchById(list);
+
+
+                            approvalApplicationAssetService.updateById(backAsset);
+                            approvalApplicationAssetService.updateById(borrowApplicationAsset);
                             saveAssetRecord(0,ApprovalTypeEnum.RETURN.getDesc(),back.stream().map(OaApprovalApplicationAssetItem::getAssetMainId)
                                     .collect(Collectors.toList()));
 
                         case 10:
+                            OaApprovalApplicationDispose approvalApplicationDispose = approvalApplicationDisposeService.lambdaQuery()
+                                    .eq(OaApprovalApplicationDispose::getApprovalApplicationId, approvalApplications.getId())
+                                    .last("limit 1").one();
                             assetMains.forEach(assetMain -> {
                                 assetMain.setDisposed(1);
+                                switch (approvalApplicationDispose.getDisposeType()){
+                                    case 0:
+                                        assetMain.setAssetStatus("报废");
+                                        break;
+                                    case 1:
+                                        assetMain.setAssetStatus("报损");
+                                        break;
+                                    case 2:
+                                        assetMain.setAssetStatus("捐赠");
+                                        break;
+                                }
                             });
                             saveAssetRecord(null,ApprovalTypeEnum.ASSET_DISPOSE.getDesc(),assetMains
                                     .stream().map(AssetMain::getId).collect(Collectors.toList()));
@@ -629,13 +674,17 @@
                         case 7:
                             assetMains.forEach(assetMain -> {
                                 assetMain.setInUse(1);
+                                assetMain.setAssetStatus("使用中");
                             });
                             saveAssetRecord(1,ApprovalTypeEnum.GRAB.getDesc(),assetMains
                                     .stream().map(AssetMain::getId).collect(Collectors.toList()));
                             break;
+
+
                         default:
                             assetMains.forEach(assetMain -> {
                                 assetMain.setBorrowed(1);
+                                assetMain.setAssetStatus("使用中");
                             });
                             saveAssetRecord(1,ApprovalTypeEnum.BORROW.getDesc(),assetMains
                                     .stream().map(AssetMain::getId).collect(Collectors.toList()));
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 e3daf29..84a14f5 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
@@ -783,7 +783,7 @@
         res.setApplicationReason(approvalApplicationsBack.getApplicationReason());
         res.setAttachmentUrl(approvalApplicationsBack.getAttachmentUrl());
         res.setOperateTime(approvalApplicationAssetBack.getOperateTime());
-        res.setExpectReturnDate(approvalApplicationAssetBack.getExpectReturnDate());
+        res.setExpectReturnDate(approvalApplicationAssetBack.getOperateTime());
         res.setTitle(approvalApplicationAssetBack.getTitle());
         res.setApplicationCode(approvalApplications.getApplicationCode());
         res.setIsAudit(extracted(id, approvalApplications));
@@ -1077,6 +1077,7 @@
         if (sysUser!=null){
             approvalFlowNodeListVO.setUserName(sysUser.getNickName());
         }
+        approvalFlowNodeListVO.setSignFlag(false);
         approvalFlowNodeListVOS.add(approvalFlowNodeListVO);
         for (OaApprovalFlowNode approvalFlowNode : approvalFlowNodes) {
             ApprovalFlowNodeListVO approvalFlowNodeVO = new ApprovalFlowNodeListVO();
@@ -1093,6 +1094,7 @@
             }else{
                 approvalFlowNodeVO.setFlowName(approvalFlowNode.getFlowName());
             }
+            approvalFlowNodeVO.setSignFlag(approvalFlowNode.getSignFlag());
             approvalFlowNodeListVOS.add(approvalFlowNodeVO);
         }
         return approvalFlowNodeListVOS;
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
index 04c4092..94295e0 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
@@ -22,6 +22,7 @@
 import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.system.dto.SysUserUpdateStatusDTO;
 import com.ruoyi.system.importExcel.EmployeeImportExcel;
+import com.ruoyi.system.model.OaApprovalFlowNode;
 import com.ruoyi.system.query.SysUserQuery;
 import com.ruoyi.system.service.*;
 import com.ruoyi.system.vo.system.SysUserVO;
@@ -71,6 +72,8 @@
 public class SysUserController extends BaseController {
     @Autowired
     private ISysUserService userService;
+    @Autowired
+    private OaApprovalFlowNodeService oaApprovalFlowNodeService;
 
     @Autowired
     private ISysRoleService roleService;
@@ -182,13 +185,12 @@
     @Log(title = "用户信息-新增用户", businessType = BusinessType.INSERT)
     @PostMapping("/add")
     public AjaxResult add(@Validated @RequestBody SysUser user) {
-        user.setUserName(user.getUserName());
+        user.setUserName(user.getPhonenumber());
         if (!userService.checkUserNameUnique(user)) {
             return error("新增用户'" + user.getUserName() + "'失败,登录账号已存在");
         } else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) {
             return error("新增用户'" + user.getUserName() + "'失败,手机号码已存在");
         }
-        user.setUserName(user.getPhonenumber());
         user.setCreateBy(getUsername());
         user.setPassword(SecurityUtils.encryptPassword("123456"));
         userService.insertUser(user);
@@ -517,6 +519,15 @@
         if (userIds.contains(getUserId())) {
             return error("当前用户不能删除");
         }
+        List<OaApprovalFlowNode> approvalFlowNodes = oaApprovalFlowNodeService.lambdaQuery().eq(OaApprovalFlowNode::getApprovalType, 2)
+                .list();
+        for (OaApprovalFlowNode approvalFlowNode : approvalFlowNodes) {
+            for (String s : approvalFlowNode.getApprovalIds().split(",")) {
+                if (s.equals(userIds.toString())) {
+                    return error("审批流程:"+approvalFlowNode.getFlowName()+"存在该用户,请先删除该用户下的审批流程");
+                }
+            }
+        }
         return AjaxResult.success(userService.deleteUserByIds(userIds));
     }
 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/AddDrDisplacementDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/AddDrDisplacementDTO.java
new file mode 100644
index 0000000..c454fef
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/AddDrDisplacementDTO.java
@@ -0,0 +1,23 @@
+package com.ruoyi.system.dto;
+
+import com.ruoyi.system.model.DrDisplacement;
+import com.ruoyi.system.model.DrDisplacementHouse;
+import com.ruoyi.system.model.DrDisplacementReturnHouse;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+@ApiModel(value = "添加拆迁情况DTO")
+public class AddDrDisplacementDTO extends DrDisplacement {
+
+    @ApiModelProperty(value = "拆迁情况房屋还房种类")
+    private List<DrDisplacementReturnHouse> drDisplacementReturnHouses;
+    @ApiModelProperty(value = "拆迁情况房屋面积明细")
+    private List<DrDisplacementHouse> drDisplacementHouses;
+
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/export/CleanToiletMaintenanceExport.java b/ruoyi-system/src/main/java/com/ruoyi/system/export/CleanToiletMaintenanceExport.java
new file mode 100644
index 0000000..216a85b
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/export/CleanToiletMaintenanceExport.java
@@ -0,0 +1,32 @@
+package com.ruoyi.system.export;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+
+@Data
+@ApiModel(value = "厕所维保记录导出excel")
+public class CleanToiletMaintenanceExport {
+    @Excel(name = "序号", width = 10)
+    private Integer number;
+
+    @Excel(name = "记录日期", width = 15)
+    private String recordDate;
+
+    @Excel(name = "维护人员", width = 15)
+    private String maintainer;
+
+    @Excel(name = "维护时间", width = 15)
+    private String maintenanceTime;
+
+    // 关键:将图片字段标记为图片类型
+    @Excel(name = "维护图片", width = 30, type = 2, imageType = 1)
+    private String maintenanceImages;
+
+    @Excel(name = "备注", width = 30)
+    private String remarks;
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/export/CleanToiletMaintenanceExportNoImg.java b/ruoyi-system/src/main/java/com/ruoyi/system/export/CleanToiletMaintenanceExportNoImg.java
new file mode 100644
index 0000000..1a0a0fa
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/export/CleanToiletMaintenanceExportNoImg.java
@@ -0,0 +1,25 @@
+package com.ruoyi.system.export;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "厕所维保记录没有图片导出excel")
+public class CleanToiletMaintenanceExportNoImg {
+    @Excel(name = "序号", width = 10)
+    private Integer number;
+
+    @Excel(name = "记录日期", width = 15)
+    private String recordDate;
+
+    @Excel(name = "维护人员", width = 15)
+    private String maintainer;
+
+    @Excel(name = "维护时间", width = 15)
+    private String maintenanceTime;
+
+
+    @Excel(name = "备注", width = 30)
+    private String remarks;
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/export/CleanToiletSanitizationExport.java b/ruoyi-system/src/main/java/com/ruoyi/system/export/CleanToiletSanitizationExport.java
new file mode 100644
index 0000000..d06c4d5
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/export/CleanToiletSanitizationExport.java
@@ -0,0 +1,33 @@
+package com.ruoyi.system.export;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel(value = "厕所消杀记录导出excel")
+public class CleanToiletSanitizationExport implements Serializable {
+    @Excel(name = "序号", width = 30)
+    private Integer number;
+    @Excel(name = "日期", width = 30)
+    private String recordDate;
+    @Excel(name = "是否清洁", width = 30)
+    private String isCleaned;
+    @Excel(name = "是否清洁", width = 30)
+    private String isDisinfected;
+    @Excel(name = "保洁员", width = 30)
+    private String cleaner;
+
+    @Excel(name = "巡查时间", width = 30)
+    private String inspectionTime;
+
+    @Excel(name = "巡查人", width = 30)
+    private String inspector;
+
+    @Excel(name = "巡查情况", width = 40)
+    private String inspectionSituation;
+
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CleanSludgeMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CleanSludgeMapper.java
index 53ed6d4..fefbc48 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CleanSludgeMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CleanSludgeMapper.java
@@ -1,7 +1,13 @@
 package com.ruoyi.system.mapper;
 
+import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.system.model.CleanSludge;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.system.query.CleanSludgeListQuery;
+import com.ruoyi.system.query.DrDisplacementListQuery;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +19,6 @@
  */
 public interface CleanSludgeMapper extends BaseMapper<CleanSludge> {
 
+    List<CleanSludge> pageList(@Param("query") CleanSludgeListQuery query, @Param("pageInfo") PageInfo<CleanSludge> pageInfo);
+
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CleanToiletMaintenanceMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CleanToiletMaintenanceMapper.java
index 5061718..94b3345 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CleanToiletMaintenanceMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CleanToiletMaintenanceMapper.java
@@ -1,7 +1,12 @@
 package com.ruoyi.system.mapper;
 
+import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.system.model.CleanToiletMaintenance;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.system.query.CleanSludgeListQuery;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +18,5 @@
  */
 public interface CleanToiletMaintenanceMapper extends BaseMapper<CleanToiletMaintenance> {
 
+    List<CleanToiletMaintenance> pageList(@Param("query") CleanSludgeListQuery query, @Param("pageInfo") PageInfo<CleanToiletMaintenance> pageInfo);
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CleanToiletSanitizationMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CleanToiletSanitizationMapper.java
index 4d699b0..d2e04dc 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CleanToiletSanitizationMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/CleanToiletSanitizationMapper.java
@@ -1,7 +1,12 @@
 package com.ruoyi.system.mapper;
 
+import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.system.model.CleanToiletSanitization;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.system.query.CleanSludgeListQuery;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +18,6 @@
  */
 public interface CleanToiletSanitizationMapper extends BaseMapper<CleanToiletSanitization> {
 
+    List<CleanToiletSanitization> pageList(@Param("query") CleanSludgeListQuery query, @Param("pageInfo") PageInfo<CleanToiletSanitization> pageInfo);
+
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/DrDisplacementMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/DrDisplacementMapper.java
index c0d9a8d..352307c 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/DrDisplacementMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/DrDisplacementMapper.java
@@ -1,7 +1,12 @@
 package com.ruoyi.system.mapper;
 
+import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.system.model.DrDisplacement;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.system.query.DrDisplacementListQuery;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +18,6 @@
  */
 public interface DrDisplacementMapper extends BaseMapper<DrDisplacement> {
 
+    List<DrDisplacement> pageList(@Param("query") DrDisplacementListQuery query,@Param("pageInfo") PageInfo<DrDisplacement> pageInfo);
+
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/AssetMain.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/AssetMain.java
index 0c1665f..401e08d 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/AssetMain.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/AssetMain.java
@@ -50,6 +50,9 @@
     @ApiModelProperty(value = "资产名称")
     @TableField("asset_name")
     private String assetName;
+    @ApiModelProperty(value = "房号")
+    @TableField(exist = false)
+    private String roomNumber;
 
     @ApiModelProperty(value = "规格型号")
     @TableField("specification_model")
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/AssetUseRecord.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/AssetUseRecord.java
index e8cd977..ddb9d44 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/AssetUseRecord.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/AssetUseRecord.java
@@ -5,6 +5,7 @@
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -40,7 +41,7 @@
 
     @ApiModelProperty(value = "使用状态")
     @TableField("status")
-    private Integer status;
+    private String status;
 
     @ApiModelProperty(value = "使用人")
     @TableField("user_name")
@@ -48,10 +49,12 @@
 
     @ApiModelProperty(value = "开始时间")
     @TableField("start_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private LocalDateTime startTime;
 
     @ApiModelProperty(value = "结束时间")
     @TableField("end_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private LocalDateTime endTime;
 
     @ApiModelProperty(value = "金额")
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/CleanSludge.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/CleanSludge.java
index d9fd196..b20e07b 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/CleanSludge.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/CleanSludge.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -36,6 +37,7 @@
     private Integer id;
 
     @ApiModelProperty(value = "日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private LocalDate recordDate;
 
     @ApiModelProperty(value = "污泥产生情况-脱水方式")
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/CleanToiletMaintenance.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/CleanToiletMaintenance.java
index 689f38b..3e4df54 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/CleanToiletMaintenance.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/CleanToiletMaintenance.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -35,13 +36,14 @@
     private Integer id;
 
     @ApiModelProperty(value = "日期")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private LocalDate recordDate;
 
     @ApiModelProperty(value = "维保人")
     private String maintainer;
 
     @ApiModelProperty(value = "维保时间")
-    private LocalDateTime maintenanceTime;
+    private String maintenanceTime;
 
     @ApiModelProperty(value = "维保图片(多张图片使用英文逗号隔开)")
     private String maintenanceImages;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/CleanToiletSanitization.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/CleanToiletSanitization.java
index ba590a4..f7d68c6 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/CleanToiletSanitization.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/CleanToiletSanitization.java
@@ -47,7 +47,7 @@
     private String cleaner;
 
     @ApiModelProperty(value = "巡查时间")
-    private LocalDateTime inspectionTime;
+    private String inspectionTime;
 
     @ApiModelProperty(value = "巡查人")
     private String inspector;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/DrDisplacement.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/DrDisplacement.java
index f00c3a4..a8b7add 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/DrDisplacement.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/DrDisplacement.java
@@ -1,5 +1,6 @@
 package com.ruoyi.system.model;
 
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -38,24 +39,31 @@
     private Integer id;
 
     @ApiModelProperty(value = "姓名")
+    @Excel(name = "姓名", width = 20,orderNum = "1")
     private String name;
 
     @ApiModelProperty(value = "联系电话")
+    @Excel(name = "电话", width = 20,orderNum = "2")
+
     private String phone;
 
     @ApiModelProperty(value = "村社ID")
     private Integer communityId;
 
     @ApiModelProperty(value = "村社名称")
+    @Excel(name = "村社", width = 40,orderNum = "3")
+
     private String communityName;
 
     @ApiModelProperty(value = "身份证")
+    @Excel(name = "村社", width = 40,orderNum = "4")
     private String idCard;
 
     @ApiModelProperty(value = "坐落地点")
+    @Excel(name = "房屋总面积", width = 40,orderNum = "7")
     private String address;
-
     @ApiModelProperty(value = "房屋总面积(㎡)")
+    @Excel(name = "房屋总面积", width = 40,orderNum = "5")
     private Double totalArea;
 
     @ApiModelProperty(value = "是否安置")
@@ -113,6 +121,8 @@
     @ApiModelProperty(value = "是否删除 0-否,1-是")
     @TableLogic
     private Boolean disabled;
-
+    @ApiModelProperty(value = "结构")
+    @TableField(exist = false)
+    private String constructionTypes;
 
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/CleanSludgeListQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/CleanSludgeListQuery.java
new file mode 100644
index 0000000..fafbe1c
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/CleanSludgeListQuery.java
@@ -0,0 +1,15 @@
+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;
+
+@Data
+@ApiModel(value = "污泥管理分页列表query")
+public class CleanSludgeListQuery extends BasePage {
+    @ApiModelProperty(value = "日期 格式yyyy-MM-dd")
+    private String recordDate;
+
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/DrDisplacementListQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/DrDisplacementListQuery.java
new file mode 100644
index 0000000..dff401c
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/DrDisplacementListQuery.java
@@ -0,0 +1,20 @@
+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;
+
+@Data
+@ApiModel(value = "拆迁情况分页列表query")
+public class DrDisplacementListQuery extends BasePage {
+    @ApiModelProperty(value = "姓名")
+    private String name;
+    @ApiModelProperty(value = "村社id")
+    private String communityId;
+    @ApiModelProperty(value = "联系电话")
+    private String phone;
+    @ApiModelProperty(value = "身份证号")
+    private String idCard;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/CleanSludgeService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/CleanSludgeService.java
index 9030029..fb2f8a2 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/CleanSludgeService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/CleanSludgeService.java
@@ -1,7 +1,10 @@
 package com.ruoyi.system.service;
 
+import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.system.model.CleanSludge;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.system.query.CleanSludgeListQuery;
+import com.ruoyi.system.query.DrDisplacementListQuery;
 
 /**
  * <p>
@@ -13,4 +16,5 @@
  */
 public interface CleanSludgeService extends IService<CleanSludge> {
 
+    PageInfo<CleanSludge> pageList(CleanSludgeListQuery query);
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/CleanToiletMaintenanceService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/CleanToiletMaintenanceService.java
index ae36d4e..a167045 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/CleanToiletMaintenanceService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/CleanToiletMaintenanceService.java
@@ -1,7 +1,9 @@
 package com.ruoyi.system.service;
 
+import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.system.model.CleanToiletMaintenance;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.system.query.CleanSludgeListQuery;
 
 /**
  * <p>
@@ -13,4 +15,5 @@
  */
 public interface CleanToiletMaintenanceService extends IService<CleanToiletMaintenance> {
 
+    PageInfo<CleanToiletMaintenance> pageList(CleanSludgeListQuery query);
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/CleanToiletSanitizationService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/CleanToiletSanitizationService.java
index c04cde3..b9020ea 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/CleanToiletSanitizationService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/CleanToiletSanitizationService.java
@@ -1,7 +1,9 @@
 package com.ruoyi.system.service;
 
+import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.system.model.CleanToiletSanitization;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.system.query.CleanSludgeListQuery;
 
 /**
  * <p>
@@ -13,4 +15,5 @@
  */
 public interface CleanToiletSanitizationService extends IService<CleanToiletSanitization> {
 
+    PageInfo<CleanToiletSanitization> pageList(CleanSludgeListQuery query);
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/DrDisplacementService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/DrDisplacementService.java
index c1d209d..58da646 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/DrDisplacementService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/DrDisplacementService.java
@@ -1,7 +1,9 @@
 package com.ruoyi.system.service;
 
+import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.system.model.DrDisplacement;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.system.query.DrDisplacementListQuery;
 
 /**
  * <p>
@@ -13,4 +15,6 @@
  */
 public interface DrDisplacementService extends IService<DrDisplacement> {
 
+    PageInfo<DrDisplacement> pageList(DrDisplacementListQuery query);
+
 }
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 5b636b6..2e25429 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
@@ -348,7 +348,7 @@
                         idleCount += assetMain.getQuantity();
                     }else if (assetMain.getAssetStatus().contains("使用中")){
                         useCount += assetMain.getQuantity();
-                    }else if (assetMain.getAssetStatus().contains("损坏") || assetMain.getAssetStatus().contains("报废")){
+                    }else if (assetMain.getAssetStatus().contains("损") || assetMain.getAssetStatus().contains("废")){
                         disposeCount += assetMain.getQuantity();
                     }else{
                         otherCount += assetMain.getQuantity();
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CleanSludgeServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CleanSludgeServiceImpl.java
index 6877379..57cefbd 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CleanSludgeServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CleanSludgeServiceImpl.java
@@ -1,10 +1,16 @@
 package com.ruoyi.system.service.impl;
 
+import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.system.model.CleanSludge;
 import com.ruoyi.system.mapper.CleanSludgeMapper;
+import com.ruoyi.system.model.DrDisplacement;
+import com.ruoyi.system.query.CleanSludgeListQuery;
+import com.ruoyi.system.query.DrDisplacementListQuery;
 import com.ruoyi.system.service.CleanSludgeService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
+
+import java.util.List;
 
 /**
  * <p>
@@ -17,4 +23,11 @@
 @Service
 public class CleanSludgeServiceImpl extends ServiceImpl<CleanSludgeMapper, CleanSludge> implements CleanSludgeService {
 
+    @Override
+    public PageInfo<CleanSludge> pageList(CleanSludgeListQuery query) {
+        PageInfo<CleanSludge> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
+        List<CleanSludge> list = this.baseMapper.pageList(query,pageInfo);
+        pageInfo.setRecords(list);
+        return pageInfo;
+    }
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CleanToiletMaintenanceServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CleanToiletMaintenanceServiceImpl.java
index 4aaf579..f818401 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CleanToiletMaintenanceServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CleanToiletMaintenanceServiceImpl.java
@@ -1,10 +1,15 @@
 package com.ruoyi.system.service.impl;
 
+import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.system.model.CleanToiletMaintenance;
 import com.ruoyi.system.mapper.CleanToiletMaintenanceMapper;
+import com.ruoyi.system.model.CleanToiletSanitization;
+import com.ruoyi.system.query.CleanSludgeListQuery;
 import com.ruoyi.system.service.CleanToiletMaintenanceService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
+
+import java.util.List;
 
 /**
  * <p>
@@ -17,4 +22,11 @@
 @Service
 public class CleanToiletMaintenanceServiceImpl extends ServiceImpl<CleanToiletMaintenanceMapper, CleanToiletMaintenance> implements CleanToiletMaintenanceService {
 
+    @Override
+    public PageInfo<CleanToiletMaintenance> pageList(CleanSludgeListQuery query) {
+        PageInfo<CleanToiletMaintenance> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
+        List<CleanToiletMaintenance> list = this.baseMapper.pageList(query,pageInfo);
+        pageInfo.setRecords(list);
+        return pageInfo;
+    }
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CleanToiletSanitizationServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CleanToiletSanitizationServiceImpl.java
index 15d2403..7261f6c 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CleanToiletSanitizationServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CleanToiletSanitizationServiceImpl.java
@@ -1,10 +1,15 @@
 package com.ruoyi.system.service.impl;
 
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.system.model.CleanSludge;
 import com.ruoyi.system.model.CleanToiletSanitization;
 import com.ruoyi.system.mapper.CleanToiletSanitizationMapper;
+import com.ruoyi.system.query.CleanSludgeListQuery;
 import com.ruoyi.system.service.CleanToiletSanitizationService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
+
+import java.util.List;
 
 /**
  * <p>
@@ -17,4 +22,11 @@
 @Service
 public class CleanToiletSanitizationServiceImpl extends ServiceImpl<CleanToiletSanitizationMapper, CleanToiletSanitization> implements CleanToiletSanitizationService {
 
+    @Override
+    public PageInfo<CleanToiletSanitization> pageList(CleanSludgeListQuery query) {
+        PageInfo<CleanToiletSanitization> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
+        List<CleanToiletSanitization> list = this.baseMapper.pageList(query,pageInfo);
+        pageInfo.setRecords(list);
+        return pageInfo;
+    }
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DrDisplacementServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DrDisplacementServiceImpl.java
index 1a87e8a..357f22e 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DrDisplacementServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DrDisplacementServiceImpl.java
@@ -1,10 +1,15 @@
 package com.ruoyi.system.service.impl;
 
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.system.model.CaseMain;
 import com.ruoyi.system.model.DrDisplacement;
 import com.ruoyi.system.mapper.DrDisplacementMapper;
+import com.ruoyi.system.query.DrDisplacementListQuery;
 import com.ruoyi.system.service.DrDisplacementService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
+
+import java.util.List;
 
 /**
  * <p>
@@ -17,4 +22,11 @@
 @Service
 public class DrDisplacementServiceImpl extends ServiceImpl<DrDisplacementMapper, DrDisplacement> implements DrDisplacementService {
 
+    @Override
+    public PageInfo<DrDisplacement> pageList(DrDisplacementListQuery query) {
+        PageInfo<DrDisplacement> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
+        List<DrDisplacement> list = this.baseMapper.pageList(query,pageInfo);
+        pageInfo.setRecords(list);
+        return pageInfo;
+    }
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TDeptServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TDeptServiceImpl.java
index 1b6d502..b744f1e 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TDeptServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TDeptServiceImpl.java
@@ -36,6 +36,10 @@
 
     @Override
     public List<Integer> getAllSubDeptIds(String deptId) {
+        TDept tDept = this.baseMapper.selectById(deptId);
+        if (tDept.getDeptName().contains("董事长")||tDept.getDeptName().contains("总经理")){
+            return this.baseMapper.selectList(null).stream().map(TDept::getId).collect(Collectors.toList());
+        }
         List<Integer> allSubIds = new ArrayList<>();
         getSubDeptIdsRecursive(Integer.valueOf(deptId), allSubIds);
         return allSubIds.stream().distinct().collect(Collectors.toList());
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/utils/ExcelStyleUtil.java b/ruoyi-system/src/main/java/com/ruoyi/system/utils/ExcelStyleUtil.java
new file mode 100644
index 0000000..efd77cd
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/utils/ExcelStyleUtil.java
@@ -0,0 +1,14 @@
+package com.ruoyi.system.utils;
+
+import org.apache.poi.ss.usermodel.CellStyle;
+import org.apache.poi.ss.usermodel.HorizontalAlignment;
+import org.apache.poi.ss.usermodel.VerticalAlignment;
+import org.apache.poi.ss.usermodel.Workbook;
+
+public class ExcelStyleUtil {
+    public static void setImageStyle(Workbook workbook, CellStyle cellStyle) {
+        // 设置图片单元格样式
+        cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+        cellStyle.setAlignment(HorizontalAlignment.CENTER);
+    }
+}
\ No newline at end of file
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/ApprovalFlowNodeListVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ApprovalFlowNodeListVO.java
index f268cc9..ca6b8fe 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/ApprovalFlowNodeListVO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ApprovalFlowNodeListVO.java
@@ -1,5 +1,6 @@
 package com.ruoyi.system.vo;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.models.auth.In;
@@ -19,5 +20,6 @@
     private String signPicUrl;
     @ApiModelProperty(value = "审批意见 0-审批不通过,1-审批通过")
     private Boolean approvalStatus;
-
+    @ApiModelProperty(value = "是否需要签名 0-否,1-是")
+    private Boolean signFlag;
 }
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 48f7267..e02b89c 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
@@ -17,6 +17,8 @@
     private Integer type;
     @ApiModelProperty(value = "资产名称")
     private String assetName;
+    @ApiModelProperty(value = "资产编码")
+    private String assetCode;
     @ApiModelProperty(value = "规格型号")
     private String specificationModel;
     @ApiModelProperty(value = "资产类型")
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/DrDisplacementListVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/DrDisplacementListVO.java
new file mode 100644
index 0000000..038bcfb
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/DrDisplacementListVO.java
@@ -0,0 +1,21 @@
+package com.ruoyi.system.vo;
+
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.system.model.DrDisplacement;
+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 DrDisplacementListVO implements Serializable {
+   @ApiModelProperty(value = "合计户数")
+    private Integer totalCount;
+    @ApiModelProperty(value = "合计面积")
+    private Double totalArea;
+    @ApiModelProperty(value = "分页列表数据")
+    private PageInfo<DrDisplacement> pageList;
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/DrDisplacementStatisticsVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/DrDisplacementStatisticsVO.java
new file mode 100644
index 0000000..2f62f0b
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/DrDisplacementStatisticsVO.java
@@ -0,0 +1,18 @@
+package com.ruoyi.system.vo;
+
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.system.model.DrDisplacement;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel(value = "拆迁情况统计VO")
+public class DrDisplacementStatisticsVO implements Serializable {
+   @ApiModelProperty(value = "合计套数")
+    private Integer totalCount;
+    @ApiModelProperty(value = "结构 0:营业房;1:住房;2:库房;")
+    private Integer returnType;
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/OaApprovalApplicationStorageGeneralDetailVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/OaApprovalApplicationStorageGeneralDetailVO.java
index 3b793d1..011433e 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/OaApprovalApplicationStorageGeneralDetailVO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/OaApprovalApplicationStorageGeneralDetailVO.java
@@ -105,6 +105,7 @@
         private String accountingStatus;
 
         @ApiModelProperty(value = "入账时间")
+        @JsonFormat(pattern = "yyyy-MM-dd")
         private LocalDate accountingDate;
 
         @ApiModelProperty(value = "会计凭证号")
diff --git a/ruoyi-system/src/main/resources/mapper/system/AssetTypeMapper.xml b/ruoyi-system/src/main/resources/mapper/system/AssetTypeMapper.xml
index 6a10a9d..addde14 100644
--- a/ruoyi-system/src/main/resources/mapper/system/AssetTypeMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/AssetTypeMapper.xml
@@ -97,6 +97,10 @@
                 #{item}
             </foreach>
         </if>
+        <if test="query.assetStatus != null and query.assetStatus!=''">
+            and t1.asset_status like concat('%',#{query.assetStatus},'%')
+        </if>
+        and t1.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
 
         order by t1.create_time desc
 
@@ -167,13 +171,16 @@
         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()}
+        and t1.asset_status = '闲置'
         <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>
-
+        <if test="query.assetStatus != null and query.assetStatus!=''">
+            and t1.asset_status like concat('%',#{query.assetStatus},'%')
+        </if>
 
         order by t1.create_time desc
     </select>
@@ -196,7 +203,10 @@
                 #{item}
             </foreach>
         </if>
-
+        <if test="query.assetStatus != null and query.assetStatus!=''">
+            and t1.asset_status like concat('%',#{query.assetStatus},'%')
+        </if>
+        and t1.asset_status = '闲置'
 
         order by t1.create_time desc
     </select>
diff --git a/ruoyi-system/src/main/resources/mapper/system/CleanSludgeMapper.xml b/ruoyi-system/src/main/resources/mapper/system/CleanSludgeMapper.xml
index 6462c5e..e8a69af 100644
--- a/ruoyi-system/src/main/resources/mapper/system/CleanSludgeMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/CleanSludgeMapper.xml
@@ -2,4 +2,13 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.system.mapper.CleanSludgeMapper">
 
+    <select id="pageList" resultType="com.ruoyi.system.model.CleanSludge">
+        select * from clean_sludge
+        where 1=1
+        <if test="query.recordDate != null and query.recordDate != ''">
+            and record_date like concat('%',#{query.recordDate},'%')
+        </if>
+        and disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+
+    </select>
 </mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/CleanToiletMaintenanceMapper.xml b/ruoyi-system/src/main/resources/mapper/system/CleanToiletMaintenanceMapper.xml
index 3748098..d179ab7 100644
--- a/ruoyi-system/src/main/resources/mapper/system/CleanToiletMaintenanceMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/CleanToiletMaintenanceMapper.xml
@@ -2,4 +2,12 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.system.mapper.CleanToiletMaintenanceMapper">
 
+    <select id="pageList" resultType="com.ruoyi.system.model.CleanToiletMaintenance">
+        select * from clean_toilet_maintenance
+        where 1=1
+        <if test="query.recordDate != null and query.recordDate != ''">
+            and record_date like concat('%',#{query.recordDate},'%')
+        </if>
+        and disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+    </select>
 </mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/CleanToiletSanitizationMapper.xml b/ruoyi-system/src/main/resources/mapper/system/CleanToiletSanitizationMapper.xml
index 66d7804..b10ca9f 100644
--- a/ruoyi-system/src/main/resources/mapper/system/CleanToiletSanitizationMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/CleanToiletSanitizationMapper.xml
@@ -2,4 +2,14 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.system.mapper.CleanToiletSanitizationMapper">
 
+    <select id="pageList" resultType="com.ruoyi.system.model.CleanToiletSanitization">
+        select * from clean_toilet_sanitization where 1=1
+        <if test="recordDate != null">
+            and record_date = #{recordDate}
+        </if>
+        <if test="query.recordDate != null and query.recordDate != ''">
+            and record_date like concat('%',#{query.recordDate},'%')
+        </if>
+        and disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+    </select>
 </mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/DrDisplacementMapper.xml b/ruoyi-system/src/main/resources/mapper/system/DrDisplacementMapper.xml
index 6f00ac4..fd59fa2 100644
--- a/ruoyi-system/src/main/resources/mapper/system/DrDisplacementMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/DrDisplacementMapper.xml
@@ -2,4 +2,24 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.system.mapper.DrDisplacementMapper">
 
+    <select id="pageList" resultType="com.ruoyi.system.model.DrDisplacement">
+        select id,name,phone,community_id as communityId,community_name as communityName,id_card as idCard,address,totalArea
+        from
+            dr_displacement
+        where 1=1
+        <if test="query.name != null and query.name != ''">
+            and name like concat('%',#{query.name},'%')
+        </if>
+        <if test="query.phone != null and query.phone != ''">
+            and phone like concat('%',#{query.phone},'%')
+        </if>
+        <if test="query.communityId != null and query.communityId != ''">
+            and community_id = #{query.communityId}
+        </if>
+        <if test="query.idCard != null and query.idCard != ''">
+            and id_card like concat('%',#{query.idCard},'%')
+        </if>
+        and disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+        order by create_time desc
+    </select>
 </mapper>

--
Gitblit v1.7.1