提交 8bd93a60 authored 作者: 杨启发's avatar 杨启发

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

......@@ -95,6 +95,14 @@ public class SettlementOwnerDaoImpl extends BaseDaoImpl<SettlementOwnerMapper, S
);
}
@Override
public boolean updateInvoiceStatusAndStatus(SettlementOwner item){
return update(lUdWrapper()
.eq(SettlementOwner::getId, item.getId())
.set(SettlementOwner::getInvoiceStatus, item.getInvoiceStatus())
.set(SettlementOwner::getStatus, item.getStatus())
);
}
@Override
public boolean updatePayment(SettlementOwner settlementOwner) {
return update(lUdWrapper()
.eq(SettlementOwner::getSettlementNo, settlementOwner.getSettlementNo())
......
......@@ -130,12 +130,16 @@ public class SettlementOwnerDetailDaoImpl extends BaseDaoImpl<SettlementOwnerDet
}
@Override
public boolean updateInvoiceCompany(List<Integer> idList, Integer companyId, String companyShorterName, String companyGroupCode) {
public boolean updateInvoiceCompany(List<Integer> idList, Integer companyId,
String companyShorterName, String companyGroupCode,
String invoicingCompanyModifiedBy, LocalDateTime invoicingCompanyModifiedTime) {
return update(lUdWrapper()
.in(SettlementOwnerDetail::getId, idList)
.set(SettlementOwnerDetail::getInvoicingCompanyId, companyId)
.set(SettlementOwnerDetail::getInvoicingCompanyShorterName, companyShorterName)
.set(SettlementOwnerDetail::getInvoicingCompanyGroupCode, companyGroupCode)
.set(SettlementOwnerDetail::getInvoicingCompanyModifiedBy, invoicingCompanyModifiedBy)
.set(SettlementOwnerDetail::getInvoicingCompanyModifiedTime, invoicingCompanyModifiedTime)
);
}
......
......@@ -29,6 +29,8 @@ public interface SettlementOwnerDao extends BaseDao<SettlementOwnerMapper, Settl
boolean updateInvoiceStatusById(@Param("id")Integer id, @Param("invoiceStatus")Integer invoiceStatus);
boolean updateInvoiceStatusAndStatus(SettlementOwner item);
boolean updatePayment(SettlementOwner settlementOwner);
......
......@@ -12,6 +12,7 @@ import com.msl.common.base.Optional;
import com.msl.common.dao.BaseDao;
import org.apache.ibatis.annotations.Param;
import java.time.LocalDateTime;
import java.util.List;
......@@ -36,7 +37,9 @@ public interface SettlementOwnerDetailDao extends BaseDao<SettlementOwnerDetailM
boolean updateFinalPaymentStatusBySettlementNo(@Param("settlementNo")String settlementNo, @Param("finalPaymentStatus")Integer finalPaymentStatus);
boolean updateInvoiceCompany(List<Integer> idList, Integer companyId, String companyShorterName, String companyGroupCode);
boolean updateInvoiceCompany(List<Integer> idList, Integer companyId,
String companyShorterName, String companyGroupCode,
String invoicingCompanyModifiedBy, LocalDateTime invoicingCompanyModifiedTime);
Optional<SettlementOwnerDetail> findById(Integer id);
......
......@@ -223,23 +223,7 @@ public class OrderChildSyncTransportListener {
if (settlementOwnerDetail.getSettlementFreight().compareTo(BigDecimal.ZERO) == 0) {
settlementOwnerDetail.setFinalPaymentStatus(SettlementOwnerDetailEnum.FinalPaymentStatus.NO_REQUIRE.getCode());
}
// 如果开票标识为“普通单”时,开票费率从开票公司“五寨华祥”中获取
InvoicingCompanyVO invoiceCompany = invoicingCompanyService.getInvoicingCompanyByGroupCode(
settlementConfig.getOrdinaryInvoiceCompanyGroupCode());
//设置开票公司信息
settlementOwnerDetail.setInvoicingCompanyId(invoiceCompany.getId());
settlementOwnerDetail.setInvoicingCompanyShorterName(invoiceCompany.getCompanyShorterName());
settlementOwnerDetail.setInvoicingCompanyGroupCode(invoiceCompany.getCompanyGroupCode());
settlementOwnerDetail.setInvoiceServiceFeeRate(BigDecimal.ZERO);
if (Objects.equals(invoiceCompany.getQuotationType(), InvoicingCompanyEnum.TaxType.TAX_EXCLUDED.getCode())) {
settlementOwnerDetail.setInvoiceServiceFeeRate(
invoiceCompany.getServiceFeeRate() == null ? BigDecimal.ZERO : invoiceCompany.getServiceFeeRate());
}
settlementDriverDetail.setInvoicingCompanyId(invoiceCompany.getId());
settlementDriverDetail.setInvoicingCompanyShorterName(invoiceCompany.getCompanyShorterName());
settlementDriverDetail.setInvoicingCompanyGroupCode(invoiceCompany.getCompanyGroupCode());
} else {
if (settlementDriverDetail.getSettlementFreight().compareTo(BigDecimal.ZERO) == 0) {
settlementOwnerDetail.setFinalPaymentStatus(SettlementOwnerDetailEnum.FinalPaymentStatus.NO_REQUIRE.getCode());
......
......@@ -11,6 +11,7 @@ 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.OrderChildBrokerMqService;
import com.clx.performance.service.broker.OrderChildBrokerService;
import com.clx.performance.vo.mq.broker.BrokerOrderChildSyncMqParam;
import com.clx.performance.vo.mq.broker.BrokerOrderChildUpdateMqParam;
......@@ -19,11 +20,14 @@ import org.apache.commons.lang3.exception.ExceptionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.Objects;
@Slf4j
@Service
public class OrderChildBrokerMqHandlerServiceImpl implements OrderChildBrokerMqHandlerService {
private static final Integer DELAY_TIME = 20;
@Autowired
private OrderGoodsDao orderGoodsDao;
@Autowired
......@@ -34,6 +38,8 @@ public class OrderChildBrokerMqHandlerServiceImpl implements OrderChildBrokerMqH
private SettlementDriverDetailDao settlementDriverDetailDao;
@Autowired
private OrderChildBrokerService orderChildBrokerService;
@Autowired
private OrderChildBrokerMqService orderChildBrokerMqService;
@Override
public void orderChildSync(BrokerOrderChildSyncMqParam mq) {
......@@ -81,6 +87,13 @@ public class OrderChildBrokerMqHandlerServiceImpl implements OrderChildBrokerMqH
return;
}
// 延迟推送
if (settlementOwnerDetail.getCreateTime().isAfter(LocalDateTime.now().minusSeconds(DELAY_TIME))){
// 发送mq (运单更新)
orderChildBrokerMqService.orderChildUpdate(childNo);
return;
}
try{
// 更新broker
orderChildBrokerService.orderChildUpdate(orderChild, orderGoods, settlementOwnerDetail, settlementDriverDetail);
......
......@@ -272,7 +272,8 @@ public class OrderChildBrokerServiceImpl implements OrderChildBrokerService {
orderChildInfo.setReceiveTare(orderChild.getUnloadTare());
orderChildInfo.setReceiveRough(orderChild.getUnloadRough());
orderChildInfo.setReceiveNet(orderChild.getUnloadNet());
orderChildInfo.setInvoiceFlag(Objects.equals(settlementOwnerDetail.getInvoiceType(),
orderChildInfo.setInvoiceFlag(settlementOwnerDetail.getInvoiceType()==null? null
:Objects.equals(settlementOwnerDetail.getInvoiceType(),
SettlementOwnerEnum.InvoiceType.ONLINE.getCode())? 2 : 1);
orderChildInfo.setInvoicePlatform(settlementOwnerDetail.getInvoicingCompanyShorterName());
orderChildInfo.setInvoiceStatus(Objects.equals(settlementOwnerDetail.getInvoiceStatus(),
......
......@@ -60,6 +60,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
@Slf4j
@Service
......@@ -339,6 +340,9 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementOwnerDetail.setInvoiceTypeStatus(SettlementOwnerDetailEnum.InvoiceTypeStatus.SUCCESS.getCode());
settlementOwnerDetailDao.updateInvoiceTypeStatus(settlementOwnerDetail);
// 发送mq (运单更新)
orderChildBrokerMqService.orderChildUpdate(settlementOwnerDetail.getChildNo());
// 发送mq (结算)
settlementMqService.settle(orderChild.getChildNo(), invoiceType, remark);
}
......@@ -374,6 +378,9 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
ApplicationContextUtils.getBean(SettlementOwnerService.class)
.invoicingStatusNotify(invoicingStatusNotifyDTO);
// 发送mq (运单更新)
orderChildBrokerMqService.orderChildUpdate(settlementOwnerDetail.getChildNo());
}
}
......@@ -428,6 +435,9 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
// 发送mq (结算单平台自动确认)
settlementMqService.settlementPlatformAutoConfirmUpdate(settlementOwnerDetail.getSettlementNo());
// 发送mq (运单更新)
orderChildBrokerMqService.orderChildUpdate(settlementOwnerDetail.getChildNo());
}
else if (Objects.equals(result.getSettleStatus(), 3) ) {
SettlementOrderChildRisk settlementOrderChildRisk = new SettlementOrderChildRisk();
......@@ -719,6 +729,11 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementOwner.setReportFlag(orderInfo.getReportFlag());
// 开票服务费
settlementOwner.setInvoiceServiceFee(settlementOwnerDetail.getInvoiceServiceFee());
settlementOwner.setDriverFreight(settlementOwnerDetail.getDriverFreight());
settlementOwner.setLoadNet(settlementOwnerDetail.getLoadNet());
settlementOwner.setUnloadNet(settlementOwnerDetail.getUnloadNet());
settlementOwnerDao.saveEntity(settlementOwner);
//保存结算单日志----创建结算单
......@@ -792,8 +807,9 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementOwner.setUnloadNet(BigDecimal.ZERO);
List<SettlementOwnerDetail> details = settlementOwnerDetailDao.getBySettlementNo(settlementOwner.getSettlementNo());
details.forEach(item->{
details.stream().filter(item->!Objects.equals(item.getChildNo(), settlementOwnerDetail.getChildNo()))
.collect(Collectors.toList())
.forEach(item->{
settlementOwner.setWeight(settlementOwner.getWeight().add(item.getWeight()));
settlementOwner.setFreight(settlementOwner.getFreight().add(item.getFreight()));
settlementOwner.setLossWeight(settlementOwner.getLossWeight().add(item.getLossWeight()));
......
......@@ -52,10 +52,13 @@ import java.util.stream.Collectors;
import com.msl.common.result.Result;
import com.msl.document.api.feign.FileUploadFeign;
import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import static com.clx.performance.enums.PerformanceResultEnum.DATA_NOT_FIND;
......@@ -169,8 +172,10 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS
return settlementOwnerDetail.getId();
}
@Transactional(rollbackFor = Exception.class)
@Override
public void updateInvoiceCompany(CarrierSettlementOwnerDetailCompanyUpdateParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
List<SettlementOwnerDetail> list = settlementOwnerDetailDao.findListByIdList(param.getIdList());
for (SettlementOwnerDetail item : list) {
......@@ -180,7 +185,8 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS
}
settlementOwnerDetailDao.updateInvoiceCompany(param.getIdList(), param.getCompanyId(),
param.getCompanyShorterName(), param.getCompanyGroupCode());
param.getCompanyShorterName(), param.getCompanyGroupCode(),
loginUserInfo.getUserName(), LocalDateTime.now());
// 更新开票公司
settlementPostService.updateInvoiceCompany(list);
......
......@@ -582,6 +582,7 @@ public class SettlementOwnerServiceImpl implements SettlementOwnerService {
}
@Deprecated
@Override
public void saveExpress(SaveExpressParam param){
String settlementNo = param.getSettlementNo();
......@@ -688,7 +689,21 @@ public class SettlementOwnerServiceImpl implements SettlementOwnerService {
networkSyncComponent.ownerSettlementSync(settlementOwner,settlementOwnerDetailList);
}else{
settlementOwnerDao.updateStatusBySettlementNo(settlementNo,SettlementOwnerEnum.Status.INVOICE_TO_BE_MAILED.getCode());
if(Objects.equals(settlementOwner.getInvoiceType(),SettlementOwnerEnum.InvoiceType.ORDINARY.getCode())){
int invoiceStatus;
int detailInvoiceStatus;
if(settlementOwner.getInvoiceFreight().compareTo(BigDecimal.ZERO) > 0 ){ //结算单开票金额>0结算单填写发票物流单号以后,更新状态为“是”
invoiceStatus = SettlementOwnerEnum.InvoiceStatus.INVOICED.getCode();
detailInvoiceStatus = SettlementOwnerDetailEnum.InvoiceStatus.YES.getCode();
}else{ //结算单开票金额<=0的结算单,货主确认结算单后,更新状态为“无需开票”
invoiceStatus = SettlementOwnerEnum.InvoiceStatus.NO_NEED_INVOICE.getCode();
detailInvoiceStatus = SettlementOwnerDetailEnum.InvoiceStatus.NO_INVOICE.getCode();
}
settlementOwner.setInvoiceStatus(invoiceStatus);
settlementOwnerDetailDao.updateInvoiceStatusBySettlementNo(settlementNo, detailInvoiceStatus);
}
settlementOwner.setStatus(SettlementOwnerEnum.Status.COMPLETED.getCode());
settlementOwnerDao.updateInvoiceStatusAndStatus(settlementOwner);
}
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论