|
|
@ -1222,116 +1222,8 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* List<AftersalesWorkOrderEntity> aftersalesWorkOrderEntities = baseMapper.selectList(Wrappers.<AftersalesWorkOrderEntity>query().lambda() |
|
|
|
|
|
|
|
.eq(AftersalesWorkOrderEntity::getIsDeleted,0) |
|
|
|
|
|
|
|
.apply("work_order_status in (10,20)") |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
if(!aftersalesWorkOrderEntities.isEmpty()){ |
|
|
|
|
|
|
|
List<AftersalesWorkOrderVO> workOrderVOList = new ArrayList<>(); |
|
|
|
|
|
|
|
for (AftersalesWorkOrderEntity i : aftersalesWorkOrderEntities) { |
|
|
|
|
|
|
|
// 获取当前时间
|
|
|
|
|
|
|
|
LocalDateTime now = LocalDateTime.now(); |
|
|
|
|
|
|
|
// 获取48小时前的时间
|
|
|
|
|
|
|
|
LocalDateTime before48Hours = now.minusHours(48); |
|
|
|
|
|
|
|
// 获取48小时前的时间戳(秒数)
|
|
|
|
|
|
|
|
long timestamp = before48Hours.toEpochSecond(ZoneOffset.ofHours(8)); |
|
|
|
|
|
|
|
long l = i.getCreateTime().getTime() / 1000; |
|
|
|
|
|
|
|
long l1 = timestamp - l; |
|
|
|
|
|
|
|
if (l1 > 0) { |
|
|
|
|
|
|
|
//查询处理方是否处理
|
|
|
|
|
|
|
|
List<AftersalesProcessorEntity> list = aftersalesProcessorService.list(Wrappers.<AftersalesProcessorEntity>query().lambda() |
|
|
|
|
|
|
|
.eq(AftersalesProcessorEntity::getWorkOrderId, i.getId()) |
|
|
|
|
|
|
|
.eq(AftersalesProcessorEntity::getTypesOf, "2") |
|
|
|
|
|
|
|
.eq(AftersalesProcessorEntity::getProcessingStatus, "1") |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
if(list.isEmpty()){ |
|
|
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
list.forEach( a ->{ |
|
|
|
|
|
|
|
AftersalesWorkOrderVO aftersalesWorkOrderVO = new AftersalesWorkOrderVO(); |
|
|
|
|
|
|
|
BeanUtil.copyProperties(i,aftersalesWorkOrderVO); |
|
|
|
|
|
|
|
//以超时
|
|
|
|
|
|
|
|
aftersalesWorkOrderVO.setBusinessName(a.getBusinessName()); |
|
|
|
|
|
|
|
aftersalesWorkOrderVO.setBusinessId(a.getBusinessId()); |
|
|
|
|
|
|
|
aftersalesWorkOrderVO.setProcessorId(a.getId()); |
|
|
|
|
|
|
|
workOrderVOList.add(aftersalesWorkOrderVO); |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(!workOrderVOList.isEmpty()){ |
|
|
|
|
|
|
|
workOrderVOList.forEach(i ->{ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 假设有两个时间戳(秒数)
|
|
|
|
|
|
|
|
long timestamp1 = new Date().getTime() / 1000; // 现在时间
|
|
|
|
|
|
|
|
long timestamp2 = i.getCreateTime().getTime() / 1000; // 创建时间
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 将时间戳转换为Instant对象
|
|
|
|
|
|
|
|
Instant instant1 = Instant.ofEpochSecond(timestamp1); |
|
|
|
|
|
|
|
Instant instant2 = Instant.ofEpochSecond(timestamp2); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 计算两个时间戳之间的小时差
|
|
|
|
|
|
|
|
Duration duration = Duration.between(instant1, instant2); |
|
|
|
|
|
|
|
long hours = duration.toHours(); |
|
|
|
|
|
|
|
Integer number = Integer.valueOf((int)hours); |
|
|
|
|
|
|
|
int i1 = 48; |
|
|
|
|
|
|
|
int ci = 0; |
|
|
|
|
|
|
|
while (number > i1) { |
|
|
|
|
|
|
|
i1 +=48; |
|
|
|
|
|
|
|
ci += 1; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
//查询超时的记录
|
|
|
|
|
|
|
|
List<AftersalesOvertimeFineEntity> list = aftersalesOvertimeFineService.list(Wrappers.<AftersalesOvertimeFineEntity>query().lambda() |
|
|
|
|
|
|
|
.eq(AftersalesOvertimeFineEntity::getWorkOrderId, i.getId()) |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
int size = list.size(); |
|
|
|
|
|
|
|
for (int q = 0; q < ci ; q++){ |
|
|
|
|
|
|
|
//第一次超时
|
|
|
|
|
|
|
|
if(size == 0 ){ |
|
|
|
|
|
|
|
//处理超时数据
|
|
|
|
|
|
|
|
AftersalesProcessorEntity processor = new AftersalesProcessorEntity(); |
|
|
|
|
|
|
|
processor.setProcessingStatus("3");//回复超时
|
|
|
|
|
|
|
|
processor.setId(i.getProcessorId()); |
|
|
|
|
|
|
|
aftersalesProcessorService.updateById(processor); |
|
|
|
|
|
|
|
//添加超时记录
|
|
|
|
|
|
|
|
AftersalesOvertimeFineEntity overtimeFineEntity = new AftersalesOvertimeFineEntity(); |
|
|
|
|
|
|
|
overtimeFineEntity.setWorkOrderId(i.getId()); |
|
|
|
|
|
|
|
overtimeFineEntity.setMoney(BigDecimal.valueOf(50)); |
|
|
|
|
|
|
|
overtimeFineEntity.setTimeout(String.valueOf(hours)); |
|
|
|
|
|
|
|
overtimeFineEntity.setBusinessId(i.getBusinessId()); |
|
|
|
|
|
|
|
overtimeFineEntity.setBusinessName(i.getBusinessName()); |
|
|
|
|
|
|
|
overtimeFineEntity.setProcessorId(i.getProcessorId()); |
|
|
|
|
|
|
|
aftersalesOvertimeFineService.save(overtimeFineEntity); |
|
|
|
|
|
|
|
}else if(q > size){ |
|
|
|
|
|
|
|
//添加新的超时记录
|
|
|
|
|
|
|
|
AftersalesOvertimeFineEntity overtimeFineEntity = new AftersalesOvertimeFineEntity(); |
|
|
|
|
|
|
|
overtimeFineEntity.setWorkOrderId(i.getId()); |
|
|
|
|
|
|
|
overtimeFineEntity.setMoney(BigDecimal.valueOf(50)); |
|
|
|
|
|
|
|
overtimeFineEntity.setTimeout(String.valueOf(hours)); |
|
|
|
|
|
|
|
overtimeFineEntity.setBusinessId(i.getBusinessId()); |
|
|
|
|
|
|
|
overtimeFineEntity.setBusinessName(i.getBusinessName()); |
|
|
|
|
|
|
|
overtimeFineEntity.setProcessorId(i.getProcessorId()); |
|
|
|
|
|
|
|
aftersalesOvertimeFineService.save(overtimeFineEntity); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}*/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|