|
|
|
@ -22,13 +22,11 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; |
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|
|
|
|
import com.logpm.aftersales.dto.AftersalesProcessingResultsDTO; |
|
|
|
|
import com.logpm.aftersales.dto.AftersalesWorkOrderDTO; |
|
|
|
|
import com.logpm.aftersales.entity.*; |
|
|
|
|
import com.logpm.aftersales.service.*; |
|
|
|
|
import com.logpm.aftersales.vo.AftersalesAbnormalPackageVO; |
|
|
|
|
import com.logpm.aftersales.vo.AftersalesDecreaseImageVO; |
|
|
|
|
import com.logpm.aftersales.vo.AftersalesProcessorVO; |
|
|
|
|
import com.logpm.aftersales.vo.AftersalesWorkOrderVO; |
|
|
|
|
import com.logpm.aftersales.vo.*; |
|
|
|
|
import com.logpm.aftersales.excel.AftersalesWorkOrderExcel; |
|
|
|
|
import com.logpm.aftersales.mapper.AftersalesWorkOrderMapper; |
|
|
|
|
import com.logpm.basicdata.entity.BasicdataWarehouseEntity; |
|
|
|
@ -78,6 +76,7 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
|
|
|
|
|
private final IAftersalesProcessorService aftersalesProcessorService; |
|
|
|
|
private final IAftersalesCompletionRecordService completionRecordService; |
|
|
|
|
private final IAftersalesCompletionRecipientService completionRecipientService; |
|
|
|
|
private final IAftersalesProcessingResultsService aftersalesProcessingResultsService; |
|
|
|
|
private final IAftersalesOvertimeFineService aftersalesOvertimeFineService; |
|
|
|
|
|
|
|
|
|
private final IBasicdataWarehouseClient warehouseClient; |
|
|
|
@ -240,6 +239,7 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
|
|
|
|
|
BeanUtil.copyProperties(i,packageEntity); |
|
|
|
|
packageEntity.setWorkOrderId(aftersalesWorkOrder.getId()); |
|
|
|
|
packageEntity.setConditions("1");//正常
|
|
|
|
|
packageEntity.setProcessingStatus("1");//待处理
|
|
|
|
|
packageEntity.setWarehouseId(myCurrentWarehouse.getId()); |
|
|
|
|
list.add(packageEntity); |
|
|
|
|
}); |
|
|
|
@ -328,11 +328,12 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
|
|
|
|
|
public void getIsItTimeout() { |
|
|
|
|
|
|
|
|
|
List<AftersalesWorkOrderEntity> aftersalesWorkOrderEntities = baseMapper.selectList(Wrappers.<AftersalesWorkOrderEntity>query().lambda() |
|
|
|
|
.eq(AftersalesWorkOrderEntity::getWorkOrderStatus, WorkOrderStatusConstant.daichuli.getValue()) |
|
|
|
|
.eq(AftersalesWorkOrderEntity::getIsDeleted,0) |
|
|
|
|
.apply("work_order_status in (10,20)") |
|
|
|
|
); |
|
|
|
|
if(!aftersalesWorkOrderEntities.isEmpty()){ |
|
|
|
|
List<AftersalesWorkOrderEntity> collect = aftersalesWorkOrderEntities.stream().filter(i -> { |
|
|
|
|
List<AftersalesWorkOrderVO> workOrderVOList = new ArrayList<>(); |
|
|
|
|
for (AftersalesWorkOrderEntity i : aftersalesWorkOrderEntities) { |
|
|
|
|
// 获取当前时间
|
|
|
|
|
LocalDateTime now = LocalDateTime.now(); |
|
|
|
|
// 获取48小时前的时间
|
|
|
|
@ -342,14 +343,32 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
|
|
|
|
|
long l = i.getCreateTime().getTime() / 1000; |
|
|
|
|
long l1 = timestamp - l; |
|
|
|
|
if (l1 > 0) { |
|
|
|
|
//以超时
|
|
|
|
|
return true; |
|
|
|
|
//查询处理方是否处理
|
|
|
|
|
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 { |
|
|
|
|
return false; |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
}).collect(Collectors.toList()); |
|
|
|
|
if(!collect.isEmpty()){ |
|
|
|
|
collect.forEach(i ->{ |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if(!workOrderVOList.isEmpty()){ |
|
|
|
|
workOrderVOList.forEach(i ->{ |
|
|
|
|
|
|
|
|
|
// 假设有两个时间戳(秒数)
|
|
|
|
|
long timestamp1 = new Date().getTime() / 1000; // 现在时间
|
|
|
|
@ -378,22 +397,28 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
|
|
|
|
|
//第一次超时
|
|
|
|
|
if(size == 0 ){ |
|
|
|
|
//处理超时数据
|
|
|
|
|
AftersalesWorkOrderEntity aftersalesWorkOrder = new AftersalesWorkOrderVO(); |
|
|
|
|
aftersalesWorkOrder.setWorkOrderStatus(WorkOrderStatusConstant.chaoshiweichuli.getValue()); |
|
|
|
|
aftersalesWorkOrder.setId(i.getId()); |
|
|
|
|
baseMapper.updateById(aftersalesWorkOrder); |
|
|
|
|
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(20)); |
|
|
|
|
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(20)); |
|
|
|
|
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); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
@ -402,6 +427,7 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
@ -491,7 +517,14 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl<AftersalesWo
|
|
|
|
|
return decreaseImageVO; |
|
|
|
|
}).collect(Collectors.toList()); |
|
|
|
|
aftersalesWorkOrderVO.setDecreaseImageVOList(decreaseImageVOS); |
|
|
|
|
|
|
|
|
|
//查询处理结果
|
|
|
|
|
AftersalesProcessingResultsEntity aftersalesProcessingResults = new AftersalesProcessingResultsEntity(); |
|
|
|
|
aftersalesProcessingResults.setWorkOrderId(aftersalesWorkOrder.getId()); |
|
|
|
|
//todo 会不会是多个处理结果
|
|
|
|
|
AftersalesProcessingResultsVO queryProcessing = aftersalesProcessingResultsService.getQueryProcessing(aftersalesProcessingResults); |
|
|
|
|
if(ObjectUtils.isNotNull(queryProcessing)){ |
|
|
|
|
aftersalesWorkOrderVO.setProcessingResultsVO(queryProcessing); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return aftersalesWorkOrderVO; |
|
|
|
|