Update partMng.xml

This commit is contained in:
Johngreen
2025-10-27 14:04:06 +09:00
parent 934c220abc
commit bc6a7dcf7e

View File

@@ -2610,6 +2610,32 @@ SELECT T1.LEV, T1.BOM_REPORT_OBJID, T1.ROOT_PART_NO, T1.PATH, T1.LEAF, T2.*
AND T.OBJID = #{OBJID}
</select>
<!-- PART Detail 수정 저장 -->
<update id="updatePartDetail" parameterType="map">
UPDATE PART_MNG
SET
PART_NAME = #{PART_NAME},
MATERIAL = #{MATERIAL},
HEAT_TREATMENT_HARDNESS = #{HEAT_TREATMENT_HARDNESS},
HEAT_TREATMENT_METHOD = #{HEAT_TREATMENT_METHOD},
SURFACE_TREATMENT = #{SURFACE_TREATMENT},
SUPPLY_CODE = #{SUPPLY_CODE},
PART_TYPE = #{PART_TYPE},
REMARK = #{REMARK},
EDIT_DATE = NOW()
WHERE OBJID = #{OBJID}
</update>
<!-- 품번 중복 체크 (PART_BOM_REPORT 테이블 - 헤더 품번) -->
<select id="checkDuplicatePartNo" parameterType="map" resultType="int">
SELECT COUNT(*)
FROM PART_BOM_REPORT
WHERE PART_NO = #{partNo}
<if test="bomReportObjid != null and bomReportObjid != ''">
AND OBJID != #{bomReportObjid}
</if>
</select>
<!-- //구조등록 목록조회 -->
<select id="getBOMStandardStructureList" parameterType="map" resultType="map">
SELECT * FROM
@@ -2679,7 +2705,7 @@ SELECT T1.LEV, T1.BOM_REPORT_OBJID, T1.ROOT_PART_NO, T1.PATH, T1.LEAF, T2.*
</if>
<if test="SEARCH_DEPLOY_DATE_TO != null and SEARCH_DEPLOY_DATE_TO != ''">
AND T.DEPLOY_DATE IS NOT NULL
AND TO_DATE(T.DEPLOY_DATE,'YYYY-MM-DD') <![CDATA[ <= ]]> #{SEARCH_DEPLOY_DATE_TO}::TIMESTAMP
AND T.DEPLOY_DATE::DATE <![CDATA[ <= ]]> #{SEARCH_DEPLOY_DATE_TO}::TIMESTAMP
</if>
<if test="status != null and !''.equals(status)">
@@ -2744,12 +2770,29 @@ SELECT T1.LEV, T1.BOM_REPORT_OBJID, T1.ROOT_PART_NO, T1.PATH, T1.LEAF, T2.*
,T.MULTI_BREAK_YN
,T.MULTI_MASTER_OBJID
,(SELECT COUNT(*) FROM BOM_PART_QTY AS A WHERE A.BOM_REPORT_OBJID = T.OBJID) AS BOM_CNT
,PRODUCT_CD
,CODE_NAME(PRODUCT_CD) as PRODUCT_NAME
,PART_NO
,PART_NAME
FROM
PART_BOM_REPORT AS T
WHERE 1=1
<if test="SEARCH_PART_NO != null and !''.equals(SEARCH_PART_NO)">
AND UPPER(T.PART_NO) LIKE UPPER('%${SEARCH_PART_NO}%')
</if>
<if test="SEARCH_PART_NAME != null and !''.equals(SEARCH_PART_NAME)">
AND UPPER(T.PART_NAME) LIKE UPPER('%${SEARCH_PART_NAME}%')
</if>
<if test="product_cd != null and product_cd != ''">
AND T.PRODUCT_CD = #{product_cd}
</if>
<if test="search_fromDate != null and search_fromDate != ''">
AND REGDATE::DATE <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
</if>
<if test="search_toDate != null and search_toDate != ''">
AND REGDATE::DATE <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
</if>
<if test="customer_cd != null and customer_cd != ''">
AND T.CUSTOMER_OBJID = #{customer_cd}
</if>
@@ -2885,6 +2928,48 @@ SELECT T1.LEV, T1.BOM_REPORT_OBJID, T1.ROOT_PART_NO, T1.PATH, T1.LEAF, T2.*
<!-- //bomObjId를 통해 BOM 구조등록 기본정보 조회 -->
<!-- 활성화된 BOM 목록 조회 (셀렉트박스용) -->
<select id="getActiveBomList" parameterType="map" resultType="map">
SELECT
OBJID AS CODE,
COALESCE(PART_NO, '') || ' - ' || COALESCE(PART_NAME, '') ||
CASE WHEN REVISION IS NOT NULL AND REVISION != '' THEN ' (Rev.' || REVISION || ')' ELSE '' END AS NAME
FROM PART_BOM_REPORT
WHERE STATUS = 'Y'
ORDER BY REGDATE DESC
</select>
<!-- BOM 복사를 위한 파트 목록 조회 -->
<select id="getBomPartListForCopy" parameterType="map" resultType="map">
SELECT
BPQ.PARENT_PART_NO,
PM.PART_NO,
PM.PART_NAME,
BPQ.QTY,
BPQ.ITEM_QTY,
PM.MATERIAL,
PM.HEAT_TREATMENT_HARDNESS,
PM.HEAT_TREATMENT_METHOD,
PM.SURFACE_TREATMENT,
BPQ.SUPPLIER,
PM.PART_TYPE
FROM BOM_PART_QTY BPQ
LEFT JOIN PART_MNG PM ON BPQ.PART_NO = PM.OBJID::VARCHAR AND PM.IS_LAST = '1'
WHERE BPQ.BOM_REPORT_OBJID = #{BOM_REPORT_OBJID}
AND (BPQ.STATUS IS NULL OR BPQ.STATUS != 'deleted')
ORDER BY BPQ.SEQ
</select>
<!-- OBJID로 파트 정보 조회 -->
<select id="getPartInfoByObjid" parameterType="map" resultType="map">
SELECT
PART_NO,
PART_NAME
FROM PART_MNG
WHERE OBJID = #{OBJID}
AND IS_LAST = '1'
</select>
<select id="getBOMStructureStandardInfoByObjId" parameterType="string" resultType="map">
SELECT
OBJID,
@@ -2978,28 +3063,53 @@ SELECT T1.LEV, T1.BOM_REPORT_OBJID, T1.ROOT_PART_NO, T1.PATH, T1.LEAF, T2.*
, STATUS
, WRITER
, REGDATE
,MULTI_YN
,MULTI_MASTER_YN
,MULTI_BREAK_YN
,MULTI_MASTER_OBJID
, MULTI_YN
, MULTI_MASTER_YN
, MULTI_BREAK_YN
, MULTI_MASTER_OBJID
, PRODUCT_CD
, PART_NO
, PART_NAME
, REVISION
) VALUES (
#{OBJID}
, #{CUSTOMER_OBJID}
, #{CONTRACT_OBJID}
, #{UNIT_CODE}
, 'create'
, 'N'
, #{WRITER}
, NOW()
,#{MULTI_YN }
,#{MULTI_MASTER_YN }
,#{MULTI_BREAK_YN }
,#{MULTI_MASTER_OBJID }
, #{MULTI_YN}
, #{MULTI_MASTER_YN}
, #{MULTI_BREAK_YN}
, #{MULTI_MASTER_OBJID}
, #{PRODUCT_CD}
, #{PART_NO}
, #{PART_NAME}
, #{REVISION}
) ON
CONFLICT (OBJID) DO
UPDATE
SET WRITER = #{WRITER}
SET WRITER = #{WRITER}
, PRODUCT_CD = #{PRODUCT_CD}
, PART_NO = #{PART_NO}
, PART_NAME = #{PART_NAME}
, REVISION = #{REVISION}
</insert>
<!-- 기존 BOM의 파트 데이터 삭제 -->
<delete id="deleteBomPartQtyByBomObjid" parameterType="string">
DELETE FROM BOM_PART_QTY
WHERE BOM_REPORT_OBJID = #{BOM_REPORT_OBJID}
</delete>
<!-- 기존 BOM 상태 초기화 -->
<update id="resetBomReportStatus" parameterType="string">
UPDATE PART_BOM_REPORT
SET STATUS = 'N'
WHERE OBJID = #{OBJID}
</update>
<insert id="createBOMReportStructureStandardInfo_old" parameterType="map">
INSERT INTO PART_BOM_REPORT (
OBJID
@@ -3213,15 +3323,15 @@ SELECT T1.LEV, T1.BOM_REPORT_OBJID, T1.ROOT_PART_NO, T1.PATH, T1.LEAF, T2.*
,P.OUT_DIAMETER
,P.IN_DIAMETER
,P.LENGTH
,P.SOURCING_CODE
,P.HEAT_TREATMENT_HARDNESS
,P.HEAT_TREATMENT_METHOD
,P.SURFACE_TREATMENT
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO F WHERE P.OBJID = F.TARGET_OBJID <!--AND STATUS = 'Active'--> AND F.DOC_TYPE IN ('3D_CAD')) AS CU01_CNT
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO F WHERE P.OBJID = F.TARGET_OBJID <!--AND STATUS = 'Active'--> AND F.DOC_TYPE IN ('2D_DRAWING_CAD')) AS CU02_CNT
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO F WHERE P.OBJID = F.TARGET_OBJID <!--AND STATUS = 'Active'--> AND F.DOC_TYPE IN ('2D_PDF_CAD')) AS CU03_CNT
,V.LEV
,P.SOURCING_CODE
,P.HEAT_TREATMENT_HARDNESS
,P.HEAT_TREATMENT_METHOD
,P.SURFACE_TREATMENT
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO F WHERE P.OBJID = F.TARGET_OBJID <!--AND STATUS = 'Active'--> AND F.DOC_TYPE IN ('3D_CAD')) AS CU01_CNT
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO F WHERE P.OBJID = F.TARGET_OBJID <!--AND STATUS = 'Active'--> AND F.DOC_TYPE IN ('2D_DRAWING_CAD')) AS CU02_CNT
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO F WHERE P.OBJID = F.TARGET_OBJID <!--AND STATUS = 'Active'--> AND F.DOC_TYPE IN ('2D_PDF_CAD')) AS CU03_CNT
,V.LEV
,(SELECT OBJID FROM VIEW_BOM VT WHERE V.BOM_REPORT_OBJID = VT.BOM_REPORT_OBJID AND VT.LEV = 1 ORDER BY SEQ LIMIT 1) AS ROOT_OBJID
,(SELECT OBJID FROM VIEW_BOM VT WHERE V.BOM_REPORT_OBJID = VT.BOM_REPORT_OBJID AND VT.LEV = 1 ORDER BY SEQ LIMIT 1) AS SUB_ROOT_OBJID
,( SELECT