1539 lines
48 KiB
XML
1539 lines
48 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="as">
|
|
<update id="mergeAS" parameterType="map">
|
|
INSERT INTO AS_MNG
|
|
(
|
|
OBJID
|
|
,AS_NO
|
|
,CUSTCD
|
|
,COMPANY_NAME
|
|
,PRODUCT_CODE
|
|
,YEAR
|
|
,RELEASE_DATE
|
|
,CAR_NUMBER
|
|
,PAID_FREE
|
|
,PHONE
|
|
,PLAN_DATE
|
|
,REC_TYPE
|
|
,PROBLEM_CONTENTS
|
|
,ACTION_CONTENTS
|
|
,START_DATE
|
|
,END_DATE
|
|
,PART_PRICE
|
|
,AS_COST
|
|
,PAYMENT_TYPE
|
|
,REQ_USER
|
|
,REQ_DATE
|
|
,AS_USER
|
|
,AS_DATE
|
|
,FREE_CONTENTS
|
|
,WRITER
|
|
,STATUS_CD
|
|
,WORKINGTIME
|
|
,WAGE
|
|
,REG_DATE
|
|
,PRICE1
|
|
,PRICE2
|
|
,PRICE3
|
|
,TOTAL_PRICE
|
|
,WARRANTY_CODE
|
|
,MAINTENANCE
|
|
,SN_NO
|
|
)
|
|
VALUES
|
|
(
|
|
#{objId}::integer
|
|
,(SELECT 'AS-'||TO_CHAR(NOW(),'yyyy')::VARCHAR ||'-'||LPAD((SELECT nextval('seq_as_no'))::VARCHAR ,3,'0'))
|
|
,#{custcd}
|
|
,null
|
|
,#{product_code}
|
|
,#{year}
|
|
,#{release_date}
|
|
,#{car_number}
|
|
,#{paid_free}
|
|
,#{phone}
|
|
,#{plan_date}
|
|
,#{rec_type}
|
|
,#{problem_contents}
|
|
,#{action_contents}
|
|
,#{start_date}
|
|
,#{end_date}
|
|
,#{part_price}
|
|
,#{as_cost}
|
|
,#{payment_type}
|
|
,#{req_user}
|
|
,#{req_date}
|
|
,#{as_user}
|
|
,#{as_date}
|
|
,#{free_contents}
|
|
,#{writer}
|
|
,'0000100'
|
|
,#{workingtime}
|
|
,#{wage}
|
|
,now()
|
|
,#{price1}
|
|
,#{price2}
|
|
,#{price3}
|
|
,#{total_price}
|
|
,#{warranty_code}
|
|
,#{maintenance}
|
|
,#{sn_no}
|
|
) ON CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET
|
|
CUSTCD=#{custcd}
|
|
,PRODUCT_CODE=#{product_code}
|
|
,YEAR=#{year}
|
|
,RELEASE_DATE=#{release_date}
|
|
,CAR_NUMBER=#{car_number}
|
|
,PAID_FREE=#{paid_free}
|
|
,PHONE=#{phone}
|
|
,PLAN_DATE=#{plan_date}
|
|
,REC_TYPE=#{rec_type}
|
|
,PROBLEM_CONTENTS=#{problem_contents}
|
|
,ACTION_CONTENTS=#{action_contents}
|
|
,START_DATE=#{start_date}
|
|
,END_DATE=#{end_date}
|
|
,PART_PRICE=#{part_price}
|
|
,AS_COST=#{as_cost}
|
|
,PAYMENT_TYPE=#{payment_type}
|
|
,REQ_DATE=#{req_date}
|
|
,AS_DATE=#{as_date}
|
|
,FREE_CONTENTS=#{free_contents}
|
|
,WORKINGTIME=#{workingtime}
|
|
,WAGE=#{wage}
|
|
,PRICE1=#{price1}
|
|
,PRICE2=#{price2}
|
|
,PRICE3=#{price3}
|
|
,TOTAL_PRICE=#{total_price}
|
|
,WARRANTY_CODE=#{warranty_code}
|
|
,MAINTENANCE=#{maintenance}
|
|
,SN_NO=#{sn_no}
|
|
</update>
|
|
|
|
|
|
<update id="updateAsPart" parameterType="map">
|
|
UPDATE AS_PART_MNG SET
|
|
QTY=#{QTY}
|
|
,PRICE=#{PRICE}
|
|
,SUP_PRICE=#{SUP_PRICE}
|
|
,NOTE=#{NOTE}
|
|
WHERE OBJID = #{OBJID}::numeric
|
|
</update>
|
|
|
|
|
|
<!-- 페이징 처리한 EO 목록을 가져온다. -->
|
|
<select id="getECRListPaging" parameterType="map" resultType="map">
|
|
SELECT
|
|
*
|
|
FROM(
|
|
|
|
SELECT * FROM
|
|
(SELECT
|
|
ROW_NUMBER() OVER (ORDER BY AS_NO) AS RNUM,
|
|
T.OBJID::VARCHAR,
|
|
T.AS_NO,
|
|
T.WARRANTY_CODE,
|
|
<!-- T.MAINTENANCE, -->
|
|
(SELECT A.name FROM (
|
|
SELECT CONCAT(areaA, areaB, areaC, areaD) AS code
|
|
, areaName AS name
|
|
FROM SWJA050A_TBL A
|
|
) AS A
|
|
WHERE 1=1
|
|
AND A.code = T.MAINTENANCE) AS MAINTENANCE,
|
|
T.CUSTCD,
|
|
/*(SELECT CUSTNM
|
|
FROM SWSB210A_TBL AS PM
|
|
WHERE PM.CUSTCD = T.CUSTCD
|
|
) AS CUST_NAME, */
|
|
(SELECT sm.supply_name
|
|
FROM SUPPLY_MNG AS sm
|
|
WHERE sm.objid = T.CUSTCD::NUMERIC
|
|
) AS CUST_NAME,
|
|
T.COMPANY_NAME,
|
|
T.YEAR,
|
|
T.PRODUCT_CODE,
|
|
/*(SELECT O.GOODSNM FROM swsb110a_tbl AS O WHERE O.goodscd = T.product_code) AS PRODUCT_NAME,*/
|
|
(SELECT O.product_code FROM product_mgmt AS O WHERE O.objid = T.product_code::numeric) AS PRODUCT_NAME,
|
|
T.REC_TYPE,
|
|
T1.REC_TYPE_NAME,
|
|
T.WRITER,
|
|
(SELECT USER_NAME
|
|
FROM USER_INFO
|
|
WHERE USER_ID = T.WRITER
|
|
) AS WRITER_NAME,
|
|
T.STATUS_CD,
|
|
T.PHONE,
|
|
TO_DATE(T.PLAN_DATE,'YYYY-MM-DD') AS PLAN_DATE /*접수일*/,
|
|
code_name(T.STATUS_CD) AS STATUS_NAME,
|
|
TO_DATE(T.REQ_DATE,'YYYY-MM-DD') AS REQ_DATE /*접수일*/,
|
|
TO_DATE(T.AS_DATE,'YYYY-MM-DD') AS AS_DATE /*고객인도일*/,
|
|
T.release_date,
|
|
T.CAR_NUMBER,
|
|
T.paid_free,
|
|
(SELECT COUNT(1)
|
|
FROM ATTACH_FILE_INFO
|
|
WHERE TARGET_OBJID = T.OBJID
|
|
AND DOC_TYPE='AS_DOC'
|
|
AND UPPER(STATUS) = 'ACTIVE'
|
|
) AS CU01_CNT
|
|
,(SELECT COUNT(1)
|
|
FROM ATTACH_FILE_INFO
|
|
WHERE TARGET_OBJID = T.OBJID
|
|
AND DOC_TYPE='ECR_ATTACH_01'
|
|
AND UPPER(STATUS) = 'ACTIVE'
|
|
) AS CU02_CNT
|
|
,(SELECT COUNT(1)
|
|
FROM ATTACH_FILE_INFO
|
|
WHERE TARGET_OBJID = T.OBJID
|
|
AND DOC_TYPE='ECR_ATTACH_02'
|
|
AND UPPER(STATUS) = 'ACTIVE'
|
|
) AS CU03_CNT
|
|
,T.SN_NO
|
|
FROM AS_MNG T LEFT OUTER JOIN
|
|
(SELECT ARRAY_TO_STRING(ARRAY_AGG
|
|
(
|
|
(SELECT code_name
|
|
FROM comm_code AS cc
|
|
WHERE cc.code_id IN(TT.REC_TYPE)
|
|
)
|
|
)
|
|
,',') AS REC_TYPE_NAME,
|
|
TT.OBJID
|
|
FROM
|
|
(SELECT T.OBJID,
|
|
unnest(string_to_array(REC_TYPE, ',')) AS REC_TYPE
|
|
FROM AS_mng AS T
|
|
) AS TT
|
|
GROUP BY TT.OBJID
|
|
) AS T1
|
|
ON T.OBJID= T1.OBJID
|
|
) AS T
|
|
LEFT OUTER JOIN
|
|
(
|
|
SELECT
|
|
B.OBJID AS ROUTE_OBJID,
|
|
CASE B.STATUS
|
|
WHEN 'inProcess' THEN '결재중'
|
|
WHEN 'complete' THEN '결재완료'
|
|
WHEN 'reject' THEN '반려'
|
|
ELSE ''
|
|
END APPR_STATUS,
|
|
A.OBJID AS APPROVAL_OBJID,
|
|
A.TARGET_OBJID,
|
|
B.ROUTE_SEQ
|
|
FROM
|
|
APPROVAL A,
|
|
(
|
|
select
|
|
T1.*
|
|
from
|
|
(
|
|
select
|
|
TARGET_OBJID,
|
|
max(T.ROUTE_SEQ) as ROUTE_SEQ
|
|
from
|
|
ROUTE T
|
|
group by
|
|
T.TARGET_OBJID
|
|
) T,
|
|
ROUTE T1
|
|
where
|
|
T.TARGET_OBJID = T1.TARGET_OBJID
|
|
and T.ROUTE_SEQ = T1.ROUTE_SEQ
|
|
) B
|
|
WHERE
|
|
A.OBJID = B.APPROVAL_OBJID
|
|
AND TARGET_TYPE IN ('AS_MNG')
|
|
) A
|
|
ON T.OBJID::numeric = A.TARGET_OBJID
|
|
WHERE 1=1
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(T.REQ_DATE,'YYYY') = #{Year}
|
|
</if>
|
|
|
|
<if test="product_code != null and product_code != ''">
|
|
AND T.PRODUCT_CODE = #{product_code}
|
|
</if>
|
|
|
|
<if test="request_code != null and request_code != ''">
|
|
AND UPPER(REQUEST_CD) LIKE UPPER('%${request_code}%')
|
|
</if>
|
|
|
|
<if test="search_release_date_from != null and search_release_date_from != ''">
|
|
AND TO_DATE(TO_CHAR(TO_DATE(substring(T.RELEASE_DATE,1,4)||'-'||substring(T.RELEASE_DATE,5,2)||'-'||substring(T.RELEASE_DATE,7,2),'YYYY-MM-DD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_release_date_from}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
<if test="search_release_date_to != null and search_release_date_to != ''">
|
|
AND TO_DATE(TO_CHAR(TO_DATE(substring(T.RELEASE_DATE,1,4)||'-'||substring(T.RELEASE_DATE,5,2)||'-'||substring(T.RELEASE_DATE,7,2),'YYYY-MM-DD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_release_date_to}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
<if test="warranty_code != null and warranty_code != ''">
|
|
AND T.WARRANTY_CODE = #{warranty_code}
|
|
</if>
|
|
<if test="maintenance != null and maintenance != ''">
|
|
AND T.MAINTENANCE = (SELECT A.name FROM (
|
|
SELECT CONCAT(areaA, areaB, areaC, areaD) AS code
|
|
, areaName AS name
|
|
FROM SWJA050A_TBL A
|
|
) AS A
|
|
WHERE 1=1
|
|
AND A.code = #{maintenance})
|
|
</if>
|
|
|
|
<if test="rec_type != null and rec_type != ''">
|
|
AND UPPER(T.REC_TYPE) LIKE UPPER('%${rec_type}%')
|
|
</if>
|
|
|
|
<if test="search_req_date_from != null and search_req_date_from != ''">
|
|
AND TO_DATE(TO_CHAR( T.REQ_DATE ,'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_req_date_from}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
<if test="search_req_date_to != null and search_req_date_to != ''">
|
|
AND TO_DATE(TO_CHAR( T.REQ_DATE ,'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_req_date_to}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_plan_date_from != null and search_plan_date_from != ''">
|
|
AND TO_DATE(TO_CHAR( T.PLAN_DATE ,'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_plan_date_from}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
<if test="search_plan_date_to != null and search_plan_date_to != ''">
|
|
AND TO_DATE(TO_CHAR( T.PLAN_DATE ,'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_plan_date_to}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_as_date_from != null and search_as_date_from != ''">
|
|
AND TO_DATE(TO_CHAR( T.AS_DATE ,'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_as_date_from}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
<if test="search_as_date_to != null and search_as_date_to != ''">
|
|
AND TO_DATE(TO_CHAR( T.AS_DATE ,'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_as_date_to}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
|
|
|
|
|
|
<if test="writer != null and writer != ''">
|
|
AND T.writer = #{writer}
|
|
</if>
|
|
|
|
<if test="status_code != null and status_code != ''">
|
|
AND T.status_cd = #{status_code}
|
|
</if>
|
|
|
|
) AS T
|
|
WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END != ''">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END}::integer ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_START != ''">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START}::integer ]]>
|
|
</if>
|
|
|
|
</select>
|
|
<!-- 페이징 처리한 ECR 목록을 가져온다. -->
|
|
<select id="getECRListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE})::numeric::integer as MAX_PAGE_SIZE,
|
|
TOTAL_CNT::integer
|
|
FROM(
|
|
SELECT
|
|
COUNT(1)::float TOTAL_CNT
|
|
FROM(SELECT * FROM
|
|
(SELECT
|
|
ROW_NUMBER() OVER (ORDER BY AS_NO) AS RNUM,
|
|
T.OBJID::VARCHAR,
|
|
T.AS_NO,
|
|
T.WARRANTY_CODE,
|
|
|
|
(SELECT A.name FROM (
|
|
SELECT CONCAT(areaA, areaB, areaC, areaD) AS code
|
|
, areaName AS name
|
|
FROM SWJA050A_TBL A
|
|
) AS A
|
|
WHERE 1=1
|
|
AND A.code = T.MAINTENANCE) AS MAINTENANCE,
|
|
T.CUSTCD,
|
|
(SELECT CUSTNM
|
|
FROM SWSB210A_TBL AS PM
|
|
WHERE PM.CUSTCD = T.CUSTCD
|
|
) AS CUST_NAME,
|
|
T.COMPANY_NAME,
|
|
T.YEAR,
|
|
T.PRODUCT_CODE,
|
|
(SELECT O.GOODSNM FROM swsb110a_tbl AS O WHERE O.goodscd = T.product_code) AS PRODUCT_NAME,
|
|
T.REC_TYPE,
|
|
T1.REC_TYPE_NAME,
|
|
T.WRITER,
|
|
(SELECT USER_NAME
|
|
FROM USER_INFO
|
|
WHERE USER_ID = T.WRITER
|
|
) AS WRITER_NAME,
|
|
T.STATUS_CD,
|
|
T.PHONE,
|
|
TO_DATE(T.PLAN_DATE,'YYYY-MM-DD') AS PLAN_DATE /*접수일*/,
|
|
code_name(T.STATUS_CD) AS STATUS_NAME,
|
|
TO_DATE(T.REQ_DATE,'YYYY-MM-DD') AS REQ_DATE /*접수일*/,
|
|
TO_DATE(T.AS_DATE,'YYYY-MM-DD') AS AS_DATE /*고객인도일*/,
|
|
T.release_date,
|
|
T.CAR_NUMBER,
|
|
T.paid_free,
|
|
(SELECT COUNT(1)
|
|
FROM ATTACH_FILE_INFO
|
|
WHERE TARGET_OBJID = T.OBJID
|
|
AND DOC_TYPE='AS_DOC'
|
|
AND UPPER(STATUS) = 'ACTIVE'
|
|
) AS CU01_CNT
|
|
FROM AS_MNG T LEFT OUTER JOIN
|
|
(SELECT ARRAY_TO_STRING(ARRAY_AGG
|
|
(
|
|
(SELECT code_name
|
|
FROM comm_code AS cc
|
|
WHERE cc.code_id IN(TT.REC_TYPE)
|
|
)
|
|
)
|
|
,',') AS REC_TYPE_NAME,
|
|
TT.OBJID
|
|
FROM
|
|
(SELECT T.OBJID,
|
|
unnest(string_to_array(REC_TYPE, ',')) AS REC_TYPE
|
|
FROM AS_mng AS T
|
|
) AS TT
|
|
GROUP BY TT.OBJID
|
|
) AS T1
|
|
ON T.OBJID= T1.OBJID
|
|
) AS T
|
|
LEFT OUTER JOIN
|
|
(
|
|
SELECT
|
|
B.OBJID AS ROUTE_OBJID,
|
|
CASE B.STATUS
|
|
WHEN 'inProcess' THEN '결재중'
|
|
WHEN 'complete' THEN '결재완료'
|
|
WHEN 'reject' THEN '반려'
|
|
ELSE ''
|
|
END APPR_STATUS,
|
|
A.OBJID AS APPROVAL_OBJID,
|
|
A.TARGET_OBJID,
|
|
B.ROUTE_SEQ
|
|
FROM
|
|
APPROVAL A,
|
|
(
|
|
select
|
|
T1.*
|
|
from
|
|
(
|
|
select
|
|
TARGET_OBJID,
|
|
max(T.ROUTE_SEQ) as ROUTE_SEQ
|
|
from
|
|
ROUTE T
|
|
group by
|
|
T.TARGET_OBJID
|
|
) T,
|
|
ROUTE T1
|
|
where
|
|
T.TARGET_OBJID = T1.TARGET_OBJID
|
|
and T.ROUTE_SEQ = T1.ROUTE_SEQ
|
|
) B
|
|
WHERE
|
|
A.OBJID = B.APPROVAL_OBJID
|
|
AND TARGET_TYPE IN ('AS_MNG')
|
|
) A
|
|
ON T.OBJID::numeric = A.TARGET_OBJID
|
|
WHERE 1=1
|
|
) AS ECR WHERE 1=1
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(TO_DATE(ECR.REQ_DATE,'YYYY-MM-DD'),'YYYY') = #{Year}
|
|
</if>
|
|
|
|
<if test="product_code != null and product_code != ''">
|
|
AND ECR.PRODUCT_CODE = #{product_code}
|
|
</if>
|
|
|
|
<if test="search_release_date_from != null and search_release_date_from != ''">
|
|
AND TO_DATE(TO_CHAR(TO_DATE(substring(ECR.RELEASE_DATE,1,4)||'-'||substring(ECR.RELEASE_DATE,5,2)||'-'||substring(ECR.RELEASE_DATE,7,2),'YYYY-MM-DD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_release_date_from}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
<if test="search_release_date_to != null and search_release_date_to != ''">
|
|
AND TO_DATE(TO_CHAR(TO_DATE(substring(ECR.RELEASE_DATE,1,4)||'-'||substring(ECR.RELEASE_DATE,5,2)||'-'||substring(ECR.RELEASE_DATE,7,2),'YYYY-MM-DD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_release_date_to}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
<if test="warranty_code != null and warranty_code != ''">
|
|
AND ECR.WARRANTY_CODE = #{warranty_code}
|
|
</if>
|
|
<if test="maintenance != null and maintenance != ''">
|
|
AND ECR.MAINTENANCE = (SELECT A.name FROM (
|
|
SELECT CONCAT(areaA, areaB, areaC, areaD) AS code
|
|
, areaName AS name
|
|
FROM SWJA050A_TBL A
|
|
) AS A
|
|
WHERE 1=1
|
|
AND A.code = #{maintenance})
|
|
</if>
|
|
|
|
<if test="rec_type != null and rec_type != ''">
|
|
AND UPPER(ECR.REC_TYPE) LIKE UPPER('%${rec_type}%')
|
|
</if>
|
|
|
|
<if test="search_req_date_from != null and search_req_date_from != ''">
|
|
AND TO_DATE(TO_CHAR( TO_DATE(ECR.REQ_DATE,'YYYY-MM-DD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_req_date_from}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
<if test="search_req_date_to != null and search_req_date_to != ''">
|
|
AND TO_DATE(TO_CHAR( TO_DATE(ECR.REQ_DATE,'YYYY-MM-DD') ,'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_req_date_to}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
<if test="search_plan_date_from != null and search_plan_date_from != ''">
|
|
AND TO_DATE(TO_CHAR( TO_DATE(ECR.PLAN_DATE,'YYYY-MM-DD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_plan_date_from}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
<if test="search_plan_date_to != null and search_plan_date_to != ''">
|
|
AND TO_DATE(TO_CHAR( TO_DATE(ECR.PLAN_DATE,'YYYY-MM-DD') ,'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_plan_date_to}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
<if test="search_as_date_from != null and search_as_date_from != ''">
|
|
AND TO_DATE(TO_CHAR( TO_DATE(ECR.AS_DATE,'YYYY-MM-DD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_as_date_from}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
<if test="search_as_date_to != null and search_as_date_to != ''">
|
|
AND TO_DATE(TO_CHAR( TO_DATE(ECR.AS_DATE,'YYYY-MM-DD') ,'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_as_date_to}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
|
|
<if test="request_code != null and request_code != ''">
|
|
AND UPPER(REQUEST_CD) LIKE UPPER('%${request_code}%')
|
|
</if>
|
|
|
|
<if test="writer != null and writer != ''">
|
|
AND ECR.writer = #{writer}
|
|
</if>
|
|
|
|
<if test="status_code != null and status_code != ''">
|
|
AND ECR.status_cd = #{status_code}
|
|
</if>
|
|
) AS T
|
|
</select>
|
|
<select id="getECRList_CS" parameterType="map" resultType="com.pms.common.UpperKeyMap">
|
|
SELECT CSM.OBJID
|
|
,CSM.SERVICE_NO
|
|
,CSM.PRODUCT
|
|
,(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = CSM.PRODUCT) AS PRODUCT_NAME
|
|
,CSM.CONTRACT_OBJID
|
|
,CSM.CS_CATEGORY
|
|
,(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = CSM.CS_CATEGORY) AS CATEGORY_NAME
|
|
,CSM.WARRANTY
|
|
,(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = CSM.WARRANTY) AS WARRANTY_NAME
|
|
,CSM.MANAGER_ID
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = CSM.MANAGER_ID) AS MANAGER_NAME
|
|
,CSM.ACT_DATE
|
|
,CSM.CATEGORY_H
|
|
,CSM.CATEGORY_M
|
|
,CSM.CATEGORY_L
|
|
,(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = CSM.CATEGORY_H) AS CATEGORY_H_NAME
|
|
,(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = CSM.CATEGORY_M) AS CATEGORY_M_NAME
|
|
,(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = CSM.CATEGORY_L) AS CATEGORY_L_NAME
|
|
,CSM.TITLE
|
|
,CSM.BEFORE_CONTENTS
|
|
,CSM.AFTER_CONTENTS
|
|
,CSM.WRITER
|
|
,CSM.REGDATE
|
|
,CSM.STATUS
|
|
,(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = CSM.STATUS) AS STATUS_NAME
|
|
,TO_CHAR(CSM.REGDATE, 'YYYY-MM-DD') AS REC_DT
|
|
,CM.PROJECT_NO
|
|
,CM.CUSTOMER_OBJID
|
|
,(SELECT SUPPLY_NAME FROM SUPPLY_MNG WHERE OBJID = CM.CUSTOMER_OBJID::INTEGER) AS CUSTOMER_NAME
|
|
,RM.RELEASE_DATE
|
|
,CM.SETUP
|
|
,CSW.PLAN_COST
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = CSM.OBJID AND DOC_TYPE='AS_IMG_01' AND UPPER(STATUS) = 'ACTIVE') AS CU01_CNT
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = CSM.OBJID AND DOC_TYPE='AS_IMG_02' AND UPPER(STATUS) = 'ACTIVE') AS CU02_CNT
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = CSM.OBJID AND DOC_TYPE='AS_DOC_01' AND UPPER(STATUS) = 'ACTIVE') AS CU03_CNT
|
|
,APPR.APPROVAL_OBJID
|
|
,APPR.ROUTE_OBJID
|
|
,APPR.APPR_STATUS
|
|
,APPR.APPR_STATUS_NAME
|
|
FROM CUSTOMER_SERVICE_MGMT AS CSM
|
|
LEFT OUTER JOIN PROJECT_MGMT AS CM
|
|
ON CSM.CONTRACT_OBJID = CM.OBJID
|
|
LEFT OUTER JOIN RELEASE_MGMT AS RM
|
|
ON CM.OBJID = RM.PARENT_OBJID
|
|
LEFT OUTER JOIN (SELECT PARENT_OBJID
|
|
,SUM(LABOR_COST::NUMERIC + EXPENSES::NUMERIC) AS PLAN_COST
|
|
FROM CUSTOMER_SERVICE_WORKINGTIME
|
|
GROUP BY PARENT_OBJID
|
|
) AS CSW
|
|
ON CSM.OBJID = CSW.PARENT_OBJID
|
|
LEFT OUTER JOIN (SELECT B.OBJID AS ROUTE_OBJID
|
|
,B.STATUS AS APPR_STATUS
|
|
,CASE UPPER(B.STATUS)
|
|
WHEN 'INPROCESS' THEN '결재중'
|
|
WHEN 'COMPLETE' THEN '결재완료'
|
|
WHEN 'REJECT' THEN '반려'
|
|
ELSE '' END APPR_STATUS_NAME
|
|
,A.OBJID AS APPROVAL_OBJID
|
|
,A.TARGET_OBJID
|
|
,B.ROUTE_SEQ
|
|
FROM APPROVAL A
|
|
,( SELECT T1.*
|
|
FROM ( SELECT TARGET_OBJID
|
|
,MAX(T.ROUTE_SEQ) AS ROUTE_SEQ
|
|
FROM ROUTE T
|
|
GROUP BY T.TARGET_OBJID
|
|
) T
|
|
,ROUTE T1
|
|
WHERE T.TARGET_OBJID = T1.TARGET_OBJID
|
|
AND T.ROUTE_SEQ = T1.ROUTE_SEQ
|
|
) B
|
|
WHERE A.OBJID = B.APPROVAL_OBJID
|
|
AND TARGET_TYPE IN ('CSM')
|
|
) AS APPR
|
|
ON CSM.OBJID::NUMERIC = APPR.TARGET_OBJID
|
|
WHERE 1=1
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(CSM.REGDATE,'YYYY') = #{Year}
|
|
</if>
|
|
<if test="product_cd !=null and product_cd != '' ">
|
|
AND CSM.PRODUCT = #{product_cd}
|
|
</if>
|
|
<!-- <if test="project_no !=null and project_no != '' ">
|
|
AND CSM.CONTRACT_OBJID = #{project_no}
|
|
</if> -->
|
|
<if test="project_nos != null and project_nos != ''">
|
|
AND CSM.CONTRACT_OBJID IN
|
|
<foreach item="state" collection="project_nos.split(',')"
|
|
open="(" separator="," close=")">
|
|
#{state}
|
|
</foreach>
|
|
</if>
|
|
<if test="project_no_txt !=null and project_no_txt != '' ">
|
|
AND CM.PROJECT_NO = #{project_no_txt}
|
|
</if>
|
|
<if test="warranty !=null and warranty != '' ">
|
|
AND CSM.WARRANTY = #{warranty}
|
|
</if>
|
|
<if test="category_h !=null and category_h != '' ">
|
|
AND CSM.CATEGORY_H = #{category_h}
|
|
</if>
|
|
<if test="category_m !=null and category_m != '' ">
|
|
AND CSM.CATEGORY_M = #{category_m}
|
|
</if>
|
|
<if test="category_l !=null and category_l != '' ">
|
|
AND CSM.CATEGORY_L = #{category_l}
|
|
</if>
|
|
<if test="rec_start_date != null and rec_start_date != ''">
|
|
AND TO_DATE(TO_CHAR(CSM.REGDATE ,'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{rec_start_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="rec_end_date != null and rec_end_date != ''">
|
|
AND TO_DATE(TO_CHAR(CSM.REGDATE ,'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{rec_end_date }, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="manager_id != null and manager_id != ''">
|
|
AND CSM.MANAGER_ID = #{manager_id}
|
|
</if>
|
|
<if test="act_start_date != null and act_start_date != ''">
|
|
AND TO_DATE(CSM.ACT_DATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{act_start_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="act_end_date != null and act_end_date != ''">
|
|
AND TO_DATE(CSM.ACT_DATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{act_end_date }, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="appr_status !=null and appr_status != '' ">
|
|
AND APPR.APPR_STATUS = #{appr_status}
|
|
</if>
|
|
ORDER BY CSM.REGDATE DESC
|
|
</select>
|
|
|
|
<select id="getAsTotalList_CS" parameterType="map" resultType="map">
|
|
SELECT PRODUCT
|
|
,(SELECT PRODUCT_CODE FROM PRODUCT_MGMT WHERE OBJID = T.PRODUCT::INTEGER) AS PRODUCT_NAME
|
|
,PROJECT_NO
|
|
,SUM(CASE WHEN WARRANTY = '0000157' THEN 1 ELSE 0 END) AS WARRANTY1
|
|
,SUM(CASE WHEN WARRANTY = '0000157' THEN COST ELSE 0 END) AS COST1
|
|
,SUM(CASE WHEN WARRANTY = '0000158' THEN 1 ELSE 0 END) AS WARRANTY2
|
|
,SUM(CASE WHEN WARRANTY = '0000158' THEN COST ELSE 0 END) AS COST2
|
|
,SUM(CASE WHEN CATEGORY_H = '0000976' THEN 1 ELSE 0 END) AS CAT_CNT1
|
|
,SUM(CASE WHEN CATEGORY_H = '0000977' THEN 1 ELSE 0 END) AS CAT_CNT2
|
|
,SUM(CASE WHEN CATEGORY_H = '0000978' THEN 1 ELSE 0 END) AS CAT_CNT3
|
|
,SUM(CASE WHEN CATEGORY_H = '0000979' THEN 1 ELSE 0 END) AS CAT_CNT4
|
|
,SUM(CASE WHEN CATEGORY_H = '0000980' THEN 1 ELSE 0 END) AS CAT_CNT5
|
|
FROM (
|
|
SELECT CSM.PRODUCT
|
|
,TRIM(CM.PROJECT_NO) AS PROJECT_NO
|
|
,CSM.WARRANTY /*157유상 158무상*/
|
|
,CSM.ACT_DATE
|
|
,CSM.CATEGORY_H
|
|
,(CSM.total_labor_cost::NUMERIC + CSM.total_expenses::NUMERIC) AS COST
|
|
FROM CUSTOMER_SERVICE_MGMT AS CSM
|
|
LEFT OUTER JOIN PROJECT_MGMT AS CM
|
|
ON CSM.CONTRACT_OBJID = CM.OBJID
|
|
WHERE 1=1
|
|
AND CSM.STATUS = '0000102' /*결재완료*/
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(TO_DATE(CSM.ACT_DATE, 'YYYY-MM-DD'),'YYYY') = #{Year}
|
|
</if>
|
|
<if test="product_cd !=null and product_cd != '' ">
|
|
AND CSM.PRODUCT = #{product_cd}
|
|
</if>
|
|
<if test="project_no !=null and project_no != '' ">
|
|
<!-- AND CM.PROJECT_NO LIKE '%'||#{project_name}||'%' -->
|
|
AND CSM.CONTRACT_OBJID = #{project_no}
|
|
</if>
|
|
<if test="warranty !=null and warranty != '' ">
|
|
AND CSM.WARRANTY = #{warranty}
|
|
</if>
|
|
<if test="category_h !=null and category_h != '' ">
|
|
AND CSM.CATEGORY_H = #{category_h}
|
|
</if>
|
|
) AS T
|
|
GROUP BY PRODUCT, PROJECT_NO
|
|
ORDER BY PROJECT_NO DESC
|
|
</select>
|
|
|
|
<!-- AS 단건 정보를 가져온다. -->
|
|
<select id="getECRInfo" parameterType="map" resultType="map">
|
|
|
|
SELECT
|
|
T.OBJID::varchar
|
|
,AS_NO
|
|
,CUSTCD
|
|
,COMPANY_NAME
|
|
,PRODUCT_CODE
|
|
,YEAR
|
|
,RELEASE_DATE
|
|
,CAR_NUMBER
|
|
,PAID_FREE
|
|
,PHONE
|
|
,PLAN_DATE
|
|
,REC_TYPE
|
|
,PROBLEM_CONTENTS
|
|
,ACTION_CONTENTS
|
|
,START_DATE
|
|
,END_DATE
|
|
,PART_PRICE
|
|
,AS_COST
|
|
,PAYMENT_TYPE
|
|
,REQ_USER
|
|
,REQ_DATE
|
|
,AS_USER
|
|
,AS_DATE
|
|
,FREE_CONTENTS
|
|
,WRITER
|
|
,STATUS_CD
|
|
,WORKINGTIME
|
|
,WAGE
|
|
,PRICE1
|
|
,PRICE2
|
|
,PRICE3
|
|
,TOTAL_PRICE
|
|
,TO_CHAR(T.REG_DATE,'YYYY-MM-DD') AS REG_DATE /*접수일*/
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = T.WRITER) AS WRITER_NAME
|
|
,WARRANTY_CODE
|
|
,MAINTENANCE
|
|
,SN_NO
|
|
FROM AS_MNG T
|
|
WHERE 1=1
|
|
AND OBJID = #{objId}::integer
|
|
</select>
|
|
<select id="getCSMInfo" parameterType="map" resultType="map">
|
|
SELECT CSM.OBJID
|
|
,CSM.SERVICE_NO
|
|
,CSM.PRODUCT
|
|
,(SELECT PRODUCT_CODE FROM PRODUCT_MGMT WHERE OBJID = CSM.PRODUCT::INTEGER) AS PRODUCT_NAME
|
|
,CSM.CONTRACT_OBJID
|
|
,CSM.CS_CATEGORY
|
|
,(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = CSM.CS_CATEGORY) AS CATEGORY_NAME
|
|
,CSM.WARRANTY
|
|
,(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = CSM.WARRANTY) AS WARRANTY_NAME
|
|
,CSM.MANAGER_ID
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = CSM.MANAGER_ID) AS MANAGER_NAME
|
|
,CSM.ACT_DATE
|
|
,CSM.CATEGORY_H
|
|
,CSM.CATEGORY_M
|
|
,CSM.CATEGORY_L
|
|
,(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = CSM.CATEGORY_H) AS CATEGORY_H_NAME
|
|
,(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = CSM.CATEGORY_M) AS CATEGORY_M_NAME
|
|
,(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = CSM.CATEGORY_L) AS CATEGORY_L_NAME
|
|
,CSM.TITLE
|
|
,CSM.BEFORE_CONTENTS
|
|
,CSM.AFTER_CONTENTS
|
|
,CSM.WRITER
|
|
,CSM.REGDATE
|
|
,CSM.STATUS
|
|
,(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = CSM.STATUS) AS STATUS_NAME
|
|
,TO_CHAR(CSM.REGDATE, 'YYYY-MM-DD') AS REC_DT
|
|
,CM.PROJECT_NO
|
|
,CM.CUSTOMER_OBJID
|
|
,(SELECT SUPPLY_NAME FROM SUPPLY_MNG WHERE OBJID = CM.CUSTOMER_OBJID::INTEGER) AS CUSTOMER_NAME
|
|
,RM.RELEASE_DATE
|
|
,CM.SETUP
|
|
,CSW.PLAN_COST
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = CSM.OBJID AND DOC_TYPE='AS_IMG_01' AND UPPER(STATUS) = 'ACTIVE') AS CU01_CNT
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = CSM.OBJID AND DOC_TYPE='AS_IMG_02' AND UPPER(STATUS) = 'ACTIVE') AS CU02_CNT
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = CSM.OBJID AND DOC_TYPE='AS_DOC_01' AND UPPER(STATUS) = 'ACTIVE') AS CU03_CNT
|
|
,APPR.APPR_STATUS
|
|
,APPR.APPR_STATUS_NAME
|
|
FROM CUSTOMER_SERVICE_MGMT AS CSM
|
|
LEFT OUTER JOIN CONTRACT_MGMT AS CM
|
|
ON CSM.CONTRACT_OBJID = CM.OBJID
|
|
LEFT OUTER JOIN RELEASE_MGMT AS RM
|
|
ON CM.OBJID = RM.PARENT_OBJID
|
|
LEFT OUTER JOIN (SELECT PARENT_OBJID
|
|
,SUM(LABOR_COST::NUMERIC + EXPENSES::NUMERIC) AS PLAN_COST
|
|
FROM CUSTOMER_SERVICE_WORKINGTIME
|
|
GROUP BY PARENT_OBJID
|
|
) AS CSW
|
|
ON CSM.OBJID = CSW.PARENT_OBJID
|
|
LEFT OUTER JOIN (SELECT B.OBJID AS ROUTE_OBJID
|
|
,B.STATUS AS APPR_STATUS
|
|
,CASE UPPER(B.STATUS)
|
|
WHEN 'INPROCESS' THEN '결재중'
|
|
WHEN 'COMPLETE' THEN '결재완료'
|
|
WHEN 'REJECT' THEN '반려'
|
|
ELSE '' END APPR_STATUS_NAME
|
|
,A.OBJID AS APPROVAL_OBJID
|
|
,A.TARGET_OBJID
|
|
,B.ROUTE_SEQ
|
|
FROM APPROVAL A
|
|
,( SELECT T1.*
|
|
FROM ( SELECT TARGET_OBJID
|
|
,MAX(T.ROUTE_SEQ) AS ROUTE_SEQ
|
|
FROM ROUTE T
|
|
GROUP BY T.TARGET_OBJID
|
|
) T
|
|
,ROUTE T1
|
|
WHERE T.TARGET_OBJID = T1.TARGET_OBJID
|
|
AND T.ROUTE_SEQ = T1.ROUTE_SEQ
|
|
) B
|
|
WHERE A.OBJID = B.APPROVAL_OBJID
|
|
AND TARGET_TYPE IN ('CSM')
|
|
) AS APPR
|
|
ON CSM.OBJID = APPR.TARGET_OBJID::VARCHAR
|
|
WHERE 1=1
|
|
AND CSM.OBJID = #{objId}
|
|
</select>
|
|
<select id="getCSPList" parameterType="map" resultType="map">
|
|
SELECT CSP.OBJID
|
|
,CSP.PARENT_OBJID
|
|
,CSP.PART_NO
|
|
,CSP.PART_NAME
|
|
,CSP.SPEC
|
|
,CSP.QTY
|
|
,CSP.CUR_QTY
|
|
,CSP.PRICE
|
|
,CSP.SUP_PRICE
|
|
FROM CUSTOMER_SERVICE_PART CSP
|
|
WHERE 1=1
|
|
AND CSP.PARENT_OBJID = #{objId}
|
|
</select>
|
|
<select id="getCSWList" parameterType="map" resultType="map">
|
|
SELECT CSW.OBJID
|
|
,CSW.PARENT_OBJID
|
|
,CSW.SUPPLY_OBJID
|
|
,CSW.FORM_DATE
|
|
,CSW.TO_DATE
|
|
,CSW.WORK_DAY
|
|
,CSW.WORK_PERSON
|
|
,CSW.WORK_DAY_M
|
|
,CSW.LABOR_COST
|
|
,CSW.EXPENSES
|
|
FROM CUSTOMER_SERVICE_WORKINGTIME CSW
|
|
WHERE 1=1
|
|
AND CSW.PARENT_OBJID = #{objId}
|
|
</select>
|
|
|
|
|
|
<update id="asDelete" parameterType="map">
|
|
DELETE FROM AS_MNG
|
|
WHERE OBJID=#{objId}::numeric
|
|
</update>
|
|
|
|
|
|
<sql id="eoMngBase2">
|
|
(
|
|
SELECT
|
|
OBJID,
|
|
eo_no,
|
|
eo_gubun,
|
|
ecr_objid,
|
|
product_1,
|
|
product_2,
|
|
eo_kind,
|
|
title,
|
|
request_code,
|
|
period_code,
|
|
unit,
|
|
DEPLOY_DATE,
|
|
TO_CHAR(REG_DATE,'YYYY-MM-DD') AS REG_DATE,
|
|
EDIT_DATE,
|
|
TO_CHAR(E.EDIT_DATE,'YYYY-MM-DD') AS EDIT_DATE_TITLE,
|
|
WRITER,
|
|
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = E.WRITER) AS WRITER_TITLE,
|
|
DEPLOY_WRITER,
|
|
DEPLOY_DEPT,
|
|
STATUS,
|
|
CASE STATUS
|
|
WHEN 'create' THEN '작성중'
|
|
WHEN 'deploy' THEN '배포완료'
|
|
WHEN 'approvalRequest' THEN '결재중'
|
|
WHEN 'approvalComplete' THEN '결재완료'
|
|
WHEN 'reject' THEN '반려'
|
|
ELSE ''
|
|
END STATUS_TITLE,
|
|
contents,
|
|
A.APPR_STATUS,
|
|
A.ROUTE_OBJID,
|
|
A.APPROVAL_OBJID
|
|
FROM
|
|
EO_MNG E
|
|
LEFT OUTER JOIN
|
|
(
|
|
SELECT
|
|
B.OBJID AS ROUTE_OBJID,
|
|
CASE B.STATUS
|
|
WHEN 'inProcess' THEN '결재중'
|
|
WHEN 'complete' THEN '결재완료'
|
|
WHEN 'reject' THEN '반려'
|
|
ELSE ''
|
|
END APPR_STATUS,
|
|
A.OBJID AS APPROVAL_OBJID,
|
|
A.TARGET_OBJID,
|
|
B.ROUTE_SEQ
|
|
FROM
|
|
APPROVAL A,
|
|
(
|
|
select
|
|
T1.*
|
|
from
|
|
(
|
|
select
|
|
TARGET_OBJID,
|
|
max(T.ROUTE_SEQ) as ROUTE_SEQ
|
|
from
|
|
ROUTE T
|
|
group by
|
|
T.TARGET_OBJID
|
|
) T,
|
|
ROUTE T1
|
|
where
|
|
T.TARGET_OBJID = T1.TARGET_OBJID
|
|
and T.ROUTE_SEQ = T1.ROUTE_SEQ
|
|
) B
|
|
WHERE
|
|
A.OBJID = B.APPROVAL_OBJID
|
|
AND TARGET_TYPE IN ('EO_MNG')
|
|
) A
|
|
ON E.OBJID::numeric = A.TARGET_OBJID
|
|
)
|
|
</sql>
|
|
|
|
|
|
<!-- Part 관리 기본 조회 -->
|
|
<sql id="partMngBase">
|
|
(
|
|
SELECT
|
|
P.OBJID,
|
|
P.PRODUCT_MGMT_OBJID,
|
|
PMUD.PRODUCT_CODE,
|
|
P.UPG_NO,
|
|
P.PART_NO,
|
|
P.PART_NAME,
|
|
P.UNIT,
|
|
(SELECT CODE_NAME FROM COMM_CODE CC WHERE 1=1 AND CODE_ID = P.UNIT) AS UNIT_TITLE,
|
|
P.QTY,
|
|
P.SPEC,
|
|
P.MATERIAL,
|
|
P.WEIGHT,
|
|
P.PART_TYPE,
|
|
(SELECT CODE_NAME FROM COMM_CODE CC WHERE 1=1 AND CODE_ID = P.PART_TYPE) AS PART_TYPE_TITLE,
|
|
P.REMARK,
|
|
P.ES_SPEC,
|
|
P.MS_SPEC,
|
|
P.CHANGE_OPTION,
|
|
P.DESIGN_APPLY_POINT,
|
|
(SELECT CODE_NAME FROM COMM_CODE CC WHERE 1=1 AND CODE_ID = P.DESIGN_APPLY_POINT) AS DESIGN_APPLY_POINT_TITLE,
|
|
P.MANAGEMENT_FLAG,
|
|
P.REVISION,
|
|
P.STATUS,
|
|
P.REG_DATE,
|
|
P.EDIT_DATE,
|
|
P.WRITER,
|
|
P.IS_LAST,
|
|
P.EO,
|
|
AF.SAVED_FILE_NAME,
|
|
AF.REAL_FILE_NAME,
|
|
REPLACE(AF.FILE_PATH, '\', '\\') AS FILE_PATH,
|
|
|
|
AF_ECD.SAVED_FILE_NAME AS ECD_SAVED_FILE_NAME,
|
|
AF_ECD.REAL_FILE_NAME AS ECD_REAL_FILE_NAME,
|
|
REPLACE(AF_ECD.FILE_PATH, '\', '\\') AS ECD_FILE_PATH,
|
|
CASE
|
|
WHEN AF_ECD.SAVED_FILE_NAME IS NOT NULL THEN 'Y'
|
|
ELSE 'N'
|
|
END ECD_FLAG
|
|
FROM
|
|
PART_MNG P
|
|
LEFT OUTER JOIN
|
|
(
|
|
SELECT
|
|
TARGET_OBJID,
|
|
SAVED_FILE_NAME,
|
|
REAL_FILE_NAME,
|
|
FILE_PATH,
|
|
DOC_TYPE
|
|
FROM ATTACH_FILE_INFO
|
|
WHERE 1 = 1
|
|
AND DOC_TYPE IN ('PART_SHAPE_IMG')
|
|
AND UPPER(STATUS) = 'ACTIVE'
|
|
) AF
|
|
ON P.OBJID::NUMERIC = AF.TARGET_OBJID
|
|
LEFT OUTER JOIN
|
|
(
|
|
SELECT
|
|
TARGET_OBJID,
|
|
SAVED_FILE_NAME,
|
|
REAL_FILE_NAME,
|
|
FILE_PATH,
|
|
DOC_TYPE
|
|
FROM ATTACH_FILE_INFO
|
|
WHERE 1 = 1
|
|
AND DOC_TYPE IN ('ECD_DOC')
|
|
AND UPPER(STATUS) = 'ACTIVE'
|
|
) AF_ECD
|
|
ON P.OBJID::NUMERIC = AF_ECD.TARGET_OBJID
|
|
LEFT OUTER JOIN(
|
|
SELECT
|
|
PMUD.*
|
|
<!-- (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 -->
|
|
DISTINCT
|
|
PMUD.PRODUCT_OBJID,
|
|
(SELECT PRODUCT_CODE FROM PRODUCT_MGMT PM WHERE 1=1 AND PM.OBJID = PMUD.PRODUCT_OBJID) AS PRODUCT_CODE,
|
|
(UPG_CODE ||'-'|| (SELECT PRODUCT_CODE FROM PRODUCT_MGMT PM WHERE 1=1 AND PM.OBJID = PMUD.PRODUCT_OBJID) ||'-'|| VC) AS UPG_NO
|
|
FROM
|
|
PRODUCT_MGMT_UPG_DETAIL PMUD
|
|
WHERE 1=1
|
|
) PMUD
|
|
) PMUD
|
|
ON P.PRODUCT_MGMT_OBJID = PMUD.PRODUCT_OBJID::TEXT
|
|
AND P.UPG_NO = PMUD.UPG_NO
|
|
)
|
|
</sql>
|
|
|
|
<select id="getEOMngInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
T.*
|
|
<!-- ,(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 -->
|
|
<!-- ,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T.EO_TYPE AND O.PARENT_CODE_ID = #{EO_TYPE_CODE}) AS EO_TYPE_TITLE -->
|
|
FROM <include refid="eoMngBase2"/> T
|
|
WHERE 1=1
|
|
AND T.OBJID = #{OBJID}::numeric
|
|
</select>
|
|
|
|
|
|
<!-- PART 관리 목록 조회 -->
|
|
<select id="partMngList" parameterType="map" resultType="map">
|
|
SELECT DISTINCT * FROM (SELECT T1.PART_NO FROM BOM_PART_QTY AS T1 , PART_BOM_REPORT AS T2
|
|
WHERE T1.BOM_REPORT_OBJID::NUMERIC = T2.OBJID
|
|
<if test="product_code != null and product_code != ''">
|
|
AND T2.PRODUCT_MGMT_OBJID = #{product_code}::NUMERIC
|
|
</if>
|
|
|
|
<if test="product_mgmt_spec != null and product_mgmt_spec != ''">
|
|
AND T2.PRODUCT_MGMT_SPEC = #{product_mgmt_spec}::NUMERIC
|
|
</if>
|
|
|
|
<if test="upg_no != null and upg_no != ''">
|
|
AND T2.PRODUCT_MGMT_UPG = #{upg_no}
|
|
</if>
|
|
|
|
) AS PART_BOM RIGHT OUTER JOIN
|
|
(SELECT
|
|
PM.OBJID::VARCHAR
|
|
,PM.PART_NO AS PART_NO_TITLE
|
|
,PM.PART_NAME
|
|
,PM.SPEC
|
|
,PM.MATERIAL
|
|
,PM.WEIGHT
|
|
,SWP.RIRCPTQTY
|
|
,SWP.RIPRICE
|
|
,PM.REG_DATE
|
|
,PM.REVISION
|
|
,PM.QTY
|
|
,COALESCE((select COALESCE(O.OHONHANDQTY,0) from swpe630a_tbl AS O WHERE O.imItemId = PM.part_no),0) AS OHONHANDQTY
|
|
FROM PART_MNG AS PM
|
|
LEFT OUTER JOIN SWPE201A_TBL AS SWP
|
|
ON PM.OBJID = SWP.IMITEMID::NUMERIC
|
|
WHERE PM.IS_LAST='1'
|
|
AND PM.STATUS='release') AS PART
|
|
ON PART_BOM.PART_NO = PART.OBJID
|
|
WHERE PART.OBJID IS NOT NULL
|
|
|
|
<if test="SEARCH_PART_NO != null and SEARCH_PART_NO != ''">
|
|
AND UPPER(PART.PART_NO) LIKE UPPER('%${SEARCH_PART_NO}%')
|
|
</if>
|
|
<if test="SEARCH_PART_NAME != null and SEARCH_PART_NAME != ''">
|
|
AND UPPER(PART.PART_NAME) LIKE UPPER('%${SEARCH_PART_NAME}%')
|
|
</if>
|
|
|
|
</select>
|
|
|
|
|
|
|
|
<insert id="insertASPartMng" parameterType="map">
|
|
INSERT INTO AS_PART_MNG
|
|
(
|
|
OBJID
|
|
,TARGET_OBJID
|
|
,PART_OBJID
|
|
,PRICE
|
|
)
|
|
VALUES
|
|
(
|
|
#{objId}::integer
|
|
,#{target_objid}::integer
|
|
,#{part_objid}::integer
|
|
,#{price}::varchar
|
|
)
|
|
</insert>
|
|
|
|
|
|
<select id="materpartMgmtList" parameterType="map" resultType="map">
|
|
SELECT
|
|
T.OBJID
|
|
,PM.PART_NO
|
|
,PM.PART_NAME
|
|
,PM.SPEC
|
|
,T.QTY
|
|
,T.PRICE
|
|
,T.SUP_PRICE
|
|
,T.NOTE
|
|
FROM AS_PART_MNG AS T LEFT OUTER JOIN
|
|
part_mng AS PM
|
|
ON T.part_objid = PM.objid
|
|
WHERE T.TARGET_OBJID = #{objId}::numeric
|
|
</select>
|
|
|
|
|
|
<!-- AS처리현황 목록을 가져온다. -->
|
|
<select id="getAsTotalList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM (
|
|
SELECT
|
|
COALESCE(COALESCE(COALESCE(COALESCE(COALESCE(COALESCE(AS_Y.product_code,AS_N.product_code),REC1.product_code),REC2.product_code),REC3.product_code),REC4.product_code),REC5.product_code) AS product_code
|
|
,(SELECT O.PRODUCT_NAME FROM PRODUCT_MGMT AS O WHERE O.OBJID::VARCHAR =
|
|
COALESCE(COALESCE(COALESCE(COALESCE(COALESCE(COALESCE(AS_Y.product_code,AS_N.product_code),REC1.product_code),REC2.product_code),REC3.product_code),REC4.product_code),REC5.product_code)
|
|
) AS PRODUCT_NAME
|
|
,CASE WHEN Y_CNT IS NULL
|
|
THEN '0'
|
|
ELSE Y_CNT
|
|
END AS Y_CNT
|
|
,CASE WHEN Y_total IS NULL
|
|
THEN '0'
|
|
ELSE Y_total
|
|
END AS Y_total
|
|
,CASE WHEN N_CNT IS NULL
|
|
THEN '0'
|
|
ELSE N_CNT
|
|
END AS N_CNT
|
|
,CASE WHEN N_total IS NULL
|
|
THEN '0'
|
|
ELSE N_total
|
|
END AS N_total
|
|
,CASE WHEN REC1.CNT1 IS NULL
|
|
THEN '0'
|
|
ELSE REC1.CNT1
|
|
END AS CNT1
|
|
,CASE WHEN REC2.CNT2 IS NULL
|
|
THEN '0'
|
|
ELSE REC2.CNT2
|
|
END AS CNT2
|
|
,CASE WHEN REC3.CNT3 IS NULL
|
|
THEN '0'
|
|
ELSE REC3.CNT3
|
|
END AS CNT3
|
|
,CASE WHEN REC4.CNT4 IS NULL
|
|
THEN '0'
|
|
ELSE REC4.CNT4
|
|
END AS CNT4
|
|
,CASE WHEN REC5.CNT5 IS NULL
|
|
THEN '0'
|
|
ELSE REC5.CNT5
|
|
END AS CNT5
|
|
FROM
|
|
(SELECT
|
|
product_code,count(warranty_code) AS Y_CNT, SUM(total_price::INTEGER) AS Y_total
|
|
FROM as_mng
|
|
WHERE warranty_code='0000158'
|
|
<if test="Year !=null and Year != '' ">
|
|
AND YEAR = #{Year}
|
|
</if>
|
|
GROUP BY product_code) AS AS_Y FULL OUTER JOIN
|
|
(SELECT
|
|
product_code,count(WARRANTY_CODE) AS N_CNT, SUM(total_price::INTEGER) AS N_total
|
|
FROM as_mng
|
|
WHERE warranty_code='0000157'
|
|
<if test="Year !=null and Year != '' ">
|
|
AND YEAR = #{Year}
|
|
</if>
|
|
GROUP BY product_code) AS AS_N
|
|
ON AS_Y.product_code = AS_N.product_code
|
|
LEFT OUTER JOIN
|
|
(SELECT
|
|
product_code,count(warranty_code) AS CNT1
|
|
FROM as_mng
|
|
WHERE rec_type='0000141'
|
|
<if test="Year !=null and Year != '' ">
|
|
AND YEAR = #{Year}
|
|
</if>
|
|
GROUP BY product_code) AS REC1
|
|
ON AS_N.product_code = REC1.product_code
|
|
LEFT OUTER JOIN
|
|
(SELECT
|
|
product_code,count(warranty_code) AS CNT2
|
|
FROM as_mng
|
|
WHERE rec_type='0000144'
|
|
<if test="Year !=null and Year != '' ">
|
|
AND YEAR = #{Year}
|
|
</if>
|
|
GROUP BY product_code) AS REC2
|
|
ON AS_N.product_code = REC2.product_code
|
|
LEFT OUTER JOIN
|
|
(SELECT
|
|
product_code,count(warranty_code) AS CNT3
|
|
FROM as_mng
|
|
WHERE rec_type='0000145'
|
|
<if test="Year !=null and Year != '' ">
|
|
AND YEAR = #{Year}
|
|
</if>
|
|
GROUP BY product_code) AS REC3
|
|
ON AS_N.product_code = REC3.product_code
|
|
LEFT OUTER JOIN
|
|
(SELECT
|
|
product_code,count(warranty_code) AS CNT4
|
|
FROM as_mng
|
|
WHERE rec_type='0000146'
|
|
<if test="Year !=null and Year != '' ">
|
|
AND YEAR = #{Year}
|
|
</if>
|
|
|
|
GROUP BY product_code) AS REC4
|
|
ON AS_N.product_code = REC4.product_code
|
|
LEFT OUTER JOIN
|
|
(SELECT
|
|
product_code,count(warranty_code) AS CNT5
|
|
FROM as_mng
|
|
WHERE rec_type='0000147'
|
|
<if test="Year !=null and Year != '' ">
|
|
AND YEAR = #{Year}
|
|
</if>
|
|
GROUP BY product_code) AS REC5
|
|
ON AS_N.product_code = REC5.product_code
|
|
) TT
|
|
WHERE 1=1
|
|
<if test="product_code != null and product_code != ''">
|
|
AND PRODUCT_CODE = #{product_code}
|
|
</if>
|
|
</select>
|
|
|
|
<delete id="deleteCSM" parameterType="map">
|
|
DELETE FROM CUSTOMER_SERVICE_MGMT WHERE OBJID = #{OBJID}
|
|
</delete>
|
|
<update id="mergeCSM" parameterType="map">
|
|
INSERT INTO CUSTOMER_SERVICE_MGMT (
|
|
OBJID
|
|
,SERVICE_NO
|
|
,PRODUCT
|
|
,CONTRACT_OBJID
|
|
,CS_CATEGORY
|
|
,WARRANTY
|
|
,MANAGER_ID
|
|
,ACT_DATE
|
|
,CATEGORY_H
|
|
,CATEGORY_M
|
|
,CATEGORY_L
|
|
,TITLE
|
|
,BEFORE_CONTENTS
|
|
,AFTER_CONTENTS
|
|
,WRITER
|
|
,REGDATE
|
|
,STATUS
|
|
,TOTAL_SUP_PRICE
|
|
,TOTAL_WORK_DAY
|
|
,TOTAL_WORK_PERSON
|
|
,TOTAL_WORK_DAY_M
|
|
,TOTAL_LABOR_COST
|
|
,TOTAL_EXPENSES
|
|
) VALUES (
|
|
#{ objId }
|
|
,(SELECT 'CSM'||TO_CHAR(NOW(),'yy')::VARCHAR ||'-'||LPAD((SELECT nextval('seq_as_no'))::VARCHAR ,4,'0'))
|
|
,(CASE WHEN #{product} = '' THEN NULL ELSE #{product} END)
|
|
,#{ contract_objid }
|
|
,#{ cs_category }
|
|
,#{ warranty }
|
|
,#{ manager_id }
|
|
,#{ act_date }
|
|
,#{ category_h }
|
|
,#{ category_m }
|
|
,#{ category_l }
|
|
,#{ title }
|
|
,#{ before_contents }
|
|
,#{ after_contents }
|
|
,#{ writer }
|
|
,now()
|
|
,(CASE WHEN #{ status } = '' OR #{ status } IS NULL THEN '0000100' ELSE #{ status }::VARCHAR END)
|
|
,#{ TOTAL_SUP_PRICE }
|
|
,#{ TOTAL_WORK_DAY }
|
|
,#{ TOTAL_WORK_PERSON }
|
|
,#{ TOTAL_WORK_DAY_M }
|
|
,#{ TOTAL_LABOR_COST }
|
|
,#{ TOTAL_EXPENSES }
|
|
) ON CONFLICT (OBJID) DO
|
|
UPDATE SET
|
|
SERVICE_NO = #{ service_no }
|
|
,PRODUCT = (CASE WHEN #{product} = '' THEN NULL ELSE #{product} END)
|
|
,CONTRACT_OBJID = #{ contract_objid }
|
|
,CS_CATEGORY = #{ cs_category }
|
|
,WARRANTY = #{ warranty }
|
|
,MANAGER_ID = #{ manager_id }
|
|
,ACT_DATE = #{ act_date }
|
|
,CATEGORY_H = #{ category_h }
|
|
,CATEGORY_M = #{ category_m }
|
|
,CATEGORY_L = #{ category_l }
|
|
,TITLE = #{ title }
|
|
,BEFORE_CONTENTS = #{ before_contents }
|
|
,AFTER_CONTENTS = #{ after_contents }
|
|
,WRITER = #{ writer }
|
|
,REGDATE = now()
|
|
,STATUS = (CASE WHEN #{ status } = '' OR #{ status } IS NULL THEN '0000100' ELSE #{ status }::VARCHAR END)
|
|
,TOTAL_SUP_PRICE = #{ TOTAL_SUP_PRICE }
|
|
,TOTAL_WORK_DAY = #{ TOTAL_WORK_DAY }
|
|
,TOTAL_WORK_PERSON = #{ TOTAL_WORK_PERSON }
|
|
,TOTAL_WORK_DAY_M = #{ TOTAL_WORK_DAY_M }
|
|
,TOTAL_LABOR_COST = #{ TOTAL_LABOR_COST }
|
|
,TOTAL_EXPENSES = #{ TOTAL_EXPENSES }
|
|
</update>
|
|
|
|
<delete id="deleteCSP" parameterType="map">
|
|
DELETE FROM CUSTOMER_SERVICE_PART WHERE PARENT_OBJID = #{PARENT_OBJID}
|
|
</delete>
|
|
<update id="mergeCSP" parameterType="map">
|
|
INSERT INTO CUSTOMER_SERVICE_PART (
|
|
OBJID
|
|
,PARENT_OBJID
|
|
,PART_NO
|
|
,PART_NAME
|
|
,SPEC
|
|
,QTY
|
|
,CUR_QTY
|
|
,PRICE
|
|
,SUP_PRICE
|
|
) VALUES (
|
|
#{ OBJID }
|
|
,#{ PARENT_OBJID }
|
|
,#{ PART_NO }
|
|
,#{ PART_NAME }
|
|
,#{ SPEC }
|
|
,#{ QTY }
|
|
,#{ CUR_QTY }
|
|
,#{ PRICE }
|
|
,#{ SUP_PRICE }
|
|
) ON CONFLICT (OBJID) DO
|
|
UPDATE SET
|
|
PARENT_OBJID = #{ PARENT_OBJID }
|
|
,PART_NO = #{ PART_NO }
|
|
,PART_NAME = #{ PART_NAME }
|
|
,SPEC = #{ SPEC }
|
|
,QTY = #{ QTY }
|
|
,CUR_QTY = #{ CUR_QTY }
|
|
,PRICE = #{ PRICE }
|
|
,SUP_PRICE = #{ SUP_PRICE }
|
|
</update>
|
|
|
|
<delete id="deleteCSW" parameterType="map">
|
|
DELETE FROM CUSTOMER_SERVICE_WORKINGTIME WHERE PARENT_OBJID = #{PARENT_OBJID}
|
|
</delete>
|
|
<update id="mergeCSW" parameterType="map">
|
|
INSERT INTO CUSTOMER_SERVICE_WORKINGTIME (
|
|
OBJID
|
|
,PARENT_OBJID
|
|
,SUPPLY_OBJID
|
|
,FORM_DATE
|
|
,TO_DATE
|
|
,WORK_DAY
|
|
,WORK_PERSON
|
|
,WORK_DAY_M
|
|
,LABOR_COST
|
|
,EXPENSES
|
|
) VALUES (
|
|
#{ OBJID }
|
|
,#{ PARENT_OBJID }
|
|
,#{ SUPPLY_OBJID }
|
|
,#{ FORM_DATE }
|
|
,#{ TO_DATE }
|
|
,#{ WORK_DAY }
|
|
,#{ WORK_PERSON }
|
|
,#{ WORK_DAY_M }
|
|
,#{ LABOR_COST }
|
|
,#{ EXPENSES }
|
|
) ON CONFLICT (OBJID) DO
|
|
UPDATE SET
|
|
PARENT_OBJID = #{ PARENT_OBJID }
|
|
,SUPPLY_OBJID = #{ SUPPLY_OBJID }
|
|
,FORM_DATE = #{ FORM_DATE }
|
|
,TO_DATE = #{ TO_DATE }
|
|
,WORK_DAY = #{ WORK_DAY }
|
|
,WORK_PERSON = #{ WORK_PERSON }
|
|
,WORK_DAY_M = #{ WORK_DAY_M }
|
|
,LABOR_COST = #{ LABOR_COST }
|
|
,EXPENSES = #{ EXPENSES }
|
|
</update>
|
|
|
|
<select id="getASDashboardList" parameterType="map" resultType="map">
|
|
SELECT A.*
|
|
FROM (
|
|
SELECT
|
|
PRODUCT
|
|
,(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = T.PRODUCT) AS PRODUCT_NAME
|
|
,PROJECT_NO
|
|
,SUM(CASE WHEN WARRANTY = '0000157' THEN 1 ELSE 0 END) AS WARRANTY1
|
|
,SUM(CASE WHEN WARRANTY = '0000157' THEN COST ELSE 0 END) AS COST1
|
|
,SUM(CASE WHEN WARRANTY = '0000158' THEN 1 ELSE 0 END) AS WARRANTY2
|
|
,SUM(CASE WHEN WARRANTY = '0000158' THEN COST ELSE 0 END) AS COST2
|
|
|
|
<if test="columnList !=null">
|
|
<foreach collection="columnList" item="column">
|
|
,SUM(CASE WHEN CATEGORY_H = #{column.CODE_ID} THEN 1 ELSE 0 END) AS ${column.COL_NAME}
|
|
</foreach>
|
|
</if>
|
|
FROM(
|
|
SELECT
|
|
CSM.PRODUCT
|
|
,TRIM(CM.PROJECT_NO) AS PROJECT_NO
|
|
,CSM.WARRANTY /*157유상 158무상*/
|
|
,CSM.ACT_DATE
|
|
,CSM.CATEGORY_H
|
|
,(CSM.total_labor_cost::NUMERIC + CSM.total_expenses::NUMERIC) AS COST
|
|
FROM
|
|
CUSTOMER_SERVICE_MGMT AS CSM
|
|
|
|
LEFT OUTER JOIN CONTRACT_MGMT AS CM
|
|
ON CSM.CONTRACT_OBJID = CM.OBJID
|
|
|
|
WHERE 1=1
|
|
AND CSM.STATUS = '0000102' /*결재완료*/
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(TO_DATE(CSM.ACT_DATE, 'YYYY-MM-DD'),'YYYY') = #{Year}
|
|
</if>
|
|
<if test="product_cd !=null and product_cd != '' ">
|
|
AND CSM.PRODUCT = #{product_cd}
|
|
</if>
|
|
<!-- <if test="project_no !=null and project_no != '' ">
|
|
AND CM.PROJECT_NO LIKE '%'||#{project_name}||'%'
|
|
AND CSM.CONTRACT_OBJID = #{project_no}
|
|
</if> -->
|
|
<if test="project_nos != null and project_nos != ''">
|
|
AND CSM.CONTRACT_OBJID IN
|
|
<foreach item="state" collection="project_nos.split(',')"
|
|
open="(" separator="," close=")">
|
|
#{state}
|
|
</foreach>
|
|
</if>
|
|
<if test="warranty !=null and warranty != '' ">
|
|
AND CSM.WARRANTY = #{warranty}
|
|
</if>
|
|
<if test="category_h !=null and category_h != '' ">
|
|
AND CSM.CATEGORY_H = #{category_h}
|
|
</if>
|
|
) AS T
|
|
GROUP BY
|
|
PRODUCT,
|
|
PROJECT_NO
|
|
ORDER BY
|
|
PROJECT_NO DESC
|
|
) A
|
|
</select>
|
|
|
|
|
|
<select id="getHeaderList" parameterType="map" resultType="map">
|
|
WITH RECURSIVE COM (
|
|
PARENT_CODE_ID,
|
|
CODE_ID,
|
|
NAME,
|
|
CODE_CD,
|
|
STATUS,
|
|
ID,
|
|
EXT_VAL,
|
|
COL_NAME,
|
|
LEV
|
|
) AS (
|
|
SELECT
|
|
PARENT_CODE_ID,
|
|
CODE_ID,
|
|
CODE_NAME AS NAME,
|
|
CODE_CD,
|
|
STATUS,
|
|
ID,
|
|
EXT_VAL,
|
|
'COL_' || CODE_ID AS COL_NAME,
|
|
1 AS LEV
|
|
FROM
|
|
COMM_CODE
|
|
WHERE
|
|
1 = 1
|
|
AND UPPER(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>
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
CC.PARENT_CODE_ID,
|
|
CC.CODE_ID,
|
|
CC.CODE_NAME AS NAME,
|
|
CC.CODE_CD,
|
|
CC.STATUS,
|
|
CC.ID,
|
|
CC.EXT_VAL,
|
|
'COL_' || CC.CODE_ID AS COL_NAME,
|
|
COM.LEV + 1
|
|
FROM
|
|
COMM_CODE CC
|
|
JOIN COM ON
|
|
COM.CODE_ID = CC.PARENT_CODE_ID
|
|
)
|
|
SELECT
|
|
ROW_NUMBER() OVER (PARTITION BY PARENT_CODE_ID ORDER BY CODE_ID) GROUP_SEQ,
|
|
(SELECT COUNT(1) FROM COMM_CODE WHERE 1 = 1 AND PARENT_CODE_ID = C.PARENT_CODE_ID) AS GROUP_CNT,
|
|
(SELECT CODE_NAME FROM COMM_CODE WHERE 1 = 1 AND CODE_ID = C.PARENT_CODE_ID) AS GROUP_NAME,
|
|
C.*
|
|
FROM
|
|
COM C
|
|
WHERE 1=1
|
|
AND LEV <![CDATA[ > ]]> 1
|
|
ORDER BY
|
|
C.PARENT_CODE_ID,
|
|
C.CODE_ID
|
|
</select>
|
|
|
|
|
|
</mapper> |