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.
 
 
 
 
 
 

217 lines
8.9 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.quote.mapper.QuoteDetailRoutingMapper">
<insert id="saveQuoteDetailRouting">
insert into plm_quote_detail_routing(quote_id, quote_detail_id, quote_detail_item_no, site, bu_no, quote_no,
version_no, part_no, routing_revision, routing_type, alternative_no,
operation_no, efficiency_factor, mach_run_factor, mach_setup_time,
run_time_code, labor_run_factor, labor_setup_time, crew_size,
setup_crew_size, outside_op_item, machine_no, work_center_no,
labor_class_no, setup_labor_class_no, overlap, note_text, operation_id,
operation_name, create_by, create_date, tree_id, mach_cycle_time,
labor_cycle_time, resource_num, labor_class_cost, setup_labor_class_cost,
work_center_cost, manu_cost)
select #{quoteId},
#{quoteDetailId},
#{quoteDetailItemNo},
#{site},
#{buNo},
#{quoteNo},
#{versionNo},
rc.part_no,
rc.routing_revision,
rc.routing_type,
rc.alternative_no,
rc.operation_no,
rc.efficiency_factor,
rc.mach_run_factor,
rc.mach_setup_time,
rc.run_time_code,
rc.labor_run_factor,
rc.labor_setup_time,
rc.crew_size,
rc.setup_crew_size,
rc.outside_op_item,
rc.machine_no,
rc.work_center_no,
rc.labor_class_no,
rc.setup_labor_class_no,
rc.overlap,
rc.note_text,
rc.operation_id,
rc.operation_name,
#{createBy},
#{createDate},
#{treeId},
0,
0,
0,
isnull(lc.current_level_cost, 0) as labor_class_cost, -- 人工
isnull(slc.current_level_cost, 0) as setup_labor_class_cost, -- 调机人工
dbo.get_workCenter_cost(rc.site, rc.work_center_no), -- 加工中心成本
dbo.get_workCenter_cost(rc.site, rc.work_center_no) -- 制造费用
from plm_routing_component rc
left join labor_class lc on rc.labor_class_no = lc.level_id and rc.site = lc.site
left join labor_class slc on rc.setup_labor_class_no = slc.level_id and rc.site = slc.site
where rc.part_no = #{partNo}
and rc.routing_revision = #{routingRevision}
and rc.routing_type = #{routingType}
and rc.alternative_no = #{alternativeNo}
and rc.site = #{site}
</insert>
<select id="queryQuoteDetailRouting" resultType="com.spring.modules.quote.entity.QuoteDetailRouting">
select qdr.id,
qdr.quote_id,
qdr.quote_detail_id,
qdr.quote_detail_item_no,
qdr.site,
qdr.bu_no,
qdr.quote_no,
qdr.version_no,
qdr.part_no,
qdr.routing_revision,
qdr.routing_type,
qdr.alternative_no,
qdr.operation_no,
qdr.efficiency_factor,
qdr.mach_run_factor,
qdr.mach_setup_time,
qdr.run_time_code,
(case
when qdr.run_time_code = 'Units/Hour' then '单位/小时'
when qdr.run_time_code = 'Hour/Units' then '小时/单位'
when qdr.run_time_code = 'Hour' then '小时'
else '' end) as runTimeDesc,
qdr.labor_run_factor,
qdr.labor_setup_time,
qdr.crew_size,
qdr.setup_crew_size,
qdr.outside_op_item,
qdr.machine_no,
qdr.work_center_no,
qdr.labor_class_no,
qdr.setup_labor_class_no,
qdr.overlap,
qdr.note_text,
qdr.operation_id,
qdr.operation_name,
qdr.create_by,
qdr.create_date,
qdr.tree_id,
p.part_desc,
wc.work_center_desc,
qdr.mach_cycle_time,
qdr.labor_cycle_time,
qdr.resource_num,
qdr.labor_class_cost,
qdr.setup_labor_class_cost,
qdr.work_center_cost,
qdr.manu_cost,
qdr.shrinkage_factor
from plm_quote_detail_routing qdr
left join part p on qdr.part_no = p.part_no and qdr.site = p.site
left join work_center wc
on qdr.work_center_no = wc.work_center_no and qdr.site = wc.site
where qdr.tree_id = #{treeId}
order by qdr.tree_id, qdr.operation_no
</select>
<select id="queryQuoteDetailRoutingByTreeIds"
resultType="com.spring.modules.quote.entity.QuoteDetailRouting">
select qdr.id,
qdr.quote_id,
qdr.quote_detail_id,
qdr.quote_detail_item_no,
qdr.site,
qdr.bu_no,
qdr.quote_no,
qdr.version_no,
qdr.part_no,
qdr.routing_revision,
qdr.routing_type,
qdr.alternative_no,
qdr.operation_no,
qdr.efficiency_factor,
qdr.mach_run_factor,
qdr.mach_setup_time,
qdr.run_time_code,
(case
when qdr.run_time_code = 'Units/Hour' then '单位/小时'
when qdr.run_time_code = 'Hours/Unit' then '小时/单位'
when qdr.run_time_code = 'Hours' then '小时'
else '' end) as runTimeDesc,
qdr.labor_run_factor,
qdr.labor_setup_time,
qdr.crew_size,
qdr.setup_crew_size,
qdr.outside_op_item,
qdr.machine_no,
qdr.work_center_no,
qdr.labor_class_no,
qdr.setup_labor_class_no,
qdr.overlap,
qdr.note_text,
qdr.operation_id,
qdr.operation_name,
qdr.create_by,
qdr.create_date,
qdr.tree_id,
p.part_desc,
wc.work_center_desc,
qdr.mach_cycle_time,
qdr.labor_cycle_time,
qdr.resource_num,
qdr.labor_class_cost,
qdr.setup_labor_class_cost,
qdr.work_center_cost,
qdr.manu_cost,
qdr.shrinkage_factor
from plm_quote_detail_routing qdr
left join part p on qdr.part_no = p.part_no and qdr.site = p.site
left join work_center wc
on qdr.work_center_no = wc.work_center_no and qdr.site = wc.site
<where>
<if test="ids != null and ids.size() > 0">
and qdr.tree_id in (
<foreach collection="ids" item="id" separator=",">
#{id}
</foreach>
)
</if>
</where>
order by qdr.tree_id, qdr.operation_no
</select>
<select id="queryQuoteDetailRoutingByVersion"
resultType="com.spring.modules.quote.entity.QuoteDetailRouting">
select
prh.site,
prh.part_no,
prh.routing_revision,
prh.routing_type,
p.part_desc
from plm_routing_header prh
left join part p on prh.part_no = p.part_no and prh.site = p.site
where prh.site = #{site}
and prh.part_no = #{partNo}
<if test="routingType != null and routingType != ''">
and prh.routing_type = #{routingType}
</if>
order by prh.routing_type, prh.routing_revision
</select>
<select id="queryQuoteDetailRoutingAlternative"
resultType="com.spring.modules.quote.entity.QuoteDetailRouting">
select prd.site,
prd.part_no,
prd.routing_revision,
prd.routing_type,
prd.alternative_no,
p.part_desc
from plm_routing_detail prd
left join part p on prd.part_no = p.part_no and prd.site = p.site
where prd.site = #{site}
and prd.part_no = #{partNo}
and prd.routing_type = #{routingType}
and prd.routing_revision = #{routingRevision}
order by prd.alternative_no desc
</select>
</mapper>