Browse Source

20250507

java8
qiezi 8 months ago
parent
commit
8b472e2bd1
  1. 3
      src/main/java/com/xujie/sys/modules/quote/entity/QuoteDetail.java
  2. 2
      src/main/java/com/xujie/sys/modules/quote/entity/QuoteGroupDetail.java
  3. 224
      src/main/resources/mapper/quote/QuoteDetailMapper.xml
  4. 11
      src/main/resources/mapper/quote/QuoteGroupDetailMapper.xml

3
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<PropertyModelDetail> list;
}

2
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<PropertyModelDetail> list;

224
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 @@
</select>
<select id="queryQuoteDetailReportTP" resultType="com.xujie.sys.modules.quote.entity.QuoteDetail">
<!-- <select id="queryQuoteDetailReportTP" resultType="java.util.LinkedHashMap">-->
<!-- exec dbo.plm_calculate_quote_detail_TP #{id}-->
<!-- <select id="queryQuoteDetailReportTP" resultType="java.util.LinkedHashMap">-->
<!-- exec dbo.plm_calculate_quote_detail_TP #{id}-->
select qd.id,
qd.quote_id,
qd.site,
qd.bu_no,
qd.quote_no,
qd.version_no,
qd.item_no,
qd.part_id,
pp.part_no,
pp.part_desc,
qd.internal_inquiry_no,
qd.qty,
qd.quote_count,
qd.status,
qd.part_cost,
qd.adjust_part_cost,
qd.labour_cost,
qd.adjust_labour_cost,
qd.fabricate_cost,
qd.adjust_fabricate_cost,
qd.tool_cost,
qd.adjust_tool_cost,
qd.machine_cost,
qd.adjust_machine_cost,
qd.other_cost,
qd.manage_cost,
qd.total_cost,
qd.profit_rate,
qd.profit_amount,
qd.total_price,
qd.unit_price,
qd.tax_rate,
qd.tax_total_price,
qd.tax_unit_price,
qd.remark,
qd.active,
qd.create_by,
qd.create_date,
qd.update_by,
qd.update_date,
qd.pack_cost,
qd.shipping_cost,
qd.process_time,
qd.yield,
qd.bom_un_yield,
qd.bom_yield,
qd.parent_attrition_rate,
qd.child_attrition_rate,
qd.adjust_bom_un_yield,
qd.quote_cost,
qd.adjust_quote_cost,
qd.quote_total_cost,
qd.quote_profit_rate,
qd.quote_profit_amount,
qd.quote_total_price,
qd.quote_unit_price,
qd.quote_tax_rate,
qd.quote_tax_total_price,
qd.quote_tax_unit_price,
qd.currency1,
qd.exchange_rate1,
qd.currency2,
qd.exchange_rate2,
qd.moq,
qd.currency_total_cost1,
qd.currency_total_cost2,
qd.quote_currency_total_cost1,
qd.quote_currency_total_cost2,
qd.type,
qd.quote_group_detail_id,
qd.cost_model,
CASE
WHEN qd.qty >= 250000 AND
((qd.currency1 = 'USD' AND qd.exchange_rate1 > 0) OR
(qd.currency2 = 'USD' AND qd.exchange_rate2 > 0))
THEN
((qd.adjust_bom_un_yield + qd.adjust_labour_cost + qd.adjust_fabricate_cost +
qd.adjust_machine_cost) /
CASE
WHEN qd.currency1 = 'USD' THEN qd.exchange_rate1
ELSE qd.exchange_rate2
END) * qd.quote_profit_rate / 100
ELSE NULL
END AS weighted,
CASE
WHEN qd.qty >= 5000000 AND
((qd.currency1 = 'USD' AND qd.exchange_rate1 > 0) OR
(qd.currency2 = 'USD' AND qd.exchange_rate2 > 0))
THEN
((qd.adjust_bom_un_yield + qd.adjust_labour_cost + qd.adjust_fabricate_cost +
qd.adjust_machine_cost) /
CASE
WHEN qd.currency1 = 'USD' THEN qd.exchange_rate1
ELSE qd.exchange_rate2
END) * qd.quote_profit_rate / 100 - 1.5
ELSE NULL
END AS weighted2,
bdp.decimal_place
qd.quote_id,
qd.site,
qd.bu_no,
qd.quote_no,
qd.version_no,
qd.item_no,
qd.part_id,
pp.part_no,
pp.part_desc,
qd.internal_inquiry_no,
qd.qty,
qd.quote_count,
qd.status,
qd.part_cost,
qd.adjust_part_cost,
qd.labour_cost,
qd.adjust_labour_cost,
qd.fabricate_cost,
qd.adjust_fabricate_cost,
qd.tool_cost,
qd.adjust_tool_cost,
qd.machine_cost,
qd.adjust_machine_cost,
qd.other_cost,
qd.manage_cost,
qd.total_cost,
qd.profit_rate,
qd.profit_amount,
qd.total_price,
qd.unit_price,
qd.tax_rate,
qd.tax_total_price,
qd.tax_unit_price,
qd.remark,
qd.active,
qd.create_by,
qd.create_date,
qd.update_by,
qd.update_date,
qd.pack_cost,
qd.shipping_cost,
qd.process_time,
qd.yield,
qd.bom_un_yield,
qd.bom_yield,
qd.parent_attrition_rate,
qd.child_attrition_rate,
qd.adjust_bom_un_yield,
qd.quote_cost,
qd.adjust_quote_cost,
qd.quote_total_cost,
qd.quote_profit_rate,
qd.quote_profit_amount,
qd.quote_total_price,
qd.quote_unit_price,
qd.quote_tax_rate,
qd.quote_tax_total_price,
qd.quote_tax_unit_price,
qd.currency1,
qd.exchange_rate1,
qd.currency2,
qd.exchange_rate2,
qd.moq,
qd.currency_total_cost1,
qd.currency_total_cost2,
qd.quote_currency_total_cost1,
qd.quote_currency_total_cost2,
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
(qd.currency2 = 'USD' AND qd.exchange_rate2 > 0))
THEN
((qd.adjust_bom_un_yield + qd.adjust_labour_cost + qd.adjust_fabricate_cost +
qd.adjust_machine_cost) /
CASE
WHEN qd.currency1 = 'USD' THEN qd.exchange_rate1
ELSE qd.exchange_rate2
END) * qd.quote_profit_rate / 100
ELSE NULL
END AS weighted,
CASE
WHEN qd.qty >= 5000000 AND
((qd.currency1 = 'USD' AND qd.exchange_rate1 > 0) OR
(qd.currency2 = 'USD' AND qd.exchange_rate2 > 0))
THEN
((qd.adjust_bom_un_yield + qd.adjust_labour_cost + qd.adjust_fabricate_cost +
qd.adjust_machine_cost) /
CASE
WHEN qd.currency1 = 'USD' THEN qd.exchange_rate1
ELSE qd.exchange_rate2
END) * qd.quote_profit_rate / 100 - 1.5
ELSE NULL
END AS weighted2,
bdp.decimal_place
from plm_quote_detail qd
left join part pp on qd.part_id = pp.id
left join bu_decimal_place bdp on bdp.site = qd.site and bdp.bu_no = qd.bu_no
left join part pp on qd.part_id = pp.id
left join bu_decimal_place bdp on bdp.site = qd.site and bdp.bu_no = qd.bu_no
<where>
<if test="id != null">
and qd.id = #{id}

11
src/main/resources/mapper/quote/QuoteGroupDetailMapper.xml

@ -74,6 +74,17 @@
qd.type,
qd.current_quote_detail_item_no,
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

Loading…
Cancel
Save