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

提交货单列表增加标红的字段标识逻辑

上级 5cac8194
......@@ -169,4 +169,8 @@ public class OrderGoodsVO {
@ApiModelProperty("已派单数")
private Integer dispatchedOrders;
@ApiModelProperty("当前货单总吨数是否超过总拉运量 1:超过 ")
private Integer overOrderWeight;
}
\ No newline at end of file
......@@ -2,6 +2,7 @@ package com.clx.performance.dao;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.dto.CancelOrderGoodsWeightDTO;
import com.clx.performance.dto.OrderExtractWeightDTO;
import com.clx.performance.dto.OrderGoodsCancelWeightDTO;
import com.clx.performance.mapper.OrderGoodsMapper;
import com.clx.performance.model.OrderGoods;
......@@ -115,4 +116,6 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int
void batchUpdateOrderGoodsPaying(List<OrderGoods> updateOrderGoods);
void batchCancelOrderGoodsWeight(List<OrderGoodsCancelWeightDTO> cancelOrderGoodsList);
List<OrderExtractWeightDTO> calcOrderGoodsExtractWeightByOrderNoList(List<String> orderNoList);
}
......@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.dto.CancelOrderGoodsWeightDTO;
import com.clx.performance.dto.OrderExtractWeightDTO;
import com.clx.performance.dto.OrderGoodsCancelWeightDTO;
import com.clx.performance.enums.OrderGoodsStatusEnum;
import com.clx.performance.mapper.OrderGoodsMapper;
......@@ -324,4 +325,9 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods,
public void batchCancelOrderGoodsWeight(List<OrderGoodsCancelWeightDTO> cancelOrderGoodsList) {
baseMapper.batchCancelOrderGoodsWeight(cancelOrderGoodsList);
}
@Override
public List<OrderExtractWeightDTO> calcOrderGoodsExtractWeightByOrderNoList(List<String> orderNoList) {
return baseMapper.calcOrderGoodsExtractWeightByOrderNoList(orderNoList);
}
}
......@@ -5,6 +5,7 @@ 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 +15,8 @@ public interface OrderService {
Optional<List<String>> getMonthSameLineOrderList(String orderNo);
Optional<Map<String,FeignOrderInfoVO>> queryListOrderByOrderNoList(List<String> orderNoList);
}
......@@ -10,6 +10,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
@Service
@Slf4j
......@@ -31,4 +32,11 @@ public class OrderServiceImpl implements OrderService {
.filter(Result::succeed)
.map(Result::getData);
}
@Override
public Optional<Map<String,FeignOrderInfoVO>> queryListOrderByOrderNoList(List<String> orderNoList) {
return Optional.ofNullable(orderFeign.queryListOrderByOrderNoList(orderNoList))
.filter(Result::succeed)
.map(Result::getData);
}
}
......@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dto.CancelOrderGoodsWeightDTO;
import com.clx.performance.dto.OrderExtractWeightDTO;
import com.clx.performance.dto.OrderGoodsCancelWeightDTO;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.model.OrderGoodsFleetOpenTruck;
......@@ -115,4 +116,8 @@ public interface OrderGoodsMapper extends BaseMapper<OrderGoods> {
@UpdateProvider(type = OrderGoodsSqlProvider.class, method = "batchCancelOrderGoodsWeight")
void batchCancelOrderGoodsWeight(@Param("cancelOrderGoodsList") List<OrderGoodsCancelWeightDTO> cancelOrderGoodsList);
@SelectProvider(type = OrderGoodsSqlProvider.class, method = "calcOrderGoodsExtractWeightByOrderNoList")
List<OrderExtractWeightDTO> calcOrderGoodsExtractWeightByOrderNoList(List<String> orderNoList);
}
......@@ -6,11 +6,13 @@ import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.order.enums.InvoicingCompanyEnum;
import com.clx.order.enums.ResultEnum;
import com.clx.order.enums.UpdateEnum;
import com.clx.order.enums.VehicleUsageEnum;
import com.clx.order.feign.OrderFeign;
import com.clx.order.param.feign.OrderCancelReasonParam;
import com.clx.order.param.feign.RollbackOrderWeightParam;
import com.clx.order.vo.feign.FeignOrderInfoVO;
import com.clx.order.vo.feign.FeignOrderVO;
import com.clx.order.vo.pc.owner.OwnerQuotationDetailVO;
import com.clx.performance.component.GoodsOrderTruckRecordComponent;
......@@ -18,12 +20,14 @@ import com.clx.performance.component.OrderCancelComponent;
import com.clx.performance.component.OrderGoodsStatusLazyComponent;
import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.dao.*;
import com.clx.performance.dto.OrderExtractWeightDTO;
import com.clx.performance.dto.OrderGoodsBindTruckNumDTO;
import com.clx.performance.dto.OrderGoodsCancelDTO;
import com.clx.performance.enums.*;
import com.clx.performance.enums.settle.SettlementWayEnum;
import com.clx.performance.extranal.order.QuotationService;
import com.clx.performance.extranal.user.DriverService;
import com.clx.performance.extranal.user.OrderService;
import com.clx.performance.model.*;
import com.clx.performance.param.app.AppGoodsOrderSearchParam;
import com.clx.performance.param.app.OrderGoodsListPageParam;
......@@ -125,6 +129,9 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
@Autowired
OrderWeightService orderWeightService;
@Autowired
OrderService orderService;
private static Map<Integer, Consumer<OrderGoodsCancelDTO>> orderGoodsCancelMap = new HashMap<>();
......@@ -187,9 +194,15 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
IPage<OrderGoodsVO> page = orderGoodsDao.pageOrderGoodsList(param);
if(CollectionUtils.isNotEmpty(page.getRecords())){
List<String> fleetNoList = page.getRecords().stream()
.filter(item->Objects.equals(item.getPendingOrderWay(),PendingOrderWayStatusEnum.Status.FLEET_DX.getCode()))
.map(OrderGoodsVO :: getOrderGoodsNo).collect(Collectors.toList());
List<String> fleetNoList = new ArrayList<>();
List<String> orderNoList = new ArrayList<>();
for (OrderGoodsVO record : page.getRecords()) {
if(Objects.equals(record.getPendingOrderWay(),PendingOrderWayStatusEnum.Status.FLEET_DX.getCode())){
fleetNoList.add(record.getOrderGoodsNo());
}
orderNoList.add(record.getOrderNo());
}
if(CollectionUtils.isNotEmpty(fleetNoList)){
List<OrderGoodsBindTruckNumDTO> bindTruckNumList = orderGoodsTruckBindDao.queryOrderGoodsTruckNum(fleetNoList);
......@@ -197,6 +210,27 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
Collectors.toMap(OrderGoodsBindTruckNumDTO::getOrderGoodsNo,OrderGoodsBindTruckNumDTO :: getTruckNum));
page.getRecords().forEach(item->item.setDispatchedOrders(map.get(item.getOrderGoodsNo())));
}
Optional<Map<String, FeignOrderInfoVO>> orderListOption = orderService.queryListOrderByOrderNoList(orderNoList);
if(!orderListOption.isPresent()){
log.warn("通过订单号批量查询订单信息失败,失败原因");
throw new ServiceSystemException(ResultEnum.DATA_ERROR,"查询货单对应的订单信息失败");
}
Map<String, FeignOrderInfoVO> orderInfoMap = orderListOption.get();
List<OrderExtractWeightDTO> list = orderGoodsDao.calcOrderGoodsExtractWeightByOrderNoList(orderNoList);
Map<String, BigDecimal> orderExtractWeightMap = list.stream().collect(
Collectors.toMap(OrderExtractWeightDTO::getOrderNo, OrderExtractWeightDTO::getExtractWeight));
page.getRecords().forEach(item->{
FeignOrderInfoVO orderInfo = orderInfoMap.get(item.getOrderNo());
BigDecimal orderExtractWeight = orderExtractWeightMap.get(item.getOrderNo());
if(Objects.nonNull(orderInfo) && Objects.nonNull(orderExtractWeight)){
if(orderExtractWeight.compareTo(orderInfo.getTransportWeight()) > 0 ){
item.setOverOrderWeight(1);
}
}
});
}
return page;
}
......
......@@ -3,6 +3,7 @@ package com.clx.performance.sqlProvider;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dto.CancelOrderGoodsWeightDTO;
import com.clx.performance.dto.OrderExtractWeightDTO;
import com.clx.performance.dto.OrderGoodsCancelWeightDTO;
import com.clx.performance.enums.OrderGoodsStatusEnum;
import com.clx.performance.enums.OrderGoodsStopEnum;
......@@ -407,4 +408,20 @@ public class OrderGoodsSqlProvider {
}
return sj.toString();
}
String calcOrderGoodsExtractWeightByOrderNoList(List<String> orderNoList){
String sql = new SQL() {{
SELECT("order_no,sum(extract_weight)");
FROM("order_goods");
StringJoiner sj = new StringJoiner(",","order_no in (",")");
orderNoList.forEach(item -> sj.add("'"+item+"'"));
WHERE(sj.toString());
GROUP_BY("order_no");
}}.toString();
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论