提交 51e01028 authored 作者: 杨启发's avatar 杨启发

Merge branch 'refs/heads/v20.9_settlement_20240805' into dev

......@@ -28,6 +28,7 @@ public class CarrierSettlementOwnerDetailCompanyUpdateParam {
@ApiModelProperty(value="开票公司简称")
private String companyShorterName;
@NotBlank(message = "开票公司统一社会信用代码不能为空")
@ApiModelProperty(value="开票公司统一社会信用代码")
private String companyGroupCode;
......
package com.clx.performance.vo.mq;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import lombok.*;
import java.util.Arrays;
import java.util.Optional;
/**
* @Author: aiqingguo
......@@ -18,6 +18,24 @@ import lombok.ToString;
public class SettlementStatisticsMqParam {
private String childNo; //运单编号
private Integer InvoiceType; //司机计费明细id
private Integer type; //类型: 1统计 2拆单
@Getter
@AllArgsConstructor
public enum Type {
STATISTICS(1, "统计"),
SEPARATE(2, "拆单"),
;
private final Integer code;
private final String msg;
public static Optional<Type> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
public static String getMsgByCode(int code) {
return getByCode(code).map(Type::getMsg).orElse(null);
}
}
}
package com.clx.performance.vo.mq.broker;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Setter
@Getter
@ToString
@NoArgsConstructor
public class BrokerOrderChildSyncMqParam {
private String childNo; //运单编号
private Integer invoiceType; //开票标识:1网运单 2普通单
}
package com.clx.performance.vo.mq.broker;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Setter
@Getter
@ToString
@NoArgsConstructor
public class BrokerOrderChildUpdateMqParam {
private String childNo; //运单编号
private Integer invoiceType; //开票标识:1网运单 2普通单
}
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 SettlementOwnerDetialInvoiceCompanyUpdateMqParam {
private Integer id; //id
}
......@@ -83,6 +83,10 @@ public class CarrierPageSettlementOwnerDetailVO {
private Integer invoicingCompanyId;
@ApiModelProperty("开票公司简称")
private String invoicingCompanyShorterName;
@ApiModelProperty("拆单备注")
private String separateRemark;
@ApiModelProperty(value = "创建时间")
private String createTime;
......
......@@ -126,9 +126,15 @@ public class PageOwnerSettlementOwnerDetailVO {
@ApiModelProperty(value = "开票时间")
private String invoiceTime;
@ApiModelProperty(value = "拆单备注")
private String separateRemark;
@ApiModelProperty(value="创建时间",example = "2013-01-01 00:00:00")
private String createTime;
@ApiModelProperty(value="备注")
private String remark;
@ApiModelProperty(value="磅单审核通过时间")
private String poundAuditTime;
}
\ No newline at end of file
package com.clx.performance.config;
import com.clx.performance.constant.RabbitKeyBrokerConstants;
import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.DirectExchange;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.HashMap;
import java.util.Map;
/**
* @Author: aiqingguo
* @Description: 无车承运 MQ
* @Date: 2023-10-12 16:27:30
* @Version: 1.0
*/
@Configuration
public class RabbitBrokerConfig {
@Bean
public DirectExchange brokerDefaultExchange() {
return new DirectExchange(RabbitKeyBrokerConstants.DEFAULT_EXCHANGE);
}
@Bean
public Queue brokerDefaultDelayQueue() {
Map<String, Object> params = new HashMap<>(8);
params.put("x-message-ttl", 15 * 60 * 1000);
params.put("x-max-length", 5000000);
params.put("x-dead-letter-exchange", RabbitKeyBrokerConstants.DEFAULT_EXCHANGE);
params.put("x-dead-letter-routing-key", RabbitKeyBrokerConstants.DEFAULT_DEAD_ROUTING_KEY);
return new Queue(RabbitKeyBrokerConstants.DEFAULT_DELAY_QUEUE, true, false, false, params);
}
@Bean
public Binding brokerDefaultDelayQueueBinding() {
return BindingBuilder.bind(brokerDefaultDelayQueue()).to(brokerDefaultExchange())
.with(RabbitKeyBrokerConstants.DEFAULT_DELAY_ROUTING_KEY);
}
@Bean
public Queue brokerDefaultDeadQueue() {
return new Queue(RabbitKeyBrokerConstants.DEFAULT_DEAD_QUEUE);
}
@Bean
public Binding brokerDefaultDeadQueueBinding() {
return BindingBuilder.bind(brokerDefaultDeadQueue()).to(brokerDefaultExchange())
.with(RabbitKeyBrokerConstants.DEFAULT_DEAD_ROUTING_KEY);
}
/**
* 运单同步
*/
@Bean
public Queue brokerOrderChildSyncQueue() {
return new Queue(RabbitKeyBrokerConstants.ORDER_CHILD_SYNC_QUEUE);
}
@Bean
public Binding brokerOrderChildSyncQueueBinding() {
return BindingBuilder.bind(brokerOrderChildSyncQueue()).to(brokerDefaultExchange())
.with(RabbitKeyBrokerConstants.ORDER_CHILD_SYNC_ROUTING_KEY);
}
/**
* 运单更新
*/
@Bean
public Queue brokerOrderChildUpdateQueue() {
return new Queue(RabbitKeyBrokerConstants.ORDER_CHILD_UPDATE_QUEUE);
}
@Bean
public Binding brokerOrderChildUpdateQueueBinding() {
return BindingBuilder.bind(brokerOrderChildUpdateQueue()).to(brokerDefaultExchange())
.with(RabbitKeyBrokerConstants.ORDER_CHILD_UPDATE_ROUTING_KEY);
}
}
......@@ -136,4 +136,17 @@ public class RabbitSettlementConfig {
.with(RabbitKeySettlementConstants.SETTLEMENT_RISK_PROCESS_ROUTING_KEY);
}
/**
* 开票公司新增
*/
@Bean
public Queue settlementInvoiceCompanyUpdateQueue() {
return new Queue(RabbitKeySettlementConstants.SETTLEMENT_INVOICE_COMPANY_UPDATE_QUEUE);
}
@Bean
public Binding settlementInvoiceCompanyUpdateQueueBinding() {
return BindingBuilder.bind(settlementInvoiceCompanyUpdateQueue()).to(settlementDefaultExchange())
.with(RabbitKeySettlementConstants.SETTLEMENT_INVOICE_COMPANY_UPDATE_ROUTING_KEY);
}
}
package com.clx.performance.constant;
/**
* @Author: aiqingguo
* @Description: 无车承运-mq
* @Date: 2023-10-19 15:13:06
* @Version: 1.0
*/
public class RabbitKeyBrokerConstants {
private static final String PREFIX = "clx-performance.broker.";
private static final String EXCHANGE = ".exchange";
private static final String QUEUE = ".queue";
private static final String QUEUE_ROUTING_KEY = ".routing.key";
private static final String DELAY_QUEUE = ".delay.queue";
private static final String DELAY_ROUTING_KEY = ".delay.routing.key";
private static final String DEAD_QUEUE = ".dead.queue";
private static final String DEAD_ROUTING_KEY = ".dead.routing.key";
private RabbitKeyBrokerConstants() {
}
/**
* 缺省交换机
*/
public static final String DEFAULT_EXCHANGE = PREFIX +"default"+EXCHANGE;
/**
* 缺省延迟队列
*/
public static final String DEFAULT_DELAY_QUEUE = PREFIX +"default"+DELAY_QUEUE;
public static final String DEFAULT_DELAY_ROUTING_KEY = PREFIX +"default"+DELAY_ROUTING_KEY;
public static final String DEFAULT_DEAD_QUEUE = PREFIX +"default"+DEAD_QUEUE;
public static final String DEFAULT_DEAD_ROUTING_KEY = PREFIX +"default"+DEAD_ROUTING_KEY;
/**
* 运单同步
*/
public static final String ORDER_CHILD_SYNC_QUEUE = PREFIX +"orderChild.sync"+QUEUE;
public static final String ORDER_CHILD_SYNC_ROUTING_KEY = PREFIX +"orderChild.sync"+QUEUE_ROUTING_KEY;
/**
* 运单更新
*/
public static final String ORDER_CHILD_UPDATE_QUEUE = PREFIX +"orderChild.update"+QUEUE;
public static final String ORDER_CHILD_UPDATE_ROUTING_KEY = PREFIX +"orderChild.update"+QUEUE_ROUTING_KEY;
}
......@@ -74,4 +74,10 @@ public class RabbitKeySettlementConstants {
public static final String SETTLEMENT_RISK_PROCESS_QUEUE = PREFIX +"settlementRisk.process"+QUEUE;
public static final String SETTLEMENT_RISK_PROCESS_ROUTING_KEY = PREFIX +"settlementRisk.process"+QUEUE_ROUTING_KEY;
/**
* 开票公司新增
*/
public static final String SETTLEMENT_INVOICE_COMPANY_UPDATE_QUEUE = PREFIX +"settlementInvoiceCompany.update"+QUEUE;
public static final String SETTLEMENT_INVOICE_COMPANY_UPDATE_ROUTING_KEY = PREFIX +"settlementInvoiceCompany.update"+QUEUE_ROUTING_KEY;
}
......@@ -40,7 +40,6 @@ public class TempSettlementController {
SettlementStatisticsMqParam mq = new SettlementStatisticsMqParam();
mq.setChildNo(childNo);
mq.setInvoiceType(1);
settlementMqHandlerService.settlementStatistics(mq);
return Result.ok();
......
......@@ -9,6 +9,7 @@ import com.clx.performance.enums.loan.OwnerLoanRecordEnum;
import com.clx.performance.mapper.settle.SettlementDriverMapper;
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.msl.common.base.Optional;
import com.msl.common.dao.impl.BaseDaoImpl;
......@@ -29,6 +30,21 @@ import java.util.Set;
public class SettlementDriverDaoImpl extends BaseDaoImpl<SettlementDriverMapper, SettlementDriver, Integer> implements SettlementDriverDao {
@Override
public boolean updatePayStatus(SettlementDriver item) {
return update(lUdWrapper()
.eq(SettlementDriver::getId, item.getId())
.set(SettlementDriver::getStatus, item.getStatus())
);
}
@Override
public Optional<SettlementDriver> findBySettlementNo(String settlementNo) {
return Optional.of(lQrWrapper()
.eq(SettlementDriver::getSettlementNo, settlementNo)
)
.map(super::getOne);
}
@Override
public IPage<SettlementDriver> pageCarrierSettlementDriver(PageCarrierSettlementDriverParam param) {
......
......@@ -17,7 +17,6 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository;
import java.time.LocalDateTime;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
......@@ -29,6 +28,23 @@ import java.util.Objects;
*/
@Repository
public class SettlementDriverDetailDaoImpl extends BaseDaoImpl<SettlementDriverDetailMapper, SettlementDriverDetail, Integer> implements SettlementDriverDetailDao {
@Override
public boolean updateSettlementNo(SettlementDriverDetail item) {
return update(lUdWrapper()
.eq(SettlementDriverDetail::getId, item.getId())
.set(SettlementDriverDetail::getSettlementNo, item.getSettlementNo())
);
}
@Override
public boolean updateClearSettlementNo(SettlementDriverDetail item) {
return update(lUdWrapper()
.eq(SettlementDriverDetail::getId, item.getId())
.set(SettlementDriverDetail::getSettlementNo, item.getSettlementNo())
);
}
@Override
public boolean updateInvoiceTypeAndPrepayFreightFlag(SettlementDriverDetail item) {
return update(lUdWrapper()
......@@ -45,24 +61,32 @@ public class SettlementDriverDetailDaoImpl extends BaseDaoImpl<SettlementDriverD
);
}
@Override
public boolean updateSettlementNo(SettlementDriverDetail item) {
public boolean updateConvertOrdinary(SettlementDriverDetail item) {
return update(lUdWrapper()
.eq(SettlementDriverDetail::getId, item.getId())
.set(SettlementDriverDetail::getSettlementNo, item.getSettlementNo())
.set(SettlementDriverDetail::getInvoiceType, item.getInvoiceType())
.set(SettlementDriverDetail::getInvoicingCompanyId, item.getInvoicingCompanyId())
.set(SettlementDriverDetail::getInvoicingCompanyShorterName, item.getInvoicingCompanyShorterName())
.set(SettlementDriverDetail::getInvoicingCompanyGroupCode, item.getInvoicingCompanyGroupCode())
);
}
@Override
public boolean updateCompany(List<Integer> idList, Integer companyId, String companyShorterName, String companyGroupCode) {
public boolean updatePreFreight(SettlementDriverDetail item) {
return update(lUdWrapper()
.in(SettlementDriverDetail::getId, idList)
.set(SettlementDriverDetail::getInvoicingCompanyId, companyId)
.set(SettlementDriverDetail::getInvoicingCompanyShorterName, companyShorterName)
.set(SettlementDriverDetail::getInvoicingCompanyGroupCode, companyGroupCode)
.eq(SettlementDriverDetail::getId, item.getId())
.set(SettlementDriverDetail::getInvoiceType, item.getInvoiceType())
.set(SettlementDriverDetail::getPrepayFreightFlag, item.getPrepayFreightFlag())
.set(SettlementDriverDetail::getInvoicingCompanyId, item.getInvoicingCompanyId())
.set(SettlementDriverDetail::getInvoicingCompanyShorterName, item.getInvoicingCompanyShorterName())
.set(SettlementDriverDetail::getInvoicingCompanyGroupCode, item.getInvoicingCompanyGroupCode())
);
}
@Override
public Optional<SettlementDriverDetail> getByChildNo(String childNo) {
return Optional.of(childNo)
......
......@@ -20,6 +20,17 @@ public class SettlementOrderChildRiskDaoImpl
extends BaseDaoImpl<SettlementOrderChildRiskMapper, SettlementOrderChildRisk, Integer>
implements SettlementOrderChildRiskDao {
@Override
public boolean updateProcess(SettlementOrderChildRisk item) {
return update(lUdWrapper()
.eq(SettlementOrderChildRisk::getId, item.getId())
.set(SettlementOrderChildRisk::getStatus, item.getStatus())
.set(SettlementOrderChildRisk::getProcessMethod, item.getProcessMethod())
.set(SettlementOrderChildRisk::getProcessBy, item.getProcessBy())
.set(SettlementOrderChildRisk::getProcessTime, item.getProcessTime())
);
}
@Override
public Optional<SettlementOrderChildRisk> getById(Integer id) {
return Optional.of(id)
......
......@@ -97,6 +97,14 @@ public class SettlementOwnerDaoImpl extends BaseDaoImpl<SettlementOwnerMapper, S
);
}
@Override
public Optional<SettlementOwner> findBySettlementNo(String settlementNo) {
return Optional.of(lQrWrapper()
.eq(SettlementOwner::getSettlementNo, settlementNo)
)
.map(super::getOne);
}
@Override
public IPage<SettlementOwner> pageCarrierSettlementOwner(PageCarrierSettlementOwnerParam param) {
LambdaQueryWrapper<SettlementOwner> query = new LambdaQueryWrapper<>();
......
......@@ -8,7 +8,6 @@ import com.clx.performance.dao.settle.SettlementOwnerDetailDao;
import com.clx.performance.enums.settle.SettlementOwnerDetailEnum;
import com.clx.performance.enums.settle.SettlementOwnerEnum;
import com.clx.performance.mapper.settle.SettlementOwnerDetailMapper;
import com.clx.performance.model.settle.SettlementDriverDetail;
import com.clx.performance.model.settle.SettlementOwnerDetail;
import com.clx.performance.param.pc.carrier.ExportBatchOwnerSettlementDetailParam;
import com.clx.performance.param.pc.owner.PageCarrierSettlementOwnerDetailParam;
......@@ -46,9 +45,36 @@ public class SettlementOwnerDetailDaoImpl extends BaseDaoImpl<SettlementOwnerDet
}
@Override
public boolean updateClearInvoiceCompany(SettlementOwnerDetail item) {
public boolean updatePayStatus(SettlementOwnerDetail item) {
return update(lUdWrapper()
.eq(SettlementOwnerDetail::getId, item.getId())
.set(SettlementOwnerDetail::getPayStatus, item.getPayStatus())
);
}
@Override
public boolean updateSettlementNo(SettlementOwnerDetail item) {
return update(lUdWrapper()
.eq(SettlementOwnerDetail::getId, item.getId())
.set(SettlementOwnerDetail::getSettlementNo, item.getSettlementNo())
);
}
@Override
public boolean updateClearSettlementNo(SettlementOwnerDetail item) {
return update(lUdWrapper()
.eq(SettlementOwnerDetail::getId, item.getId())
.set(SettlementOwnerDetail::getSettlementNo, item.getSettlementNo())
.set(SettlementOwnerDetail::getSeparateRemark, item.getSeparateRemark())
);
}
@Override
public boolean updateConvertOrdinary(SettlementOwnerDetail item) {
return update(lUdWrapper()
.eq(SettlementOwnerDetail::getId, item.getId())
.set(SettlementOwnerDetail::getInvoiceType, item.getInvoiceType())
.set(SettlementOwnerDetail::getInvoiceStatus, item.getInvoiceStatus())
.set(SettlementOwnerDetail::getInvoicingCompanyId, item.getInvoicingCompanyId())
.set(SettlementOwnerDetail::getInvoicingCompanyShorterName, item.getInvoicingCompanyShorterName())
.set(SettlementOwnerDetail::getInvoicingCompanyGroupCode, item.getInvoicingCompanyGroupCode())
......@@ -76,18 +102,14 @@ public class SettlementOwnerDetailDaoImpl extends BaseDaoImpl<SettlementOwnerDet
}
@Override
public boolean updatePayStatus(SettlementOwnerDetail item) {
return update(lUdWrapper()
.eq(SettlementOwnerDetail::getId, item.getId())
.set(SettlementOwnerDetail::getPayStatus, item.getPayStatus())
);
}
@Override
public boolean updateSettlementNo(SettlementOwnerDetail item) {
public boolean updatePreFreight(SettlementOwnerDetail item) {
return update(lUdWrapper()
.eq(SettlementOwnerDetail::getId, item.getId())
.set(SettlementOwnerDetail::getSettlementNo, item.getSettlementNo())
.set(SettlementOwnerDetail::getInvoiceType, item.getInvoiceType())
.set(SettlementOwnerDetail::getPrepayFreight, item.getPrepayFreight())
.set(SettlementOwnerDetail::getInvoicingCompanyId, item.getInvoicingCompanyId())
.set(SettlementOwnerDetail::getInvoicingCompanyShorterName, item.getInvoicingCompanyShorterName())
.set(SettlementOwnerDetail::getInvoicingCompanyGroupCode, item.getInvoicingCompanyGroupCode())
);
}
......@@ -107,6 +129,25 @@ public class SettlementOwnerDetailDaoImpl extends BaseDaoImpl<SettlementOwnerDet
);
}
@Override
public boolean updateInvoiceCompany(List<Integer> idList, Integer companyId, String companyShorterName, String companyGroupCode) {
return update(lUdWrapper()
.in(SettlementOwnerDetail::getId, idList)
.set(SettlementOwnerDetail::getInvoicingCompanyId, companyId)
.set(SettlementOwnerDetail::getInvoicingCompanyShorterName, companyShorterName)
.set(SettlementOwnerDetail::getInvoicingCompanyGroupCode, companyGroupCode)
);
}
@Override
public Optional<SettlementOwnerDetail> findById(Integer id) {
return Optional.of(id)
.map(item -> lQrWrapper()
.eq(SettlementOwnerDetail::getId, id)
)
.map(super::getOne);
}
@Override
public Optional<SettlementOwnerDetail> getByChildNo(String childNo) {
return Optional.of(childNo)
......@@ -287,4 +328,11 @@ public class SettlementOwnerDetailDaoImpl extends BaseDaoImpl<SettlementOwnerDet
.in(SettlementOwnerDetail::getSettlementNo, param.getSettlementNos())
);
}
@Override
public List<SettlementOwnerDetail> findListByIdList(List<Integer> idList) {
return list(lQrWrapper()
.in(SettlementOwnerDetail::getId, idList)
);
}
}
......@@ -3,6 +3,8 @@ package com.clx.performance.dao.settle;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.mapper.settle.SettlementDriverMapper;
import com.clx.performance.model.settle.SettlementDriver;
import com.clx.performance.model.settle.SettlementOwner;
import com.clx.performance.model.settle.SettlementOwnerDetail;
import com.clx.performance.param.pc.driver.PageCarrierSettlementDriverParam;
import com.msl.common.base.Optional;
import com.msl.common.dao.BaseDao;
......@@ -17,6 +19,13 @@ import java.util.Set;
* @Version: 1.0
*/
public interface SettlementDriverDao extends BaseDao<SettlementDriverMapper, SettlementDriver, Integer> {
boolean updatePayStatus(SettlementDriver item);
Optional<SettlementDriver> findBySettlementNo(String settlementNo);
IPage<SettlementDriver> pageCarrierSettlementDriver(PageCarrierSettlementDriverParam param);
......
......@@ -9,7 +9,6 @@ import com.msl.common.dao.BaseDao;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Set;
/**
* @Author: aiqinguo
......@@ -19,14 +18,16 @@ import java.util.Set;
*/
public interface SettlementDriverDetailDao extends BaseDao<SettlementDriverDetailMapper, SettlementDriverDetail, Integer> {
boolean updateInvoiceTypeAndPrepayFreightFlag(SettlementDriverDetail item);
boolean updateSettlementNo(SettlementDriverDetail item);
boolean updateCompany(List<Integer> idList, Integer companyId, String companyShorterName, String companyGroupCode);
boolean updateClearSettlementNo(SettlementDriverDetail item);
boolean updateInvoiceTypeAndPrepayFreightFlag(SettlementDriverDetail item);
boolean updateConvertOrdinary(SettlementDriverDetail item);
boolean updatePreFreight(SettlementDriverDetail item);
Optional<SettlementDriverDetail> getByChildNo(String childNo);
IPage<SettlementDriverDetail> pageSettlementDriverDetail(PageCarrierSettlementDriverDetailParam param);
List<SettlementDriverDetail> listUnPay(LocalDateTime beginTime);
......
......@@ -11,6 +11,9 @@ public interface SettlementOrderChildRiskDao
extends BaseDao<SettlementOrderChildRiskMapper,
SettlementOrderChildRisk, Integer> {
boolean updateProcess(SettlementOrderChildRisk item);
Optional<SettlementOrderChildRisk> getById(Integer id);
Optional<SettlementOrderChildRisk> findLastByChildNo(String childNo);
......
......@@ -29,6 +29,9 @@ public interface SettlementOwnerDao extends BaseDao<SettlementOwnerMapper, Settl
boolean updatePayment(SettlementOwner settlementOwner);
Optional<SettlementOwner> findBySettlementNo(String settlementNo);
IPage<SettlementOwner> pageCarrierSettlementOwner(PageCarrierSettlementOwnerParam param);
Optional<SettlementOwner> selectBySettlementNo(@Param("settlementNo")String settlementNo);
......
......@@ -24,15 +24,23 @@ import java.util.List;
public interface SettlementOwnerDetailDao extends BaseDao<SettlementOwnerDetailMapper, SettlementOwnerDetail, Integer> {
boolean updateInvoiceTypeStatus(SettlementOwnerDetail item);
boolean updateClearInvoiceCompany(SettlementOwnerDetail item);
boolean updateInvoiceType(SettlementOwnerDetail item);
boolean updatePayStatus(SettlementOwnerDetail item);
boolean updateSettlementNo(SettlementOwnerDetail item);
boolean updateClearSettlementNo(SettlementOwnerDetail item);
boolean updateConvertOrdinary(SettlementOwnerDetail item);
boolean updateInvoiceType(SettlementOwnerDetail item);
boolean updatePreFreight(SettlementOwnerDetail item);
boolean updateInvoiceStatusBySettlementNo(@Param("settlementNo")String settlementNo, @Param("invoiceStatus")Integer invoiceStatus);
boolean updateFinalPaymentStatusBySettlementNo(@Param("settlementNo")String settlementNo, @Param("finalPaymentStatus")Integer finalPaymentStatus);
boolean updateInvoiceCompany(List<Integer> idList, Integer companyId, String companyShorterName, String companyGroupCode);
Optional<SettlementOwnerDetail> findById(Integer id);
Optional<SettlementOwnerDetail> getByChildNo(String childNo);
List<SettlementOwnerDetail> getBySettlementNo(String settlementNo);
......@@ -62,4 +70,7 @@ public interface SettlementOwnerDetailDao extends BaseDao<SettlementOwnerDetailM
IPage<SettlementOwnerDetail> pagePendingSettlementOwnerDetail(PagePendingCarrierSettlementOwnerDetailParam param);
List<SettlementOwnerDetail> listSettlementOwnerDetailBySettlementNos(ExportBatchOwnerSettlementDetailParam param);
List<SettlementOwnerDetail> findListByIdList(List<Integer> idList);
}
......@@ -140,7 +140,7 @@ public class EventListenerComponent {
settlementDriverDetailDao.updateInvoiceTypeAndPrepayFreightFlag(settlementDriverDetail);
// 发送mq 结算统计
settlementMqService.settlementStatistics(settlementDriverDetail.getChildNo(), settlementDriverDetail.getInvoiceType());
settlementMqService.settlementStatistics(settlementDriverDetail.getChildNo());
} catch (Exception e) {
throw new ServiceSystemException(PerformanceResultEnum.GET_LOAN_RECORD, e.getMessage());
} finally {
......
......@@ -8,16 +8,14 @@ import com.clx.order.vo.pc.carrier.InvoicingCompanyVO;
import com.clx.performance.component.IdGenerateSnowFlake;
import com.clx.performance.config.SettlementConfig;
import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.OrderChildSyncTransportInvoiceRecordDao;
import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.dao.OwnerAccountDao;
import com.clx.performance.dao.OwnerRunningWaterRecordDao;
import com.clx.performance.dao.*;
import com.clx.performance.dao.settle.SettlementDriverDetailDao;
import com.clx.performance.dao.settle.SettlementOwnerDetailDao;
import com.clx.performance.dto.OrderChildSyncDTO;
import com.clx.performance.dto.OwnerLoanMqDTO;
import com.clx.performance.enums.*;
import com.clx.performance.enums.IdTypeEnum;
import com.clx.performance.enums.NetworkDriverAccountEnum;
import com.clx.performance.enums.OwnerAccountEnum;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.settle.SettlementDriverEnum;
import com.clx.performance.enums.settle.SettlementOwnerDetailEnum;
import com.clx.performance.enums.settle.SettlementOwnerEnum;
......@@ -25,10 +23,14 @@ import com.clx.performance.enums.settle.SettlementWayEnum;
import com.clx.performance.event.OwnerLoanEvent;
import com.clx.performance.extranal.order.InvoicingCompanyService;
import com.clx.performance.feign.TransportFeignService;
import com.clx.performance.model.*;
import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.model.OwnerAccount;
import com.clx.performance.model.OwnerRunningWaterRecord;
import com.clx.performance.model.settle.SettlementDriverDetail;
import com.clx.performance.model.settle.SettlementOwnerDetail;
import com.clx.performance.service.TransportSyncService;
import com.clx.performance.service.broker.OrderChildBrokerMqService;
import com.clx.performance.service.broker.OrderChildBrokerService;
import com.clx.performance.service.settle.NetworkDriverRunningWaterRecordService;
import com.clx.performance.service.settle.SettlementCommonService;
......@@ -40,7 +42,6 @@ import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.List;
import java.util.Objects;
......@@ -79,6 +80,7 @@ public class OrderChildSyncTransportListener {
private final OrderChildDao orderChildDao;
private final SettlementCommonService settlementCommonService;
private final OrderChildBrokerMqService orderChildBrokerMqService;
/**
* 承运同步网络货运运单
*/
......@@ -98,49 +100,51 @@ public class OrderChildSyncTransportListener {
}
}
@Deprecated
public void transportOrderChildProcess(OrderChild orderChild) {
Integer invoiceType = SettlementOwnerEnum.InvoiceType.ORDINARY.getCode();
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).get();
SettlementOwnerDetail settlementOwnerDetail = settlementOwnerDetailDao.getByChildNo(orderChild.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
SettlementDriverDetail settlementDriverDetail = settlementDriverDetailDao.getByChildNo(orderChild.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
// // 同步网络货运(禁用网络货运同步)
// ThirdOrderChildBrokerParam param = transportSyncService.generateOrderChildSync(orderChild, orderGoods, settlementOwnerDetail, settlementDriverDetail);
// HttpDTO httpDTOResult = transportFeignService.orderChildSync(param);
// String decrypt = ThirdComponent.decrypt(httpDTOResult.getData());
// OrderChildSyncDTO bean = JSONUtil.toBean(decrypt, OrderChildSyncDTO.class);
// extracted(orderChild, bean, JSONUtil.parse(bean).toString(), settlementOwnerDetail, invoiceType, settlementDriverDetail);
if (Objects.equals(settlementOwnerDetail.getReportFlag(), OrderEnum.ReportFlag.NO.getCode())){
// 不上报走普通单
extracted(orderChild, settlementOwnerDetail, settlementDriverDetail, invoiceType, null);
}
else{
settlementOwnerDetail.setInvoiceType(SettlementOwnerEnum.InvoiceType.ONLINE.getCode());
try{
// 同步broker
orderChildBrokerService.orderChildSync(orderChild, orderGoods, settlementOwnerDetail, settlementDriverDetail);
} catch (Exception e) {
log.info("当前OrderChildSyncTransportListener监听同步网络货运失败,运单号{}, 错误信息{}", orderChild.getChildNo(), ExceptionUtils.getStackTrace(e));
}
}
// Integer invoiceType = SettlementOwnerEnum.InvoiceType.ORDINARY.getCode();
//
// OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).get();
//
// SettlementOwnerDetail settlementOwnerDetail = settlementOwnerDetailDao.getByChildNo(orderChild.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
// SettlementDriverDetail settlementDriverDetail = settlementDriverDetailDao.getByChildNo(orderChild.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
//
//// // 同步网络货运(禁用网络货运同步)
//// ThirdOrderChildBrokerParam param = transportSyncService.generateOrderChildSync(orderChild, orderGoods, settlementOwnerDetail, settlementDriverDetail);
//// HttpDTO httpDTOResult = transportFeignService.orderChildSync(param);
//// String decrypt = ThirdComponent.decrypt(httpDTOResult.getData());
//// OrderChildSyncDTO bean = JSONUtil.toBean(decrypt, OrderChildSyncDTO.class);
//// extracted(orderChild, bean, JSONUtil.parse(bean).toString(), settlementOwnerDetail, invoiceType, settlementDriverDetail);
//
// if (Objects.equals(settlementOwnerDetail.getReportFlag(), OrderEnum.ReportFlag.NO.getCode())){
// // 不上报走普通单
// extracted(orderChild, settlementOwnerDetail, settlementDriverDetail, invoiceType, null);
// }
// else{
//
// settlementOwnerDetail.setInvoiceType(SettlementOwnerEnum.InvoiceType.ONLINE.getCode());
// try{
// // 同步broker
// orderChildBrokerService.orderChildSync(orderChild, orderGoods, settlementOwnerDetail, settlementDriverDetail);
// } catch (Exception e) {
// log.info("当前OrderChildSyncTransportListener监听同步网络货运失败,运单号{}, 错误信息{}", orderChild.getChildNo(), ExceptionUtils.getStackTrace(e));
//
// }
//
// }
}
public void extracted(OrderChild orderChild, OrderChildSyncDTO bean, String remark,
SettlementOwnerDetail settlementOwnerDetail,
Integer invoiceType, SettlementDriverDetail settlementDriverDetail) {
// public void extracted(OrderChild orderChild, OrderChildSyncDTO bean, String remark,
// SettlementOwnerDetail settlementOwnerDetail,
// Integer invoiceType, SettlementDriverDetail settlementDriverDetail) {
//
// if (null != bean && bean.getCode() == 0 && null != bean.getData() && bean.getData().getStatus() == 1){
// invoiceType = SettlementOwnerEnum.InvoiceType.ONLINE.getCode();
// }
// extracted(orderChild, settlementOwnerDetail, settlementDriverDetail, invoiceType, remark);
// }
if (null != bean && bean.getCode() == 0 && null != bean.getData() && bean.getData().getStatus() == 1){
invoiceType = SettlementOwnerEnum.InvoiceType.ONLINE.getCode();
}
extracted(orderChild, settlementOwnerDetail, settlementDriverDetail, invoiceType, remark);
}
public void extracted(OrderChild orderChild,
SettlementOwnerDetail settlementOwnerDetail,
SettlementDriverDetail settlementDriverDetail,
......
package com.clx.performance.listener.broker;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.clx.performance.common.MqDelay;
import com.clx.performance.common.MqWrapper;
import com.clx.performance.constant.RabbitKeyBrokerConstants;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageBuilder;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* @Author: 艾庆国
* @Description: 无车承运 mq
* @Date: 2023-10-20 16:14:30
* @Version: 1.0
*/
@Slf4j
@Component
public class BrokerDelayListener {
@Autowired
private RabbitTemplate rabbitTemplate;
@RabbitListener(queues = RabbitKeyBrokerConstants.DEFAULT_DEAD_QUEUE)
public void process(Message message) {
try{
log.info("无车承运-延迟, message:{}", message);
process(JSON.parseObject(new String(message.getBody()), new TypeReference<MqWrapper<MqDelay>>(){}).getData());
}catch (Exception e){
log.info("无车承运-延迟 失败",e);
}
}
void process(MqDelay mq){
Message message = MessageBuilder.withBody(JSON.toJSONString(mq.getData()).getBytes()).build();
rabbitTemplate.send(mq.getExchange(), mq.getRouterKey(), message);
}
}
package com.clx.performance.listener.broker;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.clx.performance.common.MqWrapper;
import com.clx.performance.constant.RabbitKeyBrokerConstants;
import com.clx.performance.service.broker.OrderChildBrokerMqHandlerService;
import com.clx.performance.vo.mq.broker.BrokerOrderChildSyncMqParam;
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 BrokerOrderChildSyncListener {
@Autowired
private OrderChildBrokerMqHandlerService orderChildBrokerMqHandlerService;
@RabbitListener(queues = RabbitKeyBrokerConstants.ORDER_CHILD_SYNC_QUEUE)
public void process(Message message) {
try{
log.info("无车承运-运单同步, message:{}", new String(message.getBody()));
process(JSON.parseObject(new String(message.getBody()), new TypeReference<MqWrapper<BrokerOrderChildSyncMqParam>>(){}).getData());
log.info("无车承运-运单同步成功, message:{}", new String(message.getBody()));
}catch (Exception e){
log.info("无车承运-运单同步 失败,msg:{}", ExceptionUtils.getStackTrace(e));
}
}
private void process(BrokerOrderChildSyncMqParam mq){
orderChildBrokerMqHandlerService.orderChildSync(mq);
}
}
package com.clx.performance.listener.broker;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.clx.performance.common.MqWrapper;
import com.clx.performance.constant.RabbitKeyBrokerConstants;
import com.clx.performance.service.broker.OrderChildBrokerMqHandlerService;
import com.clx.performance.vo.mq.broker.BrokerOrderChildUpdateMqParam;
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 BrokerOrderChildUpdateListener {
@Autowired
private OrderChildBrokerMqHandlerService orderChildBrokerMqHandlerService;
@RabbitListener(queues = RabbitKeyBrokerConstants.ORDER_CHILD_UPDATE_QUEUE)
public void process(Message message) {
try{
log.info("无车承运-运单更新, message:{}", new String(message.getBody()));
process(JSON.parseObject(new String(message.getBody()), new TypeReference<MqWrapper<BrokerOrderChildUpdateMqParam>>(){}).getData());
log.info("无车承运-运单更新成功, message:{}", new String(message.getBody()));
}catch (Exception e){
log.info("无车承运-运单同步 失败,msg:{}", ExceptionUtils.getStackTrace(e));
}
}
private void process(BrokerOrderChildUpdateMqParam mq){
orderChildBrokerMqHandlerService.orderChildUpdate(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.SettlementOwnerDetialInvoiceCompanyUpdateMqParam;
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 SettlementInvoiceCompanyUpdateListener {
@Autowired
private SettlementMqHandlerService settlementMqHandlerService;
@RabbitListener(queues = RabbitKeySettlementConstants.SETTLEMENT_RISK_PROCESS_QUEUE)
public void process(Message message) {
try{
log.info("结算-开票公司更新, message:{}", new String(message.getBody()));
process(JSON.parseObject(new String(message.getBody()), new TypeReference<MqWrapper<SettlementOwnerDetialInvoiceCompanyUpdateMqParam>>(){}).getData());
}catch (Exception e){
log.info("结算-开票公司更新 失败,msg:{}", ExceptionUtils.getStackTrace(e));
}
}
private void process(SettlementOwnerDetialInvoiceCompanyUpdateMqParam mq){
settlementMqHandlerService.invoiceCompanyUpdate(mq);
}
}
......@@ -5,8 +5,7 @@ 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.SettlementOrderChildRiskProcessMqParam;
import com.clx.performance.vo.mq.SettlementStatisticsMqParam;
import com.clx.performance.vo.mq.settle.SettlementOrderChildRiskProcessMqParam;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.springframework.amqp.core.Message;
......@@ -16,7 +15,7 @@ import org.springframework.stereotype.Component;
/**
* @Author: 艾庆国
* @Description: 统计 mq
* @Description: 风控处理 mq
* @Date: 2023-10-20 11:45:08
* @Version: 1.0
*/
......
......@@ -76,6 +76,7 @@ public class SettlementOwnerDetail implements HasKey<Integer> {
private LocalDateTime poundAuditTime; //磅单审核通过时间
private String invoicingCompanyModifiedBy; //开票公司修改人
private LocalDateTime invoicingCompanyModifiedTime; //开票公司修改时间
private String separateRemark; //拆单备注
private Integer status; //状态
private LocalDateTime createTime; //创建时间
private LocalDateTime modifiedTime; //修改时间
......
package com.clx.performance.service.broker;
import com.clx.performance.vo.mq.broker.BrokerOrderChildSyncMqParam;
import com.clx.performance.vo.mq.broker.BrokerOrderChildUpdateMqParam;
public interface OrderChildBrokerMqHandlerService {
void orderChildSync(BrokerOrderChildSyncMqParam mq);
void orderChildUpdate(BrokerOrderChildUpdateMqParam mq);
}
package com.clx.performance.service.broker;
public interface OrderChildBrokerMqService {
void orderChildSync(String childNo);
void orderChildUpdate(String childNo);
}
package com.clx.performance.service.impl.broker;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.dao.settle.SettlementDriverDetailDao;
import com.clx.performance.dao.settle.SettlementOwnerDetailDao;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.settle.SettlementOwnerDetailEnum;
import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.model.settle.SettlementDriverDetail;
import com.clx.performance.model.settle.SettlementOwnerDetail;
import com.clx.performance.service.broker.OrderChildBrokerMqHandlerService;
import com.clx.performance.service.broker.OrderChildBrokerService;
import com.clx.performance.vo.mq.broker.BrokerOrderChildSyncMqParam;
import com.clx.performance.vo.mq.broker.BrokerOrderChildUpdateMqParam;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Slf4j
@Service
public class OrderChildBrokerMqHandlerServiceImpl implements OrderChildBrokerMqHandlerService {
@Autowired
private OrderGoodsDao orderGoodsDao;
@Autowired
private OrderChildDao orderChildDao;
@Autowired
private SettlementOwnerDetailDao settlementOwnerDetailDao;
@Autowired
private SettlementDriverDetailDao settlementDriverDetailDao;
@Autowired
private OrderChildBrokerService orderChildBrokerService;
@Override
public void orderChildSync(BrokerOrderChildSyncMqParam mq) {
String childNo = mq.getChildNo();
Integer invoiceType = mq.getInvoiceType();
OrderChild orderChild = orderChildDao
.getByChildNo(childNo).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
OrderGoods orderGoods = orderGoodsDao
.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
SettlementOwnerDetail settlementOwnerDetail = settlementOwnerDetailDao
.getByChildNo(orderChild.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
SettlementDriverDetail settlementDriverDetail = settlementDriverDetailDao
.getByChildNo(orderChild.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
// 更新状态
settlementOwnerDetail.setInvoiceTypeStatus(SettlementOwnerDetailEnum.InvoiceTypeStatus.PROCESSING.getCode());
settlementOwnerDetailDao.updateInvoiceTypeStatus(settlementOwnerDetail);
settlementOwnerDetail.setInvoiceType(invoiceType);
try{
// 同步broker
orderChildBrokerService.orderChildSync(orderChild, orderGoods, settlementOwnerDetail, settlementDriverDetail);
} catch (Exception e) {
log.info("同步无车承运失败, child:{}, msg:{}", orderChild.getChildNo(), ExceptionUtils.getStackTrace(e));
}
}
@Override
public void orderChildUpdate(BrokerOrderChildUpdateMqParam mq) {
String childNo = mq.getChildNo();
OrderChild orderChild = orderChildDao
.getByChildNo(childNo).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
OrderGoods orderGoods = orderGoodsDao
.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
SettlementOwnerDetail settlementOwnerDetail = settlementOwnerDetailDao
.getByChildNo(orderChild.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
SettlementDriverDetail settlementDriverDetail = settlementDriverDetailDao
.getByChildNo(orderChild.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
try{
// 更新broker
orderChildBrokerService.orderChildUpdate(orderChild, orderGoods, settlementOwnerDetail, settlementDriverDetail);
} catch (Exception e) {
log.info("更新无车承运失败, child:{}, msg:{}", orderChild.getChildNo(), ExceptionUtils.getStackTrace(e));
}
}
}
package com.clx.performance.service.impl.broker;
import com.alibaba.fastjson.JSON;
import com.clx.performance.common.MqDelay;
import com.clx.performance.common.MqWrapper;
import com.clx.performance.constant.RabbitKeyBrokerConstants;
import com.clx.performance.service.broker.OrderChildBrokerMqService;
import com.clx.performance.vo.mq.broker.BrokerOrderChildSyncMqParam;
import com.clx.performance.vo.mq.broker.BrokerOrderChildUpdateMqParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageBuilder;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Slf4j
@Service
public class OrderChildBrokerMqServiceImpl implements OrderChildBrokerMqService {
@Autowired
private RabbitTemplate rabbitTemplate;
@Override
public void orderChildSync(String childNo) {
BrokerOrderChildSyncMqParam mq = new BrokerOrderChildSyncMqParam();
mq.setChildNo(childNo);
MqDelay delay =
new MqDelay<>(RabbitKeyBrokerConstants.DEFAULT_EXCHANGE,
RabbitKeyBrokerConstants.ORDER_CHILD_SYNC_ROUTING_KEY, new MqWrapper<>(mq));
Message message = MessageBuilder.withBody(JSON.toJSONString(new MqWrapper<>(delay)).getBytes()).build();
message.getMessageProperties().setExpiration("5000");
rabbitTemplate.send(RabbitKeyBrokerConstants.DEFAULT_EXCHANGE,
RabbitKeyBrokerConstants.DEFAULT_DELAY_ROUTING_KEY, message);
}
@Override
public void orderChildUpdate(String childNo) {
BrokerOrderChildUpdateMqParam mq = new BrokerOrderChildUpdateMqParam();
mq.setChildNo(childNo);
MqDelay delay =
new MqDelay<>(RabbitKeyBrokerConstants.DEFAULT_EXCHANGE,
RabbitKeyBrokerConstants.ORDER_CHILD_SYNC_ROUTING_KEY, new MqWrapper<>(mq));
Message message = MessageBuilder.withBody(JSON.toJSONString(new MqWrapper<>(delay)).getBytes()).build();
message.getMessageProperties().setExpiration("5000");
rabbitTemplate.send(RabbitKeyBrokerConstants.DEFAULT_EXCHANGE,
RabbitKeyBrokerConstants.DEFAULT_DELAY_ROUTING_KEY, message);
}
}
......@@ -4,18 +4,18 @@ package com.clx.performance.service.impl.settle;
import com.clx.order.enums.QuotationEnum;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.dao.settle.NetworkCaseOutRecordDao;
import com.clx.performance.dao.settle.OrderChildSyncTransportRecordDao;
import com.clx.performance.dao.settle.SettlementOwnerDetailDao;
import com.clx.performance.dao.settle.*;
import com.clx.performance.dto.PayStatusNotifyDTO;
import com.clx.performance.enums.NetworkDriverAccountEnum;
import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.settle.SettlementDriverEnum;
import com.clx.performance.enums.settle.SettlementOwnerDetailEnum;
import com.clx.performance.enums.settle.SettlementWayEnum;
import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.model.settle.OrderChildSyncTransportRecord;
import com.clx.performance.model.settle.SettlementDriver;
import com.clx.performance.model.settle.SettlementDriverDetail;
import com.clx.performance.model.settle.SettlementOwnerDetail;
import com.clx.performance.param.pc.payment.PayPlatformFeeParam;
......@@ -62,6 +62,7 @@ public class OrderChildSyncTransportRecordServiceImpl implements OrderChildSyncT
private final OrderGoodsDao orderGoodsDao;
private final SettlementOwnerDetailDao settlementOwnerDetailDao;
private final SettlementDriverDao settlementDriverDao;
@Override
public void addOrderChildSyncTransportRecord(SettlementDriverDetail detail) {
......@@ -82,13 +83,21 @@ public class OrderChildSyncTransportRecordServiceImpl implements OrderChildSyncT
SettlementOwnerDetail settlementOwnerDetail = settlementOwnerDetailDao
.getByChildNo(orderChild.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
SettlementDriver settlementDriver = settlementDriverDao
.findBySettlementNo(settlementOwnerDetail.getSettlementNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
settlementDriver.setStatus(SettlementDriverEnum.Status.SETTLED.getCode());
settlementDriverDao.updatePayStatus(settlementDriver);
settlementOwnerDetail.setPayStatus(SettlementOwnerDetailEnum.PayStatus.YES.getCode());
settlementOwnerDetailDao.updatePayStatus(settlementOwnerDetail);
orderChildSyncTransportRecordDao.updateStatus(childNo);
networkCaseOutRecordDao.updateStatus(payStatusNotifyDTO.getChildNo(),
NetworkDriverAccountEnum.CaseOutRecordStatus.PAYED.getCode(),
NetworkDriverAccountEnum.CaseOutRecordStatus.PAYED.getMsg()
);
SettlementDriverDetail driverDetail = settlementDriverDetailService.selectOneByChildNo(childNo);
orderChild.setStatus(OrderChildEnum.Status.COMPLETE.getCode());
......
......@@ -6,6 +6,8 @@ import com.clx.performance.common.MqWrapper;
import com.clx.performance.constant.RabbitKeySettlementConstants;
import com.clx.performance.service.settle.SettlementMqService;
import com.clx.performance.vo.mq.*;
import com.clx.performance.vo.mq.settle.SettlementOrderChildRiskProcessMqParam;
import com.clx.performance.vo.mq.settle.SettlementOwnerDetialInvoiceCompanyUpdateMqParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageBuilder;
......@@ -37,12 +39,16 @@ public class SettlementMqServiceImpl implements SettlementMqService {
}
@Override
public void settlementStatistics(String childNo, Integer invoiceType) {
public void settlementStatistics(String childNo) {
settlementStatistics(childNo, SettlementStatisticsMqParam.Type.STATISTICS.getCode());
}
@Override
public void settlementStatistics(String childNo, Integer type) {
SettlementStatisticsMqParam mq = new SettlementStatisticsMqParam();
mq.setChildNo(childNo);
mq.setInvoiceType(invoiceType);
log.info("运单号 {} 开票标识 {} ",childNo,invoiceType);
mq.setType(type);
MqDelay<MqWrapper<SettlementStatisticsMqParam>> delay =
new MqDelay<>(RabbitKeySettlementConstants.DEFAULT_EXCHANGE,
RabbitKeySettlementConstants.SETTLEMENT_DETAIL_INVOICE_TYPE_SYC_ROUTING_KEY, new MqWrapper<>(mq));
......@@ -118,4 +124,16 @@ public class SettlementMqServiceImpl implements SettlementMqService {
RabbitKeySettlementConstants.DEFAULT_DELAY_ROUTING_KEY, message);
}
@Override
public void updateInvoiceCompany(Integer id) {
SettlementOwnerDetialInvoiceCompanyUpdateMqParam mq = new SettlementOwnerDetialInvoiceCompanyUpdateMqParam();
mq.setId(id);
MqDelay delay = new MqDelay<>(RabbitKeySettlementConstants.DEFAULT_EXCHANGE,
RabbitKeySettlementConstants.SETTLEMENT_INVOICE_COMPANY_UPDATE_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);
}
}
......@@ -2,13 +2,17 @@ package com.clx.performance.service.impl.settle;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.settle.SettlementDriverDetailDao;
import com.clx.performance.dao.settle.SettlementOrderChildRiskDao;
import com.clx.performance.dao.settle.SettlementOwnerDetailDao;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.ResultEnum;
import com.clx.performance.enums.settle.SettlementDriverEnum;
import com.clx.performance.enums.settle.SettlementOrderChildRiskEnum;
import com.clx.performance.enums.settle.SettlementOwnerDetailEnum;
import com.clx.performance.enums.settle.SettlementOwnerEnum;
import com.clx.performance.model.settle.SettlementDriverDetail;
import com.clx.performance.model.settle.SettlementOrderChildRisk;
import com.clx.performance.model.settle.SettlementOwnerDetail;
import com.clx.performance.param.pc.carrier.PageSettlementOrderChildRiskParam;
import com.clx.performance.param.pc.owner.settle.OwnerSettlementOrderChildRiskProcessUpdateParam;
import com.clx.performance.service.settle.SettlementMqService;
......@@ -18,12 +22,10 @@ import com.clx.performance.utils.excel.ExcelData;
import com.clx.performance.utils.excel.ExcelField;
import com.clx.performance.utils.excel.ExcelSheet;
import com.clx.performance.utils.excel.ExcelUtil;
import com.clx.performance.vo.pc.carrier.settle.CarrierPageSettlementDriverDetailVO;
import com.clx.performance.vo.pc.carrier.settle.SettlementOrderChildRiskVO;
import com.msl.common.exception.ServiceSystemException;
import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -38,6 +40,10 @@ import java.util.Objects;
@Slf4j
public class SettlementOrderChildRiskServiceImpl implements SettlementOrderChildRiskService {
@Autowired
private SettlementOwnerDetailDao settlementOwnerDetailDao;
@Autowired
private SettlementDriverDetailDao settlementDriverDetailDao;
@Autowired
private SettlementOrderChildRiskDao settlementOrderChildRiskDao;
@Autowired
......@@ -54,11 +60,39 @@ public class SettlementOrderChildRiskServiceImpl implements SettlementOrderChild
if (Objects.equals(settlementOrderChildRisk.getStatus(), SettlementOrderChildRiskEnum.Status.PROCESSED.getCode())) {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_RISK_PROCESS_ERROR);
}
SettlementOwnerDetail settlementOwnerDetail = settlementOwnerDetailDao
.getByChildNo(settlementOrderChildRisk.getChildNo()).orElseThrow(ResultEnum.DATA_NOT_FIND);
SettlementDriverDetail settlementDriverDetail = settlementDriverDetailDao
.getByChildNo(settlementOrderChildRisk.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
settlementOrderChildRisk.setStatus(SettlementOrderChildRiskEnum.Status.PROCESSED.getCode());
settlementOrderChildRisk.setProcessMethod(param.getProcessMethod());
settlementOrderChildRisk.setProcessBy(loginUserInfo.getUserName());
settlementOrderChildRisk.setProcessTime(LocalDateTime.now());
settlementOrderChildRiskDao.updateProcess(settlementOrderChildRisk);
// 转普通单
if (Objects.equals(param.getProcessMethod(), SettlementOrderChildRiskEnum.ProcessMethod.CONVERT_ORDINARY.getCode())) {
settlementOwnerDetail.setInvoiceType(SettlementOwnerEnum.InvoiceType.ORDINARY.getCode());
settlementOwnerDetail.setInvoicingCompanyId(null);
settlementOwnerDetail.setInvoicingCompanyShorterName(null);
settlementOwnerDetail.setInvoicingCompanyGroupCode(null);
settlementOwnerDetail.setInvoiceTypeStatus(SettlementOwnerDetailEnum.InvoiceTypeStatus.SUCCESS.getCode());
settlementOwnerDetailDao.updateConvertOrdinary(settlementOwnerDetail);
settlementDriverDetail.setInvoiceType(settlementOwnerDetail.getInvoiceType());
settlementDriverDetail.setInvoicingCompanyId(settlementOwnerDetail.getInvoicingCompanyId());
settlementDriverDetail.setInvoicingCompanyShorterName(settlementOwnerDetail.getInvoicingCompanyShorterName());
settlementDriverDetail.setInvoicingCompanyGroupCode(settlementOwnerDetail.getInvoicingCompanyGroupCode());
settlementDriverDetailDao.updateConvertOrdinary(settlementDriverDetail);
}
else {
}
// 发送mq (风控处理)
settlementMqService.riskProcess(settlementOrderChildRisk.getId());
}
......
......@@ -22,6 +22,7 @@ import com.clx.performance.param.pc.owner.PageOwnerSettlementOwnerDetailParam;
import com.clx.performance.param.pc.owner.PagePendingCarrierSettlementOwnerDetailParam;
import com.clx.performance.service.settle.SettlementCommonService;
import com.clx.performance.service.settle.SettlementOwnerDetailService;
import com.clx.performance.service.settle.SettlementPostService;
import com.clx.performance.struct.settle.SettlementOwnerDetailStruct;
import com.clx.performance.utils.excel.ExcelData;
import com.clx.performance.utils.excel.ExcelField;
......@@ -68,6 +69,9 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS
@Autowired
private SettlementCommonService settlementCommonService;
@Autowired
private SettlementPostService settlementPostService;
@Override
......@@ -149,13 +153,18 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS
@Override
public void updateInvoiceCompany(CarrierSettlementOwnerDetailCompanyUpdateParam param) {
List<SettlementDriverDetail> list = settlementDriverDetailDao.findListByIdList(param.getIdList());
for (SettlementDriverDetail item : list) {
if (item.getInvoicingCompanyId() != null) {throw new ServiceSystemException(PerformanceResultEnum.SETTLEMENT_OWNER_DETAIL_COMPANY_ADD_ERROR);}
List<SettlementOwnerDetail> list = settlementOwnerDetailDao.findListByIdList(param.getIdList());
for (SettlementOwnerDetail item : list) {
if (item.getInvoicingCompanyId() != null) {
throw new ServiceSystemException(PerformanceResultEnum.SETTLEMENT_OWNER_DETAIL_COMPANY_ADD_ERROR);
}
}
settlementDriverDetailDao.updateCompany(param.getIdList(), param.getCompanyId(), param.getCompanyShorterName(), param.getCompanyGroupCode());
settlementOwnerDetailDao.updateInvoiceCompany(param.getIdList(), param.getCompanyId(),
param.getCompanyShorterName(), param.getCompanyGroupCode());
// 更新开票公司
settlementPostService.updateInvoiceCompany(list);
}
/**
......@@ -586,10 +595,10 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS
fieldList.add(new ExcelField(24, "是否已付尾款", "finalPaymentStatusMsg", 5000));
fieldList.add(new ExcelField(25, "是否已开票", "invoiceStatusMsg", 5000));
if (param.getInvoiceStatus().equals(SettlementOwnerDetailEnum.InvoiceStatus.NO.getCode())) {
fieldList.add(new ExcelField(26, "备注", "remark", 5000));
fieldList.add(new ExcelField(26, "备注", "separateRemark", 5000));
}else {
fieldList.add(new ExcelField(26, "开票时间", "invoiceTime", 5000));
fieldList.add(new ExcelField(27, "备注", "remark", 5000));
fieldList.add(new ExcelField(27, "备注", "separateRemark", 5000));
}
// 组装数据
......@@ -626,10 +635,10 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS
rowData.add(new ExcelData(vo.getFinalPaymentStatusMsg()));
rowData.add(new ExcelData(vo.getInvoiceStatusMsg()));
if (param.getInvoiceStatus().equals(SettlementOwnerDetailEnum.InvoiceStatus.NO.getCode())) {
rowData.add(new ExcelData(vo.getRemark()));
rowData.add(new ExcelData(vo.getSeparateRemark()));
}else {
rowData.add(new ExcelData(vo.getInvoiceTime()));
rowData.add(new ExcelData(vo.getRemark()));
rowData.add(new ExcelData(vo.getSeparateRemark()));
}
dataList.add(rowData);
......
package com.clx.performance.service.impl.settle;
import com.clx.performance.model.settle.SettlementOwnerDetail;
import com.clx.performance.service.settle.SettlementMqService;
import com.clx.performance.service.settle.SettlementPostService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Slf4j
@Service
public class SettlementPostServiceImpl implements SettlementPostService {
@Autowired
private SettlementMqService settlementMqService;
@Override
public void updateInvoiceCompany(List<SettlementOwnerDetail> list){
for (SettlementOwnerDetail item : list) {
// 发送mq (开票公司更新)
settlementMqService.updateInvoiceCompany(item.getId());
}
}
}
......@@ -2,6 +2,8 @@ package com.clx.performance.service.settle;
import com.clx.performance.model.settle.SettlementDriverDetail;
import com.clx.performance.vo.mq.*;
import com.clx.performance.vo.mq.settle.SettlementOrderChildRiskProcessMqParam;
import com.clx.performance.vo.mq.settle.SettlementOwnerDetialInvoiceCompanyUpdateMqParam;
public interface SettlementMqHandlerService {
......@@ -24,4 +26,6 @@ public interface SettlementMqHandlerService {
String settlementNoGenerate();
void riskProcess(SettlementOrderChildRiskProcessMqParam mq);
void invoiceCompanyUpdate(SettlementOwnerDetialInvoiceCompanyUpdateMqParam mq);
}
......@@ -4,7 +4,8 @@ public interface SettlementMqService {
void settlementDetailAdd(Integer settlementOwnerDetailId, Integer settlementDriverDetailId);
void settlementStatistics(String childNo, Integer invoiceType);
void settlementStatistics(String childNo);
void settlementStatistics(String childNo, Integer type);
void invoiceTypeSync(String childNo);
......@@ -16,4 +17,6 @@ public interface SettlementMqService {
void riskProcess(Integer id);
void updateInvoiceCompany(Integer id);
}
package com.clx.performance.service.settle;
import com.clx.performance.model.settle.SettlementOwnerDetail;
import java.util.List;
public interface SettlementPostService {
void updateInvoiceCompany(List<SettlementOwnerDetail> list);
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论