提交 84a17f55 authored 作者: 刘海泉's avatar 刘海泉

增加查询订单统计信息接口

上级 e769bfdd
......@@ -98,6 +98,6 @@ public class PerformanceSdkFeignController {
@GetMapping("/queryTaskStatisticsInfo")
Result<Map<String, OrderStatisticsInfoDTO>> queryTaskStatisticsInfo(@RequestParam("orderNoList")
@NotEmpty(message = "订单编号集合不能为空") List<String> orderNoList){
return null;
return Result.ok(orderService.queryTaskStatisticsInfo(orderNoList));
}
}
package com.clx.performance.extranal.user;
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;
import java.util.List;
import java.util.Map;
public interface OrderService {
......@@ -14,4 +16,5 @@ public interface OrderService {
Optional<List<String>> getMonthSameLineOrderList(String orderNo);
Map<String, OrderStatisticsInfoDTO> queryTaskStatisticsInfo(List<String> orderNoList);
}
package com.clx.performance.extranal.user.impl;
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.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.math.BigDecimal;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
@Slf4j
......@@ -17,6 +27,8 @@ import java.util.List;
public class OrderServiceImpl implements OrderService {
private final OrderFeign orderFeign;
private final OrderGoodsDao orderGoodsDao;
private final OrderChildDao orderChildDao;
@Override
public Optional<FeignOrderInfoVO> getOrderInfo(String orderNo) {
......@@ -31,4 +43,57 @@ public class OrderServiceImpl implements OrderService {
.filter(Result::succeed)
.map(Result::getData);
}
@Override
public Map<String, OrderStatisticsInfoDTO> queryTaskStatisticsInfo(List<String> orderNoList) {
//构建结果集
Map<String, OrderStatisticsInfoDTO> result = new HashMap<>();
orderNoList.forEach(item->{
OrderStatisticsInfoDTO dto = new OrderStatisticsInfoDTO();
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)){
return result;
}
//计算挂单车数
for (OrderGoods orderGood : orderGoods) {
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)){
return result;
}
for (OrderChild child : childList) {
OrderStatisticsInfoDTO dto = result.get(child.getOrderNo());
//未取消的运单
if(child.getStatus() <= OrderChildEnum.Status.COMPLETE.getCode()){
dto.setOrderedTruckNum(dto.getOrderedTruckNum() + 1);
}
result.put(child.getOrderNo(),dto);
}
return null;
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论