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