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

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

......@@ -40,7 +40,6 @@ public class CarrierSettlementOwnerDetailController {
private final SettlementOwnerDetailService settlementOwnerDetailService;
@ApiOperation(value = "运单计费列表(货主)",notes = "<br>By:刘海泉")
@PostMapping("/pageSettlementOwnerDetail")
@UnitCovert(param = false)
......@@ -119,6 +118,14 @@ public class CarrierSettlementOwnerDetailController {
}
}
@ApiOperation(value = "导出货主运单计费",notes = "<br>By:杨启发")
@PostMapping("/exportSettlementOwnerDetail")
public void exportSettlementOwnerDetail(@RequestBody @Validated PageCarrierSettlementOwnerDetailParam param, HttpServletResponse response) throws Exception {
try (SXSSFWorkbook workbook = settlementOwnerDetailService.exportSettlementOwnerDetail(param)) {
response.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_OCTET_STREAM_VALUE);
workbook.write(response.getOutputStream());
}
}
@ApiOperation(value = "批量下载结算运单明细",notes = "<br>By:liruixin")
@PostMapping("/exportBatchSettlementOwnerDetail")
......
......@@ -24,6 +24,7 @@ public class SettlementOrderChildRiskDaoImpl
public boolean updateProcess(SettlementOrderChildRisk item) {
return update(lUdWrapper()
.eq(SettlementOrderChildRisk::getId, item.getId())
.set(SettlementOrderChildRisk::getInvoiceType, item.getInvoiceType())
.set(SettlementOrderChildRisk::getStatus, item.getStatus())
.set(SettlementOrderChildRisk::getProcessMethod, item.getProcessMethod())
.set(SettlementOrderChildRisk::getProcessBy, item.getProcessBy())
......
......@@ -249,6 +249,9 @@ public class OrderChildSyncTransportListener {
dto.setOrderChild(orderChild);
applicationEventPublisher.publishEvent(new OwnerLoanEvent(this, dto));
// 发送mq (运单更新)
orderChildBrokerMqService.orderChildUpdate(settlementOwnerDetail.getChildNo());
}
private void generateTakeOutRunningWatter(OrderChild orderChild, BigDecimal ans, SettlementOwnerDetail settlementOwnerDetail, SettlementDriverDetail settlementDriverDetail) {
......
......@@ -321,7 +321,13 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementOwnerDetail.setInvoiceTypeStatus(SettlementOwnerDetailEnum.InvoiceTypeStatus.FAIL.getCode());
settlementOwnerDetailDao.updateInvoiceTypeStatus(settlementOwnerDetail);
SettlementOrderChildRisk settlementOrderChildRisk = new SettlementOrderChildRisk();
SettlementOrderChildRisk settlementOrderChildRisk = settlementOrderChildRiskDao.findLastByChildNo(mq.getChildNo()).orNull();
if (settlementOrderChildRisk!=null
&& Objects.equals(settlementOrderChildRisk.getStatus(), SettlementOrderChildRiskEnum.Status.INIT.getCode())){
return;
}
settlementOrderChildRisk = new SettlementOrderChildRisk();
settlementOrderChildRisk.setChildNo(orderChild.getChildNo());
settlementOrderChildRisk.setTruckNo(orderChild.getTruckNo());
settlementOrderChildRisk.setDriverName(orderChild.getDriverName());
......@@ -340,9 +346,6 @@ 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);
}
......@@ -379,7 +382,12 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementOwnerDetail.setInvoiceTypeStatus(SettlementOwnerDetailEnum.InvoiceTypeStatus.FAIL.getCode());
settlementOwnerDetailDao.updateInvoiceTypeStatus(settlementOwnerDetail);
SettlementOrderChildRisk settlementOrderChildRisk = new SettlementOrderChildRisk();
SettlementOrderChildRisk settlementOrderChildRisk = settlementOrderChildRiskDao.findLastByChildNo(mq.getChildNo()).orNull();
if (settlementOrderChildRisk!=null
&& Objects.equals(settlementOrderChildRisk.getStatus(), SettlementOrderChildRiskEnum.Status.INIT.getCode())){
return;
}
settlementOrderChildRisk = new SettlementOrderChildRisk();
settlementOrderChildRisk.setChildNo(orderChild.getChildNo());
settlementOrderChildRisk.setTruckNo(orderChild.getTruckNo());
settlementOrderChildRisk.setDriverName(orderChild.getDriverName());
......@@ -445,7 +453,12 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
settlementOwnerDetail.setInvoiceTypeStatus(SettlementOwnerDetailEnum.InvoiceTypeStatus.FAIL.getCode());
settlementOwnerDetailDao.updateInvoiceTypeStatus(settlementOwnerDetail);
SettlementOrderChildRisk settlementOrderChildRisk = new SettlementOrderChildRisk();
SettlementOrderChildRisk settlementOrderChildRisk = settlementOrderChildRiskDao.findLastByChildNo(mq.getChildNo()).orNull();
if (settlementOrderChildRisk!=null
&& Objects.equals(settlementOrderChildRisk.getStatus(), SettlementOrderChildRiskEnum.Status.INIT.getCode())){
return;
}
settlementOrderChildRisk = new SettlementOrderChildRisk();
settlementOrderChildRisk.setChildNo(orderChild.getChildNo());
settlementOrderChildRisk.setTruckNo(orderChild.getTruckNo());
settlementOrderChildRisk.setDriverName(orderChild.getDriverName());
......
......@@ -147,6 +147,11 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS
//借款抵扣金额初始化
settlementOwnerDetail.setLoanFreight(BigDecimal.ZERO);
//设置开票公司信息
settlementOwnerDetail.setInvoicingCompanyId(orderChild.getInvoicingCompanyId());
settlementOwnerDetail.setInvoicingCompanyShorterName(orderChild.getInvoicingCompanyShorterName());
settlementOwnerDetail.setInvoicingCompanyGroupCode(orderChild.getInvoicingCompanyGroupCode());
// 查询开票公司
InvoicingCompanyVO invoiceCompany = invoicingCompanyService.getInvoicingCompany(
settlementOwnerDetail.getInvoicingCompanyId()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
......@@ -171,10 +176,7 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS
settlementCommonService.settlementFreightCalc(orderGoods.getSettlementWay(),settlementOwnerDetail));
settlementOwnerDetail.setFinalPaymentStatus(SettlementOwnerDetailEnum.FinalPaymentStatus.NO.getCode());
//设置开票公司信息
settlementOwnerDetail.setInvoicingCompanyId(orderChild.getInvoicingCompanyId());
settlementOwnerDetail.setInvoicingCompanyShorterName(orderChild.getInvoicingCompanyShorterName());
settlementOwnerDetail.setInvoicingCompanyGroupCode(orderChild.getInvoicingCompanyGroupCode());
settlementOwnerDetail.setReportFlag(orderChild.getReportFlag());
settlementOwnerDetail.setInvoiceChannel(SettlementOwnerDetailEnum.InvoiceChannel.BROKER.getCode());
......@@ -507,6 +509,78 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS
return ExcelUtil.create(excelSheet);
}
@Override
public SXSSFWorkbook exportSettlementOwnerDetail(PageCarrierSettlementOwnerDetailParam param) {
param.setPage(1);
param.setPageSize(1000000);
IPage<CarrierPageSettlementOwnerDetailVO> settlementOwnerDetailPage = pageSettlementOwnerDetail(param);
List<CarrierPageSettlementOwnerDetailVO> list = settlementOwnerDetailPage.getRecords();
// 组装表头
List<ExcelField> fieldList = new ArrayList<>();
fieldList.add(new ExcelField(0, "运单编号", "childNo", 5000));
fieldList.add(new ExcelField(1, "货主编码", "ownerUserNo", 5000));
fieldList.add(new ExcelField(2, "货主名称", "ownerName", 5000));
fieldList.add(new ExcelField(3, "结算方式", "settlementWay", 5000));
fieldList.add(new ExcelField(4, "货物名称", "goodsName", 5000));
fieldList.add(new ExcelField(5, "实际净重(吨)", "weight", 5000));
fieldList.add(new ExcelField(6, "平台运费报价", "freightPrice", 5000));
fieldList.add(new ExcelField(7, "应付运费", "freight", 5000));
fieldList.add(new ExcelField(8, "货损吨数", "lossWeight", 5000));
fieldList.add(new ExcelField(9, "货损单价", "lossPrice", 5000));
fieldList.add(new ExcelField(10, "货损金额", "lossFreight", 5000));
fieldList.add(new ExcelField(11, "管理费率(%)", "invoiceServiceFeeRate", 5000));
fieldList.add(new ExcelField(12, "管理费", "invoiceServiceFee", 5000));
fieldList.add(new ExcelField(13, "预付运费金额", "prepayFreight", 5000));
fieldList.add(new ExcelField(14, "借款抵扣金额", "loanFreight", 5000));
fieldList.add(new ExcelField(15, "结算金额", "settlementFreight", 5000));
fieldList.add(new ExcelField(16, "开票金额", "invoiceFreight", 5000));
fieldList.add(new ExcelField(17, "开票公司", "invoicingCompanyShorterName", 5000));
fieldList.add(new ExcelField(18, "开票标识", "invoiceType", 5000));
fieldList.add(new ExcelField(19, "订单编号", "orderNo", 5000));
fieldList.add(new ExcelField(20, "结算单号", "settlementNo", 5000));
fieldList.add(new ExcelField(21, "创建时间", "createTime", 5000));
// 组装数据
List<List<ExcelData>> dataList = new ArrayList<>();
for (CarrierPageSettlementOwnerDetailVO dto : list) {
List<ExcelData> rowData = new ArrayList<>();
rowData.add(new ExcelData(dto.getChildNo()));
rowData.add(new ExcelData(dto.getOwnerUserNo()+""));
rowData.add(new ExcelData(dto.getOwnerName()));
rowData.add(new ExcelData(SettlementWayEnum.WayType.getMsgByCode(dto.getSettlementWay())));
rowData.add(new ExcelData(dto.getGoodsName()));
rowData.add(new ExcelData(dto.getWeight()));
rowData.add(new ExcelData(dto.getFreightPrice()==null?null:dto.getFreightPrice().movePointLeft(2)));
rowData.add(new ExcelData(dto.getFreight()==null?null:dto.getFreight().movePointLeft(2)));
rowData.add(new ExcelData(dto.getLossWeight()));
rowData.add(new ExcelData(dto.getLossPrice()==null?null:dto.getLossPrice().movePointLeft(2)));
rowData.add(new ExcelData(dto.getLossFreight()==null?null:dto.getLossFreight().movePointLeft(2)));
rowData.add(new ExcelData(dto.getInvoiceServiceFeeRate()));
rowData.add(new ExcelData(dto.getInvoiceServiceFee()==null?null:dto.getInvoiceServiceFee().movePointLeft(2)));
rowData.add(new ExcelData(dto.getPrepayFreight()==null?null:dto.getPrepayFreight().movePointLeft(2)));
rowData.add(new ExcelData(dto.getLoanFreight()==null?null:dto.getLoanFreight().movePointLeft(2)));
rowData.add(new ExcelData(dto.getSettlementFreight()==null?null:dto.getSettlementFreight().movePointLeft(2)));
rowData.add(new ExcelData(dto.getInvoiceFreight()==null?null:dto.getInvoiceFreight().movePointLeft(2)));
rowData.add(new ExcelData(dto.getInvoicingCompanyShorterName()));
rowData.add(new ExcelData(SettlementOwnerEnum.InvoiceType.getMsgByCode(dto.getInvoiceType())));
rowData.add(new ExcelData(dto.getOrderNo()));
rowData.add(new ExcelData(dto.getSettlementNo()));
rowData.add(new ExcelData(dto.getCreateTime()));
dataList.add(rowData);
}
ExcelSheet excelSheet = new ExcelSheet("货主运单计费", "货主运单计费", fieldList, dataList);
//创建excel
return ExcelUtil.create(excelSheet);
}
@Override
public SXSSFWorkbook exportBatchSettlementOwnerDetail(ExportBatchOwnerSettlementDetailParam param) {
//通过结算单号查询结算运单明细
......
......@@ -51,6 +51,8 @@ public interface SettlementOwnerDetailService {
SXSSFWorkbook exportPendingSettlementOwnerDetail(PagePendingCarrierSettlementOwnerDetailParam param);
SXSSFWorkbook exportSettlementOwnerDetail(PageCarrierSettlementOwnerDetailParam param);
SXSSFWorkbook exportBatchSettlementOwnerDetail(ExportBatchOwnerSettlementDetailParam param);
SXSSFWorkbook exportInvoiceOwnerSettlementOrderDetail(PageInvoiceOwnerSettlementOwnerDetailParam param);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论