Browse Source

20250509

java8
qiezi 10 months ago
parent
commit
73a6b1c45d
  1. 4
      src/main/java/com/xujie/sys/modules/quote/entity/Quote.java
  2. 9
      src/main/java/com/xujie/sys/modules/quote/entity/QuoteDetail.java
  3. 4
      src/main/java/com/xujie/sys/modules/quote/entity/QuoteGroupDetail.java
  4. 241
      src/main/resources/mapper/quote/QuoteDetailMapper.xml
  5. 14
      src/main/resources/mapper/quote/QuoteGroupDetailMapper.xml
  6. 4
      src/main/resources/mapper/quote/QuoteMapper.xml

4
src/main/java/com/xujie/sys/modules/quote/entity/Quote.java

@ -101,6 +101,10 @@ public class Quote extends QueryPage {
private String chipPrice;
private String quoteType;
private String deltaFlag;
/**
* ------------------(额外字段)----------------------
*/

9
src/main/java/com/xujie/sys/modules/quote/entity/QuoteDetail.java

@ -162,6 +162,8 @@ public class QuoteDetail {
private String costModel;
private BigDecimal delta;
@TableField(exist = false)
private Integer engChgLevel;
@ -234,6 +236,13 @@ public class QuoteDetail {
@TableField(exist = false)
private BigDecimal totalCostUSD;
@TableField(exist = false)
private String quoteType;
@TableField(exist = false)
private String deltaFlag;
@TableField(exist = false)
private BigDecimal deltaValue;
@TableField(exist = false)
private List<PropertyModelDetail> list;
}

4
src/main/java/com/xujie/sys/modules/quote/entity/QuoteGroupDetail.java

@ -162,6 +162,8 @@ public class QuoteGroupDetail {
private String costModel;// 2020/UFIDA
private BigDecimal delta;
@TableField(exist = false)
private Integer engChgLevel;
@ -230,6 +232,8 @@ public class QuoteGroupDetail {
private Integer decimalPlace;
@TableField(exist = false)
private BigDecimal totalCostUSD;
@TableField(exist = false)
private BigDecimal deltaValue;
@TableField(exist = false)
private List<PropertyModelDetail> list;

241
src/main/resources/mapper/quote/QuoteDetailMapper.xml

@ -74,6 +74,7 @@
qd.type,
qd.quote_group_detail_id,
qd.cost_model,
qd.delta,
CASE
WHEN ((qd.currency1 = 'USD' AND qd.exchange_rate1 > 0) OR
(qd.currency2 = 'USD' AND qd.exchange_rate2 > 0))
@ -85,6 +86,19 @@
END)
ELSE NULL
END AS totalCostUSD,
CASE
when ((isnull(qd.quote_profit_rate, 0) - isnull(qd.delta, 0)) = 0)
then 0
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) * ((qd.quote_profit_rate - qd.delta) / 100)
ELSE NULL
END AS deltaValue,
CASE
WHEN qd.qty >= 250000 AND
((qd.currency1 = 'USD' AND qd.exchange_rate1 > 0) OR
@ -111,7 +125,7 @@
END) * qd.quote_profit_rate / 100 - 1.5
ELSE NULL
END AS weighted2,
bdp.decimal_place
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
@ -143,104 +157,118 @@
<select id="queryQuoteDetailByStatus" resultType="com.xujie.sys.modules.quote.entity.QuoteDetail">
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
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,
qd.delta,
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 ((isnull(qd.quote_profit_rate, 0) - isnull(qd.delta, 0)) = 0)
then 0
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) * ((qd.quote_profit_rate - qd.delta) / 100)
ELSE NULL
END AS deltaValue,
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
from plm_quote_detail qd
left join part pp on qd.part_id = pp.id
left join part pp on qd.part_id = pp.id
<where>
qd.status = '下达'
<if test="id != null">
@ -393,6 +421,8 @@
qd.update_date,
qd.remark,
q.remark as quoteRemark,
q.quote_type,
q.delta_flag,
qd.internal_inquiry_no,
rh.required_completion_date,
rh.request_date,
@ -437,7 +467,7 @@
and pp.part_no like #{params.partNo}
</if>
<if test="params.partDesc != null and params.partDesc != ''">
and pp.part_desc like '%'+#{params.partDesc}+'%'
and pp.part_desc like '%' + #{params.partDesc} + '%'
</if>
<if test="params.list != null and params.list.size() > 0">
@ -572,6 +602,19 @@
END)
ELSE NULL
END AS totalCostUSD,
CASE
when ((isnull(qd.quote_profit_rate,0) - isnull(qd.delta,0)) = 0)
then 0
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) * ((qd.quote_profit_rate - qd.delta) / 100)
ELSE NULL
END AS deltaValue,
CASE
WHEN qd.qty >= 250000 AND
((qd.currency1 = 'USD' AND qd.exchange_rate1 > 0) OR

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

@ -74,6 +74,7 @@
qd.type,
qd.current_quote_detail_item_no,
qd.cost_model,
qd.delta,
CASE
WHEN ((qd.currency1 = 'USD' AND qd.exchange_rate1 > 0) OR
(qd.currency2 = 'USD' AND qd.exchange_rate2 > 0))
@ -85,6 +86,19 @@
END)
ELSE NULL
END AS totalCostUSD,
CASE
when ((isnull(qd.quote_profit_rate, 0) - isnull(qd.delta, 0)) = 0)
then 0
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) * ((qd.quote_profit_rate - qd.delta) / 100)
ELSE NULL
END AS deltaValue,
CASE
WHEN qd.qty >= 250000 AND
((qd.currency1 = 'USD' AND qd.exchange_rate1 > 0) OR

4
src/main/resources/mapper/quote/QuoteMapper.xml

@ -36,6 +36,8 @@
q.cost_model,
q.markup,
q.chip_price,
q.quote_type,
q.delta_flag,
dbo.plm_get_user_display(q.site, q.quoter) as quoterName,
dbo.plm_get_user_display(q.site, q.purchase) as purchaseName
from plm_quote q
@ -135,6 +137,8 @@
q.cost_model,
q.markup,
q.chip_price,
q.quote_type,
q.delta_flag,
dbo.plm_get_user_display(q.site, q.quoter) as quoterName,
dbo.plm_get_user_display(q.site, q.purchase) as purchaseName
from plm_quote q

Loading…
Cancel
Save