From 8b472e2bd1170a5c44a9f3d2f2c2799cd70a48d0 Mon Sep 17 00:00:00 2001 From: qiezi <15576055375@163.com> Date: Wed, 7 May 2025 16:23:41 +0800 Subject: [PATCH] 20250507 --- .../sys/modules/quote/entity/QuoteDetail.java | 3 + .../quote/entity/QuoteGroupDetail.java | 2 + .../mapper/quote/QuoteDetailMapper.xml | 224 ++++++++++-------- .../mapper/quote/QuoteGroupDetailMapper.xml | 11 + 4 files changed, 139 insertions(+), 101 deletions(-) diff --git a/src/main/java/com/xujie/sys/modules/quote/entity/QuoteDetail.java b/src/main/java/com/xujie/sys/modules/quote/entity/QuoteDetail.java index d5c8f1b8..c8e8be47 100644 --- a/src/main/java/com/xujie/sys/modules/quote/entity/QuoteDetail.java +++ b/src/main/java/com/xujie/sys/modules/quote/entity/QuoteDetail.java @@ -229,6 +229,9 @@ public class QuoteDetail { @TableField(exist = false) private Integer decimalPlace; + @TableField(exist = false) + private BigDecimal totalCostUSD; + @TableField(exist = false) private List list; } diff --git a/src/main/java/com/xujie/sys/modules/quote/entity/QuoteGroupDetail.java b/src/main/java/com/xujie/sys/modules/quote/entity/QuoteGroupDetail.java index abc1ef93..cd914959 100644 --- a/src/main/java/com/xujie/sys/modules/quote/entity/QuoteGroupDetail.java +++ b/src/main/java/com/xujie/sys/modules/quote/entity/QuoteGroupDetail.java @@ -228,6 +228,8 @@ public class QuoteGroupDetail { private BigDecimal weighted2; @TableField(exist = false) private Integer decimalPlace; + @TableField(exist = false) + private BigDecimal totalCostUSD; @TableField(exist = false) private List list; diff --git a/src/main/resources/mapper/quote/QuoteDetailMapper.xml b/src/main/resources/mapper/quote/QuoteDetailMapper.xml index 9d64ab1d..ddc23c89 100644 --- a/src/main/resources/mapper/quote/QuoteDetailMapper.xml +++ b/src/main/resources/mapper/quote/QuoteDetailMapper.xml @@ -74,6 +74,17 @@ qd.type, qd.quote_group_detail_id, qd.cost_model, + CASE + WHEN ((qd.currency1 = 'USD' AND qd.exchange_rate1 > 0) OR + (qd.currency2 = 'USD' AND qd.exchange_rate2 > 0)) + THEN + (qd.total_cost / + CASE + WHEN qd.currency1 = 'USD' THEN qd.exchange_rate1 + ELSE qd.exchange_rate2 + END) + ELSE NULL + END AS totalCostUSD, CASE WHEN qd.qty >= 250000 AND ((qd.currency1 = 'USD' AND qd.exchange_rate1 > 0) OR @@ -477,109 +488,120 @@