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

Merge remote-tracking branch 'origin/v17.3_youhua_20240615' into test

# Conflicts: # performance-web/src/main/java/com/clx/performance/dao/OrderChildDao.java # performance-web/src/main/java/com/clx/performance/dao/impl/OrderChildDaoImpl.java # performance-web/src/main/java/com/clx/performance/service/OrderGoodsService.java Former-commit-id: 3c34ec92
......@@ -152,6 +152,6 @@ public interface PerformanceFeign {
* @return
*/
@PostMapping(value = {"clx-performance/feign/orderGoods/cancelOrderGoods"})
Result<Object> cancelOrderGoods(@RequestBody @Validated CancelOrderGoodsParam param);
Result<BigDecimal> cancelOrderGoods(@RequestBody @Validated CancelOrderGoodsParam param);
}
......@@ -68,7 +68,7 @@ public class OrderGoodsFeignController {
@ApiOperation(value = "取消货单", notes = "<br>By:李瑞新")
@PostMapping({"/cancelOrderGoods"})
Result<Object> cancelOrderGoods(@RequestBody @Validated CancelOrderGoodsParam param) {
Result<BigDecimal> cancelOrderGoods(@RequestBody @Validated CancelOrderGoodsParam param) {
orderGoodsService.cancelOrderGoods(param);
return Result.ok();
}
......
......@@ -2,6 +2,7 @@ package com.clx.performance.dao;
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.linewarn.LineWarnOrderChildStatisticsDTO;
import com.clx.performance.mapper.OrderChildMapper;
import com.clx.performance.model.OrderChild;
......@@ -196,4 +197,6 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
void updateBatchOwnerCancel(List<String> childNos);
List<CancelOrderGoodsWeightDTO> statisticsCancelOrderGoodsWeight(List<String> childNos);
}
package com.clx.performance.dao;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.dto.CancelOrderGoodsWeightDTO;
import com.clx.performance.model.OrderGoodsFleetOpenTruck;
import com.clx.performance.param.app.AppGoodsOrderSearchParam;
import com.clx.performance.param.pc.OrderGoodsEditParams;
......@@ -103,4 +104,6 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int
List<OrderGoodsFleetOpenTruck> queryProcessFleetOpenTruckList();
void cancelOrderGoods(String orderNo);
void batchCancelOrderGoods(List<CancelOrderGoodsWeightDTO> cancelOrderGoodsWeight);
}
......@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dto.CancelOrderGoodsWeightDTO;
import com.clx.performance.dto.linewarn.LineWarnOrderChildStatisticsDTO;
import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.mapper.OrderChildMapper;
......@@ -26,7 +27,6 @@ import org.springframework.stereotype.Repository;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
......@@ -653,4 +653,9 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
);
}
@Override
public List<CancelOrderGoodsWeightDTO> statisticsCancelOrderGoodsWeight(List<String> childNos) {
return baseMapper.statisticsCancelOrderGoodsWeight(childNos);
}
}
......@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.enums.OrderGoodsStatusEnum;
import com.clx.performance.mapper.OrderGoodsMapper;
import com.clx.performance.model.OrderGoods;
......@@ -292,4 +293,9 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods,
.set(OrderGoods::getOrderGoodsStatus, OrderGoodsStatusEnum.Status.CANCEL.getCode())
);
}
@Override
public void batchCancelOrderGoods(List<CancelOrderGoodsWeightDTO> cancelOrderGoodsWeight) {
baseMapper.batchCancelOrderGoods(cancelOrderGoodsWeight);
}
}
package com.clx.performance.dto;
import lombok.Getter;
import lombok.Setter;
import java.math.BigDecimal;
/**
* @ClassName CancelOrderGoodsWeightDTO
* @Description
* @Author kavin
* @Date 2024/7/2 15:38
* @Version 1.0
*/
@Getter
@Setter
public class CancelOrderGoodsWeightDTO {
private String orderGoodsNo;
private BigDecimal cancelWeight;
}
......@@ -3,6 +3,7 @@ package com.clx.performance.mapper;
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.linewarn.LineWarnOrderChildStatisticsDTO;
import com.clx.performance.model.OrderChild;
import com.clx.performance.param.app.PageOrderChildOfDriverParam;
......@@ -168,4 +169,11 @@ public interface OrderChildMapper extends BaseMapper<OrderChild> {
"</script>")
List<LineWarnOrderChildStatisticsDTO>sumUnloadNumByOrderGoodsNoList(List<String> orderGoodsNoList);
@Select("<script>select order_goods_no orderGoodsNo, sum(weight) cancelWeight from order_child " +
" where child_no " +
" in <foreach collection='list' item='item' open='(' separator=',' close=')'>#{item}</foreach> " +
" group by order_goods_no " +
"</script>")
List<CancelOrderGoodsWeightDTO> statisticsCancelOrderGoodsWeight(@Param("list") List<String> childNos);
}
\ No newline at end of file
......@@ -3,6 +3,7 @@ package com.clx.performance.mapper;
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.model.OrderGoodsFleetOpenTruck;
import com.clx.performance.param.app.AppGoodsOrderSearchParam;
import com.clx.performance.param.pc.OrderGoodsEditParams;
......@@ -100,4 +101,9 @@ public interface OrderGoodsMapper extends BaseMapper<OrderGoods> {
@SelectProvider(type = OrderGoodsSqlProvider.class, method = "queryProcessFleetOpenTruckList")
List<OrderGoodsFleetOpenTruck> queryProcessFleetOpenTruckList();
@UpdateProvider(type = OrderGoodsSqlProvider.class, method = "batchCancelOrderGoods")
void batchCancelOrderGoods(List<CancelOrderGoodsWeightDTO> cancelOrderGoodsWeight);
}
......@@ -106,5 +106,5 @@ public interface OrderGoodsService {
void updateFrightPrice(String orderGoodsNo,BigDecimal pendingOrderFreight);
void cancelOrderGoods(CancelOrderGoodsParam param);
BigDecimal cancelOrderGoods(CancelOrderGoodsParam param);
}
......@@ -21,6 +21,7 @@ import com.clx.performance.constant.RedissonConstants;
import com.clx.performance.dao.*;
import com.clx.performance.dao.breakcontract.BreakContractDriverRecordDao;
import com.clx.performance.dao.settle.SettlementOwnerDetailDao;
import com.clx.performance.dto.CancelOrderGoodsWeightDTO;
import com.clx.performance.dto.OrderChildExpectDTO;
import com.clx.performance.dto.gd.GdRouteDTO;
import com.clx.performance.dto.payment.PaymentDTO;
......@@ -2674,7 +2675,7 @@ public class OrderChildServiceImpl implements OrderChildService {
//未到达货源地之前运单(不包括取消)
List<OrderChild> arriveBeforeOrderChild = orderChildDao.listByOrderNo(param.getOrderNo(),arriveBeforeStatus);
log.info("arriveBeforeOrderChild:{}",arriveBeforeOrderChild);
if(orderedWeight.compareTo(availableWeight) > 0){//已挂吨数大于可拉运吨数 取消未到达货源地的运单
if(orderedWeight.compareTo(availableWeight) > 0){ //已挂吨数大于可拉运吨数 取消未到达货源地的运单
log.info("已挂吨数大于可拉运吨数,取消未到达货源地的运单:{}",orderedWeight.compareTo(availableWeight));
//到达货源地之后运单(不包括取消)
List<OrderChild> arriveAfterOrderChild = orderChildDao.listByOrderNo(param.getOrderNo(),arriveAfterStatus);
......@@ -2682,7 +2683,7 @@ public class OrderChildServiceImpl implements OrderChildService {
BigDecimal arriveAfterWeight = arriveAfterOrderChild.stream().map(OrderChild::getWeight)
.reduce(BigDecimal::add).orElse(BigDecimal.ZERO);//总拉运吨数
log.info("总拉运吨数:{}",arriveAfterWeight);
if(availableWeight.compareTo(arriveAfterWeight) >0){//可拉运吨数大于运单拉运吨数 取消未到达货源地的运单
if(availableWeight.compareTo(arriveAfterWeight) >0){ //可拉运吨数大于运单拉运吨数 取消未到达货源地的运单
log.info("可拉运吨数大于运单拉运吨数,取消未到达货源地的运单:{}",availableWeight.compareTo(arriveAfterWeight));
BigDecimal weight =BigDecimal.ZERO;//运单累加吨数
BigDecimal subtract = availableWeight.subtract(arriveAfterWeight);//可拉运吨数-运单拉运吨数=司机可以接单拉运吨数
......@@ -2705,6 +2706,12 @@ public class OrderChildServiceImpl implements OrderChildService {
//批量取消运单
if(CollectionUtils.isNotEmpty(childNos)){
//按照货单进行取消运单吨数统计
List<CancelOrderGoodsWeightDTO> cancelOrderGoodsWeight = orderChildDao.statisticsCancelOrderGoodsWeight(childNos);
//恢复取消的运单吨数到对应的货单上
if(CollectionUtils.isNotEmpty(cancelOrderGoodsWeight)){
orderGoodsDao.batchCancelOrderGoods(cancelOrderGoodsWeight);
}
orderChildDao.updateBatchOwnerCancel(childNos);
//保存日志
List<OrderChildLog> logs = new ArrayList<>();
......
......@@ -1009,7 +1009,7 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
@Override
@Transactional(rollbackFor = Exception.class)
public void cancelOrderGoods(CancelOrderGoodsParam param) {
public BigDecimal cancelOrderGoods(CancelOrderGoodsParam param) {
log.info("取消货单:{}",param);
//取消货单
......@@ -1020,6 +1020,7 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
log.info("orderGoodsListByOrderNo:{}",orderGoodsListByOrderNo);
List<OrderGoodsLog> orderGoodsLogs = new ArrayList<>();
OrderGoodsLog orderGoodsLog = null;
BigDecimal totalCancelWeight = BigDecimal.ZERO;
for(OrderGoods orderGoods:orderGoodsListByOrderNo){
orderGoodsLog = new OrderGoodsLog();
orderGoodsLog.setOrderGoodsNo(orderGoods.getOrderGoodsNo());
......@@ -1028,9 +1029,11 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
orderGoodsLog.setCreateBy(param.getCreateBy());
orderGoodsLog.setRemark("货主发起减吨请求,当前已挂单量超过总拉运量,自动取消");
orderGoodsLogs.add(orderGoodsLog);
totalCancelWeight.add(Objects.nonNull(orderGoods.getResidueTransportWeight())?
orderGoods.getResidueTransportWeight() : BigDecimal.ZERO);
}
orderGoodsLogService.saveBatchLog(orderGoodsLogs);
return totalCancelWeight;
}
}
......@@ -2,6 +2,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.enums.OrderGoodsStatusEnum;
import com.clx.performance.enums.OrderGoodsStopEnum;
import com.clx.performance.enums.PendingOrderWayStatusEnum;
......@@ -362,4 +363,17 @@ public class OrderGoodsSqlProvider {
return sql;
}
public String batchCancelOrderGoods(List<CancelOrderGoodsWeightDTO> cancelOrderGoodsWeight){
StringJoiner sj = new StringJoiner("; ");
for(CancelOrderGoodsWeightDTO item : cancelOrderGoodsWeight){
sj.add("update order_goods set residue_transport_weight = residue_transport_weight +" + item.getCancelWeight() +
", already_transport_weight = already_transport_weight -" + item.getCancelWeight() +
" where order_goods_no = "+item.getOrderGoodsNo()) ;
}
return sj.toString();
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论