From 4106bd3d06127ae542ef9ef975862eecc4ae1ff0 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期六, 11 十月 2025 18:43:26 +0800 Subject: [PATCH] 房屋巡检记录 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetHouseInspectionItemController.java | 177 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 175 insertions(+), 2 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 c5126e4..7b7e00a 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 @@ -1,8 +1,35 @@ package com.ruoyi.web.controller.api; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.baomidou.mybatisplus.annotation.TableField; +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.enums.BusinessType; +import com.ruoyi.framework.web.service.TokenService; +import com.ruoyi.system.dto.AddAssetHouseInspection; +import com.ruoyi.system.dto.AddAssetRepairRequestDTO; +import com.ruoyi.system.model.*; +import com.ruoyi.system.query.AssetHouseInspectionRecordListQuery; +import com.ruoyi.system.query.AssetRepairRequestListQuery; +import com.ruoyi.system.service.*; +import com.ruoyi.system.vo.AssetHouseInspectionVO; +import com.ruoyi.system.vo.AssetRepairRequestVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiModelProperty; +import io.swagger.annotations.ApiOperation; +import org.checkerframework.checker.units.qual.A; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; /** * <p> @@ -14,7 +41,153 @@ */ @RestController @RequestMapping("/asset-house-inspection-item") +@Api(tags = {"房屋巡检"}) public class AssetHouseInspectionItemController { + @Autowired + private TokenService tokenService; + @Autowired + private ISysUserService sysUserService; + @Autowired + private TDeptService deptService; + @Autowired + private AssetMainService assetMainService; + @Autowired + private AssetHouseInspectionItemService assetHouseInspectionItemService; + @Autowired + private AssetHouseInspectionDetailService assetHouseInspectionDetailService; + @Autowired + private AssetHouseInspectionRecordService assetHouseInspectionRecordService; + @ApiOperation("房屋巡检不分页列表") + @PostMapping("/listAll") + public R<PageInfo<AssetHouseInspectionVO>> listAll(@RequestBody AssetHouseInspectionRecordListQuery query) { + String deptId = tokenService.getLoginUser().getDeptId(); + List<Integer> deptIds = deptService.getAllSubDeptIds(deptId); + List<SysUser> sysUsers = sysUserService.selectAllList(); + if (deptIds.isEmpty()) { + return R.ok(new PageInfo<>()); + } else { + List<Long> userIds = sysUsers.stream().filter(e -> deptIds.contains(Integer.valueOf(e.getDeptId()))) + .map(SysUser::getUserId).collect(Collectors.toList()); + if (userIds.isEmpty()) { + return R.ok(new PageInfo<>()); + } + if (StringUtils.hasLength(query.getNickName())) { + List<SysUser> users = sysUsers.stream().filter(e -> e.getNickName().contains(query.getNickName())).collect(Collectors.toList()); + List<Long> queryUserIds = users.stream().map(SysUser::getUserId).collect(Collectors.toList()); + // userIds和queryUserIds取交集 + userIds = userIds.stream().filter(queryUserIds::contains).collect(Collectors.toList()); + if (userIds.isEmpty()) { + return R.ok(new PageInfo<>()); + } + } + query.setUserIds(userIds); + } + PageInfo<AssetHouseInspectionVO> res = assetHouseInspectionRecordService.pageList(query); + return R.ok(res); + } + + @ApiOperation(value = "巡检子项树状结构") + @PostMapping(value = "/listItem") + public R<List<AssetHouseInspectionItem>> listItem() { + // 查询所有未被禁用的巡检项 + List<AssetHouseInspectionItem> allItems = assetHouseInspectionItemService.list( + new LambdaQueryWrapper<AssetHouseInspectionItem>() + .eq(AssetHouseInspectionItem::getDisabled, 0) + ); + // 构建树形结构 + List<AssetHouseInspectionItem> tree = buildTree(allItems, 0); + + return R.ok(tree); + } + + /** + * 构建树形结构 + * + * @param items 所有巡检项 + * @param parentId 父级ID + * @return 树形结构列表 + */ + private List<AssetHouseInspectionItem> buildTree(List<AssetHouseInspectionItem> items, int parentId) { + List<AssetHouseInspectionItem> children = new ArrayList<>(); + + for (AssetHouseInspectionItem item : items) { + if (item.getParentId() != null && item.getParentId() == parentId) { + // 递归设置子节点 + List<AssetHouseInspectionItem> childItems = buildTree(items, item.getId()); + item.setChildren(childItems); + children.add(item); + } + } + + return children; + } + + @Log(title = "房屋巡检-新增", businessType = BusinessType.INSERT) + @ApiOperation(value = "房屋巡检新增") + @PostMapping(value = "/add") + @Transactional + public R add(@RequestBody AddAssetHouseInspection dto) { + assetHouseInspectionRecordService.save(dto); + StringBuilder houseCloseStatus = new StringBuilder(); + StringBuilder waterElectronicGasCloseStatus = new StringBuilder(); + StringBuilder innerStatus = new StringBuilder(); + for (AssetHouseInspectionDetail assetHouseInspectionDetail : dto.getList()) { + assetHouseInspectionDetail.setInspectionRecordId(dto.getId()); + if (assetHouseInspectionDetail.getInspectionResult()) { + if (assetHouseInspectionDetail.getSubItemName().contains("门窗")) { + houseCloseStatus.append(assetHouseInspectionDetail.getRemark()); + } else if (assetHouseInspectionDetail.getSubItemName().contains("电表")) { + waterElectronicGasCloseStatus.append(assetHouseInspectionDetail.getRemark()).append("|"); + } else if (assetHouseInspectionDetail.getSubItemName().contains("气表")) { + waterElectronicGasCloseStatus.append(assetHouseInspectionDetail.getRemark()).append("|"); + } else if (assetHouseInspectionDetail.getSubItemName().contains("水表")) { + waterElectronicGasCloseStatus.append(assetHouseInspectionDetail.getRemark()).append("|"); + } else if (assetHouseInspectionDetail.getSubItemName().contains("瓷砖")) { + innerStatus.append(assetHouseInspectionDetail.getRemark()).append("|"); + } else if (assetHouseInspectionDetail.getSubItemName().contains("墙壁")) { + innerStatus.append(assetHouseInspectionDetail.getRemark()).append("|"); + } else if (assetHouseInspectionDetail.getSubItemName().contains("设备")) { + innerStatus.append(assetHouseInspectionDetail.getRemark()).append("|"); + } else if (assetHouseInspectionDetail.getSubItemName().contains("漏水")) { + innerStatus.append(assetHouseInspectionDetail.getRemark()).append("|"); + } + } + } + if (StringUtils.hasLength(waterElectronicGasCloseStatus)){ + waterElectronicGasCloseStatus.deleteCharAt(waterElectronicGasCloseStatus.length() - 1); + } + if (StringUtils.hasLength(innerStatus)){ + innerStatus.deleteCharAt(innerStatus.length() - 1); + } + if (StringUtils.hasLength(houseCloseStatus)){ + dto.setHouseCloseStatus(houseCloseStatus.toString()); + }else{ + dto.setInnerStatus("正常"); + } + if (StringUtils.hasLength(waterElectronicGasCloseStatus)){ + dto.setWaterElectronicGasCloseStatus(waterElectronicGasCloseStatus.toString()); + }else{ + dto.setInnerStatus("正常"); + } + if (StringUtils.hasLength(innerStatus)){ + dto.setInnerStatus(innerStatus.toString()); + }else{ + dto.setInnerStatus("正常"); + } + assetHouseInspectionRecordService.updateById(dto); + assetHouseInspectionDetailService.saveBatch(dto.getList()); + return R.ok(); + } + + @Log(title = "房屋巡检-删除", businessType = BusinessType.DELETE) + @ApiOperation(value = "房屋巡检-删除") + @DeleteMapping(value = "/delete") + public R delete(@RequestParam String ids) { + assetHouseInspectionDetailService.remove(new LambdaQueryWrapper<AssetHouseInspectionDetail>() + .in(AssetHouseInspectionDetail::getInspectionRecordId, Arrays.asList(ids.split(",")))); + assetHouseInspectionRecordService.removeBatchByIds(Arrays.asList(ids.split(","))); + return R.ok(); + } } -- Gitblit v1.7.1