提交 c204bc05 authored 作者: 马路路's avatar 马路路

履约进度表模块-履约进度列表接口-查询异常上报信息

上级 7a1e127f
......@@ -7,7 +7,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.open.sdk.callback.OpenCallBackClient;
import com.clx.open.sdk.callback.message.OrderInfoMessage;
import com.clx.open.sdk.callback.message.TransportExceptionReportMessage;
import com.clx.open.sdk.request.action.InternalReportRouteExceptionAction;
import com.clx.open.sdk.request.dto.InternalReportRouteExceptionDTO;
import com.clx.order.enums.SyncPlatformEnum;
import com.clx.order.feign.InternalReportRouteExceptionFeign;
import com.clx.order.feign.OrderFeign;
import com.clx.order.vo.feign.FeignAddressVO;
import com.clx.order.vo.feign.FeignOrderInfoVO;
......@@ -61,6 +64,7 @@ import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
/**
......@@ -93,6 +97,7 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
public static List<Integer> allStatusList ;
private final ExportFieldStruct exportFieldStruct;
private final ExportFieldDao exportFieldDao;
private final InternalReportRouteExceptionFeign internalReportRouteExceptionFeign;
static {
inProcessStatusList = Arrays.asList(
......@@ -142,6 +147,11 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
List<PerformanceProgressVO> records = performanceProgressStruct.convertList(page.getRecords());
// 筛选出OrderNo集合
List<String> orderNoList = records.stream().map(PerformanceProgressVO::getOrderNo).collect(Collectors.toList());
// 获取内部线路异常信息Map集合
Map<String, String> internalReportRouteExceptionMap = this.getInternalReportRouteException(orderNoList);
records.forEach(item->{
if(StringUtils.isNotBlank(item.getSeniorLogisticsManagerName())){
item.setSeniorLogisticsManagerName(Joiner.on(",")
......@@ -161,6 +171,18 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
3, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
item.setTaskCompleteRatio(taskCompleteRatio);
}
// 通过订单关联订单异常上报信息
if(StringUtils.isNotBlank(item.getAbnormalRemark())
&& StringUtils.isNotBlank(item.getOrderNo())
&& internalReportRouteExceptionMap.containsKey(item.getOrderNo()) ) {
// 履约进度表中异常备注同步该订单的内部【异常上报】信息,多次上报与编辑中的异常备注间,用”/“进行分割
// 拼接远程调用的异常信息
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(item.getAbnormalRemark())
.append("/")
.append(internalReportRouteExceptionMap.get(item.getOrderNo()));
item.setAbnormalRemark(stringBuilder.toString());
}
}
);
......@@ -668,4 +690,26 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
//接单率 = 接单吨数 / 挂单吨数
return orderedWeight.divide(pendingWeight,3, RoundingMode.HALF_UP).multiply(new BigDecimal("100"));
}
/**
* 通过远程代用clx-order服务获取“线路异常上报”数据,构建map集合
*
* @param orderNoList
* @return
*/
public Map<String, String> getInternalReportRouteException(List<String> orderNoList) {
// 构建查询参数
InternalReportRouteExceptionAction action = new InternalReportRouteExceptionAction();
action.setOrderNoList(orderNoList);
// 远程查询,异常上报信息
List<InternalReportRouteExceptionDTO> list = Optional.of(internalReportRouteExceptionFeign
.getInternalReportRouteExceptionList(action)).filter(Result::succeed)
.map(Result::getData).orElse(null);
// 如果为空,返回空map集合
if (CollectionUtils.isEmpty(list)) {
return new HashMap<>();
}
// 以订单编号作为key,多条异常上报信息作为value,构建map集合
return list.stream().collect(Collectors.toMap(InternalReportRouteExceptionDTO::getOrderNo, InternalReportRouteExceptionDTO::getExceptionInfo));
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论