提交 84418cab authored 作者: jiangwenye's avatar jiangwenye

Merge branch 'v6.4_transportation_20231110' of…

Merge branch 'v6.4_transportation_20231110' of https://t.clxkj.cn/clx-java/clx-performance into test Conflicts: performance-api/src/main/java/com/clx/performance/enums/OrderChildEnum.java performance-api/src/main/java/com/clx/performance/enums/PerformanceResultEnum.java performance-web/src/main/java/com/clx/performance/config/RabbitOrderChildConfig.java performance-web/src/main/java/com/clx/performance/model/OrderGoods.java performance-web/src/main/java/com/clx/performance/service/OrderChildMqHandlerService.java performance-web/src/main/java/com/clx/performance/service/OrderChildMqService.java performance-web/src/main/java/com/clx/performance/service/impl/OrderChildMqHandlerServiceImpl.java performance-web/src/main/java/com/clx/performance/service/impl/OrderChildMqServiceImpl.java
......@@ -108,6 +108,7 @@ public enum OrderChildEnum {
}
}
// 运输中
public static final List<Integer> TRANSIT_lIST = Arrays.asList(
Status.CREATED.getCode(),
......
......@@ -13,4 +13,6 @@ public interface DriverService {
Optional<DriverInfoFeignVo> getTruckOwnInfo(String truckNo);
Optional<DriverInfoFeignVo> getDriverInfo(Long driverUserNo);
}
......@@ -44,4 +44,14 @@ public class DriverServiceImpl implements DriverService {
return null;
}
@Override
public Optional<DriverInfoFeignVo> getDriverInfo(Long driverUserNo) {
Result<DriverInfoFeignVo> result = Optional.ofNullable(driverFeign.getDriverInfo(driverUserNo)).filter(Result::succeed).orElseThrow(ResultCodeEnum.FAIL);
if (!Objects.equals(result.getCode(), 0)){
throw new ServiceSystemException(ResultCodeEnum.FAIL, result.getMsg());
}
return Optional.ofNullable(result.getData());
}
}
......@@ -141,6 +141,8 @@ public class OrderGoods implements HasKey<Integer> {
private LocalDateTime lastArriveReceiveTime;
@TableField("pending_order_time")
@ApiModelProperty("挂单时间")
private LocalDateTime pendingOrderTime;
......
......@@ -15,6 +15,8 @@ public interface OrderChildMqHandlerService {
void orderChildArriveReceiveAddress(OrderChildArriveReceiveAddressMqParam mq);
void orderChildDriverConfirm(OrderChildDriverConfirmMqParam mq);
void orderChildLoad(OrderChildLoadMqParam mq);
void orderChildUnload(OrderChildUnloadMqParam mq);
......
......@@ -8,9 +8,9 @@ public interface OrderChildMqService {
void orderChildDriverConfirm(String childNo);
void orderChildCancel(String childNo, Integer status, Integer opUserType, Long opUserNo, String opUserName);
void orderChildLoad(String childNo);
void orderChildUnLoad(String childNo);
void orderChildCancel(String childNo, Integer status, Integer opUserType, Long opUserNo, String opUserName);
}
......@@ -70,20 +70,6 @@ public class OrderChildMqServiceImpl implements OrderChildMqService {
rabbitTemplate.send(RabbitKeyOrderChildConstants.DEFAULT_EXCHANGE, RabbitKeyOrderChildConstants.DEFAULT_DELAY_ROUTING_KEY, message);
}
@Override
public void orderChildCancel(String childNo, Integer status, Integer opUserType, Long opUserNo, String opUserName) {
OrderChildCancelMqParam mq = new OrderChildCancelMqParam();
mq.setChildNo(childNo);
mq.setStatus(status);
mq.setOpUserType(opUserType);
mq.setOpUserNo(opUserNo);
mq.setOpUserName(opUserName);
MqDelay<MqWrapper<OrderChildCancelMqParam>> delay = new MqDelay<>(RabbitKeyOrderChildConstants.DEFAULT_EXCHANGE, RabbitKeyOrderChildConstants.ORDER_CHILD_CANCEL_ROUTING_KEY, new MqWrapper<>(mq));
Message message = MessageBuilder.withBody(JSON.toJSONString(new MqWrapper<>(delay)).getBytes()).build();
message.getMessageProperties().setExpiration("5000");
rabbitTemplate.send(RabbitKeyOrderChildConstants.DEFAULT_EXCHANGE, RabbitKeyOrderChildConstants.DEFAULT_DELAY_ROUTING_KEY, message);
}
......@@ -109,4 +95,19 @@ public class OrderChildMqServiceImpl implements OrderChildMqService {
rabbitTemplate.send(RabbitKeyOrderChildConstants.DEFAULT_EXCHANGE, RabbitKeyOrderChildConstants.DEFAULT_DELAY_ROUTING_KEY, message);
}
@Override
public void orderChildCancel(String childNo, Integer status, Integer opUserType, Long opUserNo, String opUserName) {
OrderChildCancelMqParam mq = new OrderChildCancelMqParam();
mq.setChildNo(childNo);
mq.setStatus(status);
mq.setOpUserType(opUserType);
mq.setOpUserNo(opUserNo);
mq.setOpUserName(opUserName);
MqDelay<MqWrapper<OrderChildCancelMqParam>> delay = new MqDelay<>(RabbitKeyOrderChildConstants.DEFAULT_EXCHANGE, RabbitKeyOrderChildConstants.ORDER_CHILD_CANCEL_ROUTING_KEY, new MqWrapper<>(mq));
Message message = MessageBuilder.withBody(JSON.toJSONString(new MqWrapper<>(delay)).getBytes()).build();
message.getMessageProperties().setExpiration("5000");
rabbitTemplate.send(RabbitKeyOrderChildConstants.DEFAULT_EXCHANGE, RabbitKeyOrderChildConstants.DEFAULT_DELAY_ROUTING_KEY, message);
}
}
......@@ -6,6 +6,7 @@ import com.clx.order.enums.OrderEnum;
import com.clx.order.feign.OrderFeign;
import com.clx.order.vo.feign.FeignAddressVO;
import com.clx.order.vo.feign.FeignOrderInfoVO;
import com.clx.performance.constant.RedisConstants;
import com.clx.performance.component.GoodsOrderTruckRecordComponent;
import com.clx.performance.constant.RedisConstants;
import com.clx.performance.constant.RedissonConstants;
......@@ -47,6 +48,7 @@ import com.msl.common.utils.LocalDateTimeUtils;
import com.msl.common.utils.gps.GpsUtil;
import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
......@@ -1127,6 +1129,7 @@ public class OrderChildServiceImpl implements OrderChildService {
orderChild.getTruckNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
}
orderChild.setCancelRemark(param.getRemark());
orderChild.setCancelTime(LocalDateTime.now());
orderChild.setFinishTime(orderChild.getCancelTime());
orderChild.setStatus(OrderChildEnum.Status.DRIVER_CANCEL.getCode());
......@@ -1433,7 +1436,7 @@ public class OrderChildServiceImpl implements OrderChildService {
) {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_GOODS_STATUS_NOT_GET);
}
if (orderGoods.getResidueTransportWeight().compareTo(dif) < 0) {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_GOODS_WEIGHT_NOT_HAVE);
}
......
......@@ -6,17 +6,21 @@ import com.clx.performance.dao.settle.SettlementDriverDetailDao;
import com.clx.performance.dao.settle.SettlementOwnerDao;
import com.clx.performance.dao.settle.SettlementOwnerDetailDao;
import com.clx.performance.enums.OrderChildLogEnum;
import com.clx.performance.enums.PayRemarkEnum;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.settle.SettlementDriverEnum;
import com.clx.performance.enums.settle.SettlementLogEnum;
import com.clx.performance.enums.settle.SettlementOwnerEnum;
import com.clx.performance.enums.settle.SettlementPlatformEnum;
import com.clx.performance.extranal.user.DriverService;
import com.clx.performance.extranal.user.OwnerInfoService;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.model.settle.SettlementDriver;
import com.clx.performance.model.settle.SettlementDriverDetail;
import com.clx.performance.model.settle.SettlementOwner;
import com.clx.performance.model.settle.SettlementOwnerDetail;
import com.clx.performance.param.pc.payment.PayParam;
import com.clx.performance.service.PaymentService;
import com.clx.performance.service.impl.UniqueOrderNumService;
import com.clx.performance.service.settle.SettlementLogService;
import com.clx.performance.service.settle.SettlementMqHandlerService;
......@@ -24,7 +28,9 @@ import com.clx.performance.service.settle.SettlementService;
import com.clx.performance.utils.LocalDateTimeUtils;
import com.clx.performance.vo.mq.SettlementDetailAddMqParam;
import com.clx.performance.vo.mq.SettlementDetailInvoiceTypeSyncMqParam;
import com.clx.user.vo.feign.DriverInfoFeignVo;
import com.clx.user.vo.feign.OwnerInfoFeignVO;
import com.msl.common.enums.ResultCodeEnum;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -35,6 +41,7 @@ import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
import java.util.UUID;
@Slf4j
@Service
......@@ -61,6 +68,12 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
@Autowired
private SettlementLogService settlementLogService;
@Autowired
private DriverService driverService;
@Autowired
private PaymentService paymentService;
@Autowired
private OrderGoodsDao orderGoodsDao;
......@@ -104,6 +117,9 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementDriverSave(settlementDriverDetail,settlementNo);
//车主结算单自动支付
paySettlementDriver(settlementDriverDetail);
// 更新结算单
settlementOwnerDetail.setSettlementNo(settlementNo);
settlementDriverDetail.setSettlementNo(settlementNo);
......@@ -148,6 +164,23 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementDriverDao.saveEntity(settlementDriver);
}
/**
* 车主结算单自动支付
*/
private void paySettlementDriver(SettlementDriverDetail detail){
DriverInfoFeignVo driverInfoFeignVo = driverService.getDriverInfo(detail.getDriverUserNo()).orElseThrow(ResultCodeEnum.FAIL);
PayParam noCheckPwd = PayParam.builder().from(
Integer.valueOf("100012896"))
.to(Integer.valueOf(driverInfoFeignVo.getWalletCode()))
.figure(detail.getSettlementFreight().intValue())
.tradeNo(UUID.randomUUID().toString().replaceAll("-", ""))
.tradeId(12345)
.pwd("noCheckPwd")
.remark(PayRemarkEnum.toString(PayRemarkEnum.FREIGHT_TO_OWNER.getValue()))
.build();
paymentService.paymentWallet(noCheckPwd);
}
/**
* 月结初始化
*/
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论