|
|
<?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.xujie.sys.modules.part.mapper.QuicklyCreateBomMapper">
<!-- 获取所有节点 --> <select id="getNodeTree" resultType="com.xujie.sys.modules.part.entity.PlmQuicklyBomInfoEntity" parameterType="com.xujie.sys.modules.part.entity.PlmQuicklyBomInfoEntity"> SELECT a.site, b.sourceBu as buNo, a.template_no, a.node_id, a.node_name, a.main_part, a.part_no, b.part_desc, a.id, a.p_id, a.create_date, a.create_by, a.update_date, a.update_by, b.umid2 as printUnit, dbo.qc_get_um_name(a.site, b.umid2) as printUnitName, a.eng_chg_level, a.routing_revision FROM plm_quickly_bom_Info as a left join part as b on a.site = b.site and a.part_no = b.part_no <where> a.site = #{site} AND a.main_part = #{mainPart} <if test="nodeId != null and nodeId != ''"> AND a.node_id = #{nodeId} </if> </where> </select>
<!-- 获得id --> <select id="getSonId" parameterType="BomNodeEntity" resultType="java.lang.String"> SELECT MAX( CAST( RIGHT(id, LEN(id) - CHARINDEX('-', id, LEN(#{pId}) + 1)) AS INT ) ) AS maxSubId FROM plm_quickly_bom_Info WHERE site = #{site} AND id LIKE #{pId} + '-%' AND CHARINDEX('-', id, LEN(#{pId}) + 2) = 0 </select>
<!-- 新增节点 --> <insert id="saveNewNode" parameterType="BomNodeEntity"> INSERT INTO plm_bom_node (site, node_id, node_name, part_no, id, p_id, create_date, create_by) VALUES (#{site}, #{nodeId}, #{nodeName}, #{partNo}, #{id}, #{pId}, getDate(), #{createBy}) </insert>
<update id="nodeEdit" parameterType="BomNodeEntity"> UPDATE plm_quickly_bom_Info SET node_name = #{nodeName}, update_date = getDate(), update_by = #{updateBy} WHERE site = #{site} and main_part = #{mainPart} and node_id = #{nodeId} </update>
<!-- 删除该节点以及其子节点--> <delete id="nodeDelete" parameterType="BomNodeEntity"> DELETE FROM plm_quickly_bom_Info WHERE site = #{site} and main_part = #{mainPart} <if test="id != null and id != ''"> and (id like #{id} + '-%' or id = #{id}) </if> </delete>
<select id="getBomInformationByPartNo" resultType="com.xujie.sys.modules.part.vo.BomHeaderVo" parameterType="com.xujie.sys.modules.part.vo.BomHeaderVo"> SELECT top 1 a.site, a.bu_no, dbo.get_bu_desc(a.site, a.bu_no) as buDesc, a.part_no, b.part_desc, a.eng_chg_level, a.bom_type, a.note_text, a.eff_phase_in_date, a.eff_phase_out_date, a.eng_revision, a.type_flag, a.net_weight, a.create_date, a.create_by, a.update_date, a.update_by, b.umid2 as printUnit, dbo.qc_get_um_name(a.site, b.umid2) as printUnitName, isnull(dbo.get_yield_rate(a.site, a.bu_no, b.product_group_id2, '2'), 100) as yieldRate, a.process_unit, c.UMName as processUnitName FROM plm_bom_header as a left join part as b on a.site = b.site and a.bu_no = b.sourceBu and a.part_no = b.part_no left join plm_bom_detail as d on a.site = d.site and a.bu_no = d.bu_no and a.part_no = d.part_no and a.eng_chg_level = d.eng_chg_level and a.bom_type = d.bom_type left join UM as c on a.site = c.site and a.process_unit = c.UMID <where> a.site = #{site} <if test="buNo != null and buNo != ''"> and a.bu_no = #{buNo} </if> <if test="partNo != null and partNo != ''"> and a.part_no = #{partNo} </if> <if test="bomType != null and bomType != ''"> and a.bom_type = #{bomType} </if> </where> order by a.eng_chg_level desc </select>
<update id="updateBomNodePart"> UPDATE plm_quickly_bom_Info SET part_no = #{partNo} WHERE site = #{site} and main_part = #{mainPart} and node_id = #{nodeId} </update>
<select id="getRoutingInformationByPartNo" resultType="com.xujie.sys.modules.part.vo.RoutingHeaderVo" parameterType="com.xujie.sys.modules.part.vo.RoutingHeaderVo"> SELECT top 1 a.site, a.bu_no, dbo.get_bu_desc(a.site, a.bu_no) as buDesc, a.part_no, b.part_desc, a.routing_revision, a.routing_type, a.note_text, a.phase_in_date, a.phase_out_date, a.create_date, a.create_by, a.update_date, a.update_by, b.umid2 as printUnit, dbo.qc_get_um_name(a.site, b.umid2) as printUnitName, b.code_no FROM plm_routing_header as a left join part as b on a.site = b.site and a.bu_no = b.sourceBu and a.part_no = b.part_no left join plm_routing_detail as d on a.site = d.site and a.bu_no = d.bu_no and a.part_no = d.part_no and a.routing_revision = d.routing_revision and a.routing_type = d.routing_type <where> a.site = #{site} <if test="buNo != null and buNo != ''"> and a.bu_no = #{buNo} </if> <if test="partNo != null and partNo != ''"> and a.part_no = #{partNo} </if> <if test="routingType != null and routingType != ''"> and a.routing_type = #{routingType} </if> </where> order by a.routing_revision desc </select>
<update id="resetNodePartInfo" > UPDATE plm_bom_node SET part_no = '' WHERE Site = #{site} </update>
<select id="getBomTemplateDetail" resultType="com.xujie.sys.modules.part.entity.PlmQuicklyBomInfoEntity"> SELECT pbtd.site, pbtd.template_no, pbtd.node_id, pbn.node_name, pbtd.id, pbtd.p_id, #{partNo} as mainPart, #{createBy} as createBy FROM plm_bom_template_detail as pbtd left join plm_bom_node as pbn on pbtd.site = pbn.site and pbtd.node_id = pbn.node_id where pbtd.site = #{site} and pbtd.template_no = #{templateNo} </select>
<insert id="saveQuicklyBomInfo"> insert into plm_quickly_bom_Info (site, template_no, node_id, main_part, part_no, id, p_id, create_date, create_by, node_name, eng_chg_level, routing_revision) VALUES <foreach collection="list" item="item" index="index" separator=","> (#{item.site}, #{item.templateNo}, #{item.nodeId}, #{item.mainPart}, <choose> <when test='item.pId.toString() == "0"'> #{item.mainPart} </when> <otherwise> #{item.partNo} </otherwise> </choose> , #{item.id}, #{item.pId}, getDate(), #{item.createBy}, #{item.nodeName}, 1, 1) </foreach> </insert>
<insert id="saveTemplateHeader" parameterType="com.xujie.sys.modules.part.vo.TemplateVo"> insert into plm_template_header (site, bu_no, template_no, template_name) VALUES (#{site}, #{buNo}, #{templateNo}, #{templateName}) </insert> <insert id="saveTemplateDetail" parameterType="com.xujie.sys.modules.part.vo.TemplateVo"> insert into plm_template_detail (site, bu_no, template_no, um_id, family_id, product_group_id1, product_group_id2, product_group_id3, code_no, bom_template_no) VALUES (#{site}, #{buNo}, #{templateNo}, #{umId}, #{familyId}, #{productGroupId1}, #{productGroupId2}, #{productGroupId3}, #{codeNo}, #{bomTemplateNo}) </insert>
<update id="updateTemplateHeader" parameterType="com.xujie.sys.modules.part.vo.TemplateVo"> UPDATE plm_template_header SET template_name = #{templateName} WHERE site = #{site} AND bu_no = #{buNo} AND template_no = #{templateNo} </update>
<delete id="deleteTemplateDetail" parameterType="com.xujie.sys.modules.part.vo.TemplateVo"> DELETE FROM plm_template_detail WHERE site = #{site} AND bu_no = #{buNo} AND template_no = #{templateNo} </delete>
<delete id="deleteQuicklyBomInfo"> DELETE FROM plm_quickly_bom_Info WHERE site = #{site} and main_part = #{partNo} </delete> <delete id="deletePartSubPropertiesValue" parameterType="com.xujie.sys.modules.part.entity.PartSubPropertiesValueData"> delete from part_sub_properties_value WHERE site = #{site} and part_no = #{partNo} and bu_no = #{buNo} and record_type = #{recordType} </delete>
<select id="getPartInfoByNo" parameterType="com.xujie.sys.modules.part.vo.PartInformationVo" resultType="com.xujie.sys.modules.part.vo.PartInformationVo"> SELECT a.id, a.site, a.sourceBu as buNo, a.part_no, a.part_desc, a.umid2 as umId2, um.UMName as umName, a.spec, a.active, a.remark, a.part_type2, a.product_group_id1, dbo.get_product_group_name(a.site, a.sourceBu, a.product_group_id1, '1') as productGroupName1, a.product_group_id2, dbo.get_product_group_name(a.site, a.sourceBu, a.product_group_id2, '2') as productGroupName2, a.product_group_id3, dbo.get_product_group_name(a.site, a.sourceBu, a.product_group_id3, '3') as productGroupName3, a.FamilyID as familyID, pf.family_name as familyName, a.part_desce_en, a.code_no, dbo.get_code_desc(a.site, a.sourceBu, a.code_no, 'IP') as codeDesc, a.template_no, pbt.template_name FROM part as a LEFT JOIN UM as um on a.site = um.site and a.umid2 = um.UMID LEFT JOIN part_family as pf on a.site = pf.site and a.sourceBu = pf.bu_no and a.FamilyID = pf.family_id LEFT JOIN plm_bom_template as pbt on a.site = pbt.site and a.template_no = pbt.template_no where a.site = #{site} and a.part_no = #{partNo} </select>
<select id="findNode" resultType="com.xujie.sys.modules.part.entity.BomNodeEntity" parameterType="com.xujie.sys.modules.part.entity.BomNodeEntity"> select site, node_id, node_name, part_no, id, p_id from plm_bom_node where site = #{site} and node_id = #{nodeId} and id = #{id} </select> <select id="deletePartSubPropertiesValueHeader"> delete from part_sub_properties_value_header where site = #{site} and bu_no = #{buNo} and part_no = #{partNo} and code_no = #{codeNo} and record_type = #{recordType} and sub_code_seq_no = 1 </select>
<select id="getTemplateList" resultType="com.xujie.sys.modules.part.vo.TemplateVo" parameterType="com.xujie.sys.modules.part.vo.TemplateVo"> select template_no, template_name from plm_template_header where site = #{site} and bu_no = #{buNo} </select> <select id="chooseTemplate" resultType="com.xujie.sys.modules.part.vo.TemplateVo" parameterType="com.xujie.sys.modules.part.vo.TemplateVo"> select ptd.*, um.UmName as umName, pf.family_name as familyName, dbo.get_product_group_name(ptd.site, ptd.bu_no, ptd.product_group_id1, '1') as productGroupName1, dbo.get_product_group_name(ptd.site, ptd.bu_no, ptd.product_group_id2, '2') as productGroupName2, dbo.get_product_group_name(ptd.site, ptd.bu_no, ptd.product_group_id3, '3') as productGroupName3, dbo.get_code_desc(ptd.site, ptd.bu_no, ptd.code_no, 'IP') as codeDesc, pbt.template_name as bomTemplateName from plm_template_detail as ptd left join UM as um on ptd.site = um.site and ptd.um_id = um.UMID left join part_family as pf on ptd.site = pf.site and ptd.bu_no = pf.bu_no and ptd.family_id = pf.family_id left join plm_bom_template as pbt on ptd.site = pbt.site and ptd.bom_template_no = pbt.template_no where ptd.site = #{site} and ptd.bu_no = #{buNo} and ptd.template_no = #{tempNo} </select>
<select id="getBomInformationListByPartNo" resultType="com.xujie.sys.modules.part.vo.BomHeaderVo" parameterType="com.xujie.sys.modules.part.vo.BomHeaderVo"> SELECT a.site, a.bu_no, dbo.get_bu_desc(a.site, a.bu_no) as buDesc, a.part_no, b.part_desc, a.eng_chg_level, a.bom_type, a.note_text, a.eff_phase_in_date, a.eff_phase_out_date, a.eng_revision, a.type_flag, a.net_weight, a.create_date, a.create_by, a.update_date, a.update_by, b.umid2 as printUnit, dbo.qc_get_um_name(a.site, b.umid2) as printUnitName, isnull(dbo.get_yield_rate(a.site, a.bu_no, b.product_group_id2, '2'), 100) as yieldRate, a.process_unit, c.UMName as processUnitName FROM plm_bom_header as a left join part as b on a.site = b.site and a.bu_no = b.sourceBu and a.part_no = b.part_no left join plm_bom_detail as d on a.site = d.site and a.bu_no = d.bu_no and a.part_no = d.part_no and a.eng_chg_level = d.eng_chg_level and a.bom_type = d.bom_type left join UM as c on a.site = c.site and a.process_unit = c.UMID <where> a.site = #{site} <if test="buNo != null and buNo != ''"> and a.bu_no = #{buNo} </if> <if test="partNo != null and partNo != ''"> and a.part_no = #{partNo} </if> <if test="bomType != null and bomType != ''"> and a.bom_type = #{bomType} </if> </where> order by a.eng_chg_level </select>
<select id="getRoutingInformationListByPartNo" resultType="com.xujie.sys.modules.part.vo.RoutingHeaderVo" parameterType="com.xujie.sys.modules.part.vo.RoutingHeaderVo"> SELECT a.site, a.bu_no, dbo.get_bu_desc(a.site, a.bu_no) as buDesc, a.part_no, b.part_desc, a.routing_revision, a.routing_type, a.note_text, a.phase_in_date, a.phase_out_date, a.create_date, a.create_by, a.update_date, a.update_by, b.umid2 as printUnit, dbo.qc_get_um_name(a.site, b.umid2) as printUnitName FROM plm_routing_header as a left join part as b on a.site = b.site and a.bu_no = b.sourceBu and a.part_no = b.part_no left join plm_routing_detail as d on a.site = d.site and a.bu_no = d.bu_no and a.part_no = d.part_no and a.routing_revision = d.routing_revision and a.routing_type = d.routing_type <where> a.site = #{site} <if test="buNo != null and buNo != ''"> and a.bu_no = #{buNo} </if> <if test="partNo != null and partNo != ''"> and a.part_no = #{partNo} </if> <if test="routingType != null and routingType != ''"> and a.routing_type = #{routingType} </if> </where> order by a.routing_revision </select> <select id="getEngChgLevelList" resultType="java.lang.Integer"> SELECT a.eng_chg_level FROM plm_bom_header as a left join part as b on a.site = b.site and a.bu_no = b.sourceBu and a.part_no = b.part_no left join plm_bom_detail as d on a.site = d.site and a.bu_no = d.bu_no and a.part_no = d.part_no and a.eng_chg_level = d.eng_chg_level and a.bom_type = d.bom_type left join UM as c on a.site = c.site and a.process_unit = c.UMID <where> a.site = #{site} <if test="buNo != null and buNo != ''"> and a.bu_no = #{buNo} </if> <if test="partNo != null and partNo != ''"> and a.part_no = #{partNo} </if> <if test="bomType != null and bomType != ''"> and a.bom_type = #{bomType} </if> </where> order by a.eng_chg_level </select> <select id="getRoutingRevisionList" resultType="java.lang.Integer"> SELECT a.routing_revision FROM plm_routing_header as a left join part as b on a.site = b.site and a.bu_no = b.sourceBu and a.part_no = b.part_no left join plm_routing_detail as d on a.site = d.site and a.bu_no = d.bu_no and a.part_no = d.part_no and a.routing_revision = d.routing_revision and a.routing_type = d.routing_type <where> a.site = #{site} <if test="buNo != null and buNo != ''"> and a.bu_no = #{buNo} </if> <if test="partNo != null and partNo != ''"> and a.part_no = #{partNo} </if> <if test="routingType != null and routingType != ''"> and a.routing_type = #{routingType} </if> </where> order by a.routing_revision desc </select>
<update id="updateBomInfoId" parameterType="com.xujie.sys.modules.part.entity.PlmQuicklyBomInfoEntity"> UPDATE plm_quickly_bom_info SET id = REPLACE(id, #{data.pId}, #{data.id}), p_id = REPLACE(p_id, #{data.pId}, #{data.id}) WHERE site = #{data.site} AND main_part = #{data.mainPart} AND id LIKE #{data.id} + '%' AND ( LEN(id) = LEN(#{data.id}) OR (LEN(id) > LEN(#{data.id}) AND SUBSTRING(id, LEN(#{data.id}) + 1, 1) = '-') ) </update>
<update id="updatePartNoOfNode" parameterType="com.xujie.sys.modules.part.entity.PartNodeVo"> update plm_quickly_bom_info set part_no = #{partNo} where site = #{site} and node_id = #{nodeId} and main_part = #{mainPart} </update>
<update id="setRevision" parameterType="com.xujie.sys.modules.part.vo.PartInformationVo"> update plm_quickly_bom_info set eng_chg_level = #{engChgLevel}, routing_revision = #{routingRevision} where site = #{site} and part_no = #{partNo} and main_part = #{mainPart} </update>
</mapper>
|