提交 96fd3ba1 authored 作者: 刘海泉's avatar 刘海泉

Merge remote-tracking branch 'origin/v27.3_carriage_upload_20240924' into…

Merge remote-tracking branch 'origin/v27.3_carriage_upload_20240924' into v26.2-jdk17springboot3-20240912
...@@ -8,11 +8,10 @@ import com.clx.open.sdk.callback.OpenCallBackClient; ...@@ -8,11 +8,10 @@ import com.clx.open.sdk.callback.OpenCallBackClient;
import com.clx.open.sdk.callback.message.OrderInfoMessage; import com.clx.open.sdk.callback.message.OrderInfoMessage;
import com.clx.open.sdk.callback.message.TransportExceptionReportMessage; import com.clx.open.sdk.callback.message.TransportExceptionReportMessage;
import com.clx.order.enums.SyncPlatformEnum; import com.clx.order.enums.SyncPlatformEnum;
import com.clx.order.feign.InternalReportRouteExceptionFeign;
import com.clx.order.feign.OrderFeign; import com.clx.order.feign.OrderFeign;
import com.clx.order.vo.feign.FeignAddressVO; import com.clx.order.param.feign.InternalReportRouteExceptionParam;
import com.clx.order.vo.feign.FeignOrderInfoVO; import com.clx.order.vo.feign.*;
import com.clx.order.vo.feign.FeignOrderVO;
import com.clx.order.vo.feign.SystemAddressVO;
import com.clx.performance.config.ThirdAppConfig; import com.clx.performance.config.ThirdAppConfig;
import com.clx.performance.dao.OrderChildDao; import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.OrderGoodsDao; import com.clx.performance.dao.OrderGoodsDao;
...@@ -61,6 +60,7 @@ import java.math.BigDecimal; ...@@ -61,6 +60,7 @@ import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
/** /**
...@@ -93,6 +93,7 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi ...@@ -93,6 +93,7 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
public static List<Integer> allStatusList ; public static List<Integer> allStatusList ;
private final ExportFieldStruct exportFieldStruct; private final ExportFieldStruct exportFieldStruct;
private final ExportFieldDao exportFieldDao; private final ExportFieldDao exportFieldDao;
private final InternalReportRouteExceptionFeign internalReportRouteExceptionFeign;
static { static {
inProcessStatusList = Arrays.asList( inProcessStatusList = Arrays.asList(
...@@ -142,6 +143,11 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi ...@@ -142,6 +143,11 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
List<PerformanceProgressVO> records = performanceProgressStruct.convertList(page.getRecords()); 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->{ records.forEach(item->{
if(StringUtils.isNotBlank(item.getSeniorLogisticsManagerName())){ if(StringUtils.isNotBlank(item.getSeniorLogisticsManagerName())){
item.setSeniorLogisticsManagerName(Joiner.on(",") item.setSeniorLogisticsManagerName(Joiner.on(",")
...@@ -161,6 +167,18 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi ...@@ -161,6 +167,18 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
3, RoundingMode.HALF_UP).multiply(new BigDecimal(100)); 3, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
item.setTaskCompleteRatio(taskCompleteRatio); 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 +686,32 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi ...@@ -668,4 +686,32 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
//接单率 = 接单吨数 / 挂单吨数 //接单率 = 接单吨数 / 挂单吨数
return orderedWeight.divide(pendingWeight,3, RoundingMode.HALF_UP).multiply(new BigDecimal("100")); 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) {
// 构建查询参数
InternalReportRouteExceptionParam action = new InternalReportRouteExceptionParam();
action.setOrderNoList(orderNoList);
// 远程查询,异常上报信息
List<InternalReportRouteExceptionFeignVO> 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集合
Map<String, List<InternalReportRouteExceptionFeignVO>> reportRouteExceptionMap =
list.stream().collect(Collectors.groupingBy(InternalReportRouteExceptionFeignVO::getOrderNo));
// 构建map集合,key为订单编号,value为异常上报信息
return reportRouteExceptionMap.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey,
entry -> entry.getValue().stream().map(InternalReportRouteExceptionFeignVO::getExceptionInfo)
.collect(Collectors.joining(","))));
}
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论