Merge remote-tracking branch 'origin/main'

This commit is contained in:
2025-10-28 13:15:13 +09:00
3 changed files with 188 additions and 127 deletions

View File

@@ -185,8 +185,30 @@ ui-jqgrid tr.jqgrow td {
// {headerHozAlign : 'center', hozAlign : 'center', width : '90', title : 'PART 구분', field : 'PART_TYPE_TITLE' },
{headerHozAlign : 'center', hozAlign : 'center', width : '90', title : '비고', field : 'REMARK' }
];
// 중복 요청 방지 플래그
var isSearching = false;
function fn_search(){
_tabulGrid = fnc_tabul_search(_tabul_layout_fitColumns, _tabulGrid, "/partMng/partMngTempGridList.do", columns, true);
// 이미 검색 중이면 중단
if (isSearching) {
console.log('검색 중입니다. 잠시만 기다려주세요.');
return;
}
isSearching = true;
_tabulGrid = fnc_tabul_search(_tabul_layout_fitColumns, _tabulGrid, "/partMng/partMngTempGridList.do", columns, true, function() {
// 검색 완료 후 플래그 해제
isSearching = false;
});
// 타임아웃 방어 (10초 후 자동 해제)
setTimeout(function() {
if (isSearching) {
isSearching = false;
}
}, 10000);
}
function openPartMngPopup(objId){

View File

@@ -180,9 +180,31 @@ var columns = [
{headerHozAlign : 'center', hozAlign : 'center', width : '200', title : '상태', field : 'STATUS' }
];
// 중복 요청 방지를 위한 로딩 플래그
var isSearching = false;
//var grid;
function fn_search(){
_tabulGrid = fnc_tabul_search(_tabul_layout_fitColumns, _tabulGrid, "/partMng/searchStructureGridList.do", columns, true);
// 이미 검색 중이면 중복 요청 방지
if (isSearching) {
console.log('검색 중입니다. 잠시만 기다려주세요.');
return;
}
isSearching = true;
// 기존 그리드 검색 함수 실행
_tabulGrid = fnc_tabul_search(_tabul_layout_fitColumns, _tabulGrid, "/partMng/searchStructureGridList.do", columns, true, function() {
// 검색 완료 후 플래그 해제
isSearching = false;
});
// fnc_tabul_search가 콜백을 지원하지 않을 경우를 위한 타임아웃 처리
setTimeout(function() {
if (isSearching) {
isSearching = false;
}
}, 10000); // 10초 타임아웃
}
//양산제품에 해당하는 SPEC 정보 목록을 가져온다.

View File

@@ -97,8 +97,8 @@
P.PART_NO,
P.PART_NAME,
P.UNIT,
(SELECT CODE_NAME FROM COMM_CODE CC WHERE 1=1 AND CODE_ID = P.UNIT) AS UNIT_TITLE,
NVL((SELECT QTY FROM BOM_PART_QTY Q WHERE Q.LAST_PART_OBJID = P.OBJID AND STATUS = 'deploy' ORDER BY DEPLOY_DATE DESC LIMIT 1), P.QTY) QTY,
CC_UNIT.CODE_NAME AS UNIT_TITLE,
COALESCE(BOM_QTY_DATA.QTY, P.QTY) QTY,
P.QTY QTY_P,
P.SPEC,
P.POST_PROCESSING,
@@ -106,19 +106,14 @@
P.WEIGHT,
P.PART_TYPE,
P.IS_LONGD,
(SELECT CODE_NAME FROM COMM_CODE CC WHERE 1=1 AND CODE_ID = P.PART_TYPE) AS PART_TYPE_TITLE,
CC_PART.CODE_NAME AS PART_TYPE_TITLE,
P.REMARK,
P.ES_SPEC,
P.MS_SPEC,
P.CHANGE_TYPE,
P.DESIGN_APPLY_POINT,
P.CHANGE_OPTION,
(SELECT ARRAY_TO_STRING(ARRAY_AGG(CODE_NAME),',')
FROM COMM_CODE AS CC
WHERE CC.CODE_ID IN (SELECT UNNEST(STRING_TO_ARRAY(CHANGE_OPTION, ',')) AS CHANGE_OPTION
FROM PART_MNG AS T
WHERE T.OBJID = P.OBJID)
) CHANGE_OPTION_NAME,
CHANGE_OPT.CHANGE_OPTION_NAME,
<!--
T3.CHANGE_OPTION_NAME,
(SELECT CODE_NAME FROM COMM_CODE CC WHERE 1=1 AND CODE_ID = P.DESIGN_APPLY_POINT) AS DESIGN_APPLY_POINT_TITLE,
@@ -158,15 +153,45 @@
(SELECT CC.CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = P.SOURCING_CODE) AS SOURCING_NAME,
-->
P.SUPPLY_CODE,
(SELECT SUPPLY_NAME FROM admin_supply_mng O WHERE O.objid::varchar = P.SUPPLY_CODE) AS SUPPLY_NAME,
SUP.SUPPLY_NAME,
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 F.STATUS = 'Active' AND F.DOC_TYPE IN ('3D_CAD')) CU01_CNT
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO F WHERE P.OBJID = F.TARGET_OBJID AND F.STATUS = 'Active' AND F.DOC_TYPE IN ('2D_DRAWING_CAD')) CU02_CNT
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO F WHERE P.OBJID = F.TARGET_OBJID AND F.STATUS = 'Active' AND F.DOC_TYPE IN ('2D_PDF_CAD')) CU03_CNT
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO F WHERE P.OBJID = F.TARGET_OBJID AND F.STATUS = 'Active' AND F.DOC_TYPE IN ('2D_PDF_CAD','2D_DRAWING_CAD')) CU_TOTAL_CNT
P.SURFACE_TREATMENT,
COALESCE(FILE_CNT.CU01_CNT, 0) CU01_CNT,
COALESCE(FILE_CNT.CU02_CNT, 0) CU02_CNT,
COALESCE(FILE_CNT.CU03_CNT, 0) CU03_CNT,
COALESCE(FILE_CNT.CU_TOTAL_CNT, 0) CU_TOTAL_CNT
FROM PART_MNG P
LEFT JOIN COMM_CODE CC_UNIT ON CC_UNIT.CODE_ID = P.UNIT
LEFT JOIN COMM_CODE CC_PART ON CC_PART.CODE_ID = P.PART_TYPE
LEFT JOIN admin_supply_mng SUP ON SUP.objid::varchar = P.SUPPLY_CODE
LEFT JOIN LATERAL (
SELECT QTY
FROM BOM_PART_QTY Q
WHERE Q.LAST_PART_OBJID = P.OBJID
AND STATUS = 'deploy'
ORDER BY DEPLOY_DATE DESC
LIMIT 1
) BOM_QTY_DATA ON TRUE
LEFT JOIN LATERAL (
SELECT ARRAY_TO_STRING(ARRAY_AGG(CC.CODE_NAME), ',') AS CHANGE_OPTION_NAME
FROM COMM_CODE AS CC
WHERE CC.CODE_ID IN (
SELECT UNNEST(STRING_TO_ARRAY(P.CHANGE_OPTION, ','))
)
) CHANGE_OPT ON TRUE
LEFT JOIN (
SELECT
TARGET_OBJID,
SUM(CASE WHEN DOC_TYPE = '3D_CAD' THEN 1 ELSE 0 END) AS CU01_CNT,
SUM(CASE WHEN DOC_TYPE = '2D_DRAWING_CAD' THEN 1 ELSE 0 END) AS CU02_CNT,
SUM(CASE WHEN DOC_TYPE = '2D_PDF_CAD' THEN 1 ELSE 0 END) AS CU03_CNT,
SUM(CASE WHEN DOC_TYPE IN ('2D_PDF_CAD', '2D_DRAWING_CAD') THEN 1 ELSE 0 END) AS CU_TOTAL_CNT
FROM ATTACH_FILE_INFO
WHERE STATUS = 'Active'
AND DOC_TYPE IN ('3D_CAD', '2D_DRAWING_CAD', '2D_PDF_CAD')
GROUP BY TARGET_OBJID
) FILE_CNT ON FILE_CNT.TARGET_OBJID = P.OBJID
<!--
LEFT OUTER JOIN ATTACH_FILE_INFO F
ON P.OBJID = CAD.TARGET_OBJID::varchar
@@ -267,14 +292,14 @@
P.PART_NO,
P.PART_NAME,
P.UNIT,
(SELECT CODE_NAME FROM COMM_CODE CC WHERE 1=1 AND CODE_ID = P.UNIT) AS UNIT_TITLE,
CC_UNIT.CODE_NAME AS UNIT_TITLE,
P.QTY,
P.SPEC,
P.POST_PROCESSING,
P.MATERIAL,
P.WEIGHT,
P.PART_TYPE,
(SELECT CODE_NAME FROM COMM_CODE CC WHERE 1=1 AND CODE_ID = P.PART_TYPE) AS PART_TYPE_TITLE,
CC_PART.CODE_NAME AS PART_TYPE_TITLE,
P.REMARK,
P.ES_SPEC,
P.MS_SPEC,
@@ -282,7 +307,7 @@
P.CHANGE_OPTION,
T3.CHANGE_OPTION_NAME,
P.DESIGN_APPLY_POINT,
(SELECT CODE_NAME FROM COMM_CODE CC WHERE 1=1 AND CODE_ID = P.DESIGN_APPLY_POINT) AS DESIGN_APPLY_POINT_TITLE,
CC_DESIGN.CODE_NAME AS DESIGN_APPLY_POINT_TITLE,
P.MANAGEMENT_FLAG,
P.REVISION,
P.STATUS,
@@ -300,7 +325,7 @@
P.CONTRACT_OBJID,
P.SOURCING_CODE,
(SELECT CC.CODE_NAME FROM COMM_CODE CC WHERE CC.CODE_ID = P.SOURCING_CODE) AS SOURCING_NAME,
CC_SOURCING.CODE_NAME AS SOURCING_NAME,
AF.SAVED_FILE_NAME,
AF.REAL_FILE_NAME,
@@ -333,10 +358,15 @@
OUT_DIAMETER,
IN_DIAMETER,
LENGTH,
SUPPLY_CODE,
(SELECT SUPPLY_NAME FROM admin_supply_mng O WHERE O.objid::varchar = P.SUPPLY_CODE) AS SUPPLY_NAME
P.SUPPLY_CODE,
SUP.SUPPLY_NAME
FROM
PART_MNG P
LEFT JOIN COMM_CODE CC_UNIT ON CC_UNIT.CODE_ID = P.UNIT
LEFT JOIN COMM_CODE CC_PART ON CC_PART.CODE_ID = P.PART_TYPE
LEFT JOIN COMM_CODE CC_DESIGN ON CC_DESIGN.CODE_ID = P.DESIGN_APPLY_POINT
LEFT JOIN COMM_CODE CC_SOURCING ON CC_SOURCING.CODE_ID = P.SOURCING_CODE
LEFT JOIN admin_supply_mng SUP ON SUP.objid::varchar = P.SUPPLY_CODE
LEFT OUTER JOIN V_FILE AF
ON P.OBJID = AF.TARGET_OBJID
@@ -468,13 +498,14 @@
LEFT OUTER JOIN(
SELECT
TT.OBJID,
ARRAY_TO_STRING(ARRAY_AGG((SELECT CODE_NAME FROM COMM_CODE AS CC WHERE CC.CODE_ID IN(TT.CHANGE_OPTION))),',') AS CHANGE_OPTION_NAME
ARRAY_TO_STRING(ARRAY_AGG(CC.CODE_NAME ORDER BY CC.CODE_NAME), ',') AS CHANGE_OPTION_NAME
FROM (
SELECT
T.OBJID,
UNNEST(STRING_TO_ARRAY(CHANGE_OPTION, ',')) AS CHANGE_OPTION
FROM PART_MNG AS T
) AS TT
LEFT JOIN COMM_CODE CC ON CC.CODE_ID = TT.CHANGE_OPTION
GROUP BY TT.OBJID
) AS T3
ON T3.OBJID = P.OBJID
@@ -2211,24 +2242,10 @@ SELECT T1.LEV, T1.BOM_REPORT_OBJID, T1.ROOT_PART_NO, T1.PATH, T1.LEAF, T2.*
LEFT OUTER JOIN (
SELECT
PART_OBJID,
ARRAY_TO_STRING(ARRAY_AGG(PARTNER_TITLE), ',') AS PARTNER_TITLE
FROM(
SELECT
OBJID,
PART_OBJID,
SEQ || '. ' ||(
SELECT
SUPPLY_NAME
FROM
ADMIN_SUPPLY_MNG
WHERE
OBJID::VARCHAR = PARTNER_OBJID::VARCHAR
) AS PARTNER_TITLE
FROM
ORDER_SPEC_MNG OSM
ORDER BY
SEQ
) OSMO GROUP BY PART_OBJID
ARRAY_TO_STRING(ARRAY_AGG(SEQ || '. ' || SUP.SUPPLY_NAME ORDER BY SEQ), ',') AS PARTNER_TITLE
FROM ORDER_SPEC_MNG OSM
LEFT JOIN ADMIN_SUPPLY_MNG SUP ON SUP.OBJID::VARCHAR = OSM.PARTNER_OBJID::VARCHAR
GROUP BY PART_OBJID
) O
ON T.OBJID::VARCHAR = O.PART_OBJID::VARCHAR
WHERE 1=1
@@ -2307,24 +2324,10 @@ SELECT T1.LEV, T1.BOM_REPORT_OBJID, T1.ROOT_PART_NO, T1.PATH, T1.LEAF, T2.*
LEFT OUTER JOIN (
SELECT
PART_OBJID,
ARRAY_TO_STRING(ARRAY_AGG(PARTNER_TITLE), ',') AS PARTNER_TITLE
FROM(
SELECT
OBJID,
PART_OBJID,
SEQ || '. ' ||(
SELECT
SUPPLY_NAME
FROM
ADMIN_SUPPLY_MNG
WHERE
OBJID::VARCHAR = PARTNER_OBJID::VARCHAR
) AS PARTNER_TITLE
FROM
ORDER_SPEC_MNG OSM
ORDER BY
SEQ
) OSMO GROUP BY PART_OBJID
ARRAY_TO_STRING(ARRAY_AGG(SEQ || '. ' || SUP.SUPPLY_NAME ORDER BY SEQ), ',') AS PARTNER_TITLE
FROM ORDER_SPEC_MNG OSM
LEFT JOIN ADMIN_SUPPLY_MNG SUP ON SUP.OBJID::VARCHAR = OSM.PARTNER_OBJID::VARCHAR
GROUP BY PART_OBJID
) O
ON T.OBJID::VARCHAR = O.PART_OBJID::VARCHAR
@@ -2408,24 +2411,10 @@ SELECT T1.LEV, T1.BOM_REPORT_OBJID, T1.ROOT_PART_NO, T1.PATH, T1.LEAF, T2.*
LEFT OUTER JOIN (
SELECT
PART_OBJID,
ARRAY_TO_STRING(ARRAY_AGG(PARTNER_TITLE), ',') AS PARTNER_TITLE
FROM(
SELECT
OBJID,
PART_OBJID,
SEQ || '. ' ||(
SELECT
SUPPLY_NAME
FROM
ADMIN_SUPPLY_MNG
WHERE
OBJID::VARCHAR = PARTNER_OBJID::VARCHAR
) AS PARTNER_TITLE
FROM
ORDER_SPEC_MNG OSM
ORDER BY
SEQ
) OSMO GROUP BY PART_OBJID
ARRAY_TO_STRING(ARRAY_AGG(SEQ || '. ' || SUP.SUPPLY_NAME ORDER BY SEQ), ',') AS PARTNER_TITLE
FROM ORDER_SPEC_MNG OSM
LEFT JOIN ADMIN_SUPPLY_MNG SUP ON SUP.OBJID::VARCHAR = OSM.PARTNER_OBJID::VARCHAR
GROUP BY PART_OBJID
) O
ON T.OBJID::VARCHAR = O.PART_OBJID::VARCHAR
WHERE 1=1
@@ -2641,38 +2630,52 @@ SELECT T1.LEV, T1.BOM_REPORT_OBJID, T1.ROOT_PART_NO, T1.PATH, T1.LEAF, T2.*
SELECT * FROM
(SELECT
ROW_NUMBER() OVER(ORDER BY REGDATE DESC) AS RNUM,
OBJID,
CUSTOMER_OBJID,
(SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = T.CUSTOMER_OBJID) AS CUSTOMER_NAME,
CONTRACT_OBJID,
(SELECT CUSTOMER_PROJECT_NAME FROM PROJECT_MGMT AS O WHERE O.OBJID = T.CONTRACT_OBJID) AS CUSTOMER_PROJECT_NAME,
(SELECT PROJECT_NO FROM PROJECT_MGMT AS O WHERE O.OBJID = T.CONTRACT_OBJID) AS PROJECT_NO,
UNIT_CODE,
ROW_NUMBER() OVER(ORDER BY T.REGDATE DESC) AS RNUM,
T.OBJID,
T.CUSTOMER_OBJID,
SM.SUPPLY_NAME AS CUSTOMER_NAME,
T.CONTRACT_OBJID,
PM.CUSTOMER_PROJECT_NAME,
PM.PROJECT_NO,
T.UNIT_CODE,
<!-- (SELECT CODE_NAME FROM COMM_CODE AS O WHERE O.CODE_ID = T.UNIT_CODE) AS UNIT_NAME,
(SELECT TASK_NAME FROM PMS_WBS_TASK AS O WHERE O.OBJID = T.UNIT_CODE) AS UNIT_NAME,
-->
(SELECT O.UNIT_NO || '-' || O.TASK_NAME FROM PMS_WBS_TASK AS O WHERE O.OBJID = T.UNIT_CODE) AS UNIT_NAME,
STATUS,
CASE UPPER(STATUS)
COALESCE(WT.UNIT_NO || '-' || WT.TASK_NAME, '') AS UNIT_NAME,
T.STATUS,
CASE UPPER(T.STATUS)
WHEN 'CREATE' THEN '등록중'
WHEN 'CHANGEDESIGN' THEN '설계변경미배포'
WHEN 'DEPLOY' THEN '배포완료'
ELSE ''
END STATUS_TITLE,
WRITER,
(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS DEPT_NAME,
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS USER_NAME,
REGDATE AS REGDATE,
TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REG_DATE,
DEPLOY_DATE,
REVISION,
T.WRITER,
UI.DEPT_NAME,
UI.USER_NAME,
T.REGDATE AS REGDATE,
TO_CHAR(T.REGDATE, 'YYYY-MM-DD') AS REG_DATE,
T.DEPLOY_DATE,
T.REVISION,
<!-- (SELECT MAX(PM.REVISION) FROM BOM_PART_QTY AS BP LEFT JOIN PART_MNG AS PM ON BP.PART_NO = PM.OBJID::VARCHAR WHERE BP.BOM_REPORT_OBJID =T.OBJID) AS REVISION, -->
(SELECT MAX(PM.EO_NO) FROM BOM_PART_QTY AS BP LEFT JOIN PART_MNG AS PM ON BP.PART_NO = PM.OBJID::VARCHAR WHERE BP.BOM_REPORT_OBJID =T.OBJID) AS EO_NO,
(SELECT MAX(PM.EO_DATE) FROM BOM_PART_QTY AS BP LEFT JOIN PART_MNG AS PM ON BP.PART_NO = PM.OBJID::VARCHAR WHERE BP.BOM_REPORT_OBJID =T.OBJID) AS EO_DATE,
NOTE,
(SELECT COUNT(*) FROM BOM_PART_QTY AS A WHERE A.BOM_REPORT_OBJID = T.OBJID) AS BOM_CNT
EO_DATA.EO_NO,
EO_DATA.EO_DATE,
T.NOTE,
COALESCE(EO_DATA.BOM_CNT, 0) AS BOM_CNT
FROM PART_BOM_REPORT AS T
LEFT JOIN SUPPLY_MNG SM ON SM.OBJID::VARCHAR = T.CUSTOMER_OBJID
LEFT JOIN PROJECT_MGMT PM ON PM.OBJID = T.CONTRACT_OBJID
LEFT JOIN PMS_WBS_TASK WT ON WT.OBJID = T.UNIT_CODE
LEFT JOIN USER_INFO UI ON UI.USER_ID = T.WRITER
LEFT JOIN (
SELECT
BP.BOM_REPORT_OBJID,
MAX(PM2.EO_NO) AS EO_NO,
MAX(PM2.EO_DATE) AS EO_DATE,
COUNT(*) AS BOM_CNT
FROM BOM_PART_QTY BP
LEFT JOIN PART_MNG PM2 ON BP.PART_NO = PM2.OBJID::VARCHAR
GROUP BY BP.BOM_REPORT_OBJID
) EO_DATA ON EO_DATA.BOM_REPORT_OBJID = T.OBJID
WHERE 1=1
<if test="customer_cd != null and customer_cd != ''">
AND T.CUSTOMER_OBJID = #{customer_cd}
@@ -2734,48 +2737,62 @@ SELECT T1.LEV, T1.BOM_REPORT_OBJID, T1.ROOT_PART_NO, T1.PATH, T1.LEAF, T2.*
<!-- //구조등록 목록조회 -->
<select id="getBOMStandardStructureGridList" parameterType="map" resultType="map">
SELECT
ROW_NUMBER() OVER(ORDER BY REGDATE DESC) AS NUM,
OBJID,
CUSTOMER_OBJID,
(SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = T.CUSTOMER_OBJID) AS CUSTOMER_NAME,
CONTRACT_OBJID,
(SELECT CUSTOMER_PROJECT_NAME FROM PROJECT_MGMT AS O WHERE O.OBJID = T.CONTRACT_OBJID) AS CUSTOMER_PROJECT_NAME,
(SELECT PROJECT_NO FROM PROJECT_MGMT AS O WHERE O.OBJID = T.CONTRACT_OBJID) AS PROJECT_NO,
UNIT_CODE,
ROW_NUMBER() OVER(ORDER BY T.REGDATE DESC) AS NUM,
T.OBJID,
T.CUSTOMER_OBJID,
SM.SUPPLY_NAME AS CUSTOMER_NAME,
T.CONTRACT_OBJID,
PM.CUSTOMER_PROJECT_NAME,
PM.PROJECT_NO,
T.UNIT_CODE,
<!-- (SELECT CODE_NAME FROM COMM_CODE AS O WHERE O.CODE_ID = T.UNIT_CODE) AS UNIT_NAME,
(SELECT TASK_NAME FROM PMS_WBS_TASK AS O WHERE O.OBJID = T.UNIT_CODE) AS UNIT_NAME,
-->
(SELECT O.UNIT_NO || '-' || O.TASK_NAME FROM PMS_WBS_TASK AS O WHERE O.OBJID = T.UNIT_CODE) AS UNIT_NAME,
STATUS,
CASE UPPER(STATUS)
COALESCE(WT.UNIT_NO || '-' || WT.TASK_NAME, '') AS UNIT_NAME,
T.STATUS,
CASE UPPER(T.STATUS)
WHEN 'CREATE' THEN '등록중'
WHEN 'CHANGEDESIGN' THEN '설계변경미배포'
WHEN 'DEPLOY' THEN '배포완료'
ELSE ''
END STATUS_TITLE,
WRITER,
(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS DEPT_NAME,
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS USER_NAME,
(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) || '/' || (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) as DEPT_USER_NAME,
REGDATE AS REGDATE,
TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REG_DATE,
DEPLOY_DATE,
REVISION,
T.WRITER,
UI.DEPT_NAME,
UI.USER_NAME,
COALESCE(UI.DEPT_NAME || '/' || UI.USER_NAME, '') as DEPT_USER_NAME,
T.REGDATE AS REGDATE,
TO_CHAR(T.REGDATE, 'YYYY-MM-DD') AS REG_DATE,
T.DEPLOY_DATE,
T.REVISION,
<!-- (SELECT MAX(PM.REVISION) FROM BOM_PART_QTY AS BP LEFT JOIN PART_MNG AS PM ON BP.PART_NO = PM.OBJID::VARCHAR WHERE BP.BOM_REPORT_OBJID =T.OBJID) AS REVISION, -->
(SELECT MAX(PM.EO_NO) FROM BOM_PART_QTY AS BP LEFT JOIN PART_MNG AS PM ON BP.PART_NO = PM.OBJID::VARCHAR WHERE BP.BOM_REPORT_OBJID =T.OBJID) AS EO_NO,
(SELECT MAX(PM.EO_DATE) FROM BOM_PART_QTY AS BP LEFT JOIN PART_MNG AS PM ON BP.PART_NO = PM.OBJID::VARCHAR WHERE BP.BOM_REPORT_OBJID =T.OBJID) AS EO_DATE,
NOTE,
EO_DATA.EO_NO,
EO_DATA.EO_DATE,
T.NOTE,
T.MULTI_YN
,T.MULTI_MASTER_YN
,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
,COALESCE(EO_DATA.BOM_CNT, 0) AS BOM_CNT
,T.PRODUCT_CD
,CODE_NAME(T.PRODUCT_CD) as PRODUCT_NAME
,T.PART_NO
,T.PART_NAME
FROM
PART_BOM_REPORT AS T
LEFT JOIN SUPPLY_MNG SM ON SM.OBJID::VARCHAR = T.CUSTOMER_OBJID
LEFT JOIN PROJECT_MGMT PM ON PM.OBJID = T.CONTRACT_OBJID
LEFT JOIN PMS_WBS_TASK WT ON WT.OBJID = T.UNIT_CODE
LEFT JOIN USER_INFO UI ON UI.USER_ID = T.WRITER
LEFT JOIN (
SELECT
BP.BOM_REPORT_OBJID,
MAX(PM2.EO_NO) AS EO_NO,
MAX(PM2.EO_DATE) AS EO_DATE,
COUNT(*) AS BOM_CNT
FROM BOM_PART_QTY BP
LEFT JOIN PART_MNG PM2 ON BP.PART_NO = PM2.OBJID::VARCHAR
GROUP BY BP.BOM_REPORT_OBJID
) EO_DATA ON EO_DATA.BOM_REPORT_OBJID = T.OBJID
WHERE 1=1
<if test="SEARCH_PART_NO != null and !''.equals(SEARCH_PART_NO)">
AND UPPER(T.PART_NO) LIKE UPPER('%${SEARCH_PART_NO}%')