From c1d3d34940f3c0876ab07a3125cbce7bfa03e07c Mon Sep 17 00:00:00 2001 From: linfso Date: Wed, 24 Jul 2024 05:54:43 +0800 Subject: [PATCH] md --- .../web/emis/EmisSettleBillController.java | 74 ++++++++++++++---- emis-biz/src/main/resources/tpl/bill_tpl.xlsx | Bin 10361 -> 10580 bytes .../main/resources/tpl/bill_tpl_simple.xlsx | Bin 0 -> 10476 bytes 3 files changed, 59 insertions(+), 15 deletions(-) create mode 100644 emis-biz/src/main/resources/tpl/bill_tpl_simple.xlsx diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettleBillController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettleBillController.java index 56c573320..1d6ffe73f 100644 --- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettleBillController.java +++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettleBillController.java @@ -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 list = emisBaseService.selectSubBillListBySettleBillNo(emisSettleBill.getSettleBillNo()); // 转换子账单为 MAP - InputStream inputStream = ResourceUtil.getResourceObj("tpl/bill_tpl.xlsx").getStream(); - Map 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> 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 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)); diff --git a/emis-biz/src/main/resources/tpl/bill_tpl.xlsx b/emis-biz/src/main/resources/tpl/bill_tpl.xlsx index b1405fd89d580d7fb6bcbcd26380b57f48ac1653..3b7e7a0906f0fc470ea3190bc2b82e699fd6d715 100644 GIT binary patch delta 5846 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 delta 5590 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