提交 710654ff authored 作者: 刘海泉's avatar 刘海泉

Merge remote-tracking branch 'origin/v21.5_offered_third_data_20240812' into release

# Conflicts: # performance-api/src/main/java/com/clx/performance/feign/PerformanceSDKFeign.java # performance-web/src/main/java/com/clx/performance/controller/feign/PerformanceSdkFeignController.java # performance-web/src/main/java/com/clx/performance/extranal/user/OrderService.java # performance-web/src/main/java/com/clx/performance/extranal/user/impl/OrderServiceImpl.java
......@@ -4,6 +4,7 @@ import com.clx.open.sdk.request.action.GetOrderBreakContractOwnerRuleFileAction;
import com.clx.open.sdk.request.action.QueryPerformanceProgressAction;
import com.clx.open.sdk.request.action.QueryPerformanceProgressLogAction;
import com.clx.open.sdk.request.dto.OrderCanExtractWeightDTO;
import com.clx.open.sdk.request.dto.BatchOrderStatisticsInfoDTO;
import com.clx.open.sdk.request.dto.OwnerCancelResidueWeightDTO;
import com.clx.performance.param.pc.OrderCancelParam;
import com.clx.performance.vo.pc.OwnerAccountAllVO;
......@@ -17,6 +18,7 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import javax.validation.constraints.NotEmpty;
import java.util.List;
@FeignClient(name = "clx-performance", configuration = PerformanceClientConfiguration.class)
......@@ -52,4 +54,8 @@ public interface PerformanceSDKFeign {
Result<OrderCanExtractWeightDTO> getOrderCanExtractWeight(@RequestParam(value = "orderNo") String orderNo);
@GetMapping("clx-performance/feign/sdk/queryTaskStatisticsInfo")
Result<BatchOrderStatisticsInfoDTO> queryTaskStatisticsInfo(@RequestParam("orderNoList")
@NotEmpty(message = "订单编号集合不能为空") List<String> orderNoList);
}
package com.clx.performance.controller.feign;
import com.clx.open.sdk.request.action.GetOrderBreakContractOwnerRuleFileAction;
import com.clx.open.sdk.request.action.GetOwnerAccountInfoAction;
import com.clx.open.sdk.request.action.QueryPerformanceProgressAction;
import com.clx.open.sdk.request.action.QueryPerformanceProgressLogAction;
import com.clx.open.sdk.request.dto.OrderCanExtractWeightDTO;
import com.clx.open.sdk.request.dto.BatchOrderStatisticsInfoDTO;
import com.clx.open.sdk.request.dto.OrderStatisticsInfoDTO;
import com.clx.open.sdk.request.dto.OwnerCancelResidueWeightDTO;
import com.clx.performance.extranal.user.OrderService;
import com.clx.performance.param.pc.OrderCancelParam;
import com.clx.performance.service.OrderCancelService;
import com.clx.performance.service.OrderGoodsService;
......@@ -28,7 +30,7 @@ import org.springframework.beans.BeanUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import javax.validation.constraints.NotEmpty;
import java.util.List;
import static com.clx.performance.enums.PerformanceProgressEnum.LogType.PERFORMANCE_ABNORMAL_REASON;
......@@ -57,6 +59,8 @@ public class PerformanceSdkFeignController {
private final OrderService orderService;
@ApiOperation(value = "货主端取消订单", notes = "<br>By:胡宇帆")
@PostMapping("/ownCancelOrderPre")
......@@ -108,4 +112,12 @@ public class PerformanceSdkFeignController {
}
@ApiOperation(value = "查询订单相关统计信息", notes = "<br>By:刘海泉")
@GetMapping("/queryTaskStatisticsInfo")
Result<BatchOrderStatisticsInfoDTO> queryTaskStatisticsInfo(@RequestParam("orderNoList")
@NotEmpty(message = "订单编号集合不能为空") List<String> orderNoList){
return Result.ok(orderService.queryTaskStatisticsInfo(orderNoList));
}
}
package com.clx.performance.extranal.user;
import com.clx.open.sdk.request.dto.BatchOrderStatisticsInfoDTO;
import com.clx.open.sdk.request.dto.OrderStatisticsInfoDTO;
import com.clx.order.vo.feign.FeignOrderInfoVO;
import com.msl.common.base.Optional;
import org.springframework.web.bind.annotation.RequestParam;
......@@ -19,4 +21,5 @@ public interface OrderService {
Optional<Map<String,FeignOrderInfoVO>> queryListOrderByOrderNoList(List<String> orderNoList);
BatchOrderStatisticsInfoDTO queryTaskStatisticsInfo(List<String> orderNoList);
}
package com.clx.performance.extranal.user.impl;
import com.clx.open.sdk.request.dto.BatchOrderStatisticsInfoDTO;
import com.clx.open.sdk.request.dto.OrderStatisticsInfoDTO;
import com.clx.order.feign.OrderFeign;
import com.clx.order.vo.feign.FeignOrderInfoVO;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.enums.OrderGoodsStatusEnum;
import com.clx.performance.extranal.user.OrderService;
import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderGoods;
import com.msl.common.base.Optional;
import com.msl.common.result.Result;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.math.BigDecimal;
import java.util.*;
@Service
@Slf4j
......@@ -18,6 +29,8 @@ import java.util.Map;
public class OrderServiceImpl implements OrderService {
private final OrderFeign orderFeign;
private final OrderGoodsDao orderGoodsDao;
private final OrderChildDao orderChildDao;
@Override
public Optional<FeignOrderInfoVO> getOrderInfo(String orderNo) {
......@@ -39,4 +52,84 @@ public class OrderServiceImpl implements OrderService {
.filter(Result::succeed)
.map(Result::getData);
}
@Override
public BatchOrderStatisticsInfoDTO queryTaskStatisticsInfo(List<String> orderNoList) {
BatchOrderStatisticsInfoDTO returnResult = new BatchOrderStatisticsInfoDTO();
//构建结果集
Map<String, OrderStatisticsInfoDTO> result = new HashMap<>();
orderNoList.forEach(item->{
OrderStatisticsInfoDTO dto = new OrderStatisticsInfoDTO();
dto.setOrderNo(item);
dto.setPendingTruckNum(0);
dto.setOrderedTruckNum(0);
dto.setNotLoadTruckNum(0);
dto.setArriveSendTruckNum(0);
dto.setArriveReceiveTruckNum(0);
dto.setLoadTruckNum(0);
dto.setUnLoadTruckNum(0);
dto.setLoadWeight(BigDecimal.ZERO);
dto.setUnLoadWeight(BigDecimal.ZERO);
result.put(item,dto);
});
List<OrderGoods> orderGoods = orderGoodsDao.listInField(OrderGoods::getOrderNo, orderNoList);
if(CollectionUtils.isEmpty(orderGoods)){
returnResult.setList(new ArrayList<>(result.values()));
return returnResult;
}
//计算挂单车数
for (OrderGoods orderGood : orderGoods) {
if(Objects.equals(orderGood.getOrderGoodsStatus(), OrderGoodsStatusEnum.Status.CANCEL.getCode())){
continue;
}
OrderStatisticsInfoDTO dto = result.get(orderGood.getOrderNo());
dto.setPendingTruckNum(dto.getPendingTruckNum() + orderGood.getNeedTruckNum());
result.put(orderGood.getOrderNo(),dto);
}
//计算运单相关统计数据
List<OrderChild> childList = orderChildDao.listInField(OrderChild::getOrderNo, orderNoList);
if(CollectionUtils.isEmpty(childList)){
returnResult.setList(new ArrayList<>(result.values()));
return returnResult;
}
for (OrderChild child : childList) {
OrderStatisticsInfoDTO dto = result.get(child.getOrderNo());
//取消的排除
if(child.getStatus() > OrderChildEnum.Status.COMPLETE.getCode()){
continue;
}
//未取消的运单 接单数
dto.setOrderedTruckNum(dto.getOrderedTruckNum() + 1);
if(child.getStatus() >=OrderChildEnum.Status.CREATED.getCode() &&
child.getStatus() < OrderChildEnum.Status.LOAD.getCode() ){
dto.setNotLoadTruckNum(dto.getNotLoadTruckNum() + 1);
}
//到达货源地
if(Objects.equals(child.getStatus(),OrderChildEnum.Status.ARRIVE_SEND.getCode())){
dto.setArriveSendTruckNum(dto.getArriveSendTruckNum() + 1);
}
//到达卸车地
if(Objects.equals(child.getStatus(),OrderChildEnum.Status.ARRIVE_RECEIVE.getCode())){
dto.setArriveReceiveTruckNum(dto.getArriveReceiveTruckNum() + 1);
}
//已装车
if(child.getStatus() >= OrderChildEnum.Status.LOAD.getCode()){
dto.setLoadTruckNum(dto.getLoadTruckNum() + 1);
dto.setLoadWeight(dto.getLoadWeight().add(child.getLoadNet()));
}
//已卸车
if(child.getStatus() >= OrderChildEnum.Status.UNLOAD.getCode()){
dto.setUnLoadTruckNum(dto.getUnLoadTruckNum() + 1);
dto.setUnLoadWeight(dto.getUnLoadWeight().add(child.getUnloadNet()));
}
result.put(child.getOrderNo(),dto);
}
returnResult.setList(new ArrayList<>(result.values()));
return returnResult;
}
}
......@@ -71,10 +71,13 @@ public class PushOrderChildExpectTimeJob {
return;
}
Map<String, Integer> orderSourceMap = mapResult.getData();
List<OrderChildExpectTimeDTO> syncExpectList = new ArrayList<>();
List<OrderChildExpectTimeDTO> syncSmbExpectList = new ArrayList<>(); //同步数媒宝预计时间list
List<OrderChildExpectTimeDTO> syncNewOwnerClientExpectList = new ArrayList<>(); //同步马上来供应链预计时间list
list.forEach(item->{
//交易平台数媒宝同步运单同步实时预计时间
if(Objects.equals(orderSourceMap.get(item.getOrderNo()),SyncPlatformEnum.Source.TRADE_PLATFORM.getCode())){
if(Objects.equals(orderSourceMap.get(item.getOrderNo()),SyncPlatformEnum.Source.TRADE_PLATFORM.getCode())
|| Objects.equals(orderSourceMap.get(item.getOrderNo()),SyncPlatformEnum.Source.NEW_OWNER_CLIENT.getCode())){
List<OrderChildExpectDTO> expectList = orderChildService.getOrderChildExpect(
item.getChildNo());
if(CollectionUtils.isEmpty(expectList) || StringUtils.isBlank(expectList.get(0).getCreateTime())){
......@@ -99,23 +102,35 @@ public class PushOrderChildExpectTimeJob {
}else{ //到达货源地之后 && 到达目的地之前
dto.setExpectReceiveTime(orderChildExpect.getExpectReceiveTime());
}
syncExpectList.add(dto);
if(Objects.equals(orderSourceMap.get(item.getOrderNo()),SyncPlatformEnum.Source.TRADE_PLATFORM.getCode())){
syncSmbExpectList.add(dto);
}else{
syncNewOwnerClientExpectList.add(dto);
}
}
});
if(CollectionUtils.isNotEmpty(syncExpectList)){
if(CollectionUtils.isNotEmpty(syncSmbExpectList)){
OrderChildExpectTimeMessage message = new OrderChildExpectTimeMessage();
message.setList(syncExpectList);
message.setList(syncSmbExpectList);
String data = JSON.toJSONString(message);
OpenCallBackClient openCallBackClient = thirdAppConfig.getOpenCallBackClient(
SyncPlatformEnum.Source.TRADE_PLATFORM.getCode().toString());
log.info("运单预计时间信息同步开始,请求参数:{}",data);
log.info("数媒宝=====》运单预计时间信息同步开始,请求参数:{}",data);
Result<?> result = openCallBackClient.encryptPost(data,message.topic());
log.info("运单预计时间信息同步,响应结果:{}",JSON.toJSONString(result));
log.info("数媒宝=====》运单预计时间信息同步,响应结果:{}",JSON.toJSONString(result));
}
}
if(CollectionUtils.isNotEmpty(syncNewOwnerClientExpectList)){
OrderChildExpectTimeMessage message = new OrderChildExpectTimeMessage();
message.setList(syncNewOwnerClientExpectList);
String data = JSON.toJSONString(message);
OpenCallBackClient openCallBackClient = thirdAppConfig.getOpenCallBackClient(
SyncPlatformEnum.Source.NEW_OWNER_CLIENT.getCode().toString());
log.info("马上来供应链=====》运单预计时间信息同步开始,请求参数:{}",data);
Result<?> result = openCallBackClient.encryptPost(data,message.topic());
log.info("马上来供应链=====》运单预计时间信息同步,响应结果:{}",JSON.toJSONString(result));
}
}
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论