From 87241cc805e30efd628495071645eba72e93807c Mon Sep 17 00:00:00 2001 From: Gauthier LO Date: Fri, 25 Aug 2023 16:06:10 +0200 Subject: [PATCH] feature: (WIP) debit + fix breakdownInvoice mail --- .../shippingInvoice/InvoiceController.java | 10 +++--- .../jeecg/modules/business/entity/Credit.java | 4 +-- .../jeecg/modules/business/entity/Debit.java | 35 ++++++++++--------- .../PlatformOrderShippingInvoiceService.java | 10 +++--- .../modules/business/vo/InvoiceMetaData.java | 2 ++ 5 files changed, 33 insertions(+), 28 deletions(-) diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/shippingInvoice/InvoiceController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/shippingInvoice/InvoiceController.java index c9f04583a..bfdf42139 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/shippingInvoice/InvoiceController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/shippingInvoice/InvoiceController.java @@ -358,10 +358,10 @@ public class InvoiceController { } @GetMapping(value = "/downloadInvoiceDetail") - public byte[] downloadInvoiceDetail(@RequestParam("invoiceNumber") String invoiceNumber, @RequestParam("invoiceEntity") String invoiceEntity) throws IOException { + public byte[] downloadInvoiceDetail(@RequestParam("invoiceNumber") String invoiceNumber, @RequestParam("invoiceEntity") String invoiceEntity, @RequestParam("internalCode") String internalCode) throws IOException { List factureDetails = shippingInvoiceService.getInvoiceDetail(invoiceNumber); List refunds = savRefundWithDetailService.getRefundsByInvoiceNumber(invoiceNumber); - return shippingInvoiceService.exportToExcel(factureDetails, refunds, invoiceNumber, invoiceEntity); + return shippingInvoiceService.exportToExcel(factureDetails, refunds, invoiceNumber, invoiceEntity, internalCode); } /** @@ -487,14 +487,14 @@ public class InvoiceController { filenameList.add(INVOICE_DIR + "//" + metaData.getFilename()); List factureDetails = shippingInvoiceService.getInvoiceDetail(metaData.getInvoiceCode()); List refunds = savRefundWithDetailService.getRefundsByInvoiceNumber(metaData.getInvoiceCode()); - shippingInvoiceService.exportToExcel(factureDetails, refunds, metaData.getInvoiceCode(), metaData.getInvoiceEntity()); - filenameList.add(INVOICE_DETAIL_DIR + "//Détail_calcul_de_facture_" + metaData.getInvoiceCode() + "_(" + metaData.getInvoiceEntity() + ").xlsx"); + shippingInvoiceService.exportToExcel(factureDetails, refunds, metaData.getInvoiceCode(), metaData.getInvoiceEntity(), metaData.getInternalCode()); + filenameList.add(INVOICE_DETAIL_DIR + "//" + metaData.getInternalCode() + "_(" + metaData.getInvoiceEntity() + ")_" + metaData.getInvoiceCode() + "_Détail_calcul_de_facture.xlsx"); } log.info("Generating detail files ...{}/{}", cpt++, invoiceList.size()); } String zipFilename = shippingInvoiceService.zipInvoices(filenameList); String subject = "Invoices generated from Breakdown Page"; - String destEmail = sysUser.getEmail(); + String destEmail = sysUser.getEmail() == null ? env.getProperty("spring.mail.username") : sysUser.getEmail(); Properties prop = emailService.getMailSender(); Map templateModel = new HashMap<>(); templateModel.put("errors", metaDataErrorList); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/Credit.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/Credit.java index 1c861c3b4..12de31b01 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/Credit.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/Credit.java @@ -53,8 +53,8 @@ public class Credit implements Serializable { @ApiModelProperty(value = "更新日期") private java.util.Date updateTime; /**client_id*/ - @Excel(name = "client_id", width = 15, dictTable = "client", dicText = "internal_code", dicCode = "id") - @Dict(dictTable = "client", dicText = "internal_code", dicCode = "id") + @Excel(name = "client_id", width = 15, dictTable = "client WHERE active = '1'", dicText = "internal_code", dicCode = "id") + @Dict(dictTable = "client WHERE active = '1'", dicText = "internal_code", dicCode = "id") @ApiModelProperty(value = "client_id") private java.lang.String clientId; /**amount*/ diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/Debit.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/Debit.java index 2a16c44de..bd8465536 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/Debit.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/Debit.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; +import org.jeecg.common.aspect.annotation.Dict; import org.springframework.format.annotation.DateTimeFormat; import org.jeecgframework.poi.excel.annotation.Excel; import io.swagger.annotations.ApiModel; @@ -27,40 +28,42 @@ import lombok.experimental.Accessors; public class Debit implements Serializable { private static final long serialVersionUID = 1L; - /**主键*/ - @TableId(type = IdType.ASSIGN_ID) + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) @ApiModelProperty(value = "主键") private java.lang.String id; - /**创建人*/ + /**创建人*/ @ApiModelProperty(value = "创建人") private java.lang.String createBy; - /**创建日期*/ - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + /**创建日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "创建日期") private java.util.Date createTime; - /**更新人*/ + /**更新人*/ @ApiModelProperty(value = "更新人") private java.lang.String updateBy; - /**更新日期*/ - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + /**更新日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "更新日期") private java.util.Date updateTime; - /**client_id*/ - @Excel(name = "client_id", width = 15) + /**client_id*/ + @Excel(name = "client_id", width = 15, dictTable = "client WHERE active = '1'", dicText = "internal_code", dicCode = "id") + @Dict(dictTable = "client WHERE active = '1'", dicText = "internal_code", dicCode = "id") @ApiModelProperty(value = "client_id") private java.lang.String clientId; - /**amount*/ - @Excel(name = "amount", width = 15) + /**amount*/ + @Excel(name = "amount", width = 15) @ApiModelProperty(value = "amount") private java.math.BigDecimal amount; - /**currency_id*/ - @Excel(name = "currency_id", width = 15) + /**currency_id*/ + @Excel(name = "currency_id", width = 15, dictTable = "currency WHERE code <> 'RMB'", dicText = "code", dicCode = "id") + @Dict(dictTable = "currency WHERE code <> 'RMB'", dicText = "code", dicCode = "id") @ApiModelProperty(value = "currency_id") private java.lang.String currencyId; - /**invoice_number*/ - @Excel(name = "invoice_number", width = 15) + /**invoice_number*/ + @Excel(name = "invoice_number", width = 15) @ApiModelProperty(value = "invoice_number") private java.lang.String invoiceNumber; } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/PlatformOrderShippingInvoiceService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/PlatformOrderShippingInvoiceService.java index 917b28983..3cccd532d 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/PlatformOrderShippingInvoiceService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/PlatformOrderShippingInvoiceService.java @@ -288,7 +288,7 @@ public class PlatformOrderShippingInvoiceService { invoice.paidAmount() ); shippingInvoiceMapper.insert(shippingInvoiceEntity); - return new InvoiceMetaData(filename, invoice.code(), invoice.client().getInvoiceEntity(), ""); + return new InvoiceMetaData(filename, invoice.code(), invoice.client().getInternalCode(), invoice.client().getInvoiceEntity(), ""); } /** @@ -341,7 +341,7 @@ public class PlatformOrderShippingInvoiceService { return factureDetailMapper.selectList(queryWrapper); } - public byte[] exportToExcel(List details, List refunds, String invoiceNumber, String invoiceEntity) throws IOException { + public byte[] exportToExcel(List details, List refunds, String invoiceNumber, String invoiceEntity, String internalCode) throws IOException { SheetManager sheetManager = SheetManager.createXLSX(); sheetManager.startDetailsSheet(); for (String title : DETAILS_TITLES) { @@ -426,10 +426,10 @@ public class PlatformOrderShippingInvoiceService { sheetManager.nextRow(); } - Path target = Paths.get(INVOICE_DETAIL_DIR, "Détail_calcul_de_facture_" + invoiceNumber + "_(" + invoiceEntity + ").xlsx"); + Path target = Paths.get(INVOICE_DETAIL_DIR, internalCode + "_(" + invoiceEntity + ")_" + invoiceNumber + "_Détail_calcul_de_facture.xlsx"); int i = 2; while (Files.exists(target)) { - target = Paths.get(INVOICE_DETAIL_DIR, "Détail_calcul_de_facture_" + invoiceNumber + "_(" + invoiceEntity + ")_" + i + ".xlsx"); + target = Paths.get(INVOICE_DETAIL_DIR, internalCode + "_(" + invoiceEntity + ")_" + invoiceNumber + "_Détail_calcul_de_facture_(" + i + ").xlsx"); i++; } Files.createFile(target); @@ -472,7 +472,7 @@ public class PlatformOrderShippingInvoiceService { metaData = makeCompleteInvoicePostShipping(param, "post"); invoiceList.add(metaData); } catch (UserException | IOException | ParseException e) { - invoiceList.add(new InvoiceMetaData("", "error", entry.getKey(), e.getMessage())); + invoiceList.add(new InvoiceMetaData("", "error", "", entry.getKey(), e.getMessage())); log.error(e.getMessage()); } System.gc(); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/vo/InvoiceMetaData.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/vo/InvoiceMetaData.java index bfd26a63d..9e3e7b739 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/vo/InvoiceMetaData.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/vo/InvoiceMetaData.java @@ -9,6 +9,8 @@ public class InvoiceMetaData { private final String invoiceCode; + private final String internalCode; + private final String invoiceEntity; private final String errorMsg;