提交 e8f79b5f authored 作者: jiangwujie's avatar jiangwujie

Merge remote-tracking branch 'origin/dev' into dev

...@@ -11,6 +11,6 @@ import lombok.ToString; ...@@ -11,6 +11,6 @@ import lombok.ToString;
@NoArgsConstructor @NoArgsConstructor
public class SettlementPlatformAutoConfirmMqParam { public class SettlementPlatformAutoConfirmMqParam {
private Integer settlementId; //id private String settlementNo;
} }
package com.clx.performance.vo.pc.owner.settle; package com.clx.performance.vo.pc.owner.settle;
import com.clx.performance.enums.settle.SettlementOwnerEnum;
import com.clx.performance.enums.settle.SettlementWayEnum;
import com.msl.common.convertor.type.MoneyOutConvert; import com.msl.common.convertor.type.MoneyOutConvert;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Getter; import lombok.Getter;
...@@ -23,6 +25,11 @@ public class OwnerPageSettlementOwnerVO { ...@@ -23,6 +25,11 @@ public class OwnerPageSettlementOwnerVO {
private String settlementNo; private String settlementNo;
@ApiModelProperty(value = "开票标识:1网运单 2普通单") @ApiModelProperty(value = "开票标识:1网运单 2普通单")
private Integer invoiceType; private Integer invoiceType;
private String invoiceTypeMsg;
public String getInvoiceTypeMsg() {
return SettlementOwnerEnum.InvoiceType.getMsgByCode(invoiceType);
}
@ApiModelProperty(value = "货主编码") @ApiModelProperty(value = "货主编码")
private Long ownerUserNo; private Long ownerUserNo;
@ApiModelProperty(value = "货主姓名") @ApiModelProperty(value = "货主姓名")
...@@ -58,8 +65,18 @@ public class OwnerPageSettlementOwnerVO { ...@@ -58,8 +65,18 @@ public class OwnerPageSettlementOwnerVO {
private String createTime; private String createTime;
@ApiModelProperty(value = "状态 10:待锁定 20:待对账 30:待货主确认 40:待货主付款 50:待平台确认付款 60:待平台付款 70:待货主确认付款 80:待邮寄发票 90:已完结") @ApiModelProperty(value = "状态 10:待锁定 20:待对账 30:待货主确认 40:待货主付款 50:待平台确认付款 60:待平台付款 70:待货主确认付款 80:待邮寄发票 90:已完结")
private Integer status; private Integer status;
private String statusMsg;
public String getStatusMsg() {
return SettlementOwnerEnum.Status.getMsgByCode(status);
}
@ApiModelProperty(value = "结算方式 1装车净重 2卸车净重") @ApiModelProperty(value = "结算方式 1装车净重 2卸车净重")
private Integer settlementWay; private Integer settlementWay;
private String settlementWayMsg;
public String getSettlementWayMsg() {
return SettlementWayEnum.WayType.getMsgByCode(settlementWay);
}
@ApiModelProperty(value="开票公司id",example = "1") @ApiModelProperty(value="开票公司id",example = "1")
private Integer invoicingCompanyId; //开票公司id private Integer invoicingCompanyId; //开票公司id
......
...@@ -237,11 +237,11 @@ public class OrderChildLoanComponent { ...@@ -237,11 +237,11 @@ public class OrderChildLoanComponent {
log.info("1.1百分百预付不需要考虑借款账户"); log.info("1.1百分百预付不需要考虑借款账户");
return; return;
} }
if (SettlementOwnerEnum.InvoiceType.ORDINARY.getCode().equals(settlementDriverDetail.getInvoiceType())) { // if (SettlementOwnerEnum.InvoiceType.ORDINARY.getCode().equals(settlementDriverDetail.getInvoiceType())) {
log.info("2.当前不是网运单,不需要处理借款标识,是否接单冻结的借款金额"); // log.info("2.当前不是网运单,不需要处理借款标识,是否接单冻结的借款金额");
applicationEventPublisher.publishEvent(new OwnerLoanThawEvent(this, orderChild.getChildNo())); // applicationEventPublisher.publishEvent(new OwnerLoanThawEvent(this, orderChild.getChildNo()));
return; // return;
} // }
if (settlementOwnerDetail.getPrepayFreight().compareTo(BigDecimal.ZERO) != 0) { if (settlementOwnerDetail.getPrepayFreight().compareTo(BigDecimal.ZERO) != 0) {
log.info("3.当前是网运单,但预付运费不为0,说明已经处理"); log.info("3.当前是网运单,但预付运费不为0,说明已经处理");
......
...@@ -6,6 +6,7 @@ import com.clx.performance.param.pc.owner.OwnerPaymentSettlementParam; ...@@ -6,6 +6,7 @@ import com.clx.performance.param.pc.owner.OwnerPaymentSettlementParam;
import com.clx.performance.param.pc.owner.PageOwnerSettlementOwnerDetailParam; import com.clx.performance.param.pc.owner.PageOwnerSettlementOwnerDetailParam;
import com.clx.performance.param.pc.owner.PageOwnerSettlementParam; import com.clx.performance.param.pc.owner.PageOwnerSettlementParam;
import com.clx.performance.service.settle.SettlementOwnerDetailService; import com.clx.performance.service.settle.SettlementOwnerDetailService;
import com.clx.performance.service.settle.SettlementOwnerExportService;
import com.clx.performance.service.settle.SettlementOwnerService; import com.clx.performance.service.settle.SettlementOwnerService;
import com.clx.performance.vo.pc.carrier.settle.CarrierSettlementOwnerDetailVO; import com.clx.performance.vo.pc.carrier.settle.CarrierSettlementOwnerDetailVO;
import com.clx.performance.vo.pc.owner.settle.OwnerPageSettlementOwnerVO; import com.clx.performance.vo.pc.owner.settle.OwnerPageSettlementOwnerVO;
...@@ -39,7 +40,7 @@ public class OwnerSettlementOwnerController { ...@@ -39,7 +40,7 @@ public class OwnerSettlementOwnerController {
private final SettlementOwnerDetailService settlementOwnerDetailService; private final SettlementOwnerDetailService settlementOwnerDetailService;
private final SettlementOwnerExportService settlementOwnerExportService;
@ApiOperation(value = "结算单详情",notes = "<br>By:李瑞新") @ApiOperation(value = "结算单详情",notes = "<br>By:李瑞新")
@GetMapping("/getOwnerSettlementOwnerDetail") @GetMapping("/getOwnerSettlementOwnerDetail")
...@@ -114,5 +115,11 @@ public class OwnerSettlementOwnerController { ...@@ -114,5 +115,11 @@ public class OwnerSettlementOwnerController {
return Result.page(page.getRecords(), page.getTotal(), page.getPages()); return Result.page(page.getRecords(), page.getTotal(), page.getPages());
} }
@ApiOperation(value = "货主端-导出结算单列表",notes = "<br>By:艾庆国")
@PostMapping("/exportSettlementOwner")
public void exportSettlementOwner(@RequestBody @Validated PageOwnerSettlementParam param) {
settlementOwnerExportService.exportSettlementOwner(param);
}
} }
...@@ -16,6 +16,7 @@ import com.clx.performance.dto.OwnerLoanMqDTO; ...@@ -16,6 +16,7 @@ import com.clx.performance.dto.OwnerLoanMqDTO;
import com.clx.performance.enums.PerformanceResultEnum; import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.loan.OwnerLoanRecordEnum; import com.clx.performance.enums.loan.OwnerLoanRecordEnum;
import com.clx.performance.enums.loan.OwnerRePaymentEnum; import com.clx.performance.enums.loan.OwnerRePaymentEnum;
import com.clx.performance.enums.settle.SettlementOwnerEnum;
import com.clx.performance.model.OrderChild; import com.clx.performance.model.OrderChild;
import com.clx.performance.model.loan.OrderChildLoanRetryRecord; import com.clx.performance.model.loan.OrderChildLoanRetryRecord;
import com.clx.performance.model.loan.OwnerLoanAccountRunningWaterRecord; import com.clx.performance.model.loan.OwnerLoanAccountRunningWaterRecord;
...@@ -124,6 +125,10 @@ public class EventListenerComponent { ...@@ -124,6 +125,10 @@ public class EventListenerComponent {
SettlementDriverDetail settlementDriverDetail = param.getSettlementDriverDetail(); SettlementDriverDetail settlementDriverDetail = param.getSettlementDriverDetail();
OrderChild orderChild = param.getOrderChild(); OrderChild orderChild = param.getOrderChild();
if (SettlementOwnerEnum.InvoiceType.ORDINARY.getCode().equals(settlementDriverDetail.getInvoiceType())) {
applicationEventPublisher.publishEvent(new OwnerLoanThawEvent(this, orderChild.getChildNo()));
}
else {
try { try {
//生成借款标识 //生成借款标识
orderChildLoanComponent.childLoanConfirmAfterProcess(settlementDriverDetail, settlementOwnerDetail, orderChild); orderChildLoanComponent.childLoanConfirmAfterProcess(settlementDriverDetail, settlementOwnerDetail, orderChild);
...@@ -134,6 +139,7 @@ public class EventListenerComponent { ...@@ -134,6 +139,7 @@ public class EventListenerComponent {
log.error("处理货主借款监听器执行异常,数据为{},异常信息{}", JSONUtil.parse(param), ExceptionUtil.getMessage(e)); log.error("处理货主借款监听器执行异常,数据为{},异常信息{}", JSONUtil.parse(param), ExceptionUtil.getMessage(e));
throw e; throw e;
} }
}
log.info("处理货主借款监听器执行成功"); log.info("处理货主借款监听器执行成功");
settlementOwnerDetailDao.updateInvoiceType(settlementOwnerDetail); settlementOwnerDetailDao.updateInvoiceType(settlementOwnerDetail);
......
...@@ -121,7 +121,7 @@ public class SettlementJob { ...@@ -121,7 +121,7 @@ public class SettlementJob {
for (SettlementOwner item : list) { for (SettlementOwner item : list) {
settlementMqService.settlementPlatformAutoConfirmUpdate(item.getId()); settlementMqService.settlementPlatformAutoConfirmUpdate(item.getSettlementNo());
} }
} catch (Exception e) { } catch (Exception e) {
log.warn("结算单平台自动确认更新失败,msg:{}", ExceptionUtils.getStackTrace(e)); log.warn("结算单平台自动确认更新失败,msg:{}", ExceptionUtils.getStackTrace(e));
......
...@@ -153,18 +153,19 @@ public class OrderChildSyncTransportListener { ...@@ -153,18 +153,19 @@ public class OrderChildSyncTransportListener {
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).get(); OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).get();
// 未税 卸车减货损不用生成扣除相关流水逻辑 // // 未税 卸车减货损不用生成扣除相关流水逻辑
if (Objects.equals(invoiceType, SettlementOwnerEnum.InvoiceType.ONLINE.getCode()) // if (Objects.equals(invoiceType, SettlementOwnerEnum.InvoiceType.ONLINE.getCode())
&& Objects.equals(orderGoods.getPlatformFreightQuotationTaxType(),QuotationEnum.PlatformFreightQuotationTaxType.NO.getCode()) // && Objects.equals(orderGoods.getPlatformFreightQuotationTaxType(),QuotationEnum.PlatformFreightQuotationTaxType.NO.getCode())
&& Objects.equals(orderGoods.getSettlementWay(), SettlementWayEnum.WayType.UNLOAD_LOSS.getCode())) { // && Objects.equals(orderGoods.getSettlementWay(), SettlementWayEnum.WayType.UNLOAD_LOSS.getCode())) {
settlementOwnerDetail.setPrepayFreight(BigDecimal.ZERO); // settlementOwnerDetail.setPrepayFreight(BigDecimal.ZERO);
settlementDriverDetail.setPrepayFreightFlag(SettlementDriverEnum.PrepayFreightFlag.NO_PAY.getCode()); // settlementDriverDetail.setPrepayFreightFlag(SettlementDriverEnum.PrepayFreightFlag.NO_PAY.getCode());
settlementOwnerDetail.setFinalPaymentStatus(SettlementOwnerDetailEnum.FinalPaymentStatus.NO.getCode()); // settlementOwnerDetail.setFinalPaymentStatus(SettlementOwnerDetailEnum.FinalPaymentStatus.NO.getCode());
//
//生成提现记录 // //生成提现记录
networkDriverRunningWaterRecordService.generateNetworkCaseOutRecord(settlementDriverDetail); // networkDriverRunningWaterRecordService.generateNetworkCaseOutRecord(settlementDriverDetail);
} // }
else if (Objects.equals(invoiceType, SettlementOwnerEnum.InvoiceType.ONLINE.getCode())) { // else
if (Objects.equals(invoiceType, SettlementOwnerEnum.InvoiceType.ONLINE.getCode())) {
//通过风控 //通过风控
List<OwnerRunningWaterRecord> runningWaterRecordList = ownerRunningWaterRecordDao.getOwnerRunningWaterRecord(orderChild.getOrderNo()); List<OwnerRunningWaterRecord> runningWaterRecordList = ownerRunningWaterRecordDao.getOwnerRunningWaterRecord(orderChild.getOrderNo());
......
...@@ -17,6 +17,7 @@ import com.clx.performance.component.OwnerAccountComponent; ...@@ -17,6 +17,7 @@ import com.clx.performance.component.OwnerAccountComponent;
import com.clx.performance.constant.RabbitKeyConstants; import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.dao.OrderChildDao; import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.OrderChildOperateRecordDao; import com.clx.performance.dao.OrderChildOperateRecordDao;
import com.clx.performance.dao.OrderChildPoundAuditDao;
import com.clx.performance.dao.OrderGoodsDao; import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.dto.OrderCancelDTO; import com.clx.performance.dto.OrderCancelDTO;
import com.clx.performance.enums.*; import com.clx.performance.enums.*;
...@@ -24,6 +25,7 @@ import com.clx.performance.extranal.user.DriverService; ...@@ -24,6 +25,7 @@ import com.clx.performance.extranal.user.DriverService;
import com.clx.performance.extranal.user.OwnerInfoService; import com.clx.performance.extranal.user.OwnerInfoService;
import com.clx.performance.model.OrderChild; import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderChildOperateRecord; import com.clx.performance.model.OrderChildOperateRecord;
import com.clx.performance.model.OrderChildPoundAudit;
import com.clx.performance.model.OrderGoods; import com.clx.performance.model.OrderGoods;
import com.clx.performance.param.pc.ArtificialCancelOrderParam; import com.clx.performance.param.pc.ArtificialCancelOrderParam;
import com.clx.performance.param.pc.ArtificialCancelOrderQueryParam; import com.clx.performance.param.pc.ArtificialCancelOrderQueryParam;
...@@ -56,6 +58,9 @@ import java.time.LocalDateTime; ...@@ -56,6 +58,9 @@ import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.clx.performance.enums.OrderChildPoundAuditEnum.Status.APPROVED;
import static com.clx.performance.enums.ResultEnum.DATA_ERROR;
@Slf4j @Slf4j
@Service @Service
@AllArgsConstructor @AllArgsConstructor
...@@ -90,6 +95,8 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -90,6 +95,8 @@ public class OrderCancelServiceImpl implements OrderCancelService {
private final OwnerAccountComponent ownerAccountComponent; private final OwnerAccountComponent ownerAccountComponent;
private final OrderChildPoundAuditDao orderChildPoundAuditDao;
private final OrderChildOperateRecordDao orderChildOperateRecordDao; private final OrderChildOperateRecordDao orderChildOperateRecordDao;
...@@ -599,6 +606,12 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -599,6 +606,12 @@ public class OrderCancelServiceImpl implements OrderCancelService {
*/ */
@Override @Override
public void artificialCancelOrder(String orderChildNo, String remark) { public void artificialCancelOrder(String orderChildNo, String remark) {
//磅单如果审核通过,该运单不允许取消
List<OrderChildPoundAudit> poundAuditList = orderChildPoundAuditDao.getPoundAuditList(orderChildNo);
if (poundAuditList.stream().anyMatch(item->APPROVED.getCode().equals(item.getStatus()))) {
throw new ServiceSystemException(DATA_ERROR, "该运单磅单已审核通过,不允许取消");
}
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
OrderChild orderChild = orderChildDao.getByChildNo(orderChildNo).orElseThrow(PerformanceResultEnum.ORDER_CHILD_NO_FOUND); OrderChild orderChild = orderChildDao.getByChildNo(orderChildNo).orElseThrow(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
//运单状态不在【装车成功】【前往目的地】【到达目的地】【收货待确认】范围中,不允许取消 //运单状态不在【装车成功】【前往目的地】【到达目的地】【收货待确认】范围中,不允许取消
......
...@@ -153,6 +153,9 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic ...@@ -153,6 +153,9 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
@Autowired @Autowired
private OrderChildBrokerMqService orderChildBrokerMqService; private OrderChildBrokerMqService orderChildBrokerMqService;
@Autowired
private NetworkDriverRunningWaterRecordService networkDriverRunningWaterRecordService;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
...@@ -375,13 +378,21 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic ...@@ -375,13 +378,21 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public void payStatusSync(SettlementPayStatusSyncMqParam mq) { public void payStatusSync(SettlementPayStatusSyncMqParam mq) {
OrderChild orderChild = orderChildDao.getByChildNo(mq.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND); OrderChild orderChild = orderChildDao
.getByChildNo(mq.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
OrderGoods orderGoods = orderGoodsDao
.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
SettlementOwnerDetail settlementOwnerDetail = settlementOwnerDetailDao SettlementOwnerDetail settlementOwnerDetail = settlementOwnerDetailDao
.getByChildNo(orderChild.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND); .getByChildNo(orderChild.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
if (!Objects.equals(settlementOwnerDetail.getInvoiceChannel(), SettlementOwnerDetailEnum.InvoiceChannel.BROKER.getCode())){ if (!Objects.equals(settlementOwnerDetail.getInvoiceChannel(), SettlementOwnerDetailEnum.InvoiceChannel.BROKER.getCode())){
return; return;
} }
SettlementDriverDetail settlementDriverDetail = settlementDriverDetailDao
.getByChildNo(orderChild.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
OrderChildSyncTransportRecord orderChildSyncTransportRecord = orderChildSyncTransportRecordDao OrderChildSyncTransportRecord orderChildSyncTransportRecord = orderChildSyncTransportRecordDao
.getByChildNo(orderChild.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND); .getByChildNo(orderChild.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
if (!Objects.equals(orderChildSyncTransportRecord.getStatus(), if (!Objects.equals(orderChildSyncTransportRecord.getStatus(),
...@@ -397,9 +408,24 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic ...@@ -397,9 +408,24 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
} }
if (Objects.equals(result.getSettleStatus(), 1) ) { if (Objects.equals(result.getSettleStatus(), 1) ) {
if (Objects.equals(orderGoods.getPlatformFreightQuotationTaxType(),QuotationEnum.PlatformFreightQuotationTaxType.NO.getCode())
&& Objects.equals(orderGoods.getSettlementWay(), SettlementWayEnum.WayType.UNLOAD_LOSS.getCode())) {
settlementOwnerDetail.setPrepayFreight(BigDecimal.ZERO);
settlementDriverDetail.setPrepayFreightFlag(SettlementDriverEnum.PrepayFreightFlag.NO_PAY.getCode());
settlementOwnerDetail.setFinalPaymentStatus(SettlementOwnerDetailEnum.FinalPaymentStatus.NO.getCode());
//生成提现记录
networkDriverRunningWaterRecordService.generateNetworkCaseOutRecord(settlementDriverDetail);
}
PayStatusNotifyDTO payStatusNotifyDTO = new PayStatusNotifyDTO(); PayStatusNotifyDTO payStatusNotifyDTO = new PayStatusNotifyDTO();
payStatusNotifyDTO.setChildNo(mq.getChildNo()); payStatusNotifyDTO.setChildNo(mq.getChildNo());
orderChildSyncTransportRecordService.updateStatus(payStatusNotifyDTO); orderChildSyncTransportRecordService.updateStatus(payStatusNotifyDTO);
// 发送mq (结算单平台自动确认)
settlementMqService.settlementPlatformAutoConfirmUpdate(settlementOwnerDetail.getSettlementNo());
} }
else { else {
SettlementOrderChildRisk settlementOrderChildRisk = new SettlementOrderChildRisk(); SettlementOrderChildRisk settlementOrderChildRisk = new SettlementOrderChildRisk();
...@@ -899,7 +925,7 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic ...@@ -899,7 +925,7 @@ public class SettlementMqHandlerServiceImpl implements SettlementMqHandlerServic
@Override @Override
public void settlementPlatformAutoConfirm(SettlementPlatformAutoConfirmMqParam mq) { public void settlementPlatformAutoConfirm(SettlementPlatformAutoConfirmMqParam mq) {
SettlementOwner settlementOwner = settlementOwnerDao SettlementOwner settlementOwner = settlementOwnerDao
.findById(mq.getSettlementId()).orElseThrow(ResultEnum.DATA_NOT_FIND); .findBySettlementNo(mq.getSettlementNo()).orElseThrow(ResultEnum.DATA_NOT_FIND);
if (!Objects.equals(settlementOwner.getStatus(), SettlementOwnerEnum.Status.PLATFORM_TO_BE_CONFIRMED.getCode())){ if (!Objects.equals(settlementOwner.getStatus(), SettlementOwnerEnum.Status.PLATFORM_TO_BE_CONFIRMED.getCode())){
return; return;
......
...@@ -138,9 +138,9 @@ public class SettlementMqServiceImpl implements SettlementMqService { ...@@ -138,9 +138,9 @@ public class SettlementMqServiceImpl implements SettlementMqService {
} }
@Override @Override
public void settlementPlatformAutoConfirmUpdate(Integer settlementId) { public void settlementPlatformAutoConfirmUpdate(String settlementNo) {
SettlementPlatformAutoConfirmMqParam mq = new SettlementPlatformAutoConfirmMqParam(); SettlementPlatformAutoConfirmMqParam mq = new SettlementPlatformAutoConfirmMqParam();
mq.setSettlementId(settlementId); mq.setSettlementNo(settlementNo);
MqDelay delay = new MqDelay<>(RabbitKeySettlementConstants.DEFAULT_EXCHANGE, MqDelay delay = new MqDelay<>(RabbitKeySettlementConstants.DEFAULT_EXCHANGE,
RabbitKeySettlementConstants.SETTLEMENT_PLATFORM_AUTO_CONFIRM_UPDATE_ROUTING_KEY, new MqWrapper<>(mq)); RabbitKeySettlementConstants.SETTLEMENT_PLATFORM_AUTO_CONFIRM_UPDATE_ROUTING_KEY, new MqWrapper<>(mq));
Message message = MessageBuilder.withBody(JSON.toJSONString(new MqWrapper<>(delay)).getBytes()).build(); Message message = MessageBuilder.withBody(JSON.toJSONString(new MqWrapper<>(delay)).getBytes()).build();
......
package com.clx.performance.service.impl.settle;
import com.clx.performance.param.pc.owner.PageOwnerSettlementParam;
import com.clx.performance.service.settle.SettlementOwnerExportService;
import com.clx.performance.service.settle.SettlementOwnerService;
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.owner.settle.OwnerPageSettlementOwnerVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@Service
public class SettlementOwnerExportServiceImpl implements SettlementOwnerExportService {
@Autowired
private SettlementOwnerService settlementOwnerService;
@Override
public void exportSettlementOwner(PageOwnerSettlementParam param) {
param.setPage(1);
param.setPageSize(1000000);
List<OwnerPageSettlementOwnerVO> list = settlementOwnerService.pageSettlementOwner(param).getRecords();
// 组装表头
List<ExcelField> fieldList = new ArrayList<>();
fieldList.add(new ExcelField(0, "序号", "index", 2000));
fieldList.add(new ExcelField(1, "结算单号", "settlementNo", 5000));
fieldList.add(new ExcelField(2, "订单编号", "orderNo", 5000));
fieldList.add(new ExcelField(3, "开票标识", "invoiceType", 5000));
fieldList.add(new ExcelField(4, "货主编码", "ownerUserNo", 5000));
fieldList.add(new ExcelField(5, "结算方式", "settlementWay", 5000));
fieldList.add(new ExcelField(6, "装车净重", "loadNet", 5000));
fieldList.add(new ExcelField(7, "卸车净重", "unloadNet", 5000));
fieldList.add(new ExcelField(8, "实际净重(吨)", "weight", 5000));
fieldList.add(new ExcelField(9, "应付运费", "freight", 5000));
fieldList.add(new ExcelField(10, "预付运费金额", "prepayFreight", 5000));
fieldList.add(new ExcelField(11, "货损吨数", "lossWeight", 5000));
fieldList.add(new ExcelField(12, "管理费", "invoiceServiceFee", 5000));
fieldList.add(new ExcelField(13, "借款抵扣金额", "loanFreight", 5000));
fieldList.add(new ExcelField(14, "结算金额", "settlementFreight", 5000));
fieldList.add(new ExcelField(15, "开票金额", "invoiceFreight", 5000));
fieldList.add(new ExcelField(16, "创建时间", "createTime", 5000));
fieldList.add(new ExcelField(17, "状态", "status", 5000));
// 组装数据
List<List<ExcelData>> dataList = new ArrayList<>();
for (int i=0; i<list.size(); i++){
OwnerPageSettlementOwnerVO dto = list.get(i);
List<ExcelData> rowData = new ArrayList<>();
rowData.add(new ExcelData(i+1));
rowData.add(new ExcelData(dto.getSettlementNo()));
rowData.add(new ExcelData(dto.getOrderNo()));
rowData.add(new ExcelData(dto.getInvoiceTypeMsg()));
rowData.add(new ExcelData(dto.getOwnerUserNo().toString()));
rowData.add(new ExcelData(dto.getSettlementWayMsg()));
rowData.add(new ExcelData(dto.getLoadNet()));
rowData.add(new ExcelData(dto.getUnloadNet()));
rowData.add(new ExcelData(dto.getWeight()));
rowData.add(new ExcelData(dto.getFreight().movePointLeft(2).setScale(2, RoundingMode.HALF_UP)));
rowData.add(new ExcelData(dto.getPrepayFreight().movePointLeft(2).setScale(2, RoundingMode.HALF_UP)));
rowData.add(new ExcelData(dto.getLossWeight()));
rowData.add(new ExcelData(dto.getInvoiceServiceFee().movePointLeft(2).setScale(2, RoundingMode.HALF_UP)));
rowData.add(new ExcelData(dto.getLoanFreight().movePointLeft(2).setScale(2, RoundingMode.HALF_UP)));
rowData.add(new ExcelData(dto.getSettlementFreight().movePointLeft(2).setScale(2, RoundingMode.HALF_UP)));
rowData.add(new ExcelData(dto.getInvoiceFreight().movePointLeft(2).setScale(2, RoundingMode.HALF_UP)));
rowData.add(new ExcelData(dto.getCreateTime()));
rowData.add(new ExcelData(dto.getStatusMsg()));
dataList.add(rowData);
}
ExcelSheet excelSheet = new ExcelSheet("货主结算单", "货主结算单", fieldList, dataList);
// 导出
ExcelUtil.export(excelSheet);
}
}
...@@ -19,6 +19,6 @@ public interface SettlementMqService { ...@@ -19,6 +19,6 @@ public interface SettlementMqService {
void updateInvoiceCompany(Integer id); void updateInvoiceCompany(Integer id);
void settlementPlatformAutoConfirmUpdate(Integer settlementId); void settlementPlatformAutoConfirmUpdate(String settlementNo);
} }
package com.clx.performance.service.settle;
import com.clx.performance.param.pc.owner.PageOwnerSettlementParam;
public interface SettlementOwnerExportService {
void exportSettlementOwner(PageOwnerSettlementParam param);
}
...@@ -69,6 +69,19 @@ public class ExcelData { ...@@ -69,6 +69,19 @@ public class ExcelData {
this.dataType = DataType.STRING.value; this.dataType = DataType.STRING.value;
} }
} }
public ExcelData(Long value) {
this(value,null);
}
public ExcelData(Long value, String defaultValue) {
if (null != value) {
this.doubleValue = value;
this.dataType = DataType.NUMERIC.value;
}
else {
this.value = defaultValue;
this.dataType = DataType.STRING.value;
}
}
public ExcelData(BigDecimal value) { public ExcelData(BigDecimal value) {
this(value,null); this(value,null);
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论