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

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

...@@ -107,4 +107,14 @@ public class TempSettlementController { ...@@ -107,4 +107,14 @@ public class TempSettlementController {
return Result.ok(); return Result.ok();
} }
@ApiOperation(value = "开票公司更新", notes = "<br>By:艾庆国")
@RequestMapping(value = "/updateInvoiceCompany", method = RequestMethod.GET)
public Result updateInvoiceCompany(Integer id) {
// 发送mq (开票公司更新)
settlementMqService.updateInvoiceCompany(id);
return Result.ok();
}
} }
...@@ -46,6 +46,7 @@ public class SettlementOrderChildRiskDaoImpl ...@@ -46,6 +46,7 @@ public class SettlementOrderChildRiskDaoImpl
.map(item -> lQrWrapper() .map(item -> lQrWrapper()
.eq(SettlementOrderChildRisk::getChildNo, childNo) .eq(SettlementOrderChildRisk::getChildNo, childNo)
.orderByDesc(SettlementOrderChildRisk::getId) .orderByDesc(SettlementOrderChildRisk::getId)
.last("limit 1")
) )
.map(super::getOne); .map(super::getOne);
} }
......
...@@ -19,6 +19,7 @@ import com.msl.common.dao.impl.BaseDaoImpl; ...@@ -19,6 +19,7 @@ import com.msl.common.dao.impl.BaseDaoImpl;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
...@@ -74,10 +75,11 @@ public class SettlementOwnerDetailDaoImpl extends BaseDaoImpl<SettlementOwnerDet ...@@ -74,10 +75,11 @@ public class SettlementOwnerDetailDaoImpl extends BaseDaoImpl<SettlementOwnerDet
return update(lUdWrapper() return update(lUdWrapper()
.eq(SettlementOwnerDetail::getId, item.getId()) .eq(SettlementOwnerDetail::getId, item.getId())
.set(SettlementOwnerDetail::getInvoiceType, item.getInvoiceType()) .set(SettlementOwnerDetail::getInvoiceType, item.getInvoiceType())
.set(SettlementOwnerDetail::getInvoiceStatus, item.getInvoiceStatus()) .set(SettlementOwnerDetail::getInvoiceTypeStatus, item.getInvoiceTypeStatus())
.set(SettlementOwnerDetail::getInvoicingCompanyId, item.getInvoicingCompanyId()) .set(SettlementOwnerDetail::getInvoicingCompanyId, item.getInvoicingCompanyId())
.set(SettlementOwnerDetail::getInvoicingCompanyShorterName, item.getInvoicingCompanyShorterName()) .set(SettlementOwnerDetail::getInvoicingCompanyShorterName, item.getInvoicingCompanyShorterName())
.set(SettlementOwnerDetail::getInvoicingCompanyGroupCode, item.getInvoicingCompanyGroupCode()) .set(SettlementOwnerDetail::getInvoicingCompanyGroupCode, item.getInvoicingCompanyGroupCode())
.set(SettlementOwnerDetail::getInvoiceTypeModifiedTime, item.getInvoiceTypeModifiedTime())
); );
} }
...@@ -87,6 +89,7 @@ public class SettlementOwnerDetailDaoImpl extends BaseDaoImpl<SettlementOwnerDet ...@@ -87,6 +89,7 @@ public class SettlementOwnerDetailDaoImpl extends BaseDaoImpl<SettlementOwnerDet
.eq(SettlementOwnerDetail::getId, item.getId()) .eq(SettlementOwnerDetail::getId, item.getId())
.set(SettlementOwnerDetail::getInvoiceType, item.getInvoiceType()) .set(SettlementOwnerDetail::getInvoiceType, item.getInvoiceType())
.set(SettlementOwnerDetail::getInvoiceFreight, item.getInvoiceFreight()) .set(SettlementOwnerDetail::getInvoiceFreight, item.getInvoiceFreight())
.set(SettlementOwnerDetail::getInvoiceStatus, item.getInvoiceStatus())
.set(SettlementOwnerDetail::getSettlementFreight, item.getSettlementFreight()) .set(SettlementOwnerDetail::getSettlementFreight, item.getSettlementFreight())
.set(SettlementOwnerDetail::getFinalPaymentStatus, item.getFinalPaymentStatus()) .set(SettlementOwnerDetail::getFinalPaymentStatus, item.getFinalPaymentStatus())
.set(SettlementOwnerDetail::getPrepayFreight, item.getPrepayFreight()) .set(SettlementOwnerDetail::getPrepayFreight, item.getPrepayFreight())
......
...@@ -7,12 +7,15 @@ import com.clx.performance.dao.settle.SettlementOwnerDetailDao; ...@@ -7,12 +7,15 @@ import com.clx.performance.dao.settle.SettlementOwnerDetailDao;
import com.clx.performance.dto.excel.InvoiceData; import com.clx.performance.dto.excel.InvoiceData;
import com.clx.performance.model.settle.SettlementOwnerDetail; import com.clx.performance.model.settle.SettlementOwnerDetail;
import com.clx.performance.param.pc.owner.PageInvoiceOwnerSettlementOwnerDetailParam; import com.clx.performance.param.pc.owner.PageInvoiceOwnerSettlementOwnerDetailParam;
import com.msl.common.exception.ServiceSystemException;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.List;
import java.util.Map;
import static com.clx.performance.enums.PerformanceResultEnum.DATA_NOT_FIND;
import static com.clx.performance.enums.settle.SettlementOwnerDetailEnum.InvoiceStatus.NO; import static com.clx.performance.enums.settle.SettlementOwnerDetailEnum.InvoiceStatus.NO;
import static com.clx.performance.enums.settle.SettlementOwnerEnum.InvoiceType.ORDINARY; import static com.clx.performance.enums.settle.SettlementOwnerEnum.InvoiceType.ORDINARY;
...@@ -49,5 +52,18 @@ public class InvoiceDataListener extends AnalysisEventListener<InvoiceData> { ...@@ -49,5 +52,18 @@ public class InvoiceDataListener extends AnalysisEventListener<InvoiceData> {
// 解析完成后调用 // 解析完成后调用
// 可在此进行后续操作,如保存数据到数据库 // 可在此进行后续操作,如保存数据到数据库
} }
@Override
public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
// 解析表头时调用
// 可在此进行表头校验等操作
//模板有3列,模板第1列是运单编号,第2列是开票标识,第3列是开票金额,校验上传的Excel是否是这个模板
if (headMap.size() != 3) {
throw new ServiceSystemException(DATA_NOT_FIND,"上传文件格式错误");
}
if (!headMap.get(0).equals("运单编号") || !headMap.get(1).equals("开票标识") || !headMap.get(2).equals("开票金额")) {
throw new ServiceSystemException(DATA_NOT_FIND,"上传文件格式错误");
}
}
} }
...@@ -3,12 +3,15 @@ package com.clx.performance.service.impl.broker; ...@@ -3,12 +3,15 @@ package com.clx.performance.service.impl.broker;
import com.clx.performance.dao.OrderChildDao; import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.OrderGoodsDao; import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.dao.settle.SettlementDriverDetailDao; 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.dao.settle.SettlementOwnerDetailDao;
import com.clx.performance.enums.PerformanceResultEnum; import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.settle.SettlementOrderChildRiskEnum;
import com.clx.performance.enums.settle.SettlementOwnerDetailEnum; import com.clx.performance.enums.settle.SettlementOwnerDetailEnum;
import com.clx.performance.model.OrderChild; import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderGoods; import com.clx.performance.model.OrderGoods;
import com.clx.performance.model.settle.SettlementDriverDetail; 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.model.settle.SettlementOwnerDetail;
import com.clx.performance.service.broker.OrderChildBrokerMqHandlerService; import com.clx.performance.service.broker.OrderChildBrokerMqHandlerService;
import com.clx.performance.service.broker.OrderChildBrokerMqService; import com.clx.performance.service.broker.OrderChildBrokerMqService;
...@@ -19,6 +22,7 @@ import lombok.extern.slf4j.Slf4j; ...@@ -19,6 +22,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.exception.ExceptionUtils; import org.apache.commons.lang3.exception.ExceptionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Objects; import java.util.Objects;
...@@ -40,9 +44,38 @@ public class OrderChildBrokerMqHandlerServiceImpl implements OrderChildBrokerMqH ...@@ -40,9 +44,38 @@ public class OrderChildBrokerMqHandlerServiceImpl implements OrderChildBrokerMqH
private OrderChildBrokerService orderChildBrokerService; private OrderChildBrokerService orderChildBrokerService;
@Autowired @Autowired
private OrderChildBrokerMqService orderChildBrokerMqService; private OrderChildBrokerMqService orderChildBrokerMqService;
@Autowired
private SettlementOrderChildRiskDao settlementOrderChildRiskDao;
@Transactional(rollbackFor = Exception.class)
@Override @Override
public void orderChildSync(BrokerOrderChildSyncMqParam mq) { public void orderChildSync(BrokerOrderChildSyncMqParam mq) {
try{
doOrderChildSync(mq);
}catch (Exception e){
log.info("无车承运-运单同步 失败,msg:{}", ExceptionUtils.getStackTrace(e));
OrderChild orderChild = orderChildDao
.getByChildNo(mq.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
SettlementOwnerDetail settlementOwnerDetail = settlementOwnerDetailDao
.getByChildNo(orderChild.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
SettlementOrderChildRisk settlementOrderChildRisk = new SettlementOrderChildRisk();
settlementOrderChildRisk.setChildNo(orderChild.getChildNo());
settlementOrderChildRisk.setTruckNo(orderChild.getTruckNo());
settlementOrderChildRisk.setDriverName(orderChild.getDriverName());
settlementOrderChildRisk.setDriverMobile(orderChild.getDriverMobile());
settlementOrderChildRisk.setGoodsName(orderChild.getGoodsName());
settlementOrderChildRisk.setInvoiceType(settlementOwnerDetail.getInvoiceType());
settlementOrderChildRisk.setPoundAuditTime(settlementOwnerDetail.getPoundAuditTime());
settlementOrderChildRisk.setRiskType(SettlementOrderChildRiskEnum.RiskType.SETTLE_FAIL.getCode());
settlementOrderChildRisk.setRiskRemark("同步无车承运异常");
settlementOrderChildRiskDao.saveEntity(settlementOrderChildRisk);
}
}
public void doOrderChildSync(BrokerOrderChildSyncMqParam mq){
String childNo = mq.getChildNo(); String childNo = mq.getChildNo();
Integer invoiceType = mq.getInvoiceType(); Integer invoiceType = mq.getInvoiceType();
......
...@@ -139,13 +139,13 @@ public class SettlementDriverServiceImpl implements SettlementDriverService { ...@@ -139,13 +139,13 @@ public class SettlementDriverServiceImpl implements SettlementDriverService {
rowData.add(new ExcelData(vo.getTruckNo())); rowData.add(new ExcelData(vo.getTruckNo()));
rowData.add(new ExcelData(vo.getInvoiceType()==null?null:SettlementDriverEnum.InvoiceType.getMsgByCode(vo.getInvoiceType()))); rowData.add(new ExcelData(vo.getInvoiceType()==null?null:SettlementDriverEnum.InvoiceType.getMsgByCode(vo.getInvoiceType())));
rowData.add(new ExcelData(vo.getWeight())); rowData.add(new ExcelData(vo.getWeight()));
rowData.add(new ExcelData(vo.getFreightPrice())); rowData.add(new ExcelData(vo.getFreightPrice()==null?null:vo.getFreightPrice().movePointLeft(2)));
rowData.add(new ExcelData(vo.getFreight())); rowData.add(new ExcelData(vo.getFreight()==null?null:vo.getFreight().movePointLeft(2)));
rowData.add(new ExcelData(vo.getLossPrice())); rowData.add(new ExcelData(vo.getLossPrice()==null?null:vo.getLossPrice().movePointLeft(2)));
rowData.add(new ExcelData(vo.getLossWeight())); rowData.add(new ExcelData(vo.getLossWeight()));
rowData.add(new ExcelData(vo.getLossFreight())); rowData.add(new ExcelData(vo.getLossFreight()==null?null:vo.getLossFreight().movePointLeft(2)));
rowData.add(new ExcelData(vo.getSettlementFreight())); rowData.add(new ExcelData(vo.getSettlementFreight()==null?null:vo.getSettlementFreight().movePointLeft(2)));
rowData.add(new ExcelData(SettlementDriverEnum.Status.getMsgByCode(vo.getStatus()))); rowData.add(new ExcelData(SettlementDriverEnum.Status.getMsgByCode(vo.getStatus())));
rowData.add(new ExcelData("-")); rowData.add(new ExcelData("-"));
......
...@@ -843,6 +843,7 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic ...@@ -843,6 +843,7 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
return uniqueOrderNumService.getUniqueOrderNum(com.msl.common.utils.LocalDateTimeUtils.convertLocalDateTimeToString(LocalDateTime.now(), com.msl.common.utils.LocalDateTimeUtils.DATE_DAY)); return uniqueOrderNumService.getUniqueOrderNum(com.msl.common.utils.LocalDateTimeUtils.convertLocalDateTimeToString(LocalDateTime.now(), com.msl.common.utils.LocalDateTimeUtils.DATE_DAY));
} }
@Transactional(rollbackFor = Exception.class)
@Override @Override
public void riskProcess(SettlementOrderChildRiskProcessMqParam mq) { public void riskProcess(SettlementOrderChildRiskProcessMqParam mq) {
SettlementOrderChildRisk settlementOrderChildRisk = settlementOrderChildRiskDao.getById(mq.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND); SettlementOrderChildRisk settlementOrderChildRisk = settlementOrderChildRiskDao.getById(mq.getId()).orElseThrow(ResultEnum.DATA_NOT_FIND);
...@@ -865,6 +866,7 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic ...@@ -865,6 +866,7 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
} }
@Transactional(rollbackFor = Exception.class)
@Override @Override
public void invoiceCompanyUpdate(SettlementOwnerDetialInvoiceCompanyUpdateMqParam mq) { public void invoiceCompanyUpdate(SettlementOwnerDetialInvoiceCompanyUpdateMqParam mq) {
...@@ -908,6 +910,9 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic ...@@ -908,6 +910,9 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementOwnerDetail.setFinalPaymentStatus(SettlementOwnerDetailEnum.FinalPaymentStatus.NO_REQUIRE.getCode()); settlementOwnerDetail.setFinalPaymentStatus(SettlementOwnerDetailEnum.FinalPaymentStatus.NO_REQUIRE.getCode());
} }
if (settlementOwnerDetail.getInvoiceFreight().compareTo(BigDecimal.ZERO) <= 0) {
settlementOwnerDetail.setInvoiceStatus(SettlementOwnerDetailEnum.InvoiceStatus.NO_INVOICE.getCode());
}
settlementDriverDetail.setInvoicingCompanyId(settlementOwnerDetail.getInvoicingCompanyId()); settlementDriverDetail.setInvoicingCompanyId(settlementOwnerDetail.getInvoicingCompanyId());
settlementDriverDetail.setInvoicingCompanyShorterName(settlementOwnerDetail.getInvoicingCompanyShorterName()); settlementDriverDetail.setInvoicingCompanyShorterName(settlementOwnerDetail.getInvoicingCompanyShorterName());
settlementDriverDetail.setInvoicingCompanyGroupCode(settlementOwnerDetail.getInvoicingCompanyGroupCode()); settlementDriverDetail.setInvoicingCompanyGroupCode(settlementOwnerDetail.getInvoicingCompanyGroupCode());
...@@ -940,6 +945,7 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic ...@@ -940,6 +945,7 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
} }
@Transactional(rollbackFor = Exception.class)
@Override @Override
public void settlementPlatformAutoConfirm(SettlementPlatformAutoConfirmMqParam mq) { public void settlementPlatformAutoConfirm(SettlementPlatformAutoConfirmMqParam mq) {
SettlementOwner settlementOwner = settlementOwnerDao SettlementOwner settlementOwner = settlementOwnerDao
......
...@@ -30,6 +30,7 @@ import lombok.extern.slf4j.Slf4j; ...@@ -30,6 +30,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.poi.xssf.streaming.SXSSFWorkbook; import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -52,6 +53,7 @@ public class SettlementOrderChildRiskServiceImpl implements SettlementOrderChild ...@@ -52,6 +53,7 @@ public class SettlementOrderChildRiskServiceImpl implements SettlementOrderChild
@Autowired @Autowired
private SettlementMqService settlementMqService; private SettlementMqService settlementMqService;
@Transactional(rollbackFor = Exception.class)
@Override @Override
public void updateRiskProcess(OwnerSettlementOrderChildRiskProcessUpdateParam param) { public void updateRiskProcess(OwnerSettlementOrderChildRiskProcessUpdateParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo(); UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
...@@ -80,6 +82,7 @@ public class SettlementOrderChildRiskServiceImpl implements SettlementOrderChild ...@@ -80,6 +82,7 @@ public class SettlementOrderChildRiskServiceImpl implements SettlementOrderChild
settlementOwnerDetail.setInvoicingCompanyShorterName(null); settlementOwnerDetail.setInvoicingCompanyShorterName(null);
settlementOwnerDetail.setInvoicingCompanyGroupCode(null); settlementOwnerDetail.setInvoicingCompanyGroupCode(null);
settlementOwnerDetail.setInvoiceTypeStatus(SettlementOwnerDetailEnum.InvoiceTypeStatus.SUCCESS.getCode()); settlementOwnerDetail.setInvoiceTypeStatus(SettlementOwnerDetailEnum.InvoiceTypeStatus.SUCCESS.getCode());
settlementOwnerDetail.setInvoiceTypeModifiedTime(LocalDateTime.now());
settlementOwnerDetailDao.updateConvertOrdinary(settlementOwnerDetail); settlementOwnerDetailDao.updateConvertOrdinary(settlementOwnerDetail);
settlementDriverDetail.setInvoiceType(settlementOwnerDetail.getInvoiceType()); settlementDriverDetail.setInvoiceType(settlementOwnerDetail.getInvoiceType());
......
...@@ -689,18 +689,9 @@ public class SettlementOwnerServiceImpl implements SettlementOwnerService { ...@@ -689,18 +689,9 @@ public class SettlementOwnerServiceImpl implements SettlementOwnerService {
networkSyncComponent.ownerSettlementSync(settlementOwner,settlementOwnerDetailList); networkSyncComponent.ownerSettlementSync(settlementOwner,settlementOwnerDetailList);
}else{ }else{
if(Objects.equals(settlementOwner.getInvoiceType(),SettlementOwnerEnum.InvoiceType.ORDINARY.getCode())){ // 小于0不开票
int invoiceStatus; if(settlementOwner.getInvoiceFreight().compareTo(BigDecimal.ZERO) <= 0 ) {
int detailInvoiceStatus; settlementOwner.setInvoiceStatus(SettlementOwnerEnum.InvoiceStatus.NO_NEED_INVOICE.getCode());
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()); settlementOwner.setStatus(SettlementOwnerEnum.Status.COMPLETED.getCode());
settlementOwnerDao.updateInvoiceStatusAndStatus(settlementOwner); settlementOwnerDao.updateInvoiceStatusAndStatus(settlementOwner);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论