修复设备管理相关功能分页查询无法分页和正确获取总页数的问题

This commit is contained in:
Mr.j 2025-08-12 17:43:12 +08:00
parent f7b877aef8
commit 53aa75d37b
3 changed files with 108 additions and 176 deletions

View File

@ -11,7 +11,9 @@ import com.dite.znpt.domain.vo.EquipmentApprovalResp;
import com.dite.znpt.domain.vo.EquipmentProcurementApplyReq;
import com.dite.znpt.service.EquipmentApprovalService;
import com.dite.znpt.service.EquipmentStatusUpdateService;
import com.dite.znpt.util.PageUtil;
import com.dite.znpt.websocket.SimpleWebSocketHandler;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@ -41,10 +43,10 @@ public class EquipmentApprovalServiceImpl implements EquipmentApprovalService {
@Override
public IPage<EquipmentApprovalResp> getPendingApprovals(EquipmentApprovalListReq req) {
// 创建分页对象处理null值
Integer pageNum = req.getPage() != null ? req.getPage() : 1;
Integer pageSize = req.getPageSize() != null ? req.getPageSize() : 10;
Page<EquipmentApprovalEntity> page = new Page<>(pageNum, pageSize);
log.info("开始执行待审批设备分页查询,请求参数: {}", req);
// 使用分页插件
PageUtil.startPage();
LambdaQueryWrapper<EquipmentApprovalEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(EquipmentApprovalEntity::getApprovalStatus, "PENDING");
@ -52,17 +54,30 @@ public class EquipmentApprovalServiceImpl implements EquipmentApprovalService {
// 添加查询条件
addQueryConditions(wrapper, req);
IPage<EquipmentApprovalEntity> result = equipmentApprovalMapper.selectPage(page, wrapper);
// 执行查询
List<EquipmentApprovalEntity> approvalList = equipmentApprovalMapper.selectList(wrapper);
return convertToRespPage(result);
// 转换为响应对象
List<EquipmentApprovalResp> respList = approvalList.stream()
.map(this::convertToResp)
.collect(Collectors.toList());
// 获取分页信息
PageInfo<EquipmentApprovalResp> pageInfo = new PageInfo<>(respList);
// 创建响应分页对象
Page<EquipmentApprovalResp> result = new Page<>(pageInfo.getPageNum(), pageInfo.getPageSize(), pageInfo.getTotal());
result.setRecords(respList);
return result;
}
@Override
public IPage<EquipmentApprovalResp> getApprovedApprovals(EquipmentApprovalListReq req) {
// 创建分页对象处理null值
Integer pageNum = req.getPage() != null ? req.getPage() : 1;
Integer pageSize = req.getPageSize() != null ? req.getPageSize() : 10;
Page<EquipmentApprovalEntity> page = new Page<>(pageNum, pageSize);
log.info("开始执行已审批设备分页查询,请求参数: {}", req);
// 使用分页插件
PageUtil.startPage();
LambdaQueryWrapper<EquipmentApprovalEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.in(EquipmentApprovalEntity::getApprovalStatus, "APPROVED", "REJECTED");
@ -70,9 +85,22 @@ public class EquipmentApprovalServiceImpl implements EquipmentApprovalService {
// 添加查询条件
addQueryConditions(wrapper, req);
IPage<EquipmentApprovalEntity> result = equipmentApprovalMapper.selectPage(page, wrapper);
// 执行查询
List<EquipmentApprovalEntity> approvalList = equipmentApprovalMapper.selectList(wrapper);
return convertToRespPage(result);
// 转换为响应对象
List<EquipmentApprovalResp> respList = approvalList.stream()
.map(this::convertToResp)
.collect(Collectors.toList());
// 获取分页信息
PageInfo<EquipmentApprovalResp> pageInfo = new PageInfo<>(respList);
// 创建响应分页对象
Page<EquipmentApprovalResp> result = new Page<>(pageInfo.getPageNum(), pageInfo.getPageSize(), pageInfo.getTotal());
result.setRecords(respList);
return result;
}
@Override

View File

@ -16,6 +16,8 @@ import com.dite.znpt.enums.LocationStatusEnum;
import com.dite.znpt.exception.ServiceException;
import com.dite.znpt.mapper.EquipmentMapper;
import com.dite.znpt.service.EquipmentService;
import com.dite.znpt.util.PageUtil;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -38,10 +40,8 @@ public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper, Equipment
public IPage<EquipmentResp> page(EquipmentListReq req) {
log.info("开始执行设备分页查询,请求参数: {}", req);
// 创建分页对象处理null值
Integer pageNum = req.getPage() != null ? req.getPage() : (req.getPageNum() != null ? req.getPageNum() : 1);
Integer pageSize = req.getPageSize() != null ? req.getPageSize() : 10;
Page<EquipmentEntity> page = new Page<>(pageNum, pageSize);
// 使用分页插件
PageUtil.startPage();
// 构建查询条件
LambdaQueryWrapper<EquipmentEntity> queryWrapper = new LambdaQueryWrapper<>();
@ -117,9 +117,14 @@ public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper, Equipment
log.info("添加物理位置查询条件: {}", req.getPhysicalLocation());
conditionCount++;
}
if (StringUtils.hasText(req.getSupplierName())) {
queryWrapper.like(EquipmentEntity::getSupplierName, req.getSupplierName());
log.info("添加供应商名称查询条件: {}", req.getSupplierName());
if (StringUtils.hasText(req.getUsingDepartment())) {
queryWrapper.like(EquipmentEntity::getUsingDepartment, req.getUsingDepartment());
log.info("添加使用部门查询条件: {}", req.getUsingDepartment());
conditionCount++;
}
if (StringUtils.hasText(req.getPurchaseOrder())) {
queryWrapper.like(EquipmentEntity::getPurchaseOrder, req.getPurchaseOrder());
log.info("添加采购订单查询条件: {}", req.getPurchaseOrder());
conditionCount++;
}
if (StringUtils.hasText(req.getMaintenancePerson())) {
@ -127,40 +132,6 @@ public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper, Equipment
log.info("添加维护人员查询条件: {}", req.getMaintenancePerson());
conditionCount++;
}
if (StringUtils.hasText(req.getInventoryBarcode())) {
queryWrapper.like(EquipmentEntity::getInventoryBarcode, req.getInventoryBarcode());
log.info("添加库存条码查询条件: {}", req.getInventoryBarcode());
conditionCount++;
}
if (StringUtils.hasText(req.getAssetRemark())) {
queryWrapper.like(EquipmentEntity::getAssetRemark, req.getAssetRemark());
log.info("添加资产备注查询条件: {}", req.getAssetRemark());
conditionCount++;
}
// 新增字段查询条件
if (StringUtils.hasText(req.getUsingDepartment())) {
queryWrapper.like(EquipmentEntity::getUsingDepartment, req.getUsingDepartment());
log.info("添加使用部门/人查询条件: {}", req.getUsingDepartment());
conditionCount++;
}
if (StringUtils.hasText(req.getInvoice())) {
queryWrapper.like(EquipmentEntity::getInvoice, req.getInvoice());
log.info("添加发票查询条件: {}", req.getInvoice());
conditionCount++;
}
if (StringUtils.hasText(req.getBarcode())) {
queryWrapper.like(EquipmentEntity::getBarcode, req.getBarcode());
log.info("添加条码查询条件: {}", req.getBarcode());
conditionCount++;
}
if (StringUtils.hasText(req.getImporter())) {
queryWrapper.like(EquipmentEntity::getImporter, req.getImporter());
log.info("添加导入人查询条件: {}", req.getImporter());
conditionCount++;
}
// 新增采购相关字段查询条件
if (StringUtils.hasText(req.getAccountNumber())) {
queryWrapper.like(EquipmentEntity::getAccountNumber, req.getAccountNumber());
log.info("添加次户号查询条件: {}", req.getAccountNumber());
@ -270,88 +241,15 @@ public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper, Equipment
log.info("总共添加了 {} 个查询条件", conditionCount);
// 排序处理
// 处理排序
if (StringUtils.hasText(req.getOrderBy())) {
String orderBy = req.getOrderBy();
String orderDirection = "desc".equalsIgnoreCase(req.getOrderDirection()) ? "desc" : "asc";
switch (orderBy.toLowerCase()) {
case "equipment_name":
if ("desc".equals(orderDirection)) {
queryWrapper.orderByDesc(EquipmentEntity::getEquipmentName);
} else {
queryWrapper.orderByAsc(EquipmentEntity::getEquipmentName);
}
break;
case "equipment_sn":
if ("desc".equals(orderDirection)) {
queryWrapper.orderByDesc(EquipmentEntity::getEquipmentSn);
} else {
queryWrapper.orderByAsc(EquipmentEntity::getEquipmentSn);
}
break;
case "asset_code":
if ("desc".equals(orderDirection)) {
queryWrapper.orderByDesc(EquipmentEntity::getAssetCode);
} else {
queryWrapper.orderByAsc(EquipmentEntity::getAssetCode);
}
break;
case "equipment_type":
if ("desc".equals(orderDirection)) {
queryWrapper.orderByDesc(EquipmentEntity::getEquipmentType);
} else {
queryWrapper.orderByAsc(EquipmentEntity::getEquipmentType);
}
break;
case "equipment_status":
if ("desc".equals(orderDirection)) {
queryWrapper.orderByDesc(EquipmentEntity::getEquipmentStatus);
} else {
queryWrapper.orderByAsc(EquipmentEntity::getEquipmentStatus);
}
break;
case "brand":
if ("desc".equals(orderDirection)) {
queryWrapper.orderByDesc(EquipmentEntity::getBrand);
} else {
queryWrapper.orderByAsc(EquipmentEntity::getBrand);
}
break;
case "responsible_person":
if ("desc".equals(orderDirection)) {
queryWrapper.orderByDesc(EquipmentEntity::getResponsiblePerson);
} else {
queryWrapper.orderByAsc(EquipmentEntity::getResponsiblePerson);
}
break;
case "purchase_time":
if ("desc".equals(orderDirection)) {
queryWrapper.orderByDesc(EquipmentEntity::getPurchaseTime);
} else {
queryWrapper.orderByAsc(EquipmentEntity::getPurchaseTime);
}
break;
case "purchase_price":
if ("desc".equals(orderDirection)) {
queryWrapper.orderByDesc(EquipmentEntity::getTotalPrice);
} else {
queryWrapper.orderByAsc(EquipmentEntity::getTotalPrice);
}
break;
case "update_time":
if ("desc".equals(orderDirection)) {
queryWrapper.orderByDesc(EquipmentEntity::getUpdateTime);
} else {
queryWrapper.orderByAsc(EquipmentEntity::getUpdateTime);
}
break;
default:
// 默认按创建时间倒序
queryWrapper.orderByDesc(EquipmentEntity::getCreateTime);
break;
if ("asc".equalsIgnoreCase(req.getOrderDirection())) {
queryWrapper.orderByAsc(EquipmentEntity::getCreateTime);
log.info("使用升序排序: {}", req.getOrderBy());
} else {
queryWrapper.orderByDesc(EquipmentEntity::getCreateTime);
log.info("使用降序排序: {}", req.getOrderBy());
}
log.info("添加排序条件: {} {}", orderBy, orderDirection);
} else {
// 默认按创建时间倒序
queryWrapper.orderByDesc(EquipmentEntity::getCreateTime);
@ -360,18 +258,21 @@ public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper, Equipment
log.info("执行分页查询SQL条件: {}", queryWrapper.getTargetSql());
// 执行分页查询
IPage<EquipmentEntity> equipmentPage = this.page(page, queryWrapper);
// 执行查询
List<EquipmentEntity> equipmentList = this.list(queryWrapper);
log.info("查询完成,总记录数: {}, 当前页记录数: {}", equipmentPage.getTotal(), equipmentPage.getRecords().size());
log.info("查询完成,当前页记录数: {}", equipmentList.size());
// 转换为响应对象
List<EquipmentResp> equipmentRespList = equipmentPage.getRecords().stream()
List<EquipmentResp> equipmentRespList = equipmentList.stream()
.map(this::convertToResp)
.collect(Collectors.toList());
// 获取分页信息
PageInfo<EquipmentResp> pageInfo = new PageInfo<>(equipmentRespList);
// 创建响应分页对象
Page<EquipmentResp> respPage = new Page<>(equipmentPage.getCurrent(), equipmentPage.getSize(), equipmentPage.getTotal());
Page<EquipmentResp> respPage = new Page<>(pageInfo.getPageNum(), pageInfo.getPageSize(), pageInfo.getTotal());
respPage.setRecords(equipmentRespList);
return respPage;
@ -597,10 +498,8 @@ public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper, Equipment
public IPage<EquipmentResp> procurementPage(EquipmentListReq req) {
log.info("开始执行设备采购记录分页查询,请求参数: {}", req);
// 创建分页对象处理null值
Integer pageNum = req.getPage() != null ? req.getPage() : (req.getPageNum() != null ? req.getPageNum() : 1);
Integer pageSize = req.getPageSize() != null ? req.getPageSize() : 10;
Page<EquipmentEntity> page = new Page<>(pageNum, pageSize);
// 使用分页插件
PageUtil.startPage();
// 构建查询条件参考设备分页查询的逻辑
LambdaQueryWrapper<EquipmentEntity> queryWrapper = new LambdaQueryWrapper<>();
@ -624,14 +523,9 @@ public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper, Equipment
log.info("添加设备状态查询条件: {}", req.getEquipmentStatus());
conditionCount++;
}
if (StringUtils.hasText(req.getEquipmentSn())) {
queryWrapper.like(EquipmentEntity::getEquipmentSn, req.getEquipmentSn());
log.info("添加设备序列号查询条件: {}", req.getEquipmentSn());
conditionCount++;
}
if (StringUtils.hasText(req.getAssetCode())) {
queryWrapper.like(EquipmentEntity::getAssetCode, req.getAssetCode());
log.info("添加资产编号查询条件: {}", req.getAssetCode());
if (StringUtils.hasText(req.getEquipmentModel())) {
queryWrapper.like(EquipmentEntity::getEquipmentModel, req.getEquipmentModel());
log.info("添加设备型号查询条件: {}", req.getEquipmentModel());
conditionCount++;
}
if (StringUtils.hasText(req.getBrand())) {
@ -639,19 +533,9 @@ public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper, Equipment
log.info("添加品牌查询条件: {}", req.getBrand());
conditionCount++;
}
if (StringUtils.hasText(req.getLocationStatus())) {
queryWrapper.eq(EquipmentEntity::getLocationStatus, req.getLocationStatus());
log.info("添加位置状态查询条件: {}", req.getLocationStatus());
conditionCount++;
}
if (StringUtils.hasText(req.getHealthStatus())) {
queryWrapper.eq(EquipmentEntity::getHealthStatus, req.getHealthStatus());
log.info("添加健康状态查询条件: {}", req.getHealthStatus());
conditionCount++;
}
if (StringUtils.hasText(req.getResponsiblePerson())) {
queryWrapper.like(EquipmentEntity::getResponsiblePerson, req.getResponsiblePerson());
log.info("添加负责人查询条件: {}", req.getResponsiblePerson());
if (StringUtils.hasText(req.getSupplierName())) {
queryWrapper.like(EquipmentEntity::getSupplierName, req.getSupplierName());
log.info("添加供应商名称查询条件: {}", req.getSupplierName());
conditionCount++;
}
if (StringUtils.hasText(req.getPhysicalLocation())) {
@ -659,16 +543,24 @@ public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper, Equipment
log.info("添加物理位置查询条件: {}", req.getPhysicalLocation());
conditionCount++;
}
// 添加采购相关的搜索条件
if (StringUtils.hasText(req.getUsingDepartment())) {
queryWrapper.like(EquipmentEntity::getUsingDepartment, req.getUsingDepartment());
log.info("添加使用部门查询条件: {}", req.getUsingDepartment());
conditionCount++;
}
if (StringUtils.hasText(req.getResponsiblePerson())) {
queryWrapper.like(EquipmentEntity::getResponsiblePerson, req.getResponsiblePerson());
log.info("添加负责人查询条件: {}", req.getResponsiblePerson());
conditionCount++;
}
if (StringUtils.hasText(req.getPurchaseOrder())) {
queryWrapper.like(EquipmentEntity::getPurchaseOrder, req.getPurchaseOrder());
log.info("添加采购订单查询条件: {}", req.getPurchaseOrder());
conditionCount++;
}
if (StringUtils.hasText(req.getSupplierName())) {
queryWrapper.like(EquipmentEntity::getSupplierName, req.getSupplierName());
log.info("添加供应商查询条件: {}", req.getSupplierName());
if (StringUtils.hasText(req.getMaintenancePerson())) {
queryWrapper.like(EquipmentEntity::getMaintenancePerson, req.getMaintenancePerson());
log.info("添加维护人员查询条件: {}", req.getMaintenancePerson());
conditionCount++;
}
if (StringUtils.hasText(req.getAccountNumber())) {
@ -691,6 +583,11 @@ public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper, Equipment
log.info("添加总价查询条件: {}", req.getTotalPrice());
conditionCount++;
}
if (StringUtils.hasText(req.getEquipmentSn())) {
queryWrapper.like(EquipmentEntity::getEquipmentSn, req.getEquipmentSn());
log.info("添加设备序列号查询条件: {}", req.getEquipmentSn());
conditionCount++;
}
if (StringUtils.hasText(req.getInventoryBasis())) {
queryWrapper.like(EquipmentEntity::getInventoryBasis, req.getInventoryBasis());
log.info("添加盘点依据查询条件: {}", req.getInventoryBasis());
@ -713,19 +610,21 @@ public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper, Equipment
queryWrapper.orderByDesc(EquipmentEntity::getPurchaseTime);
// 执行查询
IPage<EquipmentEntity> result = this.page(page, queryWrapper);
List<EquipmentEntity> equipmentList = this.list(queryWrapper);
// 转换为响应对象
List<EquipmentResp> records = result.getRecords().stream()
List<EquipmentResp> records = equipmentList.stream()
.map(this::convertToResp)
.collect(Collectors.toList());
// 创建新的分页结果
Page<EquipmentResp> respPage = new Page<>(result.getCurrent(), result.getSize(), result.getTotal());
respPage.setRecords(records);
// 获取分页信息
PageInfo<EquipmentResp> pageInfo = new PageInfo<>(records);
log.info("设备采购记录分页查询完成,总记录数: {}", result.getTotal());
return respPage;
// 创建响应分页对象
Page<EquipmentResp> result = new Page<>(pageInfo.getPageNum(), pageInfo.getPageSize(), pageInfo.getTotal());
result.setRecords(records);
return result;
}
@Transactional(rollbackFor = Exception.class)

View File

@ -50,8 +50,13 @@ public class EquipmentUseRecordServiceImpl extends ServiceImpl<EquipmentUseRecor
@Override
public List<EquipmentUseRecordResp> page(EquipmentUseRecordListReq req) {
// 使用分页插件
PageUtil.startPage();
return this.list(req);
// 执行查询
List<EquipmentUseRecordResp> result = this.list(req);
return result;
}
@Override