Browse Source

Merge remote-tracking branch 'origin/master'

java8
jiayang yue 12 months ago
parent
commit
ed62e5bdb6
  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. 38
      src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteDetailServiceImpl.java
  4. 224
      src/main/resources/mapper/quote/QuoteDetailMapper.xml
  5. 11
      src/main/resources/mapper/quote/QuoteGroupDetailMapper.xml

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

@ -231,6 +231,9 @@ public class QuoteDetail {
@TableField(exist = false)
private Boolean authFlag;
@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;

38
src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteDetailServiceImpl.java

@ -343,24 +343,26 @@ public class QuoteDetailServiceImpl extends ServiceImpl<QuoteDetailMapper, Quote
BigDecimal DLPrintRate = calculation.getLaborPrintRate();
BigDecimal FOHPrintRate = calculation.getMachPrintRate();
BigDecimal VOHPrintRate = calculation.getManuPrintRate();
BigDecimal DL = strategy.computeDL(
antennaUsage, bondingYield, convertingYield, DLBeforeFeeRate,
DLBondingManHour, DLAfterFeeRate,DLParisBondingManHour,DLParisFeeRate,
DLConvertingManHour, convertingRate, DLAfterConvertingManHour, DLPrintConvertingManHour,
DLPrintRate);
BigDecimal FOH = strategy.computeFOH(
antennaUsage, bondingYield, convertingYield, FOHBeforeFeeRate,
DLBondingManHour, FOHAfterFeeRate,DLParisBondingManHour,VOHParisFeeRate,
DLConvertingManHour, convertingRate, DLAfterConvertingManHour, DLPrintConvertingManHour,
FOHPrintRate);
BigDecimal VOH = strategy.computeVOH(
antennaUsage, bondingYield, convertingYield, VOHBeforeFeeRate,
DLBondingManHour, VOHAfterFeeRate,DLParisBondingManHour,FOHParisFeeRate,
DLConvertingManHour, convertingRate, DLAfterConvertingManHour, DLPrintConvertingManHour,
VOHPrintRate);
labourCost = DL;
machineCost = FOH;
manufactureCost = VOH;
if (Objects.nonNull(strategy)){
BigDecimal DL = strategy.computeDL(
antennaUsage, bondingYield, convertingYield, DLBeforeFeeRate,
DLBondingManHour, DLAfterFeeRate,DLParisBondingManHour,DLParisFeeRate,
DLConvertingManHour, convertingRate, DLAfterConvertingManHour, DLPrintConvertingManHour,
DLPrintRate);
BigDecimal FOH = strategy.computeFOH(
antennaUsage, bondingYield, convertingYield, FOHBeforeFeeRate,
DLBondingManHour, FOHAfterFeeRate,DLParisBondingManHour,VOHParisFeeRate,
DLConvertingManHour, convertingRate, DLAfterConvertingManHour, DLPrintConvertingManHour,
FOHPrintRate);
BigDecimal VOH = strategy.computeVOH(
antennaUsage, bondingYield, convertingYield, VOHBeforeFeeRate,
DLBondingManHour, VOHAfterFeeRate,DLParisBondingManHour,FOHParisFeeRate,
DLConvertingManHour, convertingRate, DLAfterConvertingManHour, DLPrintConvertingManHour,
VOHPrintRate);
labourCost = DL;
machineCost = FOH;
manufactureCost = VOH;
}
}else {
// 其他一律按照UFIDA计算
Map<Long, List<QuoteDetailRouting>> routingMap = new HashMap<>();

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