提交 c60db4d0 authored 作者: 艾庆国's avatar 艾庆国

Merge branch 'refs/heads/v25.9_dock_jmb_20240911'

# Conflicts: # performance-api/src/main/java/com/clx/performance/feign/PerformanceSDKFeign.java # performance-web/src/main/java/com/clx/performance/controller/feign/PerformanceSdkFeignController.java
package com.clx.performance.feign;
import com.clx.open.sdk.request.action.GetOrderBreakContractOwnerRuleFileAction;
import com.clx.open.sdk.request.dto.OrderCanExtractWeightDTO;
import com.clx.open.sdk.request.action.QueryPerformanceProgressAction;
import com.clx.open.sdk.request.action.QueryPerformanceProgressLogAction;
import com.clx.open.sdk.request.dto.BatchOrderStatisticsDTO;
import com.clx.open.sdk.request.dto.BatchOrderStatisticsInfoDTO;
import com.clx.open.sdk.request.dto.OrderCanExtractWeightDTO;
import com.clx.open.sdk.request.dto.OwnerCancelResidueWeightDTO;
import com.clx.performance.param.pc.OrderCancelParam;
import com.clx.performance.vo.pc.OwnerAccountAllVO;
......@@ -68,4 +69,10 @@ public interface PerformanceSDKFeign {
@GetMapping(value = {"clx-performance/feign/sdk/getAlreadyWeight"})
Result<BigDecimal> getAlreadyWeight(@RequestParam(value = "orderNo") String orderNo);
@GetMapping("clx-performance/feign/sdk/queryOrderStatistics")
Result<BatchOrderStatisticsDTO> queryOrderStatistics(@RequestParam("orderNoList")
@NotEmpty(message = "订单编号集合不能为空") List<String> orderNoList);
}
......@@ -3,6 +3,7 @@ package com.clx.performance.controller.feign;
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.BatchOrderStatisticsDTO;
import com.clx.open.sdk.request.dto.BatchOrderStatisticsInfoDTO;
import com.clx.open.sdk.request.dto.OrderCanExtractWeightDTO;
import com.clx.open.sdk.request.dto.OwnerCancelResidueWeightDTO;
......@@ -133,4 +134,13 @@ public class PerformanceSdkFeignController {
@NotBlank(message = "订单编号不能为空") String orderNo) {
return Result.ok(orderWeightService.getAlreadyWeight(orderNo));
}
@ApiOperation(value = "查询订单相关统计", notes = "<br>By:刘海泉")
@GetMapping("/queryOrderStatistics")
Result<BatchOrderStatisticsDTO> queryOrderStatistics(@RequestParam("orderNoList")
@NotEmpty(message = "订单编号集合不能为空") List<String> orderNoList){
return Result.ok(orderService.queryOrderStatistics(orderNoList));
}
}
package com.clx.performance.extranal.user;
import com.clx.open.sdk.request.dto.BatchOrderStatisticsDTO;
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;
......@@ -22,4 +22,6 @@ public interface OrderService {
BatchOrderStatisticsInfoDTO queryTaskStatisticsInfo(List<String> orderNoList);
BatchOrderStatisticsDTO queryOrderStatistics(List<String> orderNoList);
}
package com.clx.performance.extranal.user.impl;
import com.clx.open.sdk.request.dto.BatchOrderStatisticsDTO;
import com.clx.open.sdk.request.dto.BatchOrderStatisticsInfoDTO;
import com.clx.open.sdk.request.dto.OrderStatisticsDTO;
import com.clx.open.sdk.request.dto.OrderStatisticsInfoDTO;
import com.clx.order.feign.OrderFeign;
import com.clx.order.vo.feign.FeignOrderInfoVO;
......@@ -11,6 +13,8 @@ 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.clx.performance.service.PerformanceProgressService;
import com.clx.performance.utils.spring.ApplicationContextUtils;
import com.msl.common.base.Optional;
import com.msl.common.result.Result;
import lombok.AllArgsConstructor;
......@@ -20,8 +24,6 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.*;
import java.util.List;
import java.util.Map;
@Service
@Slf4j
......@@ -132,4 +134,38 @@ public class OrderServiceImpl implements OrderService {
returnResult.setList(new ArrayList<>(result.values()));
return returnResult;
}
@Override
public BatchOrderStatisticsDTO queryOrderStatistics(List<String> orderNoList) {
BatchOrderStatisticsDTO returnResult = new BatchOrderStatisticsDTO();
//构建结果集
Map<String, OrderStatisticsDTO> result = new HashMap<>();
orderNoList.forEach(item->{
OrderStatisticsDTO dto = new OrderStatisticsDTO();
dto.setOrderNo(item);
dto.setPendingWeight(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;
}
OrderStatisticsDTO dto = result.get(orderGood.getOrderNo());
BigDecimal pendingWeight = ApplicationContextUtils.getBean(PerformanceProgressService.class).calcPendingWeight(
orderGood);
dto.setPendingWeight(dto.getPendingWeight().add(pendingWeight));
result.put(orderGood.getOrderNo(),dto);
}
returnResult.setList(new ArrayList<>(result.values()));
return returnResult;
}
}
......@@ -12,6 +12,7 @@ import com.clx.performance.vo.pc.PerformanceProgressOperationLogVO;
import com.clx.performance.vo.pc.PerformanceProgressVO;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import java.math.BigDecimal;
import java.util.List;
/**
......@@ -39,6 +40,9 @@ public interface PerformanceProgressService {
void dealPerformanceProgress4OrderGoods(OrderGoods data);
//计算履约进度表货单的挂单吨数
BigDecimal calcPendingWeight(OrderGoods item);
void dealPerformanceProgress4OrderChild(OrderChild data);
SXSSFWorkbook exportPerformanceProgress(PagePerformanceProgress param);
......
......@@ -462,7 +462,8 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
}
//计算履约进度表货单的挂单吨数
private BigDecimal calcPendingWeight(OrderGoods item){
@Override
public BigDecimal calcPendingWeight(OrderGoods item){
if(Objects.equals(item.getOrderGoodsStatus(), OrderGoodsStatusEnum.Status.CANCEL.getCode())){
return Objects.nonNull(item.getAlreadyTransportWeight())?item.getAlreadyTransportWeight():BigDecimal.ZERO;
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论