提交 db36b712 authored 作者: 艾庆国's avatar 艾庆国

Merge branch 'refs/heads/v26.5_optimize_20240918' into release

...@@ -22,13 +22,14 @@ public class OrderChildLoadAndUnloadAgainParam extends PositionParam { ...@@ -22,13 +22,14 @@ public class OrderChildLoadAndUnloadAgainParam extends PositionParam {
private String childNo; private String childNo;
@ApiModelProperty(value = "装货毛重(单位吨)", example = "2.46") @ApiModelProperty(value = "装货毛重(单位吨)", example = "2.46")
@NotNull
private BigDecimal loadRough; private BigDecimal loadRough;
@ApiModelProperty(value = "装货皮重(单位吨)", example = "1.23") @ApiModelProperty(value = "装货皮重(单位吨)", example = "1.23")
@NotNull
private BigDecimal loadTare; private BigDecimal loadTare;
@ApiModelProperty(value = "装货净重(单位吨)", example = "1.23")
private BigDecimal loadNet;
@ApiModelProperty(value = "磅单图片列表") @ApiModelProperty(value = "磅单图片列表")
@NotEmpty(message = "请上传磅单照片") @NotEmpty(message = "请上传磅单照片")
private List<String> loadImageList; private List<String> loadImageList;
......
...@@ -7,7 +7,6 @@ import lombok.Setter; ...@@ -7,7 +7,6 @@ import lombok.Setter;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.List;
...@@ -21,13 +20,14 @@ public class OrderChildLoadParam extends PositionParam { ...@@ -21,13 +20,14 @@ public class OrderChildLoadParam extends PositionParam {
private String childNo; private String childNo;
@ApiModelProperty(value = "装货毛重(单位吨)", example = "2.46") @ApiModelProperty(value = "装货毛重(单位吨)", example = "2.46")
@NotNull
private BigDecimal loadRough; private BigDecimal loadRough;
@ApiModelProperty(value = "装货皮重(单位吨)", example = "1.23") @ApiModelProperty(value = "装货皮重(单位吨)", example = "1.23")
@NotNull
private BigDecimal loadTare; private BigDecimal loadTare;
@ApiModelProperty(value = "装货净重(单位吨)", example = "1.23")
private BigDecimal loadNet;
@ApiModelProperty(value = "磅单图片列表") @ApiModelProperty(value = "磅单图片列表")
@NotEmpty(message = "请上传磅单照片") @NotEmpty(message = "请上传磅单照片")
private List<String> loadImageList; private List<String> loadImageList;
......
...@@ -25,6 +25,9 @@ public class OrderChildUnloadParam extends PositionParam { ...@@ -25,6 +25,9 @@ public class OrderChildUnloadParam extends PositionParam {
@ApiModelProperty(value = "卸货皮重(单位吨)", example = "1.23") @ApiModelProperty(value = "卸货皮重(单位吨)", example = "1.23")
private BigDecimal unloadTare; private BigDecimal unloadTare;
@ApiModelProperty(value = "卸货净重(单位吨)", example = "1.23")
private BigDecimal unloadNet;
@ApiModelProperty(value = "磅单图片列表") @ApiModelProperty(value = "磅单图片列表")
@NotEmpty(message = "请上传磅单照片") @NotEmpty(message = "请上传磅单照片")
private List<String> unloadImageList; private List<String> unloadImageList;
......
package com.clx.performance.vo.mq.settle;
import lombok.*;
@Setter
@Getter
@ToString
@NoArgsConstructor
public class SettlementDriverSettleMqParam {
private String childNo; //运单编号
}
package com.clx.performance.vo.mq.settle;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Setter
@Getter
@ToString
@NoArgsConstructor
public class SettlementOrderChildRiskAddMqParam {
private Integer id; //id
}
...@@ -87,7 +87,7 @@ public class RabbitSettlementConfig { ...@@ -87,7 +87,7 @@ public class RabbitSettlementConfig {
} }
/** /**
* 结算 * 货主结算
*/ */
@Bean @Bean
public Queue settlementSettleQueue() { public Queue settlementSettleQueue() {
...@@ -98,6 +98,20 @@ public class RabbitSettlementConfig { ...@@ -98,6 +98,20 @@ public class RabbitSettlementConfig {
return BindingBuilder.bind(settlementSettleQueue()).to(settlementDefaultExchange()) return BindingBuilder.bind(settlementSettleQueue()).to(settlementDefaultExchange())
.with(RabbitKeySettlementConstants.SETTLEMENT_SETTLE_ROUTING_KEY); .with(RabbitKeySettlementConstants.SETTLEMENT_SETTLE_ROUTING_KEY);
} }
/**
* 车主结算
*/
@Bean
public Queue settlementDriverSettlementQueue() {
return new Queue(RabbitKeySettlementConstants.SETTLEMENT_DRIVER_SETTLE_QUEUE);
}
@Bean
public Binding settlementDriverSettlementQueueBinding() {
return BindingBuilder.bind(settlementDriverSettlementQueue()).to(settlementDefaultExchange())
.with(RabbitKeySettlementConstants.SETTLEMENT_DRIVER_SETTLE_ROUTING_KEY);
}
/** /**
* 支付状态 * 支付状态
*/ */
...@@ -123,6 +137,18 @@ public class RabbitSettlementConfig { ...@@ -123,6 +137,18 @@ public class RabbitSettlementConfig {
.with(RabbitKeySettlementConstants.SETTLEMENT_INVOICE_STATUS_SYNC_ROUTING_KEY); .with(RabbitKeySettlementConstants.SETTLEMENT_INVOICE_STATUS_SYNC_ROUTING_KEY);
} }
/**
* 风控新增
*/
@Bean
public Queue settlementRiskAddQueue() {
return new Queue(RabbitKeySettlementConstants.SETTLEMENT_RISK_ADD_QUEUE);
}
@Bean
public Binding settlementRiskAddQueueBinding() {
return BindingBuilder.bind(settlementRiskAddQueue()).to(settlementDefaultExchange())
.with(RabbitKeySettlementConstants.SETTLEMENT_RISK_ADD_ROUTING_KEY);
}
/** /**
* 风控处理 * 风控处理
*/ */
......
...@@ -52,10 +52,17 @@ public class RabbitKeySettlementConstants { ...@@ -52,10 +52,17 @@ public class RabbitKeySettlementConstants {
public static final String SETTLEMENT_INVOICE_TYPE_SYNC_ROUTING_KEY = PREFIX +"settlementInvoiceType.sync"+QUEUE_ROUTING_KEY; public static final String SETTLEMENT_INVOICE_TYPE_SYNC_ROUTING_KEY = PREFIX +"settlementInvoiceType.sync"+QUEUE_ROUTING_KEY;
/** /**
* 结算 * 货主结算
*/ */
public static final String SETTLEMENT_SETTLE_QUEUE = PREFIX +"settlement.settle"+QUEUE; public static final String SETTLEMENT_SETTLE_QUEUE = PREFIX +"settlement.settle"+QUEUE;
public static final String SETTLEMENT_SETTLE_ROUTING_KEY = PREFIX +"settlement.settle"+QUEUE_ROUTING_KEY; public static final String SETTLEMENT_SETTLE_ROUTING_KEY = PREFIX +"settlement.settle"+QUEUE_ROUTING_KEY;
/**
* 车主结算
*/
public static final String SETTLEMENT_DRIVER_SETTLE_QUEUE = PREFIX +"settlementDriver.settle"+QUEUE;
public static final String SETTLEMENT_DRIVER_SETTLE_ROUTING_KEY = PREFIX +"settlementDriver.settle"+QUEUE_ROUTING_KEY;
/** /**
* 开票状态同步 * 开票状态同步
*/ */
...@@ -68,6 +75,12 @@ public class RabbitKeySettlementConstants { ...@@ -68,6 +75,12 @@ public class RabbitKeySettlementConstants {
public static final String SETTLEMENT_PAY_STATUS_SYNC_QUEUE = PREFIX +"settlementPayStatus.sync"+QUEUE; public static final String SETTLEMENT_PAY_STATUS_SYNC_QUEUE = PREFIX +"settlementPayStatus.sync"+QUEUE;
public static final String SETTLEMENT_PAY_STATUS_SYNC_ROUTING_KEY = PREFIX +"settlementPayStatus.sync"+QUEUE_ROUTING_KEY; public static final String SETTLEMENT_PAY_STATUS_SYNC_ROUTING_KEY = PREFIX +"settlementPayStatus.sync"+QUEUE_ROUTING_KEY;
/**
* 风控新增
*/
public static final String SETTLEMENT_RISK_ADD_QUEUE = PREFIX +"settlementRisk.add"+QUEUE;
public static final String SETTLEMENT_RISK_ADD_ROUTING_KEY = PREFIX +"settlementRisk.add"+QUEUE_ROUTING_KEY;
/** /**
* 风控处理 * 风控处理
*/ */
......
...@@ -8,8 +8,6 @@ import com.clx.performance.dao.settle.SettlementDriverDao; ...@@ -8,8 +8,6 @@ import com.clx.performance.dao.settle.SettlementDriverDao;
import com.clx.performance.enums.loan.OwnerLoanRecordEnum; import com.clx.performance.enums.loan.OwnerLoanRecordEnum;
import com.clx.performance.mapper.settle.SettlementDriverMapper; import com.clx.performance.mapper.settle.SettlementDriverMapper;
import com.clx.performance.model.settle.SettlementDriver; import com.clx.performance.model.settle.SettlementDriver;
import com.clx.performance.model.settle.SettlementOrderChildRisk;
import com.clx.performance.model.settle.SettlementOwner;
import com.clx.performance.param.pc.driver.PageCarrierSettlementDriverParam; import com.clx.performance.param.pc.driver.PageCarrierSettlementDriverParam;
import com.msl.common.base.Optional; import com.msl.common.base.Optional;
import com.msl.common.dao.impl.BaseDaoImpl; import com.msl.common.dao.impl.BaseDaoImpl;
...@@ -18,7 +16,6 @@ import org.springframework.stereotype.Repository; ...@@ -18,7 +16,6 @@ import org.springframework.stereotype.Repository;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.Set;
/** /**
* @Author: aiqinguo * @Author: aiqinguo
...@@ -38,6 +35,16 @@ public class SettlementDriverDaoImpl extends BaseDaoImpl<SettlementDriverMapper, ...@@ -38,6 +35,16 @@ public class SettlementDriverDaoImpl extends BaseDaoImpl<SettlementDriverMapper,
); );
} }
@Override
public boolean updateInvoiceCompany(SettlementDriver item) {
return update(lUdWrapper()
.eq(SettlementDriver::getId, item.getId())
.set(SettlementDriver::getInvoicingCompanyId, item.getInvoicingCompanyId())
.set(SettlementDriver::getInvoicingCompanyShorterName, item.getInvoicingCompanyShorterName())
.set(SettlementDriver::getInvoicingCompanyGroupCode, item.getInvoicingCompanyGroupCode())
);
}
@Override @Override
public Optional<SettlementDriver> findBySettlementNo(String settlementNo) { public Optional<SettlementDriver> findBySettlementNo(String settlementNo) {
return Optional.of(lQrWrapper() return Optional.of(lQrWrapper()
......
...@@ -20,6 +20,8 @@ public interface SettlementDriverDao extends BaseDao<SettlementDriverMapper, Set ...@@ -20,6 +20,8 @@ public interface SettlementDriverDao extends BaseDao<SettlementDriverMapper, Set
boolean updatePayStatus(SettlementDriver item); boolean updatePayStatus(SettlementDriver item);
boolean updateInvoiceCompany(SettlementDriver item);
Optional<SettlementDriver> findBySettlementNo(String settlementNo); Optional<SettlementDriver> findBySettlementNo(String settlementNo);
Optional<SettlementDriver> findByChildNo(String childNo); Optional<SettlementDriver> findByChildNo(String childNo);
......
...@@ -147,6 +147,10 @@ public class EventListenerComponent { ...@@ -147,6 +147,10 @@ public class EventListenerComponent {
// 发送mq 结算统计 // 发送mq 结算统计
settlementMqService.settlementStatistics(settlementDriverDetail.getChildNo()); settlementMqService.settlementStatistics(settlementDriverDetail.getChildNo());
// 发送mq 司机结算
settlementMqService.settlementDriverSettle(settlementDriverDetail.getChildNo());
} catch (Exception e) { } catch (Exception e) {
throw new ServiceSystemException(PerformanceResultEnum.GET_LOAN_RECORD, e.getMessage()); throw new ServiceSystemException(PerformanceResultEnum.GET_LOAN_RECORD, e.getMessage());
} finally { } finally {
......
package com.clx.performance.listener.settle;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.clx.performance.common.MqWrapper;
import com.clx.performance.constant.RabbitKeySettlementConstants;
import com.clx.performance.service.settle.SettlementMqHandlerService;
import com.clx.performance.vo.mq.settle.SettlementDriverSettleMqParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* @Author: 艾庆国
* @Description: 车主结算 mq
* @Date: 2023-10-20 11:45:08
* @Version: 1.0
*/
@Slf4j
@Component
public class SettlementDriverSettlementListener {
@Autowired
private SettlementMqHandlerService settlementMqHandlerService;
@RabbitListener(queues = RabbitKeySettlementConstants.SETTLEMENT_DRIVER_SETTLE_QUEUE)
public void process(Message message) {
try{
log.info("结算-车主结算, message:{}", new String(message.getBody()));
process(JSON.parseObject(new String(message.getBody()), new TypeReference<MqWrapper<SettlementDriverSettleMqParam>>(){}).getData());
}catch (Exception e){
log.info("结算-车主结算 失败",e);
}
}
private void process(SettlementDriverSettleMqParam mq){
settlementMqHandlerService.settlementDriverSettlement(mq);
}
}
package com.clx.performance.listener.settle;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.clx.performance.common.MqWrapper;
import com.clx.performance.constant.RabbitKeySettlementConstants;
import com.clx.performance.service.settle.SettlementMqHandlerService;
import com.clx.performance.vo.mq.settle.SettlementOrderChildRiskAddMqParam;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* @Author: 艾庆国
* @Description: 风控新增 mq
* @Date: 2023-10-20 11:45:08
* @Version: 1.0
*/
@Slf4j
@Component
public class SettlementRiskAddListener {
@Autowired
private SettlementMqHandlerService settlementMqHandlerService;
@RabbitListener(queues = RabbitKeySettlementConstants.SETTLEMENT_RISK_ADD_QUEUE)
public void process(Message message) {
try{
log.info("结算-风控新增, message:{}", new String(message.getBody()));
process(JSON.parseObject(new String(message.getBody()), new TypeReference<MqWrapper<SettlementOrderChildRiskAddMqParam>>(){}).getData());
}catch (Exception e){
log.info("结算-风控新增 失败,msg:{}", ExceptionUtils.getStackTrace(e));
}
}
private void process(SettlementOrderChildRiskAddMqParam mq){
settlementMqHandlerService.riskAdd(mq);
}
}
...@@ -14,7 +14,7 @@ import org.springframework.stereotype.Component; ...@@ -14,7 +14,7 @@ import org.springframework.stereotype.Component;
/** /**
* @Author: 艾庆国 * @Author: 艾庆国
* @Description: 结算 mq * @Description: 货主结算 mq
* @Date: 2023-10-20 11:45:08 * @Date: 2023-10-20 11:45:08
* @Version: 1.0 * @Version: 1.0
*/ */
...@@ -28,10 +28,10 @@ public class SettlementSettleListener { ...@@ -28,10 +28,10 @@ public class SettlementSettleListener {
@RabbitListener(queues = RabbitKeySettlementConstants.SETTLEMENT_SETTLE_QUEUE) @RabbitListener(queues = RabbitKeySettlementConstants.SETTLEMENT_SETTLE_QUEUE)
public void process(Message message) { public void process(Message message) {
try{ try{
log.info("结算-结算, message:{}", new String(message.getBody())); log.info("结算-货主结算, message:{}", new String(message.getBody()));
process(JSON.parseObject(new String(message.getBody()), new TypeReference<MqWrapper<SettlementSettleMqParam>>(){}).getData()); process(JSON.parseObject(new String(message.getBody()), new TypeReference<MqWrapper<SettlementSettleMqParam>>(){}).getData());
}catch (Exception e){ }catch (Exception e){
log.info("结算-结算 失败",e); log.info("结算-货主结算 失败",e);
} }
} }
......
...@@ -872,14 +872,24 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -872,14 +872,24 @@ public class OrderChildServiceImpl implements OrderChildService {
public void updateLoad(OrderChildLoadParam param) { public void updateLoad(OrderChildLoadParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo(); UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
Long userNo = loginUserInfo.getUserNo(); Long userNo = loginUserInfo.getUserNo();
BigDecimal loadNet = param.getLoadRough().subtract(param.getLoadTare());
String childNo = param.getChildNo(); String childNo = param.getChildNo();
BigDecimal loadNet;
if (param.getLoadNet() == null) {
loadNet = param.getLoadRough().subtract(param.getLoadTare());
if (loadNet.compareTo(new BigDecimal(99)) > 0) { if (loadNet.compareTo(new BigDecimal(99)) > 0) {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_LOAD_NET_ERROR); throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_LOAD_NET_ERROR);
} }
if (param.getLoadTare().compareTo(param.getLoadRough()) > 0) { if (param.getLoadTare().compareTo(param.getLoadRough()) > 0) {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_TRACE_GT_ROUGH); throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_TRACE_GT_ROUGH);
} }
}else {
loadNet = param.getLoadNet();
param.setLoadRough(null);
param.setLoadTare(null);
}
OrderChild orderChild = orderChildDao.getByChildNo(childNo).orElseThrow( OrderChild orderChild = orderChildDao.getByChildNo(childNo).orElseThrow(
PerformanceResultEnum.ORDER_CHILD_NO_FOUND); PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
if (Objects.equals(orderChild.getDriverUserNo(), userNo)) { if (Objects.equals(orderChild.getDriverUserNo(), userNo)) {
...@@ -918,8 +928,7 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -918,8 +928,7 @@ public class OrderChildServiceImpl implements OrderChildService {
if (orderChild.getLoadTime() == null && if (orderChild.getLoadTime() == null &&
Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.ARRIVE_SEND.getCode())) { Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.ARRIVE_SEND.getCode())) {
//计算司机保证金 //计算司机保证金
BigDecimal net = param.getLoadRough().subtract(param.getLoadTare()); PaymentDTO paymentDTO = getPaymentDTO(loadNet, orderChild);
PaymentDTO paymentDTO = getPaymentDTO(net, orderChild);
if (Objects.nonNull(paymentDTO.getPlatformServiceFeeNew()) && if (Objects.nonNull(paymentDTO.getPlatformServiceFeeNew()) &&
paymentDTO.getPlatformServiceFeeNew().compareTo(BigDecimal.ZERO) != 0) { paymentDTO.getPlatformServiceFeeNew().compareTo(BigDecimal.ZERO) != 0) {
orderChild.setPlatformServiceFee(paymentDTO.getPlatformServiceFeeNew()); orderChild.setPlatformServiceFee(paymentDTO.getPlatformServiceFeeNew());
...@@ -936,8 +945,7 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -936,8 +945,7 @@ public class OrderChildServiceImpl implements OrderChildService {
} }
} else { } else {
//计算司机保证金 //计算司机保证金
BigDecimal net =param.getLoadRough().subtract(param.getLoadTare()); PaymentDTO paymentDTO = getPaymentDTO(loadNet, orderChild);
PaymentDTO paymentDTO = getPaymentDTO(net, orderChild);
if (Objects.nonNull(paymentDTO.getPlatformServiceFeeNew()) && if (Objects.nonNull(paymentDTO.getPlatformServiceFeeNew()) &&
paymentDTO.getPlatformServiceFeeNew().compareTo(BigDecimal.ZERO) != 0) { paymentDTO.getPlatformServiceFeeNew().compareTo(BigDecimal.ZERO) != 0) {
orderChild.setPlatformServiceFee(paymentDTO.getPlatformServiceFeeNew()); orderChild.setPlatformServiceFee(paymentDTO.getPlatformServiceFeeNew());
...@@ -996,12 +1004,11 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -996,12 +1004,11 @@ public class OrderChildServiceImpl implements OrderChildService {
private void updateLoadFirst(OrderChildLoadParam param, OrderChild orderChild, OrderGoods orderGoods) { private void updateLoadFirst(OrderChildLoadParam param, OrderChild orderChild, OrderGoods orderGoods) {
String childNo = param.getChildNo(); String childNo = param.getChildNo();
BigDecimal loadNet = param.getLoadRough().subtract(param.getLoadTare()); BigDecimal loadNet;
if (loadNet.compareTo(new BigDecimal(99)) > 0) { if (param.getLoadNet() == null) {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_LOAD_NET_ERROR); loadNet = param.getLoadRough().subtract(param.getLoadTare());
} }else {
if (param.getLoadTare().compareTo(param.getLoadRough()) > 0) { loadNet = param.getLoadNet();
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_TRACE_GT_ROUGH);
} }
// // 装车时间验证 // // 装车时间验证
...@@ -1049,12 +1056,11 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -1049,12 +1056,11 @@ public class OrderChildServiceImpl implements OrderChildService {
private void updateReload(OrderChildLoadParam param, OrderChild orderChild, OrderGoods orderGoods) { private void updateReload(OrderChildLoadParam param, OrderChild orderChild, OrderGoods orderGoods) {
String childNo = param.getChildNo(); String childNo = param.getChildNo();
log.info("装车毛重:{}, 装车皮重:{}", param.getLoadRough(), param.getLoadTare()); log.info("装车毛重:{}, 装车皮重:{}", param.getLoadRough(), param.getLoadTare());
BigDecimal loadNet = param.getLoadRough().subtract(param.getLoadTare()); BigDecimal loadNet;
if (loadNet.compareTo(new BigDecimal(99)) > 0) { if (param.getLoadNet() == null) {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_LOAD_NET_ERROR); loadNet = param.getLoadRough().subtract(param.getLoadTare());
} }else {
if (param.getLoadTare().compareTo(param.getLoadRough()) > 0) { loadNet = param.getLoadNet();
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_TRACE_GT_ROUGH);
} }
List<OrderChildImage> imageList = new ArrayList<>(); List<OrderChildImage> imageList = new ArrayList<>();
...@@ -1109,6 +1115,22 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -1109,6 +1115,22 @@ public class OrderChildServiceImpl implements OrderChildService {
// throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_UNLOAD_WEIGHT_ERROR); // throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_UNLOAD_WEIGHT_ERROR);
// } // }
BigDecimal unLoadNet;
if (param.getUnloadNet() == null) {
unLoadNet = param.getUnloadRough().subtract(param.getUnloadTare());
if (unLoadNet.compareTo(new BigDecimal(99)) > 0) {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_LOAD_NET_ERROR);
}
if (param.getUnloadTare().compareTo(param.getUnloadRough()) > 0) {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_TRACE_GT_ROUGH);
}
}
else {
unLoadNet = param.getUnloadNet();
param.setUnloadRough(null);
param.setUnloadTare(null);
}
//交货时间不可早于到达目的地时间 //交货时间不可早于到达目的地时间
LocalDateTime unloadTime = StringUtils.isBlank(param.getUnloadTime()) ? null : covertStringToDefaultLocalDateTime(param.getUnloadTime()); LocalDateTime unloadTime = StringUtils.isBlank(param.getUnloadTime()) ? null : covertStringToDefaultLocalDateTime(param.getUnloadTime());
if (unloadTime!=null && unloadTime.isBefore(orderChild.getArriveReceiveTime())) { if (unloadTime!=null && unloadTime.isBefore(orderChild.getArriveReceiveTime())) {
...@@ -1185,12 +1207,13 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -1185,12 +1207,13 @@ public class OrderChildServiceImpl implements OrderChildService {
private void updateUnloadFirst(OrderChildUnloadParam param, OrderChild orderChild) { private void updateUnloadFirst(OrderChildUnloadParam param, OrderChild orderChild) {
String childNo = param.getChildNo(); String childNo = param.getChildNo();
BigDecimal loadNet = param.getUnloadRough().subtract(param.getUnloadTare());
if (loadNet.compareTo(new BigDecimal(99)) > 0) { BigDecimal unLoadNet;
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_LOAD_NET_ERROR); if (param.getUnloadNet() == null) {
unLoadNet = param.getUnloadRough().subtract(param.getUnloadTare());
} }
if (param.getUnloadTare().compareTo(param.getUnloadRough()) > 0) { else {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_TRACE_GT_ROUGH); unLoadNet = param.getUnloadNet();
} }
// // 装车时间验证 // // 装车时间验证
...@@ -1216,7 +1239,7 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -1216,7 +1239,7 @@ public class OrderChildServiceImpl implements OrderChildService {
orderChild.setUnloadRough(param.getUnloadRough()); orderChild.setUnloadRough(param.getUnloadRough());
orderChild.setUnloadTare(param.getUnloadTare()); orderChild.setUnloadTare(param.getUnloadTare());
orderChild.setUnloadNet(loadNet); orderChild.setUnloadNet(unLoadNet);
orderChild.setUnloadTime(StringUtils.isBlank(param.getUnloadTime())?LocalDateTime.now():covertStringToDefaultLocalDateTime(param.getUnloadTime())); orderChild.setUnloadTime(StringUtils.isBlank(param.getUnloadTime())?LocalDateTime.now():covertStringToDefaultLocalDateTime(param.getUnloadTime()));
orderChild.setWeight(orderChildWeightCalc(orderChild)); orderChild.setWeight(orderChildWeightCalc(orderChild));
orderChild.setStatus(OrderChildEnum.Status.UNLOAD.getCode()); orderChild.setStatus(OrderChildEnum.Status.UNLOAD.getCode());
...@@ -1255,13 +1278,14 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -1255,13 +1278,14 @@ public class OrderChildServiceImpl implements OrderChildService {
private void updateReUnload(OrderChildUnloadParam param, OrderChild orderChild) { private void updateReUnload(OrderChildUnloadParam param, OrderChild orderChild) {
String childNo = param.getChildNo(); String childNo = param.getChildNo();
BigDecimal loadNet = orderChild.getUnloadRough().subtract(orderChild.getUnloadTare()); BigDecimal unLoadNet;
if (loadNet.compareTo(new BigDecimal(99)) > 0) { if (param.getUnloadNet() == null) {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_LOAD_NET_ERROR); unLoadNet = param.getUnloadRough().subtract(param.getUnloadTare());
} }
if (param.getUnloadTare().compareTo(param.getUnloadRough()) > 0) { else {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_TRACE_GT_ROUGH); unLoadNet = param.getUnloadNet();
} }
// 审核中 // 审核中
if (Objects.equals(orderChild.getPoundStatus(), OrderChildPoundAuditEnum.Status.AUDIT.getCode())) { if (Objects.equals(orderChild.getPoundStatus(), OrderChildPoundAuditEnum.Status.AUDIT.getCode())) {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_POUND_AUDIT); throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_POUND_AUDIT);
...@@ -1278,7 +1302,7 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -1278,7 +1302,7 @@ public class OrderChildServiceImpl implements OrderChildService {
orderChild.setUnloadRough(param.getUnloadRough()); orderChild.setUnloadRough(param.getUnloadRough());
orderChild.setUnloadTare(param.getUnloadTare()); orderChild.setUnloadTare(param.getUnloadTare());
orderChild.setUnloadNet(loadNet); orderChild.setUnloadNet(unLoadNet);
orderChild.setUnloadTime(StringUtils.isBlank(param.getUnloadTime())?LocalDateTime.now():covertStringToDefaultLocalDateTime(param.getUnloadTime())); orderChild.setUnloadTime(StringUtils.isBlank(param.getUnloadTime())?LocalDateTime.now():covertStringToDefaultLocalDateTime(param.getUnloadTime()));
orderChild.setWeight(orderChildWeightCalc(orderChild)); orderChild.setWeight(orderChildWeightCalc(orderChild));
orderChild.setPoundStatus(OrderChildPoundAuditEnum.Status.AUDIT.getCode()); orderChild.setPoundStatus(OrderChildPoundAuditEnum.Status.AUDIT.getCode());
...@@ -1305,21 +1329,38 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -1305,21 +1329,38 @@ public class OrderChildServiceImpl implements OrderChildService {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo(); UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
Long userNo = loginUserInfo.getUserNo(); Long userNo = loginUserInfo.getUserNo();
String childNo = param.getChildNo(); String childNo = param.getChildNo();
BigDecimal loadNet = param.getLoadRough().subtract(param.getLoadTare());
BigDecimal loadNet;
if (param.getLoadNet() == null) {
loadNet = param.getLoadRough().subtract(param.getLoadTare());
if (loadNet.compareTo(new BigDecimal(99)) > 0) { if (loadNet.compareTo(new BigDecimal(99)) > 0) {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_LOAD_NET_ERROR); throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_LOAD_NET_ERROR);
} }
if (param.getLoadTare().compareTo(param.getLoadRough()) > 0) { if (param.getLoadTare().compareTo(param.getLoadRough()) > 0) {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_TRACE_GT_ROUGH); throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_TRACE_GT_ROUGH);
} }
BigDecimal unLoadNet = param.getUnloadRough().subtract(param.getUnloadTare()); }else {
loadNet = param.getLoadNet();
param.setLoadRough(null);
param.setLoadTare(null);
}
BigDecimal unLoadNet;
if (param.getUnloadNet() == null) {
unLoadNet = param.getUnloadRough().subtract(param.getUnloadTare());
if (unLoadNet.compareTo(new BigDecimal(99)) > 0) { if (unLoadNet.compareTo(new BigDecimal(99)) > 0) {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_LOAD_NET_ERROR); throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_LOAD_NET_ERROR);
} }
if (param.getUnloadTare().compareTo(param.getUnloadRough()) > 0) { if (param.getUnloadTare().compareTo(param.getUnloadRough()) > 0) {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_TRACE_GT_ROUGH); throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_TRACE_GT_ROUGH);
} }
}
else {
unLoadNet = param.getUnloadNet();
param.setUnloadRough(null);
param.setUnloadTare(null);
}
OrderChild orderChild = orderChildDao.getByChildNo(childNo).orElseThrow( OrderChild orderChild = orderChildDao.getByChildNo(childNo).orElseThrow(
PerformanceResultEnum.ORDER_CHILD_NO_FOUND); PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
...@@ -1416,7 +1457,7 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -1416,7 +1457,7 @@ public class OrderChildServiceImpl implements OrderChildService {
audit.setLoadTare(orderChild.getLoadTare()); audit.setLoadTare(orderChild.getLoadTare());
//计算司机保证金 //计算司机保证金
BigDecimal net =param.getLoadRough().subtract(param.getLoadTare()); BigDecimal net = loadNet;
PaymentDTO paymentDTO = getPaymentDTO(net, orderChild); PaymentDTO paymentDTO = getPaymentDTO(net, orderChild);
if (Objects.nonNull(paymentDTO.getPlatformServiceFeeNew()) && if (Objects.nonNull(paymentDTO.getPlatformServiceFeeNew()) &&
paymentDTO.getPlatformServiceFeeNew().compareTo(BigDecimal.ZERO) != 0) { paymentDTO.getPlatformServiceFeeNew().compareTo(BigDecimal.ZERO) != 0) {
......
...@@ -18,6 +18,7 @@ import com.clx.performance.model.settle.SettlementOwnerDetail; ...@@ -18,6 +18,7 @@ import com.clx.performance.model.settle.SettlementOwnerDetail;
import com.clx.performance.service.broker.OrderChildBrokerMqHandlerService; import com.clx.performance.service.broker.OrderChildBrokerMqHandlerService;
import com.clx.performance.service.broker.OrderChildBrokerMqService; import com.clx.performance.service.broker.OrderChildBrokerMqService;
import com.clx.performance.service.broker.OrderChildBrokerService; import com.clx.performance.service.broker.OrderChildBrokerService;
import com.clx.performance.service.settle.SettlementPostService;
import com.clx.performance.vo.mq.broker.BrokerOrderChildSyncMqParam; import com.clx.performance.vo.mq.broker.BrokerOrderChildSyncMqParam;
import com.clx.performance.vo.mq.broker.BrokerOrderChildUpdateMqParam; import com.clx.performance.vo.mq.broker.BrokerOrderChildUpdateMqParam;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -51,6 +52,9 @@ public class OrderChildBrokerMqHandlerServiceImpl implements OrderChildBrokerMqH ...@@ -51,6 +52,9 @@ public class OrderChildBrokerMqHandlerServiceImpl implements OrderChildBrokerMqH
@Autowired @Autowired
private SettlementOrderChildRiskDao settlementOrderChildRiskDao; private SettlementOrderChildRiskDao settlementOrderChildRiskDao;
@Autowired
private SettlementPostService settlementPostService;
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public void orderChildSync(BrokerOrderChildSyncMqParam mq) { public void orderChildSync(BrokerOrderChildSyncMqParam mq) {
...@@ -77,6 +81,8 @@ public class OrderChildBrokerMqHandlerServiceImpl implements OrderChildBrokerMqH ...@@ -77,6 +81,8 @@ public class OrderChildBrokerMqHandlerServiceImpl implements OrderChildBrokerMqH
settlementOrderChildRisk.setRiskType(SettlementOrderChildRiskEnum.RiskType.SETTLE_FAIL.getCode()); settlementOrderChildRisk.setRiskType(SettlementOrderChildRiskEnum.RiskType.SETTLE_FAIL.getCode());
settlementOrderChildRisk.setRiskRemark("同步无车承运异常"); settlementOrderChildRisk.setRiskRemark("同步无车承运异常");
settlementOrderChildRiskDao.saveEntity(settlementOrderChildRisk); settlementOrderChildRiskDao.saveEntity(settlementOrderChildRisk);
settlementPostService.riskAdd(settlementOrderChildRisk.getId());
} }
} }
public void doOrderChildSync(BrokerOrderChildSyncMqParam mq){ public void doOrderChildSync(BrokerOrderChildSyncMqParam mq){
......
...@@ -40,10 +40,7 @@ import com.clx.performance.utils.LocalDateTimeUtils; ...@@ -40,10 +40,7 @@ import com.clx.performance.utils.LocalDateTimeUtils;
import com.clx.performance.utils.RedisUtil; import com.clx.performance.utils.RedisUtil;
import com.clx.performance.utils.spring.ApplicationContextUtils; import com.clx.performance.utils.spring.ApplicationContextUtils;
import com.clx.performance.vo.mq.*; import com.clx.performance.vo.mq.*;
import com.clx.performance.vo.mq.settle.SettlementInvoiceStatusUpdateMqParam; import com.clx.performance.vo.mq.settle.*;
import com.clx.performance.vo.mq.settle.SettlementOrderChildRiskProcessMqParam;
import com.clx.performance.vo.mq.settle.SettlementOwnerDetialInvoiceCompanyUpdateMqParam;
import com.clx.performance.vo.mq.settle.SettlementPlatformAutoConfirmMqParam;
import com.clx.performance.vo.pc.broker.TransportVO; import com.clx.performance.vo.pc.broker.TransportVO;
import com.clx.user.vo.feign.DriverInfoFeignVo; import com.clx.user.vo.feign.DriverInfoFeignVo;
import com.clx.user.vo.feign.OwnerInfoFeignVO; import com.clx.user.vo.feign.OwnerInfoFeignVO;
...@@ -171,17 +168,17 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic ...@@ -171,17 +168,17 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
SettlementOwnerDetail settlementOwnerDetail = settlementOwnerDetailDao SettlementOwnerDetail settlementOwnerDetail = settlementOwnerDetailDao
.getByChildNo(mq.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND); .getByChildNo(mq.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
SettlementDriverDetail settlementDriverDetail = settlementDriverDetailDao
.getByChildNo(mq.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
// 拆单 // 拆单
if (Objects.equals(mq.getType(), SettlementStatisticsMqParam.Type.SEPARATE.getCode())){ if (Objects.equals(mq.getType(), SettlementStatisticsMqParam.Type.SEPARATE.getCode())){
settlementStatisticsSeparate(settlementOwnerDetail, settlementDriverDetail); settlementStatisticsSeparate(settlementOwnerDetail);
// 发送mq (运单更新)
orderChildBrokerMqService.orderChildUpdate(settlementOwnerDetail.getChildNo());
return; return;
} }
log.info("当前车主计费信息{},司机计费信息:{}", JSONUtil.parse(settlementOwnerDetail), JSONUtil.parse(settlementDriverDetail));
if (settlementOwnerDetail.getInvoiceFreight() == null) { if (settlementOwnerDetail.getInvoiceFreight() == null) {
log.info("当前车主计费信息开票金额为空,需要重新处理计算开票金额"); log.info("当前车主计费信息开票金额为空,需要重新处理计算开票金额");
settlementOwnerDetail.setInvoiceFreight(invoiceFreightCalc(orderChild.getSettlementWay(), orderGoods.getInvoiceServiceFeeRate(), settlementOwnerDetail)); settlementOwnerDetail.setInvoiceFreight(invoiceFreightCalc(orderChild.getSettlementWay(), orderGoods.getInvoiceServiceFeeRate(), settlementOwnerDetail));
...@@ -242,8 +239,69 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic ...@@ -242,8 +239,69 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
} }
} }
//生成车主结算单 // 更新结算单
settlementDriverSave(settlementDriverDetail,settlementNo); settlementOwnerDetail.setSettlementNo(settlementNo);
settlementOwnerDetailDao.updateSettlementNo(settlementOwnerDetail);
// 发送mq (运单更新)
orderChildBrokerMqService.orderChildUpdate(settlementOwnerDetail.getChildNo());
}
@Override
@Transactional(rollbackFor = Exception.class)
public void settlementDriverSettlement(SettlementDriverSettleMqParam mq) {
OrderChild orderChild = orderChildDao
.getByChildNo(mq.getChildNo()).orElseThrow(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
OrderGoods orderGoods = orderGoodsDao
.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
SettlementDriverDetail settlementDriverDetail = settlementDriverDetailDao
.getByChildNo(mq.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
SettlementDriver settlementDriver = settlementDriverDao.findByChildNo(settlementDriverDetail.getChildNo()).orNull();
if (settlementDriver != null) {return;}
String settlementNo = settlementNoGenerate();
settlementDriver = new SettlementDriver();
settlementDriver.setDriverUserNo(settlementDriverDetail.getDriverUserNo());
settlementDriver.setDriverName(settlementDriverDetail.getDriverName());
settlementDriver.setSettlementNo(settlementNo);
settlementDriver.setChildNo(settlementDriverDetail.getChildNo());
settlementDriver.setOrderGoodsNo(settlementDriverDetail.getOrderGoodsNo());
settlementDriver.setOrderNo(settlementDriverDetail.getOrderNo());
settlementDriver.setGoodsId(settlementDriverDetail.getGoodsId());
settlementDriver.setGoodsName(settlementDriverDetail.getGoodsName());
settlementDriver.setTruckNo(settlementDriverDetail.getTruckNo());
settlementDriver.setFreightPrice(settlementDriverDetail.getFreightPrice());
settlementDriver.setWeight(settlementDriverDetail.getWeight());
settlementDriver.setFreight(settlementDriverDetail.getFreight());
settlementDriver.setLossPrice(settlementDriverDetail.getLossPrice());
settlementDriver.setLossWeight(settlementDriverDetail.getLossWeight());
settlementDriver.setLoanFlag(settlementDriverDetail.getLoanFlag());
settlementDriver.setLossFreight(settlementDriverDetail.getLossFreight());
settlementDriver.setPrepayFreightFlag(settlementDriverDetail.getPrepayFreightFlag());
settlementDriver.setSettlementFreight(settlementDriverDetail.getSettlementFreight());
settlementDriver.setInvoiceType(settlementDriverDetail.getInvoiceType());
settlementDriver.setSettlementPlatform(settlementDriverDetail.getInvoiceType() == 1 ?
String.valueOf(SettlementPlatformEnum.Platform.WY.getCode()):
String.valueOf(SettlementPlatformEnum.Platform.MSL.getCode()));
settlementDriver.setStatus(SettlementDriverEnum.Status.WAIT_SETTLEMENT.getCode());
settlementDriver.setInvoicingCompanyId(settlementDriverDetail.getInvoicingCompanyId());
settlementDriver.setInvoicingCompanyShorterName(settlementDriverDetail.getInvoicingCompanyShorterName());
settlementDriver.setInvoicingCompanyGroupCode(settlementDriverDetail.getInvoicingCompanyGroupCode());
settlementDriver.setPlatformServiceFeeRate(settlementDriverDetail.getPlatformServiceFeeRate());
settlementDriver.setPlatformServiceFee(settlementDriverDetail.getPlatformServiceFee());
settlementDriverDao.saveEntity(settlementDriver);
settlementDriverDetail.setSettlementNo(settlementDriver.getSettlementNo());
settlementDriverDetailDao.updateSettlementNo(settlementDriverDetail);
//车主结算单自动支付 //车主结算单自动支付
log.info(" 运单号 {}, 是否是普通单 {} ",settlementDriverDetail.getChildNo(),settlementDriverDetail.getInvoiceType()); log.info(" 运单号 {}, 是否是普通单 {} ",settlementDriverDetail.getChildNo(),settlementDriverDetail.getInvoiceType());
if (!settlementDriverDetail.getInvoiceType().equals(SettlementOwnerEnum.InvoiceType.ONLINE.getCode())) { if (!settlementDriverDetail.getInvoiceType().equals(SettlementOwnerEnum.InvoiceType.ONLINE.getCode())) {
...@@ -264,12 +322,6 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic ...@@ -264,12 +322,6 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
} }
} }
// 更新结算单
settlementOwnerDetail.setSettlementNo(settlementNo);
settlementDriverDetail.setSettlementNo(settlementNo);
settlementOwnerDetailDao.updateSettlementNo(settlementOwnerDetail);
settlementDriverDetailDao.updateSettlementNo(settlementDriverDetail);
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
...@@ -342,6 +394,8 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic ...@@ -342,6 +394,8 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementOrderChildRisk.setRiskRemark(result.getSyncMsg()); settlementOrderChildRisk.setRiskRemark(result.getSyncMsg());
settlementOrderChildRiskDao.saveEntity(settlementOrderChildRisk); settlementOrderChildRiskDao.saveEntity(settlementOrderChildRisk);
settlementPostService.riskAdd(settlementOrderChildRisk.getId());
return; return;
} }
else { else {
...@@ -406,6 +460,8 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic ...@@ -406,6 +460,8 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementOrderChildRisk.setRiskRemark(result.getSyncMsg()); settlementOrderChildRisk.setRiskRemark(result.getSyncMsg());
settlementOrderChildRiskDao.saveEntity(settlementOrderChildRisk); settlementOrderChildRiskDao.saveEntity(settlementOrderChildRisk);
settlementPostService.riskAdd(settlementOrderChildRisk.getId());
return; return;
} }
...@@ -481,6 +537,8 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic ...@@ -481,6 +537,8 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementOrderChildRisk.setRiskRemark(result.getSyncMsg()); settlementOrderChildRisk.setRiskRemark(result.getSyncMsg());
settlementOrderChildRiskDao.saveEntity(settlementOrderChildRisk); settlementOrderChildRiskDao.saveEntity(settlementOrderChildRisk);
settlementPostService.riskAdd(settlementOrderChildRisk.getId());
return; return;
} }
...@@ -519,6 +577,8 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic ...@@ -519,6 +577,8 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementOrderChildRisk.setRiskType(SettlementOrderChildRiskEnum.RiskType.SETTLE_FAIL.getCode()); settlementOrderChildRisk.setRiskType(SettlementOrderChildRiskEnum.RiskType.SETTLE_FAIL.getCode());
settlementOrderChildRisk.setRiskRemark(result.getSettleMsg()); settlementOrderChildRisk.setRiskRemark(result.getSettleMsg());
settlementOrderChildRiskDao.saveEntity(settlementOrderChildRisk); settlementOrderChildRiskDao.saveEntity(settlementOrderChildRisk);
settlementPostService.riskAdd(settlementOrderChildRisk.getId());
} }
} }
...@@ -857,7 +917,7 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic ...@@ -857,7 +917,7 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
/** /**
* 月结更新 * 月结更新
*/ */
private void settlementStatisticsSeparate(SettlementOwnerDetail settlementOwnerDetail, SettlementDriverDetail settlementDriverDetail){ private void settlementStatisticsSeparate(SettlementOwnerDetail settlementOwnerDetail){
String settlementNo = settlementOwnerDetail.getSettlementNo(); String settlementNo = settlementOwnerDetail.getSettlementNo();
SettlementOwner settlementOwner = settlementOwnerDao SettlementOwner settlementOwner = settlementOwnerDao
.findBySettlementNo(settlementNo).orElseThrow(ResultEnum.DATA_NOT_FIND); .findBySettlementNo(settlementNo).orElseThrow(ResultEnum.DATA_NOT_FIND);
...@@ -899,10 +959,8 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic ...@@ -899,10 +959,8 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementOwnerDetail.setSettlementNo(null); settlementOwnerDetail.setSettlementNo(null);
settlementOwnerDetail.setSeparateRemark("系统自动拆单(原结算单号"+settlementNo+")"); settlementOwnerDetail.setSeparateRemark("系统自动拆单(原结算单号"+settlementNo+")");
settlementDriverDetail.setSettlementNo(null);
settlementOwnerDetailDao.updateClearSettlementNo(settlementOwnerDetail); settlementOwnerDetailDao.updateClearSettlementNo(settlementOwnerDetail);
settlementDriverDetailDao.updateClearSettlementNo(settlementDriverDetail);
} }
/** /**
...@@ -913,6 +971,11 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic ...@@ -913,6 +971,11 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
return uniqueOrderNumService.getUniqueOrderNum(com.msl.common.utils.LocalDateTimeUtils.convertLocalDateTimeToString(LocalDateTime.now(), com.msl.common.utils.LocalDateTimeUtils.DATE_DAY)); return uniqueOrderNumService.getUniqueOrderNum(com.msl.common.utils.LocalDateTimeUtils.convertLocalDateTimeToString(LocalDateTime.now(), com.msl.common.utils.LocalDateTimeUtils.DATE_DAY));
} }
@Override
public void riskAdd(SettlementOrderChildRiskAddMqParam mq) {
}
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public void riskProcess(SettlementOrderChildRiskProcessMqParam mq) { public void riskProcess(SettlementOrderChildRiskProcessMqParam mq) {
...@@ -928,6 +991,9 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic ...@@ -928,6 +991,9 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementMqService.settlementStatistics(childNo, SettlementStatisticsMqParam.Type.SEPARATE.getCode()); settlementMqService.settlementStatistics(childNo, SettlementStatisticsMqParam.Type.SEPARATE.getCode());
} }
// 发送mq (车主结算)
settlementMqService.settlementDriverSettle(childNo);
// 发送mq (运单更新) // 发送mq (运单更新)
orderChildBrokerMqService.orderChildUpdate(childNo); orderChildBrokerMqService.orderChildUpdate(childNo);
} }
...@@ -953,7 +1019,8 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic ...@@ -953,7 +1019,8 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
SettlementDriverDetail settlementDriverDetail = settlementDriverDetailDao SettlementDriverDetail settlementDriverDetail = settlementDriverDetailDao
.getByChildNo(childNo).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND); .getByChildNo(childNo).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
SettlementDriver settlementDriver = settlementDriverDao
.getByChildNo(childNo).orNull();
OrderChild orderChild = orderChildDao OrderChild orderChild = orderChildDao
.getByChildNo(childNo).orElseThrow(PerformanceResultEnum.ORDER_CHILD_NO_FOUND); .getByChildNo(childNo).orElseThrow(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
...@@ -994,6 +1061,13 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic ...@@ -994,6 +1061,13 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementOwnerDetailDao.updateInvoiceType(settlementOwnerDetail); settlementOwnerDetailDao.updateInvoiceType(settlementOwnerDetail);
settlementDriverDetailDao.updateInvoiceTypeAndPrepayFreightFlag(settlementDriverDetail); settlementDriverDetailDao.updateInvoiceTypeAndPrepayFreightFlag(settlementDriverDetail);
if (settlementDriver != null) {
settlementDriver.setInvoicingCompanyId(settlementOwnerDetail.getInvoicingCompanyId());
settlementDriver.setInvoicingCompanyShorterName(settlementOwnerDetail.getInvoicingCompanyShorterName());
settlementDriver.setInvoicingCompanyGroupCode(settlementOwnerDetail.getInvoicingCompanyGroupCode());
settlementDriverDao.updateInvoiceCompany(settlementDriver);
}
if (Objects.equals(settlementOwnerDetail.getReportFlag(), com.clx.order.enums.OrderEnum.ReportFlag.NO.getCode())){ if (Objects.equals(settlementOwnerDetail.getReportFlag(), com.clx.order.enums.OrderEnum.ReportFlag.NO.getCode())){
// 网运单转普通单 // 网运单转普通单
orderChildSyncTransportListener.extracted(orderChild, settlementOwnerDetail, settlementDriverDetail, settlementOwnerDetail.getInvoiceType(), null); orderChildSyncTransportListener.extracted(orderChild, settlementOwnerDetail, settlementDriverDetail, settlementOwnerDetail.getInvoiceType(), null);
......
...@@ -6,10 +6,7 @@ import com.clx.performance.common.MqWrapper; ...@@ -6,10 +6,7 @@ import com.clx.performance.common.MqWrapper;
import com.clx.performance.constant.RabbitKeySettlementConstants; import com.clx.performance.constant.RabbitKeySettlementConstants;
import com.clx.performance.service.settle.SettlementMqService; import com.clx.performance.service.settle.SettlementMqService;
import com.clx.performance.vo.mq.*; import com.clx.performance.vo.mq.*;
import com.clx.performance.vo.mq.settle.SettlementInvoiceStatusUpdateMqParam; import com.clx.performance.vo.mq.settle.*;
import com.clx.performance.vo.mq.settle.SettlementOrderChildRiskProcessMqParam;
import com.clx.performance.vo.mq.settle.SettlementOwnerDetialInvoiceCompanyUpdateMqParam;
import com.clx.performance.vo.mq.settle.SettlementPlatformAutoConfirmMqParam;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message; import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageBuilder; import org.springframework.amqp.core.MessageBuilder;
...@@ -60,6 +57,19 @@ public class SettlementMqServiceImpl implements SettlementMqService { ...@@ -60,6 +57,19 @@ public class SettlementMqServiceImpl implements SettlementMqService {
RabbitKeySettlementConstants.DEFAULT_DELAY_ROUTING_KEY, message); RabbitKeySettlementConstants.DEFAULT_DELAY_ROUTING_KEY, message);
} }
@Override
public void settlementDriverSettle(String childNo) {
SettlementDriverSettleMqParam mq = new SettlementDriverSettleMqParam();
mq.setChildNo(childNo);
MqDelay delay =
new MqDelay<>(RabbitKeySettlementConstants.DEFAULT_EXCHANGE,
RabbitKeySettlementConstants.SETTLEMENT_DRIVER_SETTLE_ROUTING_KEY, new MqWrapper<>(mq));
Message message = MessageBuilder.withBody(JSON.toJSONString(new MqWrapper<>(delay)).getBytes()).build();
message.getMessageProperties().setExpiration("5000");
rabbitTemplate.send(RabbitKeySettlementConstants.DEFAULT_EXCHANGE,
RabbitKeySettlementConstants.DEFAULT_DELAY_ROUTING_KEY, message);
}
@Override @Override
public void invoiceTypeSync(String childNo) { public void invoiceTypeSync(String childNo) {
...@@ -114,6 +124,18 @@ public class SettlementMqServiceImpl implements SettlementMqService { ...@@ -114,6 +124,18 @@ public class SettlementMqServiceImpl implements SettlementMqService {
RabbitKeySettlementConstants.DEFAULT_DELAY_ROUTING_KEY, message); RabbitKeySettlementConstants.DEFAULT_DELAY_ROUTING_KEY, message);
} }
@Override
public void riskAdd(Integer id) {
SettlementOrderChildRiskAddMqParam mq = new SettlementOrderChildRiskAddMqParam();
mq.setId(id);
MqDelay delay = new MqDelay<>(RabbitKeySettlementConstants.DEFAULT_EXCHANGE,
RabbitKeySettlementConstants.SETTLEMENT_RISK_ADD_ROUTING_KEY, new MqWrapper<>(mq));
Message message = MessageBuilder.withBody(JSON.toJSONString(new MqWrapper<>(delay)).getBytes()).build();
message.getMessageProperties().setExpiration("5000");
rabbitTemplate.send(RabbitKeySettlementConstants.DEFAULT_EXCHANGE,
RabbitKeySettlementConstants.DEFAULT_DELAY_ROUTING_KEY, message);
}
@Override @Override
public void riskProcess(Integer id) { public void riskProcess(Integer id) {
SettlementOrderChildRiskProcessMqParam mq = new SettlementOrderChildRiskProcessMqParam(); SettlementOrderChildRiskProcessMqParam mq = new SettlementOrderChildRiskProcessMqParam();
......
...@@ -97,11 +97,6 @@ public class SettlementOrderChildRiskServiceImpl implements SettlementOrderChild ...@@ -97,11 +97,6 @@ public class SettlementOrderChildRiskServiceImpl implements SettlementOrderChild
settlementDriverDetailDao.updateConvertOrdinary(settlementDriverDetail); settlementDriverDetailDao.updateConvertOrdinary(settlementDriverDetail);
settlementOrderChildRisk.setInvoiceType(settlementOwnerDetail.getInvoiceType()); settlementOrderChildRisk.setInvoiceType(settlementOwnerDetail.getInvoiceType());
if (settlementDriver != null) {
// 删除结算单
settlementDriverDao.deleteByKey(settlementDriver.getId());
}
} }
else { else {
......
...@@ -60,4 +60,11 @@ public class SettlementPostServiceImpl implements SettlementPostService { ...@@ -60,4 +60,11 @@ public class SettlementPostServiceImpl implements SettlementPostService {
} }
} }
@Override
public void riskAdd(Integer id) {
// 发送mq (风控新增)
settlementMqService.riskAdd(id);
}
} }
...@@ -2,16 +2,14 @@ package com.clx.performance.service.settle; ...@@ -2,16 +2,14 @@ package com.clx.performance.service.settle;
import com.clx.performance.model.settle.SettlementDriverDetail; import com.clx.performance.model.settle.SettlementDriverDetail;
import com.clx.performance.vo.mq.*; import com.clx.performance.vo.mq.*;
import com.clx.performance.vo.mq.settle.SettlementInvoiceStatusUpdateMqParam; import com.clx.performance.vo.mq.settle.*;
import com.clx.performance.vo.mq.settle.SettlementOrderChildRiskProcessMqParam;
import com.clx.performance.vo.mq.settle.SettlementOwnerDetialInvoiceCompanyUpdateMqParam;
import com.clx.performance.vo.mq.settle.SettlementPlatformAutoConfirmMqParam;
public interface SettlementMqHandlerService { public interface SettlementMqHandlerService {
void settlementDetailAdd(SettlementDetailAddMqParam mq); void settlementDetailAdd(SettlementDetailAddMqParam mq);
void settlementStatistics(SettlementStatisticsMqParam mq); void settlementStatistics(SettlementStatisticsMqParam mq);
void settlementDriverSettlement(SettlementDriverSettleMqParam mq);
void settle(SettlementSettleMqParam mq); void settle(SettlementSettleMqParam mq);
...@@ -27,6 +25,7 @@ public interface SettlementMqHandlerService { ...@@ -27,6 +25,7 @@ public interface SettlementMqHandlerService {
String settlementNoGenerate(); String settlementNoGenerate();
void riskAdd(SettlementOrderChildRiskAddMqParam mq);
void riskProcess(SettlementOrderChildRiskProcessMqParam mq); void riskProcess(SettlementOrderChildRiskProcessMqParam mq);
void invoiceCompanyUpdate(SettlementOwnerDetialInvoiceCompanyUpdateMqParam mq); void invoiceCompanyUpdate(SettlementOwnerDetialInvoiceCompanyUpdateMqParam mq);
......
...@@ -6,6 +6,7 @@ public interface SettlementMqService { ...@@ -6,6 +6,7 @@ public interface SettlementMqService {
void settlementStatistics(String childNo); void settlementStatistics(String childNo);
void settlementStatistics(String childNo, Integer type); void settlementStatistics(String childNo, Integer type);
void settlementDriverSettle(String childNo);
void invoiceTypeSync(String childNo); void invoiceTypeSync(String childNo);
...@@ -15,6 +16,8 @@ public interface SettlementMqService { ...@@ -15,6 +16,8 @@ public interface SettlementMqService {
void payStatusSync(String childNo); void payStatusSync(String childNo);
void riskAdd(Integer id);
void riskProcess(Integer id); void riskProcess(Integer id);
void updateInvoiceCompany(Integer id); void updateInvoiceCompany(Integer id);
......
...@@ -15,4 +15,6 @@ public interface SettlementPostService { ...@@ -15,4 +15,6 @@ public interface SettlementPostService {
void updateInvoice(List<String> childNoList); void updateInvoice(List<String> childNoList);
void riskAdd(Integer id);
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论