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

结算单优化-批量开票

上级 c8279ead
package com.clx.performance.vo.pc.owner.settle;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import java.math.BigDecimal;
@Getter
@Setter
@ToString
@NoArgsConstructor
public class UploadBatchInvoiceFileResultVO {
@ApiModelProperty(value="校验结果,0:数据无误,1:数据有误")
private Integer verifyResult;
@ApiModelProperty(value="错误文件地址")
private String errorFileUrl;
@ApiModelProperty(value="运单数")
private Integer orderChildSum;
@ApiModelProperty("装车吨数")
private BigDecimal loadWeightSum;
@ApiModelProperty(value="开票金额")
private BigDecimal invoiceFreightSum;
}
\ No newline at end of file
......@@ -14,6 +14,7 @@ import com.clx.performance.vo.pc.carrier.settle.CarrierPagePendingSettlementOwne
import com.clx.performance.vo.pc.carrier.settle.CarrierPageSettlementOwnerDetailVO;
import com.clx.performance.vo.pc.owner.settle.CountOwnerSettlementOwnerDetailVO;
import com.clx.performance.vo.pc.owner.settle.PageOwnerSettlementOwnerDetailVO;
import com.clx.performance.vo.pc.owner.settle.UploadBatchInvoiceFileResultVO;
import com.msl.common.base.PageData;
import com.msl.common.convertor.aspect.UnitCovert;
import com.msl.common.exception.ServiceSystemException;
......@@ -27,8 +28,10 @@ import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@Slf4j
@RestController
......@@ -81,6 +84,12 @@ public class CarrierSettlementOwnerDetailController {
}
}
@ApiOperation(value = "上传批量开票文件",notes = "<br>By:杨启发")
@PostMapping("/uploadBatchInvoiceFile")
public Result<UploadBatchInvoiceFileResultVO> uploadBatchInvoiceFile(@RequestParam("file") MultipartFile file) throws IOException {
return Result.ok(settlementOwnerDetailService.uploadBatchInvoiceFile(file));
}
@ApiOperation(value = "导出货主结算单运单明细",notes = "<br>By:姜文业")
@PostMapping("/exportOwnerSettlementOrderDetailList")
public void exportCarrierSettlementOwnerPageList(@RequestBody @Validated PageOwnerSettlementOwnerDetailParam param, HttpServletResponse response) throws Exception {
......
package com.clx.performance.dto.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
@Data
public class InvoiceData {
@ExcelProperty("运单编号")
private String childNo;
@ExcelProperty("开票标识")
private String invoiceType;
@ExcelProperty("开票金额")
private Double invoiceFreight;
@ExcelProperty("备注")
private String remark;
}
package com.clx.performance.listener.excel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.clx.performance.dto.excel.InvoiceData;
import lombok.AllArgsConstructor;
import java.util.List;
@AllArgsConstructor
public class InvoiceDataListener extends AnalysisEventListener<InvoiceData> {
private final List<InvoiceData> invoiceDataList;
@Override
public void invoke(InvoiceData invoiceData, AnalysisContext context) {
// 每解析一行都会调用一次,逐行校验数据
invoiceDataList.add(invoiceData);
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
// 解析完成后调用
// 可在此进行后续操作,如保存数据到数据库
}
}
package com.clx.performance.service.impl.settle;
import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.excel.EasyExcel;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.settle.SettlementDriverDetailDao;
import com.clx.performance.dao.settle.SettlementOwnerDetailDao;
import com.clx.performance.dto.excel.InvoiceData;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.settle.SettlementOwnerDetailEnum;
import com.clx.performance.enums.settle.SettlementOwnerEnum;
import com.clx.performance.enums.settle.SettlementWayEnum;
import com.clx.performance.listener.excel.InvoiceDataListener;
import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.model.settle.SettlementDriverDetail;
......@@ -32,7 +35,9 @@ import com.clx.performance.vo.pc.carrier.settle.CarrierPagePendingSettlementOwne
import com.clx.performance.vo.pc.carrier.settle.CarrierPageSettlementOwnerDetailVO;
import com.clx.performance.vo.pc.owner.settle.CountOwnerSettlementOwnerDetailVO;
import com.clx.performance.vo.pc.owner.settle.PageOwnerSettlementOwnerDetailVO;
import com.clx.performance.vo.pc.owner.settle.UploadBatchInvoiceFileResultVO;
import com.msl.common.exception.ServiceSystemException;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime;
......@@ -44,6 +49,8 @@ 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.web.multipart.MultipartFile;
/**
......@@ -666,4 +673,19 @@ public class SettlementOwnerDetailServiceImpl implements SettlementOwnerDetailS
//创建excel
return ExcelUtil.create(excelSheet);
}
@Override
public UploadBatchInvoiceFileResultVO uploadBatchInvoiceFile(MultipartFile file) throws IOException {
List<InvoiceData> invoiceDataList = new ArrayList<>();
EasyExcel.read(file.getInputStream(), InvoiceData.class, new InvoiceDataListener(invoiceDataList)).sheet().doRead();
UploadBatchInvoiceFileResultVO vo = new UploadBatchInvoiceFileResultVO();
vo.setVerifyResult(0);
vo.setErrorFileUrl("");
vo.setOrderChildSum(0);
vo.setLoadWeightSum(new BigDecimal("0"));
vo.setInvoiceFreightSum(new BigDecimal("0"));
return vo;
}
}
......@@ -15,7 +15,11 @@ import com.clx.performance.vo.pc.carrier.settle.CarrierPagePendingSettlementOwne
import com.clx.performance.vo.pc.carrier.settle.CarrierPageSettlementOwnerDetailVO;
import com.clx.performance.vo.pc.owner.settle.CountOwnerSettlementOwnerDetailVO;
import com.clx.performance.vo.pc.owner.settle.PageOwnerSettlementOwnerDetailVO;
import com.clx.performance.vo.pc.owner.settle.UploadBatchInvoiceFileResultVO;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
/**
* @author liruixin
......@@ -49,4 +53,6 @@ public interface SettlementOwnerDetailService {
SXSSFWorkbook exportBatchSettlementOwnerDetail(ExportBatchOwnerSettlementDetailParam param);
SXSSFWorkbook exportInvoiceOwnerSettlementOrderDetail(PageInvoiceOwnerSettlementOwnerDetailParam param);
UploadBatchInvoiceFileResultVO uploadBatchInvoiceFile(MultipartFile file) throws IOException;
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论