805 lines
30 KiB
XML
805 lines
30 KiB
XML
<?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="quality">
|
|
<!-- //품질검사 중복 count 반환 -->
|
|
<select id="getDuplicateQualityTestCnt" parameterType="map" resultType="map">
|
|
SELECT COUNT(*) AS CNT
|
|
FROM PMS_QUALITY_TEST_INFO
|
|
WHERE 1=1
|
|
AND CAR_OBJID = #{carObjId}
|
|
AND PROD_OBJID = #{prodObjId}
|
|
AND TEST_TYPE_OBJID = #{testTypeObjId}
|
|
AND STEP1 = #{step1}
|
|
AND STEP2 = #{step2}
|
|
</select>
|
|
|
|
<!-- 품질검사 갑지등록 -->
|
|
<insert id="insertQualityTestInfo" parameterType="map">
|
|
MERGE INTO PMS_QUALITY_TEST_INFO USING DUAL ON (OBJID = #{objId})
|
|
WHEN MATCHED THEN
|
|
UPDATE SET
|
|
CAR_OBJID = #{carObjId}
|
|
, PROD_OBJID = #{prodObjId}
|
|
, TEST_TYPE_OBJID = #{testTypeObjId}
|
|
, STEP1 = #{step1}
|
|
, STEP2 = #{step2}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT (
|
|
OBJID
|
|
, CAR_OBJID
|
|
, PROD_OBJID
|
|
, TEST_TYPE_OBJID
|
|
, STEP1
|
|
, STEP2
|
|
, WRITER
|
|
, REGDATE
|
|
, STATUS
|
|
) VALUES (
|
|
#{objId}
|
|
, #{carObjId}
|
|
, #{prodObjId}
|
|
, #{testTypeObjId}
|
|
, #{step1}
|
|
, #{step2}
|
|
, #{writer}
|
|
, SYSDATE
|
|
, 'create'
|
|
)
|
|
</insert>
|
|
|
|
<!-- //품질결과 임시목록 -->
|
|
<select id="getQualityTestTempList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM(
|
|
SELECT A.*, ROW_NUMBER() OVER (ORDER BY REGDATE_ORG DESC) RNUM
|
|
FROM(
|
|
SELECT A.*
|
|
FROM(
|
|
SELECT A.OBJID
|
|
, (SELECT OEM_OBJID FROM CAR_MNG WHERE OBJID = A.CAR_OBJID) AS OEM_OBJID
|
|
, (SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = (SELECT OEM_OBJID FROM CAR_MNG WHERE OBJID = A.CAR_OBJID)) AS OEM_NAME
|
|
, A.CAR_OBJID
|
|
, (SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = A.CAR_OBJID) AS CAR_NAME
|
|
, (SELECT CAR_CODE FROM CAR_MNG WHERE OBJID = A.CAR_OBJID) AS CAR_CODE
|
|
, (SELECT MODEL_CODE FROM CAR_MNG WHERE OBJID = A.CAR_OBJID) AS MODEL_CODE
|
|
, (SELECT PRODUCT_GROUP_OBJID FROM PRODUCT_MNG WHERE OBJID = A.PROD_OBJID) AS PROD_GROUP_OBJID
|
|
, (SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = (SELECT PRODUCT_GROUP_OBJID FROM PRODUCT_MNG WHERE OBJID = A.PROD_OBJID)) AS PROD_GROUP_NAME
|
|
, A.PROD_OBJID
|
|
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = A.PROD_OBJID) AS PROD_NAME
|
|
, A.TEST_TYPE_OBJID
|
|
, (SELECT TEST_TYPE_NAME FROM TEST_TYPE_MNG WHERE OBJID = A.TEST_TYPE_OBJID) AS TEST_TYPE_NAME
|
|
, A.STEP1
|
|
, A.STEP2
|
|
, A.WRITER
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = A.WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = A.WRITER) AS WRITER_USER_NAME
|
|
, A.REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(A.REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, A.STATUS
|
|
FROM PMS_QUALITY_TEST_INFO A
|
|
WHERE 1=1
|
|
AND UPPER(STATUS) = 'CREATE'
|
|
)A WHERE 1=1
|
|
<if test="search_oem !=null and search_oem !=''">
|
|
AND OEM_OBJID = #{search_oem}
|
|
</if>
|
|
<if test="search_productGroup != null and search_productGroup !=''">
|
|
AND PROD_GROUP_OBJID = #{search_productGroup}
|
|
</if>
|
|
<if test="search_carType != null and search_carType != ''">
|
|
AND CAR_OBJID = #{search_carType}
|
|
</if>
|
|
<if test="search_productType != null and search_productType !=''">
|
|
AND PROD_OBJID = #{search_productType}
|
|
</if>
|
|
<if test="search_writer != null and !''.equals(search_writer)">
|
|
AND UPPER(WRITER_USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
<if test="search_status !=null and search_status !='' ">
|
|
AND STATUS = #{search_status}
|
|
</if>
|
|
<if test="search_testType !=null and search_testType !='' ">
|
|
AND TEST_TYPE_OBJID = #{search_testType}
|
|
</if>
|
|
<if test="step1 !=null and step1 !='' ">
|
|
AND STEP1 = #{step1}
|
|
</if>
|
|
<if test="step2 !=null and step2 !='' ">
|
|
AND STEP2 = #{step2}
|
|
</if>
|
|
)A WHERE 1=1
|
|
) WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END !=''">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_STRART!=''">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
</select>
|
|
|
|
<!-- //품질결과 임시목록 Count -->
|
|
<select id="getQualityTestTempListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
|
|
TOTAL_CNT
|
|
FROM (
|
|
SELECT COUNT(1) TOTAL_CNT
|
|
FROM(
|
|
SELECT A.*
|
|
FROM(
|
|
SELECT A.OBJID
|
|
, (SELECT OEM_OBJID FROM CAR_MNG WHERE OBJID = A.CAR_OBJID) AS OEM_OBJID
|
|
, (SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = (SELECT OEM_OBJID FROM CAR_MNG WHERE OBJID = A.CAR_OBJID)) AS OEM_NAME
|
|
, A.CAR_OBJID
|
|
, (SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = A.CAR_OBJID) AS CAR_NAME
|
|
, (SELECT CAR_CODE FROM CAR_MNG WHERE OBJID = A.CAR_OBJID) AS CAR_CODE
|
|
, (SELECT MODEL_CODE FROM CAR_MNG WHERE OBJID = A.CAR_OBJID) AS MODEL_CODE
|
|
, (SELECT PRODUCT_GROUP_OBJID FROM PRODUCT_MNG WHERE OBJID = A.PROD_OBJID) AS PROD_GROUP_OBJID
|
|
, (SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = (SELECT PRODUCT_GROUP_OBJID FROM PRODUCT_MNG WHERE OBJID = A.PROD_OBJID)) AS PROD_GROUP_NAME
|
|
, A.PROD_OBJID
|
|
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = A.PROD_OBJID) AS PROD_NAME
|
|
, A.TEST_TYPE_OBJID
|
|
, (SELECT TEST_TYPE_NAME FROM TEST_TYPE_MNG WHERE OBJID = A.TEST_TYPE_OBJID) AS TEST_TYPE_NAME
|
|
, A.STEP1
|
|
, A.STEP2
|
|
, A.WRITER
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = A.WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = A.WRITER) AS WRITER_USER_NAME
|
|
, A.REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(A.REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, A.STATUS
|
|
FROM PMS_QUALITY_TEST_INFO A
|
|
WHERE 1=1
|
|
AND UPPER(STATUS) = 'CREATE'
|
|
)A WHERE 1=1
|
|
<if test="search_oem !=null and search_oem !=''">
|
|
AND OEM_OBJID = #{search_oem}
|
|
</if>
|
|
<if test="search_productGroup != null and search_productGroup !=''">
|
|
AND PROD_GROUP_OBJID = #{search_productGroup}
|
|
</if>
|
|
<if test="search_carType != null and search_carType != ''">
|
|
AND CAR_OBJID = #{search_carType}
|
|
</if>
|
|
<if test="search_productType != null and search_productType !=''">
|
|
AND PROD_OBJID = #{search_productType}
|
|
</if>
|
|
<if test="search_resDeptName != null and !''.equals(search_resDeptName)">
|
|
AND UPPER(RES_PIC_DEPT_NAME) LIKE UPPER('%${search_resDeptName}%')
|
|
</if>
|
|
<if test="search_status !=null and search_status !='' ">
|
|
AND STATUS = #{search_status}
|
|
</if>
|
|
<if test="search_testType !=null and search_testType !='' ">
|
|
AND TEST_TYPE_OBJID = #{search_testType}
|
|
</if>
|
|
<if test="step1 !=null and step1 !='' ">
|
|
AND STEP1 = #{step1}
|
|
</if>
|
|
<if test="step2 !=null and step2 !='' ">
|
|
AND STEP2 = #{step2}
|
|
</if>
|
|
)A WHERE 1=1
|
|
)WHERE 1=1
|
|
</select>
|
|
|
|
<!-- //품질결과 확정목록 -->
|
|
<select id="getQualityTestList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM(
|
|
SELECT A.*, ROW_NUMBER() OVER (ORDER BY REGDATE_ORG DESC) RNUM
|
|
FROM(
|
|
SELECT A.*
|
|
FROM(
|
|
SELECT A.OBJID
|
|
, (SELECT OEM_OBJID FROM CAR_MNG WHERE OBJID = A.CAR_OBJID) AS OEM_OBJID
|
|
, (SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = (SELECT OEM_OBJID FROM CAR_MNG WHERE OBJID = A.CAR_OBJID)) AS OEM_NAME
|
|
, A.CAR_OBJID
|
|
, (SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = A.CAR_OBJID) AS CAR_NAME
|
|
, (SELECT CAR_CODE FROM CAR_MNG WHERE OBJID = A.CAR_OBJID) AS CAR_CODE
|
|
, (SELECT MODEL_CODE FROM CAR_MNG WHERE OBJID = A.CAR_OBJID) AS MODEL_CODE
|
|
, (SELECT PRODUCT_GROUP_OBJID FROM PRODUCT_MNG WHERE OBJID = A.PROD_OBJID) AS PROD_GROUP_OBJID
|
|
, (SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = (SELECT PRODUCT_GROUP_OBJID FROM PRODUCT_MNG WHERE OBJID = A.PROD_OBJID)) AS PROD_GROUP_NAME
|
|
, A.PROD_OBJID
|
|
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = A.PROD_OBJID) AS PROD_NAME
|
|
, A.TEST_TYPE_OBJID
|
|
, (SELECT TEST_TYPE_NAME FROM TEST_TYPE_MNG WHERE OBJID = A.TEST_TYPE_OBJID) AS TEST_TYPE_NAME
|
|
, A.STEP1
|
|
, A.STEP2
|
|
, A.WRITER
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = A.WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = A.WRITER) AS WRITER_USER_NAME
|
|
, A.REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(A.REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, A.STATUS
|
|
, (SELECT COUNT(WBS_TASK.OBJID) AS TASK_CNT FROM PMS_WBS_TASK WBS_TASK,PMS_REL_WBS_TASK_FNC_TASK REL WHERE REL.TARGET_OBJID = WBS_TASK.OBJID AND REL.SUB_OBJID = A.OBJID) AS REL_TASK_CNT
|
|
FROM PMS_QUALITY_TEST_INFO A
|
|
WHERE 1=1
|
|
AND UPPER(STATUS) = 'COMPLETE'
|
|
)A WHERE 1=1
|
|
<if test="search_oem !=null and search_oem !=''">
|
|
AND OEM_OBJID = #{search_oem}
|
|
</if>
|
|
<if test="search_productGroup != null and search_productGroup !=''">
|
|
AND PROD_GROUP_OBJID = #{search_productGroup}
|
|
</if>
|
|
<if test="search_carType != null and search_carType != ''">
|
|
AND CAR_OBJID = #{search_carType}
|
|
</if>
|
|
<if test="search_productType != null and search_productType !=''">
|
|
AND PROD_OBJID = #{search_productType}
|
|
</if>
|
|
<if test="search_writer != null and !''.equals(search_writer)">
|
|
AND UPPER(WRITER_USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
<if test="search_status !=null and search_status !='' ">
|
|
AND STATUS = #{search_status}
|
|
</if>
|
|
<if test="search_testType !=null and search_testType !='' ">
|
|
AND TEST_TYPE_OBJID = #{search_testType}
|
|
</if>
|
|
<if test="step1 !=null and step1 !='' ">
|
|
AND STEP1 = #{step1}
|
|
</if>
|
|
<if test="step2 !=null and step2 !='' ">
|
|
AND STEP2 = #{step2}
|
|
</if>
|
|
<if test="search_fromMonthRegDate != null and search_fromMonthRegDate !='' ">
|
|
AND TO_DATE(TO_CHAR(A.REGDATE, 'YYYY-MM'),'YYYY-MM') <![CDATA[ >= ]]> TO_DATE(#{search_fromMonthRegDate},'YYYY-MM')
|
|
</if>
|
|
<if test="search_toMonthRegDate != null and search_toMonthRegDate !='' ">
|
|
AND TO_DATE(TO_CHAR(A.REGDATE, 'YYYY-MM'),'YYYY-MM') <![CDATA[ <= ]]> TO_DATE(#{search_toMonthRegDate},'YYYY-MM')
|
|
</if>
|
|
)A WHERE 1=1
|
|
) WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END !=''">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_STRART!=''">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
</select>
|
|
|
|
<!-- //품질결과 확정목록 Count -->
|
|
<select id="getQualityTestListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
|
|
TOTAL_CNT
|
|
FROM (
|
|
SELECT COUNT(1) TOTAL_CNT
|
|
FROM(
|
|
SELECT A.*
|
|
FROM(
|
|
SELECT A.OBJID
|
|
, (SELECT OEM_OBJID FROM CAR_MNG WHERE OBJID = A.CAR_OBJID) AS OEM_OBJID
|
|
, (SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = (SELECT OEM_OBJID FROM CAR_MNG WHERE OBJID = A.CAR_OBJID)) AS OEM_NAME
|
|
, A.CAR_OBJID
|
|
, (SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = A.CAR_OBJID) AS CAR_NAME
|
|
, (SELECT CAR_CODE FROM CAR_MNG WHERE OBJID = A.CAR_OBJID) AS CAR_CODE
|
|
, (SELECT MODEL_CODE FROM CAR_MNG WHERE OBJID = A.CAR_OBJID) AS MODEL_CODE
|
|
, (SELECT PRODUCT_GROUP_OBJID FROM PRODUCT_MNG WHERE OBJID = A.PROD_OBJID) AS PROD_GROUP_OBJID
|
|
, (SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = (SELECT PRODUCT_GROUP_OBJID FROM PRODUCT_MNG WHERE OBJID = A.PROD_OBJID)) AS PROD_GROUP_NAME
|
|
, A.PROD_OBJID
|
|
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = A.PROD_OBJID) AS PROD_NAME
|
|
, A.TEST_TYPE_OBJID
|
|
, (SELECT TEST_TYPE_NAME FROM TEST_TYPE_MNG WHERE OBJID = A.TEST_TYPE_OBJID) AS TEST_TYPE_NAME
|
|
, A.STEP1
|
|
, A.STEP2
|
|
, A.WRITER
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = A.WRITER) AS WRITER_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = A.WRITER) AS WRITER_USER_NAME
|
|
, A.REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(A.REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, A.STATUS
|
|
FROM PMS_QUALITY_TEST_INFO A
|
|
WHERE 1=1
|
|
AND UPPER(STATUS) = 'COMPLETE'
|
|
)A WHERE 1=1
|
|
<if test="search_oem !=null and search_oem !=''">
|
|
AND OEM_OBJID = #{search_oem}
|
|
</if>
|
|
<if test="search_productGroup != null and search_productGroup !=''">
|
|
AND PROD_GROUP_OBJID = #{search_productGroup}
|
|
</if>
|
|
<if test="search_carType != null and search_carType != ''">
|
|
AND CAR_OBJID = #{search_carType}
|
|
</if>
|
|
<if test="search_productType != null and search_productType !=''">
|
|
AND PROD_OBJID = #{search_productType}
|
|
</if>
|
|
<if test="search_writer != null and !''.equals(search_writer)">
|
|
AND UPPER(WRITER_USER_NAME) LIKE UPPER('%search_writer%')
|
|
</if>
|
|
<if test="search_status !=null and search_status !='' ">
|
|
AND STATUS = #{search_status}
|
|
</if>
|
|
<if test="search_testType !=null and search_testType !='' ">
|
|
AND TEST_TYPE_OBJID = #{search_testType}
|
|
</if>
|
|
<if test="step1 !=null and step1 !='' ">
|
|
AND STEP1 = #{step1}
|
|
</if>
|
|
<if test="step2 !=null and step2 !='' ">
|
|
AND STEP2 = #{step2}
|
|
</if>
|
|
<if test="search_fromMonthRegDate != null and search_fromMonthRegDate !='' ">
|
|
AND TO_DATE(TO_CHAR(A.REGDATE, 'YYYY-MM'),'YYYY-MM') <![CDATA[ >= ]]> TO_DATE(#{search_fromMonthRegDate},'YYYY-MM')
|
|
</if>
|
|
<if test="search_toMonthRegDate != null and search_toMonthRegDate !='' ">
|
|
AND TO_DATE(TO_CHAR(A.REGDATE, 'YYYY-MM'),'YYYY-MM') <![CDATA[ <= ]]> TO_DATE(#{search_toMonthRegDate},'YYYY-MM')
|
|
</if>
|
|
)A WHERE 1=1
|
|
)WHERE 1=1
|
|
</select>
|
|
|
|
<!-- //품질검사 상세 part목록 -->
|
|
<select id="getQualityTestDetailPartList" parameterType="map" resultType="map">
|
|
SELECT ROW_NUMBER() OVER(ORDER BY SEQ) AS RNUM
|
|
, QUALITY_MASTER.PART_MASTER_OBJID
|
|
, QUALITY_MASTER.OEM_OBJID
|
|
, QUALITY_MASTER.CAR_OBJID
|
|
, QUALITY_MASTER.PROD_GROUP_OBJID
|
|
, QUALITY_MASTER.PROD_OBJID
|
|
, QUALITY_MASTER.PART_NO
|
|
, QUALITY_MASTER.PART_NAME
|
|
, QUALITY_MASTER.SEQ
|
|
, QUALITY_MASTER.RATE
|
|
, QUALITY_MASTER.MOLD_MAKE_COMPANY
|
|
, QUALITY_MASTER.PROBLEM_CNT
|
|
, QUALITY_MASTER.QUALITY_MASTER_OBJID
|
|
, QUALITY_MASTER.TEST_TYPE_OBJID
|
|
, QUALITY_MASTER.STEP1
|
|
, QUALITY_MASTER.STEP2
|
|
, QUALITY_MASTER.STATUS AS QUALITY_MASTER_STATUS
|
|
, QUALITY_SLAVE.OBJID AS QUALITY_SLAVE_OBJID
|
|
, QUALITY_SLAVE.SCORE
|
|
, QUALITY_SLAVE.RESULT
|
|
, QUALITY_SLAVE.TYPE1
|
|
, QUALITY_SLAVE.TYPE2
|
|
FROM (
|
|
SELECT PART.PART_MASTER_OBJID
|
|
, PART.OEM_OBJID
|
|
, PART.CAR_OBJID
|
|
, PART.PROD_GROUP_OBJID
|
|
, PART.PROD_OBJID
|
|
, PART.PART_NO
|
|
, PART.PART_NAME
|
|
, PART.SEQ
|
|
, UPPER(PART.RATE) AS RATE
|
|
, MOLD_MAKE_COMPANY
|
|
, PART.PROBLEM_CNT
|
|
, Q_M.OBJID AS QUALITY_MASTER_OBJID
|
|
, Q_M.TEST_TYPE_OBJID
|
|
, Q_M.STEP1
|
|
, Q_M.STEP2
|
|
, Q_M.STATUS
|
|
FROM (
|
|
SELECT M.OBJID AS PART_MASTER_OBJID
|
|
, M.OEM_OBJID
|
|
, M.CAR_OBJID
|
|
, M.PROD_GROUP_OBJID
|
|
, M.PROD_OBJID
|
|
, S.PART_NO
|
|
, (SELECT PART_NAME FROM PART_INFO WHERE PART_NO = S.PART_NO AND UPPER(STATUS) = 'COMPLETE' AND IS_LAST = 1) AS PART_NAME
|
|
, S.SEQ
|
|
<!--
|
|
, (SELECT RATE FROM (SELECT TARGET_OBJID, RATE, PART_NO FROM PMS_DEV_MASTER_REL_PART_INFO WHERE RATE IS NOT NULL ORDER BY DEV_POINT DESC) A, PMS_DEV_MASTER B WHERE A.TARGET_OBJID = B.OBJID AND B.TARGET_OBJID = M.OBJID AND A.PART_NO = S.PART_NO AND ROWNUM = 1) AS RATE
|
|
, (SELECT MOLD_MAKE_COMPANY FROM (SELECT TARGET_OBJID, MOLD_MAKE_COMPANY, PART_NO FROM PMS_DEV_MASTER_REL_PART_INFO WHERE MOLD_MAKE_COMPANY IS NOT NULL ORDER BY DEV_POINT DESC) A, PMS_DEV_MASTER B WHERE A.TARGET_OBJID = B.OBJID AND B.TARGET_OBJID = M.OBJID AND A.PART_NO = S.PART_NO AND ROWNUM = 1) AS MOLD_MAKE_COMPANY
|
|
-->
|
|
, (SELECT RATE FROM (SELECT B.RATE, B.PART_NO FROM PMS_DEV_MASTER A, PMS_DEV_MASTER_REL_PART_INFO B WHERE A.OBJID = B.TARGET_OBJID AND B.RATE IS NOT NULL ORDER BY DEV_POINT DESC) A WHERE A.PART_NO = S.PART_NO AND ROWNUM = 1) AS RATE
|
|
, (SELECT MOLD_MAKE_COMPANY FROM (SELECT B.MOLD_MAKE_COMPANY, B.PART_NO FROM PMS_DEV_MASTER A, PMS_DEV_MASTER_REL_PART_INFO B WHERE A.OBJID = B.TARGET_OBJID AND B.MOLD_MAKE_COMPANY IS NOT NULL ORDER BY DEV_POINT DESC) A WHERE A.PART_NO = S.PART_NO AND ROWNUM = 1) AS MOLD_MAKE_COMPANY
|
|
, (SELECT COUNT(*) FROM PMS_PROBLEM_INFO WHERE PART_NO = S.PART_NO AND UNMANAGE_TYPE IS NULL) PROBLEM_CNT
|
|
FROM PMS_PART_MASTER M, PMS_PART_MASTER_CONNECT_PART S
|
|
WHERE 1=1
|
|
AND M.OBJID = S.TARGET_OBJID
|
|
AND UPPER(S.IS_DEL) IS NULL
|
|
ORDER BY S.SEQ) PART, PMS_QUALITY_TEST_INFO Q_M
|
|
WHERE 1=1
|
|
AND PART.CAR_OBJID = Q_M.CAR_OBJID
|
|
AND PART.PROD_OBJID = Q_M.PROD_OBJID
|
|
AND Q_M.OBJID = ${targetObjId}
|
|
) QUALITY_MASTER, PMS_QUALITY_TEST_REL_PART_ATTR QUALITY_SLAVE
|
|
WHERE 1=1
|
|
AND QUALITY_MASTER.QUALITY_MASTER_OBJID = QUALITY_SLAVE.TARGET_OBJID(+)
|
|
AND QUALITY_MASTER.PART_NO = QUALITY_SLAVE.PART_NO(+)
|
|
</select>
|
|
|
|
<!-- //품질검사 part별 정보 저장 -->
|
|
<update id="saveQualityTestPartInfo" parameterType="map">
|
|
MERGE INTO PMS_QUALITY_TEST_REL_PART_ATTR USING DUAL ON (OBJID = #{objId})
|
|
WHEN MATCHED THEN
|
|
UPDATE SET
|
|
SCORE = #{score}
|
|
, RESULT = #{result}
|
|
, TYPE1 = #{type1}
|
|
, TYPE2 = #{type2}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT (
|
|
OBJID
|
|
, TARGET_OBJID
|
|
, PART_NO
|
|
, SCORE
|
|
, RESULT
|
|
, TYPE1
|
|
, TYPE2
|
|
, WRITER
|
|
, REGDATE
|
|
, STATUS
|
|
) VALUES (
|
|
#{objId}
|
|
, #{targetObjId}
|
|
, #{partNo}
|
|
, #{score}
|
|
, #{result}
|
|
, #{type1}
|
|
, #{type2}
|
|
, #{writer}
|
|
, SYSDATE
|
|
, 'create'
|
|
)
|
|
</update>
|
|
|
|
<!-- //품질검사 갑지 확정 -->
|
|
<update id="completeQualityTestInfo" parameterType="map">
|
|
UPDATE PMS_QUALITY_TEST_INFO SET STATUS = 'complete' WHERE OBJID = #{targetObjId}
|
|
</update>
|
|
|
|
<!-- //품질검사 갑지조회 -->
|
|
<select id="getQualityTestInfo" parameterType="map" resultType="map">
|
|
SELECT OBJID
|
|
, (SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = (SELECT OEM_OBJID FROM CAR_MNG WHERE OBJID = CAR_OBJID)) AS OEM_NAME
|
|
, (SELECT OEM_OBJID FROM CAR_MNG WHERE OBJID = CAR_OBJID) AS OEM_OBJID
|
|
, CAR_OBJID
|
|
, (SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = CAR_OBJID) AS CAR_NAME
|
|
, (SELECT CAR_CODE FROM CAR_MNG WHERE OBJID = CAR_OBJID) AS CAR_CODE
|
|
, (SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = (SELECT PRODUCT_GROUP_OBJID FROM PRODUCT_MNG WHERE OBJID = PROD_OBJID)) AS PRODUCT_GROUP_NAME
|
|
, (SELECT PRODUCT_GROUP_OBJID FROM PRODUCT_MNG WHERE OBJID = PROD_OBJID) AS PROD_GROUP_OBJID
|
|
, PROD_OBJID
|
|
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = PROD_OBJID) AS PRODUCT_NAME
|
|
, TEST_TYPE_OBJID
|
|
, (SELECT TEST_TYPE_NAME FROM TEST_TYPE_MNG WHERE OBJID = TEST_TYPE_OBJID) AS TEST_TYPE_NAME
|
|
, STEP1
|
|
, DECODE(STEP1, 'design', '설계', 'develop', '개발', 'production', '양산', '') AS STEP1_NAME
|
|
, STEP2
|
|
, WRITER
|
|
, REGDATE
|
|
, STATUS
|
|
FROM PMS_QUALITY_TEST_INFO
|
|
WHERE 1=1
|
|
AND OBJID = #{targetObjId}
|
|
</select>
|
|
|
|
<!-- =====================================================
|
|
품질관리 기초정보관리
|
|
===================================================== -->
|
|
|
|
<!-- 검사구분 목록 조회 -->
|
|
<select id="getInspectionTypeList" parameterType="map" resultType="map">
|
|
SELECT OBJID
|
|
, INSPECTION_TYPE_NAME
|
|
, STATUS
|
|
, TO_CHAR(REG_DATE, 'YYYY-MM-DD') AS REG_DATE
|
|
FROM PMS_QUALITY_INSPECTION_TYPE
|
|
WHERE 1=1
|
|
ORDER BY REG_DATE DESC
|
|
</select>
|
|
|
|
<!-- 검사구분 등록 -->
|
|
<insert id="insertInspectionType" parameterType="map">
|
|
INSERT INTO PMS_QUALITY_INSPECTION_TYPE (
|
|
OBJID
|
|
, INSPECTION_TYPE_NAME
|
|
, STATUS
|
|
, WRITER
|
|
, REG_DATE
|
|
) VALUES (
|
|
#{OBJID}
|
|
, #{INSPECTION_TYPE_NAME}
|
|
, #{STATUS}
|
|
, #{writer}
|
|
, SYSDATE
|
|
)
|
|
</insert>
|
|
|
|
<!-- 검사구분 수정 -->
|
|
<update id="updateInspectionType" parameterType="map">
|
|
UPDATE PMS_QUALITY_INSPECTION_TYPE
|
|
SET INSPECTION_TYPE_NAME = #{INSPECTION_TYPE_NAME}
|
|
, STATUS = #{STATUS}
|
|
WHERE OBJID = #{OBJID}
|
|
</update>
|
|
|
|
<!-- 검사구분 삭제 -->
|
|
<delete id="deleteInspectionType" parameterType="map">
|
|
DELETE FROM PMS_QUALITY_INSPECTION_TYPE
|
|
WHERE OBJID = #{OBJID}
|
|
</delete>
|
|
|
|
<!-- 불량유형 목록 조회 -->
|
|
<select id="getDefectTypeList" parameterType="map" resultType="map">
|
|
SELECT OBJID
|
|
, DEFECT_TYPE_NAME
|
|
, STATUS
|
|
, TO_CHAR(REG_DATE, 'YYYY-MM-DD') AS REG_DATE
|
|
FROM PMS_QUALITY_DEFECT_TYPE
|
|
WHERE 1=1
|
|
ORDER BY REG_DATE DESC
|
|
</select>
|
|
|
|
<!-- 불량유형 등록 -->
|
|
<insert id="insertDefectType" parameterType="map">
|
|
INSERT INTO PMS_QUALITY_DEFECT_TYPE (
|
|
OBJID
|
|
, DEFECT_TYPE_NAME
|
|
, STATUS
|
|
, WRITER
|
|
, REG_DATE
|
|
) VALUES (
|
|
#{OBJID}
|
|
, #{DEFECT_TYPE_NAME}
|
|
, #{STATUS}
|
|
, #{writer}
|
|
, SYSDATE
|
|
)
|
|
</insert>
|
|
|
|
<!-- 불량유형 수정 -->
|
|
<update id="updateDefectType" parameterType="map">
|
|
UPDATE PMS_QUALITY_DEFECT_TYPE
|
|
SET DEFECT_TYPE_NAME = #{DEFECT_TYPE_NAME}
|
|
, STATUS = #{STATUS}
|
|
WHERE OBJID = #{OBJID}
|
|
</update>
|
|
|
|
<!-- 불량유형 삭제 -->
|
|
<delete id="deleteDefectType" parameterType="map">
|
|
DELETE FROM PMS_QUALITY_DEFECT_TYPE
|
|
WHERE OBJID = #{OBJID}
|
|
</delete>
|
|
|
|
<!-- 불량원인 목록 조회 -->
|
|
<select id="getDefectReasonList" parameterType="map" resultType="map">
|
|
SELECT A.OBJID
|
|
, A.DEFECT_TYPE_OBJID
|
|
, B.DEFECT_TYPE_NAME
|
|
, A.DEFECT_REASON_NAME
|
|
, A.STATUS
|
|
, TO_CHAR(A.REG_DATE, 'YYYY-MM-DD') AS REG_DATE
|
|
FROM PMS_QUALITY_DEFECT_REASON A
|
|
LEFT JOIN PMS_QUALITY_DEFECT_TYPE B ON A.DEFECT_TYPE_OBJID = B.OBJID
|
|
WHERE 1=1
|
|
<if test="DEFECT_TYPE_OBJID != null and DEFECT_TYPE_OBJID != ''">
|
|
AND A.DEFECT_TYPE_OBJID = #{DEFECT_TYPE_OBJID}
|
|
</if>
|
|
ORDER BY B.DEFECT_TYPE_NAME, A.REG_DATE DESC
|
|
</select>
|
|
|
|
<!-- 불량원인 등록 -->
|
|
<insert id="insertDefectReason" parameterType="map">
|
|
INSERT INTO PMS_QUALITY_DEFECT_REASON (
|
|
OBJID
|
|
, DEFECT_TYPE_OBJID
|
|
, DEFECT_REASON_NAME
|
|
, STATUS
|
|
, WRITER
|
|
, REG_DATE
|
|
) VALUES (
|
|
#{OBJID}
|
|
, #{DEFECT_TYPE_OBJID}
|
|
, #{DEFECT_REASON_NAME}
|
|
, #{STATUS}
|
|
, #{writer}
|
|
, SYSDATE
|
|
)
|
|
</insert>
|
|
|
|
<!-- 불량원인 수정 -->
|
|
<update id="updateDefectReason" parameterType="map">
|
|
UPDATE PMS_QUALITY_DEFECT_REASON
|
|
SET DEFECT_REASON_NAME = #{DEFECT_REASON_NAME}
|
|
, STATUS = #{STATUS}
|
|
WHERE OBJID = #{OBJID}
|
|
</update>
|
|
|
|
<!-- 불량원인 삭제 -->
|
|
<delete id="deleteDefectReason" parameterType="map">
|
|
DELETE FROM PMS_QUALITY_DEFECT_REASON
|
|
WHERE OBJID = #{OBJID}
|
|
</delete>
|
|
|
|
<!-- 불량유형별 불량원인 일괄 삭제 -->
|
|
<delete id="deleteDefectReasonByType" parameterType="map">
|
|
DELETE FROM PMS_QUALITY_DEFECT_REASON
|
|
WHERE DEFECT_TYPE_OBJID = #{OBJID}
|
|
</delete>
|
|
|
|
<!-- =====================================================
|
|
수입검사 관리
|
|
===================================================== -->
|
|
|
|
<!-- 품의서 번호 목록 조회 (검색조건용) -->
|
|
<select id="getProposalNoList" parameterType="map" resultType="map">
|
|
SELECT DISTINCT PROPOSAL_NO
|
|
FROM SALES_REQUEST_MASTER
|
|
WHERE PROPOSAL_NO IS NOT NULL
|
|
ORDER BY PROPOSAL_NO DESC
|
|
</select>
|
|
|
|
<!-- 발주서 번호 목록 조회 (검색조건용) -->
|
|
<select id="getPurchaseOrderNoList" parameterType="map" resultType="map">
|
|
SELECT DISTINCT PURCHASE_ORDER_NO
|
|
FROM PURCHASE_ORDER_MASTER
|
|
WHERE PURCHASE_ORDER_NO IS NOT NULL
|
|
ORDER BY PURCHASE_ORDER_NO DESC
|
|
</select>
|
|
|
|
<!-- 프로젝트 번호 목록 조회 (검색조건용) -->
|
|
<select id="getProjectNoList" parameterType="map" resultType="map">
|
|
SELECT DISTINCT PROJECT_NO
|
|
FROM CONTRACT_MNG
|
|
WHERE PROJECT_NO IS NOT NULL
|
|
ORDER BY PROJECT_NO DESC
|
|
</select>
|
|
|
|
<!-- 공급업체 목록 조회 (검색조건용) -->
|
|
<select id="getPartnerList" parameterType="map" resultType="map">
|
|
SELECT OBJID::VARCHAR, SUPPLY_NAME AS PARTNER_NAME
|
|
FROM ADMIN_SUPPLY_MNG
|
|
WHERE 1=1
|
|
ORDER BY SUPPLY_NAME
|
|
</select>
|
|
|
|
<!-- 검사자 목록 조회 (검색조건용) -->
|
|
<select id="getInspectorList" parameterType="map" resultType="map">
|
|
SELECT USER_ID, USER_NAME
|
|
FROM USER_INFO
|
|
WHERE STATUS = 'active'
|
|
ORDER BY USER_NAME
|
|
</select>
|
|
|
|
<!-- 수입검사 목록 조회 -->
|
|
<select id="getIncomingInspectionList" parameterType="map" resultType="map">
|
|
SELECT POM.OBJID
|
|
, SRM.PROPOSAL_NO
|
|
, SRM.OBJID AS PROPOSAL_OBJID
|
|
, POM.PURCHASE_ORDER_NO
|
|
, CM.PROJECT_NO
|
|
, POP.PART_NO
|
|
, POP.PART_NAME
|
|
, CASE
|
|
WHEN POM.PARTNER_OBJID LIKE 'C_%' THEN (SELECT CLIENT_NM FROM CLIENT_MNG WHERE 'C_' || OBJID::VARCHAR = POM.PARTNER_OBJID)
|
|
ELSE (SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE OBJID::VARCHAR = POM.PARTNER_OBJID)
|
|
END AS PARTNER_NAME
|
|
, CASE
|
|
WHEN COALESCE((SELECT SUM(REAL_ORDER_QTY::NUMERIC) FROM PURCHASE_ORDER_PART WHERE PURCHASE_ORDER_MASTER_OBJID = POM.OBJID::VARCHAR), 0)
|
|
<![CDATA[ <= ]]> COALESCE((SELECT SUM(RECEIPT_QTY::NUMERIC) FROM ARRIVAL_PLAN WHERE PARENT_OBJID = POM.OBJID), 0)
|
|
THEN '입고완료'
|
|
ELSE '입고중'
|
|
END AS DELIVERY_STATUS
|
|
, '' AS INSPECTOR_NAME
|
|
, '' AS INSPECTION_DATE
|
|
, '' AS INSPECTION_RESULT
|
|
FROM PURCHASE_ORDER_MASTER POM
|
|
LEFT JOIN PURCHASE_ORDER_PART POP ON POM.OBJID::VARCHAR = POP.PURCHASE_ORDER_MASTER_OBJID
|
|
LEFT JOIN SALES_REQUEST_MASTER SRM ON POM.SALES_REQUEST_MASTER_OBJID::VARCHAR = SRM.OBJID::VARCHAR
|
|
LEFT JOIN CONTRACT_MNG CM ON POM.CONTRACT_OBJID = CM.OBJID
|
|
WHERE 1=1
|
|
AND POM.STATUS = 'complete'
|
|
<if test="search_proposal_no != null and search_proposal_no != ''">
|
|
AND SRM.PROPOSAL_NO = #{search_proposal_no}
|
|
</if>
|
|
<if test="search_purchase_order_no != null and search_purchase_order_no != ''">
|
|
AND POM.PURCHASE_ORDER_NO = #{search_purchase_order_no}
|
|
</if>
|
|
<if test="search_project_no != null and search_project_no != ''">
|
|
AND CM.PROJECT_NO = #{search_project_no}
|
|
</if>
|
|
<if test="search_part_no != null and search_part_no != ''">
|
|
AND UPPER(POP.PART_NO) LIKE UPPER('%' || #{search_part_no} || '%')
|
|
</if>
|
|
<if test="search_part_name != null and search_part_name != ''">
|
|
AND UPPER(POP.PART_NAME) LIKE UPPER('%' || #{search_part_name} || '%')
|
|
</if>
|
|
<if test="search_partner != null and search_partner != ''">
|
|
AND POM.PARTNER_OBJID = #{search_partner}
|
|
</if>
|
|
<if test="search_partner_name != null and search_partner_name != ''">
|
|
AND (
|
|
UPPER((SELECT CLIENT_NM FROM CLIENT_MNG WHERE 'C_' || OBJID::VARCHAR = POM.PARTNER_OBJID)) LIKE UPPER('%' || #{search_partner_name} || '%')
|
|
OR UPPER((SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE OBJID::VARCHAR = POM.PARTNER_OBJID)) LIKE UPPER('%' || #{search_partner_name} || '%')
|
|
)
|
|
</if>
|
|
<if test="search_delivery_status != null and search_delivery_status != ''">
|
|
AND CASE
|
|
WHEN COALESCE((SELECT SUM(REAL_ORDER_QTY::NUMERIC) FROM PURCHASE_ORDER_PART WHERE PURCHASE_ORDER_MASTER_OBJID = POM.OBJID::VARCHAR), 0)
|
|
<![CDATA[ <= ]]> COALESCE((SELECT SUM(RECEIPT_QTY::NUMERIC) FROM ARRIVAL_PLAN WHERE PARENT_OBJID = POM.OBJID), 0)
|
|
THEN '입고완료'
|
|
ELSE '입고중'
|
|
END = #{search_delivery_status}
|
|
</if>
|
|
ORDER BY POM.PURCHASE_ORDER_NO DESC
|
|
</select>
|
|
|
|
<!-- 수입검사 상세 정보 조회 -->
|
|
<select id="getIncomingInspectionInfo" parameterType="map" resultType="map">
|
|
SELECT A.OBJID
|
|
, A.PURCHASE_ORDER_MASTER_OBJID
|
|
, A.INSPECTOR_ID
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = A.INSPECTOR_ID) AS INSPECTOR_NAME
|
|
, TO_CHAR(A.INSPECTION_DATE, 'YYYY-MM-DD') AS INSPECTION_DATE
|
|
, A.INSPECTION_RESULT
|
|
, A.INSPECTION_MEMO
|
|
, A.WRITER
|
|
, TO_CHAR(A.REG_DATE, 'YYYY-MM-DD') AS REG_DATE
|
|
FROM PMS_QUALITY_INCOMING_INSPECTION A
|
|
WHERE A.OBJID = #{OBJID}
|
|
</select>
|
|
|
|
<!-- 수입검사 등록 -->
|
|
<insert id="insertIncomingInspection" parameterType="map">
|
|
INSERT INTO PMS_QUALITY_INCOMING_INSPECTION (
|
|
OBJID
|
|
, PURCHASE_ORDER_MASTER_OBJID
|
|
, INSPECTOR_ID
|
|
, INSPECTION_DATE
|
|
, INSPECTION_RESULT
|
|
, INSPECTION_MEMO
|
|
, WRITER
|
|
, REG_DATE
|
|
) VALUES (
|
|
#{OBJID}
|
|
, #{PURCHASE_ORDER_MASTER_OBJID}
|
|
, #{INSPECTOR_ID}
|
|
, TO_DATE(#{INSPECTION_DATE}, 'YYYY-MM-DD')
|
|
, #{INSPECTION_RESULT}
|
|
, #{INSPECTION_MEMO}
|
|
, #{writer}
|
|
, SYSDATE
|
|
)
|
|
</insert>
|
|
|
|
<!-- 수입검사 수정 -->
|
|
<update id="updateIncomingInspection" parameterType="map">
|
|
UPDATE PMS_QUALITY_INCOMING_INSPECTION
|
|
SET INSPECTOR_ID = #{INSPECTOR_ID}
|
|
, INSPECTION_DATE = TO_DATE(#{INSPECTION_DATE}, 'YYYY-MM-DD')
|
|
, INSPECTION_RESULT = #{INSPECTION_RESULT}
|
|
, INSPECTION_MEMO = #{INSPECTION_MEMO}
|
|
WHERE OBJID = #{OBJID}
|
|
</update>
|
|
|
|
<!-- 수입검사 목록 조회 (엑셀용) -->
|
|
<select id="getIncomingInspectionListForExcel" parameterType="map" resultType="map">
|
|
SELECT A.OBJID
|
|
, A.PROPOSAL_NO
|
|
, A.PURCHASE_ORDER_NO
|
|
, A.PROJECT_NO
|
|
, A.PART_NO
|
|
, A.PART_NAME
|
|
, A.PARTNER_NAME
|
|
, A.DELIVERY_STATUS
|
|
, B.INSPECTOR_ID
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = B.INSPECTOR_ID) AS INSPECTOR_NAME
|
|
, TO_CHAR(B.INSPECTION_DATE, 'YYYY-MM-DD') AS INSPECTION_DATE
|
|
, B.INSPECTION_RESULT
|
|
FROM (
|
|
SELECT POM.OBJID
|
|
, SRM.PROPOSAL_NO
|
|
, POM.PURCHASE_ORDER_NO
|
|
, PJ.PROJECT_NO
|
|
, POD.PART_NO
|
|
, POD.PART_NAME
|
|
, PM.PARTNER_NAME
|
|
, CASE WHEN NVL(POD.DELIVERY_QTY, 0) >= NVL(POD.ORDER_QTY, 0) THEN '입고완료' ELSE '입고중' END AS DELIVERY_STATUS
|
|
FROM PMS_PURCHASE_ORDER_MASTER POM
|
|
LEFT JOIN PMS_PURCHASE_ORDER_DETAIL POD ON POM.OBJID = POD.PURCHASE_ORDER_MASTER_OBJID
|
|
LEFT JOIN PMS_SALES_REQUEST_MASTER SRM ON POM.SALES_REQUEST_MASTER_OBJID = SRM.OBJID
|
|
LEFT JOIN PMS_PROJECT_INFO PJ ON POM.PROJECT_OBJID = PJ.OBJID
|
|
LEFT JOIN PARTNER_MNG PM ON POM.PARTNER_OBJID = PM.OBJID
|
|
WHERE 1=1
|
|
) A
|
|
LEFT JOIN PMS_QUALITY_INCOMING_INSPECTION B ON A.OBJID = B.PURCHASE_ORDER_MASTER_OBJID
|
|
ORDER BY A.PURCHASE_ORDER_NO DESC
|
|
</select>
|
|
|
|
</mapper> |