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

Merge remote-tracking branch 'origin/v20.8_add_sub_weight_20240805' into dev

# Conflicts: # performance-web/src/main/java/com/clx/performance/service/impl/PerformanceProgressServiceImpl.java
...@@ -5,10 +5,10 @@ import io.swagger.annotations.ApiModelProperty; ...@@ -5,10 +5,10 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import org.apache.commons.lang3.StringUtils;
import java.math.BigDecimal; import java.math.BigDecimal;
@Getter @Getter
@Setter @Setter
@NoArgsConstructor @NoArgsConstructor
...@@ -29,6 +29,11 @@ public class OrderGoodsAPPVO { ...@@ -29,6 +29,11 @@ public class OrderGoodsAPPVO {
@ApiModelProperty("剩余拉运吨数") @ApiModelProperty("剩余拉运吨数")
private String residueTransportWeight; private String residueTransportWeight;
public String getResidueTransportWeight(){
return new BigDecimal(extractWeight).subtract(StringUtils.isNotBlank(alreadyTransportWeight)
?new BigDecimal(alreadyTransportWeight):BigDecimal.ZERO).toString();
}
@ApiModelProperty("已拉运吨数") @ApiModelProperty("已拉运吨数")
private String alreadyTransportWeight; private String alreadyTransportWeight;
......
...@@ -99,23 +99,6 @@ public class GoodsOrderTruckRecordComponent { ...@@ -99,23 +99,6 @@ public class GoodsOrderTruckRecordComponent {
} }
orderGoodsTruckBindDao.updateOrderGoodsBindStatusExpire(orderGoodsNo, truckNo); orderGoodsTruckBindDao.updateOrderGoodsBindStatusExpire(orderGoodsNo, truckNo);
}
//货单剩余吨数低于35吨时,自动恢复到订单,并释放未接单车辆
public void releaseOrderGoodsDriverAndTruck(String orderGoodsNo) {
List<OrderGoodsTruckBind> truckBindList = orderGoodsTruckBindDao.selectListByOrderGoodsNo(orderGoodsNo);
List<Integer> ids = new ArrayList<>();
for (OrderGoodsTruckBind bind : truckBindList) {
if (Objects.equals(OrderGoodsTruckBindEnum.Status.NORMAL.getCode(),bind.getStatus())) {
ids.add(bind.getId());
this.deleteTruckRecord(orderGoodsNo, bind.getTruckNo());
}
}
//释放车辆bind
if(CollectionUtils.isNotEmpty(ids)){
log.info("定向单进行车辆释放,货单编号:{},释放的绑定车辆的id集合:{}",orderGoodsNo,ids);
orderGoodsTruckBindDao.updateTruckBindExpire(ids);
}
} }
public Set<String> getFleetPublicTruckList(String orderGoodsNo) { public Set<String> getFleetPublicTruckList(String orderGoodsNo) {
......
...@@ -3,11 +3,9 @@ package com.clx.performance.component; ...@@ -3,11 +3,9 @@ package com.clx.performance.component;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.clx.order.enums.OrderEnum; import com.clx.order.enums.OrderEnum;
import com.clx.order.enums.UpdateEnum;
import com.clx.order.enums.VehicleUsageEnum; import com.clx.order.enums.VehicleUsageEnum;
import com.clx.order.feign.OrderFeign; import com.clx.order.feign.OrderFeign;
import com.clx.order.param.feign.RollbackOrderWeightParam; 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.feign.FeignOrderVO;
import com.clx.performance.dao.OrderChildDao; import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.OrderGoodsDao; import com.clx.performance.dao.OrderGoodsDao;
...@@ -25,7 +23,6 @@ import com.clx.performance.service.OrderGoodsTruckBindService; ...@@ -25,7 +23,6 @@ import com.clx.performance.service.OrderGoodsTruckBindService;
import com.clx.performance.service.breakcontract.BreakContractSettlementOwnerService; import com.clx.performance.service.breakcontract.BreakContractSettlementOwnerService;
import com.clx.performance.service.child.OrderChildPostService; import com.clx.performance.service.child.OrderChildPostService;
import com.clx.user.enums.driver.DriverInfoEnum; import com.clx.user.enums.driver.DriverInfoEnum;
import com.msl.common.base.Optional;
import com.msl.common.exception.ServiceSystemException; import com.msl.common.exception.ServiceSystemException;
import com.msl.common.result.Result; import com.msl.common.result.Result;
import com.msl.common.utils.DateUtils; import com.msl.common.utils.DateUtils;
...@@ -161,7 +158,9 @@ public class OrderCancelComponent implements InitializingBean { ...@@ -161,7 +158,9 @@ public class OrderCancelComponent implements InitializingBean {
reduce = reduce.add(orderChild.getWeight()); reduce = reduce.add(orderChild.getWeight());
} }
if (orderGoods.getExtractWeight().compareTo(orderGoods.getResidueTransportWeight().add(reduce)) == 0) { BigDecimal residueTransportWeight = orderGoodsService.calcOrderGoodsResidueWeight
(orderGoods.getExtractWeight(),orderGoods.getAlreadyTransportWeight());
if (orderGoods.getExtractWeight().compareTo(residueTransportWeight.add(reduce)) == 0) {
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode()); update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
} else { } else {
orderStatusCode = OrderEnum.Status.COMPLETED.getCode(); orderStatusCode = OrderEnum.Status.COMPLETED.getCode();
...@@ -191,7 +190,11 @@ public class OrderCancelComponent implements InitializingBean { ...@@ -191,7 +190,11 @@ public class OrderCancelComponent implements InitializingBean {
for (OrderGoods orderGoods : orderGoodsList) { for (OrderGoods orderGoods : orderGoodsList) {
OrderGoods update = new OrderGoods(); OrderGoods update = new OrderGoods();
update.setId(orderGoods.getId()); update.setId(orderGoods.getId());
if (orderGoods.getResidueTransportWeight().compareTo(orderGoods.getExtractWeight()) == 0) {
BigDecimal residueTransportWeight = orderGoodsService.calcOrderGoodsResidueWeight
(orderGoods.getExtractWeight(),orderGoods.getAlreadyTransportWeight());
if (residueTransportWeight.compareTo(orderGoods.getExtractWeight()) == 0) {
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode()); update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
} else { } else {
orderStatusCode = OrderEnum.Status.COMPLETED.getCode(); orderStatusCode = OrderEnum.Status.COMPLETED.getCode();
...@@ -279,83 +282,6 @@ public class OrderCancelComponent implements InitializingBean { ...@@ -279,83 +282,6 @@ public class OrderCancelComponent implements InitializingBean {
} }
} }
/**
* @Author kavin
* @Description 货单低于35吨自动归还吨数到订单/货单吨数不够扣减,从订单上借吨数
* @Param [orderGoods, weight,updateType(1: 增加 2:减少)]
* @return
**/
public void backFillOrderWeight(OrderGoods orderGoods, BigDecimal weight, Integer updateType) {
Integer truckDemand = orderGoods.getTruckDemand();
java.util.Optional<UpdateEnum> byCode1 = UpdateEnum.getByCode(updateType);
String updateTypeMsg = byCode1.isPresent()?byCode1.get().getMsg():"未知调整类型";
java.util.Optional<TruckDemandEnum.TruckType> byCode = TruckDemandEnum.TruckType.getByCode(truckDemand);
String truckDemandValue = byCode.isPresent()?byCode.get().getMsg():"未知用车需求";
log.info("订单号:{},货单号:{},用车需求:{},进行订单剩余吨数{} ,调整吨数:{}",
orderGoods.getOrderNo(),orderGoods.getOrderGoodsNo(),truckDemandValue,updateTypeMsg,weight);
String orderNo = orderGoods.getOrderNo();
Optional<FeignOrderInfoVO> optional = orderService.getOrderInfo(orderNo);
if(!optional.isPresent()){
log.warn("通过订单号未查询到对应的订单信息,订单号:{}",orderNo);
throw new ServiceSystemException(PerformanceResultEnum.DATA_NOT_FIND);
}
FeignOrderInfoVO orderInfo = optional.get();
boolean isSub = Objects.equals(UpdateEnum.SUB.getCode(), updateType);
RollbackOrderWeightParam rollbackOrderWeightParam = new RollbackOrderWeightParam();
rollbackOrderWeightParam.setOrderNo(orderGoods.getOrderNo());
rollbackOrderWeightParam.setResidueWeight(weight);
rollbackOrderWeightParam.setUpdateType(updateType);
//归还吨数
if (!truckDemand.equals(TruckDemandEnum.TruckType.PLATFORM_ANY_CAR.getCode())) {
if (truckDemand.equals(TruckDemandEnum.TruckType.PLATFORM_CAR.getCode())) {
if(isSub && weight.compareTo(orderInfo.getResidueWeight()) > 0 ){
log.warn("货单用车需求: {},订单号:{},货单号:{},平台剩余吨数:{},需要扣减吨数:{},不足扣减",
truckDemandValue,orderNo,orderGoods.getOrderGoodsNo(),orderInfo.getPlatformResidueCarryWeight()
,weight);
throw new ServiceSystemException(PerformanceResultEnum.ORDER_WEIGHT_LACK);
}
} else if (truckDemand.equals(TruckDemandEnum.TruckType.OWNER_CAR.getCode())) {
if(isSub && weight.compareTo(orderInfo.getResidueWeight()) > 0 ){
log.warn("货单用车需求: {},订单号:{},货单号:{},自有剩余吨数:{},需要扣减吨数:{},不足扣减",
truckDemandValue,orderNo,orderGoods.getOrderGoodsNo(),orderInfo.getOwnResidueCarryWeight()
,weight);
throw new ServiceSystemException(PerformanceResultEnum.ORDER_WEIGHT_LACK);
}
}
rollbackOrderWeightParam.setOwnResidueCarryWeight(BigDecimal.ZERO);
rollbackOrderWeightParam.setPlatformResidueCarryWeight(BigDecimal.ZERO);
} else {
if (Objects.equals(orderGoods.getVehicleUsage(),VehicleUsageEnum.Status.OWN.getCode())) {
if(isSub && weight.compareTo(orderInfo.getOwnResidueCarryWeight()) > 0 ){
log.warn("货单用车需求: {},订单号:{},货单号:{},自有剩余吨数:{},需要扣减吨数:{},不足扣减",
TruckDemandEnum.TruckType.PLATFORM_ANY_CAR.getMsg(),orderNo,orderGoods.getOrderGoodsNo(),
orderInfo.getOwnResidueCarryWeight(),weight);
throw new ServiceSystemException(PerformanceResultEnum.ORDER_WEIGHT_LACK);
}
rollbackOrderWeightParam.setPlatformResidueCarryWeight(BigDecimal.ZERO);
rollbackOrderWeightParam.setOwnResidueCarryWeight(weight);
} else {
if(isSub && weight.compareTo(orderInfo.getPlatformResidueCarryWeight()) > 0 ){
log.warn("货单用车需求: {},订单号:{},货单号:{},平台剩余吨数:{},需要扣减吨数:{},不足扣减",
truckDemandValue,orderNo,orderGoods.getOrderGoodsNo(),
orderInfo.getPlatformResidueCarryWeight(),weight);
throw new ServiceSystemException(PerformanceResultEnum.ORDER_WEIGHT_LACK);
}
rollbackOrderWeightParam.setPlatformResidueCarryWeight(weight);
rollbackOrderWeightParam.setOwnResidueCarryWeight(BigDecimal.ZERO);
}
}
Result<Object> result = orderFeign.rollbackOrderWeight(rollbackOrderWeightParam);
if (!result.succeed()) {
log.warn("订单号:{} 的订单做吨数调整,对应货单号:{} 调整失败,调整吨数:{},调整类型:{}",
orderNo,orderGoods.getOrderGoodsNo(),weight,updateTypeMsg);
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "远程调用更新订单余量失败");
}
}
/** /**
* 客服取消归还吨数 * 客服取消归还吨数
* *
...@@ -400,7 +326,6 @@ public class OrderCancelComponent implements InitializingBean { ...@@ -400,7 +326,6 @@ public class OrderCancelComponent implements InitializingBean {
} }
ArrayList<OrderGoods> list = new ArrayList<>(); ArrayList<OrderGoods> list = new ArrayList<>();
list.add(orderGoods); list.add(orderGoods);
orderGoodsService.batchUpdateResidueWeight(list);
} else { } else {
//返回到货单 //返回到货单
orderGoodsDao.updateOrderGoodsSetResidueWeightAndAlreadyWeight(weight, weight, orderGoods.getId()); orderGoodsDao.updateOrderGoodsSetResidueWeightAndAlreadyWeight(weight, weight, orderGoods.getId());
......
...@@ -14,6 +14,7 @@ import com.clx.performance.extranal.user.DriverService; ...@@ -14,6 +14,7 @@ import com.clx.performance.extranal.user.DriverService;
import com.clx.performance.model.OrderChild; import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderGoods; import com.clx.performance.model.OrderGoods;
import com.clx.performance.service.OrderChildLogService; import com.clx.performance.service.OrderChildLogService;
import com.clx.performance.service.OrderGoodsService;
import com.clx.performance.service.breakcontract.BreakContractDriverRecordService; import com.clx.performance.service.breakcontract.BreakContractDriverRecordService;
import com.clx.performance.service.child.OrderChildPostService; import com.clx.performance.service.child.OrderChildPostService;
import com.clx.user.enums.driver.DriverInfoEnum; import com.clx.user.enums.driver.DriverInfoEnum;
...@@ -63,6 +64,8 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean { ...@@ -63,6 +64,8 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean {
private final OrderChildPostService orderChildPostService; private final OrderChildPostService orderChildPostService;
private final OrderGoodsService orderGoodsService;
//根据货单最晚接单时间处理 //根据货单最晚接单时间处理
public void expireProduceByLastOrderTime(LocalDateTime localDateTime, String orderGoodsNo) { public void expireProduceByLastOrderTime(LocalDateTime localDateTime, String orderGoodsNo) {
...@@ -120,8 +123,10 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean { ...@@ -120,8 +123,10 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean {
continue; continue;
} }
OrderGoods orderGoods = optional.get(); OrderGoods orderGoods = optional.get();
BigDecimal residueTransportWeight = orderGoodsService.calcOrderGoodsResidueWeight
(orderGoods.getExtractWeight(),orderGoods.getAlreadyTransportWeight());
if (orderGoods.getResidueTransportWeight().compareTo(BigDecimal.ZERO) == 0) { if (residueTransportWeight.compareTo(BigDecimal.ZERO) == 0) {
List<OrderChild> orderChildren = orderChildDao.selectInTransitOrderChildByOrderGoodsNo(orderGoodsNo); List<OrderChild> orderChildren = orderChildDao.selectInTransitOrderChildByOrderGoodsNo(orderGoodsNo);
if (CollectionUtil.isNotEmpty(orderChildren)) { if (CollectionUtil.isNotEmpty(orderChildren)) {
//更新货单已完结 //更新货单已完结
......
package com.clx.performance.constant;
import java.math.BigDecimal;
/**
* @ClassName BusinessConstants
* @Description
* @Author kavin
* @Date 2024/7/22 15:26
* @Version 1.0
*/
public class BusinessConstants {
//承运订单需要减去的吨数
public static final BigDecimal ORDER_SUB_WEIGHT = new BigDecimal("35");
}
...@@ -41,7 +41,7 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int ...@@ -41,7 +41,7 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int
void updateOrderGoodsReduceWeightAndStatus(Integer id, BigDecimal orderChildWeight, Integer orderGoodsStatus); void updateOrderGoodsReduceWeightAndStatus(Integer id, BigDecimal orderChildWeight, Integer orderGoodsStatus);
void updateOrderGoodsWeightResidueAndAlreadyAndStatus(Integer id, BigDecimal alreadyTransportWeight,BigDecimal residueTransportWeight,Integer orderGoodsStatus); void updateOrderGoodsWeightAlreadyAndStatus(Integer id, BigDecimal residueWeight,Integer orderGoodsStatus);
IPage<OrderGoodsAPPVO> openOrderPageGoodsList(OrderGoodsListPageParam orderGoodsListPageParam,List<String> orderGoodsNoList); IPage<OrderGoodsAPPVO> openOrderPageGoodsList(OrderGoodsListPageParam orderGoodsListPageParam,List<String> orderGoodsNoList);
...@@ -72,7 +72,7 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int ...@@ -72,7 +72,7 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int
Integer updateOrderGoodsSetResidueWeightAndAlreadyWeight(BigDecimal residueWeight, BigDecimal alreadyWeight, Integer id); Integer updateOrderGoodsSetResidueWeightAndAlreadyWeight(BigDecimal residueWeight, BigDecimal alreadyWeight, Integer id);
Integer updateOrderGoodsSetResidueWeightAndAlreadyWeightAndStatus(BigDecimal residueWeight, BigDecimal alreadyWeight, Integer status, Integer id); Integer updateOrderGoodsSetAlreadyWeightAndStatus( BigDecimal alreadyWeight, Integer status, Integer id);
OrderGoodsVO findOrderGoodsById(Integer id); OrderGoodsVO findOrderGoodsById(Integer id);
...@@ -83,7 +83,6 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int ...@@ -83,7 +83,6 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int
boolean batchUpdateOrderGoodsStatus(Integer status, List<Integer> ids); boolean batchUpdateOrderGoodsStatus(Integer status, List<Integer> ids);
boolean batchUpdateOrderGoodsWeight(BigDecimal residueWeight, List<Integer> ids);
void updateSendSystemAddress(Integer ownerAddressId, Integer systemAddressId); void updateSendSystemAddress(Integer ownerAddressId, Integer systemAddressId);
...@@ -99,7 +98,6 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int ...@@ -99,7 +98,6 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int
IPage<OrderGoodsAPPVO> indexOrderGoodsListSearch(AppGoodsOrderSearchParam param); IPage<OrderGoodsAPPVO> indexOrderGoodsListSearch(AppGoodsOrderSearchParam param);
void batchUpdateResidueWeight(List<Integer> list, BigDecimal residueWeight);
List<OrderGoodsFleetOpenTruck> queryProcessFleetOpenTruckList(); List<OrderGoodsFleetOpenTruck> queryProcessFleetOpenTruckList();
......
...@@ -78,8 +78,8 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods, ...@@ -78,8 +78,8 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods,
} }
@Override @Override
public void updateOrderGoodsWeightResidueAndAlreadyAndStatus(Integer id, BigDecimal alreadyTransportWeight,BigDecimal residueTransportWeight,Integer orderGoodsStatus) { public void updateOrderGoodsWeightAlreadyAndStatus(Integer id, BigDecimal residueWeight,Integer orderGoodsStatus) {
baseMapper.updateOrderGoodsWeightResidueAndAlreadyAndStatus(id, alreadyTransportWeight, residueTransportWeight, orderGoodsStatus); baseMapper.updateOrderGoodsWeightAlreadyAndStatus(id, residueWeight, orderGoodsStatus);
} }
@Override @Override
...@@ -187,8 +187,8 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods, ...@@ -187,8 +187,8 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods,
} }
@Override @Override
public Integer updateOrderGoodsSetResidueWeightAndAlreadyWeightAndStatus(BigDecimal residueWeight, BigDecimal alreadyWeight, Integer status, Integer id) { public Integer updateOrderGoodsSetAlreadyWeightAndStatus(BigDecimal alreadyWeight, Integer status, Integer id) {
return baseMapper.updateOrderGoodsSetResidueWeightAndAlreadyWeightAndStatus(residueWeight,alreadyWeight,status,id); return baseMapper.updateOrderGoodsSetAlreadyWeightAndStatus(alreadyWeight,status,id);
} }
@Override @Override
...@@ -213,13 +213,6 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods, ...@@ -213,13 +213,6 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods,
; ;
} }
@Override
public boolean batchUpdateOrderGoodsWeight(BigDecimal residueWeight, List<Integer> ids) {
return update(lUdWrapper().in(OrderGoods :: getId,ids)
.set(OrderGoods::getResidueTransportWeight, residueWeight)
);
}
@Override @Override
public List<OrderGoods> getOrderGoodsListByOrderNoAndStatus(String orderNo) { public List<OrderGoods> getOrderGoodsListByOrderNoAndStatus(String orderNo) {
return baseMapper.selectList(lQrWrapper().eq(OrderGoods::getOrderNo, orderNo) return baseMapper.selectList(lQrWrapper().eq(OrderGoods::getOrderNo, orderNo)
...@@ -269,14 +262,6 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods, ...@@ -269,14 +262,6 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods,
return baseMapper.indexOrderGoodsListSearch(page,param); return baseMapper.indexOrderGoodsListSearch(page,param);
} }
@Override
public void batchUpdateResidueWeight(List<Integer> list, BigDecimal residueWeight) {
update(lUdWrapper()
.in(OrderGoods::getId, list)
.set(OrderGoods::getResidueTransportWeight, residueWeight)
);
}
@Override @Override
public List<OrderGoodsFleetOpenTruck> queryProcessFleetOpenTruckList() { public List<OrderGoodsFleetOpenTruck> queryProcessFleetOpenTruckList() {
return baseMapper.queryProcessFleetOpenTruckList(); return baseMapper.queryProcessFleetOpenTruckList();
......
package com.clx.performance.listener; package com.clx.performance.listener;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.clx.order.enums.UpdateEnum;
import com.clx.order.enums.VehicleUsageEnum;
import com.clx.performance.common.MqWrapper; import com.clx.performance.common.MqWrapper;
import com.clx.performance.component.GoodsOrderTruckRecordComponent; import com.clx.performance.component.GoodsOrderTruckRecordComponent;
import com.clx.performance.component.OrderCancelComponent; import com.clx.performance.component.OrderCancelComponent;
...@@ -10,8 +8,6 @@ import com.clx.performance.constant.RabbitKeyConstants; ...@@ -10,8 +8,6 @@ import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.dao.OrderGoodsDao; import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.dto.dts.DataTransportDTO; import com.clx.performance.dto.dts.DataTransportDTO;
import com.clx.performance.enums.DtsOperationTypeEnum; import com.clx.performance.enums.DtsOperationTypeEnum;
import com.clx.performance.enums.OrderGoodsLogsEnum;
import com.clx.performance.enums.OrderGoodsPendingOrderWayStatusEnum;
import com.clx.performance.enums.OrderGoodsStatusEnum; import com.clx.performance.enums.OrderGoodsStatusEnum;
import com.clx.performance.model.OrderGoods; import com.clx.performance.model.OrderGoods;
import com.clx.performance.model.OrderGoodsAdjustmentPrice; import com.clx.performance.model.OrderGoodsAdjustmentPrice;
...@@ -57,7 +53,6 @@ public class OrderGoodsDtsListener { ...@@ -57,7 +53,6 @@ public class OrderGoodsDtsListener {
sendSaveOrderGoodsAdjustmentPriceMessage(before,after,DtsOperationTypeEnum.INSERT.getCode()); sendSaveOrderGoodsAdjustmentPriceMessage(before,after,DtsOperationTypeEnum.INSERT.getCode());
}else if(Objects.equals(DtsOperationTypeEnum.UPDATE.getCode(),dataTransportDTO.getOperationType().getCode())){ }else if(Objects.equals(DtsOperationTypeEnum.UPDATE.getCode(),dataTransportDTO.getOperationType().getCode())){
log.info("修改:{}",JSON.toJSONString(after)); log.info("修改:{}",JSON.toJSONString(after));
//backFillOrderWeight(after);
syncPerformanceProgress(before,after,DtsOperationTypeEnum.UPDATE.getCode()); syncPerformanceProgress(before,after,DtsOperationTypeEnum.UPDATE.getCode());
sendSaveOrderGoodsAdjustmentPriceMessage(before,after,DtsOperationTypeEnum.UPDATE.getCode()); sendSaveOrderGoodsAdjustmentPriceMessage(before,after,DtsOperationTypeEnum.UPDATE.getCode());
}else if(Objects.equals(DtsOperationTypeEnum.DELETE.getCode(),dataTransportDTO.getOperationType().getCode())){ }else if(Objects.equals(DtsOperationTypeEnum.DELETE.getCode(),dataTransportDTO.getOperationType().getCode())){
...@@ -69,31 +64,6 @@ public class OrderGoodsDtsListener { ...@@ -69,31 +64,6 @@ public class OrderGoodsDtsListener {
} }
} }
//货单剩余吨数不足35吨,自动恢复吨数到订单上
public void backFillOrderWeight(OrderGoods after){
//剩余吨数小于35吨并且大于0,自动归还订单上
if(new BigDecimal("35").compareTo(after.getResidueTransportWeight()) > 0 &&
after.getResidueTransportWeight().compareTo(BigDecimal.ZERO) > 0){
log.info("开始自动恢复吨数到订单,订单号:{},货单号:{},货单剩余吨数:{}",
after.getOrderNo(),after.getOrderGoodsNo(),after.getResidueTransportWeight());
orderCancelComponent.backFillOrderWeight(after,after.getResidueTransportWeight(), UpdateEnum.ADD.getCode());
OrderGoods orderGoods = new OrderGoods();
orderGoods.setId(after.getId());
orderGoods.setResidueTransportWeight(BigDecimal.ZERO);
orderGoodsDao.updateEntityByKey(orderGoods);
orderGoodsLogService.saveLog(after.getOrderGoodsNo(), 0L, "系统", OrderGoodsLogsEnum.Type.SYSTEM_RELEASE.getName(),
String.format("系统自动释放:%s吨", after.getResidueTransportWeight()));
//释放定向单(非自由车辆)对应的定向车辆
if( ( Objects.equals(after.getPendingOrderWay(), OrderGoodsPendingOrderWayStatusEnum.Status.EXCLUSIVE.getCode())
|| Objects.equals(after.getPendingOrderWay(), OrderGoodsPendingOrderWayStatusEnum.Status.FLEET_EXCLUSIVE.getCode()) )
&& !Objects.equals(after.getVehicleUsage(), VehicleUsageEnum.Status.OWN.getCode())){
goodsOrderTruckRecordComponent.releaseOrderGoodsDriverAndTruck(after.getOrderGoodsNo());
}
log.info("结束自动恢复吨数到订单,订单号:{},货单号:{},货单剩余吨数:{}",
after.getOrderNo(),after.getOrderGoodsNo(),after.getResidueTransportWeight());
}
}
public void syncPerformanceProgress(OrderGoods before,OrderGoods after, Integer updateType) { public void syncPerformanceProgress(OrderGoods before,OrderGoods after, Integer updateType) {
boolean isSend = false; boolean isSend = false;
......
...@@ -39,10 +39,10 @@ public interface OrderGoodsMapper extends BaseMapper<OrderGoods> { ...@@ -39,10 +39,10 @@ public interface OrderGoodsMapper extends BaseMapper<OrderGoods> {
void updateOrderGoodsWeightAndStatus(@Param("id") Integer id, @Param("weight") BigDecimal orderChildWeight, @Param("orderGoodsStatus") Integer orderGoodsStatus); void updateOrderGoodsWeightAndStatus(@Param("id") Integer id, @Param("weight") BigDecimal orderChildWeight, @Param("orderGoodsStatus") Integer orderGoodsStatus);
@Update(" update order_goods set " + @Update(" update order_goods set " +
" already_transport_weight = already_transport_weight+#{alreadyTransportWeight}," + " already_transport_weight = already_transport_weight - #{residueWeight}," +
"order_goods_status = #{orderGoodsStatus} " + "order_goods_status = #{orderGoodsStatus} " +
" where id = #{id}") " where id = #{id}")
void updateOrderGoodsWeightResidueAndAlreadyAndStatus(@Param("id") Integer id, @Param("alreadyTransportWeight") BigDecimal alreadyTransportWeight, @Param("residueTransportWeight") BigDecimal residueTransportWeight,@Param("orderGoodsStatus") Integer orderGoodsStatus); void updateOrderGoodsWeightAlreadyAndStatus(@Param("id") Integer id, @Param("residueWeight") BigDecimal residueWeight, @Param("orderGoodsStatus") Integer orderGoodsStatus);
@SelectProvider(type = OrderGoodsSqlProvider.class, method = "openOrderPageGoodsList") @SelectProvider(type = OrderGoodsSqlProvider.class, method = "openOrderPageGoodsList")
...@@ -71,8 +71,8 @@ public interface OrderGoodsMapper extends BaseMapper<OrderGoods> { ...@@ -71,8 +71,8 @@ public interface OrderGoodsMapper extends BaseMapper<OrderGoods> {
@UpdateProvider(type = OrderGoodsSqlProvider.class, method = "updateOrderGoods") @UpdateProvider(type = OrderGoodsSqlProvider.class, method = "updateOrderGoods")
Integer updateOrderGoods(@Param(value = "params") OrderGoodsEditParams orderGoodsEditParams); Integer updateOrderGoods(@Param(value = "params") OrderGoodsEditParams orderGoodsEditParams);
@UpdateProvider(type = OrderGoodsSqlProvider.class, method = "updateOrderGoodsSetResidueWeightAndAlreadyWeightAndStatus") @UpdateProvider(type = OrderGoodsSqlProvider.class, method = "updateOrderGoodsSetAlreadyWeightAndStatus")
Integer updateOrderGoodsSetResidueWeightAndAlreadyWeightAndStatus(@Param(value = "residueWeight") BigDecimal residueWeight,@Param(value = "alreadyWeight") BigDecimal alreadyWeight,@Param(value = "status") Integer status,@Param(value = "id") Integer id); Integer updateOrderGoodsSetAlreadyWeightAndStatus(@Param(value = "alreadyWeight") BigDecimal alreadyWeight,@Param(value = "status") Integer status,@Param(value = "id") Integer id);
@SelectProvider(type = OrderGoodsSqlProvider.class, method = "getAlreadyTransportWeight") @SelectProvider(type = OrderGoodsSqlProvider.class, method = "getAlreadyTransportWeight")
BigDecimal getAlreadyTransportWeight(@Param("orderNo") String orderNo); BigDecimal getAlreadyTransportWeight(@Param("orderNo") String orderNo);
......
...@@ -5,7 +5,6 @@ import com.msl.common.result.Result; ...@@ -5,7 +5,6 @@ import com.msl.common.result.Result;
public interface LastTruckService { public interface LastTruckService {
OrderChild getLastTruckChild(String orderNo);
Result<?> syncLastTruckChild(OrderChild child); Result<?> syncLastTruckChild(OrderChild child);
......
...@@ -38,9 +38,6 @@ public interface OrderGoodsService { ...@@ -38,9 +38,6 @@ public interface OrderGoodsService {
void updateOrderGoodsReduceWeightAndStatusAmountLoad(OrderGoods orderGoods, BigDecimal orderChildWeight, Integer orderGoodsStatus); void updateOrderGoodsReduceWeightAndStatusAmountLoad(OrderGoods orderGoods, BigDecimal orderChildWeight, Integer orderGoodsStatus);
void borrowWeight(OrderGoods orderGoods,String orderChildNo,BigDecimal subOrderGoodsResidue, BigDecimal addAlready,BigDecimal borrowOrderWeight,
Integer orderGoodsStatus);
void updateOrderGoodsReduceWeightAndStatus(OrderGoods orderGoods, OrderChild orderChild, Integer orderGoodsStatus); void updateOrderGoodsReduceWeightAndStatus(OrderGoods orderGoods, OrderChild orderChild, Integer orderGoodsStatus);
...@@ -106,8 +103,6 @@ public interface OrderGoodsService { ...@@ -106,8 +103,6 @@ public interface OrderGoodsService {
IPage<OrderGoodsAPPVO> indexOrderGoodsListSearch(AppGoodsOrderSearchParam param); IPage<OrderGoodsAPPVO> indexOrderGoodsListSearch(AppGoodsOrderSearchParam param);
void batchUpdateResidueWeight(List<OrderGoods> list);
void saveBindTruck(DistributionTruckParam param); void saveBindTruck(DistributionTruckParam param);
...@@ -118,4 +113,7 @@ public interface OrderGoodsService { ...@@ -118,4 +113,7 @@ public interface OrderGoodsService {
List<DriverFreightPriceVO> getDriverFreightPriceList(String orderNo); List<DriverFreightPriceVO> getDriverFreightPriceList(String orderNo);
List<OrderGoodsPendingVO> getOrderGoodsPendingList(String orderNo); List<OrderGoodsPendingVO> getOrderGoodsPendingList(String orderNo);
BigDecimal calcOrderGoodsResidueWeight(BigDecimal extractWeight,BigDecimal alreadyWeight);
} }
...@@ -46,31 +46,7 @@ public class LastTruckServiceImpl implements LastTruckService { ...@@ -46,31 +46,7 @@ public class LastTruckServiceImpl implements LastTruckService {
private final ThirdAppConfig thirdAppConfig; private final ThirdAppConfig thirdAppConfig;
private final RedissonClient redissonClient; private final RedissonClient redissonClient;
private final RedisTemplate<String, String> redisTemplate; private final RedisTemplate<String, String> redisTemplate;
/**
* @Author kavin
* @Description 判断最后一车的逻辑
* @Param [orderNo]
* @return
**/
@Override
public OrderChild getLastTruckChild(String orderNo) {
FeignOrderVO orderInfo = orderFeign.getOrderInfoFeign(orderNo);
if(Objects.isNull(orderInfo)){
log.error("计算最后一车,通过订单号:{},未查询到对应的订单",orderNo);
return null;
}
BigDecimal weight = orderChildDao.listAfterArrayReceiveChild(orderNo);
//判断当前订单下所有到达目的地之后的运单的装车吨数 >= (订单拉运吨数 -35吨)
log.info("订单号:{} ,计算是否到达可计算最后一车标准,运单累计拉运吨数:{}, 订单拉运吨数:{}",
orderNo,weight,orderInfo.getTransportWeight());
if(Objects.nonNull(weight) && weight.compareTo(orderInfo.getTransportWeight().subtract(new BigDecimal("35"))) >= 0){
//查询最后一车的运单
OrderChild child = orderChildDao.getLastTruckChild(orderNo);
log.info("当前订单计算出最后一车,运单编号:{} ", child.getChildNo());
return child;
}
return null;
}
/** /**
* @Author kavin * @Author kavin
* @Description 同步最后一车 * @Description 同步最后一车
......
...@@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.order.enums.OrderEnum; import com.clx.order.enums.OrderEnum;
import com.clx.order.feign.OrderFeign; import com.clx.order.feign.OrderFeign;
import com.clx.order.param.feign.OrderCancelReasonParam; import com.clx.order.param.feign.OrderCancelReasonParam;
import com.clx.order.param.feign.RollbackOrderWeightParam;
import com.clx.order.param.mq.FreezeTriggerMqParam; import com.clx.order.param.mq.FreezeTriggerMqParam;
import com.clx.order.vo.feign.FeignOrderVO; import com.clx.order.vo.feign.FeignOrderVO;
import com.clx.performance.common.MqWrapper; import com.clx.performance.common.MqWrapper;
...@@ -161,7 +160,10 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -161,7 +160,10 @@ public class OrderCancelServiceImpl implements OrderCancelService {
//没有运单,直接是取消 //没有运单,直接是取消
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode()); update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CANCEL.getCode());
} else { } else {
if (orderGoods.getResidueTransportWeight().compareTo(BigDecimal.ZERO) != 0) { BigDecimal residueTransportWeight = orderGoodsService.calcOrderGoodsResidueWeight
(orderGoods.getExtractWeight(),orderGoods.getAlreadyTransportWeight());
if (residueTransportWeight.compareTo(BigDecimal.ZERO) != 0) {
//货单还有余量,是已完结 //货单还有余量,是已完结
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode()); update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
} else { } else {
...@@ -215,128 +217,35 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -215,128 +217,35 @@ public class OrderCancelServiceImpl implements OrderCancelService {
@Override @Override
public void ownerConfirmCancelProcess(String orderNo) { public void ownerConfirmCancelProcess(String orderNo) {
log.info("开始执行订单取消吨数回填"); log.info("开始执行订单取消操作");
FeignOrderVO orderInfoFeignVO = orderFeign.getOrderInfoFeign(orderNo); FeignOrderVO orderInfoFeignVO = orderFeign.getOrderInfoFeign(orderNo);
List<OrderGoods> orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
Map<Integer, BigDecimal> truckDemandMap = new HashMap<>();
truckDemandMap.put(TruckDemandEnum.TruckType.PLATFORM_CAR.getCode(), BigDecimal.ZERO);
truckDemandMap.put(TruckDemandEnum.TruckType.OWNER_CAR.getCode(), BigDecimal.ZERO);
if (!TruckDemandEnum.TruckType.PLATFORM_ANY_CAR.getCode().equals(orderInfoFeignVO.getTruckDemand())) {
if (OrderEnum.Status.COMPLETED.getCode().equals(orderInfoFeignVO.getOrderStatus())) {
//已完结
List<OrderChild> orderChildrenList = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.ARRIVE_SEND.getCode());
Map<String, List<OrderGoods>> orderGoodsMap = orderGoodsList.stream()
.collect(Collectors.groupingBy(OrderGoods::getOrderGoodsNo));
Map<String, List<OrderChild>> orderChildMap = orderChildrenList.stream() if (OrderEnum.Status.COMPLETED.getCode().equals(orderInfoFeignVO.getOrderStatus())) {
.collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo));
for (Map.Entry<String, List<OrderGoods>> entry : orderGoodsMap.entrySet()) { List<OrderGoods> orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
String orderGoodsNo = entry.getKey();
OrderGoods orderGoods = entry.getValue().get(0);
List<OrderChild> orderChildren = orderChildMap.get(orderGoodsNo);
BigDecimal sum = BigDecimal.ZERO;
if (CollectionUtil.isNotEmpty(orderChildren)) {
sum = orderChildren.stream()
.map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
}
truckDemandMap.put(orderGoods.getTruckDemand(),
truckDemandMap.get(orderGoods.getTruckDemand())
.add(orderGoods.getResidueTransportWeight().add(sum)));
orderGoodsDao.updateOrderGoodsSetResidueWeightAndAlreadyWeight(sum, sum, orderGoods.getId()); //已完结
} List<OrderChild> orderChildrenList = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.ARRIVE_SEND.getCode());
Map<String, List<OrderGoods>> orderGoodsMap = orderGoodsList.stream()
.collect(Collectors.groupingBy(OrderGoods::getOrderGoodsNo));
} else if (OrderEnum.Status.CANCELED.getCode().equals(orderInfoFeignVO.getOrderStatus())) { Map<String, List<OrderChild>> orderChildMap = orderChildrenList.stream()
//已取消 .collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo));
for (OrderGoods orderGoods : orderGoodsList) {
truckDemandMap.put(orderGoods.getTruckDemand(),
truckDemandMap.get(orderGoods.getTruckDemand())
.add(orderGoods.getResidueTransportWeight()));
}
}
Integer truckDemand = orderInfoFeignVO.getTruckDemand();
BigDecimal residueWeight = truckDemandMap.get(truckDemand);
if (residueWeight.compareTo(BigDecimal.ZERO) == 0) {
log.info("当前订单对应的货单无需吨数回填,订单编号{}", orderNo);
return;
}
//归还吨数
RollbackOrderWeightParam param = new RollbackOrderWeightParam();
param.setOrderNo(orderInfoFeignVO.getOrderNo());
if (truckDemand.equals(TruckDemandEnum.TruckType.PLATFORM_CAR.getCode())) {
param.setResidueWeight(residueWeight);
param.setOwnResidueCarryWeight(BigDecimal.ZERO);
param.setPlatformResidueCarryWeight(residueWeight);
} else if (truckDemand.equals(TruckDemandEnum.TruckType.OWNER_CAR.getCode())) {
param.setResidueWeight(residueWeight);
param.setOwnResidueCarryWeight(residueWeight);
param.setPlatformResidueCarryWeight(BigDecimal.ZERO);
}
orderFeign.rollbackOrderWeight(param);
} else { for (Map.Entry<String, List<OrderGoods>> entry : orderGoodsMap.entrySet()) {
Map<Integer, BigDecimal> vehicleUsageMap = new HashMap<>(); String orderGoodsNo = entry.getKey();
vehicleUsageMap.put(1, BigDecimal.ZERO); OrderGoods orderGoods = entry.getValue().get(0);
vehicleUsageMap.put(2, BigDecimal.ZERO); List<OrderChild> orderChildren = orderChildMap.get(orderGoodsNo);
if (OrderEnum.Status.COMPLETED.getCode().equals(orderInfoFeignVO.getOrderStatus())) { BigDecimal sum = BigDecimal.ZERO;
//已完结 if (CollectionUtil.isNotEmpty(orderChildren)) {
List<OrderChild> orderChildrenList = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.ARRIVE_SEND.getCode()); sum = orderChildren.stream()
//货单 .map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
Map<String, List<OrderGoods>> orderGoodsMap = orderGoodsList.stream()
.collect(Collectors.groupingBy(OrderGoods::getOrderGoodsNo));
//运单
Map<String, List<OrderChild>> orderChildMap = orderChildrenList.stream()
.collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo));
for (Map.Entry<String, List<OrderGoods>> entry : orderGoodsMap.entrySet()) {
String orderGoodsNo = entry.getKey();
OrderGoods orderGoods = entry.getValue().get(0);
BigDecimal sum = BigDecimal.ZERO;
if (CollectionUtil.isNotEmpty(orderChildMap.get(orderGoodsNo))) {
sum = orderChildMap.get(orderGoodsNo).stream()
.map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
}
vehicleUsageMap.put(orderGoods.getVehicleUsage(),
vehicleUsageMap.get(orderGoods.getVehicleUsage())
.add(orderGoods.getResidueTransportWeight().add(sum)));
orderGoodsDao.updateOrderGoodsSetResidueWeightAndAlreadyWeight(sum, sum, orderGoods.getId());
}
} else if (OrderEnum.Status.CANCELED.getCode().equals(orderInfoFeignVO.getOrderStatus())) {
for (OrderGoods orderGoods : orderGoodsList) {
vehicleUsageMap.put(orderGoods.getVehicleUsage(),
vehicleUsageMap.get(orderGoods.getVehicleUsage())
.add(orderGoods.getResidueTransportWeight()));
}
}
//归还吨数
BigDecimal platformResidueSum = vehicleUsageMap.get(1);
BigDecimal ownResidueSum = vehicleUsageMap.get(2);
BigDecimal residueSum = platformResidueSum.add(ownResidueSum);
RollbackOrderWeightParam param = new RollbackOrderWeightParam();
param.setOrderNo(orderInfoFeignVO.getOrderNo());
param.setResidueWeight(residueSum);
param.setPlatformResidueCarryWeight(platformResidueSum);
param.setOwnResidueCarryWeight(ownResidueSum);
try {
Result<Object> result = orderFeign.rollbackOrderWeight(param);
if (!result.succeed()) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "远程调用更新订单余量失败");
} }
orderGoodsDao.updateOrderGoodsSetResidueWeightAndAlreadyWeight(sum, sum, orderGoods.getId());
// if (!orderFeign.saveOrderSettlementJobRecord(orderNo).succeed()) {
// throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "货主取消订单失败,原因:远程调用结算单锁定失败");
// }
} catch (Exception e) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, e.getMessage());
} }
} }
//取消订单更新货单剩余吨数
orderGoodsService.batchUpdateResidueWeight(orderGoodsList);
} }
...@@ -515,35 +424,23 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -515,35 +424,23 @@ public class OrderCancelServiceImpl implements OrderCancelService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void orderCancelProcess(OrderCancelParam param) { public void orderCancelProcess(OrderCancelParam param) {
Map<Integer, BigDecimal> truckDemandMap = new HashMap<>();
truckDemandMap.put(TruckDemandEnum.TruckType.PLATFORM_CAR.getCode(), BigDecimal.ZERO);
truckDemandMap.put(TruckDemandEnum.TruckType.OWNER_CAR.getCode(), BigDecimal.ZERO);
Map<Integer, BigDecimal> vehicleUsageMap = new HashMap<>();
vehicleUsageMap.put(1, BigDecimal.ZERO);
vehicleUsageMap.put(2, BigDecimal.ZERO);
String orderNo = param.getOrderNo(); String orderNo = param.getOrderNo();
FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(orderNo); FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(orderNo);
Integer truckDemand = orderInfoFeign.getTruckDemand();
List<OrderGoods> orderGoodsList = null;
switch (param.getCancelType()) { switch (param.getCancelType()) {
case 1: //单纯取消订单及货单 case 1: //单纯取消订单及货单
orderGoodsList = getOrderGoods(orderNo); getOrderGoods(orderNo);
break; break;
case 2: //取消未拉运吨数的货单及订单 case 2: //取消未拉运吨数的货单及订单
orderGoodsList = getGoods(orderNo); getGoods(orderNo);
break; break;
case 3: //取消未拉运+未到达货源地吨数 case 3: //取消未拉运+未到达货源地吨数
orderGoodsList = getOrderGoods(param, orderNo); getOrderGoods(param, orderNo);
break; break;
default: default:
return; return;
} }
//订单取消恢复货单的剩余吨数为0
orderGoodsService.batchUpdateResidueWeight(orderGoodsList);
//触发自动冻结的mq消费逻辑 //触发自动冻结的mq消费逻辑
triggerAutoFreeze(orderInfoFeign.getOwnerUserNo(),orderNo); triggerAutoFreeze(orderInfoFeign.getOwnerUserNo(),orderNo);
...@@ -565,7 +462,6 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -565,7 +462,6 @@ public class OrderCancelServiceImpl implements OrderCancelService {
.map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add); .map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
update.setAlreadyTransportWeight(orderGoods.getAlreadyTransportWeight().subtract(childSum) update.setAlreadyTransportWeight(orderGoods.getAlreadyTransportWeight().subtract(childSum)
); );
update.setResidueTransportWeight(orderGoods.getResidueTransportWeight().add(childSum));
orderGoodsDao.updateEntityByKey(update); orderGoodsDao.updateEntityByKey(update);
} }
} }
......
...@@ -447,8 +447,10 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -447,8 +447,10 @@ public class OrderChildServiceImpl implements OrderChildService {
} }
} }
BigDecimal residueTransportWeight = orderGoodsService.calcOrderGoodsResidueWeight
(orderGoods.getExtractWeight(),orderGoods.getAlreadyTransportWeight());
// 验证是否有足量去接该运单 // 验证是否有足量去接该运单
if(judgeNotEnoughWeightOrdered(orderGoods.getResidueTransportWeight(),orderInfo.getOrderNo())){ if(judgeNotEnoughWeightOrdered(residueTransportWeight,orderInfo.getOrderNo())){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_WEIGHT_LACK); throw new ServiceSystemException(PerformanceResultEnum.ORDER_WEIGHT_LACK);
} }
...@@ -493,23 +495,13 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -493,23 +495,13 @@ public class OrderChildServiceImpl implements OrderChildService {
Integer overWeight = orderInfo.getOverWeight(); Integer overWeight = orderInfo.getOverWeight();
if(Objects.equals(overWeight,OrderGoodsOverWeightEnum.NO.getCode())){ if(Objects.equals(overWeight,OrderGoodsOverWeightEnum.NO.getCode())){
if (orderGoods.getResidueTransportWeight().compareTo(new BigDecimal(35)) < 0) { orderChild.setWeight(new BigDecimal(35));
orderChild.setWeight(orderGoods.getResidueTransportWeight());
} else {
orderChild.setWeight(new BigDecimal(35));
}
} else{ } else{
if (orderGoods.getResidueTransportWeight().compareTo(new BigDecimal(50)) < 0) { orderChild.setWeight(new BigDecimal(50));
orderChild.setWeight(orderGoods.getResidueTransportWeight());
} else {
orderChild.setWeight(new BigDecimal(50));
}
} }
//orderChild.setWeight(orderChild.getTruckLoad()); //orderChild.setWeight(orderChild.getTruckLoad());
orderChild.setFreight(orderChildFreightCalc(orderChild)); orderChild.setFreight(orderChildFreightCalc(orderChild));
orderChild.setPayTime(now); orderChild.setPayTime(now);
...@@ -2265,7 +2257,10 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -2265,7 +2257,10 @@ public class OrderChildServiceImpl implements OrderChildService {
private void updateOrderGoodsComplete(OrderGoods orderGoods, OrderChild orderChild, long count){ private void updateOrderGoodsComplete(OrderGoods orderGoods, OrderChild orderChild, long count){
if (count > 1) {return;} if (count > 1) {return;}
goodsOrderTruckRecordComponent.deleteTruckRecord(orderGoods.getOrderGoodsNo(),orderChild.getTruckNo()); goodsOrderTruckRecordComponent.deleteTruckRecord(orderGoods.getOrderGoodsNo(),orderChild.getTruckNo());
if (orderGoods.getResidueTransportWeight().compareTo(BigDecimal.ZERO) <= 0){ BigDecimal residueTransportWeight = orderGoodsService.calcOrderGoodsResidueWeight
(orderGoods.getExtractWeight(),orderGoods.getAlreadyTransportWeight());
if (residueTransportWeight.compareTo(BigDecimal.ZERO) <= 0){
//orderGoodsDao.updateOrderGoodsStatusByOrderGoodsNo(orderGoods.getOrderGoodsNo(), OrderGoodsStatusEnum.Status.SUCCESS.getCode()); //orderGoodsDao.updateOrderGoodsStatusByOrderGoodsNo(orderGoods.getOrderGoodsNo(), OrderGoodsStatusEnum.Status.SUCCESS.getCode());
orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoods.getOrderGoodsNo(), OrderGoodsTruckBindEnum.Status.SUCCESS.getCode()); orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoods.getOrderGoodsNo(), OrderGoodsTruckBindEnum.Status.SUCCESS.getCode());
goodsOrderTruckRecordComponent.deleteTruckRecord(orderGoods.getOrderGoodsNo()); goodsOrderTruckRecordComponent.deleteTruckRecord(orderGoods.getOrderGoodsNo());
......
...@@ -7,11 +7,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -7,11 +7,9 @@ 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.order.enums.InvoicingCompanyEnum; import com.clx.order.enums.InvoicingCompanyEnum;
import com.clx.order.enums.ResultEnum; import com.clx.order.enums.ResultEnum;
import com.clx.order.enums.UpdateEnum;
import com.clx.order.enums.VehicleUsageEnum; import com.clx.order.enums.VehicleUsageEnum;
import com.clx.order.feign.OrderFeign; import com.clx.order.feign.OrderFeign;
import com.clx.order.param.feign.OrderCancelReasonParam; 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.FeignOrderInfoVO;
import com.clx.order.vo.feign.FeignOrderVO; import com.clx.order.vo.feign.FeignOrderVO;
import com.clx.order.vo.pc.owner.OwnerQuotationDetailVO; import com.clx.order.vo.pc.owner.OwnerQuotationDetailVO;
...@@ -243,6 +241,9 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea ...@@ -243,6 +241,9 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
item.setOverOrderWeight(1); item.setOverOrderWeight(1);
} }
} }
item.setResidueTransportWeight(item.getExtractWeight()
.subtract(Objects.nonNull(item.getAlreadyTransportWeight())
?item.getAlreadyTransportWeight():BigDecimal.ZERO));
}); });
} }
return page; return page;
...@@ -321,7 +322,9 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea ...@@ -321,7 +322,9 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
public void updateOrderGoodsReduceWeightAndStatus(OrderGoods orderGoods, OrderChild orderChild, Integer orderGoodsStatus) { public void updateOrderGoodsReduceWeightAndStatus(OrderGoods orderGoods, OrderChild orderChild, Integer orderGoodsStatus) {
orderGoodsDao.updateOrderGoodsReduceWeightAndStatus(orderGoods.getId(), orderChild.getWeight(), orderGoodsStatus); orderGoodsDao.updateOrderGoodsReduceWeightAndStatus(orderGoods.getId(), orderChild.getWeight(), orderGoodsStatus);
//货单没有辆,并且货单用车非自有车 //货单没有辆,并且货单用车非自有车
if (orderGoods.getResidueTransportWeight().compareTo(orderChild.getWeight()) <= 0 BigDecimal residueTransportWeight = this.calcOrderGoodsResidueWeight
(orderGoods.getExtractWeight(),orderGoods.getAlreadyTransportWeight());
if (residueTransportWeight.compareTo(orderChild.getWeight()) <= 0
&& !Objects.equals(orderGoods.getVehicleUsage(),VehicleUsageEnum.Status.OWN.getCode())) { && !Objects.equals(orderGoods.getVehicleUsage(),VehicleUsageEnum.Status.OWN.getCode())) {
//释放其他车辆 //释放其他车辆
goodsOrderTruckRecordComponent.releaseDriverAndTruckBind(orderGoods.getOrderGoodsNo(), orderChild.getTruckNo()); goodsOrderTruckRecordComponent.releaseDriverAndTruckBind(orderGoods.getOrderGoodsNo(), orderChild.getTruckNo());
...@@ -457,42 +460,21 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea ...@@ -457,42 +460,21 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
@Override @Override
public BigDecimal orderCancelResidueWeight(String orderNo, String optionType) { public BigDecimal orderCancelResidueWeight(String orderNo, String optionType) {
FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(orderNo); BigDecimal residueWeight = orderWeightService.getOrderResidueWeight(orderNo);
List<OrderGoods> orderGoodsList = null;
BigDecimal orderGoodsResidueWeight = BigDecimal.ZERO;
String residueWeight = orderInfoFeign.getResidueWeight();
BigDecimal ans = new BigDecimal(residueWeight);
switch (optionType) { switch (optionType) {
case "1": case "1":
return ans; return residueWeight;
case "2": case "2":
orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNoAndStatus(orderNo); return residueWeight;
if (CollectionUtil.isNotEmpty(orderGoodsList)) {
orderGoodsResidueWeight = orderGoodsList.stream().map(OrderGoods::getResidueTransportWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
}
ans = orderGoodsResidueWeight.add(new BigDecimal(residueWeight));
if (ans.compareTo(new BigDecimal("35")) <= 0) {
return BigDecimal.ZERO;
} else {
return ans.subtract(new BigDecimal("35"));
}
case "3": case "3":
List<OrderChild> orderChildList = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.ARRIVE_SEND.getCode()); List<OrderChild> orderChildList = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.ARRIVE_SEND.getCode());
BigDecimal childResidueWeight = BigDecimal.ZERO; BigDecimal childResidueWeight = BigDecimal.ZERO;
if (CollectionUtils.isNotEmpty(orderChildList)) { if (CollectionUtils.isNotEmpty(orderChildList)) {
childResidueWeight = orderChildList.stream().map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add); childResidueWeight = orderChildList.stream().map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
}
orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNoAndStatus(orderNo);
if (CollectionUtil.isNotEmpty(orderGoodsList)) {
orderGoodsResidueWeight = orderGoodsList.stream().map(OrderGoods::getResidueTransportWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
}
ans = ans.add(orderGoodsResidueWeight).add(childResidueWeight);
if (ans.compareTo(new BigDecimal("35")) <= 0) {
return BigDecimal.ZERO;
} else {
return ans.subtract(new BigDecimal("35"));
} }
residueWeight = residueWeight.add(childResidueWeight);
return residueWeight;
default:throw new RuntimeException("参数错误"); default:throw new RuntimeException("参数错误");
} }
...@@ -516,19 +498,24 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea ...@@ -516,19 +498,24 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
} }
//考虑到借吨、恢复吨数的货单,逻辑判断实际的提取吨数 //考虑到借吨、恢复吨数的货单,逻辑判断实际的提取吨数
BigDecimal realExtractWeight = oldOrderGoods.getResidueTransportWeight().compareTo(BigDecimal.ZERO) == 0? BigDecimal oldResidueTransportWeight = this.calcOrderGoodsResidueWeight
oldOrderGoods.getAlreadyTransportWeight():oldOrderGoods.getAlreadyTransportWeight().add(oldOrderGoods.getResidueTransportWeight()); (oldOrderGoods.getExtractWeight(),oldOrderGoods.getAlreadyTransportWeight());
BigDecimal realExtractWeight = oldResidueTransportWeight.compareTo(BigDecimal.ZERO) == 0?
oldOrderGoods.getAlreadyTransportWeight():oldOrderGoods.getAlreadyTransportWeight().add(oldResidueTransportWeight);
oldOrderGoods.setExtractWeight(realExtractWeight); oldOrderGoods.setExtractWeight(realExtractWeight);
//本次提取增加或者减少的吨数 = 本次提取的吨数 - 货单原实际提取吨数 //本次提取增加或者减少的吨数 = 本次提取的吨数 - 货单原实际提取吨数
BigDecimal changeWeight = orderGoodsParams.getExtractWeight().subtract(realExtractWeight); BigDecimal changeWeight = orderGoodsParams.getExtractWeight().subtract(realExtractWeight);
BigDecimal residueTransportWeight = this.calcOrderGoodsResidueWeight
(oldOrderGoods.getExtractWeight(),oldOrderGoods.getAlreadyTransportWeight());
if (changeWeight.compareTo(BigDecimal.ZERO) > 0) { if (changeWeight.compareTo(BigDecimal.ZERO) > 0) {
orderGoodsParams.setResidueTransportWeight(oldOrderGoods.getResidueTransportWeight().add(changeWeight)); orderGoodsParams.setResidueTransportWeight(residueTransportWeight.add(changeWeight));
}else if (changeWeight.compareTo(BigDecimal.ZERO) < 0 ){ }else if (changeWeight.compareTo(BigDecimal.ZERO) < 0 ){
orderGoodsParams.setResidueTransportWeight(orderGoodsParams.getExtractWeight().subtract(oldOrderGoods.getAlreadyTransportWeight())); orderGoodsParams.setResidueTransportWeight(orderGoodsParams.getExtractWeight().subtract(oldOrderGoods.getAlreadyTransportWeight()));
} else { } else {
//当编辑吨数等于0 的时候,不进行拦截 //当编辑吨数等于0 的时候,不进行拦截
orderGoodsParams.setResidueTransportWeight(oldOrderGoods.getResidueTransportWeight()); orderGoodsParams.setResidueTransportWeight(residueTransportWeight);
} }
BigDecimal orderResidueWeight = orderWeightService.getOrderResidueWeight(param.getOrderNo()); BigDecimal orderResidueWeight = orderWeightService.getOrderResidueWeight(param.getOrderNo());
...@@ -704,7 +691,6 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea ...@@ -704,7 +691,6 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
BigDecimal sum = BigDecimal.ZERO; BigDecimal sum = BigDecimal.ZERO;
OrderGoods orderGoods = dto.getOrderGoods(); OrderGoods orderGoods = dto.getOrderGoods();
List<String> childNoList = dto.getChildNoList(); List<String> childNoList = dto.getChildNoList();
RollbackOrderWeightParam param = new RollbackOrderWeightParam();
List<OrderChild> orderChildList = orderChildDao.selectResidueWeightByOrderGoodsNo(orderGoods.getOrderGoodsNo(), List<OrderChild> orderChildList = orderChildDao.selectResidueWeightByOrderGoodsNo(orderGoods.getOrderGoodsNo(),
OrderChildEnum.Status.DRIVER_CANCEL.getCode(), dto.getOrderGoodsCancelParam().getTruckList()); OrderChildEnum.Status.DRIVER_CANCEL.getCode(), dto.getOrderGoodsCancelParam().getTruckList());
...@@ -731,49 +717,32 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea ...@@ -731,49 +717,32 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
dto.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode()); dto.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
} }
} }
BigDecimal residueWeight = orderGoods.getResidueTransportWeight().add(sum);
param.setResidueWeight(residueWeight);
param.setOrderNo(orderGoods.getOrderNo());
if (!orderGoods.getTruckDemand().equals(TruckDemandEnum.TruckType.PLATFORM_ANY_CAR.getCode())) {
param.setOwnResidueCarryWeight(BigDecimal.ZERO);
param.setPlatformResidueCarryWeight(BigDecimal.ZERO);
} else {
if (orderGoods.getVehicleUsage().equals(VehicleUsageEnum.Status.PLATFORM.getCode())) {
param.setOwnResidueCarryWeight(BigDecimal.ZERO);
param.setPlatformResidueCarryWeight(residueWeight);
} else if (orderGoods.getVehicleUsage().equals(VehicleUsageEnum.Status.OWN.getCode())) {
param.setOwnResidueCarryWeight(residueWeight);
param.setPlatformResidueCarryWeight(BigDecimal.ZERO);
}
}
orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoods.getOrderGoodsNo(), OrderGoodsTruckBindEnum.Status.CANCEL.getCode()); orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoods.getOrderGoodsNo(), OrderGoodsTruckBindEnum.Status.CANCEL.getCode());
log.info("取消货单,参数:{}", JSONUtil.parse(param)); orderGoodsDao.updateOrderGoodsSetAlreadyWeightAndStatus(sum, dto.getOrderGoodsStatus(), orderGoods.getId());
if (orderFeign.rollbackOrderWeight(param).succeed()) {
orderGoodsDao.updateOrderGoodsSetResidueWeightAndAlreadyWeightAndStatus(orderGoods.getResidueTransportWeight(),
sum, dto.getOrderGoodsStatus(), orderGoods.getId());
}
} }
private void cancelOperateTwoTypeStrategy(OrderGoodsCancelDTO dto) { private void cancelOperateTwoTypeStrategy(OrderGoodsCancelDTO dto) {
BigDecimal sum = BigDecimal.ZERO;
String now = DateUtils.formatDateTime(LocalDateTime.now()).get(); String now = DateUtils.formatDateTime(LocalDateTime.now()).get();
OrderGoods orderGoods = dto.getOrderGoods(); OrderGoods orderGoods = dto.getOrderGoods();
RollbackOrderWeightParam param = new RollbackOrderWeightParam();
List<OrderChild> orderChildList = orderChildDao.selectResidueWeightByOrderGoodsNo(orderGoods.getOrderGoodsNo(), OrderChildEnum.Status.DRIVER_CANCEL.getCode()); List<OrderChild> orderChildList = orderChildDao.selectResidueWeightByOrderGoodsNo(orderGoods.getOrderGoodsNo(), OrderChildEnum.Status.DRIVER_CANCEL.getCode());
List<String> childNoList = dto.getChildNoList(); List<String> childNoList = dto.getChildNoList();
BigDecimal childResidueWeight = BigDecimal.ZERO;
if (CollectionUtils.isNotEmpty(orderChildList)) { if (CollectionUtils.isNotEmpty(orderChildList)) {
List<OrderChild> filterOrderChildList = orderChildList.stream().filter(item -> item.getStatus() < OrderChildEnum.Status.ARRIVE_SEND.getCode()).collect(Collectors.toList()); List<OrderChild> filterOrderChildList = orderChildList.stream().filter(item -> item.getStatus() < OrderChildEnum.Status.ARRIVE_SEND.getCode()).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(filterOrderChildList)) { if (CollectionUtils.isNotEmpty(filterOrderChildList)) {
for (OrderChild orderChild : filterOrderChildList) { for (OrderChild orderChild : filterOrderChildList) {
driverService.updateOrderStatus(orderChild.getDriverUserNo(), DriverInfoEnum.DriverStatus.NO.getCode(), orderChild.getTruckId(), 1); driverService.updateOrderStatus(orderChild.getDriverUserNo(), DriverInfoEnum.DriverStatus.NO.getCode(), orderChild.getTruckId(), 1);
childNoList.add(orderChild.getChildNo()); childNoList.add(orderChild.getChildNo());
sum = sum.add(orderChild.getWeight());
orderChildLogService.saveOrderChildLog(orderChild.getChildNo(), orderChildLogService.saveOrderChildLog(orderChild.getChildNo(),
OrderChildEnum.Status.PLATFORM_CANCEL.getCode(), OrderChildEnum.Status.PLATFORM_CANCEL.getName(), OrderChildEnum.Status.PLATFORM_CANCEL.getCode(), OrderChildEnum.Status.PLATFORM_CANCEL.getName(),
OrderChildLogEnum.CreateType.PLATFORM.getCode(), 0L, OrderChildLogEnum.CreateType.PLATFORM.getMsg() OrderChildLogEnum.CreateType.PLATFORM.getCode(), 0L, OrderChildLogEnum.CreateType.PLATFORM.getMsg()
); );
childResidueWeight = childResidueWeight.add(orderChild.getWeight());
} }
orderChildDao.batchUpdateOrderChildStatus( orderChildDao.batchUpdateOrderChildStatus(
OrderChildEnum.Status.PLATFORM_CANCEL.getCode(), OrderChildEnum.Status.PLATFORM_CANCEL.getName(), OrderChildEnum.Status.PLATFORM_CANCEL.getCode(), OrderChildEnum.Status.PLATFORM_CANCEL.getName(),
...@@ -784,67 +753,21 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea ...@@ -784,67 +753,21 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
dto.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode()); dto.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
} }
} }
BigDecimal residueWeight = orderGoods.getResidueTransportWeight().add(sum);
param.setResidueWeight(residueWeight);
param.setOrderNo(orderGoods.getOrderNo());
if (!orderGoods.getTruckDemand().equals(TruckDemandEnum.TruckType.PLATFORM_ANY_CAR.getCode())) {
param.setOwnResidueCarryWeight(BigDecimal.ZERO);
param.setPlatformResidueCarryWeight(BigDecimal.ZERO);
} else {
if (orderGoods.getVehicleUsage().equals(VehicleUsageEnum.Status.PLATFORM.getCode())) {
param.setOwnResidueCarryWeight(BigDecimal.ZERO);
param.setPlatformResidueCarryWeight(residueWeight);
} else if (orderGoods.getVehicleUsage().equals(VehicleUsageEnum.Status.OWN.getCode())) {
param.setOwnResidueCarryWeight(residueWeight);
param.setPlatformResidueCarryWeight(BigDecimal.ZERO);
}
}
orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoods.getOrderGoodsNo(), OrderGoodsTruckBindEnum.Status.CANCEL.getCode()); orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoods.getOrderGoodsNo(), OrderGoodsTruckBindEnum.Status.CANCEL.getCode());
orderGoodsDao.updateOrderGoodsWeightAlreadyAndStatus(orderGoods.getGoodsId(),childResidueWeight,OrderGoodsStatusEnum.Status.COMPLETED.getCode());
log.info("取消货单,参数:{}", JSONUtil.parse(param));
if (orderFeign.rollbackOrderWeight(param).succeed()) {
OrderGoods update = new OrderGoods();
update.setId(orderGoods.getId());
update.setResidueTransportWeight(BigDecimal.ZERO);
update.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.COMPLETED.getCode());
orderGoodsDao.updateEntityByKey(update);
}
} }
private void cancelOperateOneTypeStrategy(OrderGoodsCancelDTO dto) { private void cancelOperateOneTypeStrategy(OrderGoodsCancelDTO dto) {
RollbackOrderWeightParam param = new RollbackOrderWeightParam();
OrderGoods orderGoods = dto.getOrderGoods(); OrderGoods orderGoods = dto.getOrderGoods();
List<OrderChild> orderChildList = orderChildDao.selectResidueWeightByOrderGoodsNo(orderGoods.getOrderGoodsNo(), OrderChildEnum.Status.DRIVER_CANCEL.getCode()); List<OrderChild> orderChildList = orderChildDao.selectResidueWeightByOrderGoodsNo(orderGoods.getOrderGoodsNo(), OrderChildEnum.Status.DRIVER_CANCEL.getCode());
if (CollectionUtils.isNotEmpty(orderChildList)) { if (CollectionUtils.isNotEmpty(orderChildList)) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "当前货单已产生运单"); throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "当前货单已产生运单");
} }
BigDecimal residueWeight = dto.getOrderGoods().getResidueTransportWeight();
param.setResidueWeight(residueWeight);
param.setOrderNo(orderGoods.getOrderNo());
if (!orderGoods.getTruckDemand().equals(TruckDemandEnum.TruckType.PLATFORM_ANY_CAR.getCode())) {
param.setOwnResidueCarryWeight(BigDecimal.ZERO);
param.setPlatformResidueCarryWeight(BigDecimal.ZERO);
} else {
if (orderGoods.getVehicleUsage().equals(VehicleUsageEnum.Status.PLATFORM.getCode())) {
param.setOwnResidueCarryWeight(BigDecimal.ZERO);
param.setPlatformResidueCarryWeight(residueWeight);
} else if (orderGoods.getVehicleUsage().equals(VehicleUsageEnum.Status.OWN.getCode())) {
param.setOwnResidueCarryWeight(residueWeight);
param.setPlatformResidueCarryWeight(BigDecimal.ZERO);
}
}
orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoods.getOrderGoodsNo(), OrderGoodsTruckBindEnum.Status.CANCEL.getCode()); orderGoodsTruckBindDao.updateOrderGoodsBindStatus(orderGoods.getOrderGoodsNo(), OrderGoodsTruckBindEnum.Status.CANCEL.getCode());
OrderGoods update = new OrderGoods();
log.info("取消货单,参数:{}", JSONUtil.parse(param)); update.setId(orderGoods.getId());
if (orderFeign.rollbackOrderWeight(param).succeed()) { update.setOrderGoodsStatus(dto.getOrderGoodsStatus());
OrderGoods update = new OrderGoods(); orderGoodsDao.updateEntityByKey(update);
update.setId(orderGoods.getId());
update.setResidueTransportWeight(BigDecimal.ZERO);
update.setOrderGoodsStatus(dto.getOrderGoodsStatus());
orderGoodsDao.updateEntityByKey(update);
}
} }
/** /**
...@@ -854,38 +777,37 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea ...@@ -854,38 +777,37 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
*/ */
@Override @Override
public BigDecimal orderGoodsCancelResidueWeight(OrderGoodsCancelParam goodsCancelParam) { public BigDecimal orderGoodsCancelResidueWeight(OrderGoodsCancelParam goodsCancelParam) {
String orderGoodsNo = goodsCancelParam.getOrderGoodsNo();
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderGoodsNo).orElseThrow(PerformanceResultEnum.HTTP_ERROR, "未查询到货单"); OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(goodsCancelParam.getOrderGoodsNo()).orElseThrow(
List<OrderChild> orderChildList = null; PerformanceResultEnum.DATA_NOT_FIND);
BigDecimal residueWeight = null;
BigDecimal sum = BigDecimal.ZERO; //订单剩余吨数
Integer cancelOperateType = goodsCancelParam.getCancelOperateType(); BigDecimal orderResidueWeight = orderWeightService.getOrderResidueWeight(goodsCancelParam.getOrderNo());
//获取货单剩余吨数
BigDecimal orderGoodsResidueWeight = this.calcOrderGoodsResidueWeight(orderGoods.getExtractWeight(),orderGoods.getAlreadyTransportWeight());
//货单剩余量大于订单剩余量,取订单剩余量,否则取货单剩余量
BigDecimal residueWeight = orderGoodsResidueWeight.compareTo(orderResidueWeight) > 0? orderResidueWeight : orderGoodsResidueWeight;
// 1:弹窗1 2:取消未接单及未到达货源地的车辆 3:取消未接单及未装车的车辆 // 1:弹窗1 2:取消未接单及未到达货源地的车辆 3:取消未接单及未装车的车辆
switch (cancelOperateType) {
switch (goodsCancelParam.getCancelOperateType()) {
case 1: case 1:
return orderGoods.getResidueTransportWeight(); return residueWeight;
case 2: case 2:
orderChildList = orderChildDao.selectResidueWeightByOrderGoodsNo(orderGoods.getOrderGoodsNo(), OrderChildEnum.Status.ARRIVE_SEND.getCode());
if (CollectionUtils.isNotEmpty(orderChildList)) {
sum = orderChildList.stream().map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
}
residueWeight = orderGoods.getResidueTransportWeight().add(sum);
return residueWeight; return residueWeight;
case 3: case 3:
orderChildList = orderChildDao.selectResidueWeightByOrderGoodsNo(orderGoods.getOrderGoodsNo(), OrderChildEnum.Status.LOAD.getCode(), goodsCancelParam.getTruckList()); List<OrderChild> orderChildList = orderChildDao.selectResidueWeight(goodsCancelParam.getOrderNo(), OrderChildEnum.Status.ARRIVE_SEND.getCode());
BigDecimal childResidueWeight = BigDecimal.ZERO;
if (CollectionUtils.isNotEmpty(orderChildList)) { if (CollectionUtils.isNotEmpty(orderChildList)) {
sum = orderChildList.stream().map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add); childResidueWeight = orderChildList.stream().map(OrderChild::getWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
} }
residueWeight = orderGoods.getResidueTransportWeight().add(sum); residueWeight = residueWeight.add(childResidueWeight);
return residueWeight; return residueWeight;
default: default:throw new RuntimeException("参数错误");
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "参数类型有误");
} }
} }
...@@ -902,12 +824,10 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea ...@@ -902,12 +824,10 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
public OrderGoodsEditVO findOrderGoodsById(Integer id) { public OrderGoodsEditVO findOrderGoodsById(Integer id) {
OrderGoodsEditVO result = new OrderGoodsEditVO(); OrderGoodsEditVO result = new OrderGoodsEditVO();
OrderGoodsVO orderGoodsVO = orderGoodsDao.findOrderGoodsById(id); OrderGoodsVO orderGoodsVO = orderGoodsDao.findOrderGoodsById(id);
if(BigDecimal.ZERO.compareTo(orderGoodsVO.getResidueTransportWeight()) == 0 ){ orderGoodsVO.setResidueTransportWeight(orderGoodsVO.getExtractWeight()
//如果借吨或者恢复吨数,会导致提取吨数不准确,所以这里取准确提取吨数 .subtract(Objects.nonNull(orderGoodsVO.getAlreadyTransportWeight())
orderGoodsVO.setExtractWeight(orderGoodsVO.getAlreadyTransportWeight()); ?orderGoodsVO.getAlreadyTransportWeight():BigDecimal.ZERO));
}else{
orderGoodsVO.setExtractWeight(orderGoodsVO.getAlreadyTransportWeight().add(orderGoodsVO.getResidueTransportWeight()));
}
String orderNo = orderGoodsVO.getOrderNo(); String orderNo = orderGoodsVO.getOrderNo();
FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(orderNo); FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(orderNo);
...@@ -976,29 +896,6 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea ...@@ -976,29 +896,6 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
return orderGoodsDao.indexOrderGoodsListSearch(param); return orderGoodsDao.indexOrderGoodsListSearch(param);
} }
@Override
public void borrowWeight(OrderGoods orderGoods,String orderChildNo, BigDecimal subOrderGoodsResidue, BigDecimal addAlready,BigDecimal borrowOrderWeight,
Integer orderGoodsStatus) {
log.info("运单号:{} 进行订单借量,货单剩余吨数需扣减:{} 吨,货单已拉运吨数需增加:{} 吨,订单借用吨数:{} 吨",orderChildNo,
subOrderGoodsResidue,addAlready,borrowOrderWeight);
//更新订单吨数
orderCancelComponent.backFillOrderWeight(orderGoods,borrowOrderWeight, UpdateEnum.SUB.getCode());
//更新货单吨数
orderGoodsDao.updateOrderGoodsWeightResidueAndAlreadyAndStatus(orderGoods.getId(),addAlready,subOrderGoodsResidue,orderGoodsStatus);
orderGoodsLogService.saveLog(orderGoods.getOrderGoodsNo(), 0L, "系统", OrderGoodsLogsEnum.Type.SYSTEM_INCREASE.getName(),
String.format("系统自动提量:%s吨", borrowOrderWeight));
}
@Override
public void batchUpdateResidueWeight(List<OrderGoods> list) {
if(CollectionUtils.isEmpty(list)){
return;
}
List<Integer> collect = list.stream().map(OrderGoods::getId).collect(Collectors.toList());
orderGoodsDao.batchUpdateResidueWeight(collect,BigDecimal.ZERO);
}
@Override @Override
public void updateFrightPrice(String orderNo, BigDecimal pendingOrderFreight) { public void updateFrightPrice(String orderNo, BigDecimal pendingOrderFreight) {
List<OrderGoods> list = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo); List<OrderGoods> list = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
...@@ -1091,8 +988,9 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea ...@@ -1091,8 +988,9 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
orderGoodsLog.setCreateBy(0L); orderGoodsLog.setCreateBy(0L);
orderGoodsLog.setRemark("货主发起减吨请求,当前已挂单量超过总拉运量,自动取消"); orderGoodsLog.setRemark("货主发起减吨请求,当前已挂单量超过总拉运量,自动取消");
orderGoodsLogs.add(orderGoodsLog); orderGoodsLogs.add(orderGoodsLog);
totalCancelWeight = totalCancelWeight.add(Objects.nonNull(orderGoods.getResidueTransportWeight())? BigDecimal residueTransportWeight = this.calcOrderGoodsResidueWeight
orderGoods.getResidueTransportWeight() : BigDecimal.ZERO); (orderGoods.getExtractWeight(),orderGoods.getAlreadyTransportWeight());
totalCancelWeight = totalCancelWeight.add(residueTransportWeight);
if(Objects.equals(orderGoods.getPendingOrderWay(),PendingOrderWayStatusEnum.Status.DX.getCode()) if(Objects.equals(orderGoods.getPendingOrderWay(),PendingOrderWayStatusEnum.Status.DX.getCode())
|| Objects.equals(orderGoods.getPendingOrderWay(),PendingOrderWayStatusEnum.Status.FLEET_DX.getCode())){ || Objects.equals(orderGoods.getPendingOrderWay(),PendingOrderWayStatusEnum.Status.FLEET_DX.getCode())){
cancelTruckBindOrderGoodsNoList.add(orderGoods.getOrderGoodsNo()); cancelTruckBindOrderGoodsNoList.add(orderGoods.getOrderGoodsNo());
...@@ -1134,4 +1032,15 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea ...@@ -1134,4 +1032,15 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
.collect(Collectors.toList()); .collect(Collectors.toList());
return orderGoodsStruct.convertOrderGoodsPendingList(sort); return orderGoodsStruct.convertOrderGoodsPendingList(sort);
} }
@Override
public BigDecimal calcOrderGoodsResidueWeight(BigDecimal extractWeight, BigDecimal alreadyWeight) {
BigDecimal residueTransportWeight = Objects.nonNull(extractWeight)?extractWeight:BigDecimal.ZERO
.subtract(Objects.nonNull(alreadyWeight)?alreadyWeight:BigDecimal.ZERO);
if(residueTransportWeight.compareTo(BigDecimal.ZERO) <= 0){
return BigDecimal.ZERO;
}
return residueTransportWeight;
}
} }
...@@ -4,6 +4,7 @@ import com.clx.order.enums.VehicleUsageEnum; ...@@ -4,6 +4,7 @@ import com.clx.order.enums.VehicleUsageEnum;
import com.clx.order.vo.feign.FeignOrderInfoVO; import com.clx.order.vo.feign.FeignOrderInfoVO;
import com.clx.performance.dao.OrderChildDao; import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.OrderGoodsDao; import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.enums.OrderGoodsStatusEnum;
import com.clx.performance.enums.PerformanceResultEnum; import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.ResultEnum; import com.clx.performance.enums.ResultEnum;
import com.clx.performance.enums.TruckDemandEnum; import com.clx.performance.enums.TruckDemandEnum;
...@@ -58,11 +59,20 @@ public class OrderWeightServiceImpl implements OrderWeightService { ...@@ -58,11 +59,20 @@ public class OrderWeightServiceImpl implements OrderWeightService {
BigDecimal platOrderGoodsWeight = BigDecimal.ZERO; BigDecimal platOrderGoodsWeight = BigDecimal.ZERO;
for (OrderGoods item : orderGoodsList) { for (OrderGoods item : orderGoodsList) {
BigDecimal weight; //取消,完成,完结的货单取 已拉运吨数 作为提取吨数,
if(Objects.equals(item.getOrderGoodsStatus(), OrderGoodsStatusEnum.Status.CANCEL.getCode())
|| Objects.equals(item.getOrderGoodsStatus(), OrderGoodsStatusEnum.Status.SUCCESS.getCode())
|| Objects.equals(item.getOrderGoodsStatus(), OrderGoodsStatusEnum.Status.COMPLETED.getCode())){
weight = item.getAlreadyTransportWeight();
}else{
weight = item.getExtractWeight();
}
if(Objects.equals(item.getVehicleUsage(), VehicleUsageEnum.Status.OWN.getCode())){ if(Objects.equals(item.getVehicleUsage(), VehicleUsageEnum.Status.OWN.getCode())){
ownOrderGoodsWeight = ownOrderGoodsWeight.add(item.getExtractWeight()); ownOrderGoodsWeight = ownOrderGoodsWeight.add(weight);
} }
if(Objects.equals(item.getVehicleUsage(), VehicleUsageEnum.Status.PLATFORM.getCode())){ if(Objects.equals(item.getVehicleUsage(), VehicleUsageEnum.Status.PLATFORM.getCode())){
platOrderGoodsWeight = platOrderGoodsWeight.add(item.getExtractWeight()); platOrderGoodsWeight = platOrderGoodsWeight.add(weight);
} }
} }
......
...@@ -148,9 +148,9 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi ...@@ -148,9 +148,9 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
} }
if(Objects.nonNull(item.getTaskWeight()) && Objects.nonNull(item.getSumUnloadWeight())){ if(Objects.nonNull(item.getTaskWeight()) && Objects.nonNull(item.getSumUnloadWeight())){
//任务完成率 = 到站量 / 任务量+35 //任务完成率 = 到站量 / 任务量
BigDecimal taskCompleteRatio = item.getSumUnloadWeight() BigDecimal taskCompleteRatio = item.getSumUnloadWeight()
.divide(item.getTaskWeight().add(BusinessConstants.ORDER_SUB_WEIGHT), .divide(item.getTaskWeight(),
3, RoundingMode.HALF_UP).multiply(new BigDecimal(100)); 3, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
item.setTaskCompleteRatio(taskCompleteRatio); item.setTaskCompleteRatio(taskCompleteRatio);
} }
...@@ -353,7 +353,7 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi ...@@ -353,7 +353,7 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
item.setGoodsNameId(data.getGoodsNameId()); item.setGoodsNameId(data.getGoodsNameId());
item.setGoodsName(data.getGoodsName()); item.setGoodsName(data.getGoodsName());
item.setSendOverStandard(data.getOverWeight()); item.setSendOverStandard(data.getOverWeight());
item.setTaskWeight(data.getTransportWeight().subtract(BusinessConstants.ORDER_SUB_WEIGHT)); item.setTaskWeight(data.getTransportWeight());
item.setPendingWeight(data.getTransportWeight().subtract(data.getResidueWeight())); item.setPendingWeight(data.getTransportWeight().subtract(data.getResidueWeight()));
item.setTransportTimeSlot(DateUtils.formatDateTime(data.getTransportBeginTime()).get() + "至" + item.setTransportTimeSlot(DateUtils.formatDateTime(data.getTransportBeginTime()).get() + "至" +
......
...@@ -33,7 +33,6 @@ public class OrderGoodsSqlProvider { ...@@ -33,7 +33,6 @@ public class OrderGoodsSqlProvider {
String sql = new SQL() {{ String sql = new SQL() {{
SELECT("a.id, a.order_no," + SELECT("a.id, a.order_no," +
" a.order_goods_no, a.order_goods_status, a.extract_weight, " + " a.order_goods_no, a.order_goods_status, a.extract_weight, " +
" if(a.residue_transport_weight < 0, '0', a.residue_transport_weight) as residue_transport_weight ," +
" a.already_transport_weight,a.already_load_weight, a.send_address_id, a.send_address_shorter,a.send_longitude," + " a.already_transport_weight,a.already_load_weight, a.send_address_id, a.send_address_shorter,a.send_longitude," +
" a.send_latitude,a.receive_address_id, a.receive_address_shorter,a.receive_longitude,a.receive_latitude," + " a.send_latitude,a.receive_address_id, a.receive_address_shorter,a.receive_longitude,a.receive_latitude," +
"a.goods_id, a.goods_name, a.pending_order_way," + "a.goods_id, a.goods_name, a.pending_order_way," +
...@@ -96,7 +95,7 @@ public class OrderGoodsSqlProvider { ...@@ -96,7 +95,7 @@ public class OrderGoodsSqlProvider {
String sql = new SQL() {{ String sql = new SQL() {{
SELECT("a.id, a.order_no," + SELECT("a.id, a.order_no," +
" a.order_goods_no, a.order_goods_status, a.extract_weight, " + " a.order_goods_no, a.order_goods_status, a.extract_weight, " +
" a.residue_transport_weight,a.already_transport_weight, a.send_address_id, a.send_address_shorter,a.send_longitude," + " a.already_transport_weight, a.send_address_id, a.send_address_shorter,a.send_longitude," +
" a.send_latitude,a.receive_address_id, a.receive_address_shorter,a.receive_longitude,a.receive_latitude," + " a.send_latitude,a.receive_address_id, a.receive_address_shorter,a.receive_longitude,a.receive_latitude," +
"a.goods_id, a.goods_name, a.pending_order_way," + "a.goods_id, a.goods_name, a.pending_order_way," +
" date_format(a.directional_expire_time, '%Y-%m-%d %H:%i:%s') as directional_expire_time ," + " date_format(a.directional_expire_time, '%Y-%m-%d %H:%i:%s') as directional_expire_time ," +
...@@ -147,7 +146,7 @@ public class OrderGoodsSqlProvider { ...@@ -147,7 +146,7 @@ public class OrderGoodsSqlProvider {
StringBuffer sqlList = new StringBuffer(); StringBuffer sqlList = new StringBuffer();
sqlList.append("select a.id, a.order_no," + sqlList.append("select a.id, a.order_no," +
" a.order_goods_no, a.order_goods_status," + " a.order_goods_no, a.order_goods_status," +
" a.extract_weight,a.residue_transport_weight," + " a.extract_weight," +
"a.already_transport_weight, a.send_address_id, " + "a.already_transport_weight, a.send_address_id, " +
"a.send_address_shorter,a.send_longitude,a.send_latitude," + "a.send_address_shorter,a.send_longitude,a.send_latitude," +
"a.receive_address_id, a.receive_address_shorter,a.receive_longitude," + "a.receive_address_id, a.receive_address_shorter,a.receive_longitude," +
...@@ -182,7 +181,7 @@ public class OrderGoodsSqlProvider { ...@@ -182,7 +181,7 @@ public class OrderGoodsSqlProvider {
public String saveBatchEntity( List<OrderGoods> orderGoodsList) { public String saveBatchEntity( List<OrderGoods> orderGoodsList) {
StringBuffer sqlList = new StringBuffer(); StringBuffer sqlList = new StringBuffer();
sqlList.append("INSERT INTO order_goods(extract_weight,residue_transport_weight,already_transport_weight,loss_price,truck_demand,extract_way," + sqlList.append("INSERT INTO order_goods(extract_weight,already_transport_weight,loss_price,truck_demand,extract_way," +
"need_truck_num,vehicle_usage,pending_order_way,pending_order_time,pending_order_freight,last_arrive_send_time,senior_logistics_manager_id," + "need_truck_num,vehicle_usage,pending_order_way,pending_order_time,pending_order_freight,last_arrive_send_time,senior_logistics_manager_id," +
"senior_logistics_manager_name,order_no,order_goods_no,order_goods_status,send_address_id,send_address_shorter,send_system_address_id,send_longitude," + "senior_logistics_manager_name,order_no,order_goods_no,order_goods_status,send_address_id,send_address_shorter,send_system_address_id,send_longitude," +
"send_latitude,receive_latitude,receive_longitude,receive_address_id,receive_address_shorter,receive_system_address_id,goods_name,goods_id,create_time,modified_time," + "send_latitude,receive_latitude,receive_longitude,receive_address_id,receive_address_shorter,receive_system_address_id,goods_name,goods_id,create_time,modified_time," +
...@@ -192,7 +191,7 @@ public class OrderGoodsSqlProvider { ...@@ -192,7 +191,7 @@ public class OrderGoodsSqlProvider {
for (int i = 0; i < orderGoodsList.size(); i++) { for (int i = 0; i < orderGoodsList.size(); i++) {
OrderGoods o = orderGoodsList.get(i); OrderGoods o = orderGoodsList.get(i);
sqlList.append(" ('").append(o.getExtractWeight()).append("','").append(o.getResidueTransportWeight()).append("','").append(o.getAlreadyTransportWeight()).append("','") sqlList.append(" ('").append(o.getExtractWeight()).append("','").append(o.getAlreadyTransportWeight()).append("','")
.append(o.getLossPrice()).append("','").append(o.getTruckDemand()).append("','").append(o.getExtractWay()).append("','") .append(o.getLossPrice()).append("','").append(o.getTruckDemand()).append("','").append(o.getExtractWay()).append("','")
.append(o.getNeedTruckNum()).append("','").append(o.getVehicleUsage()).append("','").append(o.getPendingOrderWay()).append("','").append(o.getPendingOrderTime()).append("','") .append(o.getNeedTruckNum()).append("','").append(o.getVehicleUsage()).append("','").append(o.getPendingOrderWay()).append("','").append(o.getPendingOrderTime()).append("','")
.append(o.getPendingOrderFreight()).append("','").append(o.getLastArriveSendTime()).append("','").append(o.getSeniorLogisticsManagerId()).append("','") .append(o.getPendingOrderFreight()).append("','").append(o.getLastArriveSendTime()).append("','").append(o.getSeniorLogisticsManagerId()).append("','")
...@@ -237,7 +236,7 @@ public class OrderGoodsSqlProvider { ...@@ -237,7 +236,7 @@ public class OrderGoodsSqlProvider {
String sql = new SQL() {{ String sql = new SQL() {{
SELECT("a.id, a.order_no," + SELECT("a.id, a.order_no," +
" a.order_goods_no, a.order_goods_status, a.extract_weight, " + " a.order_goods_no, a.order_goods_status, a.extract_weight, " +
" if(a.residue_transport_weight < 0, '0', a.residue_transport_weight) as residue_transport_weight ,a.already_transport_weight, a.send_address_id, a.send_address_shorter,a.send_longitude," + " a.already_transport_weight, a.send_address_id, a.send_address_shorter,a.send_longitude," +
" a.send_latitude,a.receive_address_id, a.receive_address_shorter,a.receive_longitude,a.receive_latitude," + " a.send_latitude,a.receive_address_id, a.receive_address_shorter,a.receive_longitude,a.receive_latitude," +
"a.goods_id, a.goods_name, a.pending_order_way," + "a.goods_id, a.goods_name, a.pending_order_way," +
" date_format(a.directional_expire_time, '%Y-%m-%d %H:%i:%s') as directional_expire_time ," + " date_format(a.directional_expire_time, '%Y-%m-%d %H:%i:%s') as directional_expire_time ," +
...@@ -282,7 +281,7 @@ public class OrderGoodsSqlProvider { ...@@ -282,7 +281,7 @@ public class OrderGoodsSqlProvider {
return sql; return sql;
} }
public String updateOrderGoodsSetResidueWeightAndAlreadyWeightAndStatus(@Param(value ="residueWeight") BigDecimal residueWeight, @Param(value = "alreadyWeight") BigDecimal alreadyWeight,@Param(value ="status") Integer status,@Param(value ="id") Integer id){ public String updateOrderGoodsSetAlreadyWeightAndStatus(@Param(value = "alreadyWeight") BigDecimal alreadyWeight,@Param(value ="status") Integer status,@Param(value ="id") Integer id){
String sql = new SQL() {{ String sql = new SQL() {{
UPDATE("order_goods") UPDATE("order_goods")
.SET("already_transport_weight = already_transport_weight - #{alreadyWeight}") .SET("already_transport_weight = already_transport_weight - #{alreadyWeight}")
...@@ -299,7 +298,7 @@ public class OrderGoodsSqlProvider { ...@@ -299,7 +298,7 @@ public class OrderGoodsSqlProvider {
sqlList.append(" select a.id, a.order_no," + sqlList.append(" select a.id, a.order_no," +
" a.order_goods_no, a.order_goods_status, a.extract_weight, " + " a.order_goods_no, a.order_goods_status, a.extract_weight, " +
" if(a.residue_transport_weight < 0, '0', a.residue_transport_weight) as residue_transport_weight ,a.already_transport_weight, a.send_address_id, a.send_address_shorter,a.send_longitude," + " a.already_transport_weight, a.send_address_id, a.send_address_shorter,a.send_longitude," +
" a.send_latitude,a.receive_address_id, a.receive_address_shorter,a.receive_longitude,a.receive_latitude," + " a.send_latitude,a.receive_address_id, a.receive_address_shorter,a.receive_longitude,a.receive_latitude," +
"a.goods_id, a.goods_name, a.pending_order_way," + "a.goods_id, a.goods_name, a.pending_order_way," +
" date_format(a.directional_expire_time, '%Y-%m-%d %H:%i:%s') as directional_expire_time ," + " date_format(a.directional_expire_time, '%Y-%m-%d %H:%i:%s') as directional_expire_time ," +
...@@ -337,7 +336,7 @@ public class OrderGoodsSqlProvider { ...@@ -337,7 +336,7 @@ public class OrderGoodsSqlProvider {
String sql = new SQL() {{ String sql = new SQL() {{
SELECT("a.id, a.order_no," + SELECT("a.id, a.order_no," +
" a.order_goods_no, a.order_goods_status, a.extract_weight, " + " a.order_goods_no, a.order_goods_status, a.extract_weight, " +
" a.residue_transport_weight,a.already_transport_weight, a.send_address_id, a.send_address_shorter,a.send_longitude," + " a.already_transport_weight, a.send_address_id, a.send_address_shorter,a.send_longitude," +
" a.send_latitude,a.receive_address_id, a.receive_address_shorter,a.receive_longitude,a.receive_latitude," + " a.send_latitude,a.receive_address_id, a.receive_address_shorter,a.receive_longitude,a.receive_latitude," +
"a.goods_id, a.goods_name, a.pending_order_way," + "a.goods_id, a.goods_name, a.pending_order_way," +
" date_format(a.directional_expire_time, '%Y-%m-%d %H:%i:%s') as directional_expire_time ," + " date_format(a.directional_expire_time, '%Y-%m-%d %H:%i:%s') as directional_expire_time ," +
......
...@@ -106,7 +106,6 @@ public class OwnGoodsOrderStrategy extends GoodsOrderStrategy implements Initial ...@@ -106,7 +106,6 @@ public class OwnGoodsOrderStrategy extends GoodsOrderStrategy implements Initial
OrderGoods orderGoods = new OrderGoods(); OrderGoods orderGoods = new OrderGoods();
//提取吨数 //提取吨数
orderGoods.setExtractWeight(child.getExtractWeight()); orderGoods.setExtractWeight(child.getExtractWeight());
orderGoods.setResidueTransportWeight(child.getExtractWeight());
orderGoods.setAlreadyTransportWeight(BigDecimal.ZERO); orderGoods.setAlreadyTransportWeight(BigDecimal.ZERO);
orderGoods.setLossPrice(orderInfo.getLossPrice()); orderGoods.setLossPrice(orderInfo.getLossPrice());
......
...@@ -109,7 +109,6 @@ public class PartGoodsOrderStrategy extends GoodsOrderStrategy implements Initia ...@@ -109,7 +109,6 @@ public class PartGoodsOrderStrategy extends GoodsOrderStrategy implements Initia
OrderGoods orderGoods = new OrderGoods(); OrderGoods orderGoods = new OrderGoods();
//提取吨数 //提取吨数
orderGoods.setExtractWeight(child.getExtractWeight()); orderGoods.setExtractWeight(child.getExtractWeight());
orderGoods.setResidueTransportWeight(child.getExtractWeight());
orderGoods.setAlreadyTransportWeight(BigDecimal.ZERO); orderGoods.setAlreadyTransportWeight(BigDecimal.ZERO);
orderGoods.setLossPrice(orderInfo.getLossPrice()); orderGoods.setLossPrice(orderInfo.getLossPrice());
......
...@@ -107,7 +107,6 @@ public class PlatformGoodsOrderStrategy extends GoodsOrderStrategy implements In ...@@ -107,7 +107,6 @@ public class PlatformGoodsOrderStrategy extends GoodsOrderStrategy implements In
OrderGoods orderGoods = new OrderGoods(); OrderGoods orderGoods = new OrderGoods();
//提取吨数 //提取吨数
orderGoods.setExtractWeight(child.getExtractWeight()); orderGoods.setExtractWeight(child.getExtractWeight());
orderGoods.setResidueTransportWeight(child.getExtractWeight());
orderGoods.setAlreadyTransportWeight(BigDecimal.ZERO); orderGoods.setAlreadyTransportWeight(BigDecimal.ZERO);
orderGoods.setLossPrice(orderInfo.getLossPrice()); orderGoods.setLossPrice(orderInfo.getLossPrice());
orderGoods.setTruckDemand(TruckDemandEnum.TruckType.PLATFORM_CAR.getCode()); orderGoods.setTruckDemand(TruckDemandEnum.TruckType.PLATFORM_CAR.getCode());
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论