2025-08-29 15:46:08 +09:00
<?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= "common" >
<!-- //파일 정보 DB저장 -->
<insert id= "insertUploadFileInfo" parameterType= "map" >
INSERT INTO ATTACH_FILE_INFO(
OBJID
, TARGET_OBJID
, PARENT_TARGET_OBJID
, SAVED_FILE_NAME
, REAL_FILE_NAME
, DOC_TYPE
, DOC_TYPE_NAME
, FILE_SIZE
, FILE_EXT
, FILE_PATH
, WRITER
, REGDATE
, STATUS
) VALUES (
${objId}::integer
, #{targetObjId}
, #{parentTargetObjId}
, #{savedFileName}
, #{realFileName}
, #{docType}
, #{docTypeName}
, ${fileSize}
, #{fileExt}
, #{filePath}
, #{writer}
, now()
, 'Active'
)
</insert>
<!-- //파일목록 조회 -->
<select id= "getObjIdFileList" resultType= "map" parameterType= "map" >
SELECT OBJID
, TARGET_OBJID
, PARENT_TARGET_OBJID
, SAVED_FILE_NAME
, REAL_FILE_NAME
, DOC_TYPE
, DOC_TYPE_NAME
, FILE_SIZE
, FILE_EXT
, UPPER(FILE_EXT) UPPER_FILE_EXT
, REPLACE(FILE_PATH, '\', '\\') AS FILE_PATH
, WRITER
, (SELECT USER_NAME FROM USER_INFO USER_INFO_T WHERE USER_INFO_T.USER_ID = WRITER) AS USER_NAME
, (SELECT DEPT_NAME FROM USER_INFO USER_INFO_T WHERE USER_INFO_T.USER_ID = WRITER) AS DEPT_NAME
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
, REGDATE AS REGDATE_ORG
, STATUS
FROM ATTACH_FILE_INFO
WHERE 1=1
AND OBJID = ${ObjId}
<if test= "docType != null and !''.equals(docType)" >
AND DOC_TYPE = #{docType}
</if>
AND UPPER(STATUS) = 'ACTIVE'
ORDER BY REGDATE_ORG DESC
</select>
<!-- //사용자 간편 목록 조회 -->
<select id= "getPostUseUserInfo" resultType= "map" parameterType= "map" >
SELECT * FROM USER_INFO WHERE 1=1 AND USER_ID = #{writer}
</select>
<!-- //파일목록 조회 -->
<select id= "getFileList" resultType= "map" parameterType= "map" >
SELECT OBJID
, TARGET_OBJID
, PARENT_TARGET_OBJID
, SAVED_FILE_NAME
, REAL_FILE_NAME
, DOC_TYPE
, DOC_TYPE_NAME
, FILE_SIZE
, FILE_EXT
, UPPER(FILE_EXT) UPPER_FILE_EXT
, REPLACE(FILE_PATH, '\', '\\') AS FILE_PATH
, WRITER
, (SELECT USER_NAME FROM USER_INFO USER_INFO_T WHERE USER_INFO_T.USER_ID = WRITER) AS USER_NAME
, (SELECT DEPT_NAME FROM USER_INFO USER_INFO_T WHERE USER_INFO_T.USER_ID = WRITER) AS DEPT_NAME
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
, REGDATE AS REGDATE_ORG
, STATUS
FROM ATTACH_FILE_INFO
WHERE 1=1
<if test= "(targetObjId == null or ''.equals(targetObjId)) and (parentTargetObjId == null or ''.equals(parentTargetObjId))" >
AND 1=2
</if>
<if test= "targetObjId != null and !''.equals(targetObjId)" >
AND TARGET_OBJID = #{targetObjId}
</if>
<if test= "parentTargetObjId != null and !''.equals(parentTargetObjId)" >
AND PARENT_TARGET_OBJID = #{parentTargetObjId}
</if>
<if test= "docType != null and !''.equals(docType)" >
AND DOC_TYPE = #{docType}
</if>
<!-- 일괄다운로드시 여러 DOC_TYPE 조회 시 사용 -->
<if test= "docTypeList != null and docTypeList.size != 0" >
AND DOC_TYPE IN
<foreach collection= "docTypeList" item= "docType" index= "index" separator= "," open= "(" close= ")" >
#{docType}
</foreach>
</if>
<!-- //date search -->
<if test= "search_fromDate != null and !''.equals(search_fromDate)" >
AND REGDATE <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
</if>
<if test= "search_toDate != null and !''.equals(search_toDate)" >
AND REGDATE <![CDATA[ <= ]]> last_day(TO_DATE(#{search_toDate}, 'YYYY-MM-DD'))
</if>
<!-- //금형이관 인수인계서는 파일명이 part no로 되어있음 -->
<if test= "partNo != null and !''.equals(partNo)" >
AND UPPER(REAL_FILE_NAME) LIKE UPPER('%${partNo}%')
</if>
<if test= "fileSizeNot0 != null and !''.equals(fileSizeNot0)" >
AND FILE_SIZE > 0
</if>
AND UPPER(STATUS) = 'ACTIVE'
ORDER BY REGDATE_ORG DESC
</select>
<!-- //파일목록 조회 -->
<select id= "getApprovalLine" resultType= "map" parameterType= "map" >
select
USER_NAME(T1.WRITER) as WRITER,
to_char(T1.REGDATE, 'YYYY-MM-DD') as REGDATE,
USER_NAME(T2.TARGET_USER_ID) TARGET_USER_NAME,
to_char(T2.PROC_DATE, 'YYYY-MM-DD') as PROC_DATE,
T1.STATUS,
T2.STATUS
from
APPROVAL T,
ROUTE T1,
<!-- 반려 or 결재완료 조회 처리 240307 -->
( SELECT T1.*
FROM ( SELECT TARGET_OBJID
,MAX(T.ROUTE_SEQ) AS ROUTE_SEQ
FROM ROUTE T
WHERE T.TARGET_OBJID = #{objId}::INTEGER
GROUP BY T.TARGET_OBJID
) T
,ROUTE T1
WHERE T.TARGET_OBJID = T1.TARGET_OBJID
AND T.ROUTE_SEQ = T1.ROUTE_SEQ
) B,
INBOXTASK T2
where T.OBJID = B.APPROVAL_OBJID
AND T.OBJID = T1.APPROVAL_OBJID
<!--
and T.TARGET_OBJID = #{objId}::integer
240201 동시발주 동시결재 때문에 위 조건에서 아래로 변경
-->
and ( T.TARGET_OBJID = #{objId}::INTEGER
OR T.OBJID IN (SELECT APPROVAL_OBJID FROM APPROVAL_TARGET AT WHERE AT.TARGET_OBJID = #{objId}::INTEGER)
)
and T1.OBJID = T2.ROUTE_OBJID
order by
T1.REGDATE,
T2.SEQ asc
</select>
<!-- <select id="getApprovalLine" resultType="map" parameterType="map">
SELECT
USER_NAME(T1.WRITER) AS WRITER
,TO_CHAR(T1.REGDATE,'YYYY-MM-DD') AS REGDATE
,USER_NAME(T2.TARGET_USER_ID) TARGET_USER_NAME
,TO_CHAR(T2.PROC_DATE,'YYYY-MM-DD') AS PROC_DATE
FROM APPROVAL T,ROUTE T1 ,INBOXTASK T2
WHERE T.OBJID = T1.APPROVAL_OBJID
AND T.TARGET_OBJID=#{objId}
AND T1.STATUS!='reject'
AND T1.OBJID = T2.ROUTE_OBJID
ORDER BY T1.REGDATE,T2.SEQ ASC
</select> -->
<!-- //파일목록 조회 -->
<select id= "getFilesList" resultType= "map" parameterType= "map" >
SELECT OBJID
, TARGET_OBJID
, SAVED_FILE_NAME
, REAL_FILE_NAME
, DOC_TYPE
, DOC_TYPE_NAME
, FILE_SIZE
, FILE_EXT
, UPPER(FILE_EXT) UPPER_FILE_EXT
, REPLACE(FILE_PATH, '\', '\\') AS FILE_PATH
, WRITER
, (SELECT USER_NAME FROM USER_INFO USER_INFO_T WHERE USER_INFO_T.USER_ID = WRITER) AS USER_NAME
, (SELECT DEPT_NAME FROM USER_INFO USER_INFO_T WHERE USER_INFO_T.USER_ID = WRITER) AS DEPT_NAME
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
, REGDATE AS REGDATE_ORG
, STATUS
FROM ATTACH_FILE_INFO
WHERE 1=1
AND TARGET_OBJID IN
<foreach collection= "objIdsarr" item= "objkey" index= "index" separator= "," open= "(" close= ")" >
#{objkey}
</foreach>
<if test= "docType != null and !''.equals(docType)" >
AND DOC_TYPE = #{docType}
</if>
AND UPPER(STATUS) = 'ACTIVE'
ORDER BY REGDATE_ORG DESC
</select>
<select id= "getSupCdList" resultType= "map" parameterType= "map" >
SELECT
OBJID AS CODE_ID
,SUPPLY_CODE
,SUPPLY_NAME AS CODE_NAME
,REG_NO
,SUPPLY_ADDRESS
,SUPPLY_BUSNAME
,SUPPLY_STOCKNAME
,SUPPLY_TEL_NO
,SUPPLY_FAX_NO
,CHARGE_USER_NAME
,PAYMENT_METHOD
,REG_ID
,REG_DATE
,STATUS
FROM SUPPLY_MNG T
WHERE SUPPLY_CODE = #{codeId}
ORDER BY T.SUPPLY_CODE
</select>
<!-- //코드목록조회 -->
<select id= "getCodeList" resultType= "map" parameterType= "map" >
SELECT
OBJID
,CODE_ID
,PARENT_CODE_ID
,CODE_NAME
,ID
,CODE_CD
,EXT_VAL
,WRITER
,(
SELECT
CASE
WHEN USER_NAME = NULL THEN '정보없음'
ELSE USER_NAME
END
FROM
USER_INFO
WHERE USER_ID = T.WRITER
) USER_NAME
,TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE
,REGDATE
,CASE STATUS
WHEN 'active' THEN '활성화'
ELSE '비활성화'
END AS STATUS
FROM COMM_CODE T
WHERE 1=1
AND PARENT_CODE_ID = #{codeId}
</select>
<select id= "getCodeList2" resultType= "map" parameterType= "map" >
SELECT
OBJID
,CODE_ID
,PARENT_CODE_ID
,CODE_NAME
,ID
,CODE_CD
,EXT_VAL
,WRITER
,(SELECT CASE WHEN USER_NAME = NULL THEN '정보없음' ELSE USER_NAME END FROM USER_INFO WHERE USER_ID = T.WRITER) USER_NAME
,TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE
,REGDATE
<!-- ,DECODE(STATUS,'active','활성화','비활성화') as STATUS -->
,CASE STATUS
WHEN 'active' THEN '활성화'
ELSE '비활성화'
END STATUS
FROM COMM_CODE T
WHERE 1=1
<if test= "parentCodeId !=null and parentCodeId != '' " >
AND PARENT_CODE_ID = #{parentCodeId}
</if>
<if test= "id !=null and id != '' " >
AND ID = #{id}
</if>
<if test= "codeCd !=null and codeCd != '' " >
AND CODE_CD = #{codeCd}
</if>
<if test= "extVal !=null and extVal != '' " >
AND EXT_VAL = #{extVal}
</if>
<if test= "connectByParentCodeId !=null and connectByParentCodeId != '' " >
START WITH PARENT_CODE_ID = #{connectByParentCodeId}
CONNECT BY PRIOR CODE_ID = PARENT_CODE_ID
ORDER SIBLINGS BY CODE_ID
</if>
</select>
<!-- //파일목록 조회(변환용) -->
<select id= "getFileListForConvert" resultType= "map" parameterType= "map" >
SELECT OBJID
, TARGET_OBJID
, SAVED_FILE_NAME
, REAL_FILE_NAME
, DOC_TYPE
, DOC_TYPE_NAME
, FILE_SIZE
, FILE_EXT
, UPPER(FILE_EXT) UPPER_FILE_EXT
, REPLACE(FILE_PATH, '\', '\\') AS FILE_PATH
, FILE_PATH AS FILE_PATH_ORG
, WRITER
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
, REGDATE AS REGDATE_ORG
, STATUS
FROM ATTACH_FILE_INFO
WHERE 1=1
AND TARGET_OBJID = #{targetObjId}
<if test= "docType != null and !''.equals(docType)" >
AND DOC_TYPE = #{docType}
</if>
<!-- 일괄다운로드시 여러 DOC_TYPE 조회 시 사용 -->
<if test= "docTypeList != null and docTypeList.size != 0" >
AND DOC_TYPE IN
<foreach collection= "docTypeList" item= "docType" index= "index" separator= "," open= "(" close= ")" >
#{docType}
</foreach>
</if>
AND UPPER(STATUS) = 'ACTIVE'
ORDER BY REGDATE_ORG DESC
</select>
<!-- //파일삭제 (논리적삭제, status : Deleted) -->
<update id= "deleteFileInfo_logical" parameterType= "map" >
UPDATE ATTACH_FILE_INFO SET STATUS = 'Deleted' WHERE 1=1
<if test= "(objId == null or ''.equals(objId)) and (targetObjId == null or ''.equals(targetObjId))" >
AND 1=2
</if>
<if test= "objId != null and !''.equals(objId)" >
AND OBJID = ${objId}
</if>
<if test= "targetObjId != null and !''.equals(targetObjId)" >
AND TARGET_OBJID = #{targetObjId}
</if>
<if test= "docType != null and !''.equals(docType)" >
AND DOC_TYPE = #{docType}
</if>
</update>
<!-- //파일삭제 (물리적삭제) -->
<update id= "deleteFileInfo_physical" parameterType= "map" >
DELETE FROM ATTACH_FILE_INFO WHERE 1=1
<if test= "objId != null and !''.equals(objId)" >
AND OBJID = ${objId}
</if>
<if test= "targetObjId != null and !''.equals(targetObjId)" >
AND TARGET_OBJID = #{targetObjId}
</if>
<if test= "docType != null and !''.equals(docType)" >
AND DOC_TYPE = #{docType}
</if>
</update>
<!-- //파일 정보 조회 -->
<select id= "getFileInfo" parameterType= "map" resultType= "map" >
SELECT OBJID
, TARGET_OBJID
, SAVED_FILE_NAME
, REAL_FILE_NAME
, DOC_TYPE
, DOC_TYPE_NAME
, FILE_SIZE
, FILE_EXT
, replace(FILE_PATH, '\', '\\') as file_path
, WRITER
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
, REGDATE AS REGDATE_ORG
, STATUS
FROM ATTACH_FILE_INFO
WHERE 1=1
AND OBJID = ${objId}
</select>
<!-- //OEM정보 조회(콤보박스용) -->
<select id= "getOEMList" parameterType= "map" resultType= "map" >
SELECT OBJID
, OEM_CODE
, OEM_NAME
FROM OEM_MNG
WHERE 1=1
AND UPPER(STATUS) = 'ACTIVE'
<if test= "search_oemCode != null and !''.equals(search_oemCode)" >
AND OEM_CODE = #{search_oemCode}
</if>
<if test= "search_oemName != null and !''.equals(search_oemName)" >
AND OEM_NAME = #{search_oemName}
</if>
ORDER BY OEM_NAME
</select>
<!-- Part 정보조회(ajax, 콤보박스용) -->
<select id= "getPartMngList" parameterType= "map" resultType= "map" >
SELECT
T.*,
ROW_NUMBER() OVER(ORDER BY REG_DATE DESC) RNUM
FROM(
SELECT
T.*
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T.PRODUCT_GROUP AND O.PARENT_CODE_ID = #{PRODUCT_GROUP_CODE}) AS PRODUCT_GROUP_TITLE
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T.PRODUCT AND O.PARENT_CODE_ID = T.PRODUCT_GROUP) AS PRODUCT_TITLE
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T.MATERIAL AND O.PARENT_CODE_ID = #{MATERIAL_CODE}) AS MATERIAL_TITLE
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T.SPEC_NO AND O.PARENT_CODE_ID = #{SPEC_NO_CODE}) AS SPEC_NO_TITLE
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T.DESIGN_APPLY_POINT AND O.PARENT_CODE_ID = #{DESIGN_APPLY_POINT_CODE}) AS DESIGN_APPLY_POINT_TITLE
,(SELECT OEM_CODE FROM OEM_MNG WHERE OBJID = COALESCE(T.CUSTOMER,'0')::NUMERIC) AS CUSTOMER_TITLE
,(SELECT CAR_CODE||'{'||CAR_NAME||'}' FROM CAR_MNG WHERE OBJID = COALESCE(T.CAR_TYPE,'0')::NUMERIC) AS CAR_TYPE_TITLE
FROM
<include refid= "partMng.partMngBase" /> T
) T
where 1=1
<if test= "search_customer != null and search_customer != ''" >
AND CUSTOMER = #{search_customer}
</if>
<if test= "search_material != null and search_material != ''" >
AND MATERIAL = #{search_material}
</if>
<!-- EO 기능 말들고 추가 필요 -->
<if test= "search_eo != null and search_eo != ''" >
AND UPPER(EO_NO) LIKE UPPER('%${search_eo}%')
</if>
<if test= "search_except_eo != null and search_except_eo != ''" >
AND EO != #{search_except_eo}
AND (EO IS NULL OR EO = '' OR EO = '0')
</if>
<if test= "search_eo_date_from != null and search_eo_date_from != ''" >
AND EO_DATE <![CDATA[ >= ]]> #{search_eo_date_from}::TIMESTAMP
</if>
<if test= "search_eo_date_to != null and search_eo_date_to != ''" >
AND EO_DATE <![CDATA[ <= ]]> #{search_eo_date_to}::TIMESTAMP
</if>
<if test= "search_car_type != null and search_car_type != ''" >
AND CAR_TYPE = #{search_car_type}
</if>
<if test= "search_product_group != null and search_product_group != ''" >
AND PRODUCT_GROUP = #{search_product_group}
</if>
<if test= "search_product != null and search_product != ''" >
AND PRODUCT = #{search_product}
</if>
<if test= "search_part_no != null and search_part_no != ''" >
AND UPPER(PART_NO) LIKE UPPER('%${search_part_no}%')
</if>
<if test= "search_exist_part_no != null and search_exist_part_no != ''" >
AND PART_NO = #{search_exist_part_no}
</if>
<if test= "search_not_exist_part_no != null and search_not_exist_part_no != ''" >
AND PART_NO != #{search_not_exist_part_no}
</if>
<if test= "search_part_name != null and search_part_name != ''" >
AND UPPER(PART_NAME) LIKE UPPER('%${search_part_name}%')
</if>
<if test= "search_mold_dev != null and search_mold_dev != ''" >
AND UPPER(search_mold_dev) LIKE UPPER('%${search_mold_dev}%')
</if>
<if test= "search_surface_treatment != null and search_surface_treatment != ''" >
AND UPPER(search_surface_treatment) LIKE UPPER('%${search_surface_treatment}%')
</if>
<if test= "search_writer != null and search_writer != ''" >
AND WRITER = #{search_writer}
</if>
<if test= "IS_LAST != null and IS_LAST != ''" >
AND IS_LAST = #{IS_LAST}
</if>
<if test= "STATUS != null and STATUS != ''" >
AND STATUS = #{STATUS}
</if>
</select>
<!-- //차종정보 조회(콤보박스용) -->
<select id= "getCarTypeList" parameterType= "map" resultType= "map" >
SELECT OBJID
, (SELECT OEM_CODE FROM OEM_MNG WHERE OBJID = CAR_MNG.OEM_OBJID) AS OEM_CODE
<!-- , (SELECT GRADE_NAME FROM CAR_GRADE_MNG WHERE OBJID = CAR_MNG.GRADE_OBJID) AS GRADE_NAME -->
, CAR_CODE
, MODEL_CODE
, CAR_NAME
, DESCRIPTION
, OEM_OBJID
FROM CAR_MNG
WHERE 1=1
AND UPPER(STATUS) = 'ACTIVE'
<if test= "search_oemCode != null and !''.equals(search_oemCode)" >
AND OEM_OBJID = (SELECT OBJID FROM OEM_MNG WHERE OEM_CODE = #{search_oemCode} AND UPPER(STATUS) = 'ACTIVE')
</if>
<if test= "search_oemName != null and !''.equals(search_oemName)" >
AND OEM_OBJID = (SELECT OBJID FROM OEM_MNG WHERE OEM_NAME = #{search_oemName} AND UPPER(STATUS) = 'ACTIVE')
</if>
<if test= "search_oemObjId != null and !''.equals(search_oemObjId)" >
AND OEM_OBJID = ${search_oemObjId}
</if>
<if test= "search_carCode != null and !''.equals(search_carCode)" >
AND CAR_CODE = #{search_carCode}
</if>
<if test= "search_carName != null and !''.equals(search_carName)" >
AND CAR_NAME = #{search_carName}
</if>
ORDER BY CAR_NAME, CAR_CODE
</select>
<!-- 프로젝트 기준 차종정보 조회(ajax, 콤보박스용) -->
<select id= "getProjectBaseCarTypeList" parameterType= "map" resultType= "map" >
SELECT OBJID
, (SELECT OEM_CODE FROM OEM_MNG WHERE OBJID = CAR.OEM_OBJID) AS OEM_CODE
, (SELECT GRADE_NAME FROM CAR_GRADE_MNG WHERE OBJID = CAR.GRADE_OBJID) AS GRADE_NAME
, CAR_CODE
, MODEL_CODE
, CAR_NAME
, DESCRIPTION
, OEM_OBJID
FROM CAR_MNG CAR
WHERE 1=1
AND UPPER(STATUS) = 'ACTIVE'
AND EXISTS(
SELECT * FROM PMS_PJT_INFO PJT WHERE UPPER(STATUS) = 'CONFIRM' AND CAR.OBJID = PJT.CAR_OBJID
)
<if test= "search_oemCode != null and !''.equals(search_oemCode)" >
AND OEM_OBJID = (SELECT OBJID FROM OEM_MNG WHERE OEM_CODE = #{search_oemCode} AND UPPER(STATUS) = 'ACTIVE')
</if>
<if test= "search_oemName != null and !''.equals(search_oemName)" >
AND OEM_OBJID = (SELECT OBJID FROM OEM_MNG WHERE OEM_NAME = #{search_oemName} AND UPPER(STATUS) = 'ACTIVE')
</if>
<if test= "search_oemObjId != null and !''.equals(search_oemObjId)" >
AND OEM_OBJID = ${search_oemObjId}
</if>
<if test= "search_carCode != null and !''.equals(search_carCode)" >
AND CAR_CODE = #{search_carCode}
</if>
<if test= "search_carName != null and !''.equals(search_carName)" >
AND CAR_NAME = #{search_carName}
</if>
ORDER BY CAR_NAME, CAR_CODE
</select>
<!-- //제품군 조회(콤보박스용) -->
<select id= "getProductGroupList" parameterType= "map" resultType= "map" >
SELECT OBJID
, CODE_NAME PRODUCT_GROUP_NAME
, '' DESCRIPTION
FROM COMM_CODE
WHERE 1=1
AND UPPER(STATUS) = 'ACTIVE'
AND PARENT_CODE_ID = '0005116'
ORDER BY PRODUCT_GROUP_NAME
</select>
<!-- //제품 조회(콤보박스용) -->
<select id= "getProductList" parameterType= "map" resultType= "map" >
SELECT COMM_CODE.OBJID
, COMM_GROUP.OBJID PRODUCT_GROUP_OBJID
, COMM_CODE.CODE_ID PRODUCT_CODE
, COMM_CODE.CODE_NAME PRODUCT_NAME
, '' PRODUCT_DESC
FROM COMM_CODE
INNER JOIN (
SELECT OBJID
, CODE_ID
FROM COMM_CODE
WHERE 1=1
AND UPPER(STATUS) = 'ACTIVE'
AND PARENT_CODE_ID = '0005116'
<if test= "search_productGroupObjId != null and !''.equals(search_productGroupObjId) and search_productGroupObjId != 'undefined'" >
AND OBJID = ${search_productGroupObjId}
</if>
<if test= "search_productGroupName != null and !''.equals(search_productGroupName) and search_productGroupName != 'undefined'" >
AND CODE_NAME = #{search_productGroupName}
</if>
) COMM_GROUP ON PARENT_CODE_ID = COMM_GROUP.CODE_ID
ORDER BY PRODUCT_NAME
</select>
<!-- //지역사양 조회(콤보박스용) -->
<select id= "getRegionList" parameterType= "map" resultType= "map" >
SELECT OBJID
, REGION_NAME
, DESCRIPTION
FROM REGION_MNG
WHERE 1=1
AND UPPER(STATUS) = 'ACTIVE'
ORDER BY REGION_NAME
</select>
<!-- //사원 목록 조회 -->
<select id= "getUserList" parameterType= "map" resultType= "map" >
SELECT
SABUN
, USER_ID
, USER_ID AS CODE
, USER_NAME
, USER_NAME AS NAME
, USER_NAME_ENG
, USER_NAME_CN
, DEPT_CODE
, DEPT_NAME
, POSITION_CODE
, POSITION_NAME
, RANK
, EMAIL
, TEL
, CELL_PHONE
, USER_TYPE
, USER_TYPE_NAME
, DATA_TYPE
, FAX_NO
FROM USER_INFO
WHERE 1=1
AND STATUS = 'active'
<choose >
<when test= 'search_user_type == null or "".equals(search_user_type) ' >
AND NVL(partner_objid, '') = ''
</when>
<when test= 'search_user_type != null and "A".equals(search_user_type) ' >
</when>
<when test= 'search_user_type != null and "U".equals(search_user_type) ' >
AND NVL(partner_objid, '') = ''
</when>
<when test= 'search_user_type != null and "P".equals(search_user_type) ' >
AND NVL(partner_objid, '') != ''
</when>
<otherwise >
</otherwise>
</choose>
<if test= "search_userId != null and !''.equals(search_userId)" >
AND UPPER(USER_ID) LIKE UPPER('%${search_userId}%')
</if>
<if test= "search_userName != null and !''.equals(search_userName)" >
AND UPPER(USER_NAME) LIKE UPPER('%${search_userName}%')
</if>
<if test= "search_userNameEng != null and !''.equals(search_userNameEng)" >
AND UPPER(USER_NAME_ENG) LIKE UPPER('%${search_userNameEng}%')
</if>
<if test= "search_userNameCn != null and !''.equals(search_userNameCn)" >
AND UPPER(USER_NAME_CN) LIKE UPPER('%${search_userNameCn}%')
</if>
<if test= "search_deptCode != null and !''.equals(search_deptCode)" >
AND UPPER(DEPT_CODE) LIKE UPPER('%${search_deptCode}%')
</if>
<if test= "search_deptName != null and !''.equals(search_deptName)" >
AND UPPER(DEPT_NAME) LIKE UPPER('%${search_deptName}%')
</if>
<if test= "search_positionCode != null and !''.equals(search_positionCode)" >
AND UPPER(POSITION_CODE) LIKE UPPER('%${search_positionCode}%')
</if>
<if test= "search_positionName != null and !''.equals(search_positionName)" >
AND UPPER(POSITION_NAME) LIKE UPPER('%${search_positionName}%')
</if>
<if test= "search_email != null and !''.equals(search_email)" >
AND UPPER(EMAIL) LIKE UPPER('%${search_email}%')
</if>
<if test= "search_tel != null and !''.equals(search_tel)" >
AND UPPER(TEL) LIKE UPPER('%${search_tel}%')
</if>
<if test= "search_cellPhone != null and !''.equals(search_cellPhone)" >
AND UPPER(CELL_PHONE) LIKE UPPER('%${search_cellPhone}%')
</if>
<if test= "search_userTypeName != null and !''.equals(search_userTypeName)" >
AND UPPER(USER_TYPE_NAME) LIKE UPPER('%${search_userTypeName}%')
</if>
<if test= "search_dataType != null and !''.equals(search_dataType)" >
AND UPPER(DATA_TYPE) LIKE UPPER('%${search_dataType}%')
</if>
ORDER BY DEPT_NAME ASC, USER_TYPE_NAME ASC, USER_NAME ASC, DEPT_CODE ASC
</select>
<!-- //재질 조회(콤보박스용) -->
<select id= "getMaterialList" parameterType= "map" resultType= "map" >
SELECT OBJID,
MATERIAL_NAME,
WRITER,
REGDATE,
STATUS
FROM MATERIAL_MNG
WHERE 1=1
AND UPPER(STATUS) = 'ACTIVE'
ORDER BY MATERIAL_NAME
</select>
<!-- //생산공장 조회(콤보박스용) -->
<select id= "getFactoryList" parameterType= "map" resultType= "map" >
select
(ROW_NUMBER() OVER()) RNUM,
OBJID,
CODE_NAME FACTORY_NAME,
WRITER,
REGDATE,
STATUS
from
comm_code
where
1 = 1
and UPPER(STATUS) = 'ACTIVE'
and parent_code_id = 'SPE90000'
order by
RNUM
</select>
<!-- //라인설치장소 조회(콤보박스용) -->
<select id= "getLineAreaList" parameterType= "map" resultType= "map" >
SELECT (ROW_NUMBER() OVER()) RNUM,
OBJID,
CODE_NAME AREA_NAME,
WRITER,
REGDATE,
STATUS
FROM comm_code
WHERE 1=1
AND UPPER(STATUS) = 'ACTIVE'
and parent_code_id='0005150'
ORDER BY RNUM
</select>
<!-- //GRADE 조회(콤보박스용) -->
<select id= "getCarGrade" parameterType= "map" resultType= "map" >
SELECT
OBJID::varchar
,'' AS DESCRIPTION
,CODE_ID AS GRADE_CODE
,CODE_NAME AS GRADE_NAME
,REGDATE
,STATUS
,WRITER
FROM COMM_CODE
WHERE UPPER(STATUS) = 'ACTIVE'
AND PARENT_CODE_ID='0005132'
ORDER BY GRADE_NAME
</select>
<!-- //자재유형 조회(콤보박스용) -->
<select id= "getMaterialTypeList" parameterType= "map" resultType= "map" >
SELECT OBJID,
MATERIAL_TYPE_NAME,
WRITER,
REGDATE,
STATUS
FROM MATERIAL_TYPE_MNG
WHERE 1=1
AND UPPER(STATUS) = 'ACTIVE'
ORDER BY MATERIAL_TYPE_NAME
</select>
<!-- //사양(option) 조회(콤보박스용) -->
<select id= "getOptionSpecList" parameterType= "map" resultType= "map" >
SELECT OBJID,
OPTION_NAME,
DESCRIPTION,
WRITER,
REGDATE,
STATUS
FROM OPTION_SPEC_MNG
WHERE 1=1
AND UPPER(STATUS) = 'ACTIVE'
ORDER BY OPTION_NAME
</select>
<!-- MS SPEC 조회(콤보박스용) -->
<select id= "getSPECList" parameterType= "map" resultType= "map" >
SELECT OBJID,
CATEGORY_OBJID,
(SELECT CATEGORY_NAME FROM STANDARD_DOC_CATEGORY WHERE OBJID = CATEGORY_OBJID) AS CATEGORY_NAME,
DOC_NO,
DOC_NAME,
PRODUCT_GROUP_OBJID,
PRODUCT_OBJID,
CAR_OBJID,
COMPATITION_CAR_NAME,
STANDARD_NAME,
DESCRIPTION,
CHANGE_HISTORY,
STEP,
REV,
ESTABLISH_DATE,
REVISION_DATE,
IS_LAST,
WRITER,
REGDATE,
STATUS,
GRADE_OBJID,
COMPANY_OBJID,
SPEC_NO,
COMPETE_COMPANY_OBJID,
OEM_OBJID
FROM STANDARD_DOC_INFO
WHERE CATEGORY_OBJID IN(
SELECT OBJID
FROM STANDARD_DOC_CATEGORY T
WHERE PARENT_OBJID = (SELECT OBJID FROM STANDARD_DOC_CATEGORY WHERE UPPER(CATEGORY_NAME) = 'SPEC')
<if test= "search_categoryName != null and !''.equals(search_categoryName)" >
AND UPPER(CATEGORY_NAME) LIKE UPPER('%${search_categoryName}%')
</if>
AND UPPER(STATUS) = 'ACTIVE'
)
AND IS_LAST = '1'
ORDER BY REGDATE DESC
</select>
<!-- 설계적용시점 조회(콤보박스용) -->
<select id= "getApplyPointList" parameterType= "map" resultType= "map" >
SELECT OBJID,
APPLY_POINT_NAME,
DESCRIPTION,
WRITER,
REGDATE,
STATUS
FROM APPLY_POINT_MNG
WHERE 1=1
AND UPPER(STATUS) = 'ACTIVE'
ORDER BY APPLY_POINT_NAME
</select>
<!-- //file download log -->
<insert id= "insertFileDownloadLog" parameterType= "map" >
INSERT INTO FILE_DOWN_LOG(
OBJID
, LOG_TIME
, SYSTEM_NAME
, USER_ID
, FILE_OBJID
, REMOTE_ADDR
) VALUES (
#{objId}::integer
, now()
, #{systemName}
, #{userId}
, #{fileObjId}::integer
, #{remoteAddr}
)
</insert>
<!-- //메뉴 path -->
<select id= "getMenuPath" resultType= "map" parameterType= "map" >
SELECT OBJID, REPLACE(SYS_CONNECT_BY_PATH(MENU_NAME_KOR, ' > '), '> 사용자 > ', '') AS PATH
FROM MENU_INFO
WHERE 1=1
AND OBJID = #{menuObjId}
START WITH PARENT_OBJ_ID = 0
CONNECT BY PRIOR OBJID = PARENT_OBJ_ID
ORDER SIBLINGS BY SEQ
</select>
<!-- //변환된 CadFile에 대한 정보를 입력 혹은 수정한다. -->
<update id= "mergeTranslateCadFileInfo" parameterType= "map" >
MERGE INTO ATTACH_FILE_INFO
USING DUAL
ON (TARGET_OBJID = #{targetObjId} AND DOC_TYPE = #{docType})
WHEN MATCHED THEN
UPDATE SET REGDATE = SYSDATE, WRITER = #{writer}
WHEN NOT MATCHED THEN
INSERT (OBJID, TARGET_OBJID, SAVED_FILE_NAME, REAL_FILE_NAME, DOC_TYPE, DOC_TYPE_NAME, FILE_EXT, FILE_PATH, WRITER, REGDATE, STATUS) VALUES (
#{objId}
, #{targetObjId}
, #{savedFileName}
, #{realFileName}
, #{docType}
, #{docTypeName}
, #{fileExt}
, #{filePath}
, #{writer}
, SYSDATE
, 'Active'
)
</update>
<!-- //milestone 목록 조회 -->
<select id= "getMilestoneList" parameterType= "map" resultType= "map" >
SELECT OBJID
, SEQ
, OEM_OBJID
, MILESTONE_NAME
, STATUS
FROM OEM_MILESTONE_MNG
WHERE 1=1
<if test= "search_oemObjId != null and !''.equals(search_oemObjId)" >
AND OEM_OBJID = ${search_oemObjId}
</if>
AND UPPER(STATUS) = 'ACTIVE'
ORDER BY SEQ
</select>
<select id= "getTestTypeList" parameterType= "map" resultType= "map" >
SELECT OBJID
, TEST_TYPE_NAME
FROM TEST_TYPE_MNG
WHERE 1=1
AND UPPER(STATUS) = 'ACTIVE'
ORDER BY REGDATE ASC
</select>
<!-- //Part 목록 조회 -->
<select id= "getPartList" parameterType= "map" resultType= "map" >
SELECT A.OBJID
, A.PART_NO
, A.PART_NAME
FROM PART_INFO A
WHERE 1=1
AND UPPER(A.STATUS) = 'COMPLETE'
AND A.IS_LAST = 1
<if test= "search_partNo != null and !''.equals(search_partNo)" >
AND UPPER(A.PART_NO) LIKE UPPER('%${search_partNo}%')
</if>
<if test= "search_partName != null and !''.equals(search_partName)" >
AND UPPER(A.PART_NAME) LIKE UPPER('%${search_partName}%')
</if>
</select>
<!-- //사업장 목록 조회 -->
<select id= "getLocationList" parameterType= "map" resultType= "map" >
SELECT DISTINCT USER_TYPE_NAME
FROM USER_INFO
WHERE 1=1
AND USER_TYPE_NAME IS NOT NULL
ORDER BY USER_TYPE_NAME
</select>
<!-- //설계체크리스트 대분류 조회(콤보박스용) -->
<select id= "getDesignCheckListGroupList" parameterType= "map" resultType= "map" >
SELECT OBJID
, TARGET_OBJID
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = TARGET_OBJID) AS PROD_NAME
, GROUP_NAME
, SEQ
FROM DESIGN_CHECK_LIST_GROUP
WHERE 1=1
AND UPPER(STATUS) = 'ACTIVE'
<if test= "search_productObjId != null and !''.equals(search_productObjId)" >
AND TARGET_OBJID = ${search_productObjId}
</if>
<if test= "search_categoryObjId != null and !''.equals(search_categoryObjId)" >
AND OBJID = (SELECT GROUP_OBJID FROM DESIGN_CHECK_LIST_CATEGORY WHERE OBJID = #{search_categoryObjId})
</if>
<if test= "search_productName != null and !''.equals(search_productName)" >
AND TARGET_OBJID = (SELECT OBJID FROM PRODUCT_MNG WHERE PRODUCT_NAME = #{search_productName})
</if>
ORDER BY SEQ ASC
</select>
<!-- //설계체크리스트 중분류 조회(콤보박스용) -->
<select id= "getDesignCheckListCategoryList" parameterType= "map" resultType= "map" >
SELECT
OBJID,
PRODUCT_OBJID,
(SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = PRODUCT_OBJID) AS PROD_NAME,
GROUP_OBJID,
CATEGORY_NAME,
SEQ,
WRITER,
REGDATE,
STATUS
FROM DESIGN_CHECK_LIST_CATEGORY
WHERE 1=1
AND UPPER(STATUS) = 'ACTIVE'
<if test= "search_productObjId != null and !''.equals(search_productObjId)" >
AND PRODUCT_OBJID = ${search_productObjId}
</if>
<if test= "search_productName != null and !''.equals(search_productName)" >
AND PRODUCT_OBJID = (SELECT OBJID FROM PRODUCT_MNG WHERE PRODUCT_NAME = #{search_productName})
</if>
<if test= "search_groupObjId != null and !''.equals(search_groupObjId)" >
AND GROUP_OBJID = #{search_groupObjId}
</if>
ORDER BY SEQ ASC
</select>
<!-- //설계체크리스트 소분류 조회(콤보박스용) -->
<select id= "getDesignCheckListAttributeList" parameterType= "map" resultType= "map" >
SELECT
OBJID,
PRODUCT_OBJID,
(SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = PRODUCT_OBJID) AS PROD_NAME,
CATEGORY_OBJID,
ATTRIBUTE_NAME,
REPLACE(CHECK_OPTION,chr(13)||chr(10), '\n') AS CHECK_OPTION,
REPLACE(CHECK_BASE,chr(13)||chr(10), '\n') AS CHECK_BASE,
SEQ,
WRITER,
REGDATE,
STATUS
FROM DESIGN_CHECK_LIST_ATTRIBUTE
WHERE 1=1
<if test= "search_productObjId != null and !''.equals(search_productObjId)" >
AND PRODUCT_OBJID = ${search_productObjId}
</if>
<if test= "search_productName != null and !''.equals(search_productName)" >
AND PRODUCT_OBJID = (SELECT OBJID FROM PRODUCT_MNG WHERE PRODUCT_NAME = #{search_productName})
</if>
<if test= "search_categoryObjId != null and !''.equals(search_categoryObjId)" >
AND CATEGORY_OBJID = #{search_categoryObjId}
</if>
ORDER BY SEQ ASC
</select>
<!-- //SOP일자가 가장 먼 고객사의 코드와 차종의 코드를 조회한다. -->
<select id= "getCarInfoFarthestSOP" parameterType= "map" resultType= "map" >
SELECT OBJID AS CAR_OBJID
, OEM_OBJID AS OEM_OBJID
FROM CAR_MNG
WHERE 1=1
AND OBJID = (
SELECT CAR_OBJID
FROM (
SELECT *
FROM CAR_MILESTONE_MNG
WHERE MILESTONE_OBJID = (SELECT OBJID FROM OEM_MILESTONE_MNG WHERE UPPER(MILESTONE_NAME) = 'SOP' AND ROWNUM = 1)
ORDER BY MILESTONE_DATE DESC NULLS LAST
)
WHERE ROWNUM = 1
)
</select>
<!-- //이름 순으로 가장 앞에 해당하는 제품군의 정보를 가져온다. -->
<select id= "getProductGroupInfoOrderByName" parameterType= "map" resultType= "map" >
SELECT OBJID FROM(
SELECT
OBJID,
PRODUCT_GROUP_NAME,
DESCRIPTION,
WRITER,
REGDATE,
STATUS
FROM PRODUCT_GROUP_MNG
WHERE UPPER(STATUS) = 'ACTIVE'
AND PRODUCT_GROUP_NAME NOT IN ('-')
ORDER BY PRODUCT_GROUP_NAME ASC
)WHERE ROWNUM = 1
</select>
<!-- //차종 object id를 통해 sop날짜를 구한다. -->
<select id= "getSOPDate_byCarObjId" parameterType= "map" resultType= "map" >
SELECT TO_CHAR(MILESTONE_DATE, 'YYYY-MM-DD') AS SOP
FROM CAR_MILESTONE_MNG A,
(
SELECT OBJID
FROM OEM_MILESTONE_MNG
WHERE UPPER(MILESTONE_NAME) = 'SOP'
) B
WHERE 1=1
AND A.CAR_OBJID = #{carObjId}
AND A.MILESTONE_OBJID = B.OBJID
</select>
<!-- 부서 정보를 조회한다. -->
<select id= "searchDeptList" parameterType= "map" resultType= "map" >
SELECT
DEPT_CODE
, DEPT_CODE AS CODE
, PARENT_DEPT_CODE
, DEPT_NAME
, DEPT_NAME AS NAME
, MASTER_SABUN
, MASTER_USER_ID
, LOCATION
, LOCATION_NAME
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
, REGDATE AS REGDATE_ORG
FROM DEPT_INFO
WHERE 1=1
<if test= "search_locationName != null and !''.equals(search_locationName)" >
AND UPPER(LOCATION_NAME) LIKE UPPER('%${search_locationName}%')
</if>
<if test= "search_deptName != null and !''.equals(search_deptName)" >
AND UPPER(DEPT_NAME) LIKE UPPER('%${search_deptName}%')
</if>
ORDER BY LOCATION_NAME ASC, DEPT_NAME ASC
</select>
<!-- //OEM정보 조회(콤보박스용) -->
<select id= "getOEMList_combo" parameterType= "map" resultType= "map" >
SELECT OBJID
, OEM_CODE
, OEM_NAME
FROM OEM_MNG
WHERE 1=1
AND UPPER(STATUS) = 'ACTIVE'
<if test= "search_oemCode != null and !''.equals(search_oemCode)" >
AND OEM_CODE = #{search_oemCode}
</if>
<if test= "search_oemName != null and !''.equals(search_oemName)" >
AND OEM_NAME = #{search_oemName}
</if>
ORDER BY OEM_NAME DESC
</select>
<!-- //차종정보 조회(콤보박스용) -->
<select id= "getCarTypeList_combo" parameterType= "map" resultType= "map" >
SELECT OBJID
, (SELECT OEM_CODE FROM OEM_MNG WHERE OBJID = CAR_MNG.OEM_OBJID) AS OEM_CODE
, (SELECT GRADE_NAME FROM CAR_GRADE_MNG WHERE OBJID = CAR_MNG.GRADE_OBJID) AS GRADE_NAME
, CAR_CODE
, MODEL_CODE
, CAR_NAME
, DESCRIPTION
, OEM_OBJID
FROM CAR_MNG
WHERE 1=1
AND UPPER(STATUS) = 'ACTIVE'
<if test= "search_oemCode != null and !''.equals(search_oemCode)" >
AND OEM_OBJID = (SELECT OBJID FROM OEM_MNG WHERE OEM_CODE = #{search_oemCode} AND UPPER(STATUS) = 'ACTIVE')
</if>
<if test= "search_oemName != null and !''.equals(search_oemName)" >
AND OEM_OBJID = (SELECT OBJID FROM OEM_MNG WHERE OEM_NAME = #{search_oemName} AND UPPER(STATUS) = 'ACTIVE')
</if>
<if test= "search_oemObjId != null and !''.equals(search_oemObjId)" >
AND OEM_OBJID = ${search_oemObjId}
</if>
<if test= "search_carCode != null and !''.equals(search_carCode)" >
AND CAR_CODE = #{search_carCode}
</if>
<if test= "search_carName != null and !''.equals(search_carName)" >
AND CAR_NAME = #{search_carName}
</if>
ORDER BY CAR_NAME, CAR_CODE
</select>
<!-- //제품군 조회(콤보박스용) -->
<!-- <select id="getProductGroupList_combo" parameterType="map" resultType="map">
SELECT OBJID
, CODE_NAME PRODUCT_GROUP_NAME
, '' DESCRIPTION
FROM PRODUCT_GROUP_MNG
WHERE 1=1
AND UPPER(STATUS) = 'ACTIVE'
AND PARENT_CODE_ID = '0005116'
ORDER BY PRODUCT_GROUP_NAME
SELECT OBJID
, CODE_NAME PRODUCT_GROUP_NAME
, '' DESCRIPTION
FROM PRODUCT_GROUP_MNG
WHERE 1=1
AND UPPER(STATUS) = 'ACTIVE'
AND PARENT_CODE_ID = '0005116'
ORDER BY PRODUCT_GROUP_NAME
</select> -->
<select id= "getProductGroupList_combo" parameterType= "map" resultType= "map" >
SELECT
OBJID
,CODE_ID
,PARENT_CODE_ID
,CODE_NAME AS PRODUCT_GROUP_NAME
,'' AS DESCRIPTION
,ID
,CODE_CD
,EXT_VAL
,WRITER
,(
SELECT
CASE
WHEN USER_NAME = NULL THEN '정보없음'
ELSE USER_NAME
END
FROM
USER_INFO
WHERE USER_ID = T.WRITER
) USER_NAME
,TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE
,REGDATE
,CASE STATUS
WHEN 'active' THEN '활성화'
ELSE '비활성화'
END AS STATUS
FROM COMM_CODE T
WHERE 1=1
AND PARENT_CODE_ID = #{PRODUCT_GROUP_CODE}
</select>
<!-- //제품 조회(콤보박스용) -->
<select id= "getProductList_combo" parameterType= "map" resultType= "map" >
SELECT OBJID
, PRODUCT_GROUP_OBJID
, PRODUCT_CODE
, PRODUCT_NAME
, PRODUCT_DESC
FROM PRODUCT_MNG
WHERE 1=1
AND UPPER(STATUS) = 'ACTIVE'
<if test= "search_productGroupObjId != null and !''.equals(search_productGroupObjId)" >
AND PRODUCT_GROUP_OBJID = ${search_productGroupObjId}
</if>
<if test= "search_productGroupName != null and !''.equals(search_productGroupName)" >
AND PRODUCT_GROUP_OBJID = (SELECT OBJID FROM PRODUCT_GROUP_MNG WHERE PRODUCT_GROUP_NAME = #{search_productGroupName})
</if>
ORDER BY PRODUCT_NAME
</select>
<!-- //재질 조회(콤보박스용) -->
<select id= "getMaterialList_combo" parameterType= "map" resultType= "map" >
SELECT OBJID,
MATERIAL_NAME,
WRITER,
REGDATE,
STATUS
FROM MATERIAL_MNG
WHERE 1=1
AND UPPER(STATUS) = 'ACTIVE'
ORDER BY MATERIAL_NAME
</select>
<!-- //자재유형 조회(콤보박스용) -->
<select id= "getMaterialTypeList_combo" parameterType= "map" resultType= "map" >
SELECT OBJID,
MATERIAL_TYPE_NAME,
WRITER,
REGDATE,
STATUS
FROM MATERIAL_TYPE_MNG
WHERE 1=1
AND UPPER(STATUS) = 'ACTIVE'
ORDER BY MATERIAL_TYPE_NAME
</select>
<!-- //사양(option) 조회(콤보박스용) -->
<select id= "getOptionSpecList_combo" parameterType= "map" resultType= "map" >
SELECT OBJID,
OPTION_NAME,
DESCRIPTION,
WRITER,
REGDATE,
STATUS
FROM OPTION_SPEC_MNG
WHERE 1=1
AND UPPER(STATUS) = 'ACTIVE'
ORDER BY OPTION_NAME
</select>
<!-- 설계적용시점 조회(콤보박스용) -->
<select id= "getApplyPointList_combo" parameterType= "map" resultType= "map" >
SELECT OBJID,
APPLY_POINT_NAME,
DESCRIPTION,
WRITER,
REGDATE,
STATUS
FROM APPLY_POINT_MNG
WHERE 1=1
AND UPPER(STATUS) = 'ACTIVE'
ORDER BY APPLY_POINT_NAME
</select>
<!-- MS SPEC 조회(콤보박스용) -->
<select id= "getSPECList_combo" parameterType= "map" resultType= "map" >
SELECT OBJID,
CATEGORY_OBJID,
(SELECT CATEGORY_NAME FROM STANDARD_DOC_CATEGORY WHERE OBJID = CATEGORY_OBJID) AS CATEGORY_NAME,
DOC_NO,
DOC_NAME,
PRODUCT_GROUP_OBJID,
PRODUCT_OBJID,
CAR_OBJID,
COMPATITION_CAR_NAME,
STANDARD_NAME,
DESCRIPTION,
CHANGE_HISTORY,
STEP,
REV,
ESTABLISH_DATE,
REVISION_DATE,
IS_LAST,
WRITER,
REGDATE,
STATUS,
GRADE_OBJID,
COMPANY_OBJID,
SPEC_NO,
COMPETE_COMPANY_OBJID,
OEM_OBJID
FROM STANDARD_DOC_INFO
WHERE CATEGORY_OBJID IN(
SELECT OBJID
FROM STANDARD_DOC_CATEGORY T
WHERE PARENT_OBJID = (SELECT OBJID FROM STANDARD_DOC_CATEGORY WHERE UPPER(CATEGORY_NAME) = 'SPEC')
<if test= "search_categoryName != null and !''.equals(search_categoryName)" >
AND UPPER(CATEGORY_NAME) LIKE UPPER('%${search_categoryName}%')
</if>
AND UPPER(STATUS) = 'ACTIVE'
)
AND IS_LAST = '1'
ORDER BY REGDATE DESC
</select>
<!-- //지역사양 조회(콤보박스용) -->
<select id= "getRegionList_combo" parameterType= "map" resultType= "map" >
SELECT
OBJID
,CODE_ID
,PARENT_CODE_ID
,CODE_NAME AS REGION_NAME
,'' AS DESCRIPTION
,ID
,CODE_CD
,EXT_VAL
,WRITER
,(
SELECT
CASE
WHEN USER_NAME = NULL THEN '정보없음'
ELSE USER_NAME
END
FROM
USER_INFO
WHERE USER_ID = T.WRITER
) USER_NAME
,TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE
,REGDATE
,CASE STATUS
WHEN 'active' THEN '활성화'
ELSE '비활성화'
END AS STATUS
FROM COMM_CODE T
WHERE 1=1
AND PARENT_CODE_ID = #{REGION_CODE}
</select>
<!-- 코드 조회 -->
<select id= "getCodeselect" parameterType= "map" resultType= "map" >
SELECT
CODE_ID AS CODE,
CODE_NAME AS NAME,
CODE_CD,
STATUS,
ID,
EXT_VAL,
'COL_'||CODE_ID AS COL_NAME
FROM
COMM_CODE T
WHERE 1 = 1
AND UPPER(T.STATUS)= 'ACTIVE'
<choose >
<when test= "code != null and !''.equals(code)" >
AND PARENT_CODE_ID = #{code}
</when>
<otherwise >
AND PARENT_CODE_ID IS NULL
</otherwise>
</choose>
</select>
<!-- 코드 조회 -->
<select id= "getAdminCodeselect" parameterType= "map" resultType= "map" >
WITH RECURSIVE V_CODE(
OBJID,
CODE_ID,
PARENT_CODE_ID,
CODE_NAME,
ID,
CODE_CD,
EXT_VAL,
WRITER,
REGDATE,
STATUS,
LEV,
PATH
) AS (
SELECT
CODE.*,
1,
ARRAY [CODE.CODE_ID]
FROM
COMM_CODE CODE
WHERE 1=1
<choose >
<when test= "code != null and !''.equals(code)" >
AND CODE.PARENT_CODE_ID = #{code}
</when>
<otherwise >
AND (CODE.PARENT_CODE_ID IS NULL OR CODE.PARENT_CODE_ID = '')
</otherwise>
</choose>
UNION ALL
SELECT
ORG_CODE.*,
LEV + 1,
PATH
FROM
COMM_CODE ORG_CODE
JOIN
V_CODE
ON
ORG_CODE.PARENT_CODE_ID = V_CODE.CODE_ID
WHERE 1=1
)
SELECT
OBJID,
CODE_ID AS CODE,
PARENT_CODE_ID,
CODE_NAME AS NAME,
ID,
CODE_CD,
EXT_VAL,
WRITER,
REGDATE,
STATUS,
LEV,
PATH
FROM
V_CODE V
WHERE 1=1
AND LEV='1'
ORDER BY
PATH,
LEV,
CODE_ID,
STATUS
</select>
<!-- <select id="getAdminCodeselect" parameterType="map" resultType="map">
SELECT
LEV
,CODE
,NAME
,CODE_CD
,STATUS
,ID
,EXT_VAL
FROM(
SELECT LEVEL AS LEV,
CODE_ID AS CODE,
CODE_NAME AS NAME,
CODE_CD,
STATUS,
ID,
EXT_VAL
FROM COMM_CODE A
<choose >
<when test= "code != null and !''.equals(code)" >
START WITH PARENT_CODE_ID = #{code}
</when>
<otherwise >
START WITH PARENT_CODE_ID IS NULL
</otherwise>
</choose>
CONNECT BY PRIOR CODE_ID = PARENT_CODE_ID
ORDER SIBLINGS BY CODE_ID
) T
WHERE T.LEV='1'
</select> -->
<select id= "getDeptselect" parameterType= "map" resultType= "map" >
SELECT DEPT_CODE AS CODE,
DEPT_NAME AS NAME,
DEPT_CODE AS CODE_CD,
'' AS STATUS,
'' AS ID,
'' AS EXT_VAL
FROM DEPT_INFO T
WHERE 1 = 1
</select>
<select id= "getProjectNoselect" parameterType= "map" resultType= "map" >
SELECT
T.ORDER_MGMT_OBJID::varchar AS CODE
,T1.PROJECT_NO AS NAME
,T1.PROJECT_NO AS CODE_CD
,'' AS STATUS
,'' AS ID
,'' AS EXT_VAL
FROM PROJECT_MGMT T,ORDER_MGMT T1
WHERE T.ORDER_MGMT_OBJID = T1.ORDER_MGMT_OBJID
<if test= "code != null and !''.equals(code)" >
AND T.ORDER_MGMT_OBJID != #{code}
</if>
ORDER BY PROJECT_NO DESC
</select>
<select id= "getProjectNoselect2" parameterType= "map" resultType= "map" >
select
T.OBJID as CODE_ID,
T.PROJECT_NO as CODE_NAME
from
PROJECT_MGMT T
where
T.RESULT_CD = '0001111'
order by
T.PROJECT_NO desc,
CODE_NAME
<!-- select
T.ORDER_MGMT_OBJID as CODE_ID,
T1.PROJECT_NO as CODE_NAME
from
PROJECT_MGMT T,
ORDER_MGMT T1
where
T.ORDER_MGMT_OBJID = T1.ORDER_MGMT_OBJID
and T1.RESULT_CD = 'RES00300'
order by
T1.PROJECT_NO desc,
CODE_NAME -->
</select>
<!-- <select id="getProjectNoselect2" parameterType="map" resultType="map">
SELECT
TO_CHAR(T.ORDER_MGMT_OBJID) AS CODE_ID
,TO_CHAR(T1.PROJECT_NO) AS CODE_NAME
FROM PROJECT_MGMT T,ORDER_MGMT T1
WHERE T.ORDER_MGMT_OBJID = T1.ORDER_MGMT_OBJID
AND T1.RESULT_CD = 'RES00300'
ORDER BY T1.PROJECT_NO DESC, CODE_NAME
</select> -->
<select id= "getsupplyselect" parameterType= "map" resultType= "map" >
2025-12-02 18:09:47 +09:00
SELECT * FROM (
<!-- 기존 SUPPLY_MNG 데이터 -->
SELECT
OBJID::VARCHAR AS CODE
,SUPPLY_NAME AS NAME
,SUPPLY_CODE AS CODE_ID
,SUPPLY_NAME AS CODE_NAME
,SUPPLY_CODE AS CODE_CD
,REG_NO
,CHARGE_USER_NAME
,SUPPLY_TEL_NO
,SUPPLY_FAX_NO
,PAYMENT_METHOD
,STATUS AS STATUS
,'' AS ID
,'' AS EXT_VAL
,'SUPPLY' AS DATA_SOURCE
FROM SUPPLY_MNG
WHERE 1=1
AND SUPPLY_CODE != '0000269'
<if test= "SUPPLY_OBJID != null and !''.equals(SUPPLY_OBJID)" >
AND OBJID::VARCHAR = #{SUPPLY_OBJID}::VARCHAR
</if>
<if test= "CHARGER_TYPE != null and !''.equals(CHARGER_TYPE)" >
AND CHARGER_TYPE = #{CHARGER_TYPE}
</if>
UNION ALL
<!-- CLIENT_MNG (일반거래처) 데이터 -->
SELECT
'C_' || OBJID::VARCHAR AS CODE
,CLIENT_NM AS NAME
,CLIENT_CD AS CODE_ID
,CLIENT_NM AS CODE_NAME
,CLIENT_CD AS CODE_CD
,BUS_REG_NO AS REG_NO
,CEO_NM AS CHARGE_USER_NAME
,TEL_NO AS SUPPLY_TEL_NO
,FAX_NO AS SUPPLY_FAX_NO
,PAYMENT_TERM AS PAYMENT_METHOD
,USE_YN AS STATUS
,'' AS ID
,'' AS EXT_VAL
,'CLIENT' AS DATA_SOURCE
FROM CLIENT_MNG
WHERE 1=1
<if test= "SUPPLY_OBJID != null and !''.equals(SUPPLY_OBJID)" >
AND ('C_' || OBJID::VARCHAR) = #{SUPPLY_OBJID}::VARCHAR
</if>
) AS COMBINED
2025-08-29 15:46:08 +09:00
ORDER BY NAME
</select>
<select id= "getsupplyselect2" parameterType= "map" resultType= "map" >
SELECT
OBJID::VARCHAR AS CODE_ID
,SUPPLY_NAME AS CODE_NAME
,SUPPLY_CODE
,SUPPLY_NAME
,SUPPLY_CODE AS CODE_CD
,REG_NO
,CHARGE_USER_NAME
,SUPPLY_TEL_NO
,SUPPLY_FAX_NO
,PAYMENT_METHOD
,STATUS AS STATUS
,'' AS ID
,'' AS EXT_VAL
FROM SUPPLY_MNG
WHERE 1=1
<!-- AND SUPPLY_CODE != '0000269' -->
<if test= "SUPPLY_OBJID != null and !''.equals(SUPPLY_OBJID)" >
AND OBJID::VARCHAR = #{SUPPLY_OBJID}::VARCHAR
</if>
<if test= "CHARGER_TYPE != null and !''.equals(CHARGER_TYPE)" >
AND CHARGER_TYPE = #{CHARGER_TYPE}
</if>
ORDER BY CODE_NAME
</select>
<select id= "getOrderNoList" parameterType= "map" resultType= "map" >
SELECT
T.ORDER_NO AS CODE
,T.ORDER_NO AS NAME
,'' AS ID
FROM MATERIAL_MASTER_MGMT T
WHERE T.DEL_YN='N'
ORDER BY T.ORDER_NO DESC
</select>
<select id= "getUserselect" parameterType= "map" resultType= "map" >
SELECT USER_ID AS CODE,
<!-- (SELECT '[' ||O.DEPT_NAME|| ']' FROM DEPT_INFO O WHERE O.DEPT_CODE = T.DEPT_CODE) || --> USER_NAME AS NAME,
SABUN AS CODE_CD,
'' AS STATUS,
'' AS ID,
'' AS EXT_VAL
,CELL_PHONE
,DEPT_CODE
,DEPT_NAME
,POSITION_CODE
,POSITION_NAME
,RANK
,EMAIL
FROM USER_INFO T
WHERE 1 = 1
<choose >
<when test= 'search_user_type == null or "".equals(search_user_type) ' >
AND NVL(partner_objid, '') = ''
</when>
<when test= 'search_user_type != null and "A".equals(search_user_type) ' >
</when>
<when test= 'search_user_type != null and "U".equals(search_user_type) ' >
AND NVL(partner_objid, '') = ''
</when>
<when test= 'search_user_type != null and "P".equals(search_user_type) ' >
AND NVL(partner_objid, '') != ''
</when>
<otherwise >
</otherwise>
</choose>
<if test= "code != null and !''.equals(code)" >
AND DEPT_CODE = #{code}
</if>
AND STATUS = 'active'
ORDER BY NAME
</select>
<select id= "getYear" parameterType= "map" resultType= "map" >
< ![CDATA[
SELECT TO_CHAR(TO_CHAR(SYSDATE, 'YYYY') - LEVEL + 1) AS CODE,
TO_CHAR(TO_CHAR(SYSDATE, 'YYYY') - LEVEL + 1) AS NAME,
TO_CHAR(TO_CHAR(SYSDATE, 'YYYY') - LEVEL + 1) AS CODE_CD,
'' AS STATUS,
'' AS ID,
'' AS EXT_VAL
FROM DUAL
CONNECT BY LEVEL < = ((TO_CHAR(SYSDATE, 'YYYY') + 1) - 2017)
]]>
</select>
<select id= "getDeptselect2" parameterType= "map" resultType= "map" >
SELECT
DEPT_CODE AS CODE_ID
,DEPT_NAME AS CODE_NAME
FROM DEPT_INFO
</select>
<select id= "getUserselect2" parameterType= "map" resultType= "map" >
SELECT USER_ID AS CODE_ID,
(SELECT '[' ||O.DEPT_NAME|| ']' FROM DEPT_INFO O WHERE O.DEPT_CODE = T.DEPT_CODE) || USER_NAME AS CODE_NAME,
SABUN AS CODE_CD,
T.DEPT_CODE AS DEPT_CODE_ID,
'' AS STATUS,
'' AS ID,
'' AS EXT_VAL
FROM USER_INFO T
WHERE 1 = 1
<if test= "code != null and !''.equals(code)" >
AND DEPT_CODE = #{code}
</if>
</select>
<select id= "getUserselect3" parameterType= "map" resultType= "map" >
SELECT USER_ID AS CODE_ID,
USER_NAME AS CODE_NAME,
SABUN AS CODE_CD,
T.DEPT_CODE AS DEPT_CODE_ID,
'' AS STATUS,
'' AS ID,
'' AS EXT_VAL
FROM USER_INFO T
WHERE 1 = 1
AND DEPT_CODE = 'FT'
ORDER BY CODE_NAME
</select>
<select id= "getUserselect4" parameterType= "map" resultType= "map" >
SELECT USER_ID AS CODE_ID,
USER_NAME AS CODE_NAME,
SABUN AS CODE_CD,
T.DEPT_CODE AS DEPT_CODE_ID,
'' AS STATUS,
'' AS ID,
'' AS EXT_VAL
FROM USER_INFO T
WHERE 1 = 1
AND DEPT_CODE IN ('MM','MF')
ORDER BY CODE_NAME
</select>
<select id= "getUserselect5" parameterType= "map" resultType= "map" >
SELECT USER_ID AS CODE_ID,
USER_NAME AS CODE_NAME,
SABUN AS CODE_CD,
T.DEPT_CODE AS DEPT_CODE_ID,
'' AS STATUS,
'' AS ID,
'' AS EXT_VAL
FROM USER_INFO T
WHERE 1 = 1
AND DEPT_CODE in('MD','EC')
ORDER BY CODE_NAME
</select>
<select id= "getUserselect6" parameterType= "map" resultType= "map" >
SELECT USER_ID AS CODE_ID,
USER_NAME AS CODE_NAME,
SABUN AS CODE_CD,
T.DEPT_CODE AS DEPT_CODE_ID,
'' AS STATUS,
'' AS ID,
'' AS EXT_VAL
FROM USER_INFO T
WHERE 1 = 1
<if test= "code != null and !''.equals(code)" >
AND DEPT_CODE = #{code}
</if>
ORDER BY CODE_NAME
</select>
<select id= "getResult" parameterType= "map" resultType= "map" >
SELECT
OBJID
,CODE_ID
,PARENT_CODE_ID
,CODE_NAME
,ID
,CODE_CD
,EXT_VAL
,WRITER
,TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE
,REGDATE
FROM COMM_CODE T
WHERE PARENT_CODE_ID = 'RCR10000'
</select>
<select id= "selectUserViewMenuList" parameterType= "map" resultType= "map" >
WITH RECURSIVE v_menu(
LEVEL,
MENU_TYPE,
OBJID,
PARENT_OBJ_ID,
MENU_NAME_KOR,
MENU_URL,
MENU_DESC,
SEQ,
WRITER,
REGDATE,
STATUS,
PATH,
CYCLE
) AS (
SELECT
1 AS LEVEL,
MENU_TYPE,
OBJID::numeric,
PARENT_OBJ_ID,
MENU_NAME_KOR,
MENU_URL,
MENU_DESC,
SEQ,
WRITER,
REGDATE,
STATUS,
ARRAY [MENU.OBJID],
FALSE
FROM MENU_INFO MENU
WHERE PARENT_OBJ_ID=0
AND MENU_TYPE=1
UNION ALL
SELECT
V_MENU.LEVEL+1,
MENU_SUB.MENU_TYPE,
MENU_SUB.OBJID,
MENU_SUB.PARENT_OBJ_ID,
MENU_SUB.MENU_NAME_KOR,
MENU_SUB.MENU_URL,
MENU_SUB.MENU_DESC,
MENU_SUB.SEQ,
MENU_SUB.WRITER,
MENU_SUB.REGDATE,
MENU_SUB.STATUS,
PATH||MENU_SUB.SEQ::numeric,
MENU_SUB.OBJID = ANY(PATH)
FROM MENU_INFO MENU_SUB
JOIN
V_MENU
ON
MENU_SUB.PARENT_OBJ_ID = V_MENU.OBJID
WHERE 1=1
AND UPPER(MENU_SUB.STATUS) = 'ACTIVE'
)
SELECT
LEVEL AS LEV,
case MENU_TYPE
when '0' then 'admin'
when '1' then 'user'
else ''
END AS MENU_TYPE,
OBJID,
PARENT_OBJ_ID,
MENU_NAME_KOR,
LPAD(' ', 3*(LEVEL-1))||MENU_NAME_KOR LPAD_MENU_NAME_KOR,
MENU_URL,
MENU_DESC,
SEQ,
WRITER,
TO_CHAR(REGDATE,'YYYY-MM-DD') REGDATE,
STATUS,
case UPPER(STATUS)
when 'ACTIVE' then '활성화'
when 'INACTIVE' then '비활성화'
else ''
END AS STATUS_TITLE,
B.CREATE_AUTH_CNT,
B.READ_AUTH_CNT,
B.UPDATE_AUTH_CNT,
B.DELETE_AUTH_CNT
FROM
v_menu A,
(
SELECT
B.MENU_OBJID,
SUM(CASE B.CREATE_YN WHEN 'Y' THEN 1 ELSE 0 END) CREATE_AUTH_CNT,
SUM(CASE B.READ_YN WHEN 'Y' THEN 1 ELSE 0 END) READ_AUTH_CNT,
SUM(CASE B.UPDATE_YN WHEN 'Y' THEN 1 ELSE 0 END) UPDATE_AUTH_CNT,
SUM(CASE B.DELETE_YN WHEN 'Y' THEN 1 ELSE 0 END) DELETE_AUTH_CNT
FROM
REL_MENU_AUTH B,
AUTHORITY_MASTER C
WHERE
1 = 1
AND B.AUTH_OBJID = C.OBJID
AND C.OBJID IN (
SELECT
MASTER_OBJID
FROM
AUTHORITY_SUB_USER
WHERE
USER_ID = #{userId}
)
GROUP BY
B.MENU_OBJID
) B
WHERE 1=1
AND a.objid = b.menu_objid
AND A.seq > 99
<if test= "menuObjId != null and !''.equals(menuObjId)" >
AND A.OBJID = #{menuObjId}::numeric
</if>
ORDER BY PATH,SEQ
</select>
<select id= "getProjectNoList" parameterType= "map" resultType= "map" >
SELECT
PMS_PJT_CONCEPT_INFO.*,
PMS_PJT_WBS_INFO.WBS_TASK_RATIO
FROM(
SELECT
A.OBJID AS CONCEPT_OBJID
, A.OBJID AS CODE_ID
, A.FOREIGN_TYPE AS FOREIGN_TYPE_ORG
, case A.FOREIGN_TYPE when 'D' then '국내'
when 'F' then '해외'
else A.FOREIGN_TYPE
end FOREIGN_TYPE
, A.OEM_OBJID
, (SELECT OEM_CODE FROM OEM_MNG WHERE OBJID = A.OEM_OBJID) AS OEM_CODE
, (SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = A.OEM_OBJID) AS OEM_NAME
, A.CAR_OBJID
, (SELECT CAR_CODE FROM CAR_MNG WHERE OBJID = A.CAR_OBJID) AS CAR_CODE
, (SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = A.CAR_OBJID) AS CAR_NAME
, (SELECT MODEL_CODE FROM CAR_MNG WHERE OBJID = A.CAR_OBJID) AS CAR_MODEL_CODE
, A.PJT_TYPE AS PJT_TYPE_ORG
, case A.PJT_TYPE when 'new' then '신차'
when 'derivative' then '파생차'
when 'sample' then '시작차'
else A.PJT_TYPE
end PJT_TYPE
, A.OEM_FACTORY
, A.IS_DEL AS CONCEPT_IS_DEL_ORG
, case A.IS_DEL || '' when '0' then '삭제됨'
when '1' then '활성화'
else A.IS_DEL || ''
end CONCEPT_IS_DEL
, A.WRITER AS CONCEPT_WRITER_USER_ID
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = A.WRITER) AS CONCEPT_WRITER_DEPT_NAME
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = A.WRITER) AS CONCEPT_WRITER_USER_NAME
, count(B.TARGET_OBJID) AS CONCEPT_PROD_CNT
, ( select code_name from comm_code c where c.code_id = B.PARENT_CODE_ID) as PRODUCT_GROUP_NAME
, ( select code_id from comm_code c where c.code_id = B.PARENT_CODE_ID) as PRODUCT_GROUP_OBJID
, B.ESTIMATE_NO
, B.ESTIMATE_NO AS CODE_NAME
, A.ESTIMATE_REQ_DATE AS ESTIMATE_REQ_DATE_ORG
, TO_CHAR(A.ESTIMATE_REQ_DATE, 'YYYY-MM-DD') AS ESTIMATE_REQ_DATE
, A.ESTIMATE_SUBMIT_DATE AS ESTIMATE_SUBMIT_DATE_ORG
, TO_CHAR(A.ESTIMATE_SUBMIT_DATE, 'YYYY-MM-DD') AS ESTIMATE_SUBMIT_DATE
, A.WRITER AS ESTIMATE_PIC_USER_ID
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = A.WRITER) AS ESTIMATE_PIC_DEPT_NAME
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = A.WRITER) AS ESTIMATE_PIC_USER_NAME
, A.YEARLY_AVG_PRODUCTION_CNT
, A.TOTAL_PRODUCTION_CNT
, (select CODE_NAME FROM COMM_CODE WHERE PARENT_CODE_ID = '0005154' AND UPPER(STATUS) = 'ACTIVE' and objid = A.STATUS) as BIDDING_RESULT
, B.IS_DEL AS CONCEPT_PROD_IS_DEL_ORG
, case B.IS_DEL || '' when '0' then '삭제됨'
when '1' then '활성화'
else B.IS_DEL || ''
end CONCEPT_PROD_IS_DEL
, B.WRITER AS CONCEPT_PROD_WRITER_USER_ID
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = B.WRITER) AS CONCEPT_PROD_WRITER_DEPT_NAME
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = B.WRITER) AS CONCEPT_PROD_WRITER_USER_NAME
, case B.STATUS when 'create' then '진행중'
when 'complete' then '완료'
else B.STATUS
end STATUS
, B.STATUS AS STATUS_ORG
, (SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = A.OBJID AND DOC_TYPE='PJT_CONCEPT_ESTIMATE_ATTACH' AND UPPER(STATUS) = 'ACTIVE') AS ESTIMATE_FILE_CNT
, (SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = A.OBJID AND DOC_TYPE='PJT_CONCEPT_SR_ATTACH' AND UPPER(STATUS) = 'ACTIVE') AS SR_FILE_CNT
, (SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = A.OBJID AND DOC_TYPE='PJT_CONCEPT_DATA_ATTACH' AND UPPER(STATUS) = 'ACTIVE') AS DATA_FILE_CNT
, (SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = A.OBJID AND DOC_TYPE='PJT_CONCEPT_COOPERATION_ATTACH' AND UPPER(STATUS) = 'ACTIVE') AS COOPERATION_FILE_CNT
, (SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = A.OBJID AND DOC_TYPE='PJT_CONCEPT_FINAL_ATTACH' AND UPPER(STATUS) = 'ACTIVE') AS FINAL_FILE_CNT
, (select milestone_date from PMS_REL_PJT_CONCEPT_MILESTONE where target_objid = A.OBJID and milestone_objid in (select objid from OEM_MILESTONE_MNG where milestone_name = '양산')) as MILESTONE_DATE
, (select USER_NAME || position_name from user_info where user_id = A.PM_ID) AS PM_INFO
, (select CODE_NAME from comm_code where parent_code_id = '0005150' and objid = A.OEM_FACTORY) AS OEM_FACTORY_NAME
, (select count(*) from pms_invest_cost_mng where target_objid = A.OBJID) AS invest_cnt
, (SELECT round( SUM(amount)/10000000, 2) FROM PMS_INVEST_COST_MNG WHERE TARGET_OBJID = A.OBJID) AS invest_amoumt
, (SELECT ROUND(100.0 * SUM(TASK.OK_CNT) / SUM(TASK.TASK_CNT))|| '%' as WBS_TASK_RATIO from ( select PWTI.TARGET_OBJID, case when PWTI.PM_CONFIRM_STATUS = 'ok' then 1 else 0 end OK_CNT, 1 TASK_CNT from PMS_WBS_TASK_INFO PWTI where PWTI.target_objid = '1551736239' ) TASK group by TASK.TARGET_OBJID ) AS WBS_TASK_RATIO
FROM
PMS_PJT_CONCEPT_INFO A,
(select P.*, C.PARENT_CODE_ID from PMS_REL_PJT_CONCEPT_PROD P inner join comm_code c on P.PROD_OBJID = C.objid) B
WHERE 1=1
AND A.OBJID = B.TARGET_OBJID
AND A.IS_DEL = 1
AND B.IS_DEL = 1
AND A.STATUS = (select objid from comm_code where parent_code_id = '0005154' and code_name = '수주')
group by A.OBJID, A.FOREIGN_TYPE, A.OEM_OBJID,A.car_objid , A.PJT_TYPE, A.OEM_FACTORY, A.IS_DEL, A.WRITER, B.PARENT_CODE_ID,B.ESTIMATE_NO ,
A.ESTIMATE_REQ_DATE, A.ESTIMATE_SUBMIT_DATE, B.ESTIMATE_PIC, A.YEARLY_AVG_PRODUCTION_CNT ,A.TOTAL_PRODUCTION_CNT , A.STATUS, B.IS_DEL,
B.WRITER, B.status, A.PM_ID
) PMS_PJT_CONCEPT_INFO
LEFT OUTER JOIN(
select
A.TARGET_OBJID,
ROUND(100.0 * SUM(A.OK_CNT) / SUM(A.TASK_CNT))||'%' AS WBS_TASK_RATIO
FROM(
SELECT
PWTI.TARGET_OBJID,
CASE
WHEN PWTI.PM_CONFIRM_STATUS = 'ok' THEN 1
ELSE 0
END OK_CNT,
1 TASK_CNT
FROM PMS_WBS_TASK_INFO PWTI
) A
GROUP BY TARGET_OBJID
) PMS_PJT_WBS_INFO
ON PMS_PJT_CONCEPT_INFO.CONCEPT_OBJID = PMS_PJT_WBS_INFO.TARGET_OBJID::INTEGER
</select>
<select id= "getresourceList" resultType= "map" parameterType= "map" >
SELECT
DISTINCT
T.PRODUCT_TITLE AS CODE_ID
,T1.CODE_NAME
FROM
RESOURCE_MNG T,COMM_CODE T1
WHERE T.PRODUCT_TITLE = T1.CODE_ID
AND T.RESOURCE_TITLE = T1.PARENT_CODE_ID
</select>
<select id= "getStandList" resultType= "map" parameterType= "map" >
SELECT
T.OBJID::varchar AS CODE_ID
,T.STANDARD AS CODE_NAME
,T.PRODUCT_TITLE AS PARENT_CODE_ID
,T.UNIT
,T.UNIT_TITLE
FROM RESOURCE_MNG T
</select>
<select id= "resourcePrice" resultType= "map" parameterType= "map" >
SELECT
T.UNIT_PRICE::float * T1.WEIGHT::FLOAT AS UNIT_PRICE
FROM RESOURCE_PRICE T,RESOURCE_MNG T1
WHERE T.PARENT_OBJID = T1.OBJID
AND T.PARENT_OBJID =#{objId}::integer
ORDER BY T.REGDATE DESC
LIMIT 1
</select>
<!-- //지역사양 조회(콤보박스용) -->
<select id= "getConceptStatus" parameterType= "map" resultType= "map" >
SELECT OBJID
, CODE_ID
, CODE_NAME
FROM COMM_CODE
WHERE PARENT_CODE_ID = '0005154' AND UPPER(STATUS) = 'ACTIVE'
ORDER BY CODE_ID
</select>
<!-- //PM팀 조회(콤보박스용) -->
<select id= "getPmList" parameterType= "map" resultType= "map" >
select
SABUN ,
USER_ID ,
USER_NAME
from
USER_INFO
where
DEPT_CODE = 'DEPT06' AND UPPER(STATUS)= 'ACTIVE'
</select>
<!-- 코드 조회 -->
<select id= "getCodeselectList" parameterType= "map" resultType= "map" >
SELECT CODE_ID AS CODE,
CODE_NAME AS NAME,
CODE_CD,
STATUS,
ID,
EXT_VAL
FROM COMM_CODE T
WHERE 1 = 1
AND UPPER(T.STATUS)= 'ACTIVE'
AND PARENT_CODE_ID = #{code}
</select>
<select id= "getProductCodeselect" parameterType= "map" resultType= "map" >
SELECT
objid::varchar AS code
,product_code AS NAME
,product_code AS CODE_CD
,'' AS STATUS
,'' AS ID
FROM product_mgmt
ORDER BY product_code
</select>
<select id= "getAsProductCodeselect" parameterType= "map" resultType= "map" >
SELECT
product_code AS code
,product_code AS NAME
,product_code AS CODE_CD
,'' AS STATUS
,'' AS ID
FROM product_mgmt
ORDER BY product_code
</select>
<select id= "getPartNoselect" parameterType= "map" resultType= "map" >
SELECT
objid::varchar AS code
<!-- ,part_no ||' - '|| revision AS NAME -->
,CASE WHEN revision IS NULL OR revision = ''
THEN part_no
WHEN revision IS NOT NULL OR revision != ''
THEN part_no || revision
END AS name
,part_no AS CODE_CD
,'' AS STATUS
,'' AS ID
FROM part_mng
ORDER BY part_no
</select>
<select id= "getProductUPGselect" parameterType= "map" resultType= "map" >
SELECT
P.*,
(UPG_CODE ||'-'|| PRODUCT_CODE ||'-'|| VC) AS UPG_NO
FROM(
SELECT
PMUD.OBJID AS DETAIL_OBJID,
PMUD.OBJID::VARCHAR AS CODE,
PMUD.TARGET_OBJID AS MASTER_OBJID,
PMUD.UPG_NAME,
PMUD.UPG_CODE,
PMUD.UPG_NAME AS NAME,
PMUD.UPG_CODE AS CODE_CD,
PMUD.VC,
PMUD.NOTE,
PMUD.PRODUCT_OBJID,
(SELECT PRODUCT_CODE FROM PRODUCT_MGMT PM WHERE 1=1 AND PM.OBJID = PMUD.PRODUCT_OBJID) AS PRODUCT_CODE
FROM
PRODUCT_MGMT_UPG_DETAIL PMUD
WHERE VC !=''
<if test= "PRODUCT_MGMT_OBJID != null and !''.equals(PRODUCT_MGMT_OBJID)" >
AND PMUD.PRODUCT_OBJID = #{PRODUCT_MGMT_OBJID}::INTEGER
</if>
<if test= "PRODUCT_MGMT_SPEC != null and !''.equals(PRODUCT_MGMT_SPEC)" >
AND PMUD.TARGET_OBJID = #{PRODUCT_MGMT_SPEC}::INTEGER
</if>
<if test= "UPG_MASTER_OBJID != null and !''.equals(UPG_MASTER_OBJID)" >
AND PMUD.TARGET_OBJID = #{UPG_MASTER_OBJID}::INTEGER
</if>
<if test= "UPG_DETAIL_OBJID != null and !''.equals(UPG_DETAIL_OBJID)" >
AND PMUD.OBJID = #{UPG_DETAIL_OBJID}::INTEGER
</if>
) P
</select>
<select id= "getProductUPGNEWselect" parameterType= "map" resultType= "map" >
SELECT
DISTINCT
UPG_CODE ||'-'|| (SELECT PRODUCT_CODE FROM PRODUCT_MGMT PM WHERE 1=1 AND PM.OBJID = PMUD.PRODUCT_OBJID) ||'-'|| VC AS CODE
,(SELECT code_name FROM comm_code AS CC WHERE CC.EXT_VAL = PMUD.UPG_CODE) AS NAME
FROM
PRODUCT_MGMT_UPG_DETAIL PMUD
WHERE VC !=''
<if test= "PRODUCT_MGMT_OBJID != null and !''.equals(PRODUCT_MGMT_OBJID)" >
AND PMUD.PRODUCT_OBJID = #{PRODUCT_MGMT_OBJID}::INTEGER
</if>
<if test= "PRODUCT_MGMT_SPEC != null and !''.equals(PRODUCT_MGMT_SPEC)" >
AND PMUD.TARGET_OBJID = #{PRODUCT_MGMT_SPEC}::INTEGER
</if>
<if test= "UPG_MASTER_OBJID != null and !''.equals(UPG_MASTER_OBJID)" >
AND PMUD.TARGET_OBJID = #{UPG_MASTER_OBJID}::INTEGER
</if>
<if test= "UPG_DETAIL_OBJID != null and !''.equals(UPG_DETAIL_OBJID)" >
AND PMUD.OBJID = #{UPG_DETAIL_OBJID}::INTEGER
</if>
</select>
<select id= "getProductUPGPARTselect" parameterType= "map" resultType= "map" >
SELECT
OBJID::varchar
,UPG_NO
,PART_NO
,PART_NAME
,UNIT
,QTY
,SPEC
,MATERIAL
,WEIGHT
,PART_TYPE
,REMARK
FROM PART_MNG AS T
<!-- WHERE T.UPG_NO = #{UPG_OBJID} -->
</select>
<select id= "getProductSPECSelect" parameterType= "map" resultType= "map" >
SELECT
PMUM.OBJID,
PMUM.TARGET_OBJID AS PRODUCT_MGMT_OBJID,
PMUM.SPEC_NAME
FROM
PRODUCT_MGMT_UPG_MASTER PMUM
WHERE 1=1
<if test= "TARGET_OBJID != null and !''.equals(TARGET_OBJID)" >
AND PMUM.TARGET_OBJID = #{TARGET_OBJID}::INTEGER
</if>
</select>
<select id= "getProductRELDataSelect" parameterType= "map" resultType= "map" >
SELECT
PMUM.OBJID,
PMUM.TARGET_OBJID AS PRODUCT_MGMT_OBJID,
PMUM.SPEC_NAME,
PMUD.OBJID AS DETAIL_OBJID,
PMUD.TARGET_OBJID AS MASTER_OBJID,
PMUD.UPG_NAME,
PMUD.UPG_CODE,
PMUD.VC,
PMUD.NOTE
FROM
PRODUCT_MGMT_UPG_MASTER PMUM
WHERE 1=1
<if test= "TARGET_OBJID != null and !''.equals(TARGET_OBJID)" >
AND PMUM.TARGET_OBJID = #{TARGET_OBJID}
</if>
</select>
<select id= "getProductUpgMasterselect" parameterType= "map" resultType= "map" >
SELECT
COALESCE(t1.objid,t.objid)::varchar AS code
,CASE WHEN t1.spec_name IS null
THEN product_code
ELSE product_code
END AS NAME
,product_code AS CODE_CD
,'' AS STATUS
,t1.spec_name AS ID
,t.objid::varchar
FROM product_mgmt AS t
left outer join product_mgmt_upg_master AS t1
ON t.objid = t1.target_objid
ORDER BY product_code
</select>
<select id= "getProductMasterselect" parameterType= "map" resultType= "map" >
SELECT
t.objid::varchar AS code
,t.product_code AS NAME
,t.product_code AS CODE_CD
,'' AS STATUS
,'' AS ID
FROM product_mgmt AS t
ORDER BY product_code
</select>
<select id= "getEcrCodeselect" parameterType= "map" resultType= "map" >
SELECT
objid::varchar AS code
,ecr_no AS NAME
,ecr_no AS CODE_CD
,'' AS STATUS
,'' AS ID
FROM ecr_mng
where 1=1
<if test= "code != null and !''.equals(code)" >
AND OBJID = #{code}::numeric
</if>
ORDER BY ecr_no
</select>
<select id= "getCodeselectUser" parameterType= "map" resultType= "map" >
select
user_id as code,
user_name || '(' || dept_name || ')' as name
from
user_info
</select>
<select id= "gettemplate_code_detailList" parameterType= "map" resultType= "map" >
SELECT CODE_ID AS CODE,
CODE_NAME AS NAME,
CODE_CD,
STATUS,
ID,
EXT_VAL
FROM COMM_CODE T
WHERE 1 = 1
AND UPPER(T.STATUS)= 'ACTIVE'
<choose >
<when test= "detailCd != null and !''.equals(detailCd)" >
AND PARENT_CODE_ID = #{detailCd}
</when>
<otherwise >
AND PARENT_CODE_ID IS NULL
</otherwise>
</choose>
</select>
<select id= "getCustomerCodeselect" parameterType= "map" resultType= "map" >
SELECT
T.OBJID::VARCHAR AS CODE
,T.SUPPLY_NAME AS NAME
,T.SUPPLY_NAME AS CODE_CD
,'' AS STATUS
,'' AS ID
<!--
,T1.OBJID
-->
FROM SUPPLY_MNG AS T
<!--
,(SELECT T1.CUSTOMER_OBJID,T1.OBJID
FROM CONTRACT_MGMT T1, RELEASE_MGMT T2
WHERE T1.OBJID = T2.PARENT_OBJID::NUMERIC
) AS T1
2025-12-04 18:31:32 +09:00
WHERE T1.CUSTOMER_OBJID NOT LIKE 'C_%' AND T.OBJID::VARCHAR = T1.CUSTOMER_OBJID::VARCHAR
2025-08-29 15:46:08 +09:00
-->
</select>
<select id= "getAsProductList" parameterType= "map" resultType= "map" >
SELECT * FROM(
SELECT
T.PRODUCT AS CODE
,(SELECT PRODUCT_CODE FROM PRODUCT_MGMT AS O WHERE O.OBJID::VARCHAR = T.PRODUCT)||'('||T1.RELEASE_CAR_NO||')' AS NAME
,COALESCE(T1.RELEASE_CAR_NO , '') AS PSHELLNO
<!--
,T.WARRANTY AS GOODSGUARANTEE
-->
,T1.RELEASE_DATE AS INOUTDATE
FROM CONTRACT_MGMT AS T,RELEASE_MGMT AS T1
WHERE T.OBJID = T1.PARENT_OBJID
AND T.CUSTOMER_OBJID = #{CUSTCD}
<!--
AND SUBSTR(CONTRACT_DATE,1,4) =#{YEAR}
-->
<!--
UNION ALL
SELECT
T.PRODUCT1 AS CODE
,(SELECT PRODUCT_CODE FROM PRODUCT_MGMT AS O WHERE O.OBJID::VARCHAR = T.PRODUCT1)||'('||T1.RELEASE_CAR_NO||')' AS NAME
,COALESCE(T1.RELEASE_CAR_NO , '') AS PSHELLNO
,T.WARRANTY1 AS GOODSGUARANTEE
,T1.RELEASE_DATE AS INOUTDATE
FROM CONTRACT_MGMT AS T,RELEASE_MGMT AS T1
WHERE T.OBJID = T1.PARENT_OBJID::NUMERIC
AND T.CUSTOMER_OBJID = #{CUSTCD}
AND SUBSTR(CONTRACT_DATE,1,4) =#{YEAR}
UNION ALL
SELECT
T.PRODUCT2 AS CODE
,(SELECT PRODUCT_CODE FROM PRODUCT_MGMT AS O WHERE O.OBJID::VARCHAR = T.PRODUCT2)||'('||T1.RELEASE_CAR_NO||')' AS NAME
,COALESCE(T1.RELEASE_CAR_NO , '') AS PSHELLNO
,T.WARRANTY2 AS GOODSGUARANTEE
,T1.RELEASE_DATE AS INOUTDATE
FROM CONTRACT_MGMT AS T,RELEASE_MGMT AS T1
WHERE T.OBJID = T1.PARENT_OBJID::NUMERIC
AND T.CUSTOMER_OBJID = #{CUSTCD}
AND SUBSTR(CONTRACT_DATE,1,4) =#{YEAR}
-->
) AS T
WHERE T.CODE !=''
<!-- SELECT T2.GOODSCD AS CODE
,(SELECT O.GOODSNM FROM swsb110a_tbl AS O WHERE O.goodscd = T2.goodscd)||'('||T1.PSHELLNO||')' AS NAME
,T1.INOUTNO AS ID
,COALESCE(T1.PSHELLNO , '') AS PSHELLNO
,T2.goodsguarantee
,T1.inoutdate
FROM SWSF010A_TBL AS T1, SWSC110A_TBL AS T2
WHERE DELIVERYTYPE = '11' /* 입고구분 */
AND T1.GOODSCD = T2.GOODSCD
AND T2.CUSTCD = #{CUSTCD}
AND SUBSTRING(T2.FINISHDATE,1,4) = #{YEAR} -->
</select>
<select id= "getmaintenanceselect" parameterType= "map" resultType= "map" >
SELECT CONCAT(areaA, areaB, areaC, areaD) AS code
, areaName AS name
FROM SWJA050A_TBL A
ORDER BY areaName asc
</select>
<select id= "getCustomerInfo" parameterType= "map" resultType= "map" >
SELECT
CODE_NAME(AREA_CD) AS AREA_CD
,SUPPLY_NAME
,CODE_NAME(SUPPLY_CODE) AS SUPPLY_CODE
,CHARGE_USER_NAME
,REG_ID
,BUS_REG_NO
,REG_NO
,SUPPLY_BUSNAME
,SUPPLY_STOCKNAME
,SUPPLY_ADDRESS
,SUPPLY_TEL_NO
,EMAIL
,OFFICE_NO
,SUPPLY_FAX_NO
FROM SUPPLY_MNG
WHERE OBJID= #{OBJID}::NUMERIC
</select>
<select id= "getoptionList" parameterType= "map" resultType= "map" >
SELECT OBJID::VARCHAR AS CODE
,OPTION_NAME AS NAME
FROM OPTION_MNG
WHERE UPPER(STATUS)= 'ACTIVE'
</select>
<select id= "getContractList" parameterType= "map" resultType= "map" >
SELECT OBJID::VARCHAR AS CODE
,CONTRACT_NO ||'/'|| PRODUCT_CODE AS NAME
FROM CONTRACT_MGMT
</select>
<select id= "getContractOptionList" parameterType= "map" resultType= "map" >
SELECT option_objid::VARCHAR AS CODE
FROM CONTRACT_MGMT_OPTION
WHERE CONTRACT_OBJID= #{objId}::NUMERIC
</select>
<select id= "getContractcodeList" parameterType= "map" resultType= "map" >
SELECT
CODE_ID AS CODE
,CODE_NAME AS NAME
FROM COMM_CODE
WHERE PARENT_CODE_ID = #{OBJID}
ORDER BY NAME ASC
</select>
<select id= "getContractProductList" parameterType= "map" resultType= "map" >
SELECT
OBJID::VARCHAR AS CODE
,PRODUCT_NAME AS NAME
FROM PRODUCT_MGMT
WHERE PRODUCT_TYPE = #{OBJID}
ORDER BY NAME ASC
</select>
<select id= "getOptionHighselect" parameterType= "map" resultType= "map" >
SELECT
OBJID::varchar AS CODE
,OPTION_NAME AS NAME
,OPTION_NO AS CODE_ID
,'' AS ID
,'' AS EXT_VAL
FROM OPTION_MNG
WHERE CATEGORY='high'
</select>
<select id= "getOptionChildList" parameterType= "map" resultType= "map" >
SELECT
OBJID::varchar AS CODE
,OPTION_NAME AS NAME
,OPTION_NO AS CODE_ID
,'' AS ID
,'' AS EXT_VAL
FROM OPTION_MNG
WHERE PARENT_OBJID = #{OBJID}
AND CATEGORY=#{CATEGORY}
</select>
<select id= "getOptionLastPrice" parameterType= "map" resultType= "map" >
SELECT
OBJID::varchar
,PRICE::VARCHAR
,REG_DATE
FROM OPTION_PRICE_HISTORY
WHERE OPTION_OBJID::NUMERIC = #{OBJID}::NUMERIC
ORDER BY REG_DATE DESC
LIMIT 1
</select>
<select id= "getOptionGridCodeList" resultType= "map" parameterType= "map" >
SELECT
OBJID AS CODE_ID
,OPTION_NAME AS CODE_NAME
FROM OPTION_MNG T
WHERE 1=1
<if test= "parentCodeId !=null and parentCodeId != '' " >
AND CATEGORY = #{parentCodeId}
</if>
</select>
<select id= "getOptionMidList" parameterType= "map" resultType= "map" >
SELECT
OBJID::varchar AS CODE
,OPTION_NAME AS NAME
,OPTION_NO AS CODE_ID
,'' AS ID
,'' AS EXT_VAL
FROM OPTION_MNG
WHERE PARENT_OBJID = #{code}
AND CATEGORY='mid'
</select>
<select id= "getOptionLowList" parameterType= "map" resultType= "map" >
SELECT
OBJID::varchar AS CODE
,OPTION_NAME AS NAME
,OPTION_NO AS CODE_ID
,'' AS ID
,'' AS EXT_VAL
FROM OPTION_MNG
WHERE PARENT_OBJID = #{code}
AND CATEGORY='low'
</select>
<select id= "getAsContractYearList" parameterType= "map" resultType= "map" >
SELECT DISTINCT
SUBSTR(CONTRACT_DATE,1,4) AS YY_DATE
FROM CONTRACT_MGMT AS T,RELEASE_MGMT AS T1
WHERE T.OBJID = T1.PARENT_OBJID::NUMERIC
AND T.CUSTOMER_OBJID = #{CUSTCD}
</select>
<select id= "getPartCodeList" parameterType= "map" resultType= "map" >
SELECT
OBJID::varchar AS CODE
,PART_NO AS NAME
,PART_NAME AS CODE_ID
,'' AS ID
,'' AS EXT_VAL
FROM PART_MNG
WHERE status='release'
</select>
<select id= "getPartInfo" parameterType= "map" resultType= "map" >
SELECT
PART_NO
,PART_NAME
,(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = UNIT) AS UNIT
,SPEC
,MATERIAL
,WEIGHT
,THICKNESS
,WIDTH
,HEIGHT
,OUT_DIAMETER
,IN_DIAMETER
,LENGTH
FROM PART_MNG
WHERE OBJID= #{OBJID}::NUMERIC
</select>
<select id= "getSpecNameList" resultType= "map" parameterType= "map" >
SELECT
SPEC_NAME AS CODE_ID,
SPEC_NAME AS CODE_NAME
FROM
PART_BOM_REPORT
WHERE 1=1
AND PRODUCT_MGMT_OBJID::VARCHAR = #{codeId}::VARCHAR
</select>
2025-11-17 17:29:04 +09:00
<select id= "getRevNoselect" parameterType= "map" resultType= "map" >
SELECT
T.OBJID::varchar AS CODE
2025-12-02 18:09:47 +09:00
,COALESCE(T.REVISION, '1.0') AS NAME
2025-11-17 17:29:04 +09:00
,T1.PRODUCT_CODE AS CODE_CD
,'' AS STATUS
,T.spec_name AS ID
,'' AS EXT_VAL
FROM PART_BOM_REPORT T,PRODUCT_MGMT T1
WHERE T.PRODUCT_MGMT_OBJID = T1.OBJID
AND T1.OBJID = #{code}::numeric
2025-12-02 18:09:47 +09:00
ORDER BY COALESCE(T.REVISION, '1.0')
2025-08-29 15:46:08 +09:00
</select>
<select id= "getProductNoselect" parameterType= "map" resultType= "map" >
SELECT
T1.OBJID::varchar AS CODE
,T1.PRODUCT_CODE AS NAME
,T1.PRODUCT_CODE AS CODE_CD
,'' AS STATUS
,'' AS ID
,'' AS EXT_VAL
FROM PRODUCT_MGMT T1
</select>
<select id= "getAdminSupCdList" resultType= "map" parameterType= "map" >
select * from(
SELECT
OBJID AS CODE_ID
,SUPPLY_CODE
,SUPPLY_NAME AS CODE_NAME
,REPLACE(REPLACE(SUPPLY_NAME, '(주)', ''),' ','') AS ORDER_SUPPLY_NAME
,REG_NO
,SUPPLY_ADDRESS
,SUPPLY_BUSNAME
,SUPPLY_STOCKNAME
,SUPPLY_TEL_NO
,SUPPLY_FAX_NO
,CHARGE_USER_NAME
,PAYMENT_METHOD
,REG_ID
,REG_DATE
,STATUS
FROM ADMIN_SUPPLY_MNG T
) S
WHERE 1=1
<if test= "codeId != null and !''.equals(codeId)" >
AND SUPPLY_CODE = #{codeId}
</if>
ORDER BY S.ORDER_SUPPLY_NAME
</select>
<select id= "getAdminSupplyCodeList" resultType= "map" parameterType= "map" >
SELECT
T.OBJID AS CODE
,T.SUPPLY_CODE
,T.SUPPLY_NAME AS CODE_NAME
,T.REG_NO
,T.SUPPLY_ADDRESS
,T.SUPPLY_BUSNAME
,T.SUPPLY_STOCKNAME
,T.SUPPLY_TEL_NO
,T.SUPPLY_FAX_NO
,T.CHARGE_USER_NAME
,T.PAYMENT_METHOD
,T.REG_ID
,T.REG_DATE
,T.STATUS
,SCM.CHARGER_NAME
,SCM.PHONE
,SCM.TEL
,SCM.FAX
,SCM.EMAIL
FROM
ADMIN_SUPPLY_MNG T
LEFT OUTER JOIN (
SELECT
*,
ROW_NUMBER() OVER( PARTITION BY CHARGER_NAME ORDER BY REGDATE ) AS ROW_NUM
FROM SUPPLY_CHARGER_MNG
WHERE 1=1
<if test= "CHARGER_TYPE != null and !''.equals(CHARGER_TYPE)" >
AND CHARGER_TYPE = #{CHARGER_TYPE}
</if>
) SCM
ON T.OBJID::VARCHAR = SCM.SUPPLY_OBJID::VARCHAR
AND ROW_NUM = 1
WHERE 1=1
AND T.SUPPLY_CODE != '0000269'
<if test= "SUPPLY_OBJID != null and !''.equals(SUPPLY_OBJID)" >
AND T.OBJID::VARCHAR = #{SUPPLY_OBJID}::VARCHAR
</if>
ORDER BY T.SUPPLY_NAME
</select>
<select id= "getAjaxProductMgmtList" parameterType= "map" resultType= "map" >
SELECT
OBJID,
OBJID AS CODE,
PRODUCT_CATEGORY,
PRODUCT_TYPE,
PRODUCT_GRADE,
PRODUCT_TON,
PRODUCT_BOOM,
PRODUCT_VEHICLE,
PRODUCT_CODE,
PRODUCT_CODE AS CODE_NAME,
PRODUCT_CODE AS NAME,
PRODUCTION_FLAG,
REGDATE,
WRITER,
CONTENTS
FROM
PRODUCT_MGMT
WHERE 1=1
<if test= "PRODUCT_CATEGORY != null and !''.equals(PRODUCT_CATEGORY)" >
AND PRODUCT_CATEGORY = #{PRODUCT_CATEGORY}
</if>
<if test= "PRODUCT_TYPE != null and !''.equals(PRODUCT_TYPE)" >
AND PRODUCT_TYPE = #{PRODUCT_TYPE}
</if>
</select>
<!-- //라인설치장소 조회(콤보박스용) -->
<select id= "getCodeDataList" parameterType= "map" resultType= "map" >
SELECT
*
FROM COMM_CODE
WHERE 1=1
<if test= "code_name != null and !''.equals(code_name)" >
AND CODE_NAME = #{code_name}
</if>
<if test= "parent_code_id != null and !''.equals(parent_code_id)" >
AND PARENT_CODE_ID = #{parent_code_id}
</if>
</select>
<select id= "getAddress2List" parameterType= "map" resultType= "map" >
SELECT CODE_ID AS CODE,
CODE_NAME AS NAME,
CODE_CD,
STATUS,
ID,
EXT_VAL
FROM COMM_CODE T
WHERE PARENT_CODE_ID = #{CODE}
</select>
<select id= "getproductcode" parameterType= "map" resultType= "map" >
SELECT
PRODUCT_CODE AS CODE
FROM PRODUCT_MGMT
WHERE OBJID::numeric = #{OBJID}::numeric
</select>
2025-12-18 09:25:23 +09:00
<!-- 공급업체 목록 조회 (ADMIN_SUPPLY_MNG 테이블) -->
<select id= "getmatersupplyselect" parameterType= "map" resultType= "map" >
SELECT
OBJID::VARCHAR AS CODE
,SUPPLY_NAME AS NAME
,OBJID::VARCHAR AS CODE_ID
,SUPPLY_NAME AS CODE_NAME
,SUPPLY_CODE AS CODE_CD
,REG_NO
,CHARGE_USER_NAME
,SUPPLY_TEL_NO
,SUPPLY_FAX_NO
,PAYMENT_METHOD
,STATUS AS STATUS
,'' AS ID
,'' AS EXT_VAL
FROM ADMIN_SUPPLY_MNG
ORDER BY SUPPLY_NAME
</select>
2025-12-19 11:19:46 +09:00
<!-- 공급업체 + 일반거래처 통합 목록 조회 (발주서 검색용) -->
<select id= "getAllSupplySelect" parameterType= "map" resultType= "map" >
SELECT
OBJID::VARCHAR AS CODE
,SUPPLY_NAME AS NAME
,OBJID::VARCHAR AS CODE_ID
,SUPPLY_NAME AS CODE_NAME
FROM ADMIN_SUPPLY_MNG
UNION ALL
SELECT
'C_' || OBJID::VARCHAR AS CODE
,CLIENT_NM AS NAME
,'C_' || OBJID::VARCHAR AS CODE_ID
,CLIENT_NM AS CODE_NAME
FROM CLIENT_MNG
ORDER BY NAME
</select>
2025-12-18 09:25:23 +09:00
<!-- 일반거래처 목록 조회 (CLIENT_MNG 테이블) - 발주서용 -->
<select id= "getClientMngSupplySelect" parameterType= "map" resultType= "map" >
SELECT
OBJID::VARCHAR AS CODE
,CLIENT_NM AS NAME
,OBJID::VARCHAR AS CODE_ID
,CLIENT_NM AS CODE_NAME
,CLIENT_CD AS CODE_CD
,BUS_REG_NO AS REG_NO
,CEO_NM AS CHARGE_USER_NAME
,TEL_NO AS SUPPLY_TEL_NO
,FAX_NO AS SUPPLY_FAX_NO
,EMAIL AS SUPPLY_EMAIL
,PAYMENT_TERM AS PAYMENT_METHOD
,USE_YN AS STATUS
,'' AS ID
,'' AS EXT_VAL
FROM CLIENT_MNG
WHERE 1=1
--AND USE_YN = 'Y'
ORDER BY CLIENT_NM
</select>
2025-08-29 15:46:08 +09:00
<select id= "getsupCode" parameterType= "map" resultType= "map" >
SELECT OBJID::VARCHAR SUPPLY_CODE
FROM ADMIN_SUPPLY_MNG T
WHERE SUPPLY_NAME = #{SUPNAME}
</select>
<select id= "getProjectNameList" parameterType= "map" resultType= "map" >
SELECT
OBJID::VARCHAR AS CODE
<!-- ,PROJECT_NO||'('||PROJECT_NAME||')' AS NAME -->
,PROJECT_NO AS NAME
FROM PROJECT_MGMT
<if test= "customer_objid != null and !''.equals(customer_objid)" >
WHERE CUSTOMER_OBJID = #{customer_objid}
</if>
<if test= "contract_objid != null and !''.equals(contract_objid)" >
WHERE CONTRACT_OBJID = (SELECT CONTRACT_OBJID FROM PROJECT_MGMT WHERE OBJID = #{contract_objid})
</if>
ORDER BY SUBSTRING(PROJECT_NO,POSITION('-' IN PROJECT_NO)+1) DESC
<!--
ORDER BY PROJECT_NO
-->
</select>
2025-12-18 09:25:23 +09:00
<!-- 프로젝트 목록 조회 (제품구분 포함) -->
<select id= "getProjectNameListWithProduct" parameterType= "map" resultType= "map" >
SELECT
OBJID::VARCHAR AS CODE
,PROJECT_NO AS NAME
,CODE_NAME(PRODUCT) AS PRODUCT_NAME
FROM PROJECT_MGMT
ORDER BY SUBSTRING(PROJECT_NO,POSITION('-' IN PROJECT_NO)+1) DESC
</select>
2025-08-29 15:46:08 +09:00
<select id= "getCodeselectAllLevel" parameterType= "map" resultType= "map" >
WITH RECURSIVE V_CODE AS (
SELECT CODE_ID
, PARENT_CODE_ID
, CODE_ID AS ROOT
, 1 AS LEV
, ARRAY [CODE_ID::TEXT] AS PATH
, FALSE AS CYCLE
FROM COMM_CODE
WHERE 1=1
AND PARENT_CODE_ID = #{parent_code_id}
UNION ALL
SELECT A.CODE_ID
, A.PARENT_CODE_ID
, V.ROOT
, V.LEV + 1 AS LEV
, V.PATH||A.CODE_ID::TEXT AS PATH
, A.PARENT_CODE_ID = ANY(V.PATH) AS CYCLE
FROM COMM_CODE A, V_CODE V
WHERE 1=1
AND V.CODE_ID = A.PARENT_CODE_ID
<if test= "status !=null and status != '' " >
AND A.STATUS = #{status}
</if>
)
SELECT *
FROM (
SELECT T1.ROOT, T1.PARENT_CODE_ID, T1.CODE_ID, REPLACE(REPLACE(T1.PATH::VARCHAR,'{',''),'}','') AS PATH, T1.LEV, T1.CYCLE
,T2.CODE_NAME, T2.ID, T2.CODE_CD, T2.EXT_VAL
FROM V_CODE AS T1
LEFT OUTER JOIN COMM_CODE AS T2
ON T1.CODE_ID = T2.CODE_ID
) AS TT
WHERE 1=1
<if test= "path !=null and path != '' " >
AND PATH LIKE '%#{path}%'
</if>
<if test= "id !=null and id != '' " >
AND ID = #{id}
</if>
<if test= "codeCd !=null and codeCd != '' " >
AND CODE_CD = #{codeCd}
</if>
<if test= "extVal !=null and extVal != '' " >
AND EXT_VAL = #{extVal}
</if>
</select>
<!-- COMM_CODE 버젼 -->
<select id= "getUnitCodeList_old" parameterType= "map" resultType= "map" >
SELECT
CODE_ID AS CODE,
CODE_NAME AS NAME
FROM COMM_CODE
<choose >
<when test= "customer_objid !=null and customer_objid != '' " >
WHERE PARENT_CODE_ID =
(SELECT PRODUCT FROM PROJECT_MGMT
WHERE OBJID=#{customer_objid})
</when>
<otherwise >
WHERE PARENT_CODE_ID in
(SELECT PRODUCT FROM PROJECT_MGMT)
</otherwise>
</choose>
</select>
<select id= "getUnitCodeList_old2" parameterType= "map" resultType= "map" >
SELECT
TS.OBJID AS CODE,
TASK_NAME AS NAME
FROM PMS_WBS_TASK_STANDARD TS
,PMS_WBS_TEMPLATE T
WHERE T.OBJID = TS.PARENT_OBJID
<if test= "unitCode !=null and unitCode != '' " >
AND TS.OBJID = #{unitCode}
</if>
<choose >
<when test= "project_objid !=null and project_objid != '' " >
<!--
AND (SELECT PROJECT_NO FROM PROJECT_MGMT WHERE OBJID=#{customer_objid}) LIKE T.TITLE||'%'
AND T.PRODUCT_OBJID =
-->
AND EXISTS
(SELECT PRODUCT FROM PROJECT_MGMT
WHERE OBJID = #{project_objid}
<if test= "customer_objid !=null and customer_objid != '' " >
CUSTOMER_OBJID=#{customer_objid}
</if>
AND PROJECT_NO LIKE T.TITLE||'%'
)
</when>
<otherwise >
AND T.PRODUCT_OBJID IN
(SELECT PRODUCT FROM PROJECT_MGMT)
</otherwise>
</choose>
ORDER BY TS.UNIT_NO ASC
</select>
<!-- 20240202 new 프로젝트의 유닛으로 변경(이전까지는 위 getUnitCodeList_old2 표준유닛 사용) -->
<select id= "getUnitCodeList" parameterType= "map" resultType= "map" >
SELECT
T.OBJID AS CODE,
<!--
,T.UNIT_NO || '-' || T.TASK_NAME AS NAME
-->
CASE WHEN NVL(UNIT_NO, '') = '' THEN TASK_NAME
WHEN LENGTH(UNIT_NO) > 0 AND UNIT_NO = SUBSTR(TASK_NAME, 0, LENGTH(UNIT_NO)+1) THEN TASK_NAME
ELSE T.UNIT_NO || '-' || T.TASK_NAME
END AS NAME
,T.TASK_NAME
<!-- TASK_NAME AS NAME -->
FROM PMS_WBS_TASK T
WHERE 1=1
<if test= "unitCode !=null and unitCode != '' " >
AND T.OBJID = #{unitCode}
</if>
<if test= "unitName !=null and unitName != '' " >
AND ( TRIM(UPPER(T.TASK_NAME)) = TRIM(UPPER(#{unitName}))
OR TRIM(UPPER(T.UNIT_NO || '-' || T.TASK_NAME)) = TRIM(UPPER(#{unitName})) )
</if>
<choose >
<when test= "project_objid !=null and project_objid != '' " >
<!--
AND (SELECT PROJECT_NO FROM PROJECT_MGMT WHERE OBJID=#{customer_objid}) LIKE T.TITLE||'%'
AND T.PRODUCT_OBJID =
-->
AND CONTRACT_OBJID = #{project_objid}
</when>
<otherwise >
AND T.CONTRACT_OBJID IN
(SELECT OBJID FROM PROJECT_MGMT)
</otherwise>
</choose>
ORDER BY T.UNIT_NO ASC
</select>
<select id= "getProjectListByUnit" parameterType= "map" resultType= "map" >
SELECT *
FROM PROJECT_MGMT P
WHERE 1=1
AND EXISTS
(SELECT
TS.OBJID AS CODE,
TASK_NAME AS NAME
FROM PMS_WBS_TASK_STANDARD TS
,PMS_WBS_TEMPLATE T
WHERE T.OBJID = TS.PARENT_OBJID
AND TS.OBJID = #{unitCode}
AND P.PROJECT_NO LIKE T.TITLE||'%'
)
ORDER BY P.PROJECT_NO
</select>
<select id= "getProjectUnitCodeList" parameterType= "map" resultType= "map" >
SELECT
T.OBJID AS CODE,
TASK_NAME AS NAME
FROM PMS_WBS_TASK T
WHERE 1=1
<if test= "unitCode !=null and unitCode != '' " >
AND T.OBJID = #{unitCode}
</if>
<if test= "project_objid !=null and project_objid != '' " >
AND CONTRACT_OBJID=#{project_objid}
</if>
ORDER BY T.UNIT_NO ASC
</select>
<select id= "getBomCodeList" resultType= "map" parameterType= "map" >
<!-- COMM_CODE 버젼
SELECT
CODE_ID AS CODE,
CODE_NAME AS NAME,
'' AS ID
FROM COMM_CODE T
-->
<!-- 유닛 표준 버전
SELECT
TS.OBJID AS CODE,
TASK_NAME AS NAME
FROM PMS_WBS_TASK_STANDARD TS
,PMS_WBS_TEMPLATE T
WHERE T.OBJID = TS.PARENT_OBJID
AND TS.OBJID = #{code}
240207 아래 프로젝트의 유닛으로 변경
-->
SELECT
T.OBJID AS CODE,
T.TASK_NAME AS NAME
FROM PMS_WBS_TASK T
WHERE T.OBJID = #{code}
</select>
<select id= "getPurchaseOrderCdList" resultType= "map" parameterType= "map" >
SELECT
POM.OBJID AS CODE_ID
,POM.PURCHASE_ORDER_NO AS CODE_NAME
FROM
PURCHASE_ORDER_MASTER POM
LEFT OUTER JOIN PURCHASE_ORDER_PART POP
ON POM.OBJID = POP.PURCHASE_ORDER_MASTER_OBJID
WHERE 1=1
<if test= "part_objid != null and part_objid != '' " >
AND POP.PART_OBJID = #{part_objid}
</if>
<if test= "partnerObjid != null and partnerObjid != '' " >
AND POM.PARTNER_OBJID = #{partnerObjid}
</if>
GROUP BY POM.OBJID, POM.PURCHASE_ORDER_NO
ORDER BY SPLIT_PART( PURCHASE_ORDER_NO, '-', 3)::NUMERIC DESC
<!--
ORDER BY POM.PURCHASE_ORDER_NO DESC
-->
</select>
<select id= "getContractNoList" parameterType= "map" resultType= "map" >
SELECT
OBJID::VARCHAR AS CODE
,CONTRACT_NO || '(' || CUSTOMER_PROJECT_NAME || ')' AS NAME
FROM CONTRACT_MGMT
WHERE 1=1
<if test= "result_cd != null and result_cd != '' " >
AND result_cd = #{result_cd}
</if>
ORDER BY CONTRACT_NO
</select>
<select id= "getCusProjectNoList" parameterType= "map" resultType= "map" >
SELECT
OBJID::VARCHAR AS CODE
,PROJECT_NO AS NAME
FROM PROJECT_MGMT
ORDER BY PROJECT_NO
</select>
<select id= "getProgressProjectNoList" parameterType= "map" resultType= "map" >
SELECT
P.OBJID::VARCHAR AS CODE_ID
,P.PROJECT_NO AS CODE_NAME
,(SELECT SUPPLY_NAME FROM SUPPLY_MNG SM WHERE SM.OBJID::VARCHAR = P.CUSTOMER_OBJID) || ' ' || P.PROJECT_NO || ' ' || C.PROJECT_NAME AS PROJ_INFO
,P.REQ_DEL_DATE
FROM PROJECT_MGMT P
INNER JOIN CONTRACT_MGMT C
ON C.OBJID = P.CONTRACT_OBJID
LEFT OUTER JOIN (
SELECT
T.CONTRACT_OBJID,
CASE
WHEN COUNT(CASE WHEN PARENT_OBJID IS NOT NULL AND PARENT_OBJID != '' THEN 1 END) = 0 THEN 0
ELSE ROUND((
COUNT(CASE WHEN SETUP_ACT_END != '' AND SETUP_ACT_END IS NOT NULL AND PARENT_OBJID IS NOT NULL AND PARENT_OBJID != '' THEN 1 END)::FLOAT
/
COUNT(CASE WHEN PARENT_OBJID IS NOT NULL AND PARENT_OBJID != '' THEN 1 END)
* 100
)::numeric, 1)
END AS SETUP_RATETOTAL
FROM
SETUP_WBS_TASK T
GROUP BY
T.CONTRACT_OBJID
) ST ON ST.CONTRACT_OBJID = P.OBJID
LEFT OUTER JOIN (
SELECT
CONTRACT_OBJID,
COUNT(CASE WHEN DESIGN_act_start IS NOT NULL AND DESIGN_act_start!='' THEN 1 END) AS DESIGN_START_COUNT
FROM
PMS_WBS_TASK
GROUP BY
CONTRACT_OBJID
) WT ON WT.CONTRACT_OBJID = P.OBJID
WHERE C.CONTRACT_RESULT = '0000964'
<if test= "SEARCH_PROJECT_YEAR != null and SEARCH_PROJECT_YEAR !=''" >
<!--
AND TO_CHAR(TO_DATE(C.CONTRACT_DATE, 'YYYY'), 'YYYY') = #{SEARCH_PROJECT_YEAR}
-->
AND #{SEARCH_PROJECT_YEAR} BETWEEN
(SELECT <!-- COALESCE( -->
LEAST(
MIN(TO_CHAR(TO_DATE(NULLIF(PURCHASE_PLAN_START, ''), 'YYYY'), 'YYYY')),
MIN(TO_CHAR(TO_DATE(NULLIF(PRODUCE_PLAN_START , ''), 'YYYY'), 'YYYY')),
MIN(TO_CHAR(TO_DATE(NULLIF(DESIGN_PLAN_START , ''), 'YYYY'), 'YYYY')),
MIN(TO_CHAR(TO_DATE(NULLIF(SETUP_PLAN_START , ''), 'YYYY'), 'YYYY'))
)<!-- , TO_CHAR(TO_DATE(C.CONTRACT_DATE, 'YYYY'), 'YYYY')) -->
FROM PMS_WBS_TASK O
WHERE O.CONTRACT_OBJID=P.OBJID)
AND (SELECT <!-- COALESCE( -->
GREATEST(
MAX(TO_CHAR(TO_DATE(NULLIF(PURCHASE_PLAN_END, ''), 'YYYY'), 'YYYY')),
MAX(TO_CHAR(TO_DATE(NULLIF(PRODUCE_PLAN_END , ''), 'YYYY'), 'YYYY')),
MAX(TO_CHAR(TO_DATE(NULLIF(DESIGN_PLAN_END , ''), 'YYYY'), 'YYYY')),
MAX(TO_CHAR(TO_DATE(NULLIF(SETUP_PLAN_END , ''), 'YYYY'), 'YYYY'))
)<!-- , TO_CHAR(TO_DATE(T.DUE_DATE, 'YYYY'), 'YYYY')) -->
FROM PMS_WBS_TASK O
WHERE O.CONTRACT_OBJID=P.OBJID)
</if>
<!--
AND SETUP_RATETOTAL != '100'
AND WT.DESIGN_START_COUNT > 0
-->
ORDER BY SUBSTRING(P.PROJECT_NO,POSITION('-' IN P.PROJECT_NO)+1) DESC
</select>
<!-- //유저 ID 조회 -->
<select id= "getUserInfo" resultType= "map" parameterType= "map" >
SELECT
SABUN
,USER_ID
,USER_NAME
FROM USER_INFO T
WHERE 1=1
AND USER_NAME = #{USER_NAME}
</select>
<select id= "getPartBomProjectNameList" parameterType= "map" resultType= "map" >
SELECT DISTINCT
CONTRACT_OBJID::VARCHAR AS CODE
,(SELECT PROJECT_NO FROM PROJECT_MGMT AS O WHERE O.OBJID = PMR.CONTRACT_OBJID)||'('||(SELECT PROJECT_NAME FROM PROJECT_MGMT AS O WHERE O.OBJID = PMR.CONTRACT_OBJID)||')' AS NAME
FROM PART_BOM_REPORT PMR
</select>
<select id= "getPartBomProjectNameList2" parameterType= "map" resultType= "map" >
SELECT DISTINCT
CONTRACT_OBJID::VARCHAR AS CODE
,(SELECT PROJECT_NO FROM PROJECT_MGMT AS O WHERE O.OBJID = PMR.CONTRACT_OBJID) AS NAME
FROM PART_BOM_REPORT PMR
</select>
<select id= "getBomUnitCodeList" parameterType= "map" resultType= "map" >
SELECT
UNIT_CODE AS CODE
,( SELECT
CASE WHEN NVL(UNIT_NO, '') = '' THEN TASK_NAME
WHEN LENGTH(UNIT_NO) > 0 AND UNIT_NO = SUBSTR(TASK_NAME, 0, LENGTH(UNIT_NO)+1) THEN TASK_NAME
ELSE T.UNIT_NO || '-' || T.TASK_NAME END AS NAME
FROM PMS_WBS_TASK T WHERE T.OBJID = PMR.UNIT_CODE) AS NAME
<!-- ,(SELECT CODE_NAME FROM COMM_CODE AS O WHERE O.CODE_ID = PMR.UNIT_CODE) AS NAME -->
FROM PART_BOM_REPORT PMR
WHERE CONTRACT_OBJID = #{OBJID}
</select>
<select id= "getBomPartList" parameterType= "map" resultType= "map" >
SELECT
BPQ.PART_NO::VARCHAR AS CODE
,(SELECT PART_NO FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = BPQ.PART_NO) AS NAME
,(SELECT PART_NAME FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = BPQ.PART_NO) AS PART_NAME
,(SELECT SPEC FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = BPQ.PART_NO) AS SPEC
,(SELECT MAKER FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = BPQ.PART_NO) AS MAKER
,(SELECT MATERIAL FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = BPQ.PART_NO) AS MATERIAL
,(SELECT code_name(PART_TYPE) FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = BPQ.PART_NO) AS PART_TYPE
FROM PART_BOM_REPORT PMR , BOM_PART_QTY BPQ
WHERE PMR.OBJID = BPQ.BOM_REPORT_OBJID::VARCHAR
AND PMR.CONTRACT_OBJID=#{OBJID}
AND PMR.UNIT_CODE = #{UNIT_CODE}
</select>
<select id= "getBomPartLastList" parameterType= "map" resultType= "map" >
SELECT
P.OBJID AS CODE
, P.PART_NO AS NAME
, P.OBJID
, P.PART_NO
, P.PART_NAME
, P.SPEC
, P.MAKER
FROM PART_MNG P
WHERE 1=1
AND P.IS_LAST = '1'
AND P.OBJID IN (
SELECT LAST_PART_OBJID
<!--
(SELECT PM1.OBJID
FROM PART_MNG PM1
, PART_MNG PM2
WHERE PM1.IS_LAST = '1'
AND PM2.OBJID = BPQ.PART_NO
AND PM1.PART_NO = PM2.PART_NO)
-->
FROM PART_BOM_REPORT PMR
, BOM_PART_QTY BPQ
WHERE PMR.OBJID = BPQ.BOM_REPORT_OBJID::VARCHAR
AND PMR.CONTRACT_OBJID = #{OBJID}
AND PMR.UNIT_CODE = #{UNIT_CODE}
AND BPQ.STATUS IN ('editing', 'deleting', 'deploy', 'beforeEdit')
)
ORDER BY PART_NO
<!--
SELECT
BPQ.PART_NO::VARCHAR AS CODE
,P.PART_NO NAME
,P.PART_NAME
,P.SPEC
,P.MAKER
FROM PART_BOM_REPORT PMR
,BOM_PART_QTY BPQ
,PART_MNG P
WHERE PMR.OBJID = BPQ.BOM_REPORT_OBJID::VARCHAR
AND PMR.CONTRACT_OBJID=#{OBJID}
AND PMR.UNIT_CODE = #{UNIT_CODE}
AND BPQ.STATUS IN ('editing','deleting', 'deploy')
AND P.IS_LAST = '1'
AND P.OBJID = ( SELECT PM1.OBJID
FROM PART_MNG PM1
,PART_MNG PM2
WHERE PM1.IS_LAST = '1'
AND PM2.OBJID = BPQ.PART_NO
AND PM1.PART_NO = PM2.PART_NO
)
-->
</select>
<select id= "getUnitTitleCodeList" parameterType= "map" resultType= "map" >
SELECT
TITLE AS CODE
,TITLE AS NAME
FROM PMS_WBS_TEMPLATE
WHERE PRODUCT_OBJID = #{OBJID}
ORDER BY TITLE
</select>
<select id= "getworkmailList" parameterType= "map" resultType= "map" >
SELECT
(SELECT EMAIL FROM USER_INFO AS O WHERE O.USER_ID = T.USER_ID ) AS EMAIL
FROM WORK_MAIL_LIST AS T
WHERE T.MAILTYPE = #{MAILTYPE}
</select>
<select id= "getMechanicalTypeList" parameterType= "map" resultType= "map" >
SELECT
OBJID::VARCHAR AS CODE,
TITLE as NAME,
PRODUCT_OBJID
FROM
PMS_WBS_TEMPLATE
WHERE 1=1
</select>
<select id= "getStdCodeNameList" parameterType= "map" resultType= "map" >
SELECT
OBJID::VARCHAR AS CODE
,CODE_NAME AS NAME
,CODE_ID
FROM PROCUREMENT_STANDARD
<if test= "search_category != null and !''.equals(search_category)" >
WHERE CATEGORY = #{search_category}
</if>
ORDER BY CODE_NAME
</select>
<select id= "getStdCodeIDList" parameterType= "map" resultType= "map" >
SELECT
OBJID::VARCHAR AS CODE
,CODE_ID AS NAME
FROM PROCUREMENT_STANDARD
<if test= "search_category != null and !''.equals(search_category)" >
WHERE CATEGORY = #{search_category}
</if>
ORDER BY CODE_ID
</select>
2025-11-10 09:32:45 +09:00
<!-- 사용자 권한 체크 -->
<select id= "checkUserAuthority" parameterType= "map" resultType= "int" >
SELECT COUNT(*)
FROM AUTHORITY_SUB_USER
WHERE USER_ID = #{userId}
AND MASTER_OBJID::varchar = #{masterObjid}
</select>
2025-11-12 15:40:51 +09:00
2025-12-02 18:09:47 +09:00
<!-- 고객사 정보 조회 (공급업체 + 일반거래처 통합) -->
2025-11-12 15:40:51 +09:00
<select id= "getSupplyInfo" parameterType= "map" resultType= "map" >
2025-12-02 18:09:47 +09:00
<choose >
<!-- 일반거래처인 경우 (C_로 시작) -->
<when test= "objId != null and objId.startsWith('C_')" >
SELECT
C.OBJID,
C.CLIENT_CD AS SUPPLY_CODE,
C.CLIENT_NM AS SUPPLY_NAME,
C.BUS_REG_NO AS REG_NO,
C.ADDR1 AS SUPPLY_ADDRESS,
C.BUS_TYPE AS SUPPLY_BUSNAME,
C.BUS_ITEM AS SUPPLY_STOCKNAME,
C.TEL_NO AS SUPPLY_TEL_NO,
C.FAX_NO AS SUPPLY_FAX_NO,
C.CEO_NM AS CHARGE_USER_NAME,
C.PAYMENT_TERM AS PAYMENT_METHOD,
(SELECT CHARGER_NAME FROM SUPPLY_CHARGER_MNG WHERE SUPPLY_OBJID::VARCHAR = C.OBJID::VARCHAR ORDER BY REGDATE LIMIT 1 OFFSET 0) AS MANAGER1_NAME,
(SELECT EMAIL FROM SUPPLY_CHARGER_MNG WHERE SUPPLY_OBJID::VARCHAR = C.OBJID::VARCHAR ORDER BY REGDATE LIMIT 1 OFFSET 0) AS MANAGER1_EMAIL,
(SELECT CHARGER_NAME FROM SUPPLY_CHARGER_MNG WHERE SUPPLY_OBJID::VARCHAR = C.OBJID::VARCHAR ORDER BY REGDATE LIMIT 1 OFFSET 1) AS MANAGER2_NAME,
(SELECT EMAIL FROM SUPPLY_CHARGER_MNG WHERE SUPPLY_OBJID::VARCHAR = C.OBJID::VARCHAR ORDER BY REGDATE LIMIT 1 OFFSET 1) AS MANAGER2_EMAIL,
(SELECT CHARGER_NAME FROM SUPPLY_CHARGER_MNG WHERE SUPPLY_OBJID::VARCHAR = C.OBJID::VARCHAR ORDER BY REGDATE LIMIT 1 OFFSET 2) AS MANAGER3_NAME,
(SELECT EMAIL FROM SUPPLY_CHARGER_MNG WHERE SUPPLY_OBJID::VARCHAR = C.OBJID::VARCHAR ORDER BY REGDATE LIMIT 1 OFFSET 2) AS MANAGER3_EMAIL,
(SELECT CHARGER_NAME FROM SUPPLY_CHARGER_MNG WHERE SUPPLY_OBJID::VARCHAR = C.OBJID::VARCHAR ORDER BY REGDATE LIMIT 1 OFFSET 3) AS MANAGER4_NAME,
(SELECT EMAIL FROM SUPPLY_CHARGER_MNG WHERE SUPPLY_OBJID::VARCHAR = C.OBJID::VARCHAR ORDER BY REGDATE LIMIT 1 OFFSET 3) AS MANAGER4_EMAIL,
(SELECT CHARGER_NAME FROM SUPPLY_CHARGER_MNG WHERE SUPPLY_OBJID::VARCHAR = C.OBJID::VARCHAR ORDER BY REGDATE LIMIT 1 OFFSET 4) AS MANAGER5_NAME,
(SELECT EMAIL FROM SUPPLY_CHARGER_MNG WHERE SUPPLY_OBJID::VARCHAR = C.OBJID::VARCHAR ORDER BY REGDATE LIMIT 1 OFFSET 4) AS MANAGER5_EMAIL
FROM CLIENT_MNG C
WHERE C.OBJID::VARCHAR = REPLACE(#{objId}, 'C_', '')
</when>
<!-- 공급업체인 경우 -->
<otherwise >
SELECT
OBJID,
SUPPLY_CODE,
SUPPLY_NAME,
REG_NO,
SUPPLY_ADDRESS,
SUPPLY_BUSNAME,
SUPPLY_STOCKNAME,
SUPPLY_TEL_NO,
SUPPLY_FAX_NO,
CHARGE_USER_NAME,
PAYMENT_METHOD,
MANAGER1_NAME,
MANAGER1_EMAIL,
MANAGER2_NAME,
MANAGER2_EMAIL,
MANAGER3_NAME,
MANAGER3_EMAIL,
MANAGER4_NAME,
MANAGER4_EMAIL,
MANAGER5_NAME,
MANAGER5_EMAIL
FROM SUPPLY_MNG
WHERE OBJID = #{objId}::numeric
</otherwise>
</choose>
2025-11-12 15:40:51 +09:00
</select>
2025-12-18 09:25:23 +09:00
<!-- 프로젝트 OBJID로 MBOM 파트 목록 조회 -->
<select id= "getMbomPartListByProjectNo" parameterType= "map" resultType= "map" >
SELECT PM.OBJID AS CODE
, PM.PART_NO || ' - ' || PM.PART_NAME AS NAME
, PM.OBJID AS CODE_ID
, PM.PART_NO || ' - ' || PM.PART_NAME AS CODE_NAME
, PM.PART_NO
, PM.PART_NAME
FROM MBOM_DETAIL MD
INNER JOIN MBOM_HEADER MH ON MH.OBJID = MD.MBOM_HEADER_OBJID
INNER JOIN PROJECT_MGMT PJ ON PJ.OBJID = MH.PROJECT_OBJID
INNER JOIN PART_MNG PM ON PM.OBJID::VARCHAR = MD.PART_OBJID
WHERE PJ.OBJID = #{PROJECT_NO}
ORDER BY PM.PART_NO
</select>
2025-08-29 15:46:08 +09:00
</mapper>