|
|
@ -1210,4 +1210,59 @@ public class WorkOrderInfoServiceImpl implements IWorkOrderInfoService { |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public TableDataInfo<WorkOrderInfoVo> dealWithListForApp(WorkOrderInfoBo bo, PageQuery pageQuery) { |
|
|
|
LoginUser loginUser = LoginHelper.getLoginUser(); |
|
|
|
String username = loginUser.getUsername(); |
|
|
|
|
|
|
|
LambdaQueryWrapper<WorkOrderInfo> lqw = buildQueryWrapper(bo); |
|
|
|
Page<WorkOrderInfoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); |
|
|
|
List<WorkOrderInfoVo> records = result.getRecords(); |
|
|
|
List<WorkOrderInfoVo> filterRecords = records.stream() |
|
|
|
.filter(record -> record.getStatus() != null |
|
|
|
&& ( record.getStatus() == 2 || record.getStatus() == 7) |
|
|
|
) |
|
|
|
// TODO 角色过滤
|
|
|
|
.filter(item -> "admin".equals(username) || item.getMaintenanceUnit().equals(loginUser.getDeptName())) |
|
|
|
.collect(Collectors.toList()); |
|
|
|
|
|
|
|
// 封装
|
|
|
|
for (WorkOrderInfoVo record : filterRecords) { |
|
|
|
String workOrderId = record.getId(); |
|
|
|
LambdaQueryWrapper<WorkOrderProcess> queryWrapper = new LambdaQueryWrapper<>(); |
|
|
|
queryWrapper.eq(WorkOrderProcess::getWorkOrderId, workOrderId); |
|
|
|
queryWrapper.eq(WorkOrderProcess::getStage, "故障接单"); |
|
|
|
|
|
|
|
WorkOrderProcess target = workOrderProcessMapper.selectOne(queryWrapper); |
|
|
|
|
|
|
|
if (target != null && target.getOperationTime() != null) { |
|
|
|
Date operationTime = target.getOperationTime(); |
|
|
|
// 单位:小时
|
|
|
|
Long responseTime = record.getResponseTime(); |
|
|
|
// 设置剩余时间提示
|
|
|
|
record.setRestTime(getTimeLeft(operationTime, responseTime)); |
|
|
|
} else { |
|
|
|
// 如果没有找到接单记录或没有接单时间,可以设为默认值
|
|
|
|
record.setRestTime("暂无接单信息"); |
|
|
|
} |
|
|
|
// 设置延期信息
|
|
|
|
if (record.getStatus() == 7){ |
|
|
|
WorkOrderDelayVo delayVo = workOrderDelayService.queryById(Long.valueOf(workOrderId)); |
|
|
|
if (delayVo != null){ |
|
|
|
Date afterDelayTime = delayVo.getAfterDelayTime(); |
|
|
|
// 将 Date 转换为 Instant
|
|
|
|
Instant instant = afterDelayTime.toInstant(); |
|
|
|
ZoneId zone = ZoneId.of("Asia/Shanghai"); |
|
|
|
LocalDateTime dueDateTime = instant.atZone(zone).toLocalDateTime(); |
|
|
|
record.setRestTime(getTimeLeft(dueDateTime)); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
result.setRecords(filterRecords); |
|
|
|
result.setTotal(filterRecords.size()); |
|
|
|
return TableDataInfo.build(result); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|