|
|
|
@ -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 |
|
|
|
|