From 6e3f63bc953e8d47d4bf013d13058198a6ff7d64 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期二, 28 十月 2025 18:56:13 +0800
Subject: [PATCH] 广告物料整体项目结算表接口修改

---
 ruoyi-system/src/main/resources/mapper/system/AssetAdMaterialIntegralSettlementMapper.xml                  |    1 +
 ruoyi-system/src/main/java/com/ruoyi/system/model/AssetAdMaterialIntegralSettlement.java                   |    4 ++++
 ruoyi-system/src/main/java/com/ruoyi/system/dto/asset/AssetAdMaterialIntegralSettlementDTO.java            |    5 +++++
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetAdMaterialIntegralSettlementServiceImpl.java |    9 ++++++++-
 ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/AssetAdMaterialIntegralSettlementVO.java              |    4 ++++
 5 files changed, 22 insertions(+), 1 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/asset/AssetAdMaterialIntegralSettlementDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/asset/AssetAdMaterialIntegralSettlementDTO.java
index 4d6d712..3935250 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/dto/asset/AssetAdMaterialIntegralSettlementDTO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/asset/AssetAdMaterialIntegralSettlementDTO.java
@@ -8,6 +8,7 @@
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.util.List;
 
@@ -42,6 +43,10 @@
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     private LocalDate installationDate;
 
+    @ApiModelProperty(value = "合计金额")
+    @NotNull(message = "合计金额不能为空")
+    private BigDecimal totalAmount;
+
     @ApiModelProperty(value = "明细列表")
     @NotEmpty(message = "明细列表不能为空")
     private List<AssetAdMaterialIntegralSettlementInfoDTO> infos;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/AssetAdMaterialIntegralSettlement.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/AssetAdMaterialIntegralSettlement.java
index c542705..89f064c 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/AssetAdMaterialIntegralSettlement.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/AssetAdMaterialIntegralSettlement.java
@@ -11,6 +11,7 @@
 import lombok.experimental.Accessors;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 
@@ -53,6 +54,9 @@
     @ApiModelProperty(value = "安装时间")
     private LocalDate installationDate;
 
+    @ApiModelProperty(value = "合计金额")
+    private BigDecimal totalAmount;
+
     @ApiModelProperty(value = "创建时间")
     private LocalDateTime createTime;
 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetAdMaterialIntegralSettlementServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetAdMaterialIntegralSettlementServiceImpl.java
index 6638e68..20da403 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetAdMaterialIntegralSettlementServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AssetAdMaterialIntegralSettlementServiceImpl.java
@@ -33,6 +33,8 @@
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.InputStream;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.List;
 import java.util.Objects;
 import java.util.Optional;
@@ -68,6 +70,7 @@
             uploadToOss(list);
             // 保存主表
             AssetAdMaterialIntegralSettlement assetAdMaterialIntegralSettlement = BeanUtil.copyProperties(dto, AssetAdMaterialIntegralSettlement.class);
+            assetAdMaterialIntegralSettlement.setTotalAmount(calculateTotalAmount(list));
             assetAdMaterialIntegralSettlement.setCreateBy(SecurityUtils.getLoginUser().getUser().getNickName());
             assetAdMaterialIntegralSettlement.setDeptId(Integer.parseInt(SecurityUtils.getLoginUser().getUser().getDeptId()));
             save(assetAdMaterialIntegralSettlement);
@@ -79,7 +82,11 @@
             throw new RuntimeException(e);
         }
     }
-
+    private BigDecimal calculateTotalAmount(List<AssetAdMaterialIntegralSettlementInfoImport> list) {
+        return list.stream().map(item -> BigDecimal.valueOf(item.getQuantity())
+                        .multiply(item.getUnitPrice()).setScale(2, RoundingMode.HALF_UP))
+                .reduce(BigDecimal.ZERO, BigDecimal::add);
+    }
     private void validateFields(List<AssetAdMaterialIntegralSettlementInfoImport> list) {
         Optional<AssetAdMaterialIntegralSettlementInfoImport> any = list.stream()
                 .filter(item -> StringUtils.isBlank(item.getAdName())).findAny();
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/AssetAdMaterialIntegralSettlementVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/AssetAdMaterialIntegralSettlementVO.java
index 4ada16e..69b9aef 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/AssetAdMaterialIntegralSettlementVO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/asset/AssetAdMaterialIntegralSettlementVO.java
@@ -5,6 +5,7 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 
@@ -34,6 +35,9 @@
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private LocalDate installationDate;
 
+    @ApiModelProperty(value = "合计金额")
+    private BigDecimal totalAmount;
+
     @ApiModelProperty(value = "创建时间")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private LocalDateTime createTime;
diff --git a/ruoyi-system/src/main/resources/mapper/system/AssetAdMaterialIntegralSettlementMapper.xml b/ruoyi-system/src/main/resources/mapper/system/AssetAdMaterialIntegralSettlementMapper.xml
index bd646cf..276822a 100644
--- a/ruoyi-system/src/main/resources/mapper/system/AssetAdMaterialIntegralSettlementMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/AssetAdMaterialIntegralSettlementMapper.xml
@@ -11,6 +11,7 @@
               aamis.settlement_institution,
               aamis.address,
               aamis.installation_date,
+              aamis.total_amount,
               aamis.create_time,
               aamis.create_by,
               aamis.update_time,

--
Gitblit v1.7.1