From d2ddab74a1ebe88a011666844ef54e57c348cdc5 Mon Sep 17 00:00:00 2001 From: Gauthier LO Date: Tue, 1 Aug 2023 12:09:02 +0200 Subject: [PATCH] feature: cancel invoice fix : orders invoiced twice --- .../shippingInvoice/InvoiceController.java | 4 +- .../ShippingInvoiceController.java | 86 ++++++++++++++++++- .../ShippingInvoiceFactory.java | 4 +- .../business/entity/ShippingInvoice.java | 14 ++- .../modules/business/mapper/ClientMapper.java | 2 + .../mapper/PlatformOrderContentMapper.java | 1 + .../business/mapper/PlatformOrderMapper.java | 1 + .../business/mapper/SavRefundMapper.java | 1 + .../business/mapper/xml/ClientMapper.xml | 6 +- .../mapper/xml/PlatformOrderContentMapper.xml | 9 ++ .../mapper/xml/PlatformOrderMapper.xml | 16 +++- .../business/mapper/xml/SavRefundMapper.xml | 7 ++ .../business/service/IClientService.java | 2 +- .../service/IPlatformOrderContentService.java | 6 ++ .../service/IPlatformOrderService.java | 6 ++ .../business/service/ISavRefundService.java | 6 +- .../PlatformOrderShippingInvoiceService.java | 10 ++- .../service/impl/ClientServiceImpl.java | 4 + .../impl/PlatformOrderContentServiceImpl.java | 4 + .../impl/PlatformOrderServiceImpl.java | 4 + .../service/impl/SavRefundServiceImpl.java | 4 + .../modules/business/vo/InvoiceMetaData.java | 2 + 22 files changed, 183 insertions(+), 16 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 9e628a34f..8d02eed09 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 @@ -323,9 +323,9 @@ public class InvoiceController { } @GetMapping(value = "/downloadInvoiceDetail") - public byte[] downloadInvoiceDetail(@RequestParam("invoiceNumber") String invoiceNumber) throws IOException { + public byte[] downloadInvoiceDetail(@RequestParam("invoiceNumber") String invoiceNumber, @RequestParam("invoiceEntity") String invoiceEntity) throws IOException { List res = shippingInvoiceService.getInvoiceDetail(invoiceNumber); - return shippingInvoiceService.exportToExcel(res, invoiceNumber); + return shippingInvoiceService.exportToExcel(res, invoiceNumber, invoiceEntity); } @GetMapping(value = "/breakdown/byShop") diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/shippingInvoice/ShippingInvoiceController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/shippingInvoice/ShippingInvoiceController.java index 64b32c356..064066ec2 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/shippingInvoice/ShippingInvoiceController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/shippingInvoice/ShippingInvoiceController.java @@ -17,8 +17,7 @@ import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.business.entity.Client; import org.jeecg.modules.business.entity.ShippingInvoice; -import org.jeecg.modules.business.service.EmailService; -import org.jeecg.modules.business.service.IShippingInvoiceService; +import org.jeecg.modules.business.service.*; import org.jeecg.modules.business.vo.ShippingInvoicePage; import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.def.NormalExcelConstants; @@ -70,6 +69,14 @@ import java.util.stream.Stream; @RequestMapping("/generated/shippingInvoice") @Slf4j public class ShippingInvoiceController { + @Autowired + private IClientService clientService; + @Autowired + private IPlatformOrderContentService platformOrderContentService; + @Autowired + private IPlatformOrderService platformOrderService; + @Autowired + private ISavRefundService savRefundService; @Autowired private IShippingInvoiceService shippingInvoiceService; @Autowired @@ -296,6 +303,30 @@ public class ShippingInvoiceController { return pathList; } + /** Finds the absolute path of invoice file by recursively walking the directory and it's subdirectories + * + * @param dirPath + * @param invoiceNumber + * @return List of paths for the file but should only find one result + */ + public List getPath(String dirPath, String invoiceNumber, String invoiceEntity) { + List pathList = new ArrayList<>(); + //Recursively list all files + //The walk() method returns a Stream by walking the file tree beginning with a given starting file/directory in a depth-first manner. + try (Stream stream = Files.walk(Paths.get(dirPath))) { + pathList = stream.map(Path::normalize) + .filter(Files::isRegularFile) // directories, hidden files and files without extension are not included + .filter(path -> path.getFileName().toString().contains(invoiceNumber)) + .filter(path -> path.getFileName().toString().contains(invoiceEntity)) + .filter(path -> path.getFileName().toString().endsWith(EXTENSION)) + .collect(Collectors.toList()); + } + catch(IOException e) { + e.printStackTrace(); + } + return pathList; + } + /** * Finds the absolute path of invoice file and return the path * @param invoiceNumber @@ -471,4 +502,55 @@ public class ShippingInvoiceController { log.info("Found client for invoice {} : {}", invoiceNumber, client.fullName()); return Result.OK(client); } + + /** + * Deletes an invoice + * @param invoiceNumber invoice number to cancel + * @return if update successful + */ + @PostMapping(value = "/cancelInvoice") + public Result cancelInvoice(@RequestParam("id") String id, @RequestParam("invoiceNumber") String invoiceNumber, @RequestParam("clientId") String clientId) { + log.info("Cancelling invoice number : {}", invoiceNumber); + platformOrderContentService.cancelInvoice(invoiceNumber); + platformOrderService.cancelInvoice(invoiceNumber); + savRefundService.cancelInvoice(invoiceNumber); + shippingInvoiceService.delMain(id); + log.info("Deleting invoice files ..."); + String invoiceEntity = clientService.getClientEntity(clientId); + List invoicePathList = getPath(INVOICE_LOCATION, invoiceNumber, invoiceEntity); + List detailPathList = getPath(INVOICE_DETAIL_LOCATION, invoiceNumber, invoiceEntity); + if(invoicePathList.isEmpty() ||detailPathList.isEmpty()) { + log.error("FILE NOT FOUND : " + invoiceNumber); + return Result.ok("Invoice canceled, but file not found."); + } + else { + for (Path path : invoicePathList) { + log.info(path.toString()); + } + for (Path path : detailPathList) { + log.info(path.toString()); + } + try { + File invoiceFile = new File(invoicePathList.get(0).toString()); + File detailFile = new File(detailPathList.get(0).toString()); + if(invoiceFile.delete()) { + log.info("Invoice file {} delete successful.", invoicePathList.get(0).toString()); + } else { + log.error("Invoice file delete fail."); + return Result.error("Invoice file delete fail."); + } + if(detailFile.delete()) { + log.info("Detail file {} delete successful.", detailPathList.get(0).toString()); + } else { + log.error("Detail file delete fail."); + return Result.error("Detail file delete fail."); + } + } catch (Exception e) { + e.printStackTrace(); + return Result.error(e.getMessage()); + } + } + log.info("Invoice files deleted."); + return Result.ok("Invoice cancel successful."); + } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/shippingInvoice/ShippingInvoiceFactory.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/shippingInvoice/ShippingInvoiceFactory.java index 1d1af156a..08c81e0d8 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/shippingInvoice/ShippingInvoiceFactory.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/shippingInvoice/ShippingInvoiceFactory.java @@ -387,7 +387,7 @@ public class ShippingInvoiceFactory { List savRefunds, String subject, boolean skipShippingTimeComparing) throws UserException { log.info("Orders to be invoiced: {}", orderAndContent); - if (orderAndContent == null) { + if (orderAndContent == null || orderAndContent.size() == 0) { throw new UserException("No platform order in the selected period!"); } Map skuRealWeights = new HashMap<>(); @@ -397,7 +397,7 @@ public class ShippingInvoiceFactory { Map> channelPriceMap; Map logisticChannelMap = logisticChannelMapper.getAll().stream() .collect(toMap(LogisticChannel::getId, Function.identity())); - if(subject.contains("Pre") || subject.contains("All")) { + if(subject.contains("order time")) { channelPriceMap = getChannelPriceMap(logisticChannelMap, orderAndContent, skipShippingTimeComparing, "order"); } else { diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/ShippingInvoice.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/ShippingInvoice.java index f129d4592..395c4aab4 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/ShippingInvoice.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/ShippingInvoice.java @@ -50,6 +50,12 @@ public class ShippingInvoice implements Serializable { */ @ApiModelProperty(value = "更新人") private String updateBy; + /** + * 客户 ID + */ + @Excel(name = "客户", width = 15) + @ApiModelProperty(value = "客户") + private String clientId; /** * 更新日期 */ @@ -103,6 +109,9 @@ public class ShippingInvoice implements Serializable { public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; } + public void setClientI(String clientId) { + this.clientId = clientId; + } public void setInvoiceNumber(String invoiceNumber) { this.invoiceNumber = invoiceNumber; } @@ -135,6 +144,7 @@ public class ShippingInvoice implements Serializable { Date createTime, String updateBy, Date updateTime, + String clientId, String invoiceNumber, BigDecimal totalAmount, BigDecimal discountAmount, @@ -145,6 +155,7 @@ public class ShippingInvoice implements Serializable { this.createTime = createTime; this.updateBy = updateBy; this.updateTime = updateTime; + this.clientId = clientId; this.invoiceNumber = invoiceNumber; this.totalAmount = totalAmount; this.discountAmount = discountAmount; @@ -153,12 +164,13 @@ public class ShippingInvoice implements Serializable { } public static ShippingInvoice of( String username, + String clientId, String invoiceNumber, BigDecimal totalAmount, BigDecimal discountAmount, BigDecimal paidAmount ) { - return new ShippingInvoice(null, username, new Date(), username, new Date(), + return new ShippingInvoice(null, username, new Date(), username, new Date(), clientId, invoiceNumber, totalAmount, discountAmount, totalAmount.subtract(discountAmount), paidAmount); } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/ClientMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/ClientMapper.java index 57d5d428a..59c7a0ebf 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/ClientMapper.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/ClientMapper.java @@ -1,6 +1,7 @@ package org.jeecg.modules.business.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; import org.jeecg.modules.business.entity.Client; import org.springframework.stereotype.Repository; @@ -13,4 +14,5 @@ import org.springframework.stereotype.Repository; @Repository public interface ClientMapper extends BaseMapper { + String getClientEntity(@Param("id") String id); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/PlatformOrderContentMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/PlatformOrderContentMapper.java index 0c66de46a..df27a4824 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/PlatformOrderContentMapper.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/PlatformOrderContentMapper.java @@ -73,4 +73,5 @@ public interface PlatformOrderContentMapper extends BaseMapper findUninvoicedShippedOrderContents(); List fetchPlatformOrderContentsToArchive(@Param("orderIDs") List orderIDs); void insertPlatformOrderContentsArchives(@Param("orderContents") List platformOrderContents); + void cancelInvoice(@Param("invoiceNumber") String invoiceNumber); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/PlatformOrderMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/PlatformOrderMapper.java index 99edad025..9b3c61370 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/PlatformOrderMapper.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/PlatformOrderMapper.java @@ -181,4 +181,5 @@ public interface PlatformOrderMapper extends BaseMapper { List fetchOrdersToArchiveBetweenDate(@Param("startDate") String startDate, @Param("endDate") String endDate); List fetchOrdersToArchiveBeforeDate(@Param("endDate") String endDate); void insertPlatformOrdersArchives(@Param("orders") List platformOrders); + void cancelInvoice(@Param("invoiceNumber") String invoiceNumber); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/SavRefundMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/SavRefundMapper.java index 7cd72dbb7..fe65d9da7 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/SavRefundMapper.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/SavRefundMapper.java @@ -17,4 +17,5 @@ import java.util.List; @Repository public interface SavRefundMapper extends BaseMapper { List fetchRefundAmount(@Param("invoiceNumber") String invoiceNumber); + void cancelInvoice(@Param("invoiceNumber") String invoiceNumber); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/ClientMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/ClientMapper.xml index aac109c6a..532a226d4 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/ClientMapper.xml +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/ClientMapper.xml @@ -1,5 +1,9 @@ - + \ No newline at end of file diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/PlatformOrderContentMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/PlatformOrderContentMapper.xml index 5c0ba30f5..a58739e66 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/PlatformOrderContentMapper.xml +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/PlatformOrderContentMapper.xml @@ -279,4 +279,13 @@ ) ; + + UPDATE platform_order_content + SET purchase_fee = 0.0, + shipping_fee = NULL, + service_fee = NULL, + vat = NULL, + purchase_fee = 0.0 + WHERE platform_order_id IN (SELECT id FROM platform_order WHERE shipping_invoice_number = #{invoiceNumber}); + diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/PlatformOrderMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/PlatformOrderMapper.xml index 15f9e20f3..a127d6590 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/PlatformOrderMapper.xml +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/PlatformOrderMapper.xml @@ -464,7 +464,8 @@ SELECT po.id FROM platform_order po JOIN logistic_channel lc ON po.logistic_channel_name = lc.zh_name - WHERE po.shop_id IN + WHERE shipping_invoice_number IS NULL + AND po.shop_id IN ; + + + UPDATE platform_order + SET fret_fee = NULL, + order_service_fee = NULL, + shipping_invoice_number = NULL, + picking_fee = 0.0, + packaging_material_fee = 0.0 + WHERE shipping_invoice_number = #{invoiceNumber}; + diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/SavRefundMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/SavRefundMapper.xml index 2c4284abb..da5da8458 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/SavRefundMapper.xml +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/SavRefundMapper.xml @@ -6,4 +6,11 @@ FROM sav_refund s WHERE s.invoice_number = #{invoiceNumber} + + UPDATE sav_refund + SET invoice_number = NULL, + refund_date = NULL, + total_refund_amount = 0.0 + WHERE invoice_number = #{invoiceNumber}; + \ No newline at end of file diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IClientService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IClientService.java index 8d7d89273..230017761 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IClientService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IClientService.java @@ -37,7 +37,7 @@ public interface IClientService extends IService { * 批量删除一对多 */ public void delBatchMain (Collection idList); - + public String getClientEntity(String id); /** * Get current user's client information * @return client or null if current user's role is not client diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IPlatformOrderContentService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IPlatformOrderContentService.java index da552bd2f..d2c1b6e51 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IPlatformOrderContentService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IPlatformOrderContentService.java @@ -42,4 +42,10 @@ public interface IPlatformOrderContentService extends IService fetchPlatformOrderContentsToArchive(List orderIDs); void savePlatformOrderContentArchive(List platformOrderContents); + + /** + * Cancels an invoice + * @param invoiceNumber + */ + void cancelInvoice(String invoiceNumber); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IPlatformOrderService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IPlatformOrderService.java index 214e974d2..75bfa0487 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IPlatformOrderService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IPlatformOrderService.java @@ -165,4 +165,10 @@ public interface IPlatformOrderService extends IService { * @param platformOrders list of platform orders */ void savePlatformOrderArchive(List platformOrders); + + /** + * Cancel Invoice + * @param invoiceNumber + */ + void cancelInvoice(String invoiceNumber); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/ISavRefundService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/ISavRefundService.java index a0fcf6965..143d0f3c0 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/ISavRefundService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/ISavRefundService.java @@ -13,5 +13,9 @@ import java.util.List; * @Version: V1.0 */ public interface ISavRefundService extends IService { - List getRefundAmount(String invoiceNumber); + List getRefundAmount(String invoiceNumber);/** + * Cancel Invoice + * @param invoiceNumber + */ + void cancelInvoice(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 9466401d0..18878d0ec 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 @@ -258,13 +258,14 @@ public class PlatformOrderShippingInvoiceService { // save to DB org.jeecg.modules.business.entity.ShippingInvoice shippingInvoiceEntity = org.jeecg.modules.business.entity.ShippingInvoice.of( username, + invoice.client().getId(), invoice.code(), invoice.getTotalAmount(), invoice.reducedAmount(), invoice.paidAmount() ); shippingInvoiceMapper.insert(shippingInvoiceEntity); - return new InvoiceMetaData(filename, invoice.code()); + return new InvoiceMetaData(filename, invoice.code(), invoice.client().getInvoiceEntity()); } /** @@ -317,7 +318,7 @@ public class PlatformOrderShippingInvoiceService { return factureDetailMapper.selectList(queryWrapper); } - public byte[] exportToExcel(List details, String invoiceNumber) throws IOException { + public byte[] exportToExcel(List details, String invoiceNumber, String invoiceEntity) throws IOException { SheetManager sheetManager = SheetManager.createXLSX(); for (String title : titles) { sheetManager.write(title); @@ -370,15 +371,16 @@ public class PlatformOrderShippingInvoiceService { sheetManager.nextRow(); } - Path target = Paths.get(INVOICE_DETAIL_DIR, "Détail_calcul_de_facture_" + invoiceNumber + ".xlsx"); + Path target = Paths.get(INVOICE_DETAIL_DIR, "Détail_calcul_de_facture_" + invoiceNumber + "_(" + invoiceEntity + ").xlsx"); int i = 2; while (Files.exists(target)) { - target = Paths.get(INVOICE_DETAIL_DIR, "Détail_calcul_de_facture_" + invoiceNumber + "_" + i + ".xlsx"); + target = Paths.get(INVOICE_DETAIL_DIR, "Détail_calcul_de_facture_" + invoiceNumber + "_(" + invoiceEntity + ")_" + i + ".xlsx"); i++; } Files.createFile(target); sheetManager.export(target); sheetManager.getWorkbook().close(); + System.gc(); return Files.readAllBytes(target); } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/ClientServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/ClientServiceImpl.java index 128154ab9..830a1c7de 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/ClientServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/ClientServiceImpl.java @@ -117,4 +117,8 @@ public class ClientServiceImpl extends ServiceImpl impleme return clientUserMap.selectClientByUserId(sysUser.getId()); } + @Override + public String getClientEntity(String id) { + return clientMapper.getClientEntity(id); + } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/PlatformOrderContentServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/PlatformOrderContentServiceImpl.java index d80c3c838..522ee5516 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/PlatformOrderContentServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/PlatformOrderContentServiceImpl.java @@ -62,4 +62,8 @@ public class PlatformOrderContentServiceImpl extends ServiceImpl platformOrderContents) { platformOrderContentMapper.insertPlatformOrderContentsArchives(platformOrderContents); } + @Override + public void cancelInvoice(String invoiceNumber) { + platformOrderContentMapper.cancelInvoice(invoiceNumber); + } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/PlatformOrderServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/PlatformOrderServiceImpl.java index 22d879c8f..38b9c84e3 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/PlatformOrderServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/PlatformOrderServiceImpl.java @@ -378,4 +378,8 @@ public class PlatformOrderServiceImpl extends ServiceImpl platformOrders) { platformOrderMap.insertPlatformOrdersArchives(platformOrders); } + @Override + public void cancelInvoice(String invoiceNumber) { + platformOrderMap.cancelInvoice(invoiceNumber); + } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/SavRefundServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/SavRefundServiceImpl.java index ef9d5ce08..de28f24d7 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/SavRefundServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/SavRefundServiceImpl.java @@ -32,4 +32,8 @@ public class SavRefundServiceImpl extends ServiceImpl getRefundAmount(String invoiceNumber) { return savRefundMapper.fetchRefundAmount(invoiceNumber); } + @Override + public void cancelInvoice(String invoiceNumber) { + savRefundMapper.cancelInvoice(invoiceNumber); + } } 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 489d699b1..3aac152d9 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 @@ -8,4 +8,6 @@ public class InvoiceMetaData { private final String filename; private final String invoiceCode; + + private final String invoiceEntity; }