You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
300 lines
11 KiB
300 lines
11 KiB
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
<mapper namespace="com.spring.modules.quotation.mapper.QuoteBomHeaderMapper">
|
|
<insert id="saveBatchQuoteDetailBom">
|
|
insert into quote_bom_detail (site, quote_detail_id, part_no, version, bom_type, alternative_no, component_part,
|
|
print_unit, qty_per_assembly, component_scrap, issue_type, shrinkage_factor,
|
|
line_item_no, operation_id, issue_to_loc, note_text, line_sequence)
|
|
values
|
|
<foreach collection="list" item="item" separator=",">
|
|
(#{item.site}, #{item.quoteDetailId}, #{item.partNo}, #{item.version}, #{item.bomType}, #{item.alternativeNo},
|
|
#{item.componentPart}, #{item.printUnit}, #{item.qtyPerAssembly}, #{item.componentScrap}, #{item.issueType},
|
|
#{item.shrinkageFactor}, #{item.lineItemNo}, #{item.operationId}, #{item.issueToLoc}, #{item.noteText},
|
|
#{item.lineSequence})
|
|
</foreach>
|
|
</insert>
|
|
|
|
<select id="getProjectPart" resultType="com.spring.modules.project.entity.PlmProjectPart">
|
|
select top 1 final_part_no from view_Project_Part where site = #{site} and test_part_no = #{testPartNo}
|
|
</select>
|
|
<select id="getBomComponentEntityList" resultType="com.spring.modules.quotation.entity.QuoteBomDetail">
|
|
SELECT site,
|
|
part_no,
|
|
eng_chg_level as version,
|
|
bom_type,
|
|
alternative_no,
|
|
component_part,
|
|
print_unit,
|
|
qty_per_assembly,
|
|
component_scrap,
|
|
issue_type,
|
|
shrinkage_factor,
|
|
line_item_no,
|
|
operation_id,
|
|
issue_to_loc,
|
|
note_text,
|
|
line_sequence
|
|
FROM plm_bom_component
|
|
where site = #{site}
|
|
and part_no = #{partNo}
|
|
and bom_type = #{bomType}
|
|
and eng_chg_level = #{version}
|
|
and alternative_no = #{alternativeNo}
|
|
and qty_per_assembly > 0
|
|
order by line_sequence
|
|
</select>
|
|
|
|
<select id="searchQuoteBomDetailList" resultType="com.spring.modules.quotation.vo.QuoteBomDetailVo">
|
|
SELECT a.id,
|
|
a.header_id,
|
|
a.site,
|
|
a.part_no,
|
|
a.bom_type,
|
|
a.version,
|
|
a.alternative_no,
|
|
a.component_part,
|
|
p.part_desc as componentPartDesc,
|
|
dbo.get_part_unitCost(a.site, a.part_no) as unitCost,
|
|
a.print_unit,
|
|
dbo.get_um_name(a.print_unit) as printUnitName,
|
|
a.qty_per_assembly,
|
|
a.component_scrap,
|
|
a.issue_type,
|
|
case
|
|
when a.issue_type = 'A' then '领退料倒冲'
|
|
when a.issue_type = 'B' then '工单倒冲'
|
|
when a.issue_type = 'C' then '生产订单倒冲'
|
|
when a.issue_type = 'D' then '投料倒冲'
|
|
when a.issue_type = 'E' then '批次倒冲'
|
|
when a.issue_type = 'F' then '销售订单倒冲'
|
|
when a.issue_type = 'G' then '项目倒冲'
|
|
else '' end as issueTypeName,
|
|
a.shrinkage_factor,
|
|
a.line_item_no,
|
|
a.operation_id,
|
|
a.issue_to_loc,
|
|
dbo.get_location_name(a.site, a.issue_to_loc) as issueToLocName,
|
|
a.note_text,
|
|
a.line_sequence
|
|
FROM quote_bom_detail a,
|
|
part p
|
|
where a.site = p.site
|
|
and a.component_part = p.part_no
|
|
and a.header_id in (
|
|
<foreach collection="list" item="item" separator=",">
|
|
#{item.id}
|
|
</foreach>
|
|
)
|
|
order by a.header_id, a.line_sequence
|
|
</select>
|
|
|
|
<select id="searchQuoteBomDetailAllList" resultType="com.spring.modules.quotation.vo.QuoteBomDetailVo">
|
|
SELECT a.site,
|
|
a.part_no,
|
|
a.bom_type,
|
|
a.version,
|
|
a.alternative_no,
|
|
a.component_part,
|
|
p.part_desc as componentPartDesc,
|
|
dbo.get_part_unitCost(a.site, p.part_no) as unitCost,
|
|
a.print_unit,
|
|
dbo.get_um_name(a.print_unit) as printUnitName,
|
|
a.qty_per_assembly,
|
|
a.component_scrap,
|
|
a.issue_type,
|
|
case
|
|
when a.issue_type = 'A' then '领退料倒冲'
|
|
when a.issue_type = 'B' then '工单倒冲'
|
|
when a.issue_type = 'C' then '生产订单倒冲'
|
|
when a.issue_type = 'D' then '投料倒冲'
|
|
when a.issue_type = 'E' then '批次倒冲'
|
|
when a.issue_type = 'F' then '销售订单倒冲'
|
|
when a.issue_type = 'G' then '项目倒冲'
|
|
else '' end as issueTypeName,
|
|
a.shrinkage_factor,
|
|
a.line_item_no,
|
|
a.operation_id,
|
|
a.issue_to_loc,
|
|
dbo.get_location_name(a.site, a.issue_to_loc) as issueToLocName,
|
|
a.note_text,
|
|
a.line_sequence
|
|
FROM quote_bom_detail a,
|
|
part p
|
|
where a.site = #{site}
|
|
and a.quote_detail_id = #{quoteDetailId}
|
|
and a.header_id = #{id}
|
|
and a.site = p.site
|
|
and a.component_part = p.part_no
|
|
order by a.line_sequence
|
|
</select>
|
|
|
|
<select id="selectBomHeader" resultType="com.spring.modules.part.entity.BomHeaderEntity">
|
|
select top 1 site,
|
|
part_no,
|
|
eng_chg_level,
|
|
bom_type,
|
|
note_text,
|
|
eff_phase_in_date,
|
|
eff_phase_out_date,
|
|
eng_revision,
|
|
row_version,
|
|
row_key,
|
|
type_flag,
|
|
net_weight,
|
|
create_date,
|
|
create_by,
|
|
update_date,
|
|
update_by,
|
|
official_flag
|
|
from plm_bom_header
|
|
where site = #{site}
|
|
and part_no = #{partNo}
|
|
and eff_phase_out_date is null
|
|
order by eff_phase_in_date
|
|
</select>
|
|
|
|
<select id="searchQuoteBOMVersion" resultType="com.spring.modules.quotation.vo.QuoteBomDetailVo">
|
|
SELECT
|
|
a.site,
|
|
a.part_no,
|
|
a.eng_chg_level as version,
|
|
a.bom_type,
|
|
p.part_desc as componentPartDesc,
|
|
a.eff_phase_in_date,
|
|
a.eff_phase_out_date
|
|
FROM plm_bom_header a,
|
|
part p
|
|
where a.site = #{site}
|
|
<if test="partNo != null and partNo != ''">
|
|
and a.part_no = #{partNo}
|
|
</if>
|
|
<if test="testPartNo != null and testPartNo != '' and partNo == null or partNo == ''">
|
|
and a.part_no = #{testPartNo}
|
|
</if>
|
|
and a.site = p.site
|
|
and a.part_no = p.part_no
|
|
order by a.eng_chg_level
|
|
</select>
|
|
|
|
<select id="searchQuoteBOMAlternativeNo" resultType="com.spring.modules.quotation.vo.QuoteBomDetailVo">
|
|
SELECT a.site,
|
|
a.part_no,
|
|
a.eng_chg_level as version,
|
|
a.bom_type,
|
|
p.part_desc as componentPartDesc,
|
|
a.alternative_no,
|
|
a.alternative_description,
|
|
a.status
|
|
FROM plm_bom_detail a,
|
|
part p
|
|
where a.site = #{site}
|
|
<if test="partNo != null and partNo != ''">
|
|
and a.part_no = #{partNo}
|
|
</if>
|
|
<if test="version != null">
|
|
and a.eng_chg_level = #{version}
|
|
</if>
|
|
<if test="bomType != null and bomType != ''">
|
|
and a.bom_type = #{bomType}
|
|
</if>
|
|
and a.site = p.site
|
|
and a.part_no = p.part_no
|
|
order by a.eng_chg_level
|
|
</select>
|
|
|
|
<select id="selectBomHeaderList" resultType="com.spring.modules.quotation.entity.QuoteBomHeader">
|
|
select
|
|
site,
|
|
part_no,
|
|
eng_chg_level as version,
|
|
bom_type
|
|
from plm_bom_header
|
|
where site = #{site}
|
|
and part_no in (
|
|
<foreach item="item" collection="list" separator=",">
|
|
#{item}
|
|
</foreach>
|
|
)
|
|
and eff_phase_out_date is null
|
|
order by eff_phase_in_date
|
|
</select>
|
|
|
|
<select id="selectBomHeaderData" resultType="com.spring.modules.quotation.entity.QuoteBomHeader">
|
|
select
|
|
top 1
|
|
site,
|
|
part_no,
|
|
eng_chg_level as version,
|
|
bom_type
|
|
from plm_bom_header
|
|
where site = #{site}
|
|
and part_no = #{partNo}
|
|
and eff_phase_out_date is null
|
|
order by case when bom_type='Manufacturing' then 1
|
|
when bom_type='Purchase' then 2
|
|
when bom_type='Repair' then 3 end
|
|
</select>
|
|
|
|
<select id="selectBomHeaderByPartNoAndVersionAndAlternative"
|
|
resultType="com.spring.modules.quotation.vo.QuoteDetailBomHeaderVo">
|
|
select top 1 b.site,
|
|
b.part_no,
|
|
b.alternative_no,
|
|
b.eng_chg_level as version,
|
|
b.bom_type,
|
|
b.part_no as test_part_no
|
|
from plm_bom_detail b
|
|
left join plm_bom_header a on a.site = b.site and a.part_no = b.part_no and a.bom_type = b.bom_type and
|
|
a.eng_chg_level = b.eng_chg_level
|
|
<where>
|
|
<if test="site != null and site != ''">
|
|
and b.site = #{site}
|
|
</if>
|
|
<if test="partNo != null and partNo != ''">
|
|
and b.part_no = #{partNo}
|
|
</if>
|
|
<if test="version != null">
|
|
and b.eng_chg_level = #{version}
|
|
</if>
|
|
<if test="version == null">
|
|
and a.eff_phase_out_date is null
|
|
</if>
|
|
<if test="alternativeNo != null and alternativeNo != ''">
|
|
and b.alternative_no = #{alternativeNo}
|
|
</if>
|
|
</where>
|
|
order by a.eff_phase_in_date
|
|
</select>
|
|
|
|
<select id="selectBomDetailByPartNoAndVersionAndAlternative"
|
|
resultType="com.spring.modules.quotation.vo.QuoteDetailBomHeaderVo">
|
|
select
|
|
site,
|
|
part_no,
|
|
eng_chg_level as version,
|
|
bom_type,
|
|
alternative_no,
|
|
component_part as part_no,
|
|
component_part as test_part_no,
|
|
from
|
|
plm_bom_component
|
|
<where>
|
|
<if test="site != null and site != ''">
|
|
and site = #{site}
|
|
</if>
|
|
<if test="partNo != null and partNo != ''">
|
|
and part_no = #{partNo}
|
|
</if>
|
|
<if test="version != null">
|
|
and eng_chg_level = #{version}
|
|
</if>
|
|
<if test="bomType != null and bomType != ''">
|
|
and bom_type = #{bomType}
|
|
</if>
|
|
<if test="alternativeNo != null and alternativeNo != ''">
|
|
and alternative_no = #{alternativeNo}
|
|
</if>
|
|
</where>
|
|
</select>
|
|
</mapper>
|