|
|
|
|
@ -212,6 +212,63 @@ public class DvRepairServiceImpl implements DvRepairService {
|
|
|
|
|
return dvRepairMapper.selectPage(pageReqVO);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public DvRepairPageRespVO getDvRepairPageWithStatistics(DvRepairPageReqVO pageReqVO) {
|
|
|
|
|
DvRepairPageRespVO respVO = new DvRepairPageRespVO();
|
|
|
|
|
// 1. 先查分页
|
|
|
|
|
PageResult<DvRepairDO> pageResult = getDvRepairPage(pageReqVO);
|
|
|
|
|
respVO.setList(BeanUtils.toBean(pageResult.getList(), DvRepairRespVO.class));
|
|
|
|
|
respVO.setTotal(pageResult.getTotal());
|
|
|
|
|
|
|
|
|
|
// 2. 再查统计(忽略 status 和 repairStatus 筛选,查全量)
|
|
|
|
|
DvRepairPageReqVO statisticsReq = BeanUtils.toBean(pageReqVO, DvRepairPageReqVO.class);
|
|
|
|
|
statisticsReq.setStatus(null);
|
|
|
|
|
statisticsReq.setRepairStatus(null);
|
|
|
|
|
List<DvRepairDO> allList = getDvRepairList(statisticsReq);
|
|
|
|
|
respVO.setAllCount((long) allList.size());
|
|
|
|
|
respVO.setPendingCount(allList.stream().filter(item -> item.getStatus() != null && item.getStatus() == 0).count());
|
|
|
|
|
respVO.setFinishedCount(allList.stream().filter(item -> item.getStatus() != null && item.getStatus() == 1).count());
|
|
|
|
|
respVO.setPendingRepairCount(allList.stream().filter(item -> item.getRepairStatus() != null && item.getRepairStatus() == 0).count());
|
|
|
|
|
respVO.setPassedCount(allList.stream().filter(item -> item.getRepairStatus() != null && item.getRepairStatus() == 1).count());
|
|
|
|
|
respVO.setFailedCount(allList.stream().filter(item -> item.getRepairStatus() != null && item.getRepairStatus() == 2).count());
|
|
|
|
|
return respVO;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private List<DvRepairDO> getDvRepairList(DvRepairPageReqVO pageReqVO) {
|
|
|
|
|
if(StringUtils.isNotBlank(pageReqVO.getDeviceLine()) || StringUtils.isNotBlank(pageReqVO.getMachineryName())) {
|
|
|
|
|
LambdaQueryWrapperX<DeviceLedgerDO> deviceLedgerDOLambdaQueryWrapperX = new LambdaQueryWrapperX<>();
|
|
|
|
|
if(StringUtils.isNotBlank(pageReqVO.getDeviceLine()))
|
|
|
|
|
deviceLedgerDOLambdaQueryWrapperX.eqIfPresent(DeviceLedgerDO::getDeviceLine, pageReqVO.getDeviceLine());
|
|
|
|
|
if(StringUtils.isNotBlank(pageReqVO.getMachineryName())){
|
|
|
|
|
deviceLedgerDOLambdaQueryWrapperX.and(w -> w
|
|
|
|
|
.like(DeviceLedgerDO::getDeviceCode, pageReqVO.getMachineryName())
|
|
|
|
|
.or()
|
|
|
|
|
.like(DeviceLedgerDO::getDeviceName, pageReqVO.getMachineryName())
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
List<DeviceLedgerDO> deviceLedgerDOS = deviceLedgerMapper.selectList(deviceLedgerDOLambdaQueryWrapperX);
|
|
|
|
|
List<Long> machineryIds = deviceLedgerDOS.stream().map(DeviceLedgerDO::getId).distinct().collect(Collectors.toList());
|
|
|
|
|
if(CollUtil.isNotEmpty(machineryIds)){
|
|
|
|
|
pageReqVO.setMachineryIds(machineryIds);
|
|
|
|
|
} else {
|
|
|
|
|
List<Long> objects = new ArrayList<>();
|
|
|
|
|
objects.add((long) -1);
|
|
|
|
|
pageReqVO.setMachineryIds(objects);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// 构建查询条件(不含 status/repairStatus)
|
|
|
|
|
LambdaQueryWrapperX<DvRepairDO> wrapper = new LambdaQueryWrapperX<>();
|
|
|
|
|
if(CollUtil.isNotEmpty(pageReqVO.getMachineryIds())){
|
|
|
|
|
wrapper.in(DvRepairDO::getMachineryId, pageReqVO.getMachineryIds());
|
|
|
|
|
}
|
|
|
|
|
wrapper
|
|
|
|
|
.likeIfPresent(DvRepairDO::getRepairCode, pageReqVO.getRepairCode())
|
|
|
|
|
.likeIfPresent(DvRepairDO::getRepairName, pageReqVO.getRepairName())
|
|
|
|
|
.eqIfPresent(DvRepairDO::getMachineryId, pageReqVO.getMachineryId())
|
|
|
|
|
.orderByDesc(DvRepairDO::getCreateTime);
|
|
|
|
|
return dvRepairMapper.selectList(wrapper);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// ==================== 子表(设备维修记录行) ====================
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|