|
|
@ -2,10 +2,9 @@ package com.ruoyi.aftersales.service.impl; |
|
|
|
|
|
|
|
import java.text.DecimalFormat; |
|
|
|
import java.text.SimpleDateFormat; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.Date; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Optional; |
|
|
|
import java.util.*; |
|
|
|
import java.util.function.Function; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
import com.ruoyi.aftersales.domain.AfterSalesShippingDevice; |
|
|
|
import com.ruoyi.aftersales.domain.AftersalesComplaintNotice; |
|
|
@ -78,45 +77,50 @@ public class AftersalesComplaintNoticeDetailServiceImpl implements IAftersalesCo |
|
|
|
/** |
|
|
|
* 导出售后客诉通知单详情列表 |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public List<AftersalesComplaintExportVO> getAfterComplaintExportList(String[] complaintNoticeCodes) { |
|
|
|
List<AftersalesComplaintNotice> complaintNoticeList = new ArrayList<>(); |
|
|
|
if(StringUtils.isNotEmpty(complaintNoticeCodes)){ |
|
|
|
complaintNoticeList = complaintNoticeMapper.selectComplaintNoticeByCodes(complaintNoticeCodes); |
|
|
|
}else { |
|
|
|
AftersalesComplaintNotice tempNotice = new AftersalesComplaintNotice(); |
|
|
|
complaintNoticeList = complaintNoticeMapper.selectAftersalesComplaintNoticeList(tempNotice); |
|
|
|
} |
|
|
|
List<AftersalesComplaintExportVO> exportVOList = new ArrayList<>(); |
|
|
|
for (AftersalesComplaintNotice notice: complaintNoticeList) { |
|
|
|
String noticeCode = notice.getComplaintNoticeCode(); |
|
|
|
List<AftersalesComplaintNoticeDetail> noticeDetails = aftersalesComplaintNoticeDetailMapper.selectMaterialListByNoticeCode(noticeCode); |
|
|
|
if(StringUtils.isNotEmpty(noticeDetails)){ |
|
|
|
for (AftersalesComplaintNoticeDetail noticeDetail: noticeDetails) { |
|
|
|
AftersalesComplaintExportVO exportVO = new AftersalesComplaintExportVO(); |
|
|
|
exportVO.setComplaintNoticeCode(noticeCode); |
|
|
|
exportVO.setSnCode(notice.getSnCode()); |
|
|
|
exportVO.setSalesOrderCode(notice.getSalesOrderCode()); |
|
|
|
exportVO.setClosingProcedures(notice.getClosingProcedures()); |
|
|
|
exportVO.setCustomerName(notice.getCustomerName()); |
|
|
|
exportVO.setMakeNo(notice.getMakeNo()); |
|
|
|
exportVO.setRemark(notice.getRemark()); |
|
|
|
exportVO.setMaterialNo(notice.getMaterialNo()); |
|
|
|
exportVO.setMaterialName(notice.getMaterialName()); |
|
|
|
exportVO.setMaterialBrand(notice.getMaterialBrand()); |
|
|
|
exportVO.setMaterialModelCode(notice.getMaterialModelCode()); |
|
|
|
exportVO.setCreateBy(notice.getCreateBy()); |
|
|
|
exportVO.setCreateTime(notice.getCreateTime()); |
|
|
|
exportVO.setUpdateBy(notice.getUpdateBy()); |
|
|
|
exportVO.setUpdateTime(notice.getUpdateTime()); |
|
|
|
exportVO.setComplaintProblem(noticeDetail.getComplaintProblem()); |
|
|
|
exportVO.setAdverseReportUrl(noticeDetail.getAdverseReportUrl()); |
|
|
|
exportVO.setEmergencyDegree(noticeDetail.getEmergencyDegree()); |
|
|
|
exportVOList.add(exportVO); |
|
|
|
} |
|
|
|
@Override |
|
|
|
public List<AftersalesComplaintExportVO> getAfterComplaintExportList(List<AftersalesComplaintNotice> list) { |
|
|
|
// 获取所有的客诉单号
|
|
|
|
List<String> collectNoticeCodes = list.stream() |
|
|
|
.map(AftersalesComplaintNotice::getComplaintNoticeCode) |
|
|
|
.collect(Collectors.toList()); |
|
|
|
|
|
|
|
// 根据客诉单号查询对应的客诉详情列表
|
|
|
|
List<AftersalesComplaintNoticeDetail> noticeDetails = aftersalesComplaintNoticeDetailMapper.selectAftersalesComplaintNoticeDetailListByCodeList(collectNoticeCodes); |
|
|
|
|
|
|
|
// 创建一个 AftersalesComplaintNotice 的 Map,键为客诉单号
|
|
|
|
Map<String, AftersalesComplaintNotice> aftersalesComplaintNoticeMap = list.stream() |
|
|
|
.collect(Collectors.toMap(AftersalesComplaintNotice::getComplaintNoticeCode, Function.identity())); |
|
|
|
|
|
|
|
// 初始化导出列表
|
|
|
|
List<AftersalesComplaintExportVO> aftersalesComplaintExportVOS = new ArrayList<>(); |
|
|
|
|
|
|
|
for (AftersalesComplaintNoticeDetail detail : noticeDetails) { |
|
|
|
AftersalesComplaintExportVO exportVo = new AftersalesComplaintExportVO(); |
|
|
|
|
|
|
|
// 从 AftersalesComplaintNoticeDetail 填充数据
|
|
|
|
exportVo.setComplaintProblem(detail.getComplaintProblem()); |
|
|
|
exportVo.setEmergencyDegree(detail.getEmergencyDegree()); |
|
|
|
|
|
|
|
// 从 AftersalesComplaintNotice 填充数据,通过客诉单号进行关联
|
|
|
|
AftersalesComplaintNotice notice = aftersalesComplaintNoticeMap.get(detail.getComplaintNoticeCode()); |
|
|
|
if (notice != null) { |
|
|
|
exportVo.setSnCode(notice.getSnCode()); |
|
|
|
exportVo.setComplaintNoticeCode(notice.getComplaintNoticeCode()); |
|
|
|
exportVo.setSalesOrderCode(notice.getSalesOrderCode()); |
|
|
|
exportVo.setCustomerName(notice.getCustomerName()); |
|
|
|
exportVo.setMakeNo(notice.getMakeNo()); |
|
|
|
exportVo.setMaterialNo(notice.getMaterialNo()); |
|
|
|
exportVo.setMaterialName(notice.getMaterialName()); |
|
|
|
exportVo.setMaterialBrand(notice.getMaterialBrand()); |
|
|
|
exportVo.setMaterialModelCode(notice.getMaterialModelCode()); |
|
|
|
exportVo.setClosingProcedures(notice.getClosingProcedures()); |
|
|
|
} |
|
|
|
|
|
|
|
// 添加到结果列表
|
|
|
|
aftersalesComplaintExportVOS.add(exportVo); |
|
|
|
} |
|
|
|
return exportVOList; |
|
|
|
|
|
|
|
return aftersalesComplaintExportVOS; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|