|
|
|
@ -17,6 +17,7 @@
|
|
|
|
|
package com.logpm.aftersales.service.impl; |
|
|
|
|
|
|
|
|
|
import cn.hutool.core.util.ObjectUtil; |
|
|
|
|
import com.alibaba.nacos.plugin.auth.constant.Constants; |
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|
|
|
|
import com.logpm.aftersales.dto.AftersalesReturnRecordDTO; |
|
|
|
|
import com.logpm.aftersales.dto.AftersalesWorkOrderDTO; |
|
|
|
@ -32,13 +33,18 @@ import org.springblade.common.constant.aftersales.ProcessorProcessingStatusStatu
|
|
|
|
|
import org.springblade.common.constant.aftersales.ProcessorTypesOfStatusConstant; |
|
|
|
|
import org.springblade.common.constant.aftersales.WorkOrderStatusConstant; |
|
|
|
|
import org.springblade.core.log.exception.ServiceException; |
|
|
|
|
import org.springblade.core.secure.BladeUser; |
|
|
|
|
import org.springblade.core.secure.utils.AuthUtil; |
|
|
|
|
import org.springblade.core.tool.utils.BeanUtil; |
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper; |
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
|
import org.springblade.core.mp.base.BaseServiceImpl; |
|
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.Date; |
|
|
|
|
import java.util.Iterator; |
|
|
|
|
import java.util.List; |
|
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
|
@ -57,6 +63,7 @@ public class AftersalesReturnRecordServiceImpl extends BaseServiceImpl<Aftersale
|
|
|
|
|
private final IAftersalesProcessorService aftersalesProcessorService; |
|
|
|
|
private final IAftersalesAbnormalPackageService aftersalesAbnormalPackageService; |
|
|
|
|
private final IAftersalesDecreaseImageService aftersalesDecreaseImageService; |
|
|
|
|
private final IAftersaleSurveyRecordService aftersaleSurveyRecordService; |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public IPage<AftersalesReturnRecordVO> selectAftersalesReturnRecordPage(IPage<AftersalesReturnRecordVO> page, AftersalesReturnRecordVO aftersalesReturnRecord) { |
|
|
|
@ -104,7 +111,9 @@ public class AftersalesReturnRecordServiceImpl extends BaseServiceImpl<Aftersale
|
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
@Override |
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
|
public boolean batchRepulse(AftersalesReturnRecordDTO aftersalesReturnRecord) { |
|
|
|
|
BladeUser user = AuthUtil.getUser(); |
|
|
|
|
if(ObjectUtil.isNotNull(aftersalesReturnRecord)){ |
|
|
|
|
List<AftersalesProcessorEntity> processorEntityList = new ArrayList<>(); |
|
|
|
|
//打回的异常工单
|
|
|
|
@ -114,22 +123,60 @@ public class AftersalesReturnRecordServiceImpl extends BaseServiceImpl<Aftersale
|
|
|
|
|
.eq(AftersalesProcessorEntity::getWorkOrderId, i) |
|
|
|
|
.eq(AftersalesProcessorEntity::getTypesOf, ProcessorTypesOfStatusConstant.chulifang.getValue()) |
|
|
|
|
); |
|
|
|
|
List<AftersalesProcessorEntity> processorEntities = new ArrayList<>(); //新增
|
|
|
|
|
List<Long> pro = new ArrayList<>(); //修改为待回复的
|
|
|
|
|
List<AftersaleSurveyRecordEntity> surveyRecordEntities = new ArrayList<>(); |
|
|
|
|
//判断是否是已有处理方
|
|
|
|
|
if(!list.isEmpty()){ |
|
|
|
|
//删除
|
|
|
|
|
List<Long> collect = list.stream().map(AftersalesProcessorEntity::getId).collect(Collectors.toList()); |
|
|
|
|
aftersalesProcessorService.deleteLogic(collect); |
|
|
|
|
list.forEach( a -> { |
|
|
|
|
Iterator<AftersalesReturnRecordDTO.Processor> iterator = aftersalesReturnRecord.getProcessorList().iterator(); |
|
|
|
|
while (iterator.hasNext()){ |
|
|
|
|
AftersalesReturnRecordDTO.Processor q = iterator.next(); |
|
|
|
|
if(a.getBusinessId().equals(q.getId())){ |
|
|
|
|
//修改为待回复方
|
|
|
|
|
pro.add(a.getId()); |
|
|
|
|
//添加指定记录 1 调查记录 2 指定记录 3 操作记录
|
|
|
|
|
aftersalesWorkOrderService.addSurveyRecord(user,i,aftersalesReturnRecord.getReasonReturn(),"1"); //
|
|
|
|
|
aftersalesWorkOrderService.addSurveyRecord(user,i,user.getRoleName()+"指定处理方->"+q.getName(),"2"); |
|
|
|
|
iterator.remove(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
if(!aftersalesReturnRecord.getProcessorList().isEmpty()){ |
|
|
|
|
aftersalesReturnRecord.getProcessorList().forEach(q ->{ |
|
|
|
|
//添加新的处理方
|
|
|
|
|
AftersalesProcessorEntity processor = new AftersalesProcessorEntity(); |
|
|
|
|
processor.setBusinessId(q.getId()); |
|
|
|
|
processor.setBusinessName(q.getName()); |
|
|
|
|
processor.setProcessingStatus(ProcessorProcessingStatusStatusConstant.daichuli.getValue()); |
|
|
|
|
processor.setConditions(ProcessorConditionsStatusConstant.xinzeng.getValue()); |
|
|
|
|
processor.setTypesOf(ProcessorTypesOfStatusConstant.chulifang.getValue()); |
|
|
|
|
processor.setWorkOrderId(i); |
|
|
|
|
processor.setAssignTime(new Date()); |
|
|
|
|
processorEntities.add(processor); |
|
|
|
|
//添加操作记录
|
|
|
|
|
aftersalesWorkOrderService.addSurveyRecord(user,i,aftersalesReturnRecord.getReasonReturn(),"1"); //
|
|
|
|
|
aftersalesWorkOrderService.addSurveyRecord(user,i,user.getRoleName()+"指定处理方->"+q.getName(),"2"); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
//修改处理方为已回复
|
|
|
|
|
aftersalesProcessorService.update(Wrappers.<AftersalesProcessorEntity>update().lambda() |
|
|
|
|
.eq(AftersalesProcessorEntity::getWorkOrderId,i) |
|
|
|
|
.eq(AftersalesProcessorEntity::getProcessingStatus,ProcessorProcessingStatusStatusConstant.tijiaofang.getValue()) |
|
|
|
|
.set(AftersalesProcessorEntity::getProcessingStatus,ProcessorProcessingStatusStatusConstant.yichuli.getValue()) |
|
|
|
|
); |
|
|
|
|
//修改处理方
|
|
|
|
|
if(!pro.isEmpty()){ |
|
|
|
|
aftersalesProcessorService.update(Wrappers.<AftersalesProcessorEntity>update().lambda() |
|
|
|
|
.in(AftersalesProcessorEntity::getId,pro) |
|
|
|
|
.set(AftersalesProcessorEntity::getProcessingStatus,ProcessorProcessingStatusStatusConstant.daichuli.getValue()) |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
//添加处理方
|
|
|
|
|
if(!processorEntities.isEmpty()){ |
|
|
|
|
aftersalesProcessorService.saveBatch(processorEntities); |
|
|
|
|
} |
|
|
|
|
//直接添加
|
|
|
|
|
aftersalesReturnRecord.getProcessorList().forEach(q ->{ |
|
|
|
|
AftersalesProcessorEntity processor = new AftersalesProcessorEntity(); |
|
|
|
|
processor.setBusinessId(q.getId()); |
|
|
|
|
processor.setBusinessName(q.getName()); |
|
|
|
|
processor.setProcessingStatus(ProcessorProcessingStatusStatusConstant.daichuli.getValue()); |
|
|
|
|
processor.setConditions(ProcessorConditionsStatusConstant.xinzeng.getValue()); |
|
|
|
|
processor.setTypesOf(ProcessorTypesOfStatusConstant.chulifang.getValue()); |
|
|
|
|
processor.setWorkOrderId(i); |
|
|
|
|
processorEntityList.add(processor); |
|
|
|
|
}); |
|
|
|
|
//修改异常工单的状态
|
|
|
|
|
AftersalesWorkOrderEntity workOrderEntity = new AftersalesWorkOrderVO(); |
|
|
|
|
workOrderEntity.setId(i); |
|
|
|
@ -139,6 +186,7 @@ public class AftersalesReturnRecordServiceImpl extends BaseServiceImpl<Aftersale
|
|
|
|
|
BeanUtil.copyProperties(aftersalesReturnRecord,returnRecordEntity); |
|
|
|
|
returnRecordEntity.setWorkOrderId(i); |
|
|
|
|
baseMapper.insert(returnRecordEntity); |
|
|
|
|
aftersalesWorkOrderService.addSurveyRecord(user,i,user.getRoleName()+"打回了该异常工单","3"); |
|
|
|
|
}); |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|