This commit is contained in:
linfso 2024-07-24 05:54:43 +08:00
parent e83604d3f1
commit c1d3d34940
3 changed files with 59 additions and 15 deletions

View File

@ -13,6 +13,7 @@ package com.xdadan.erp.web.emis;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
@ -225,21 +226,11 @@ public class EmisSettleBillController extends BaseController
List<EmisSettleSubBill> list = emisBaseService.selectSubBillListBySettleBillNo(emisSettleBill.getSettleBillNo());
// 转换子账单为 MAP
InputStream inputStream = ResourceUtil.getResourceObj("tpl/bill_tpl.xlsx").getStream();
Map<String, Object> textMap = MapUtils.newHashMap();
textMap.put("title", bill.getSettleBillName());
textMap.put("total", bill.getRecMoney().toString());
ServletOutputStream outputStream = response.getOutputStream();
// 设置创建行的方式
FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
// FillConfig fillConfig2 = FillConfig.builder().forceNewRow(Boolean.FALSE).build();
ExcelWriter excelWriter = EasyExcel.write(outputStream).withTemplate(inputStream).excelType(ExcelTypeEnum.XLSX).build();
// 写入到sheet
WriteSheet sheet0 = EasyExcel.writerSheet(0).build();
excelWriter.fill(textMap, sheet0);
String tplName="tpl/bill_tpl_simple.xlsx";
List<Map<String, Object>> listMap=new ArrayList<>();
for(EmisSettleSubBill billItem:list){
@ -251,14 +242,67 @@ public class EmisSettleBillController extends BaseController
voMap.put("company",billItem.getWaybillDetail().getSendCompany());
voMap.put("paymentType", DictUtils.getDictLabel("emis_payment_type",billItem.getWaybillDetail().getPaymentType()));
voMap.put("productTypeName", billItem.getWaybillDetail().getProductTypeName());
voMap.put("parcelQty", billItem.getWaybillDetail().getParcelQty());
voMap.put("parcelQty", billItem.getWaybillDetail().getParcelQty().toString());
voMap.put("settlementWeight", billItem.getWaybillDetail().getSettlementWeight());
voMap.put("totalVolume", billItem.getWaybillDetail().getTotalVolume());
voMap.put("freight", billItem.getWaybillDetail().getFreight());
voMap.put("totalVolume", billItem.getWaybillDetail().getTotalVolume().toString());
voMap.put("freight", billItem.getWaybillDetail().getFreight().toString());
voMap.put("feeRemark", billItem.getWaybillDetail().getFeeRemark());
//计算分项数据
List<EmisSettleSubBillFeeitem> feeItemList=billItem.getFeeitemList();
if( !CollectionUtils.isEmpty(feeItemList) ){
if(feeItemList.size()>1){
tplName="tpl/bill_tpl.xlsx";
}
BigDecimal otherFee = BigDecimal.ZERO;
BigDecimal transFee = BigDecimal.ZERO;
BigDecimal cebFee = BigDecimal.ZERO;
BigDecimal declareFee = BigDecimal.ZERO;
for(EmisSettleSubBillFeeitem feeitem:feeItemList){
if("CNY".equals(feeitem.getCurrency())) {
if ("1001".equals(feeitem.getFeeCode())) {
transFee=transFee.add(feeitem.getBillFee());
}
// 报关费
else if ("2002".equals(feeitem.getFeeCode())) {
cebFee=cebFee.add(feeitem.getBillFee());
}
// 清关费
else if ("2003".equals(feeitem.getFeeCode())) {
declareFee=declareFee.add(feeitem.getBillFee());
} else {
otherFee=otherFee.add(feeitem.getBillFee());
}
}else{
}
}
voMap.put("transFee", transFee.toString());
voMap.put("cebFee",cebFee.toString());
voMap.put("declareFee", declareFee.toString());
voMap.put("otherFee", otherFee.toString());
}
// {.transFee} {.cebFee} {.declareFee} {.otherFee}
listMap.add(voMap);
}
ServletOutputStream outputStream = response.getOutputStream();
//账单主数据填充
InputStream inputStream = ResourceUtil.getResourceObj(tplName).getStream();
// 设置创建行的方式
FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build();
// FillConfig fillConfig2 = FillConfig.builder().forceNewRow(Boolean.FALSE).build();
ExcelWriter excelWriter = EasyExcel.write(outputStream).withTemplate(inputStream).excelType(ExcelTypeEnum.XLSX).build();
// 写入到sheet
WriteSheet sheet0 = EasyExcel.writerSheet(0).build();
excelWriter.fill(textMap, sheet0);
// 填充
logger.error("====>listMap===>{}",JSON.toJSONString(listMap));

Binary file not shown.