From d9fda30c3d1aa1ec5349c5197b9800165ddccb12 Mon Sep 17 00:00:00 2001 From: lihongjie0209 Date: Mon, 24 Feb 2025 22:10:15 +0800 Subject: [PATCH] =?UTF-8?q?feat(invoice):=20=E4=BC=98=E5=8C=96=E5=8F=91?= =?UTF-8?q?=E7=A5=A8=E4=B8=8A=E4=BC=A0=E5=92=8C=E6=9F=A5=E8=AF=A2=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改 InvoiceController 中 uploadNew 方法返回值类型- 在 InvoiceDto 和 InvoiceEntity 中添加 detailsCount 字段 -优化 InvoiceService 中发票存在性检查逻辑 - 在 InvoiceDetailDto 和 InvoiceDetailEntity 中将 taxRate 和 tax 字段类型改为 String --- .../invoice/controller/InvoiceController.java | 3 +-- .../coal/invoice/dto/InvoiceDto.java | 2 ++ .../coal/invoice/entity/InvoiceEntity.java | 6 ++++- .../coal/invoice/service/InvoiceService.java | 24 ++++++++++++++++++- .../invoiceDetail/dto/InvoiceDetailDto.java | 4 ++-- .../entity/InvoiceDetailEntity.java | 4 ++-- 6 files changed, 35 insertions(+), 8 deletions(-) diff --git a/src/main/java/cn/lihongjie/coal/invoice/controller/InvoiceController.java b/src/main/java/cn/lihongjie/coal/invoice/controller/InvoiceController.java index d410b289..87aa31ce 100644 --- a/src/main/java/cn/lihongjie/coal/invoice/controller/InvoiceController.java +++ b/src/main/java/cn/lihongjie/coal/invoice/controller/InvoiceController.java @@ -69,7 +69,6 @@ public class InvoiceController { @PostMapping("/uploadNew") @Operation(summary = "上传新发票") public Object uploadNew(@RequestBody IdRequest request) { - this.service.uploadNew(request); - return true; + return this.service.uploadNew(request); } } diff --git a/src/main/java/cn/lihongjie/coal/invoice/dto/InvoiceDto.java b/src/main/java/cn/lihongjie/coal/invoice/dto/InvoiceDto.java index 11aad2a0..7f7d527f 100644 --- a/src/main/java/cn/lihongjie/coal/invoice/dto/InvoiceDto.java +++ b/src/main/java/cn/lihongjie/coal/invoice/dto/InvoiceDto.java @@ -98,6 +98,8 @@ public class InvoiceDto extends OrgCommonDto { private FileEntity file; + @Comment("发票详情数量") + private Integer detailsCount; private String archiveStatus; diff --git a/src/main/java/cn/lihongjie/coal/invoice/entity/InvoiceEntity.java b/src/main/java/cn/lihongjie/coal/invoice/entity/InvoiceEntity.java index 21d6893c..a5be850e 100644 --- a/src/main/java/cn/lihongjie/coal/invoice/entity/InvoiceEntity.java +++ b/src/main/java/cn/lihongjie/coal/invoice/entity/InvoiceEntity.java @@ -118,9 +118,13 @@ public class InvoiceEntity extends OrgCommonEntity { @Comment("特殊标识信息") private String specialTag; - @OneToMany(cascade = {CascadeType.PERSIST, CascadeType.REMOVE}) + @OneToMany(cascade = {CascadeType.PERSIST, CascadeType.REMOVE}, mappedBy = "invoice") private List invoiceDetails; + + @Comment("发票详情数量") + private Integer detailsCount; + @ManyToOne private FileEntity file; @Comment("归档状态") diff --git a/src/main/java/cn/lihongjie/coal/invoice/service/InvoiceService.java b/src/main/java/cn/lihongjie/coal/invoice/service/InvoiceService.java index e4cd7ae2..c4daa744 100644 --- a/src/main/java/cn/lihongjie/coal/invoice/service/InvoiceService.java +++ b/src/main/java/cn/lihongjie/coal/invoice/service/InvoiceService.java @@ -117,7 +117,27 @@ public class InvoiceService extends BaseService() { + @Override + public Predicate toPredicate( + Root root, + CriteriaQuery query, + CriteriaBuilder criteriaBuilder) { + + return criteriaBuilder.and( + criteriaBuilder.equal( + root.get("invoiceCode"), invoice.getInvoiceCode()), + criteriaBuilder.equal( + root.get("invoiceNumber"), invoice.getInvoiceNumber()), + criteriaBuilder.equal( + root.get("organizationId"), + Ctx.currentUser().getOrganizationId())); + } + }); } if (CollectionUtils.isNotEmpty(invoice.getInvoiceDetails())) { @@ -127,6 +147,8 @@ public class InvoiceService extends BaseService { detail.setInvoice(invoice); }); + + invoice.setDetailsCount(invoice.getInvoiceDetails().size()); } invoice.setFile(fileService.get(request.getId())); diff --git a/src/main/java/cn/lihongjie/coal/invoiceDetail/dto/InvoiceDetailDto.java b/src/main/java/cn/lihongjie/coal/invoiceDetail/dto/InvoiceDetailDto.java index 5c20c9e8..8da2663a 100644 --- a/src/main/java/cn/lihongjie/coal/invoiceDetail/dto/InvoiceDetailDto.java +++ b/src/main/java/cn/lihongjie/coal/invoiceDetail/dto/InvoiceDetailDto.java @@ -36,10 +36,10 @@ public class InvoiceDetailDto extends OrgCommonDto { private Double amount; @Comment("税率") - private Double taxRate; + private String taxRate; @Comment("税额") - private Double tax; + private String tax; private String archiveStatus; diff --git a/src/main/java/cn/lihongjie/coal/invoiceDetail/entity/InvoiceDetailEntity.java b/src/main/java/cn/lihongjie/coal/invoiceDetail/entity/InvoiceDetailEntity.java index 9745e08e..20f078b7 100644 --- a/src/main/java/cn/lihongjie/coal/invoiceDetail/entity/InvoiceDetailEntity.java +++ b/src/main/java/cn/lihongjie/coal/invoiceDetail/entity/InvoiceDetailEntity.java @@ -48,10 +48,10 @@ public class InvoiceDetailEntity extends OrgCommonEntity { private Double amount; @Comment("税率") - private Double taxRate; + private String taxRate; @Comment("税额") - private Double tax; + private String tax; @Comment("归档状态") @ColumnDefault("'0'")