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 b1405fd89..3b7e7a090 100644 Binary files a/emis-biz/src/main/resources/tpl/bill_tpl.xlsx and b/emis-biz/src/main/resources/tpl/bill_tpl.xlsx differ diff --git a/emis-biz/src/main/resources/tpl/bill_tpl_simple.xlsx b/emis-biz/src/main/resources/tpl/bill_tpl_simple.xlsx new file mode 100644 index 000000000..b68c69e21 Binary files /dev/null and b/emis-biz/src/main/resources/tpl/bill_tpl_simple.xlsx differ