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

Merge remote-tracking branch 'refs/remotes/origin/v20.9_settlement_20240805' into dev

...@@ -189,6 +189,7 @@ public enum PerformanceResultEnum implements ResultEnum { ...@@ -189,6 +189,7 @@ public enum PerformanceResultEnum implements ResultEnum {
ORDER_CHILD_RISK_PROCESS_ERROR(2111, "风控已处理"), ORDER_CHILD_RISK_PROCESS_ERROR(2111, "风控已处理"),
SETTLEMENT_OWNER_DETAIL_COMPANY_ADD_ERROR(2112, "所选数据存在状态”已处理“的数据,请核实后重新提交"), SETTLEMENT_OWNER_DETAIL_COMPANY_ADD_ERROR(2112, "所选数据存在状态”已处理“的数据,请核实后重新提交"),
SETTLEMENT_OWNER_CONFIRM_SETTLEMENT_ERROR(2113, "运单需重新分配开票公司,请联系结算人员处理"),
/** /**
......
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 SettlementPlatformAutoConfirmMqParam {
private Integer settlementId; //id
}
...@@ -70,4 +70,9 @@ public class OwnerPageSettlementOwnerVO { ...@@ -70,4 +70,9 @@ public class OwnerPageSettlementOwnerVO {
@ApiModelProperty(value="是否上报 0-否;1-是",example = "1") @ApiModelProperty(value="是否上报 0-否;1-是",example = "1")
private Integer reportFlag; //是否上报 0-否;1-是 private Integer reportFlag; //是否上报 0-否;1-是
@ApiModelProperty(value="装货净重(单位吨)",example = "1.23")
private BigDecimal loadNet;
@ApiModelProperty(value="卸货净重(单位吨)",example = "1.23")
private BigDecimal unloadNet;
} }
...@@ -149,4 +149,17 @@ public class RabbitSettlementConfig { ...@@ -149,4 +149,17 @@ public class RabbitSettlementConfig {
.with(RabbitKeySettlementConstants.SETTLEMENT_INVOICE_COMPANY_UPDATE_ROUTING_KEY); .with(RabbitKeySettlementConstants.SETTLEMENT_INVOICE_COMPANY_UPDATE_ROUTING_KEY);
} }
/**
* 平台自动确认
*/
@Bean
public Queue settlementPlatformAutoConfirmUpdateQueue() {
return new Queue(RabbitKeySettlementConstants.SETTLEMENT_PLATFORM_AUTO_CONFIRM_UPDATE_QUEUE);
}
@Bean
public Binding settlementPlatformAutoConfirmUpdateQueueBinding() {
return BindingBuilder.bind(settlementPlatformAutoConfirmUpdateQueue()).to(settlementDefaultExchange())
.with(RabbitKeySettlementConstants.SETTLEMENT_PLATFORM_AUTO_CONFIRM_UPDATE_ROUTING_KEY);
}
} }
...@@ -80,4 +80,10 @@ public class RabbitKeySettlementConstants { ...@@ -80,4 +80,10 @@ public class RabbitKeySettlementConstants {
public static final String SETTLEMENT_INVOICE_COMPANY_UPDATE_QUEUE = PREFIX +"settlementInvoiceCompany.update"+QUEUE; 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; public static final String SETTLEMENT_INVOICE_COMPANY_UPDATE_ROUTING_KEY = PREFIX +"settlementInvoiceCompany.update"+QUEUE_ROUTING_KEY;
/**
* 平台自动确认
*/
public static final String SETTLEMENT_PLATFORM_AUTO_CONFIRM_UPDATE_QUEUE = PREFIX +"settlementPlatformAutoConfirm.update"+QUEUE;
public static final String SETTLEMENT_PLATFORM_AUTO_CONFIRM_UPDATE_ROUTING_KEY = PREFIX +"settlementPlatformAutoConfirm.update"+QUEUE_ROUTING_KEY;
} }
...@@ -28,6 +28,14 @@ import java.util.Objects; ...@@ -28,6 +28,14 @@ import java.util.Objects;
@Repository @Repository
public class SettlementOwnerDaoImpl extends BaseDaoImpl<SettlementOwnerMapper, SettlementOwner, Integer> implements SettlementOwnerDao { public class SettlementOwnerDaoImpl extends BaseDaoImpl<SettlementOwnerMapper, SettlementOwner, Integer> implements SettlementOwnerDao {
@Override
public boolean updateStatus(SettlementOwner item) {
return update(lUdWrapper()
.eq(SettlementOwner::getId, item.getId())
.eq(SettlementOwner::getStatus, item.getStatus())
);
}
@Override @Override
public boolean updateSettlementPeriodMonth(SettlementOwner item) { public boolean updateSettlementPeriodMonth(SettlementOwner item) {
return update(lUdWrapper() return update(lUdWrapper()
...@@ -97,6 +105,14 @@ public class SettlementOwnerDaoImpl extends BaseDaoImpl<SettlementOwnerMapper, S ...@@ -97,6 +105,14 @@ public class SettlementOwnerDaoImpl extends BaseDaoImpl<SettlementOwnerMapper, S
); );
} }
@Override
public Optional<SettlementOwner> findById(Integer id) {
return Optional.of(lQrWrapper()
.eq(SettlementOwner::getId, id)
)
.map(super::getOne);
}
@Override @Override
public Optional<SettlementOwner> findBySettlementNo(String settlementNo) { public Optional<SettlementOwner> findBySettlementNo(String settlementNo) {
return Optional.of(lQrWrapper() return Optional.of(lQrWrapper()
...@@ -304,4 +320,14 @@ public class SettlementOwnerDaoImpl extends BaseDaoImpl<SettlementOwnerMapper, S ...@@ -304,4 +320,14 @@ public class SettlementOwnerDaoImpl extends BaseDaoImpl<SettlementOwnerMapper, S
.set(SettlementOwner:: getMergeTime,mergeTime) .set(SettlementOwner:: getMergeTime,mergeTime)
); );
} }
@Override
public List<SettlementOwner> listPlatformToBeConfirmed(LocalDateTime time) {
return list(lUdWrapper()
.ge(SettlementOwner::getCreateTime, time)
.eq(SettlementOwner::getStatus, SettlementOwnerEnum.Status.PLATFORM_TO_BE_CONFIRMED.getCode())
.eq(SettlementOwner::getInvoiceType, SettlementOwnerEnum.InvoiceType.ONLINE.getCode())
);
}
} }
...@@ -288,6 +288,7 @@ public class SettlementOwnerDetailDaoImpl extends BaseDaoImpl<SettlementOwnerDet ...@@ -288,6 +288,7 @@ public class SettlementOwnerDetailDaoImpl extends BaseDaoImpl<SettlementOwnerDet
.eq(SettlementOwnerDetail::getInvoiceType, SettlementOwnerEnum.InvoiceType.ONLINE.getCode()) .eq(SettlementOwnerDetail::getInvoiceType, SettlementOwnerEnum.InvoiceType.ONLINE.getCode())
); );
} }
@Override @Override
public List<SettlementOwnerDetail> listPayStatusSync() { public List<SettlementOwnerDetail> listPayStatusSync() {
return list(lUdWrapper() return list(lUdWrapper()
......
...@@ -4,8 +4,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -4,8 +4,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.mapper.settle.SettlementOwnerMapper; import com.clx.performance.mapper.settle.SettlementOwnerMapper;
import com.clx.performance.model.settle.SettlementOwner; import com.clx.performance.model.settle.SettlementOwner;
import com.clx.performance.param.pc.owner.PageCarrierSettlementOwnerParam; import com.clx.performance.param.pc.owner.PageCarrierSettlementOwnerParam;
import com.msl.common.base.Optional;
import com.clx.performance.param.pc.owner.PageOwnerSettlementParam; import com.clx.performance.param.pc.owner.PageOwnerSettlementParam;
import com.msl.common.base.Optional;
import com.msl.common.dao.BaseDao; import com.msl.common.dao.BaseDao;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
...@@ -14,6 +14,8 @@ import java.util.List; ...@@ -14,6 +14,8 @@ import java.util.List;
public interface SettlementOwnerDao extends BaseDao<SettlementOwnerMapper, SettlementOwner, Integer> { public interface SettlementOwnerDao extends BaseDao<SettlementOwnerMapper, SettlementOwner, Integer> {
boolean updateStatus(SettlementOwner item);
boolean updateSettlementPeriodMonth(SettlementOwner item); boolean updateSettlementPeriodMonth(SettlementOwner item);
boolean updateLock(SettlementOwner item); boolean updateLock(SettlementOwner item);
...@@ -30,6 +32,7 @@ public interface SettlementOwnerDao extends BaseDao<SettlementOwnerMapper, Settl ...@@ -30,6 +32,7 @@ public interface SettlementOwnerDao extends BaseDao<SettlementOwnerMapper, Settl
boolean updatePayment(SettlementOwner settlementOwner); boolean updatePayment(SettlementOwner settlementOwner);
Optional<SettlementOwner> findById(Integer id);
Optional<SettlementOwner> findBySettlementNo(String settlementNo); Optional<SettlementOwner> findBySettlementNo(String settlementNo);
IPage<SettlementOwner> pageCarrierSettlementOwner(PageCarrierSettlementOwnerParam param); IPage<SettlementOwner> pageCarrierSettlementOwner(PageCarrierSettlementOwnerParam param);
...@@ -79,4 +82,7 @@ public interface SettlementOwnerDao extends BaseDao<SettlementOwnerMapper, Settl ...@@ -79,4 +82,7 @@ public interface SettlementOwnerDao extends BaseDao<SettlementOwnerMapper, Settl
@Param("settlementNos")List<String> settlementNos, @Param("settlementNos")List<String> settlementNos,
@Param("mergedBy") String mergedBy, @Param("mergedBy") String mergedBy,
@Param("mergeTime") LocalDateTime mergeTime); @Param("mergeTime") LocalDateTime mergeTime);
List<SettlementOwner> listPlatformToBeConfirmed(LocalDateTime time);
} }
...@@ -65,6 +65,7 @@ public interface SettlementOwnerDetailDao extends BaseDao<SettlementOwnerDetailM ...@@ -65,6 +65,7 @@ public interface SettlementOwnerDetailDao extends BaseDao<SettlementOwnerDetailM
List<SettlementOwnerDetail>listInvoiceStatusSync(); List<SettlementOwnerDetail>listInvoiceStatusSync();
List<SettlementOwnerDetail> listPayStatusSync(); List<SettlementOwnerDetail> listPayStatusSync();
List<SettlementOwnerDetail> listInvoiceTypeSync(); List<SettlementOwnerDetail> listInvoiceTypeSync();
IPage<SettlementOwnerDetail> pagePendingSettlementOwnerDetail(PagePendingCarrierSettlementOwnerDetailParam param); IPage<SettlementOwnerDetail> pagePendingSettlementOwnerDetail(PagePendingCarrierSettlementOwnerDetailParam param);
......
package com.clx.performance.job.settlement; package com.clx.performance.job.settlement;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.clx.performance.dao.OrderChildSyncTransportInvoiceRecordDao; import com.clx.performance.dao.OrderChildSyncTransportInvoiceRecordDao;
import com.clx.performance.dao.settle.OrderChildSyncTransportRecordDao; import com.clx.performance.dao.settle.OrderChildSyncTransportRecordDao;
import com.clx.performance.dao.settle.SettlementOwnerDao;
import com.clx.performance.dao.settle.SettlementOwnerDetailDao; import com.clx.performance.dao.settle.SettlementOwnerDetailDao;
import com.clx.performance.model.OrderChildSyncTransportInvoiceRecord;
import com.clx.performance.model.settle.OrderChildSyncTransportRecord; import com.clx.performance.model.settle.OrderChildSyncTransportRecord;
import com.clx.performance.model.settle.SettlementOwner;
import com.clx.performance.model.settle.SettlementOwnerDetail; import com.clx.performance.model.settle.SettlementOwnerDetail;
import com.clx.performance.service.settle.SettlementMqService; import com.clx.performance.service.settle.SettlementMqService;
import com.msl.common.job.JobLog; import com.msl.common.job.JobLog;
import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.annotation.XxlJob; import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.exception.ExceptionUtils; import org.apache.commons.lang.exception.ExceptionUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
@Slf4j @Slf4j
@Service @Service
@AllArgsConstructor @AllArgsConstructor
public class SettlementJob { public class SettlementJob {
// 默认30天
private static final Integer EFFECT_TIME = 30;
private final OrderChildSyncTransportInvoiceRecordDao orderChildSyncTransportInvoiceRecordDao; private final OrderChildSyncTransportInvoiceRecordDao orderChildSyncTransportInvoiceRecordDao;
private final SettlementMqService settlementMqService; private final SettlementMqService settlementMqService;
private final SettlementOwnerDetailDao settlementOwnerDetailDao; private final SettlementOwnerDetailDao settlementOwnerDetailDao;
private final SettlementOwnerDao settlementOwnerDao;
private final OrderChildSyncTransportRecordDao orderChildSyncTransportRecordDao; private final OrderChildSyncTransportRecordDao orderChildSyncTransportRecordDao;
/** /**
...@@ -86,4 +95,38 @@ public class SettlementJob { ...@@ -86,4 +95,38 @@ public class SettlementJob {
} }
} }
/**
* 结算单平台自动确认更新
*/
@XxlJob("settlementPlatformAutoConfirmUpdate")
public void settlementPlatformAutoConfirmUpdate() {
try {
Integer effectTime= null;
String jobParam= XxlJobHelper.getJobParam();
log.info("结算单平台自动确认更新, param:{}", jobParam);
if (StringUtils.isNotBlank(jobParam)) {
JSONObject jsonObject = JSON.parseObject(jobParam);
effectTime = jsonObject.getInteger("effectTime");
}
if (effectTime == null) {
effectTime = EFFECT_TIME;
}
LocalDateTime time = LocalDateTime.now().minusDays(effectTime);
List<SettlementOwner> list = settlementOwnerDao.listPlatformToBeConfirmed(time);
log.info("结算单平台自动确认更新, size:{}", list.size());
if (list.isEmpty()) {return;}
for (SettlementOwner item : list) {
settlementMqService.settlementPlatformAutoConfirmUpdate(item.getId());
}
} catch (Exception e) {
log.warn("结算单平台自动确认更新失败,msg:{}", ExceptionUtils.getStackTrace(e));
JobLog.error("结算单平台自动确认更新失败", e);
}
}
} }
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.SettlementPlatformAutoConfirmMqParam;
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 SettlementPlatformAutoConfirmUpdateListener {
@Autowired
private SettlementMqHandlerService settlementMqHandlerService;
@RabbitListener(queues = RabbitKeySettlementConstants.SETTLEMENT_PLATFORM_AUTO_CONFIRM_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<SettlementPlatformAutoConfirmMqParam>>(){}).getData());
}catch (Exception e){
log.info("结算-平台自动确认更新 失败",e);
}
}
private void process(SettlementPlatformAutoConfirmMqParam mq){
settlementMqHandlerService.settlementPlatformAutoConfirm(mq);
}
}
...@@ -42,6 +42,7 @@ import com.clx.performance.utils.spring.ApplicationContextUtils; ...@@ -42,6 +42,7 @@ 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.SettlementOrderChildRiskProcessMqParam; import com.clx.performance.vo.mq.settle.SettlementOrderChildRiskProcessMqParam;
import com.clx.performance.vo.mq.settle.SettlementOwnerDetialInvoiceCompanyUpdateMqParam; 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;
...@@ -58,10 +59,7 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -58,10 +59,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Arrays; import java.util.*;
import java.util.List;
import java.util.Objects;
import java.util.UUID;
@Slf4j @Slf4j
@Service @Service
...@@ -413,7 +411,7 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic ...@@ -413,7 +411,7 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementOrderChildRisk.setInvoiceType(settlementOwnerDetail.getInvoiceType()); settlementOrderChildRisk.setInvoiceType(settlementOwnerDetail.getInvoiceType());
settlementOrderChildRisk.setPoundAuditTime(settlementOwnerDetail.getPoundAuditTime()); settlementOrderChildRisk.setPoundAuditTime(settlementOwnerDetail.getPoundAuditTime());
settlementOrderChildRisk.setRiskType(SettlementOrderChildRiskEnum.RiskType.SETTLE_FAIL.getCode()); settlementOrderChildRisk.setRiskType(SettlementOrderChildRiskEnum.RiskType.SETTLE_FAIL.getCode());
settlementOrderChildRisk.setRiskRemark(result.getSyncMsg()); settlementOrderChildRisk.setRiskRemark(result.getSettleMsg());
settlementOrderChildRiskDao.saveEntity(settlementOrderChildRisk); settlementOrderChildRiskDao.saveEntity(settlementOrderChildRisk);
} }
} }
...@@ -898,6 +896,26 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic ...@@ -898,6 +896,26 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
} }
@Override
public void settlementPlatformAutoConfirm(SettlementPlatformAutoConfirmMqParam mq) {
SettlementOwner settlementOwner = settlementOwnerDao
.findById(mq.getSettlementId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
if (!Objects.equals(settlementOwner.getStatus(), SettlementOwnerEnum.Status.PLATFORM_TO_BE_CONFIRMED.getCode())){
return;
}
// 所有运单支付完成,修改状态待货主确认
List<SettlementOwnerDetail> list = settlementOwnerDetailDao.getBySettlementNo(settlementOwner.getSettlementNo());
if (list.isEmpty()) {return;}
Optional<SettlementOwnerDetail> optional = list.stream()
.filter(item -> Objects.equals(item.getPayStatus(), SettlementOwnerDetailEnum.PayStatus.NO.getCode())).findFirst();
if (optional.isPresent()) {return;}
settlementOwner.setStatus(SettlementOwnerEnum.Status.OWNER_TO_BE_CONFIRMED.getCode());
settlementOwnerDao.updateStatus(settlementOwner);
}
private BigDecimal invoiceFreightCalc(Integer settlementWay, BigDecimal invoiceServiceFeeRate, SettlementOwnerDetail settlementOwnerDetail) { private BigDecimal invoiceFreightCalc(Integer settlementWay, BigDecimal invoiceServiceFeeRate, SettlementOwnerDetail settlementOwnerDetail) {
if (Objects.equals(settlementWay, SettlementWayEnum.WayType.LOAD.getCode())) { //订单结算方式为“装车净重”时,开票金额=实际净重*平台运费报价-货损金额。 if (Objects.equals(settlementWay, SettlementWayEnum.WayType.LOAD.getCode())) { //订单结算方式为“装车净重”时,开票金额=实际净重*平台运费报价-货损金额。
return settlementOwnerDetail.getWeight().multiply(settlementOwnerDetail.getFreightPrice()) return settlementOwnerDetail.getWeight().multiply(settlementOwnerDetail.getFreightPrice())
......
...@@ -8,6 +8,7 @@ import com.clx.performance.service.settle.SettlementMqService; ...@@ -8,6 +8,7 @@ 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.SettlementOrderChildRiskProcessMqParam; import com.clx.performance.vo.mq.settle.SettlementOrderChildRiskProcessMqParam;
import com.clx.performance.vo.mq.settle.SettlementOwnerDetialInvoiceCompanyUpdateMqParam; 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;
...@@ -136,4 +137,16 @@ public class SettlementMqServiceImpl implements SettlementMqService { ...@@ -136,4 +137,16 @@ public class SettlementMqServiceImpl implements SettlementMqService {
RabbitKeySettlementConstants.DEFAULT_DELAY_ROUTING_KEY, message); RabbitKeySettlementConstants.DEFAULT_DELAY_ROUTING_KEY, message);
} }
@Override
public void settlementPlatformAutoConfirmUpdate(Integer settlementId) {
SettlementPlatformAutoConfirmMqParam mq = new SettlementPlatformAutoConfirmMqParam();
mq.setSettlementId(settlementId);
MqDelay delay = new MqDelay<>(RabbitKeySettlementConstants.DEFAULT_EXCHANGE,
RabbitKeySettlementConstants.SETTLEMENT_PLATFORM_AUTO_CONFIRM_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);
}
} }
...@@ -27,7 +27,6 @@ import com.clx.performance.model.settle.SettlementLog; ...@@ -27,7 +27,6 @@ import com.clx.performance.model.settle.SettlementLog;
import com.clx.performance.model.settle.SettlementOwner; import com.clx.performance.model.settle.SettlementOwner;
import com.clx.performance.model.settle.SettlementOwnerDetail; import com.clx.performance.model.settle.SettlementOwnerDetail;
import com.clx.performance.model.settle.SettlementPlatformAccount; import com.clx.performance.model.settle.SettlementPlatformAccount;
import com.clx.performance.param.pc.carrier.CarrierSettlementOwnerDetailCompanyUpdateParam;
import com.clx.performance.param.pc.owner.*; import com.clx.performance.param.pc.owner.*;
import com.clx.performance.service.OwnerAccountService; import com.clx.performance.service.OwnerAccountService;
import com.clx.performance.service.PlatformAccountConfigService; import com.clx.performance.service.PlatformAccountConfigService;
...@@ -61,6 +60,7 @@ import java.time.LocalDateTime; ...@@ -61,6 +60,7 @@ import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.Optional;
/** /**
* @author liruixin * @author liruixin
...@@ -129,6 +129,13 @@ public class SettlementOwnerServiceImpl implements SettlementOwnerService { ...@@ -129,6 +129,13 @@ public class SettlementOwnerServiceImpl implements SettlementOwnerService {
throw new ServiceSystemException(PerformanceResultEnum.SETTLEMENT_ORDER_STATUS_CHANGED); throw new ServiceSystemException(PerformanceResultEnum.SETTLEMENT_ORDER_STATUS_CHANGED);
} }
List<SettlementOwnerDetail> settlementOwnerDetails = settlementOwnerDetailDao.getBySettlementNo(settlementOwner.getSettlementNo());
Optional<SettlementOwnerDetail> optional = settlementOwnerDetails.stream().filter(item -> item.getInvoicingCompanyId() == null).findFirst();
if (optional.isPresent()){
throw new ServiceSystemException(PerformanceResultEnum.SETTLEMENT_OWNER_CONFIRM_SETTLEMENT_ERROR,
"运单"+optional.get().getChildNo()+"需重新分配开票公司,请联系结算人员处理");
}
String settlementNo = settlementOwner.getSettlementNo(); String settlementNo = settlementOwner.getSettlementNo();
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo(); UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
//保存结算单日志----货主确认结算单 //保存结算单日志----货主确认结算单
...@@ -183,9 +190,14 @@ public class SettlementOwnerServiceImpl implements SettlementOwnerService { ...@@ -183,9 +190,14 @@ public class SettlementOwnerServiceImpl implements SettlementOwnerService {
} }
String settlementNo = settlementOwner.getSettlementNo(); String settlementNo = settlementOwner.getSettlementNo();
if (Objects.equals(settlementOwner.getInvoiceType(), SettlementOwnerEnum.InvoiceType.ORDINARY.getCode())) {
settlementOwner.setStatus(SettlementOwnerEnum.Status.OWNER_TO_BE_CONFIRMED.getCode());
}
else {
settlementOwner.setStatus(SettlementOwnerEnum.Status.PLATFORM_TO_BE_CONFIRMED.getCode());
}
settlementOwnerDao.updateStatus(settlementOwner);
settlementOwnerDao.updateStatusBySettlementNo(settlementNo
,SettlementOwnerEnum.Status.PLATFORM_TO_BE_CONFIRMED.getCode());
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo(); UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
//保存结算单日志---- //保存结算单日志----
settlementLogService.saveSettlementLog(settlementNo, settlementLogService.saveSettlementLog(settlementNo,
......
...@@ -4,6 +4,7 @@ import com.clx.performance.model.settle.SettlementDriverDetail; ...@@ -4,6 +4,7 @@ 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.SettlementOrderChildRiskProcessMqParam; import com.clx.performance.vo.mq.settle.SettlementOrderChildRiskProcessMqParam;
import com.clx.performance.vo.mq.settle.SettlementOwnerDetialInvoiceCompanyUpdateMqParam; import com.clx.performance.vo.mq.settle.SettlementOwnerDetialInvoiceCompanyUpdateMqParam;
import com.clx.performance.vo.mq.settle.SettlementPlatformAutoConfirmMqParam;
public interface SettlementMqHandlerService { public interface SettlementMqHandlerService {
...@@ -28,4 +29,7 @@ public interface SettlementMqHandlerService { ...@@ -28,4 +29,7 @@ public interface SettlementMqHandlerService {
void riskProcess(SettlementOrderChildRiskProcessMqParam mq); void riskProcess(SettlementOrderChildRiskProcessMqParam mq);
void invoiceCompanyUpdate(SettlementOwnerDetialInvoiceCompanyUpdateMqParam mq); void invoiceCompanyUpdate(SettlementOwnerDetialInvoiceCompanyUpdateMqParam mq);
void settlementPlatformAutoConfirm(SettlementPlatformAutoConfirmMqParam mq);
} }
...@@ -19,4 +19,6 @@ public interface SettlementMqService { ...@@ -19,4 +19,6 @@ public interface SettlementMqService {
void updateInvoiceCompany(Integer id); void updateInvoiceCompany(Integer id);
void settlementPlatformAutoConfirmUpdate(Integer settlementId);
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论