8142 lines
311 KiB
XML
8142 lines
311 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="project">
|
|
<!-- ********************************************************************************************************** -->
|
|
<!-- //jmpark start -->
|
|
|
|
<!-- //이슈 목록 조회 -->
|
|
<select id="getIssueList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM (
|
|
SELECT PMS_ISSUE_INFO.*,ROW_NUMBER() OVER (ORDER BY REGDATE DESC) AS RNUM
|
|
FROM(
|
|
SELECT PMS_ISSUE_INFO.*
|
|
FROM(
|
|
SELECT A.OBJID
|
|
, A.REGION
|
|
, A.OEM_OBJID
|
|
, (SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = A.OEM_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
|
|
, A.PROD_GROUP_OBJID
|
|
, (SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = A.PROD_GROUP_OBJID) AS PROD_GROUP_NAME
|
|
, A.PROD_OBJID
|
|
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = A.PROD_OBJID) AS PROD_NAME
|
|
, A.SUBJECT
|
|
, A.ISSUE_CONTENTS
|
|
, A.ISSUE_RESULT_CONTENTS
|
|
, A.PIC_DEPT
|
|
, TO_CHAR(A.COMPLETE_PLAN_DATE, 'YYYY-MM-DD') AS COMPLETE_PLAN_DATE
|
|
, TO_CHAR(A.COMPLETE_DATE, 'YYYY-MM-DD') AS COMPLETE_DATE
|
|
, 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
|
|
, DECODE(COMPLETE_DATE, NULL, '진행중', '완료') AS STATUS
|
|
, (SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = A.OBJID AND DOC_TYPE='ISSUE_ATTACH' AND UPPER(STATUS) = 'ACTIVE') AS ISSUE_FILE_CNT
|
|
FROM PMS_ISSUE_INFO A
|
|
WHERE 1=1
|
|
<if test="search_region != null and search_region !='' ">
|
|
AND A.REGION = #{search_region}
|
|
</if>
|
|
<if test="search_carType != null and search_carType != '' ">
|
|
AND A.CAR_OBJID = #{search_carType}
|
|
</if>
|
|
<if test="search_productType != null and search_productType !=''">
|
|
AND A.PROD_OBJID = #{search_productType}
|
|
</if>
|
|
) PMS_ISSUE_INFO
|
|
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_fromDate != null and search_fromDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and search_toDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_status !=null and search_status !=''">
|
|
AND UPPER(STATUS) = UPPER(#{search_status})
|
|
</if>
|
|
<if test="search_writer != null and !''.equals(search_writer)">
|
|
AND UPPER(WRITER_USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
<if test="search_dept != null and !''.equals(search_dept)">
|
|
AND UPPER(WRITER_DEPT_NAME) LIKE UPPER('%${search_dept}%')
|
|
</if>
|
|
<if test="search_pic_dept != null and !''.equals(search_pic_dept)">
|
|
AND UPPER(PIC_DEPT) LIKE UPPER('%${search_pic_dept}%')
|
|
</if>
|
|
)PMS_ISSUE_INFO
|
|
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="getIssueListCnt" 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.OBJID
|
|
, A.REGION
|
|
, A.OEM_OBJID
|
|
, (SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = A.OEM_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
|
|
, A.PROD_GROUP_OBJID
|
|
, (SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = A.PROD_GROUP_OBJID) AS PROD_GROUP_NAME
|
|
, A.PROD_OBJID
|
|
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = A.PROD_OBJID) AS PROD_NAME
|
|
, A.SUBJECT
|
|
, A.ISSUE_CONTENTS
|
|
, A.ISSUE_RESULT_CONTENTS
|
|
, A.PIC_DEPT
|
|
, TO_CHAR(A.COMPLETE_PLAN_DATE, 'YYYY-MM-DD') AS COMPLETE_PLAN_DATE
|
|
, TO_CHAR(A.COMPLETE_DATE, 'YYYY-MM-DD') AS COMPLETE_DATE
|
|
, 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
|
|
, DECODE(COMPLETE_DATE, NULL, '진행중', '완료') AS STATUS
|
|
, (SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = A.OBJID AND DOC_TYPE='ISSUE_ATTACH' AND UPPER(STATUS) = 'ACTIVE') AS ISSUE_FILE_CNT
|
|
FROM PMS_ISSUE_INFO A
|
|
WHERE 1=1
|
|
<if test="search_region != null and search_region !='' ">
|
|
AND A.REGION = #{search_region}
|
|
</if>
|
|
<if test="search_carType != null and search_carType != '' ">
|
|
AND A.CAR_OBJID = #{search_carType}
|
|
</if>
|
|
<if test="search_productType != null and search_productType !=''">
|
|
AND A.PROD_OBJID = #{search_productType}
|
|
</if>
|
|
ORDER BY A.REGDATE DESC
|
|
) PMS_ISSUE_INFO
|
|
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_fromDate != null and search_fromDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and search_toDate != ''">
|
|
AND TO_DATE(REGDATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_status !=null and search_status !=''">
|
|
AND UPPER(STATUS) = UPPER(#{search_status})
|
|
</if>
|
|
<if test="search_writer != null and !''.equals(search_writer)">
|
|
AND UPPER(WRITER_USER_NAME) LIKE UPPER('%${search_writer}%')
|
|
</if>
|
|
<if test="search_dept != null and !''.equals(search_dept)">
|
|
AND UPPER(WRITER_DEPT_NAME) LIKE UPPER('%${search_dept}%')
|
|
</if>
|
|
<if test="search_pic_dept != null and !''.equals(search_pic_dept)">
|
|
AND UPPER(PIC_DEPT) LIKE UPPER('%${search_pic_dept}%')
|
|
</if>
|
|
)WHERE 1=1
|
|
</select>
|
|
|
|
<!-- //이슈 상세조회 -->
|
|
<select id="getIssueInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID
|
|
,PARENT_OBJID
|
|
,ISSUE_NO
|
|
,CODE_NAME(ISU_CD) AS ISU_NAME
|
|
,ISU_CD
|
|
,PROJECT_NAME
|
|
,TITLE
|
|
,CONTENT
|
|
,RESULT
|
|
,CODE_NAME(OCCU_CD) AS OCCU_NAME
|
|
,OCCU_CD
|
|
,CODE_NAME(STEP_CD) AS STEP_NAME
|
|
,STEP_CD
|
|
,CODE_NAME(CASE_CD) AS CASE_NAME
|
|
,CASE_CD
|
|
,WRITER
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = T.WRITER) AS WRITER_NAME
|
|
,TO_CHAR(REG_DATE,'YYYY-MM-DD') AS REG_DATE
|
|
,TO_CHAR(REQ_DATE,'YYYY-MM-DD') AS REQ_DATE
|
|
,(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = T.SOL_USERID) AS SOL_USER_DEPT
|
|
,(SELECT DEPT_CODE FROM USER_INFO WHERE USER_ID = T.SOL_USERID) AS SOL_USER_DEPT_ID
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = T.SOL_USERID) AS SOL_USER_NAME
|
|
,SOL_USERID
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = T.CUR_USERID) AS CUR_USER_NAME
|
|
,CUR_USERID
|
|
,TO_CHAR(RET_DATE,'YYYY-MM-DD') AS RET_DATE
|
|
,CUR_COST
|
|
,WPST_CD
|
|
,APPR_WPST_CD
|
|
,CODE_NAME(WPST_CD) AS WPST_NAME
|
|
,CUSTOMER_CD
|
|
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T.CUSTOMER_CD) AS CUSTOMER_NAME
|
|
, (
|
|
SELECT B.STATUS FROM APPROVAL A, ROUTE B WHERE A.OBJID = B.APPROVAL_OBJID AND TARGET_TYPE = 'ISSUE_RELEASE' AND A.TARGET_OBJID = T.OBJID
|
|
) AS APPROVAL_STATUS
|
|
FROM ISSUE_MGMT T
|
|
WHERE 1=1
|
|
AND T.OBJID = #{objId}::integer
|
|
</select>
|
|
|
|
<!-- //홍성 이슈저장 -->
|
|
<update id="saveIssueMgmtInfo" parameterType="map">
|
|
MERGE INTO ISSUE_MGMT USING DUAL ON (OBJID = #{objId})
|
|
WHEN MATCHED THEN
|
|
UPDATE
|
|
SET
|
|
<!-- PARENT_OBJID -->
|
|
<!-- ISSUE_NO = #{issue_no} -->
|
|
ISU_CD = #{isu_cd}
|
|
,PARENT_OBJID = #{parent_objid}
|
|
,PROJECT_NAME = #{project_no}
|
|
,TITLE = #{title}
|
|
,CONTENT = #{content}
|
|
,RESULT = #{resultContents}
|
|
,OCCU_CD = #{occu_cd}
|
|
,STEP_CD = #{step_cd}
|
|
,CASE_CD = #{case_cd}
|
|
,REQ_DATE = TO_DATE(#{req_date}, 'YYYY-MM-DD')
|
|
,SOL_USERID = #{sol_userid}
|
|
,CUR_USERID = #{cur_userid}
|
|
,CUR_COST = #{cur_cost}
|
|
,CUSTOMER_CD = #{customer_cd}
|
|
,WPST_CD = #{wpst_cd}
|
|
,APPR_WPST_CD = #{appr_wpst_cd}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT (
|
|
OBJID /*OBJID*/
|
|
,PARENT_OBJID /*프로젝트OBJID*/
|
|
,ISSUE_NO /*이슈NO*/
|
|
,ISU_CD /*이슈구분*/
|
|
,PROJECT_NAME /*프로젝트 명*/
|
|
,TITLE /*제목*/
|
|
,CONTENT /*이슈내용*/
|
|
,RESULT /*조치내용*/
|
|
,OCCU_CD /*발생처*/
|
|
,STEP_CD /*단계*/
|
|
,CASE_CD /*유형*/
|
|
,WRITER /*작성자*/
|
|
,REG_DATE /*등록일*/
|
|
,REQ_DATE /*조치요청일*/
|
|
,SOL_USERID /*조치담당자*/
|
|
,CUR_USERID /*현재처리자*/
|
|
,CUR_COST /*발생비용*/
|
|
,CUSTOMER_CD /*발생비용*/
|
|
,WPST_CD
|
|
,APPR_WPST_CD
|
|
)VALUES(
|
|
#{objId}
|
|
,#{parent_objid}
|
|
,#{issue_no}
|
|
,#{isu_cd}
|
|
,#{project_no}
|
|
,#{title}
|
|
,#{content}
|
|
,#{resultContents}
|
|
,#{occu_cd}
|
|
,#{step_cd}
|
|
,#{case_cd}
|
|
,#{writer}
|
|
,SYSDATE
|
|
,TO_DATE(#{req_date}, 'YYYY-MM-DD')
|
|
,#{sol_userid}
|
|
,#{cur_userid}
|
|
,#{cur_cost}
|
|
,#{customer_cd}
|
|
,'WPS00700'
|
|
,#{appr_wpst_cd}
|
|
)
|
|
</update>
|
|
|
|
<!-- //홍성 이슈 조치일 저장 -->
|
|
<update id="updateIssueMgmtInfo" parameterType="map">
|
|
UPDATE ISSUE_MGMT
|
|
SET
|
|
RET_DATE = SYSDATE
|
|
WHERE OBJID = #{objId}
|
|
</update>
|
|
|
|
<!-- //홍성 이슈 배포업데이트 -->
|
|
<update id="issueWpstStatusUpdate" parameterType="map">
|
|
UPDATE ISSUE_MGMT
|
|
SET WPST_CD = #{status} , ISSUE_NO = #{issueNo}
|
|
WHERE OBJID = #{objId}
|
|
</update>
|
|
|
|
<select id="getIssueNo" parameterType="map" resultType="map">
|
|
SELECT
|
|
NVL(MAX(ISSUE_NO)+1, TO_CHAR(SYSDATE,'YYYY')||'001') AS ISSUNO
|
|
FROM ISSUE_MGMT
|
|
WHERE TO_CHAR(REG_DATE, 'YYYY') = TO_CHAR(SYSDATE,'YYYY')
|
|
</select>
|
|
|
|
<!-- //이슈저장 -->
|
|
<update id="saveIssueInfo" parameterType="map">
|
|
MERGE INTO PMS_ISSUE_INFO USING DUAL ON (OBJID = #{objId})
|
|
WHEN MATCHED THEN
|
|
UPDATE
|
|
SET
|
|
REGION = #{region}
|
|
, OEM_OBJID = #{oemObjId}
|
|
, CAR_OBJID = #{carObjId}
|
|
, PROD_GROUP_OBJID = #{prodGroupObjId}
|
|
, PROD_OBJID = #{prodObjId}
|
|
, SUBJECT = #{subject}
|
|
, ISSUE_CONTENTS = #{issueContents}
|
|
, ISSUE_RESULT_CONTENTS = #{issueResultContents}
|
|
, PIC_DEPT = #{picDept}
|
|
, COMPLETE_PLAN_DATE = TO_DATE(#{completePlanDate}, 'YYYY-MM-DD')
|
|
, COMPLETE_DATE = TO_DATE(#{completeDate}, 'YYYY-MM-DD')
|
|
WHEN NOT MATCHED THEN
|
|
INSERT (
|
|
OBJID
|
|
, REGION
|
|
, OEM_OBJID
|
|
, CAR_OBJID
|
|
, PROD_GROUP_OBJID
|
|
, PROD_OBJID
|
|
, SUBJECT
|
|
, ISSUE_CONTENTS
|
|
, ISSUE_RESULT_CONTENTS
|
|
, PIC_DEPT
|
|
, COMPLETE_PLAN_DATE
|
|
, COMPLETE_DATE
|
|
, WRITER
|
|
, REGDATE
|
|
)VALUES(
|
|
#{objId}
|
|
, #{region}
|
|
, #{oemObjId}
|
|
, #{carObjId}
|
|
, #{prodGroupObjId}
|
|
, #{prodObjId}
|
|
, #{subject}
|
|
, #{issueContents}
|
|
, #{issueResultContents}
|
|
, #{picDept}
|
|
, TO_DATE(#{completePlanDate}, 'YYYY-MM-DD')
|
|
, TO_DATE(#{completeDate}, 'YYYY-MM-DD')
|
|
, #{writer}
|
|
, SYSDATE
|
|
)
|
|
</update>
|
|
|
|
<!-- //Gate관리 內 프로젝트 목록 조회 -->
|
|
<select id="getProjectList_byGate" parameterType="map" resultType="map">
|
|
SELECT ROW_NUMBER() OVER(ORDER BY SOP_DATE DESC NULLS LAST) AS RNUM, PROJECT.*
|
|
FROM (
|
|
SELECT A.OBJID
|
|
, A.OEM_OBJID
|
|
, (SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = A.OEM_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
|
|
, A.YEARLY_AVG_PRODUCTION_CNT AS YEARLY_AVG_PRODUCTION_CNT_ORG
|
|
, A.TOTAL_PRODUCTION_CNT AS TOTAL_PRODUCTION_CNT_ORG
|
|
, TRIM(TO_CHAR(NVL(A.YEARLY_AVG_PRODUCTION_CNT, 0), '999,999,999,990')) AS YEARLY_AVG_PRODUCTION_CNT
|
|
, TRIM(TO_CHAR(NVL(A.TOTAL_PRODUCTION_CNT, 0), '999,999,999,990')) AS TOTAL_PRODUCTION_CNT
|
|
, A.OEM_FACTORY
|
|
, (SELECT FACTORY_NAME FROM OEM_FACTORY_MNG WHERE OBJID = A.OEM_FACTORY) AS OEM_FACTORY_NAME
|
|
, (SELECT TO_CHAR(CAR_MILE.MILESTONE_DATE, 'YYYY-MM-DD') AS MILESTONE_DATE FROM OEM_MILESTONE_MNG OEM_MILE, CAR_MILESTONE_MNG CAR_MILE WHERE OEM_MILE.OBJID = CAR_MILE.MILESTONE_OBJID AND UPPER(OEM_MILE.MILESTONE_NAME) = 'SOP' AND CAR_MILE.CAR_OBJID = A.CAR_OBJID AND OEM_MILE.OEM_OBJID = A.OEM_OBJID) AS SOP_DATE
|
|
<!-- , (SELECT TO_CHAR(B.MILESTONE_DATE, 'YYYY-MM-DD') AS MILESTONE_DATE FROM OEM_MILESTONE_MNG A, CAR_MILESTONE_MNG B WHERE A.OBJID = B.MILESTONE_OBJID AND UPPER(A.MILESTONE_NAME) = 'SOP' AND B.CAR_OBJID = A.CAR_OBJID) AS SOP_DATE -->
|
|
, (SELECT COUNT(*) FROM PMS_REL_PJT_PROD WHERE TARGET_OBJID = A.OBJID) AS PROD_CNT
|
|
, (
|
|
SELECT CASE WHEN TO_CHAR(LAST_DAY(GATE4_TO_DATE), 'YYYY-MM-DD') <![CDATA[ <= ]]> TO_CHAR(SYSDATE, 'YYYY-MM-DD') THEN 'GATE4'
|
|
WHEN TO_CHAR(LAST_DAY(GATE4_TO_DATE), 'YYYY-MM-DD') <![CDATA[ >= ]]> TO_CHAR(SYSDATE, 'YYYY-MM-DD') AND TO_CHAR(GATE4_FROM_DATE, 'YYYY-MM-DD') <![CDATA[ <= ]]> TO_CHAR(SYSDATE, 'YYYY-MM-DD') THEN 'GATE4'
|
|
WHEN TO_CHAR(LAST_DAY(GATE3_TO_DATE), 'YYYY-MM-DD') <![CDATA[ >= ]]> TO_CHAR(SYSDATE, 'YYYY-MM-DD') AND TO_CHAR(GATE3_FROM_DATE, 'YYYY-MM-DD') <![CDATA[ <= ]]> TO_CHAR(SYSDATE, 'YYYY-MM-DD') THEN 'GATE3'
|
|
WHEN TO_CHAR(LAST_DAY(GATE2_TO_DATE), 'YYYY-MM-DD') <![CDATA[ >= ]]> TO_CHAR(SYSDATE, 'YYYY-MM-DD') AND TO_CHAR(GATE2_FROM_DATE, 'YYYY-MM-DD') <![CDATA[ <= ]]> TO_CHAR(SYSDATE, 'YYYY-MM-DD') THEN 'GATE2'
|
|
WHEN TO_CHAR(LAST_DAY(GATE1_TO_DATE), 'YYYY-MM-DD') <![CDATA[ >= ]]> TO_CHAR(SYSDATE, 'YYYY-MM-DD') AND TO_CHAR(GATE1_FROM_DATE, 'YYYY-MM-DD') <![CDATA[ <= ]]> TO_CHAR(SYSDATE, 'YYYY-MM-DD') THEN 'GATE1'
|
|
WHEN TO_CHAR(GATE1_FROM_DATE, 'YYYY-MM-DD') <![CDATA[ >= ]]> TO_CHAR(SYSDATE, 'YYYY-MM-DD') THEN 'GATE1'
|
|
ELSE ''
|
|
END AS CURRENT_GATE
|
|
FROM PMS_PJT_REL_GATE_SCHEDULE
|
|
WHERE TARGET_OBJID = A.OBJID) AS CURRENT_GATE
|
|
FROM PMS_PJT_INFO A
|
|
WHERE UPPER(A.STATUS) = 'CONFIRM'
|
|
) PROJECT
|
|
WHERE 1=1
|
|
</select>
|
|
|
|
<!-- Project Gate Schedule 정보 조회 -->
|
|
<select id="getProjectGateSchedule" parameterType="map" resultType="map">
|
|
SELECT A.OBJID AS TARGET_OBJID
|
|
, A.OEM_OBJID
|
|
, (SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = A.OEM_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
|
|
, B.OBJID
|
|
, TO_CHAR(B.GATE1_FROM_DATE, 'YYYY-MM') AS GATE1_FROM_DATE
|
|
, TO_CHAR(LAST_DAY(B.GATE1_TO_DATE), 'YYYY-MM') AS GATE1_TO_DATE
|
|
, TO_CHAR(B.GATE2_FROM_DATE, 'YYYY-MM') AS GATE2_FROM_DATE
|
|
, TO_CHAR(LAST_DAY(B.GATE2_TO_DATE), 'YYYY-MM') AS GATE2_TO_DATE
|
|
, TO_CHAR(B.GATE3_FROM_DATE, 'YYYY-MM') AS GATE3_FROM_DATE
|
|
, TO_CHAR(LAST_DAY(B.GATE3_TO_DATE), 'YYYY-MM') AS GATE3_TO_DATE
|
|
, TO_CHAR(B.GATE4_FROM_DATE, 'YYYY-MM') AS GATE4_FROM_DATE
|
|
, TO_CHAR(LAST_DAY(B.GATE4_TO_DATE), 'YYYY-MM') AS GATE4_TO_DATE
|
|
FROM PMS_PJT_INFO A, PMS_PJT_REL_GATE_SCHEDULE B
|
|
WHERE 1=1
|
|
AND A.OBJID = B.TARGET_OBJID(+)
|
|
AND A.OBJID = #{targetObjId}
|
|
</select>
|
|
|
|
<!-- //project별 gate 일정 저장 -->
|
|
<update id="saveProjectGateScheduleInfo" parameterType="map">
|
|
MERGE INTO PMS_PJT_REL_GATE_SCHEDULE USING DUAL ON (OBJID = #{objId})
|
|
WHEN MATCHED THEN
|
|
UPDATE
|
|
SET
|
|
GATE1_FROM_DATE = TO_DATE(#{gate1FromMonth}, 'yyyy-mm')
|
|
, GATE1_TO_DATE = TO_DATE(#{gate1ToMonth}, 'yyyy-mm')
|
|
, GATE2_FROM_DATE = TO_DATE(#{gate2FromMonth}, 'yyyy-mm')
|
|
, GATE2_TO_DATE = TO_DATE(#{gate2ToMonth}, 'yyyy-mm')
|
|
, GATE3_FROM_DATE = TO_DATE(#{gate3FromMonth}, 'yyyy-mm')
|
|
, GATE3_TO_DATE = TO_DATE(#{gate3ToMonth}, 'yyyy-mm')
|
|
, GATE4_FROM_DATE = TO_DATE(#{gate4FromMonth}, 'yyyy-mm')
|
|
, GATE4_TO_DATE = TO_DATE(#{gate4ToMonth}, 'yyyy-mm')
|
|
WHEN NOT MATCHED THEN
|
|
INSERT (
|
|
OBJID
|
|
, TARGET_OBJID
|
|
, GATE1_FROM_DATE
|
|
, GATE1_TO_DATE
|
|
, GATE2_FROM_DATE
|
|
, GATE2_TO_DATE
|
|
, GATE3_FROM_DATE
|
|
, GATE3_TO_DATE
|
|
, GATE4_FROM_DATE
|
|
, GATE4_TO_DATE
|
|
) VALUES (
|
|
#{objId}
|
|
, #{targetObjId}
|
|
, TO_DATE(#{gate1FromMonth}, 'YYYY-MM')
|
|
, TO_DATE(#{gate1ToMonth}, 'YYYY-MM')
|
|
, TO_DATE(#{gate2FromMonth}, 'YYYY-MM')
|
|
, TO_DATE(#{gate2ToMonth}, 'YYYY-MM')
|
|
, TO_DATE(#{gate3FromMonth}, 'YYYY-MM')
|
|
, TO_DATE(#{gate3ToMonth}, 'YYYY-MM')
|
|
, TO_DATE(#{gate4FromMonth}, 'YYYY-MM')
|
|
, TO_DATE(#{gate4ToMonth}, 'YYYY-MM')
|
|
)
|
|
</update>
|
|
|
|
<!-- //Gate1 현황 목록 조회 -->
|
|
<select id="getGate1Status" parameterType="map" resultType="map">
|
|
SELECT A.*
|
|
, (SELECT COUNT(*) FROM PMS_PROBLEM_CONTINUAL_REFLECT WHERE REGDATE <![CDATA[ >= ]]> GATE1_FROM_DATE AND REGDATE <![CDATA[ <= ]]> LAST_DAY(GATE1_TO_DATE) AND CAR_OBJID = A.CAR_OBJID) AS REFLECT_CNT
|
|
, (SELECT COUNT(*) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = A.TARGET_OBJID AND DOC_TYPE = 'GATE_DPA' AND UPPER(STATUS) = 'ACTIVE' AND REGDATE <![CDATA[ >= ]]> GATE1_FROM_DATE AND REGDATE <![CDATA[ <= ]]> LAST_DAY(GATE1_TO_DATE)) AS DPA_FILE_CNT
|
|
, '0' AS DESIGN_CHECK_CNT
|
|
, (SELECT COUNT(*) FROM PMS_DFMEA_BASE_INFO WHERE REGDATE <![CDATA[ >= ]]> GATE1_FROM_DATE AND REGDATE <![CDATA[ <= ]]> LAST_DAY(GATE1_TO_DATE) AND CAR_OBJID = A.CAR_OBJID) AS DFMEA_CNT
|
|
, (SELECT COUNT(*) FROM PMS_STRUCTURE_REVIEW_REPORT WHERE UPPER(ACTION_RESULT) = 'REFLECT' AND REGDATE <![CDATA[ >= ]]> GATE1_FROM_DATE AND REGDATE <![CDATA[ <= ]]> LAST_DAY(GATE1_TO_DATE) AND CAR_OBJID = A.CAR_OBJID) AS STRUCTURE_REVIEW_REPORT_CNT
|
|
, (SELECT COUNT(*) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = A.TARGET_OBJID AND DOC_TYPE = 'GATE_BENCHIMARKING' AND UPPER(STATUS) = 'ACTIVE' AND REGDATE <![CDATA[ >= ]]> GATE1_FROM_DATE AND REGDATE <![CDATA[ <= ]]> LAST_DAY(GATE1_TO_DATE)) AS BENCHMARKING_FILE_CNT
|
|
, (SELECT COUNT(*) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = A.TARGET_OBJID AND DOC_TYPE = 'GATE_PROTO_DEV_STATUS' AND UPPER(STATUS) = 'ACTIVE' AND REGDATE <![CDATA[ >= ]]> GATE1_FROM_DATE AND REGDATE <![CDATA[ <= ]]> LAST_DAY(GATE1_TO_DATE)) AS PROTO_DEV_FILE_CNT
|
|
, MONTHS_BETWEEN(GATE1_TO_DATE, GATE1_FROM_DATE) AS DURATION_CNT
|
|
FROM (
|
|
SELECT A.OBJID
|
|
, A.TARGET_OBJID
|
|
, (SELECT CAR_OBJID FROM PMS_PJT_INFO WHERE OBJID = A.TARGET_OBJID) AS CAR_OBJID
|
|
, (SELECT OEM_OBJID FROM PMS_PJT_INFO WHERE OBJID = A.TARGET_OBJID) AS OEM_OBJID
|
|
, A.GATE1_FROM_DATE
|
|
<choose>
|
|
<when test="addMonths != null and !''.equals(addMonths)">
|
|
, LAST_DAY(ADD_MONTHS(A.GATE1_FROM_DATE, #{addMonths})) AS GATE1_TO_DATE
|
|
</when>
|
|
<otherwise>
|
|
, LAST_DAY(A.GATE1_TO_DATE) AS GATE1_TO_DATE
|
|
</otherwise>
|
|
</choose>
|
|
, TO_CHAR(A.GATE1_FROM_DATE, 'YYYY-MM') AS GATE1_FROM_DATE_STR
|
|
, TO_CHAR(LAST_DAY(A.GATE1_TO_DATE), 'YYYY-MM') AS GATE1_TO_DATE_STR
|
|
, TO_CHAR(A.GATE1_FROM_DATE, 'YYYY-MM-DD') AS GATE1_FROM_DATE_STR2
|
|
<choose>
|
|
<when test="addMonths != null and !''.equals(addMonths)">
|
|
, TO_CHAR(LAST_DAY(ADD_MONTHS(A.GATE1_FROM_DATE, #{addMonths})), 'YYYY-MM-DD') AS GATE1_TO_DATE_STR2
|
|
</when>
|
|
<otherwise>
|
|
, TO_CHAR(LAST_DAY(A.GATE1_TO_DATE), 'YYYY-MM-DD') AS GATE1_TO_DATE_STR2
|
|
</otherwise>
|
|
</choose>
|
|
FROM PMS_PJT_REL_GATE_SCHEDULE A
|
|
WHERE 1=1
|
|
AND TARGET_OBJID = #{targetObjId}
|
|
) A
|
|
</select>
|
|
|
|
<!-- //Gate2 현황 목록 조회 -->
|
|
<select id="getGate2Status" parameterType="map" resultType="map">
|
|
SELECT A.*
|
|
, (SELECT COUNT(*) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = A.TARGET_OBJID AND DOC_TYPE = 'GATE2_DEV_PLAN' AND UPPER(STATUS) = 'ACTIVE' AND REGDATE <![CDATA[ >= ]]> GATE2_FROM_DATE AND REGDATE <![CDATA[ <= ]]> LAST_DAY(GATE2_TO_DATE)) AS DEV_PLAN_FILE_CNT
|
|
, (SELECT COUNT(*) FROM PMS_STRUCTURE_REVIEW_REPORT WHERE UPPER(ACTION_RESULT) = 'REFLECT' AND REGDATE <![CDATA[ >= ]]> GATE2_FROM_DATE AND REGDATE <![CDATA[ <= ]]> LAST_DAY(GATE2_TO_DATE) AND CAR_OBJID = A.CAR_OBJID) AS STRUCTURE_REVIEW_REPORT_CNT
|
|
, (SELECT COUNT(*) FROM PMS_EO_APPLY_INFO EO, PART_INFO PART WHERE PART.OBJID = EO.TARGET_OBJID AND UPPER(PART.DRAWING_TYPE) = 'DRAW' AND UPPER(PART.STATUS) = 'COMPLETE' AND EO.ILJI_APPLY_POINT_DATE <![CDATA[ >= ]]> GATE2_FROM_DATE AND EO.ILJI_APPLY_POINT_DATE <![CDATA[ <= ]]> LAST_DAY(GATE2_TO_DATE) AND PART.CAR_OBJID = A.CAR_OBJID) AS EO_APPLY_CNT
|
|
, (SELECT COUNT(*) FROM PMS_PROBLEM_INFO P, PMS_PROBLEM_GROUP G WHERE G.OBJID = P.TARGET_OBJID AND P.RES_PLAN_DATE <![CDATA[ >= ]]> GATE2_FROM_DATE AND P.RES_PLAN_DATE <![CDATA[ <= ]]> LAST_DAY(GATE2_TO_DATE) AND G.CAR_OBJID = A.CAR_OBJID) AS PROBLEM_RESPONSE_CNT
|
|
, (SELECT COUNT(*) FROM PMS_ISSUE_INFO WHERE REGDATE <![CDATA[ >= ]]> GATE2_FROM_DATE AND REGDATE <![CDATA[ <= ]]> LAST_DAY(GATE2_TO_DATE) AND CAR_OBJID = A.CAR_OBJID) AS ISSUE_CNT
|
|
, (SELECT COUNT(*) FROM PMS_QUALITY_TEST_INFO WHERE REGDATE <![CDATA[ >= ]]> GATE2_FROM_DATE AND REGDATE <![CDATA[ <= ]]> LAST_DAY(GATE2_TO_DATE) AND UPPER(STATUS) = 'COMPLETE' AND CAR_OBJID = A.CAR_OBJID) AS QUALITY_TEST_CNT
|
|
, MONTHS_BETWEEN(GATE2_TO_DATE, GATE2_FROM_DATE) AS DURATION_CNT
|
|
, (SELECT COUNT(*) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = A.TARGET_OBJID AND DOC_TYPE = 'GATE2_CAR_TYPE' AND UPPER(STATUS) = 'ACTIVE' AND REGDATE <![CDATA[ >= ]]> GATE2_FROM_DATE AND REGDATE <![CDATA[ <= ]]> LAST_DAY(GATE2_TO_DATE)) AS GATE2_CAR_TYPE_CNT
|
|
, (SELECT COUNT(*) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = A.TARGET_OBJID AND DOC_TYPE = 'GATE2_PROD_PER' AND UPPER(STATUS) = 'ACTIVE' AND REGDATE <![CDATA[ >= ]]> GATE2_FROM_DATE AND REGDATE <![CDATA[ <= ]]> LAST_DAY(GATE2_TO_DATE)) AS GATE2_PROD_PER_CNT
|
|
, (SELECT COUNT(*) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = A.TARGET_OBJID AND DOC_TYPE = 'GATE2_PLT_MNG_PLAN' AND UPPER(STATUS) = 'ACTIVE' AND REGDATE <![CDATA[ >= ]]> GATE2_FROM_DATE AND REGDATE <![CDATA[ <= ]]> LAST_DAY(GATE2_TO_DATE)) AS GATE2_PLT_MNG_PLAN_CNT
|
|
, (SELECT COUNT(*) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = A.TARGET_OBJID AND DOC_TYPE = 'GATE2_PLT_DEV_SCHED' AND UPPER(STATUS) = 'ACTIVE' AND REGDATE <![CDATA[ >= ]]> GATE2_FROM_DATE AND REGDATE <![CDATA[ <= ]]> LAST_DAY(GATE2_TO_DATE)) AS GATE2_PLT_DEV_SCHED_CNT
|
|
, (SELECT COUNT(*) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = A.TARGET_OBJID AND DOC_TYPE = 'GATE2_ETC' AND UPPER(STATUS) = 'ACTIVE' AND REGDATE <![CDATA[ >= ]]> GATE2_FROM_DATE AND REGDATE <![CDATA[ <= ]]> LAST_DAY(GATE2_TO_DATE)) AS GATE2_ETC_CNT
|
|
FROM (
|
|
SELECT A.OBJID
|
|
, A.TARGET_OBJID
|
|
, (SELECT CAR_OBJID FROM PMS_PJT_INFO WHERE OBJID = A.TARGET_OBJID) AS CAR_OBJID
|
|
, (SELECT OEM_OBJID FROM PMS_PJT_INFO WHERE OBJID = A.TARGET_OBJID) AS OEM_OBJID
|
|
, A.GATE2_FROM_DATE
|
|
<choose>
|
|
<when test="addMonths != null and !''.equals(addMonths)">
|
|
, LAST_DAY(ADD_MONTHS(A.GATE2_FROM_DATE, #{addMonths})) AS GATE2_TO_DATE
|
|
</when>
|
|
<otherwise>
|
|
, LAST_DAY(A.GATE2_TO_DATE) AS GATE2_TO_DATE
|
|
</otherwise>
|
|
</choose>
|
|
, TO_CHAR(A.GATE2_FROM_DATE, 'YYYY-MM') AS GATE2_FROM_DATE_STR
|
|
, TO_CHAR(LAST_DAY(A.GATE2_TO_DATE), 'YYYY-MM') AS GATE2_TO_DATE_STR
|
|
, TO_CHAR(A.GATE2_FROM_DATE, 'YYYY-MM-DD') AS GATE2_FROM_DATE_STR2
|
|
<choose>
|
|
<when test="addMonths != null and !''.equals(addMonths)">
|
|
, TO_CHAR(LAST_DAY(ADD_MONTHS(A.GATE2_FROM_DATE, #{addMonths})), 'YYYY-MM-DD') AS GATE2_TO_DATE_STR2
|
|
</when>
|
|
<otherwise>
|
|
, TO_CHAR(LAST_DAY(A.GATE2_TO_DATE), 'YYYY-MM-DD') AS GATE2_TO_DATE_STR2
|
|
</otherwise>
|
|
</choose>
|
|
FROM PMS_PJT_REL_GATE_SCHEDULE A
|
|
WHERE 1=1
|
|
AND TARGET_OBJID = #{targetObjId}
|
|
) A
|
|
</select>
|
|
|
|
<!-- //Gate3 현황 목록 조회 -->
|
|
<select id="getGate3Status" parameterType="map" resultType="map">
|
|
SELECT A.*
|
|
, (SELECT COUNT(*) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = A.TARGET_OBJID AND DOC_TYPE = 'GATE_DEV_PLAN' AND UPPER(STATUS) = 'ACTIVE' AND REGDATE <![CDATA[ >= ]]> GATE3_FROM_DATE AND REGDATE <![CDATA[ <= ]]> LAST_DAY(GATE3_TO_DATE)) AS DEV_PLAN_FILE_CNT
|
|
, (SELECT COUNT(*) FROM PMS_STRUCTURE_REVIEW_REPORT WHERE UPPER(ACTION_RESULT) = 'REFLECT' AND REGDATE <![CDATA[ >= ]]> GATE3_FROM_DATE AND REGDATE <![CDATA[ <= ]]> LAST_DAY(GATE3_TO_DATE) AND CAR_OBJID = A.CAR_OBJID) AS STRUCTURE_REVIEW_REPORT_CNT
|
|
, (SELECT COUNT(*) FROM PMS_EO_APPLY_INFO EO, PART_INFO PART WHERE PART.OBJID = EO.TARGET_OBJID AND UPPER(PART.DRAWING_TYPE) = 'DRAW' AND UPPER(PART.STATUS) = 'COMPLETE' AND EO.ILJI_APPLY_POINT_DATE <![CDATA[ >= ]]> GATE3_FROM_DATE AND EO.ILJI_APPLY_POINT_DATE <![CDATA[ <= ]]> LAST_DAY(GATE3_TO_DATE) AND PART.CAR_OBJID = A.CAR_OBJID) AS EO_APPLY_CNT
|
|
, (SELECT COUNT(*) FROM PMS_PROBLEM_INFO P, PMS_PROBLEM_GROUP G WHERE G.OBJID = P.TARGET_OBJID AND P.RES_PLAN_DATE <![CDATA[ >= ]]> GATE3_FROM_DATE AND P.RES_PLAN_DATE <![CDATA[ <= ]]> LAST_DAY(GATE3_TO_DATE) AND G.CAR_OBJID = A.CAR_OBJID) AS PROBLEM_RESPONSE_CNT
|
|
, (SELECT COUNT(*) FROM PMS_ISSUE_INFO WHERE REGDATE <![CDATA[ >= ]]> GATE3_FROM_DATE AND REGDATE <![CDATA[ <= ]]> LAST_DAY(GATE3_TO_DATE) AND CAR_OBJID = A.CAR_OBJID) AS ISSUE_CNT
|
|
, (SELECT COUNT(*) FROM PMS_QUALITY_TEST_INFO WHERE REGDATE <![CDATA[ >= ]]> GATE3_FROM_DATE AND REGDATE <![CDATA[ <= ]]> LAST_DAY(GATE3_TO_DATE) AND UPPER(STATUS) = 'COMPLETE' AND CAR_OBJID = A.CAR_OBJID) AS QUALITY_TEST_CNT
|
|
, MONTHS_BETWEEN(GATE3_TO_DATE, GATE3_FROM_DATE) AS DURATION_CNT
|
|
, (SELECT COUNT(*) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = A.TARGET_OBJID AND DOC_TYPE = 'GATE3_CAR_TYPE' AND UPPER(STATUS) = 'ACTIVE' AND REGDATE <![CDATA[ >= ]]> GATE3_FROM_DATE AND REGDATE <![CDATA[ <= ]]> LAST_DAY(GATE3_TO_DATE)) AS GATE3_CAR_TYPE_CNT
|
|
, (SELECT COUNT(*) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = A.TARGET_OBJID AND DOC_TYPE = 'GATE3_PROD_PER' AND UPPER(STATUS) = 'ACTIVE' AND REGDATE <![CDATA[ >= ]]> GATE3_FROM_DATE AND REGDATE <![CDATA[ <= ]]> LAST_DAY(GATE3_TO_DATE)) AS GATE3_PROD_PER_CNT
|
|
, (SELECT COUNT(*) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = A.TARGET_OBJID AND DOC_TYPE = 'GATE3_PLT_MNG_PLAN' AND UPPER(STATUS) = 'ACTIVE' AND REGDATE <![CDATA[ >= ]]> GATE3_FROM_DATE AND REGDATE <![CDATA[ <= ]]> LAST_DAY(GATE3_TO_DATE)) AS GATE3_PLT_MNG_PLAN_CNT
|
|
, (SELECT COUNT(*) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = A.TARGET_OBJID AND DOC_TYPE = 'GATE3_PLT_DEV_SCHED' AND UPPER(STATUS) = 'ACTIVE' AND REGDATE <![CDATA[ >= ]]> GATE3_FROM_DATE AND REGDATE <![CDATA[ <= ]]> LAST_DAY(GATE3_TO_DATE)) AS GATE3_PLT_DEV_SCHED_CNT
|
|
, (SELECT COUNT(*) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = A.TARGET_OBJID AND DOC_TYPE = 'GATE3_ETC' AND UPPER(STATUS) = 'ACTIVE' AND REGDATE <![CDATA[ >= ]]> GATE3_FROM_DATE AND REGDATE <![CDATA[ <= ]]> LAST_DAY(GATE3_TO_DATE)) AS GATE3_ETC_CNT
|
|
FROM (
|
|
SELECT A.OBJID
|
|
, A.TARGET_OBJID
|
|
, (SELECT CAR_OBJID FROM PMS_PJT_INFO WHERE OBJID = A.TARGET_OBJID) AS CAR_OBJID
|
|
, (SELECT OEM_OBJID FROM PMS_PJT_INFO WHERE OBJID = A.TARGET_OBJID) AS OEM_OBJID
|
|
, A.GATE3_FROM_DATE
|
|
<choose>
|
|
<when test="addMonths != null and !''.equals(addMonths)">
|
|
, LAST_DAY(ADD_MONTHS(A.GATE3_FROM_DATE, #{addMonths})) AS GATE3_TO_DATE
|
|
</when>
|
|
<otherwise>
|
|
, LAST_DAY(A.GATE3_TO_DATE) AS GATE3_TO_DATE
|
|
</otherwise>
|
|
</choose>
|
|
, TO_CHAR(A.GATE3_FROM_DATE, 'YYYY-MM') AS GATE3_FROM_DATE_STR
|
|
, TO_CHAR(LAST_DAY(A.GATE3_TO_DATE), 'YYYY-MM') AS GATE3_TO_DATE_STR
|
|
, TO_CHAR(A.GATE3_FROM_DATE, 'YYYY-MM-DD') AS GATE3_FROM_DATE_STR2
|
|
<choose>
|
|
<when test="addMonths != null and !''.equals(addMonths)">
|
|
, TO_CHAR(LAST_DAY(ADD_MONTHS(A.GATE3_FROM_DATE, #{addMonths})), 'YYYY-MM-DD') AS GATE3_TO_DATE_STR2
|
|
</when>
|
|
<otherwise>
|
|
, TO_CHAR(LAST_DAY(A.GATE3_TO_DATE), 'YYYY-MM-DD') AS GATE3_TO_DATE_STR2
|
|
</otherwise>
|
|
</choose>
|
|
FROM PMS_PJT_REL_GATE_SCHEDULE A
|
|
WHERE 1=1
|
|
AND TARGET_OBJID = #{targetObjId}
|
|
) A
|
|
</select>
|
|
|
|
<!-- //Gate4 현황 목록 조회 -->
|
|
<select id="getGate4Status" parameterType="map" resultType="map">
|
|
SELECT A.*
|
|
, (SELECT COUNT(*) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = A.TARGET_OBJID AND DOC_TYPE = 'GATE_DEV_PLAN' AND UPPER(STATUS) = 'ACTIVE' AND REGDATE <![CDATA[ >= ]]> GATE4_FROM_DATE AND REGDATE <![CDATA[ <= ]]> LAST_DAY(GATE4_TO_DATE)) AS DEV_PLAN_FILE_CNT
|
|
, (SELECT COUNT(*) FROM PMS_STRUCTURE_REVIEW_REPORT WHERE UPPER(ACTION_RESULT) = 'REFLECT' AND REGDATE <![CDATA[ >= ]]> GATE4_FROM_DATE AND REGDATE <![CDATA[ <= ]]> LAST_DAY(GATE4_TO_DATE) AND CAR_OBJID = A.CAR_OBJID) AS STRUCTURE_REVIEW_REPORT_CNT
|
|
, (SELECT COUNT(*) FROM PMS_EO_APPLY_INFO EO, PART_INFO PART WHERE PART.OBJID = EO.TARGET_OBJID AND UPPER(PART.DRAWING_TYPE) = 'DRAW' AND UPPER(PART.STATUS) = 'COMPLETE' AND EO.ILJI_APPLY_POINT_DATE <![CDATA[ >= ]]> GATE4_FROM_DATE AND EO.ILJI_APPLY_POINT_DATE <![CDATA[ <= ]]> LAST_DAY(GATE4_TO_DATE) AND PART.CAR_OBJID = A.CAR_OBJID) AS EO_APPLY_CNT
|
|
, (SELECT COUNT(*) FROM PMS_PROBLEM_INFO P, PMS_PROBLEM_GROUP G WHERE G.OBJID = P.TARGET_OBJID AND P.RES_PLAN_DATE <![CDATA[ >= ]]> GATE4_FROM_DATE AND P.RES_PLAN_DATE <![CDATA[ <= ]]> LAST_DAY(GATE4_TO_DATE) AND G.CAR_OBJID = A.CAR_OBJID) AS PROBLEM_RESPONSE_CNT
|
|
, (SELECT COUNT(*) FROM PMS_ISSUE_INFO WHERE REGDATE <![CDATA[ >= ]]> GATE4_FROM_DATE AND REGDATE <![CDATA[ <= ]]> LAST_DAY(GATE4_TO_DATE) AND CAR_OBJID = A.CAR_OBJID) AS ISSUE_CNT
|
|
, (SELECT COUNT(*) FROM PMS_QUALITY_TEST_INFO WHERE REGDATE <![CDATA[ >= ]]> GATE4_FROM_DATE AND REGDATE <![CDATA[ <= ]]> LAST_DAY(GATE4_TO_DATE) AND UPPER(STATUS) = 'COMPLETE' AND CAR_OBJID = A.CAR_OBJID) AS QUALITY_TEST_CNT
|
|
, '0' AS SOP_TRANSFER_CNT
|
|
, MONTHS_BETWEEN(GATE4_TO_DATE, GATE4_FROM_DATE) AS DURATION_CNT
|
|
, (SELECT COUNT(*) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = A.TARGET_OBJID AND DOC_TYPE = 'GATE4_CAR_TYPE' AND UPPER(STATUS) = 'ACTIVE' AND REGDATE <![CDATA[ >= ]]> GATE4_FROM_DATE AND REGDATE <![CDATA[ <= ]]> LAST_DAY(GATE4_TO_DATE)) AS GATE4_CAR_TYPE_CNT
|
|
, (SELECT COUNT(*) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = A.TARGET_OBJID AND DOC_TYPE = 'GATE4_PROD_PER' AND UPPER(STATUS) = 'ACTIVE' AND REGDATE <![CDATA[ >= ]]> GATE4_FROM_DATE AND REGDATE <![CDATA[ <= ]]> LAST_DAY(GATE4_TO_DATE)) AS GATE4_PROD_PER_CNT
|
|
, (SELECT COUNT(*) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = A.TARGET_OBJID AND DOC_TYPE = 'GATE4_PLT_MNG_PLAN' AND UPPER(STATUS) = 'ACTIVE' AND REGDATE <![CDATA[ >= ]]> GATE4_FROM_DATE AND REGDATE <![CDATA[ <= ]]> LAST_DAY(GATE4_TO_DATE)) AS GATE4_PLT_MNG_PLAN_CNT
|
|
, (SELECT COUNT(*) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = A.TARGET_OBJID AND DOC_TYPE = 'GATE4_PLT_DEV_SCHED' AND UPPER(STATUS) = 'ACTIVE' AND REGDATE <![CDATA[ >= ]]> GATE4_FROM_DATE AND REGDATE <![CDATA[ <= ]]> LAST_DAY(GATE4_TO_DATE)) AS GATE4_PLT_DEV_SCHED_CNT
|
|
, (SELECT COUNT(*) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = A.TARGET_OBJID AND DOC_TYPE = 'GATE4_ETC' AND UPPER(STATUS) = 'ACTIVE' AND REGDATE <![CDATA[ >= ]]> GATE4_FROM_DATE AND REGDATE <![CDATA[ <= ]]> LAST_DAY(GATE4_TO_DATE)) AS GATE4_ETC_CNT
|
|
FROM (
|
|
SELECT A.OBJID
|
|
, A.TARGET_OBJID
|
|
, (SELECT CAR_OBJID FROM PMS_PJT_INFO WHERE OBJID = A.TARGET_OBJID) AS CAR_OBJID
|
|
, (SELECT OEM_OBJID FROM PMS_PJT_INFO WHERE OBJID = A.TARGET_OBJID) AS OEM_OBJID
|
|
, A.GATE4_FROM_DATE
|
|
<choose>
|
|
<when test="addMonths != null and !''.equals(addMonths)">
|
|
, LAST_DAY(ADD_MONTHS(A.GATE4_FROM_DATE, #{addMonths})) AS GATE4_TO_DATE
|
|
</when>
|
|
<otherwise>
|
|
, LAST_DAY(A.GATE4_TO_DATE) AS GATE4_TO_DATE
|
|
</otherwise>
|
|
</choose>
|
|
, TO_CHAR(A.GATE4_FROM_DATE, 'YYYY-MM') AS GATE4_FROM_DATE_STR
|
|
, TO_CHAR(LAST_DAY(A.GATE4_TO_DATE), 'YYYY-MM') AS GATE4_TO_DATE_STR
|
|
, TO_CHAR(A.GATE4_FROM_DATE, 'YYYY-MM-DD') AS GATE4_FROM_DATE_STR2
|
|
<choose>
|
|
<when test="addMonths != null and !''.equals(addMonths)">
|
|
, TO_CHAR(LAST_DAY(ADD_MONTHS(A.GATE4_FROM_DATE, #{addMonths})), 'YYYY-MM-DD') AS GATE4_TO_DATE_STR2
|
|
</when>
|
|
<otherwise>
|
|
, TO_CHAR(LAST_DAY(A.GATE4_TO_DATE), 'YYYY-MM-DD') AS GATE4_TO_DATE_STR2
|
|
</otherwise>
|
|
</choose>
|
|
FROM PMS_PJT_REL_GATE_SCHEDULE A
|
|
WHERE 1=1
|
|
AND TARGET_OBJID = #{targetObjId}
|
|
) A
|
|
</select>
|
|
|
|
<!-- //jmpark end -->
|
|
|
|
|
|
<!-- ********************************************************************************************************** -->
|
|
<!-- //edhwang start -->
|
|
|
|
<!-- 프로젝트에 해당하는 WBS의 존재유무를 확인한다. -->
|
|
<select id="getProjectConnectWBSCnt" parameterType="map" resultType="map">
|
|
SELECT COUNT(1) AS CNT FROM PMS_WBS_TASK WHERE TARGET_OBJID = #{OBJID}
|
|
</select>
|
|
|
|
<!-- 프로젝트 정보를 저장한다. -->
|
|
|
|
<update id="saveProjectInfo" parameterType="map">
|
|
with upsert as (
|
|
UPDATE
|
|
PMS_PJT_INFO
|
|
SET
|
|
FOREIGN_TYPE = #{foreignType},
|
|
OEM_OBJID = #{oemObjId}::numeric,
|
|
CAR_OBJID = #{carObjId}::numeric,
|
|
PROJECT_TYPE = #{projectType},
|
|
OEM_FACTORY = #{oemFactory},
|
|
LINE_INSTL_SITE_OBJID = #{lineInstlSite}::numeric,
|
|
LINE_INSTL_SITE_AREA = #{lineInstlSiteArea}::numeric,
|
|
YEARLY_AVG_PRODUCTION_CNT = #{avgProductionCnt}::numeric,
|
|
TOTAL_PRODUCTION_CNT = #{totalProductionCnt}::numeric,
|
|
DESCRIPTION = #{description},
|
|
CFT_USERID = #{cft_userid}
|
|
where
|
|
OBJID = #{objId}::numeric
|
|
)
|
|
|
|
INSERT INTO PMS_PJT_INFO(
|
|
OBJID
|
|
,FOREIGN_TYPE
|
|
,OEM_OBJID
|
|
,CAR_OBJID
|
|
,PROJECT_TYPE
|
|
,OEM_FACTORY
|
|
,LINE_INSTL_SITE_OBJID
|
|
,LINE_INSTL_SITE_AREA
|
|
,YEARLY_AVG_PRODUCTION_CNT
|
|
,TOTAL_PRODUCTION_CNT
|
|
,DESCRIPTION
|
|
,STATUS
|
|
,IS_DEL
|
|
,WRITER
|
|
,REGDATE
|
|
,CFT_USERID
|
|
)
|
|
select
|
|
#{objId}::numeric
|
|
,#{foreignType}
|
|
,#{oemObjId}::numeric
|
|
,#{carObjId}::numeric
|
|
,#{projectType}
|
|
,#{oemFactory}
|
|
,#{lineInstlSite}::numeric
|
|
,#{lineInstlSiteArea}::numeric
|
|
,#{avgProductionCnt}::numeric
|
|
,#{totalProductionCnt}::numeric
|
|
,#{description}
|
|
,#{status}
|
|
,#{isDel}::numeric
|
|
,#{writer}
|
|
,now()
|
|
,#{cft_userid}
|
|
|
|
where not exists (
|
|
select
|
|
*
|
|
from PMS_PJT_INFO
|
|
where OBJID = #{objId}::numeric
|
|
)
|
|
|
|
</update>
|
|
|
|
<select id="getProjectUser" parameterType="map" resultType="map">
|
|
SELECT
|
|
DISTINCT(T.CFT_USERID) AS CODE
|
|
,(SELECT O.USER_NAME FROM USER_INFO O WHERE O.USER_ID=T.CFT_USERID) AS NAME
|
|
,'' AS CODE_CD
|
|
,'' AS STATUS
|
|
,'' AS ID
|
|
,'' AS EXT_VAL
|
|
FROM PMS_PJT_INFO T
|
|
WHERE T.CFT_USERID IS NOT NULL
|
|
</select>
|
|
|
|
|
|
<!-- 프로젝트에 해당하는 정보의 종복여부를 확인한다. -->
|
|
<select id="checkProjectDuplicate" parameterType="map" resultType="map">
|
|
SELECT COUNT(1) CNT FROM(
|
|
SELECT
|
|
OBJID,
|
|
FOREIGN_TYPE,
|
|
OEM_OBJID,
|
|
CAR_OBJID,
|
|
STATUS
|
|
FROM PMS_PJT_INFO
|
|
WHERE 1=1
|
|
AND OBJID != #{objId}::integer
|
|
AND OEM_OBJID = #{oemObjId}::integer
|
|
AND CAR_OBJID = #{carObjId}::integer
|
|
) T
|
|
|
|
</select>
|
|
|
|
<!-- 프로젝트 정보를 저장한다. -->
|
|
<update id="changeProjectStatus" parameterType="map">
|
|
UPDATE PMS_PJT_INFO SET STATUS = #{status} WHERE OBJID = #{objId}
|
|
</update>
|
|
|
|
|
|
|
|
<!-- TASK 정보를 업데이트한다. -->
|
|
<update id="updateProjectMgmtTask" parameterType="map">
|
|
UPDATE PMS_WBS_TASK
|
|
SET TASK_CHARGER_ID = #{userId}
|
|
WHERE TARGET_OBJID = #{objId}
|
|
AND TASK_STEP = #{taskStep}
|
|
</update>
|
|
<!-- 프로젝트 저장 시 기존에 구성되지 않은 표준 WBS에 대해 Insert 한다. -->
|
|
<update id="mergeProjectStandardWBSTask" parameterType="map">
|
|
INSERT INTO
|
|
pms_wbs_task
|
|
(
|
|
objid
|
|
,target_objid
|
|
,parent_objid
|
|
,task_name
|
|
,proj_step
|
|
,wbs_code
|
|
,seq
|
|
,is_template_task
|
|
,task_type
|
|
,task_dept
|
|
,task_charger_id
|
|
,regdate
|
|
,status
|
|
,writer
|
|
,bigo
|
|
,step_name
|
|
,task_step
|
|
)
|
|
VALUES (
|
|
#{taskObjId}
|
|
,#{projectObjId}
|
|
,#{taskParentObjId}
|
|
,#{taskName}
|
|
,#{gate}
|
|
,#{wbsCode}
|
|
,#{seq}
|
|
,'1'
|
|
,'task'
|
|
,(SELECT DEPT_CODE FROM DEPT_INFO WHERE DEPT_CODE = (SELECT DEPT_CODE FROM USER_INFO WHERE USER_ID = #{taskChargerId}))
|
|
,#{taskChargerId}
|
|
,now()
|
|
,#{status}
|
|
,#{writer}
|
|
,#{bigo}
|
|
,#{stepName}
|
|
,#{taskStep}
|
|
) ON
|
|
CONFLICT (target_objid,seq) DO
|
|
UPDATE
|
|
SET task_dept= (SELECT DEPT_CODE FROM DEPT_INFO WHERE DEPT_CODE = (SELECT DEPT_CODE FROM USER_INFO WHERE USER_ID = #{taskChargerId}))
|
|
,task_charger_id=#{taskChargerId}
|
|
</update>
|
|
|
|
<!-- 프로젝트 저장 시 기존에 구성되지 않은 표준 WBS에 대해 Insert 한다. -->
|
|
<update id="mergeProjectStandardUpdateWBSTask" parameterType="map">
|
|
UPDATE PMS_WBS_TASK
|
|
SET TASK_CHARGER_ID = #{taskChargerId} , TASK_DEPT = (SELECT DEPT_CODE FROM DEPT_INFO WHERE DEPT_CODE = (SELECT DEPT_CODE FROM USER_INFO WHERE USER_ID = #{taskChargerId}))
|
|
WHERE OBJID = #{taskObjId}
|
|
AND TARGET_OBJID = #{projectObjId}
|
|
AND IS_TEMPLATE_TASK = 1
|
|
</update>
|
|
|
|
<!-- 프로젝트에 해당하는 제품을 연결한다. -->
|
|
<update id="connectProjectProduct" parameterType="map">
|
|
with upsert as (
|
|
UPDATE
|
|
PMS_REL_PJT_PROD
|
|
SET
|
|
OBJID = #{objId}::numeric
|
|
,REGDATE = now()
|
|
where
|
|
TARGET_OBJID = #{targetObjId}::numeric AND SUB_OBJID = #{subObjId}::numeric
|
|
)
|
|
|
|
INSERT INTO PMS_REL_PJT_PROD(
|
|
OBJID
|
|
,TARGET_OBJID
|
|
,SUB_OBJID
|
|
,REGDATE
|
|
)
|
|
select
|
|
#{objId}::numeric
|
|
,#{targetObjId}::numeric
|
|
,#{subObjId}::numeric
|
|
,now()
|
|
|
|
where not exists (
|
|
select
|
|
*
|
|
from PMS_REL_PJT_PROD
|
|
where TARGET_OBJID = #{targetObjId}::numeric AND SUB_OBJID = #{subObjId}::numeric
|
|
)
|
|
</update>
|
|
|
|
<!-- 프로젝트에 해당하는 차종의 Milestone을 update한다. -->
|
|
<update id="mergeProjectCarMilestone" parameterType="map">
|
|
with upsert as (
|
|
UPDATE
|
|
CAR_MILESTONE_MNG
|
|
SET
|
|
MILESTONE_DATE = #{milestoneDate}
|
|
,REGDATE = now()
|
|
where
|
|
CAR_OBJID = #{carObjId}::numeric AND MILESTONE_OBJID = #{milestoneObjId}::numeric
|
|
)
|
|
|
|
INSERT INTO CAR_MILESTONE_MNG(
|
|
OBJID,
|
|
CAR_OBJID,
|
|
MILESTONE_OBJID,
|
|
MILESTONE_DATE,
|
|
WRITER,
|
|
REGDATE
|
|
)
|
|
select
|
|
#{objId}::numeric,
|
|
#{carObjId}::numeric,
|
|
#{milestoneObjId}::numeric,
|
|
#{milestoneDate},
|
|
#{writer},
|
|
now()
|
|
|
|
where not exists (
|
|
select
|
|
*
|
|
from CAR_MILESTONE_MNG
|
|
where CAR_OBJID = #{carObjId}::numeric AND MILESTONE_OBJID = #{milestoneObjId}::numeric
|
|
)
|
|
</update>
|
|
|
|
<!-- 프로젝트에 해당하는 품목 중 삭제된 품목의 연결을 해제한다. -->
|
|
<delete id="deleteConnectedProjectProduct" parameterType="map">
|
|
DELETE FROM PMS_REL_PJT_PROD
|
|
WHERE TARGET_OBJID = #{targetObjId}::numeric
|
|
AND SUB_OBJID NOT IN
|
|
<foreach collection="projectProductArrList" item="projectProduct" index="index" separator="," open="(" close=")">
|
|
#{projectProduct}::numeric
|
|
</foreach>
|
|
</delete>
|
|
|
|
<!-- 프로젝트의 상세 정보를 가져온다. -->
|
|
<select id="getProjectInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
PJT.OBJID,
|
|
PJT.FOREIGN_TYPE,
|
|
CASE PJT.FOREIGN_TYPE
|
|
WHEN 'D' THEN '국내'
|
|
WHEN 'F' THEN '해외'
|
|
ELSE ''
|
|
END AS FOREIGN_TYPE_NAME,
|
|
PJT.OEM_OBJID,
|
|
(SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = PJT.OEM_OBJID) AS OEM_NAME,
|
|
PJT.CAR_OBJID,
|
|
(SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = PJT.CAR_OBJID) AS CAR_NAME,
|
|
(SELECT CAR_CODE FROM CAR_MNG WHERE OBJID = PJT.CAR_OBJID) AS CAR_CODE,
|
|
(SELECT MODEL_CODE FROM CAR_MNG WHERE OBJID = PJT.CAR_OBJID) AS MODEL_CODE,
|
|
PJT.PROJECT_TYPE,
|
|
CASE PJT.PROJECT_TYPE
|
|
WHEN 'new' THEN '신차'
|
|
WHEN 'derivative' THEN '파생차'
|
|
WHEN 'sample' THEN '시작차'
|
|
ELSE ''
|
|
END AS PROJECT_TYPE_NAME,
|
|
PJT.OEM_FACTORY,
|
|
(SELECT FACTORY_NAME FROM OEM_FACTORY_MNG WHERE OBJID = PJT.OEM_FACTORY) AS FACTORY_NAME,
|
|
PJT.LINE_INSTL_SITE_OBJID,
|
|
(SELECT AREA_NAME FROM LINE_INSTL_AREA_MNG WHERE OBJID = PJT.LINE_INSTL_SITE_OBJID) AS AREA_NAME,
|
|
PJT.LINE_INSTL_SITE_AREA,
|
|
PJT.YEARLY_AVG_PRODUCTION_CNT,
|
|
PJT.TOTAL_PRODUCTION_CNT,
|
|
PJT.DESCRIPTION,
|
|
PJT.STATUS,
|
|
PJT.IS_DEL,
|
|
PJT.WRITER,
|
|
PJT.REGDATE,
|
|
PJT.CFT_USERID,
|
|
(SELECT O.USER_NAME FROM USER_INFO O WHERE O.USER_ID = PJT.CFT_USERID) AS CFT_USERNAME,
|
|
(SELECT O.DEPT_CODE FROM USER_INFO O WHERE O.USER_ID = PJT.CFT_USERID) AS CFT_TEAM_CD,
|
|
(SELECT O.DEPT_NAME FROM USER_INFO O WHERE O.USER_ID = PJT.CFT_USERID) AS CFT_TEAMNAME,
|
|
(SELECT TARGET_OBJID FROM PMS_REL_CONCEPT_PJT WHERE SUB_OBJID = #{objId}) AS PROJECT_CONCEPT_OBJID
|
|
FROM PMS_PJT_INFO PJT
|
|
WHERE OBJID = #{objId}
|
|
</select>
|
|
|
|
<!-- 프로젝트 목록을 가져온다. -->
|
|
<select id="getProjectList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM
|
|
(
|
|
SELECT PMS_PJT_INFO.*,ROW_NUMBER() OVER (ORDER BY SOP_DATE DESC) AS RNUM
|
|
FROM
|
|
(
|
|
SELECT
|
|
PJT.OBJID,
|
|
PJT.FOREIGN_TYPE AS FOREIGN_TYPE_ORG,
|
|
DECODE(UPPER(PJT.FOREIGN_TYPE),'D','국내','F','해외') AS FOREIGN_TYPE,
|
|
PJT.OEM_OBJID,
|
|
(SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = PJT.OEM_OBJID) AS OEM_NAME,
|
|
PJT.CAR_OBJID,
|
|
(SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = PJT.CAR_OBJID) AS CAR_NAME,
|
|
(SELECT CAR_CODE FROM CAR_MNG WHERE OBJID = PJT.CAR_OBJID) AS CAR_CODE,
|
|
PJT.PROJECT_TYPE AS PROJECT_TYPE_ORG,
|
|
DECODE(UPPER(PJT.PROJECT_TYPE),'NEW','신차','DERIVATIVE','파생차','SAMPLE','시작차') AS PROJECT_TYPE,
|
|
PJT.OEM_FACTORY,
|
|
(SELECT FACTORY_NAME FROM OEM_FACTORY_MNG WHERE OBJID = PJT.OEM_FACTORY) AS FACTORY_NAME,
|
|
PJT.LINE_INSTL_SITE_OBJID,
|
|
(SELECT AREA_NAME FROM LINE_INSTL_AREA_MNG WHERE OBJID = PJT.LINE_INSTL_SITE_OBJID) AS AREA_NAME,
|
|
PJT.LINE_INSTL_SITE_AREA,
|
|
PJT.YEARLY_AVG_PRODUCTION_CNT,
|
|
PJT.TOTAL_PRODUCTION_CNT,
|
|
PJT.DESCRIPTION,
|
|
PJT.STATUS,
|
|
CASE UPPER(PJT.STATUS)
|
|
WHEN 'CREATE' THEN '작성중'
|
|
WHEN 'CONFIRM' THEN '확정'
|
|
ELSE PJT.STATUS
|
|
END AS STATUS_TITLE,
|
|
PJT.IS_DEL,
|
|
PJT.WRITER,
|
|
(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = CDM.MEMBER_USER_ID) AS DEPT_NAME,
|
|
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = CDM.MEMBER_USER_ID) AS USER_NAME,
|
|
(SELECT COUNT(1) FROM PMS_REL_PJT_PROD where TARGET_OBJID = PJT.OBJID) AS PRODUCT_CNT,
|
|
REGDATE AS REGDATE_ORG,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') AS REGDATE,
|
|
TO_CHAR(CAR.SOP_DATE,'YYYY-MM-DD') AS SOP_DATE,
|
|
TO_CHAR(CAR1.SUP_DATE,'YYYY-MM-DD') AS SUP_DATE,
|
|
CASE WHEN WBS_TASK.COMPLETE_RATIO = 0 OR WBS_TASK.COMPLETE_RATIO IS NULL THEN 0 ELSE WBS_TASK.COMPLETE_RATIO END AS COMPLETE_RATIO,
|
|
PJT.CFT_USERID,
|
|
(SELECT O.USER_NAME FROM USER_INFO O WHERE O.USER_ID = PJT.CFT_USERID) AS CFT_USERNAME,
|
|
(SELECT O.DEPT_CODE FROM USER_INFO O WHERE O.USER_ID = PJT.CFT_USERID) AS CFT_TEAM_CD,
|
|
(SELECT O.DEPT_NAME FROM USER_INFO O WHERE O.USER_ID = PJT.CFT_USERID) AS CFT_TEAMNAME
|
|
FROM
|
|
PMS_PJT_INFO PJT,
|
|
(
|
|
SELECT
|
|
CAR.OBJID,
|
|
CAR_MILESTONE.MILESTONE_DATE AS SOP_DATE
|
|
FROM
|
|
CAR_MNG CAR,
|
|
OEM_MILESTONE_MNG OEM_MILESTONE,
|
|
CAR_MILESTONE_MNG CAR_MILESTONE
|
|
WHERE UPPER(OEM_MILESTONE.MILESTONE_NAME) = 'SOP'
|
|
AND UPPER(CAR.STATUS) = 'ACTIVE'
|
|
AND CAR.OEM_OBJID = OEM_MILESTONE.OEM_OBJID
|
|
AND CAR_MILESTONE.CAR_OBJID=CAR.OBJID
|
|
AND CAR_MILESTONE.MILESTONE_OBJID=OEM_MILESTONE.OBJID
|
|
) CAR,
|
|
(
|
|
SELECT
|
|
CAR.OBJID,
|
|
CAR_MILESTONE.MILESTONE_DATE AS SUP_DATE
|
|
FROM
|
|
CAR_MNG CAR,
|
|
OEM_MILESTONE_MNG OEM_MILESTONE,
|
|
CAR_MILESTONE_MNG CAR_MILESTONE
|
|
WHERE OEM_MILESTONE.MILESTONE_NAME='Supplier nominated'
|
|
AND UPPER(CAR.STATUS) = 'ACTIVE'
|
|
AND CAR.OEM_OBJID = OEM_MILESTONE.OEM_OBJID
|
|
AND CAR_MILESTONE.CAR_OBJID=CAR.OBJID
|
|
AND CAR_MILESTONE.MILESTONE_OBJID=OEM_MILESTONE.OBJID
|
|
) CAR1,
|
|
(
|
|
SELECT * FROM(
|
|
SELECT
|
|
ROW_NUMBER() OVER(PARTITION BY CAR_MEMBER.CAR_OBJID ORDER BY CAR_MEMBER.CAR_OBJID) CDM_RNUM,
|
|
CAR_MEMBER.*
|
|
FROM(
|
|
SELECT
|
|
CDM.OBJID,
|
|
CDM.CAR_OBJID,
|
|
CDM.MEMBER_USER_ID,
|
|
CDM.IS_TFT_LEADER
|
|
FROM CAR_DISTRIBUTE_MEMBER CDM
|
|
WHERE IS_TFT_LEADER = '0'
|
|
)CAR_MEMBER
|
|
)WHERE CDM_RNUM = 1
|
|
)CDM,
|
|
(
|
|
SELECT
|
|
TARGET_OBJID,
|
|
CASE WHEN SUM(TOTAL_CNT) = 0 THEN 0 ELSE ROUND((SUM(COMPLETE_CNT)/SUM(TOTAL_CNT))*100, 1) END AS COMPLETE_RATIO
|
|
FROM(
|
|
SELECT
|
|
TARGET_OBJID,
|
|
CASE WHEN UPPER(STATUS) = 'COMPLETE' THEN 1 ELSE 0 END COMPLETE_CNT,
|
|
1 AS TOTAL_CNT
|
|
FROM PMS_WBS_TASK
|
|
WHERE IS_TEMPLATE_TASK = 1
|
|
AND UPPER(TASK_TYPE) = 'TASK'
|
|
)GROUP BY TARGET_OBJID
|
|
) WBS_TASK
|
|
WHERE 1=1
|
|
AND CAR.OBJID(+)=PJT.CAR_OBJID
|
|
AND CAR1.OBJID(+)=PJT.CAR_OBJID
|
|
AND CDM.CAR_OBJID(+)= PJT.CAR_OBJID
|
|
AND PJT.OBJID = WBS_TASK.TARGET_OBJID(+)
|
|
) PMS_PJT_INFO WHERE 1=1
|
|
<if test="search_region != null and search_region !='' ">
|
|
AND UPPER(PMS_PJT_INFO.FOREIGN_TYPE_ORG) = #{search_region}
|
|
</if>
|
|
<if test="search_oem != null and search_oem !='' ">
|
|
AND PMS_PJT_INFO.OEM_OBJID = #{search_oem}
|
|
</if>
|
|
<if test="search_carType != null and search_carType != '' ">
|
|
AND PMS_PJT_INFO.CAR_OBJID = #{search_carType}
|
|
</if>
|
|
|
|
<if test="cft_userid != null and cft_userid != '' ">
|
|
AND PMS_PJT_INFO.CFT_USERID = #{cft_userid}
|
|
</if>
|
|
|
|
<!-- 연결된 수주품목의 제품군을 통해 조회한다. -->
|
|
<if test="search_productGroup != null and search_productGroup != '' ">
|
|
AND PMS_PJT_INFO.OBJID IN (
|
|
SELECT TARGET_OBJID FROM (
|
|
SELECT
|
|
OBJID,
|
|
TARGET_OBJID,
|
|
SUB_OBJID,
|
|
(SELECT OBJID FROM PRODUCT_GROUP_MNG WHERE OBJID = (SELECT PRODUCT_GROUP_OBJID FROM PRODUCT_MNG WHERE OBJID = SUB_OBJID)) AS PRODUCT_GROUP_OBJID,
|
|
REGDATE
|
|
FROM PMS_REL_PJT_PROD
|
|
)WHERE PRODUCT_GROUP_OBJID = #{search_productGroup}
|
|
)
|
|
</if>
|
|
<!-- 연결된 수주품목의 제품을 통해 조회한다. -->
|
|
<if test="search_product != null and search_product != '' ">
|
|
AND PMS_PJT_INFO.OBJID IN (
|
|
SELECT TARGET_OBJID FROM (
|
|
SELECT
|
|
OBJID,
|
|
TARGET_OBJID,
|
|
SUB_OBJID,
|
|
(SELECT OBJID FROM PRODUCT_GROUP_MNG WHERE OBJID = (SELECT PRODUCT_GROUP_OBJID FROM PRODUCT_MNG WHERE OBJID = SUB_OBJID)) AS PRODUCT_GROUP_OBJID,
|
|
REGDATE
|
|
FROM PMS_REL_PJT_PROD
|
|
WHERE SUB_OBJID = #{search_product}
|
|
)
|
|
)
|
|
</if>
|
|
<if test="search_bidding != null and search_bidding != '' ">
|
|
AND UPPER(PMS_PJT_INFO.PROJECT_TYPE_ORG) = #{search_bidding}
|
|
</if>
|
|
<if test="status != null and status != '' ">
|
|
AND UPPER(PMS_PJT_INFO.STATUS) = UPPER(#{status})
|
|
</if>
|
|
<if test="search_writer != null and search_writer != '' ">
|
|
AND PMS_PJT_INFO.USER_NAME LIKE ('%${search_writer}%')
|
|
</if>
|
|
<if test="search_dept != null and search_dept != '' ">
|
|
AND PMS_PJT_INFO.DEPT_NAME LIKE ('%${search_dept}%')
|
|
</if>
|
|
<if test="search_fromDate != null and search_fromDate != ''">
|
|
AND TO_DATE(SOP_DATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and search_toDate != ''">
|
|
AND TO_DATE(SOP_DATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
)WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END != '' and actionType != 'excel'">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_START != '' and actionType != 'excel'">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 프로젝트 목록을 가져온다. -->
|
|
<select id="getProjectListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
|
|
TOTAL_CNT
|
|
FROM (
|
|
SELECT
|
|
COUNT(1) TOTAL_CNT
|
|
FROM(
|
|
SELECT
|
|
PJT.OBJID,
|
|
PJT.FOREIGN_TYPE AS FOREIGN_TYPE_ORG,
|
|
DECODE(UPPER(PJT.FOREIGN_TYPE),'D','국내','F','해외') AS FOREIGN_TYPE,
|
|
PJT.OEM_OBJID,
|
|
(SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = PJT.OEM_OBJID) AS OEM_NAME,
|
|
PJT.CAR_OBJID,
|
|
(SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = PJT.CAR_OBJID) AS CAR_NAME,
|
|
(SELECT CAR_CODE FROM CAR_MNG WHERE OBJID = PJT.CAR_OBJID) AS CAR_CODE,
|
|
PJT.PROJECT_TYPE AS PROJECT_TYPE_ORG,
|
|
DECODE(UPPER(PJT.PROJECT_TYPE),'NEW','신차','DERIVATIVE','파생차','SAMPLE','시작차') AS PROJECT_TYPE,
|
|
PJT.OEM_FACTORY,
|
|
(SELECT FACTORY_NAME FROM OEM_FACTORY_MNG WHERE OBJID = PJT.OEM_FACTORY) AS FACTORY_NAME,
|
|
PJT.LINE_INSTL_SITE_OBJID,
|
|
(SELECT AREA_NAME FROM LINE_INSTL_AREA_MNG WHERE OBJID = PJT.LINE_INSTL_SITE_OBJID) AS AREA_NAME,
|
|
PJT.LINE_INSTL_SITE_AREA,
|
|
PJT.YEARLY_AVG_PRODUCTION_CNT,
|
|
PJT.TOTAL_PRODUCTION_CNT,
|
|
PJT.DESCRIPTION,
|
|
PJT.STATUS,
|
|
CASE UPPER(PJT.STATUS)
|
|
WHEN 'CREATE' THEN '작성중'
|
|
WHEN 'CONFIRM' THEN '확정'
|
|
ELSE PJT.STATUS
|
|
END AS STATUS_TITLE,
|
|
PJT.IS_DEL,
|
|
PJT.WRITER,
|
|
(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = CDM.MEMBER_USER_ID) AS DEPT_NAME,
|
|
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = CDM.MEMBER_USER_ID) AS USER_NAME,
|
|
(SELECT COUNT(1) FROM PMS_REL_PJT_PROD where TARGET_OBJID = PJT.OBJID) AS PRODUCT_CNT,
|
|
REGDATE AS REGDATE_ORG,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') AS REGDATE,
|
|
TO_CHAR(CAR.SOP_DATE,'YYYY-MM-DD') AS SOP_DATE,
|
|
PJT.CFT_USERID,
|
|
(SELECT O.USER_NAME FROM USER_INFO O WHERE O.USER_ID = PJT.CFT_USERID) AS CFT_USERNAME,
|
|
(SELECT O.DEPT_CODE FROM USER_INFO O WHERE O.USER_ID = PJT.CFT_USERID) AS CFT_TEAM_CD,
|
|
(SELECT O.DEPT_NAME FROM USER_INFO O WHERE O.USER_ID = PJT.CFT_USERID) AS CFT_TEAMNAME
|
|
FROM
|
|
PMS_PJT_INFO PJT,
|
|
(
|
|
SELECT
|
|
CAR.OBJID,
|
|
CAR_MILESTONE.MILESTONE_DATE AS SOP_DATE
|
|
FROM
|
|
CAR_MNG CAR,
|
|
OEM_MILESTONE_MNG OEM_MILESTONE,
|
|
CAR_MILESTONE_MNG CAR_MILESTONE
|
|
WHERE UPPER(OEM_MILESTONE.MILESTONE_NAME) = 'SOP'
|
|
AND UPPER(CAR.STATUS) = 'ACTIVE'
|
|
AND CAR.OEM_OBJID = OEM_MILESTONE.OEM_OBJID
|
|
AND CAR_MILESTONE.CAR_OBJID=CAR.OBJID
|
|
AND CAR_MILESTONE.MILESTONE_OBJID=OEM_MILESTONE.OBJID
|
|
) CAR,
|
|
(
|
|
SELECT * FROM(
|
|
SELECT
|
|
ROW_NUMBER() OVER(PARTITION BY CAR_MEMBER.CAR_OBJID ORDER BY CAR_MEMBER.CAR_OBJID) CDM_RNUM,
|
|
CAR_MEMBER.*
|
|
FROM(
|
|
SELECT
|
|
CDM.OBJID,
|
|
CDM.CAR_OBJID,
|
|
CDM.MEMBER_USER_ID,
|
|
CDM.IS_TFT_LEADER
|
|
FROM CAR_DISTRIBUTE_MEMBER CDM
|
|
WHERE IS_TFT_LEADER = '0'
|
|
)CAR_MEMBER
|
|
)WHERE CDM_RNUM = 1
|
|
)CDM
|
|
WHERE 1=1
|
|
AND CAR.OBJID(+)=PJT.CAR_OBJID
|
|
AND CDM.CAR_OBJID(+)= PJT.CAR_OBJID
|
|
) PMS_PJT_INFO WHERE 1=1
|
|
<if test="search_region != null and search_region !='' ">
|
|
AND PMS_PJT_INFO.FOREIGN_TYPE_ORG = #{search_region}
|
|
</if>
|
|
<if test="search_oem != null and search_oem !='' ">
|
|
AND PMS_PJT_INFO.OEM_OBJID = #{search_oem}
|
|
</if>
|
|
<if test="search_carType != null and search_carType != '' ">
|
|
AND PMS_PJT_INFO.CAR_OBJID = #{search_carType}
|
|
</if>
|
|
|
|
<if test="cft_userid != null and cft_userid != '' ">
|
|
AND PMS_PJT_INFO.CFT_USERID = #{cft_userid}
|
|
</if>
|
|
|
|
<!-- 연결된 수주품목의 제품군을 통해 조회한다. -->
|
|
<if test="search_productGroup != null and search_productGroup != '' ">
|
|
AND PMS_PJT_INFO.OBJID IN (
|
|
SELECT TARGET_OBJID FROM (
|
|
SELECT
|
|
OBJID,
|
|
TARGET_OBJID,
|
|
SUB_OBJID,
|
|
(SELECT OBJID FROM PRODUCT_GROUP_MNG WHERE OBJID = (SELECT PRODUCT_GROUP_OBJID FROM PRODUCT_MNG WHERE OBJID = SUB_OBJID)) AS PRODUCT_GROUP_OBJID,
|
|
REGDATE
|
|
FROM PMS_REL_PJT_PROD
|
|
)WHERE PRODUCT_GROUP_OBJID = #{search_productGroup}
|
|
)
|
|
</if>
|
|
<!-- 연결된 수주품목의 제품을 통해 조회한다. -->
|
|
<if test="search_product != null and search_product != '' ">
|
|
AND PMS_PJT_INFO.OBJID IN (
|
|
SELECT TARGET_OBJID FROM (
|
|
SELECT
|
|
OBJID,
|
|
TARGET_OBJID,
|
|
SUB_OBJID,
|
|
(SELECT OBJID FROM PRODUCT_GROUP_MNG WHERE OBJID = (SELECT PRODUCT_GROUP_OBJID FROM PRODUCT_MNG WHERE OBJID = SUB_OBJID)) AS PRODUCT_GROUP_OBJID,
|
|
REGDATE
|
|
FROM PMS_REL_PJT_PROD
|
|
WHERE SUB_OBJID = #{search_product}
|
|
)
|
|
)
|
|
</if>
|
|
<if test="search_bidding != null and search_bidding != '' ">
|
|
AND UPPER(PMS_PJT_INFO.PROJECT_TYPE_ORG) = #{search_bidding}
|
|
</if>
|
|
<if test="status != null and status != '' ">
|
|
AND UPPER(PMS_PJT_INFO.STATUS) = UPPER(#{status})
|
|
</if>
|
|
<if test="search_writer != null and search_writer != '' ">
|
|
AND PMS_PJT_INFO.USER_NAME LIKE ('%${search_writer}%')
|
|
</if>
|
|
<if test="search_dept != null and search_dept != '' ">
|
|
AND PMS_PJT_INFO.DEPT_NAME LIKE ('%${search_dept}%')
|
|
</if>
|
|
<if test="search_fromDate != null and search_fromDate != ''">
|
|
AND TO_DATE(SOP_DATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and search_toDate != ''">
|
|
AND TO_DATE(SOP_DATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
ORDER BY SOP_DATE DESC
|
|
)WHERE 1=1
|
|
|
|
</select>
|
|
|
|
<!-- 프로젝트 상세정보 가져온다 -->
|
|
<select id="getProjectMgmtInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID
|
|
,SORT_CD
|
|
,CODE_NAME(SORT_CD) AS SORT_NAME
|
|
,PROJECT_NO
|
|
,CODE_NAME(CUSTOMER_CD) AS CUSTOMER_NAME
|
|
,CUSTOMER_CD
|
|
,TARGET_OBJID
|
|
,TO_CHAR(RECV_DATE,'YYYY-MM-DD') AS RECV_DATE
|
|
,REG_DATE
|
|
,MODEL_NAME
|
|
,CNT
|
|
,TITLE
|
|
,WRITER
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = T.WRITER) AS WRITER_NAME
|
|
,SPEC_CD
|
|
,CODE_NAME(SPEC_CD) AS SPEC_NAME
|
|
,MANUFACTUR_COST1
|
|
,MANUFACTUR_COST2
|
|
,CONTRACT_AMOUNT
|
|
,MANUFACTUR_SCOST
|
|
,ROUND( (MANUFACTUR_COST2/CONTRACT_AMOUNT * 100) ,1) || '%' AS COST2
|
|
,ROUND( (MANUFACTUR_COST1/CONTRACT_AMOUNT * 100) ,1) || '%' AS COST1
|
|
,ROUND( (MANUFACTUR_SCOST/CONTRACT_AMOUNT * 100) ,1) || '%' AS SALE_P
|
|
FROM PROJECT_MGMT T
|
|
WHERE T.OBJID = #{objId}
|
|
</select>
|
|
|
|
|
|
<!-- 수주활동 목록을 가져온다(수주활동 품목X). -->
|
|
<select id="getProjectConceptList" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID
|
|
,FOREIGN_TYPE
|
|
,OEM_OBJID
|
|
,(SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = CONCEPT.OEM_OBJID) AS OEM_NAME
|
|
,CAR_OBJID
|
|
,(SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = CONCEPT.CAR_OBJID) AS CAR_NAME
|
|
,PJT_TYPE
|
|
,OEM_FACTORY
|
|
,IS_DEL
|
|
,WRITER
|
|
,REGDATE
|
|
FROM
|
|
PMS_PJT_CONCEPT_INFO CONCEPT
|
|
WHERE 1=1
|
|
AND UPPER(STATUS) = 'COMPLETE'
|
|
</select>
|
|
|
|
<!-- 프로젝트에 연결된 입찰품목의 목록을 가져온다. -->
|
|
<select id="getProjectConnectProductList" parameterType="map" resultType="map">
|
|
SELECT
|
|
(ROW_NUMBER() OVER()) RNUM,
|
|
REL_PJT_PROD.OBJID,
|
|
REL_PJT_PROD.TARGET_OBJID,
|
|
REL_PJT_PROD.SUB_OBJID,
|
|
REL_PJT_PROD.REGDATE,
|
|
PRODUCT.PRODUCT_GROUP_NAME,
|
|
PRODUCT.PRODUCT_NAME
|
|
FROM
|
|
(
|
|
SELECT
|
|
PRODUCT.OBJID,
|
|
(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = PRODUCT.PARENT_CODE_ID) PRODUCT_GROUP_NAME,
|
|
CODE_NAME PRODUCT_NAME
|
|
FROM
|
|
COMM_CODE PRODUCT
|
|
) PRODUCT
|
|
LEFT OUTER JOIN PMS_REL_PJT_PROD REL_PJT_PROD ON REL_PJT_PROD.SUB_OBJID = PRODUCT.OBJID
|
|
WHERE REL_PJT_PROD.TARGET_OBJID = #{objId}
|
|
</select>
|
|
|
|
<!-- 프로젝트 멤버의 목록을 가져온다. -->
|
|
<select id="getProjectMemberList" parameterType="map" resultType="map">
|
|
SELECT
|
|
MEMBER.*,
|
|
ROW_NUMBER() OVER(ORDER BY MEMBER.ORDER_SEQ) AS RNUM
|
|
FROM (
|
|
SELECT
|
|
OBJID,
|
|
CAR_OBJID,
|
|
MEMBER_SABUN,
|
|
(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = CDM.MEMBER_USER_ID) AS DEPT_NAME,
|
|
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = CDM.MEMBER_USER_ID) AS USER_NAME,
|
|
(SELECT POSITION_NAME FROM USER_INFO WHERE USER_ID = CDM.MEMBER_USER_ID) AS POSITION_NAME,
|
|
(SELECT EMAIL FROM USER_INFO WHERE USER_ID = CDM.MEMBER_USER_ID) AS EMAIL,
|
|
MEMBER_USER_ID,
|
|
CASE
|
|
WHEN IS_TFT_LEADER = 0
|
|
THEN 1
|
|
WHEN IS_PROJ_LEADER = 0
|
|
THEN 2
|
|
ELSE 3
|
|
END ORDER_SEQ,
|
|
IS_TFT_LEADER,
|
|
IS_PROJ_LEADER,
|
|
REGDATE,
|
|
STATUS,
|
|
case STATUS when 'create' then '작성중' when 'release' then '배포완료' end STATUS_TITLE
|
|
FROM CAR_DISTRIBUTE_MEMBER CDM
|
|
WHERE CAR_OBJID = #{search_carObjId}::integer
|
|
)MEMBER WHERE 1=1
|
|
</select>
|
|
|
|
<!-- 프로젝트 멤버의 목록을 가져온다. -->
|
|
<select id="getWBSTaskMemberAuth" parameterType="map" resultType="map">
|
|
SELECT
|
|
MEMBER.*,
|
|
ROW_NUMBER() OVER(ORDER BY MEMBER.ORDER_SEQ) AS RNUM
|
|
FROM (
|
|
SELECT
|
|
OBJID,
|
|
CAR_OBJID,
|
|
MEMBER_SABUN,
|
|
(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = CDM.MEMBER_USER_ID) AS DEPT_NAME,
|
|
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = CDM.MEMBER_USER_ID) AS USER_NAME,
|
|
(SELECT POSITION_NAME FROM USER_INFO WHERE USER_ID = CDM.MEMBER_USER_ID) AS POSITION_NAME,
|
|
(SELECT EMAIL FROM USER_INFO WHERE USER_ID = CDM.MEMBER_USER_ID) AS EMAIL,
|
|
MEMBER_USER_ID,
|
|
CASE
|
|
WHEN IS_TFT_LEADER = 0
|
|
THEN 1
|
|
WHEN IS_PROJ_LEADER = 0
|
|
THEN 2
|
|
ELSE 3
|
|
END ORDER_SEQ,
|
|
IS_TFT_LEADER,
|
|
IS_PROJ_LEADER,
|
|
REGDATE,
|
|
STATUS,
|
|
DECODE(STATUS,'create','작성중','release','배포완료') AS STATUS_TITLE
|
|
FROM CAR_DISTRIBUTE_MEMBER CDM
|
|
WHERE CAR_OBJID = (SELECT CAR_OBJID FROM PMS_PJT_INFO WHERE OBJID = #{projectObjId})
|
|
AND MEMBER_USER_ID = #{writer}
|
|
AND IS_TFT_LEADER = 0
|
|
<!-- OR IS_PROJ_LEADER = 0 -->
|
|
)MEMBER WHERE 1=1
|
|
</select>
|
|
|
|
<!-- 프로젝트 멤버의 목록을 가져온다. -->
|
|
<select id="getWBSTaskProjectMemberList" parameterType="map" resultType="map">
|
|
SELECT
|
|
MEMBER.*,
|
|
ROW_NUMBER() OVER(ORDER BY MEMBER.ORDER_SEQ) AS RNUM
|
|
FROM (
|
|
SELECT
|
|
OBJID,
|
|
CAR_OBJID,
|
|
MEMBER_SABUN,
|
|
(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = CDM.MEMBER_USER_ID) AS DEPT_NAME,
|
|
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = CDM.MEMBER_USER_ID) AS USER_NAME,
|
|
(SELECT POSITION_NAME FROM USER_INFO WHERE USER_ID = CDM.MEMBER_USER_ID) AS POSITION_NAME,
|
|
(SELECT EMAIL FROM USER_INFO WHERE USER_ID = CDM.MEMBER_USER_ID) AS EMAIL,
|
|
MEMBER_USER_ID,
|
|
CASE
|
|
WHEN IS_TFT_LEADER = 0
|
|
THEN 1
|
|
WHEN IS_PROJ_LEADER = 0
|
|
THEN 2
|
|
ELSE 3
|
|
END ORDER_SEQ,
|
|
IS_TFT_LEADER,
|
|
IS_PROJ_LEADER,
|
|
REGDATE,
|
|
STATUS,
|
|
DECODE(STATUS,'create','작성중','release','배포완료') AS STATUS_TITLE
|
|
FROM CAR_DISTRIBUTE_MEMBER CDM
|
|
WHERE CAR_OBJID = (SELECT CAR_OBJID FROM PMS_PJT_INFO WHERE OBJID = #{projectObjId})
|
|
)MEMBER WHERE 1=1
|
|
</select>
|
|
|
|
<!-- WBS Task 제출 시 필요한 정보를 가져온다.-->
|
|
<select id="getWBSTaskSubmissionInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
TASK.OBJID
|
|
,TASK.TARGET_OBJID
|
|
,TASK.PARENT_OBJID
|
|
,TASK.TASK_NAME
|
|
,TASK.TASK_TYPE
|
|
,TASK.PROJ_STEP
|
|
,TASK.WBS_CODE
|
|
,TASK.SEQ
|
|
,TASK.TASK_START_PLAN_DATE
|
|
,TO_CHAR(TASK.TASK_START_PLAN_DATE,'YYYY-MM-DD') AS TASK_START_PLAN_DATE_TITLE
|
|
,TASK.TASK_END_PLAN_DATE
|
|
,TO_CHAR(TASK.TASK_END_PLAN_DATE,'YYYY-MM-DD') AS TASK_END_PLAN_DATE_TITLE
|
|
,TASK.IS_TEMPLATE_TASK
|
|
,TASK.TASK_END_DATE
|
|
,TO_CHAR(TASK.TASK_END_DATE,'YYYY-MM-DD') AS TASK_END_DATE_TITLE
|
|
,TASK.TASK_DEPT
|
|
,TASK.TASK_CHARGER_ID
|
|
,(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = TASK.TASK_CHARGER_ID) AS DEPT_NAME
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = TASK.TASK_CHARGER_ID) AS USER_NAME
|
|
,TASK.BASE_SCHEDULE
|
|
,TASK.REGDATE
|
|
,TASK.STATUS
|
|
,TASK.WRITER
|
|
,(SELECT CAR_CODE FROM CAR_MNG WHERE OBJID = PROJECT.CAR_OBJID) AS CAR_CODE
|
|
,(SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = PROJECT.CAR_OBJID) AS CAR_NAME
|
|
FROM
|
|
PMS_WBS_TASK TASK,
|
|
PMS_PJT_INFO PROJECT
|
|
WHERE TASK.IS_TEMPLATE_TASK = 1
|
|
AND TASK.TARGET_OBJID = PROJECT.OBJID
|
|
AND TASK.OBJID = #{taskObjId}
|
|
</select>
|
|
|
|
<!-- Part Master의 내용을 저장한다.. -->
|
|
<update id="mergePartMasterInfo" parameterType="map">
|
|
MERGE INTO PMS_PART_MASTER P USING DUAL ON (P.OBJID = #{objId})
|
|
WHEN MATCHED THEN
|
|
UPDATE
|
|
SET
|
|
P.OEM_OBJID = #{oemObjId}
|
|
,P.CAR_OBJID = #{carTypeObjId}
|
|
,P.PROD_GROUP_OBJID = #{productGroupObjId}
|
|
,P.PROD_OBJID = #{productObjId}
|
|
,P.TITLE = #{partMasterTitle}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT (
|
|
P.OBJID
|
|
,P.OEM_OBJID
|
|
,P.CAR_OBJID
|
|
,P.PROD_GROUP_OBJID
|
|
,P.PROD_OBJID
|
|
,P.TITLE
|
|
,P.WRITER
|
|
,P.REGDATE
|
|
)VALUES(
|
|
#{objId}
|
|
,#{oemObjId}
|
|
,#{carTypeObjId}
|
|
,#{productGroupObjId}
|
|
,#{productObjId}
|
|
,#{partMasterTitle}
|
|
,#{writer}
|
|
,SYSDATE
|
|
)
|
|
</update>
|
|
|
|
<!-- 등록된 Part Master의 목록을 보여준다. -->
|
|
<select id="getPartMasterList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM (
|
|
SELECT PMS_PART_MASTER.*,ROW_NUMBER() OVER(ORDER BY REGDATE_ORG DESC) AS RNUM
|
|
FROM (
|
|
SELECT PART_MST.OBJID
|
|
,PART_MST.OEM_OBJID
|
|
,(SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = PART_MST.OEM_OBJID) OEM_NAME
|
|
,PART_MST.CAR_OBJID
|
|
,(SELECT CAR_CODE FROM CAR_MNG WHERE OBJID = PART_MST.CAR_OBJID) CAR_CODE
|
|
,(SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = PART_MST.CAR_OBJID) CAR_NAME
|
|
,PART_MST.PROD_GROUP_OBJID
|
|
,(SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = PART_MST.PROD_GROUP_OBJID) PRODUCT_GROUP_NAME
|
|
,PART_MST.PROD_OBJID
|
|
,(SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = PART_MST.PROD_OBJID) PRODUCT_NAME
|
|
,PART_MST.TITLE
|
|
,PART_MST.WRITER
|
|
,(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = PART_MST.WRITER) DEPT_NAME
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = PART_MST.WRITER) USER_NAME
|
|
,PART_MST.REGDATE REGDATE_ORG
|
|
,TO_CHAR(PART_MST.REGDATE,'YYYY-MM-DD') REGDATE_TITLE
|
|
FROM
|
|
PMS_PART_MASTER PART_MST
|
|
WHERE 1=1
|
|
<if test="search_oem != null and search_oem !='' ">
|
|
AND PART_MST.OEM_OBJID = #{search_oem}
|
|
</if>
|
|
<if test="search_carType != null and search_carType != '' ">
|
|
AND PART_MST.CAR_OBJID = #{search_carType}
|
|
</if>
|
|
<if test="search_productGroup != null and search_productGroup != '' ">
|
|
AND PART_MST.PROD_GROUP_OBJID = #{search_productGroup}
|
|
</if>
|
|
<if test="search_productGroupObjId != null and search_productGroupObjId != '' ">
|
|
AND PART_MST.PROD_OBJID = #{search_productGroupObjId}
|
|
</if>
|
|
) PMS_PART_MASTER WHERE 1=1
|
|
)WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END !='' and actionType != 'excel'">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_STRART!='' and actionType != 'excel'">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
</select>
|
|
<!-- 등록된 Part Master의 count를 가져온다. -->
|
|
<select id="getPartMasterListCnt" parameterType="map" resultType="map">
|
|
SELECT
|
|
CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE, TOTAL_CNT
|
|
FROM (
|
|
SELECT COUNT(1) TOTAL_CNT
|
|
FROM(
|
|
SELECT PART_MST.OBJID
|
|
,PART_MST.OEM_OBJID
|
|
,(SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = PART_MST.OEM_OBJID) OEM_NAME
|
|
,PART_MST.CAR_OBJID
|
|
,(SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = PART_MST.CAR_OBJID) CAR_NAME
|
|
,PART_MST.PROD_GROUP_OBJID
|
|
,(SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = PART_MST.PROD_GROUP_OBJID) PRODUCT_GROUP_NAME
|
|
,PART_MST.PROD_OBJID
|
|
,(SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = PART_MST.PROD_OBJID) PRODUCT_NAME
|
|
,PART_MST.WRITER
|
|
,(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = PART_MST.WRITER) DEPT_NAME
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = PART_MST.WRITER) USER_NAME
|
|
,PART_MST.REGDATE
|
|
,TO_CHAR(PART_MST.REGDATE,'YYYY-MM-DD') REGDATE_TITLE
|
|
FROM
|
|
PMS_PART_MASTER PART_MST
|
|
WHERE 1=1
|
|
<if test="search_oem != null and search_oem !='' ">
|
|
AND PART_MST.OEM_OBJID = #{search_oem}
|
|
</if>
|
|
<if test="search_carType != null and search_carType != '' ">
|
|
AND PART_MST.CAR_OBJID = #{search_carType}
|
|
</if>
|
|
<if test="search_productGroup != null and search_productGroup != '' ">
|
|
AND PART_MST.PROD_GROUP_OBJID = #{search_productGroup}
|
|
</if>
|
|
<if test="search_productGroupObjId != null and search_productGroupObjId != '' ">
|
|
AND PART_MST.PROD_OBJID = #{search_productGroupObjId}
|
|
</if>
|
|
ORDER BY PART_MST.REGDATE DESC
|
|
) PMS_PART_MASTER
|
|
WHERE 1=1
|
|
)WHERE 1=1
|
|
</select>
|
|
|
|
<!-- Part Master의 상세 내용을 가져온다. -->
|
|
<select id="checkPartMasterDuplicateCnt" parameterType="map" resultType="map">
|
|
SELECT
|
|
PART_MST.OBJID
|
|
,PART_MST.OEM_OBJID
|
|
,(SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = PART_MST.OEM_OBJID) OEM_NAME
|
|
,PART_MST.CAR_OBJID
|
|
,(SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = PART_MST.CAR_OBJID) CAR_NAME
|
|
,PART_MST.PROD_GROUP_OBJID
|
|
,(SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = PART_MST.PROD_GROUP_OBJID) PRODUCT_GROUP_NAME
|
|
,PART_MST.PROD_OBJID
|
|
,(SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = PART_MST.PROD_OBJID) PRODUCT_NAME
|
|
,PART_MST.TITLE
|
|
,PART_MST.WRITER
|
|
,(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = PART_MST.WRITER) DEPT_NAME
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = PART_MST.WRITER) USER_NAME
|
|
,PART_MST.REGDATE
|
|
,TO_CHAR(PART_MST.REGDATE,'YYYY-MM-DD') REGDATE_TITLE
|
|
FROM PMS_PART_MASTER PART_MST
|
|
WHERE PART_MST.OBJID != #{objId}
|
|
AND PART_MST.CAR_OBJID = #{carTypeObjId}
|
|
AND PART_MST.PROD_OBJID = #{productObjId}
|
|
</select>
|
|
|
|
<!-- Part Master의 상세 내용을 가져온다. -->
|
|
<select id="getPartMasterInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
PART_MST.OBJID
|
|
,PART_MST.OEM_OBJID
|
|
,(SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = PART_MST.OEM_OBJID) OEM_NAME
|
|
,PART_MST.CAR_OBJID
|
|
,(SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = PART_MST.CAR_OBJID) CAR_NAME
|
|
,(SELECT CAR_CODE FROM CAR_MNG WHERE OBJID = PART_MST.CAR_OBJID) CAR_CODE
|
|
,PART_MST.PROD_GROUP_OBJID
|
|
,(SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = PART_MST.PROD_GROUP_OBJID) PRODUCT_GROUP_NAME
|
|
,PART_MST.PROD_OBJID
|
|
,(SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = PART_MST.PROD_OBJID) PRODUCT_NAME
|
|
,PART_MST.TITLE
|
|
,PART_MST.WRITER
|
|
,(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = PART_MST.WRITER) DEPT_NAME
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = PART_MST.WRITER) USER_NAME
|
|
,PART_MST.REGDATE
|
|
,TO_CHAR(PART_MST.REGDATE,'YYYY-MM-DD') REGDATE_TITLE
|
|
FROM PMS_PART_MASTER PART_MST
|
|
WHERE OBJID = #{objId}
|
|
</select>
|
|
|
|
<!-- Part Master에 연결된 Part의 목록을 가져온다. -->
|
|
<select id="getPartMasterConnectedPartList" parameterType="map" resultType="map">
|
|
SELECT
|
|
ROW_NUMBER() OVER(ORDER BY PART.SEQ) AS RNUM,
|
|
OBJID,
|
|
TARGET_OBJID,
|
|
PART_NO,
|
|
(SELECT PART_NAME FROM PART_INFO WHERE IS_LAST=1 AND PART_NO = PART.PART_NO) AS CONNECT_PART_NAME,
|
|
SEQ,
|
|
IS_DEL,
|
|
WRITER,
|
|
REGDATE
|
|
FROM PMS_PART_MASTER_CONNECT_PART PART
|
|
WHERE PART.TARGET_OBJID = ${objId}
|
|
</select>
|
|
|
|
<!-- 검색조건에 해당하는 Part 목록을 가져온다.. -->
|
|
<!-- PDM상 확정 Part 및 일반,시작 Part 관계 없이 조회 -->
|
|
<select id="getSearchPartList" parameterType="map" resultType="map">
|
|
SELECT
|
|
PART.*
|
|
,ROWNUM RNUM
|
|
FROM(
|
|
SELECT
|
|
OBJID
|
|
,PART_NO
|
|
,PART_NAME
|
|
,PART_TYPE
|
|
,REV
|
|
,IS_LAST
|
|
,REGDATE
|
|
,STATUS
|
|
,IS_START_DEV_PART
|
|
,START_COMMON_PRODUCT_TYPE
|
|
,(SELECT MATERIAL_NAME FROM MATERIAL_MNG WHERE OBJID = PART.MATERIAL_OBJID) MATERIAL_NAME
|
|
FROM PART_INFO PART
|
|
WHERE 1=1
|
|
AND IS_LAST = '1'
|
|
AND EO_NO IS NOT NULL
|
|
<!-- 해당 파트마스터에 이미 연결된 Part No에 해당하는 내용은 조회에서 제외한다. -->
|
|
AND NOT EXISTS(
|
|
SELECT CONNECT_PART.PART_NO FROM PMS_PART_MASTER_CONNECT_PART CONNECT_PART WHERE CONNECT_PART.TARGET_OBJID = #{targetObjId} AND CONNECT_PART.PART_NO = PART.PART_NO
|
|
)
|
|
<if test=" null != search_oemObjId and '' != search_oemObjId ">
|
|
AND PART.OEM_OBJID = #{search_oemObjId}
|
|
</if>
|
|
<if test=" null != search_carObjId and '' != search_carObjId ">
|
|
AND PART.CAR_OBJID = #{search_carObjId}
|
|
</if>
|
|
<if test=" null != search_productGroupObjId and '' != search_productGroupObjId ">
|
|
AND PART.PRODUCT_GROUP_OBJID = #{search_productGroupObjId}
|
|
</if>
|
|
<if test=" null != search_productObjId and '' != search_productObjId ">
|
|
AND PART.PRODUCT_OBJID = #{search_productObjId}
|
|
</if>
|
|
<if test=" null != search_partNo and '' != search_partNo ">
|
|
AND UPPER(PART.PART_NO) LIKE UPPER('%${search_partNo}%')
|
|
</if>
|
|
<if test=" null != search_partName and '' != search_partName ">
|
|
AND UPPER(PART.PART_NAME) LIKE UPPER('%${search_partName}%')
|
|
</if>
|
|
ORDER BY PART_NO
|
|
)PART WHERE 1=1
|
|
<if test=" null != search_singleProduct and '' != search_singleProduct ">
|
|
AND MATERIAL_NAME != '-'
|
|
</if>
|
|
<!-- 재질이 '-'인 part는 기본적으로 제외 -->
|
|
</select>
|
|
|
|
<!-- 선택된 Part를 Part Master에 연결한다. -->
|
|
<update id="partMasterConnectPart" parameterType="map">
|
|
MERGE INTO PMS_PART_MASTER_CONNECT_PART P USING DUAL ON (P.TARGET_OBJID = #{targetObjId} AND P.PART_NO = #{partNo})
|
|
WHEN NOT MATCHED THEN
|
|
INSERT (
|
|
P.OBJID,
|
|
P.TARGET_OBJID,
|
|
P.PART_NO,
|
|
P.SEQ,
|
|
P.WRITER,
|
|
P.REGDATE
|
|
)VALUES(
|
|
#{objId},
|
|
#{targetObjId},
|
|
#{partNo},
|
|
(SELECT NVL(MAX(SEQ)+1,1) AS SEQ FROM PMS_PART_MASTER_CONNECT_PART WHERE TARGET_OBJID = #{targetObjId}),
|
|
#{writer},
|
|
SYSDATE
|
|
)
|
|
</update>
|
|
|
|
<!-- Part Master에서 연결된 개발마스터의 Part 목록을 가져온다. -->
|
|
<select id="getPartMasterConnectedDevMasterPart" parameterType="map" resultType="map">
|
|
SELECT
|
|
MASTER.OBJID,
|
|
MASTER.TARGET_OBJID
|
|
FROM PMS_DEV_MASTER MASTER
|
|
WHERE 1=1
|
|
AND MASTER.TARGET_OBJID = #{targetObjId}
|
|
AND NOT EXISTS(
|
|
SELECT
|
|
REL.TARGET_OBJID,
|
|
REL.PART_NO
|
|
FROM PMS_DEV_MASTER_REL_PART_INFO REL
|
|
WHERE MASTER.OBJID = REL.TARGET_OBJID
|
|
AND REL.PART_NO = #{partNo}
|
|
)
|
|
</select>
|
|
|
|
<!-- Part Master를 참조하는 개발 마스터의 목록을 가져온다. -->
|
|
<select id="getConnectDevMasterList" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID,
|
|
TARGET_OBJID,
|
|
OEM_OBJID,
|
|
CAR_OBJID,
|
|
PROD_GROUP_OBJID,
|
|
PROD_OBJID,
|
|
ASSAY_PART_NO,
|
|
WRITER,
|
|
REGDATE
|
|
FROM PMS_DEV_MASTER
|
|
WHERE TARGET_OBJID = #{objId}
|
|
</select>
|
|
|
|
<!-- Part Master에 연결해제된 Part의 정보를 삭제한다. -->
|
|
<delete id="partMasterDisConnectPart" parameterType="map">
|
|
DELETE PMS_PART_MASTER_CONNECT_PART
|
|
WHERE TARGET_OBJID = #{targetObjId}
|
|
AND PART_NO = #{partNo}
|
|
</delete>
|
|
|
|
<!-- Part Master에서 Part 연결해제 시 해당 Part Master와 연결된 개발 Master에서도 Part를 삭제한다. -->
|
|
<delete id="partMasterConnectDevMasterDisConnectPart" parameterType="map">
|
|
DELETE PMS_DEV_MASTER_REL_PART_INFO WHERE 1=1 AND TARGET_OBJID = #{objId} AND PART_NO = #{partNo}
|
|
</delete>
|
|
|
|
<!-- Part Master에 연결된 Part에 작성된 내용을 저장한다. -->
|
|
<update id="updateConnectPartInfo" parameterType="map">
|
|
MERGE INTO PMS_PART_MASTER_CONNECT_PART P USING DUAL ON (P.TARGET_OBJID = #{targetObjId} AND P.PART_NO = #{partNo})
|
|
WHEN MATCHED THEN
|
|
UPDATE SET
|
|
SEQ = #{seq}
|
|
</update>
|
|
|
|
<!-- 등록된 표준 WBS Task목록을 가져온다.-->
|
|
<select id="getStansardWBSTaskList" parameterType="map" resultType="map">
|
|
select
|
|
task.objid,
|
|
task.parent_objid,
|
|
task.task_name,
|
|
task.proj_step,
|
|
task.seq,
|
|
task.task_dept,
|
|
task.base_schedule,
|
|
task.bigo,
|
|
task.step_name,
|
|
task.task_step
|
|
from
|
|
pms_wbs_task as task
|
|
where task.is_template_task = 0
|
|
order by task.seq
|
|
</select>
|
|
|
|
<!-- 등록된 프로젝트의 WBS Task목록을 가져온다.-->
|
|
<select id="getProjectWBSTaskTreeList" parameterType="map" resultType="map">
|
|
<![CDATA[
|
|
SELECT
|
|
TASK.OBJID ,
|
|
TASK.TARGET_OBJID ,
|
|
TASK.PARENT_OBJID ,
|
|
TASK.TASK_NAME ,
|
|
TASK.TASK_TYPE ,
|
|
TASK.PROJ_STEP ,
|
|
TASK.WBS_CODE ,
|
|
TASK.SEQ ,
|
|
TASK.TASK_START_PLAN_DATE ,
|
|
TO_CHAR(TASK.TASK_START_PLAN_DATE,'YYYY-MM-DD') AS TASK_START_PLAN_DATE_TITLE ,
|
|
TASK.TASK_END_PLAN_DATE ,
|
|
REPLACE(REPLACE(((TASK_END_PLAN_DATE - TASK_START_PLAN_DATE)+'1 day')::VARCHAR,'days',''),'day','') AS PLAN_DUR ,
|
|
REPLACE(REPLACE(((TASK_END_DATE - TASK_START_DATE)+'1 day')::VARCHAR,'days',''),'day','') AS REAL_DUR ,
|
|
CASE WHEN TASK.TASK_END_DATE = TASK.TASK_END_PLAN_DATE THEN NULL
|
|
ELSE REPLACE(REPLACE((TASK.TASK_END_DATE - TASK.TASK_END_PLAN_DATE)::VARCHAR,'days',''),'day','')
|
|
END AS DELAY_DATE ,
|
|
TO_CHAR(TASK.TASK_END_PLAN_DATE,'YYYY-MM-DD') AS TASK_END_PLAN_DATE_TITLE ,
|
|
TASK.IS_TEMPLATE_TASK ,
|
|
TASK.TASK_END_DATE ,
|
|
TO_CHAR(TASK.TASK_END_DATE,'YYYY-MM-DD') AS TASK_END_DATE_TITLE ,
|
|
TASK.TASK_START_DATE ,
|
|
TO_CHAR(TASK.TASK_START_DATE,'YYYY-MM-DD') AS TASK_START_DATE_TITLE ,
|
|
TASK.TASK_DEPT ,
|
|
TASK.TASK_CHARGER_ID ,
|
|
(SELECT DEPT_NAME
|
|
FROM DEPT_INFO
|
|
WHERE DEPT_CODE =
|
|
(SELECT DEPT_CODE
|
|
FROM USER_INFO
|
|
WHERE USER_ID = TASK.TASK_CHARGER_ID
|
|
)
|
|
) AS DEPT_NAME ,
|
|
(SELECT USER_NAME
|
|
FROM USER_INFO
|
|
WHERE USER_ID = TASK.TASK_CHARGER_ID
|
|
) AS USER_NAME ,
|
|
TASK.BASE_SCHEDULE ,
|
|
TASK.REGDATE ,
|
|
TASK.STATUS ,
|
|
CASE
|
|
WHEN UPPER(STATUS) = 'COMPLETE'
|
|
THEN 'Y'
|
|
ELSE 'N'
|
|
END AS TASK_COMPLETE ,
|
|
CASE
|
|
WHEN UPPER(STATUS) = 'CREATE'
|
|
AND NOW() < TASK_START_PLAN_DATE
|
|
THEN 'Y'
|
|
ELSE 'N'
|
|
END AS TASK_PLAN ,
|
|
CASE
|
|
WHEN UPPER(STATUS) = 'CREATE'
|
|
AND NOW() > TASK_START_PLAN_DATE
|
|
AND NOW() < TASK_END_PLAN_DATE
|
|
THEN 'Y'
|
|
ELSE 'N'
|
|
END AS TASK_ONGOING ,
|
|
CASE
|
|
WHEN NOW() > COALESCE(TASK_END_PLAN_DATE,TASK_END_DATE)
|
|
THEN 'Y'
|
|
ELSE 'N'
|
|
END AS TASK_DELAY ,
|
|
CASE UPPER(TASK.STATUS)
|
|
WHEN 'CREATE'
|
|
THEN '작성'
|
|
WHEN 'PROGRESS'
|
|
THEN '진행중'
|
|
WHEN 'COMPLETE'
|
|
THEN '승인'
|
|
WHEN 'REJECT'
|
|
THEN '반려'
|
|
ELSE ''
|
|
END AS STATUS_TITLE ,
|
|
(SELECT COUNT(1)
|
|
FROM ATTACH_FILE_INFO
|
|
WHERE TARGET_OBJID = TASK.OBJID
|
|
AND DOC_TYPE='WBS_TASK_ATTACH'
|
|
AND UPPER(STATUS) = 'ACTIVE'
|
|
) AS WBS_FILE_CNT ,
|
|
TASK.WRITER AS WRITER ,
|
|
TASK.BIGO AS BIGO ,
|
|
TASK.STEP_NAME AS STEP_NAME ,
|
|
TASK.TASK_STEP AS TASK_STEP
|
|
FROM PMS_WBS_TASK AS TASK
|
|
WHERE TASK.IS_TEMPLATE_TASK = 1
|
|
AND TASK.TARGET_OBJID = #{objId}
|
|
AND PROJ_STEP = '1'
|
|
ORDER BY TASK.SEQ
|
|
]]>
|
|
</select>
|
|
|
|
<!-- 검색조건에 해당하는 프로젝트의 WBS Task 목록을 가져온다.-->
|
|
<select id="getSearchProjectWBSTaskList" parameterType="map" resultType="map">
|
|
SELECT TASK.*, ROWNUM RNUM
|
|
FROM(
|
|
SELECT TASK_INFO.*
|
|
FROM (
|
|
SELECT TASK.OBJID
|
|
,TASK.TARGET_OBJID
|
|
,TASK.PARENT_OBJID
|
|
,TASK.TASK_NAME
|
|
,TASK.TASK_TYPE
|
|
,TASK.PROJ_STEP
|
|
,DECODE(TASK.PROJ_STEP, '1', 'GATE1', '2', 'GATE2', '3', 'GATE3', '4', 'GATE4', '') AS PROJ_STEP_NAME
|
|
,TASK.WBS_CODE
|
|
,TASK.SEQ
|
|
,TASK.TASK_START_PLAN_DATE
|
|
,TO_CHAR(TASK.TASK_START_PLAN_DATE,'YYYY-MM-DD') AS TASK_START_PLAN_DATE_TITLE
|
|
,TASK.TASK_END_PLAN_DATE
|
|
,TO_CHAR(TASK.TASK_END_PLAN_DATE,'YYYY-MM-DD') AS TASK_END_PLAN_DATE_TITLE
|
|
,TASK.IS_TEMPLATE_TASK
|
|
,TASK.TASK_END_DATE
|
|
,TO_CHAR(TASK.TASK_END_DATE,'YYYY-MM-DD') AS TASK_END_DATE_TITLE
|
|
,TASK.TASK_DEPT
|
|
,TASK.TASK_CHARGER_ID
|
|
,(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = TASK.TASK_CHARGER_ID) AS DEPT_NAME
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = TASK.TASK_CHARGER_ID) AS USER_NAME
|
|
,TASK.BASE_SCHEDULE
|
|
,TASK.REGDATE
|
|
,TASK.STATUS
|
|
,TASK.WRITER
|
|
,PJT.CAR_OBJID
|
|
,(SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = PJT.CAR_OBJID) AS CAR_NAME
|
|
,PJT.OEM_OBJID
|
|
,(SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = PJT.OEM_OBJID) AS OEM_NAME
|
|
,PJT.OBJID AS PROJECT_OBJID
|
|
FROM
|
|
PMS_WBS_TASK TASK,
|
|
PMS_PJT_INFO PJT
|
|
WHERE TASK.IS_TEMPLATE_TASK = 1
|
|
AND UPPER(TASK.TASK_TYPE) = 'TASK'
|
|
AND TASK.TARGET_OBJID = PJT.OBJID
|
|
AND PJT.OBJID IN (
|
|
SELECT PROJECT_PROD.OBJID FROM(
|
|
SELECT
|
|
(SELECT PRODUCT_GROUP_OBJID FROM PRODUCT_MNG WHERE OBJID = REL_PROD.SUB_OBJID) AS PRODUCT_GROUP_OBJID,
|
|
REL_PROD.SUB_OBJID AS PRODUCT_OBJID,
|
|
PJT.OEM_OBJID,
|
|
PJT.CAR_OBJID,
|
|
PJT.OBJID
|
|
FROM
|
|
PMS_REL_PJT_PROD REL_PROD,
|
|
PMS_PJT_INFO PJT
|
|
WHERE REL_PROD.TARGET_OBJID(+)=PJT.OBJID
|
|
) PROJECT_PROD WHERE 1=1
|
|
<if test="carTypeObjId != null and !''.equals(carTypeObjId)">
|
|
AND PROJECT_PROD.CAR_OBJID = #{carTypeObjId}
|
|
</if>
|
|
<if test="oemObjId != null and !''.equals(oemObjId)">
|
|
AND PROJECT_PROD.OEM_OBJID = #{oemObjId}
|
|
</if>
|
|
<if test="productGroupObjId != null and !''.equals(productGroupObjId)">
|
|
AND PROJECT_PROD.PRODUCT_GROUP_OBJID = #{productGroupObjId}
|
|
</if>
|
|
<if test="productObjId != null and !''.equals(productObjId)">
|
|
AND PROJECT_PROD.PRODUCT_OBJID = #{productObjId}
|
|
</if>
|
|
)
|
|
) TASK_INFO
|
|
WHERE 1=1
|
|
<if test="search_dept != null and search_dept !='' ">
|
|
AND UPPER(DEPT_NAME) LIKE UPPER('%${search_dept}%')
|
|
</if>
|
|
<if test="search_user != null and search_user !='' ">
|
|
AND UPPER(USER_NAME) LIKE UPPER('%${search_user}%')
|
|
</if>
|
|
) TASK
|
|
</select>
|
|
|
|
<!-- 선택된 Function Task와 WBS Task를 연결한다..-->
|
|
<update id="connectProjectWBSTask" parameterType="map">
|
|
MERGE INTO PMS_REL_WBS_TASK_FNC_TASK P USING DUAL ON (P.TARGET_OBJID = #{wbsTaskObjId} AND P.SUB_OBJID = #{fnTaskObjId} AND TASK_TYPE = #{taskType})
|
|
WHEN NOT MATCHED THEN
|
|
INSERT (
|
|
OBJID,
|
|
TARGET_OBJID,
|
|
SUB_OBJID,
|
|
TASK_TYPE,
|
|
REGDATE,
|
|
WRITER
|
|
)VALUES(
|
|
#{objId},
|
|
#{wbsTaskObjId},
|
|
#{fnTaskObjId},
|
|
#{taskType},
|
|
SYSDATE,
|
|
#{writer}
|
|
)
|
|
</update>
|
|
|
|
<!-- 선택된 Function Task와 WBS Task를 연결한다..-->
|
|
<delete id="disConnectProjectWBSTask" parameterType="map">
|
|
DELETE PMS_REL_WBS_TASK_FNC_TASK WHERE TARGET_OBJID = #{targetObjId} AND SUB_OBJID = #{fnTaskObjId}
|
|
</delete>
|
|
|
|
<!-- WBS Task에 연결된 Function Task 목록을 가져온다.-->
|
|
<select id="getWBSTaskConnectFNTaskList" parameterType="map" resultType="map">
|
|
SELECT
|
|
ROWNUM RNUM,
|
|
OBJID,
|
|
TARGET_OBJID,
|
|
SUB_OBJID,
|
|
TASK_TYPE,
|
|
REGDATE,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE,
|
|
STATUS
|
|
FROM PMS_REL_WBS_TASK_FNC_TASK
|
|
WHERE TARGET_OBJID = #{objId}
|
|
</select>
|
|
|
|
<!-- Function Task에 연결된 WBS Task 목록을 가져온다.-->
|
|
<select id="getFNTaskConnectWBSTaskList" parameterType="map" resultType="map">
|
|
SELECT
|
|
ROW_NUMBER() OVER(ORDER BY REL_TASK.REGDATE DESC) AS RNUM,
|
|
REL_TASK.OBJID,
|
|
REL_TASK.TARGET_OBJID,
|
|
REL_TASK.SUB_OBJID,
|
|
REL_TASK.TASK_TYPE,
|
|
CASE UPPER(REL_TASK.TASK_TYPE)
|
|
WHEN 'DEV_MASTER' THEN '개발 Master'
|
|
ELSE ''
|
|
END AS TASK_TYPE_TITLE,
|
|
REL_TASK.REGDATE,
|
|
TO_CHAR(REL_TASK.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE,
|
|
WBS_TASK.TASK_NAME,
|
|
WBS_TASK.STATUS AS WBS_TASK_STATUS,
|
|
(SELECT CAR_CODE FROM CAR_MNG WHERE OBJID = PROJECT.CAR_OBJID) AS CAR_CODE,
|
|
(SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = PROJECT.CAR_OBJID) AS CAR_NAME,
|
|
(SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = PROJECT.OEM_OBJID) AS OEM_NAME
|
|
FROM
|
|
PMS_REL_WBS_TASK_FNC_TASK REL_TASK,
|
|
PMS_WBS_TASK WBS_TASK,
|
|
PMS_PJT_INFO PROJECT
|
|
WHERE SUB_OBJID = #{subObjId}
|
|
AND WBS_TASK.OBJID = REL_TASK.TARGET_OBJID
|
|
AND PROJECT.OBJID(+)=WBS_TASK.TARGET_OBJID
|
|
</select>
|
|
|
|
<!-- WBS Task의 상세 내용을 가져온다..-->
|
|
<select id="getProjectWBSTaskInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
TASK.OBJID
|
|
,TASK.TARGET_OBJID
|
|
,TASK.PARENT_OBJID
|
|
,TASK.TASK_NAME
|
|
,TASK.TASK_TYPE
|
|
,TASK.PROJ_STEP
|
|
,TASK.WBS_CODE
|
|
,TASK.SEQ
|
|
,TASK.TASK_START_PLAN_DATE
|
|
,TO_CHAR(TASK.TASK_START_PLAN_DATE,'YYYY-MM-DD') AS TASK_START_PLAN_DATE_TITLE
|
|
,TASK.TASK_END_PLAN_DATE
|
|
,TO_CHAR(TASK.TASK_END_PLAN_DATE,'YYYY-MM-DD') AS TASK_END_PLAN_DATE_TITLE
|
|
,TASK.IS_TEMPLATE_TASK
|
|
,TASK.TASK_END_DATE
|
|
,TO_CHAR(TASK.TASK_END_DATE,'YYYY-MM-DD') AS TASK_END_DATE_TITLE
|
|
,TASK.TASK_START_DATE
|
|
,TO_CHAR(TASK.TASK_START_DATE,'YYYY-MM-DD') AS TASK_START_DATE_TITLE
|
|
,TASK.TASK_DEPT
|
|
,TASK.TASK_CHARGER_ID
|
|
,(SELECT DEPT_NAME FROM DEPT_INFO WHERE DEPT_CODE = (SELECT DEPT_CODE FROM USER_INFO WHERE USER_ID = TASK.TASK_CHARGER_ID)) AS DEPT_NAME
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = TASK.TASK_CHARGER_ID) AS USER_NAME
|
|
,TASK.BASE_SCHEDULE
|
|
,TASK.REGDATE
|
|
,TASK.STATUS
|
|
,TASK.WRITER
|
|
,TASK.TASK_STEP
|
|
FROM PMS_WBS_TASK AS TASK
|
|
WHERE TASK.IS_TEMPLATE_TASK = 1
|
|
AND TASK.OBJID = #{taskObjId}
|
|
</select>
|
|
|
|
<!-- WBS Task의 내용을 저장한다.-->
|
|
<update id="mergeProjectWBSTaskInfo" parameterType="map">
|
|
INSERT INTO
|
|
pms_wbs_task
|
|
( objid,
|
|
target_objid,
|
|
parent_objid,
|
|
task_name,
|
|
task_start_plan_date,
|
|
task_end_plan_date,
|
|
task_start_date,
|
|
task_end_date,
|
|
is_template_task,
|
|
task_type,
|
|
proj_step,
|
|
regdate,
|
|
update_date,
|
|
status,
|
|
writer,
|
|
task_charger_id,
|
|
task_dept
|
|
)
|
|
VALUES (
|
|
#{objId}::integer,
|
|
#{projectObjId}::integer,
|
|
0,
|
|
#{taskName},
|
|
to_date(#{taskStartPlanDate},'yyyy-mm-dd'),
|
|
to_date(#{taskEndPlanDate},'yyyy-mm-dd'),
|
|
to_date(#{taskStartDate},'yyyy-mm-dd'),
|
|
to_date(#{taskEndDate},'yyyy-mm-dd'),
|
|
#{isTemplateTask}::integer,
|
|
'task',
|
|
#{projStep},
|
|
now(),
|
|
now(),
|
|
#{status},
|
|
#{writer},
|
|
#{taskChargerId},
|
|
#{taskDeptCode}
|
|
) ON
|
|
CONFLICT (objId) DO
|
|
UPDATE
|
|
SET task_name =#{taskName},
|
|
task_start_plan_date =to_date(#{taskStartPlanDate},'yyyy-mm-dd'),
|
|
task_end_plan_date =to_date(#{taskEndPlanDate},'yyyy-mm-dd'),
|
|
task_start_date =to_date(#{taskStartDate},'yyyy-mm-dd'),
|
|
task_end_date =to_date(#{taskEndDate},'yyyy-mm-dd'),
|
|
status =#{status},
|
|
task_charger_id =#{taskChargerId},
|
|
task_dept =#{taskDeptCode},
|
|
update_date =now()
|
|
</update>
|
|
|
|
<!-- 삭제할 Task에 연결된 Task의 목록을 가져온다. -->
|
|
<select id="getConnectedTaskList" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID
|
|
FROM
|
|
PMS_WBS_TASK TASK
|
|
START WITH TASK.OBJID = #{taskObjId}
|
|
CONNECT BY PRIOR TASK.OBJID = TASK.PARENT_OBJID
|
|
</select>
|
|
|
|
<!-- WBS Task를 삭제한다. -->
|
|
<delete id="deleteProjectWBSTask" parameterType="map">
|
|
DELETE PMS_WBS_TASK TASK WHERE TASK.OBJID = #{taskObjId}
|
|
</delete>
|
|
|
|
<!-- WBS Task 삭제 시 FN Task와의 연결정보도 삭제한다. -->
|
|
<delete id="deleteTaskRelInfo" parameterType="map">
|
|
DELETE PMS_REL_WBS_TASK_FNC_TASK WHERE TARGET_OBJID = #{taskObjId}
|
|
</delete>
|
|
|
|
<!-- Task의 확인 이력 목록을 가져온다. -->
|
|
<select id="getTaskConfirmHistoryList" parameterType="map" resultType="map">
|
|
SELECT A.*, ROW_NUMBER() OVER(ORDER BY REGDATE DESC) AS RNUM
|
|
FROM(
|
|
SELECT
|
|
OBJID,
|
|
TARGET_OBJID,
|
|
CONFIRM_TYPE,
|
|
CASE UPPER(CONFIRM_TYPE)
|
|
WHEN 'TFT' THEN 'TFT 장'
|
|
WHEN 'PL' THEN 'PL'
|
|
ELSE ''
|
|
END AS CONFIRM_TYPE_TITLE,
|
|
CONTENTS,
|
|
RESULT,
|
|
CASE UPPER(RESULT)
|
|
WHEN 'OK' THEN '승인'
|
|
WHEN 'NG' THEN '반려'
|
|
ELSE ''
|
|
END AS RESULT_TITLE,
|
|
REGDATE,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE,
|
|
WRITER,
|
|
(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS DEPT_NAME,
|
|
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS USER_NAME
|
|
FROM PMS_WBS_TASK_CONFIRM
|
|
WHERE 1=1
|
|
AND TARGET_OBJID = #{objId}
|
|
)A
|
|
</select>
|
|
|
|
<!-- Task의 확인 이력 단건내용을 가져온다. -->
|
|
<select id="getTaskConfirmHistoryInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID,
|
|
TARGET_OBJID,
|
|
CONFIRM_TYPE,
|
|
CASE UPPER(CONFIRM_TYPE)
|
|
WHEN 'TFT' THEN 'TFT 장'
|
|
WHEN 'PL' THEN 'PL'
|
|
ELSE ''
|
|
END AS CONFIRM_TYPE_TITLE,
|
|
CONTENTS,
|
|
RESULT,
|
|
CASE UPPER(RESULT)
|
|
WHEN 'OK' THEN '승인'
|
|
WHEN 'NG' THEN '반려'
|
|
ELSE ''
|
|
END AS RESULT_TITLE,
|
|
REGDATE,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE,
|
|
WRITER,
|
|
(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS DEPT_NAME,
|
|
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS USER_NAME
|
|
FROM PMS_WBS_TASK_CONFIRM
|
|
WHERE 1=1
|
|
AND OBJID = #{confirmObjId}
|
|
</select>
|
|
|
|
<!-- Task의 확인 이력 단건내용을 저장한다. -->
|
|
<insert id="insertTaskConfirmHistoryInfo" parameterType="map">
|
|
INSERT INTO
|
|
PMS_WBS_TASK_CONFIRM (
|
|
OBJID,
|
|
TARGET_OBJID,
|
|
CONFIRM_TYPE,
|
|
CONTENTS,
|
|
RESULT,
|
|
REGDATE,
|
|
WRITER
|
|
)
|
|
VALUES
|
|
(
|
|
#{objId},
|
|
#{targetObjId},
|
|
#{userType},
|
|
#{contents},
|
|
#{result},
|
|
SYSDATE,
|
|
#{writer}
|
|
)
|
|
</insert>
|
|
|
|
<!-- Task의 확인(TFT,PL)시 해당 Task를 완료상태로 변경한다. . -->
|
|
<update id="taskConfirmChangeStatus" parameterType="map">
|
|
UPDATE
|
|
PMS_WBS_TASK
|
|
SET STATUS = #{status}
|
|
<if test="'complete'.equals(status)">
|
|
,TASK_END_DATE = SYSDATE
|
|
</if>
|
|
WHERE OBJID = #{targetObjId}
|
|
</update>
|
|
|
|
<!-- 부서 정보를 조회한다. -->
|
|
<select id="searchDeptList" parameterType="map" resultType="map">
|
|
SELECT DEPT_CODE
|
|
, PARENT_DEPT_CODE
|
|
, DEPT_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>
|
|
|
|
<!-- 부서 정보를 변경한다. -->
|
|
<update id="changeTaskDept" parameterType="map">
|
|
UPDATE PMS_WBS_TASK SET TASK_DEPT = #{deptCode} ,TASK_CHARGER_ID = null WHERE OBJID = #{taskObjId}
|
|
</update>
|
|
|
|
<!-- Task 담당자 정보를 변경한다. -->
|
|
<update id="changeTaskChargerId" parameterType="map">
|
|
UPDATE PMS_WBS_TASK SET TASK_CHARGER_ID = #{userId} WHERE OBJID = #{taskObjId}
|
|
</update>
|
|
|
|
<!-- 등록된 프로젝트의 WBS Task목록을 가져온다.-->
|
|
<select id="getTaskList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM(
|
|
SELECT
|
|
TASK.*,
|
|
ROW_NUMBER() OVER(ORDER BY TASK.TASK_START_PLAN_DATE DESC NULLS LAST) AS RNUM
|
|
FROM(
|
|
SELECT TASK.*
|
|
,DECODE(WBS_FILE_CNT, '0', 'N', 'Y') WBS_FILE
|
|
,DECODE(TASK_LINK_CNT, '0', 'N', 'Y') TASK_LINK
|
|
FROM (
|
|
SELECT
|
|
TASK.OBJID
|
|
,(SELECT COUNT(1) FROM PMS_REL_WBS_TASK_FNC_TASK WHERE TARGET_OBJID = TASK.OBJID) AS TASK_LINK_CNT
|
|
,(SELECT CAR_OBJID FROM PMS_PJT_INFO WHERE OBJID = TASK.TARGET_OBJID) AS CAR_OBJID
|
|
,(SELECT OBJID FROM OEM_MNG WHERE OBJID = (SELECT OEM_OBJID FROM PMS_PJT_INFO WHERE OBJID = TASK.TARGET_OBJID)) AS OEM_OBJID
|
|
,(SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = (SELECT OEM_OBJID FROM PMS_PJT_INFO WHERE OBJID = TASK.TARGET_OBJID)) AS OEM_NAME
|
|
,(SELECT CAR_CODE FROM CAR_MNG WHERE OBJID = (SELECT CAR_OBJID FROM PMS_PJT_INFO WHERE OBJID = TASK.TARGET_OBJID)) AS CAR_CODE
|
|
,(SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = (SELECT CAR_OBJID FROM PMS_PJT_INFO WHERE OBJID = TASK.TARGET_OBJID)) AS CAR_NAME
|
|
,TASK.TARGET_OBJID
|
|
,TASK.PARENT_OBJID
|
|
,TASK.TASK_NAME
|
|
,TASK.TASK_TYPE
|
|
,TASK.PROJ_STEP
|
|
,TASK.WBS_CODE
|
|
,TASK.SEQ
|
|
,TASK.TASK_START_PLAN_DATE
|
|
,TO_CHAR(TASK.TASK_START_PLAN_DATE,'YYYY-MM-DD') AS TASK_START_PLAN_DATE_TITLE
|
|
,TASK.TASK_END_PLAN_DATE
|
|
,TO_CHAR(TASK.TASK_END_PLAN_DATE,'YYYY-MM-DD') AS TASK_END_PLAN_DATE_TITLE
|
|
,TASK.IS_TEMPLATE_TASK
|
|
,TASK.TASK_END_DATE
|
|
,TO_CHAR(TASK.TASK_END_DATE,'YYYY-MM-DD') AS TASK_END_DATE_TITLE
|
|
,TASK.TASK_DEPT
|
|
,TASK.TASK_CHARGER_ID
|
|
<!-- ,(SELECT DEPT_NAME FROM DEPT_INFO WHERE DEPT_CODE = TASK.TASK_DEPT) AS DEPT_NAME -->
|
|
,(SELECT DEPT_NAME FROM DEPT_INFO WHERE DEPT_CODE = (SELECT DEPT_CODE FROM USER_INFO WHERE USER_ID = TASK.TASK_CHARGER_ID)) AS DEPT_NAME
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = TASK.TASK_CHARGER_ID) AS USER_NAME
|
|
,TASK.BASE_SCHEDULE
|
|
,TASK.REGDATE
|
|
,TASK.STATUS
|
|
, CASE WHEN UPPER(STATUS) = 'COMPLETE' THEN 'Y' ELSE 'N' END AS TASK_COMPLETE
|
|
, CASE WHEN UPPER(STATUS) = 'CREATE' AND SYSDATE <![CDATA[ < ]]> TASK_START_PLAN_DATE THEN 'Y' ELSE 'N' END AS TASK_PLAN
|
|
, CASE WHEN UPPER(STATUS) = 'CREATE' AND SYSDATE <![CDATA[ > ]]> TASK_START_PLAN_DATE AND SYSDATE <![CDATA[ < ]]> TASK_END_PLAN_DATE THEN 'Y' ELSE 'N' END AS TASK_ONGOING
|
|
, CASE WHEN UPPER(STATUS) = 'CREATE' AND SYSDATE <![CDATA[ > ]]> TASK_END_PLAN_DATE THEN 'Y' ELSE 'N' END AS TASK_DELAY
|
|
,CASE UPPER(TASK.STATUS)
|
|
WHEN 'CREATE' THEN '작성'
|
|
WHEN 'PROGRESS' THEN '진행중'
|
|
WHEN 'COMPLETE' THEN '완료'
|
|
WHEN 'REJECT' THEN '반려'
|
|
ELSE ''
|
|
END AS STATUS_TITLE
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = TASK.OBJID AND DOC_TYPE='WBS_TASK_ATTACH' AND UPPER(STATUS) = 'ACTIVE') AS WBS_FILE_CNT
|
|
,TASK.WRITER
|
|
FROM PMS_WBS_TASK TASK
|
|
WHERE TASK.IS_TEMPLATE_TASK = 1
|
|
AND UPPER(TASK.TASK_TYPE) = 'TASK'
|
|
) TASK WHERE 1=1
|
|
<if test="search_oem != null and search_oem !='' ">
|
|
AND TASK.OEM_OBJID = #{search_oem}
|
|
</if>
|
|
<if test="search_carType != null and search_carType !='' ">
|
|
AND TASK.CAR_OBJID = #{search_carType}
|
|
</if>
|
|
<if test="search_deptName != null and search_deptName !='' ">
|
|
AND UPPER(TASK.DEPT_NAME) LIKE UPPER('%${search_deptName}%')
|
|
</if>
|
|
<if test="search_userName != null and search_userName !='' ">
|
|
AND UPPER(TASK.USER_NAME) LIKE UPPER('%${search_userName}%')
|
|
</if>
|
|
<if test="search_planFromDate != null and search_planFromDate != '' and 'start'.equals(search_planDate) " >
|
|
AND TO_DATE(TASK.TASK_START_PLAN_DATE_TITLE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_planFromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_planToDate != null and search_planToDate != '' and 'start'.equals(search_planDate) ">
|
|
AND TO_DATE(TASK.TASK_START_PLAN_DATE_TITLE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_planToDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_planFromDate != null and search_planFromDate != '' and 'end'.equals(search_planDate) " >
|
|
AND TO_DATE(TASK.TASK_END_PLAN_DATE_TITLE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_planFromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_planToDate != null and search_planToDate != '' and 'end'.equals(search_planDate) ">
|
|
AND TO_DATE(TASK.TASK_END_PLAN_DATE_TITLE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_planToDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_fromDate != null and search_fromDate != ''">
|
|
AND TO_DATE(TASK.TASK_END_DATE_TITLE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and search_toDate != ''">
|
|
AND TO_DATE(TASK.TASK_END_DATE_TITLE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
) TASK WHERE 1=1
|
|
<if test="search_file != null and search_file !='' and 'file' == search_task">
|
|
AND UPPER(WBS_FILE) = UPPER(#{search_file})
|
|
</if>
|
|
<if test="search_file != null and search_file !='' and 'link' == search_task">
|
|
AND UPPER(TASK_LINK) = UPPER(#{search_file})
|
|
</if>
|
|
<if test="search_status !=null and search_status !=''">
|
|
AND STATUS = #{search_status}
|
|
</if>
|
|
<if test="'complete'.equals(search_status_type)">
|
|
AND UPPER(TASK_COMPLETE) = 'Y'
|
|
</if>
|
|
<if test="'plan'.equals(search_status_type)">
|
|
AND UPPER(TASK_PLAN) = 'Y'
|
|
</if>
|
|
<if test="'ongoing'.equals(search_status_type)">
|
|
AND UPPER(TASK_ONGOING) = 'Y'
|
|
</if>
|
|
<if test="'delay'.equals(search_status_type)">
|
|
AND UPPER(TASK_DELAY) = 'Y'
|
|
</if>
|
|
) WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END !='' and actionType != 'excel'">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_STRART!='' and actionType != 'excel'">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 등록된 프로젝트의 WBS Task Count목록을 가져온다.-->
|
|
<select id="getTaskListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
|
|
TOTAL_CNT
|
|
FROM (
|
|
SELECT COUNT(1) TOTAL_CNT
|
|
FROM(
|
|
SELECT TASK.*
|
|
,DECODE(WBS_FILE_CNT, '0', 'N', 'Y') WBS_FILE
|
|
,DECODE(TASK_LINK_CNT, '0', 'N', 'Y') TASK_LINK
|
|
FROM (
|
|
SELECT
|
|
TASK.OBJID
|
|
,(SELECT COUNT(1) FROM PMS_REL_WBS_TASK_FNC_TASK WHERE TARGET_OBJID = TASK.OBJID) AS TASK_LINK_CNT
|
|
,(SELECT CAR_OBJID FROM PMS_PJT_INFO WHERE OBJID = TASK.TARGET_OBJID) AS CAR_OBJID
|
|
,(SELECT OBJID FROM OEM_MNG WHERE OBJID = (SELECT OEM_OBJID FROM PMS_PJT_INFO WHERE OBJID = TASK.TARGET_OBJID)) AS OEM_OBJID
|
|
,(SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = (SELECT OEM_OBJID FROM PMS_PJT_INFO WHERE OBJID = TASK.TARGET_OBJID)) AS OEM_NAME
|
|
,(SELECT CAR_CODE FROM CAR_MNG WHERE OBJID = (SELECT CAR_OBJID FROM PMS_PJT_INFO WHERE OBJID = TASK.TARGET_OBJID)) AS CAR_CODE
|
|
,(SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = (SELECT CAR_OBJID FROM PMS_PJT_INFO WHERE OBJID = TASK.TARGET_OBJID)) AS CAR_NAME
|
|
,TASK.TARGET_OBJID
|
|
,TASK.PARENT_OBJID
|
|
,TASK.TASK_NAME
|
|
,TASK.TASK_TYPE
|
|
,TASK.PROJ_STEP
|
|
,TASK.WBS_CODE
|
|
,TASK.SEQ
|
|
,TASK.TASK_START_PLAN_DATE
|
|
,TO_CHAR(TASK.TASK_START_PLAN_DATE,'YYYY-MM-DD') AS TASK_START_PLAN_DATE_TITLE
|
|
,TASK.TASK_END_PLAN_DATE
|
|
,TO_CHAR(TASK.TASK_END_PLAN_DATE,'YYYY-MM-DD') AS TASK_END_PLAN_DATE_TITLE
|
|
,TASK.IS_TEMPLATE_TASK
|
|
,TASK.TASK_END_DATE
|
|
,TO_CHAR(TASK.TASK_END_DATE,'YYYY-MM-DD') AS TASK_END_DATE_TITLE
|
|
,TASK.TASK_DEPT
|
|
,TASK.TASK_CHARGER_ID
|
|
<!-- ,(SELECT DEPT_NAME FROM DEPT_INFO WHERE DEPT_CODE = TASK.TASK_DEPT) AS DEPT_NAME -->
|
|
,(SELECT DEPT_NAME FROM DEPT_INFO WHERE DEPT_CODE = (SELECT DEPT_CODE FROM USER_INFO WHERE USER_ID = TASK.TASK_CHARGER_ID)) AS DEPT_NAME
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = TASK.TASK_CHARGER_ID) AS USER_NAME
|
|
,TASK.BASE_SCHEDULE
|
|
,TASK.REGDATE
|
|
,TASK.STATUS
|
|
, CASE WHEN UPPER(STATUS) = 'COMPLETE' THEN 'Y' ELSE 'N' END AS TASK_COMPLETE
|
|
, CASE WHEN UPPER(STATUS) = 'CREATE' AND SYSDATE <![CDATA[ < ]]> TASK_START_PLAN_DATE THEN 'Y' ELSE 'N' END AS TASK_PLAN
|
|
, CASE WHEN UPPER(STATUS) = 'CREATE' AND SYSDATE <![CDATA[ > ]]> TASK_START_PLAN_DATE AND SYSDATE <![CDATA[ < ]]> TASK_END_PLAN_DATE THEN 'Y' ELSE 'N' END AS TASK_ONGOING
|
|
, CASE WHEN UPPER(STATUS) = 'CREATE' AND SYSDATE <![CDATA[ > ]]> TASK_END_PLAN_DATE THEN 'Y' ELSE 'N' END AS TASK_DELAY
|
|
,CASE UPPER(TASK.STATUS)
|
|
WHEN 'CREATE' THEN '작성'
|
|
WHEN 'PROGRESS' THEN '진행중'
|
|
WHEN 'COMPLETE' THEN '완료'
|
|
WHEN 'REJECT' THEN '반려'
|
|
ELSE ''
|
|
END AS STATUS_TITLE
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = TASK.OBJID AND DOC_TYPE='WBS_TASK_ATTACH' AND UPPER(STATUS) = 'ACTIVE') AS WBS_FILE_CNT
|
|
,TASK.WRITER
|
|
,((SELECT COUNT(1) FROM PMS_WBS_TASK WHERE OBJID = TASK.PARENT_OBJID AND IS_TEMPLATE_TASK = 1)+(SELECT COUNT(1) FROM PMS_WBS_TASK WHERE OBJID IN (SELECT PARENT_OBJID FROM PMS_WBS_TASK WHERE OBJID = TASK.PARENT_OBJID AND IS_TEMPLATE_TASK = 1))) AS PARENT_CNT
|
|
FROM PMS_WBS_TASK TASK
|
|
WHERE TASK.IS_TEMPLATE_TASK = 1
|
|
AND UPPER(TASK.TASK_TYPE) = 'TASK'
|
|
) TASK WHERE 1=1
|
|
<if test="search_oem != null and search_oem !='' ">
|
|
AND TASK.OEM_OBJID = #{search_oem}
|
|
</if>
|
|
<if test="search_carType != null and search_carType !='' ">
|
|
AND TASK.CAR_OBJID = #{search_carType}
|
|
</if>
|
|
<if test="search_deptName != null and search_deptName !='' ">
|
|
AND UPPER(TASK.DEPT_NAME) LIKE UPPER('%${search_deptName}%')
|
|
</if>
|
|
<if test="search_userName != null and search_userName !='' ">
|
|
AND UPPER(TASK.USER_NAME) LIKE UPPER('%${search_userName}%')
|
|
</if>
|
|
<if test="search_planFromDate != null and search_planFromDate != '' and 'start'.equals(search_planDate) " >
|
|
AND TO_DATE(TASK.TASK_START_PLAN_DATE_TITLE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_planFromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_planToDate != null and search_planToDate != '' and 'start'.equals(search_planDate) ">
|
|
AND TO_DATE(TASK.TASK_START_PLAN_DATE_TITLE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_planToDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_planFromDate != null and search_planFromDate != '' and 'end'.equals(search_planDate) " >
|
|
AND TO_DATE(TASK.TASK_END_PLAN_DATE_TITLE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_planFromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_planToDate != null and search_planToDate != '' and 'end'.equals(search_planDate) ">
|
|
AND TO_DATE(TASK.TASK_END_PLAN_DATE_TITLE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_planToDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_fromDate != null and search_fromDate != ''">
|
|
AND TO_DATE(TASK.TASK_END_DATE_TITLE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and search_toDate != ''">
|
|
AND TO_DATE(TASK.TASK_END_DATE_TITLE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
) TASK WHERE 1=1
|
|
<if test="search_file != null and search_file !='' and 'file' == search_task">
|
|
AND UPPER(WBS_FILE) = UPPER(#{search_file})
|
|
</if>
|
|
<if test="search_file != null and search_file !='' and 'link' == search_task">
|
|
AND UPPER(TASK_LINK) = UPPER(#{search_file})
|
|
</if>
|
|
<if test="search_status !=null and search_status !=''">
|
|
AND STATUS = #{search_status}
|
|
</if>
|
|
<if test="'complete'.equals(search_status_type)">
|
|
AND UPPER(TASK_COMPLETE) = 'Y'
|
|
</if>
|
|
<if test="'plan'.equals(search_status_type)">
|
|
AND UPPER(TASK_PLAN) = 'Y'
|
|
</if>
|
|
<if test="'ongoing'.equals(search_status_type)">
|
|
AND UPPER(TASK_ONGOING) = 'Y'
|
|
</if>
|
|
<if test="'delay'.equals(search_status_type)">
|
|
AND UPPER(TASK_DELAY) = 'Y'
|
|
</if>
|
|
)
|
|
</select>
|
|
<!-- //edhwang end -->
|
|
|
|
<!-- //msryu start -->
|
|
<!-- 등록된 프로젝트의 WBS My Task목록을 가져온다.-->
|
|
<select id="getMyTaskList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM(
|
|
SELECT
|
|
TASK.*,
|
|
ROW_NUMBER() OVER(ORDER BY TASK.TASK_START_PLAN_DATE DESC NULLS LAST) AS RNUM
|
|
FROM(
|
|
SELECT TASK.*
|
|
,DECODE(WBS_FILE_CNT, '0', 'N', 'Y') WBS_FILE
|
|
,DECODE(TASK_LINK_CNT, '0', 'N', 'Y') TASK_LINK
|
|
FROM (
|
|
SELECT
|
|
TASK.OBJID
|
|
,(SELECT COUNT(1) FROM PMS_REL_WBS_TASK_FNC_TASK WHERE TARGET_OBJID = TASK.OBJID) AS TASK_LINK_CNT
|
|
,(SELECT CAR_OBJID FROM PMS_PJT_INFO WHERE OBJID = TASK.TARGET_OBJID) AS CAR_OBJID
|
|
,(SELECT OBJID FROM OEM_MNG WHERE OBJID = (SELECT OEM_OBJID FROM PMS_PJT_INFO WHERE OBJID = TASK.TARGET_OBJID)) AS OEM_OBJID
|
|
,(SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = (SELECT OEM_OBJID FROM PMS_PJT_INFO WHERE OBJID = TASK.TARGET_OBJID)) AS OEM_NAME
|
|
,(SELECT CAR_CODE FROM CAR_MNG WHERE OBJID = (SELECT CAR_OBJID FROM PMS_PJT_INFO WHERE OBJID = TASK.TARGET_OBJID)) AS CAR_CODE
|
|
,(SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = (SELECT CAR_OBJID FROM PMS_PJT_INFO WHERE OBJID = TASK.TARGET_OBJID)) AS CAR_NAME
|
|
,TASK.TARGET_OBJID
|
|
,TASK.PARENT_OBJID
|
|
,TASK.TASK_NAME
|
|
,TASK.TASK_TYPE
|
|
,TASK.PROJ_STEP
|
|
,TASK.WBS_CODE
|
|
,TASK.SEQ
|
|
,TASK.TASK_START_PLAN_DATE
|
|
,TO_CHAR(TASK.TASK_START_PLAN_DATE,'YYYY-MM-DD') AS TASK_START_PLAN_DATE_TITLE
|
|
,TASK.TASK_END_PLAN_DATE
|
|
,TO_CHAR(TASK.TASK_END_PLAN_DATE,'YYYY-MM-DD') AS TASK_END_PLAN_DATE_TITLE
|
|
,TASK.IS_TEMPLATE_TASK
|
|
,TASK.TASK_END_DATE
|
|
,TO_CHAR(TASK.TASK_END_DATE,'YYYY-MM-DD') AS TASK_END_DATE_TITLE
|
|
,TASK.TASK_DEPT
|
|
,TASK.TASK_CHARGER_ID
|
|
<!-- ,(SELECT DEPT_NAME FROM DEPT_INFO WHERE DEPT_CODE = TASK.TASK_DEPT) AS DEPT_NAME -->
|
|
,(SELECT DEPT_NAME FROM DEPT_INFO WHERE DEPT_CODE = (SELECT DEPT_CODE FROM USER_INFO WHERE USER_ID = TASK.TASK_CHARGER_ID)) AS DEPT_NAME
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = TASK.TASK_CHARGER_ID) AS USER_NAME
|
|
,TASK.BASE_SCHEDULE
|
|
,TASK.REGDATE
|
|
,TASK.STATUS
|
|
, CASE WHEN UPPER(STATUS) = 'COMPLETE' THEN 'Y' ELSE 'N' END AS TASK_COMPLETE
|
|
, CASE WHEN UPPER(STATUS) = 'CREATE' AND SYSDATE <![CDATA[ < ]]> TASK_START_PLAN_DATE THEN 'Y' ELSE 'N' END AS TASK_PLAN
|
|
, CASE WHEN UPPER(STATUS) = 'CREATE' AND SYSDATE <![CDATA[ > ]]> TASK_START_PLAN_DATE AND SYSDATE <![CDATA[ < ]]> TASK_END_PLAN_DATE THEN 'Y' ELSE 'N' END AS TASK_ONGOING
|
|
, CASE WHEN UPPER(STATUS) = 'CREATE' AND SYSDATE <![CDATA[ > ]]> TASK_END_PLAN_DATE THEN 'Y' ELSE 'N' END AS TASK_DELAY
|
|
,CASE UPPER(TASK.STATUS)
|
|
WHEN 'CREATE' THEN '작성'
|
|
WHEN 'PROGRESS' THEN '진행중'
|
|
WHEN 'COMPLETE' THEN '완료'
|
|
WHEN 'REJECT' THEN '반려'
|
|
ELSE ''
|
|
END AS STATUS_TITLE
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = TASK.OBJID AND DOC_TYPE='WBS_TASK_ATTACH' AND UPPER(STATUS) = 'ACTIVE') AS WBS_FILE_CNT
|
|
,TASK.WRITER
|
|
FROM PMS_WBS_TASK TASK
|
|
WHERE TASK.IS_TEMPLATE_TASK = 1
|
|
AND UPPER(TASK.TASK_TYPE) = 'TASK'
|
|
) TASK WHERE 1=1
|
|
<if test="search_oem != null and search_oem !='' ">
|
|
AND TASK.OEM_OBJID = #{search_oem}
|
|
</if>
|
|
<if test="search_carType != null and search_carType !='' ">
|
|
AND TASK.CAR_OBJID = #{search_carType}
|
|
</if>
|
|
<if test="search_deptName != null and search_deptName !='' ">
|
|
AND UPPER(TASK.DEPT_NAME) LIKE UPPER('%${search_deptName}%')
|
|
</if>
|
|
<if test="search_userName != null and search_userName !='' ">
|
|
AND UPPER(TASK.USER_NAME) LIKE UPPER('%${search_userName}%')
|
|
</if>
|
|
<if test="search_planFromDate != null and search_planFromDate != '' and 'start'.equals(search_planDate) " >
|
|
AND TO_DATE(TASK.TASK_START_PLAN_DATE_TITLE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_planFromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_planToDate != null and search_planToDate != '' and 'start'.equals(search_planDate) ">
|
|
AND TO_DATE(TASK.TASK_START_PLAN_DATE_TITLE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_planToDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_planFromDate != null and search_planFromDate != '' and 'end'.equals(search_planDate) " >
|
|
AND TO_DATE(TASK.TASK_END_PLAN_DATE_TITLE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_planFromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_planToDate != null and search_planToDate != '' and 'end'.equals(search_planDate) ">
|
|
AND TO_DATE(TASK.TASK_END_PLAN_DATE_TITLE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_planToDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_fromDate != null and search_fromDate != ''">
|
|
AND TO_DATE(TASK.TASK_END_DATE_TITLE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and search_toDate != ''">
|
|
AND TO_DATE(TASK.TASK_END_DATE_TITLE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
) TASK WHERE 1=1
|
|
<if test="search_file != null and search_file !='' and 'file' == search_task">
|
|
AND UPPER(WBS_FILE) = UPPER(#{search_file})
|
|
</if>
|
|
<if test="search_file != null and search_file !='' and 'link' == search_task">
|
|
AND UPPER(TASK_LINK) = UPPER(#{search_file})
|
|
</if>
|
|
<if test="search_status !=null and search_status !=''">
|
|
AND STATUS = #{search_status}
|
|
</if>
|
|
<if test="'complete'.equals(search_status_type)">
|
|
AND UPPER(TASK_COMPLETE) = 'Y'
|
|
</if>
|
|
<if test="'plan'.equals(search_status_type)">
|
|
AND UPPER(TASK_PLAN) = 'Y'
|
|
</if>
|
|
<if test="'ongoing'.equals(search_status_type)">
|
|
AND UPPER(TASK_ONGOING) = 'Y'
|
|
</if>
|
|
<if test="'delay'.equals(search_status_type)">
|
|
AND UPPER(TASK_DELAY) = 'Y'
|
|
</if>
|
|
) WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END !='' and actionType != 'excel'">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_STRART!='' and actionType != 'excel'">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 등록된 프로젝트의 WBS My Task Count목록을 가져온다.-->
|
|
<select id="getMyTaskListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
|
|
TOTAL_CNT
|
|
FROM (
|
|
SELECT COUNT(1) TOTAL_CNT
|
|
FROM(
|
|
SELECT TASK.*
|
|
,DECODE(WBS_FILE_CNT, '0', 'N', 'Y') WBS_FILE
|
|
,DECODE(TASK_LINK_CNT, '0', 'N', 'Y') TASK_LINK
|
|
FROM (
|
|
SELECT
|
|
TASK.OBJID
|
|
,(SELECT COUNT(1) FROM PMS_REL_WBS_TASK_FNC_TASK WHERE TARGET_OBJID = TASK.OBJID) AS TASK_LINK_CNT
|
|
,(SELECT CAR_OBJID FROM PMS_PJT_INFO WHERE OBJID = TASK.TARGET_OBJID) AS CAR_OBJID
|
|
,(SELECT OBJID FROM OEM_MNG WHERE OBJID = (SELECT OEM_OBJID FROM PMS_PJT_INFO WHERE OBJID = TASK.TARGET_OBJID)) AS OEM_OBJID
|
|
,(SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = (SELECT OEM_OBJID FROM PMS_PJT_INFO WHERE OBJID = TASK.TARGET_OBJID)) AS OEM_NAME
|
|
,(SELECT CAR_CODE FROM CAR_MNG WHERE OBJID = (SELECT CAR_OBJID FROM PMS_PJT_INFO WHERE OBJID = TASK.TARGET_OBJID)) AS CAR_CODE
|
|
,(SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = (SELECT CAR_OBJID FROM PMS_PJT_INFO WHERE OBJID = TASK.TARGET_OBJID)) AS CAR_NAME
|
|
,TASK.TARGET_OBJID
|
|
,TASK.PARENT_OBJID
|
|
,TASK.TASK_NAME
|
|
,TASK.TASK_TYPE
|
|
,TASK.PROJ_STEP
|
|
,TASK.WBS_CODE
|
|
,TASK.SEQ
|
|
,TASK.TASK_START_PLAN_DATE
|
|
,TO_CHAR(TASK.TASK_START_PLAN_DATE,'YYYY-MM-DD') AS TASK_START_PLAN_DATE_TITLE
|
|
,TASK.TASK_END_PLAN_DATE
|
|
,TO_CHAR(TASK.TASK_END_PLAN_DATE,'YYYY-MM-DD') AS TASK_END_PLAN_DATE_TITLE
|
|
,TASK.IS_TEMPLATE_TASK
|
|
,TASK.TASK_END_DATE
|
|
,TO_CHAR(TASK.TASK_END_DATE,'YYYY-MM-DD') AS TASK_END_DATE_TITLE
|
|
,TASK.TASK_DEPT
|
|
,TASK.TASK_CHARGER_ID
|
|
<!-- ,(SELECT DEPT_NAME FROM DEPT_INFO WHERE DEPT_CODE = TASK.TASK_DEPT) AS DEPT_NAME -->
|
|
,(SELECT DEPT_NAME FROM DEPT_INFO WHERE DEPT_CODE = (SELECT DEPT_CODE FROM USER_INFO WHERE USER_ID = TASK.TASK_CHARGER_ID)) AS DEPT_NAME
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = TASK.TASK_CHARGER_ID) AS USER_NAME
|
|
,TASK.BASE_SCHEDULE
|
|
,TASK.REGDATE
|
|
,TASK.STATUS
|
|
, CASE WHEN UPPER(STATUS) = 'COMPLETE' THEN 'Y' ELSE 'N' END AS TASK_COMPLETE
|
|
, CASE WHEN UPPER(STATUS) = 'CREATE' AND SYSDATE <![CDATA[ < ]]> TASK_START_PLAN_DATE THEN 'Y' ELSE 'N' END AS TASK_PLAN
|
|
, CASE WHEN UPPER(STATUS) = 'CREATE' AND SYSDATE <![CDATA[ > ]]> TASK_START_PLAN_DATE AND SYSDATE <![CDATA[ < ]]> TASK_END_PLAN_DATE THEN 'Y' ELSE 'N' END AS TASK_ONGOING
|
|
, CASE WHEN UPPER(STATUS) = 'CREATE' AND SYSDATE <![CDATA[ > ]]> TASK_END_PLAN_DATE THEN 'Y' ELSE 'N' END AS TASK_DELAY
|
|
,CASE UPPER(TASK.STATUS)
|
|
WHEN 'CREATE' THEN '작성'
|
|
WHEN 'PROGRESS' THEN '진행중'
|
|
WHEN 'COMPLETE' THEN '완료'
|
|
WHEN 'REJECT' THEN '반려'
|
|
ELSE ''
|
|
END AS STATUS_TITLE
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = TASK.OBJID AND DOC_TYPE='WBS_TASK_ATTACH' AND UPPER(STATUS) = 'ACTIVE') AS WBS_FILE_CNT
|
|
,TASK.WRITER
|
|
,((SELECT COUNT(1) FROM PMS_WBS_TASK WHERE OBJID = TASK.PARENT_OBJID AND IS_TEMPLATE_TASK = 1)+(SELECT COUNT(1) FROM PMS_WBS_TASK WHERE OBJID IN (SELECT PARENT_OBJID FROM PMS_WBS_TASK WHERE OBJID = TASK.PARENT_OBJID AND IS_TEMPLATE_TASK = 1))) AS PARENT_CNT
|
|
FROM PMS_WBS_TASK TASK
|
|
WHERE TASK.IS_TEMPLATE_TASK = 1
|
|
AND UPPER(TASK.TASK_TYPE) = 'TASK'
|
|
) TASK WHERE 1=1
|
|
<if test="search_oem != null and search_oem !='' ">
|
|
AND TASK.OEM_OBJID = #{search_oem}
|
|
</if>
|
|
<if test="search_carType != null and search_carType !='' ">
|
|
AND TASK.CAR_OBJID = #{search_carType}
|
|
</if>
|
|
<if test="search_deptName != null and search_deptName !='' ">
|
|
AND UPPER(TASK.DEPT_NAME) LIKE UPPER('%${search_deptName}%')
|
|
</if>
|
|
<if test="search_userName != null and search_userName !='' ">
|
|
AND UPPER(TASK.USER_NAME) LIKE UPPER('%${search_userName}%')
|
|
</if>
|
|
<if test="search_planFromDate != null and search_planFromDate != '' and 'start'.equals(search_planDate) " >
|
|
AND TO_DATE(TASK.TASK_START_PLAN_DATE_TITLE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_planFromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_planToDate != null and search_planToDate != '' and 'start'.equals(search_planDate) ">
|
|
AND TO_DATE(TASK.TASK_START_PLAN_DATE_TITLE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_planToDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_planFromDate != null and search_planFromDate != '' and 'end'.equals(search_planDate) " >
|
|
AND TO_DATE(TASK.TASK_END_PLAN_DATE_TITLE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_planFromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_planToDate != null and search_planToDate != '' and 'end'.equals(search_planDate) ">
|
|
AND TO_DATE(TASK.TASK_END_PLAN_DATE_TITLE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_planToDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_fromDate != null and search_fromDate != ''">
|
|
AND TO_DATE(TASK.TASK_END_DATE_TITLE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and search_toDate != ''">
|
|
AND TO_DATE(TASK.TASK_END_DATE_TITLE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
) TASK WHERE 1=1
|
|
<if test="search_file != null and search_file !='' and 'file' == search_task">
|
|
AND UPPER(WBS_FILE) = UPPER(#{search_file})
|
|
</if>
|
|
<if test="search_file != null and search_file !='' and 'link' == search_task">
|
|
AND UPPER(TASK_LINK) = UPPER(#{search_file})
|
|
</if>
|
|
<if test="search_status !=null and search_status !=''">
|
|
AND STATUS = #{search_status}
|
|
</if>
|
|
<if test="'complete'.equals(search_status_type)">
|
|
AND UPPER(TASK_COMPLETE) = 'Y'
|
|
</if>
|
|
<if test="'plan'.equals(search_status_type)">
|
|
AND UPPER(TASK_PLAN) = 'Y'
|
|
</if>
|
|
<if test="'ongoing'.equals(search_status_type)">
|
|
AND UPPER(TASK_ONGOING) = 'Y'
|
|
</if>
|
|
<if test="'delay'.equals(search_status_type)">
|
|
AND UPPER(TASK_DELAY) = 'Y'
|
|
</if>
|
|
)
|
|
</select>
|
|
|
|
<!-- //영업정보를 받아 프로젝트 최초저장 -->
|
|
<!-- <insert id="insertProjectMgmtInfo" parameterType="map">
|
|
INSERT INTO
|
|
PROJECT_MGMT (
|
|
OBJID
|
|
,SORT_CD
|
|
,CUSTOMER_CD
|
|
,TARGET_OBJID
|
|
,RECV_DATE
|
|
,REG_DATE
|
|
,TITLE
|
|
,WRITER
|
|
,SPEC_CD
|
|
)
|
|
VALUES
|
|
(
|
|
#{objId}
|
|
,#{sort_cd}
|
|
,#{customer_cd}
|
|
,#{target_objid}
|
|
,(SELECT REGDATE FROM ORDER_MGMT T WHERE T.OBJID = #{target_objid})
|
|
,sysdate
|
|
,#{title}
|
|
,#{writer}
|
|
,#{spec_cd}
|
|
)
|
|
</insert> -->
|
|
|
|
|
|
<update id="mergeProjectMgmtInfo" parameterType="map">
|
|
INSERT INTO
|
|
project_mgmt
|
|
(project_mgmt_objid
|
|
,order_mgmt_objid
|
|
,region_cd
|
|
,customer_cd
|
|
,order_cd
|
|
,project_title
|
|
,del_date
|
|
,plant_cd
|
|
,manager_pm
|
|
,reg_id
|
|
,reg_date
|
|
)
|
|
VALUES (
|
|
#{project_mgmt_objid}
|
|
,#{objId}
|
|
,#{region_cd}
|
|
,#{customer_cd}
|
|
,#{order_cd}
|
|
,#{order_title}
|
|
,#{del_date}
|
|
,#{plant_cd}
|
|
,#{manager_pm}
|
|
,#{userId}
|
|
,now()
|
|
) ON
|
|
CONFLICT (project_mgmt_objid) DO
|
|
UPDATE
|
|
SET region_cd=#{region_cd}
|
|
,customer_cd=#{customer_cd}
|
|
,order_cd=#{order_cd}
|
|
,project_title=#{order_title}
|
|
,del_date=#{del_date}
|
|
,plant_cd=#{plant_cd}
|
|
,manager_pm=#{manager_pm}
|
|
</update>
|
|
|
|
<select id="dashboardProjectMgmtList" parameterType="map" resultType="map">
|
|
<![CDATA[
|
|
SELECT *
|
|
FROM
|
|
(
|
|
SELECT T.*,ROW_NUMBER() OVER (ORDER BY PROJECT_NO DESC) AS RNUM
|
|
FROM
|
|
(
|
|
SELECT T1.PROJECT_MGMT_OBJID::varchar AS PROJECT_MGMT_OBJID ,
|
|
T.ORDER_MGMT_OBJID::varchar AS ORDER_MGMT_OBJID ,
|
|
T1.REGION_CD ,
|
|
(SELECT O.CODE_NAME
|
|
FROM COMM_CODE O
|
|
WHERE O.CODE_ID = T1.CUSTOMER_CD
|
|
) AS CUSTOMER_NAME ,
|
|
T1.CUSTOMER_CD ,
|
|
T.ORDER_TITLE ,
|
|
(SELECT O.CODE_NAME
|
|
FROM COMM_CODE O
|
|
WHERE O.CODE_ID = T1.ORDER_CD
|
|
) AS ORDER_NAME ,
|
|
T1.ORDER_CD ,
|
|
TO_CHAR(TO_DATE(T1.DEL_DATE,'yyyymmdd'),'yyyy-mm-dd') AS DEL_DATE ,
|
|
TO_CHAR(TO_DATE(T.START_DATE,'yyyymmdd'),'yyyy-mm-dd') AS START_DATE ,
|
|
(SELECT O.CODE_NAME
|
|
FROM COMM_CODE O
|
|
WHERE O.CODE_ID = T1.PLANT_CD
|
|
) AS PLANT_NAME ,
|
|
T1.PLANT_CD ,
|
|
(SELECT USER_NAME
|
|
FROM USER_INFO O1
|
|
WHERE O1.USER_ID = T1.MANAGER_PM
|
|
) AS MANAGER_NAME ,
|
|
COALESCE(T.REASON,'0') AS REASON,
|
|
T.PROJECT_NO ,
|
|
T.PONUM ,
|
|
T.ORDER_PRICE ,
|
|
T.DESIGN_PM ,
|
|
T.PRODUCTION_PM ,
|
|
T.ELECTRO_PM ,
|
|
T.SE_PM ,
|
|
T1.MANAGER_PM ,
|
|
(SELECT USER_NAME
|
|
FROM USER_INFO O1
|
|
WHERE O1.USER_ID = T1.REG_ID
|
|
) AS REG_NAME ,
|
|
TO_CHAR(T1.REG_DATE,'yyyy-mm-dd') AS REG_DATE ,
|
|
(SELECT O.CODE_NAME
|
|
FROM COMM_CODE O
|
|
WHERE O.CODE_ID = T.project_division
|
|
) AS project_division ,
|
|
T.reason,
|
|
T.outc_value1,
|
|
T.outc_value2,
|
|
T.outc_cd5,
|
|
COALESCE((SELECT O.CODE_NAME
|
|
FROM COMM_CODE O
|
|
WHERE O.CODE_ID = T.outc_cd6
|
|
),T.outc_cd6) AS outc_cd6,
|
|
T.outc_cd2,
|
|
T.outc_cd3
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T1.PROJECT_MGMT_OBJID AND DOC_TYPE='CUSTOMER_01' AND UPPER(STATUS) = 'ACTIVE') AS CU01_CNT
|
|
,(SELECT COUNT(1) FROM ORDER_MGMT_EXAMPLE WHERE ORDER_MGMT_OBJID = T.ORDER_MGMT_OBJID) AS CU02_CNT
|
|
,TO_CHAR(T2.TASK_END_DATE,'YYYY-MM-DD') AS TASK_END_DATE
|
|
,TO_CHAR(T2.UPDATE_DATE,'YYYY-MM-DD') AS UPDATE_DATE
|
|
,T2.STATUS_NAME
|
|
FROM ORDER_MGMT AS T,
|
|
PROJECT_MGMT AS T1 ,
|
|
(SELECT TARGET_OBJID,
|
|
TASK_END_DATE,
|
|
UPDATE_DATE,
|
|
(SELECT O.CODE_NAME
|
|
FROM COMM_CODE O
|
|
WHERE O.CODE_ID = TASK.STATUS
|
|
) AS STATUS_NAME
|
|
FROM PMS_WBS_TASK AS TASK
|
|
WHERE TASK.IS_TEMPLATE_TASK = 1
|
|
AND TASK.SEQ=1
|
|
) AS T2
|
|
WHERE T.ORDER_MGMT_OBJID = T1.ORDER_MGMT_OBJID
|
|
AND T1.PROJECT_MGMT_OBJID = T2.TARGET_OBJID
|
|
]]>
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(TO_DATE(T.REQ_DATE,'YYYYMMDD'),'YYYY') = #{Year}
|
|
</if>
|
|
|
|
<if test="project_no != null and project_no !='' ">
|
|
AND T.ORDER_MGMT_OBJID = #{project_no}::integer
|
|
</if>
|
|
|
|
<if test="order_cd !=null and order_cd !=''">
|
|
AND T.ORDER_CD = #{order_cd}
|
|
</if>
|
|
|
|
<if test="outc_cd5 !=null and outc_cd5 !=''">
|
|
AND T.outc_cd5 LIKE '%${outc_cd5}%'
|
|
</if>
|
|
|
|
<if test="customer_cd != null and customer_cd !='' ">
|
|
AND T.CUSTOMER_CD = #{customer_cd}
|
|
</if>
|
|
|
|
<if test="project_division != null and project_division !='' ">
|
|
AND T.PROJECT_DIVISION = #{project_division}
|
|
</if>
|
|
|
|
<if test="plant_cd != null and plant_cd !='' ">
|
|
AND T.PLANT_CD = #{plant_cd}
|
|
</if>
|
|
|
|
<if test="outc_cd6 != null and outc_cd6 !='' ">
|
|
AND T.OUTC_CD6 = #{outc_cd6}
|
|
</if>
|
|
|
|
|
|
<if test="reason_start != null and !''.equals(reason_start)">
|
|
AND T.REASON <![CDATA[ >= ]]> #{reason_start}
|
|
</if>
|
|
<if test="reason_end != null and !''.equals(reason_end)">
|
|
AND T.REASON <![CDATA[ <= ]]> #{reason_end}
|
|
</if>
|
|
|
|
|
|
<if test="outc_cd2_start != null and !''.equals(outc_cd2_start)">
|
|
AND T.OUTC_CD2 <![CDATA[ >= ]]> #{outc_cd2_start}
|
|
</if>
|
|
<if test="outc_cd2_end != null and !''.equals(outc_cd2_end)">
|
|
AND T.OUTC_CD2 <![CDATA[ <= ]]> #{outc_cd2_end}
|
|
</if>
|
|
|
|
|
|
<if test="outc_cd3_start != null and !''.equals(outc_cd3_start)">
|
|
AND T.OUTC_CD3 <![CDATA[ >= ]]> #{outc_cd3_start}
|
|
</if>
|
|
<if test="outc_cd3_end != null and !''.equals(outc_cd3_end)">
|
|
AND T.OUTC_CD3 <![CDATA[ <= ]]> #{outc_cd3_end}
|
|
</if>
|
|
|
|
ORDER BY PROJECT_NO DESC
|
|
) AS T
|
|
) AS TT
|
|
WHERE 1=1
|
|
</select>
|
|
|
|
<select id="projectMgmtList_backup" parameterType="map" resultType="map">
|
|
<![CDATA[
|
|
SELECT *
|
|
FROM
|
|
(
|
|
SELECT T.*,ROW_NUMBER() OVER (ORDER BY PROJECT_NO DESC) AS RNUM
|
|
FROM
|
|
(
|
|
SELECT T1.PROJECT_MGMT_OBJID::varchar AS PROJECT_MGMT_OBJID ,
|
|
T.ORDER_MGMT_OBJID::varchar AS ORDER_MGMT_OBJID ,
|
|
(SELECT O.CODE_NAME
|
|
FROM COMM_CODE O
|
|
WHERE O.CODE_ID = T1.REGION_CD
|
|
) AS REGION_NAME ,
|
|
T1.REGION_CD ,
|
|
(SELECT O.CODE_NAME
|
|
FROM COMM_CODE O
|
|
WHERE O.CODE_ID = T1.CUSTOMER_CD
|
|
) AS CUSTOMER_NAME ,
|
|
T1.CUSTOMER_CD ,
|
|
T.ORDER_TITLE ,
|
|
(SELECT O.CODE_NAME
|
|
FROM COMM_CODE O
|
|
WHERE O.CODE_ID = T1.ORDER_CD
|
|
) AS ORDER_NAME ,
|
|
T1.ORDER_CD ,
|
|
TO_CHAR(TO_DATE(T1.DEL_DATE,'yyyymmdd'),'yyyy-mm-dd') AS DEL_DATE ,
|
|
(SELECT O.CODE_NAME
|
|
FROM COMM_CODE O
|
|
WHERE O.CODE_ID = T1.PLANT_CD
|
|
) AS PLANT_NAME ,
|
|
T1.PLANT_CD ,
|
|
(SELECT USER_NAME
|
|
FROM USER_INFO O1
|
|
WHERE O1.USER_ID = T1.MANAGER_PM
|
|
) AS MANAGER_NAME ,
|
|
COALESCE(T.REASON,'0') AS REASON,
|
|
T.PROJECT_NO ,
|
|
T.PONUM ,
|
|
T.ORDER_PRICE ,
|
|
T.DESIGN_PM ,
|
|
T.PRODUCTION_PM ,
|
|
T.ELECTRO_PM ,
|
|
T.SE_PM ,
|
|
T1.MANAGER_PM ,
|
|
(SELECT USER_NAME
|
|
FROM USER_INFO O1
|
|
WHERE O1.USER_ID = T1.REG_ID
|
|
) AS REG_NAME ,
|
|
TO_CHAR(T1.REG_DATE,'yyyy-mm-dd') AS REG_DATE ,
|
|
(SELECT COUNT(1)
|
|
FROM ATTACH_FILE_INFO
|
|
WHERE TARGET_OBJID = T.ORDER_MGMT_OBJID
|
|
AND DOC_TYPE='CUSTOMER_01'
|
|
AND UPPER(STATUS) = 'ACTIVE'
|
|
) AS CU01_CNT ,
|
|
(SELECT COUNT(1)
|
|
FROM ATTACH_FILE_INFO
|
|
WHERE TARGET_OBJID = T.ORDER_MGMT_OBJID
|
|
AND DOC_TYPE='CUSTOMER_02'
|
|
AND UPPER(STATUS) = 'ACTIVE'
|
|
) AS CU02_CNT ,
|
|
(SELECT TO_CHAR(MAX(A.UPDATE_DATE),'YYYY-MM-DD')
|
|
FROM PMS_WBS_TASK A
|
|
WHERE A.TARGET_OBJID = T1.PROJECT_MGMT_OBJID
|
|
) AS UPDATE_DATE ,
|
|
(SELECT TRUNC(replace(SUM((A.TASK_END_DATE - A.TASK_START_DATE)+'1 day')::VARCHAR,'days','')::integer
|
|
/ replace(SUM((A.TASK_END_PLAN_DATE - A.TASK_START_PLAN_DATE)+'1 day')::VARCHAR,'days','')::integer * 100) AS progress
|
|
FROM pms_wbs_task AS A
|
|
WHERE A.TARGET_OBJID = T1.PROJECT_MGMT_OBJID
|
|
) AS PROGRESS ,
|
|
/*(SELECT SUM(DECODE(A.STATUS, 'COMPLETE', 1))
|
|
FROM PMS_WBS_TASK A
|
|
WHERE A.TARGET_OBJID = T1.PROJECT_MGMT_OBJID
|
|
) AS WBS_BTN_YN ,*/
|
|
(SELECT COUNT(1) AS CNT
|
|
FROM ISSUE_MGMT A
|
|
WHERE A.PARENT_OBJID = T.ORDER_MGMT_OBJID
|
|
AND A.WPST_CD NOT IN('WPS00700')
|
|
) AS OCCUR ,
|
|
(SELECT COUNT(1) AS CNT
|
|
FROM ISSUE_MGMT A
|
|
WHERE A.PARENT_OBJID = T.ORDER_MGMT_OBJID
|
|
AND A.WPST_CD NOT IN('WPS00700')
|
|
AND A.CASE_CD IN('CAS00600')
|
|
) AS OCCUR1 ,
|
|
(SELECT COUNT(1) AS CNT
|
|
FROM ISSUE_MGMT A
|
|
WHERE A.PARENT_OBJID = T.ORDER_MGMT_OBJID
|
|
AND A.WPST_CD NOT IN('WPS00700')
|
|
AND A.CASE_CD NOT IN('CAS00600')
|
|
) AS OCCUR2 ,
|
|
(SELECT COUNT(1) AS CNT
|
|
FROM ISSUE_MGMT A
|
|
WHERE A.PARENT_OBJID = T.ORDER_MGMT_OBJID
|
|
AND A.WPST_CD IN('WPS01100','WPS01200')
|
|
) AS MEASURE,
|
|
(SELECT COUNT(1) AS CNT
|
|
FROM ISSUE_MGMT A
|
|
WHERE A.PARENT_OBJID = T.ORDER_MGMT_OBJID
|
|
AND A.WPST_CD NOT IN('WPS01100','WPS01200','WPS00700')
|
|
AND A.REQ_DATE < now()
|
|
) AS DEPENDENCE ,
|
|
CASE
|
|
WHEN
|
|
(SELECT COUNT(1) AS CNT
|
|
FROM ISSUE_MGMT A
|
|
WHERE A.PARENT_OBJID = T.ORDER_MGMT_OBJID
|
|
) = 0
|
|
THEN 0
|
|
ELSE
|
|
(SELECT COUNT(1) AS CNT
|
|
FROM ISSUE_MGMT A
|
|
WHERE A.PARENT_OBJID = T.ORDER_MGMT_OBJID
|
|
AND A.WPST_CD IN('WPS01100','WPS01200')
|
|
) * 100 /
|
|
(SELECT COUNT(1) AS CNT
|
|
FROM ISSUE_MGMT A
|
|
WHERE A.PARENT_OBJID = T.ORDER_MGMT_OBJID
|
|
)
|
|
END AS OCCUR_RATE ,
|
|
replace(COALESCE(T2.PLAN_DUR,null)::varchar,'days','') AS PLAN_DUR ,
|
|
replace(COALESCE(T2.REAL_DUR,null)::varchar,'days','') AS REAL_DUR ,
|
|
CASE WHEN T2.PLAN_DUR = T2.REAL_DUR THEN null
|
|
ELSE replace(COALESCE((T2.PLAN_DUR - T2.REAL_DUR),null)::varchar,'days','')
|
|
END AS PLAN_REAL ,
|
|
|
|
replace(CASE
|
|
WHEN
|
|
(SELECT COALESCE(TASK_END_DATE, NULL)
|
|
FROM PMS_WBS_TASK AS A
|
|
WHERE A.TARGET_OBJID = T1.PROJECT_MGMT_OBJID
|
|
AND A.SEQ = '14'
|
|
) IS NOT NULL
|
|
AND
|
|
(SELECT COALESCE(TASK_END_DATE, NULL)
|
|
FROM PMS_WBS_TASK A
|
|
WHERE A.TARGET_OBJID = T1.PROJECT_MGMT_OBJID
|
|
AND A.SEQ = '14'
|
|
) <= to_date(TO_CHAR(TO_DATE(T.DEL_DATE, 'yyyymmdd'),'yyyy-mm-dd'),'yyyy-mm-dd')
|
|
THEN
|
|
(SELECT COALESCE(TASK_END_DATE, NULL)
|
|
FROM PMS_WBS_TASK A
|
|
WHERE A.TARGET_OBJID = T1.PROJECT_MGMT_OBJID
|
|
AND A.SEQ = '14'
|
|
) - to_date(TO_CHAR(TO_DATE(T.DEL_DATE, 'yyyymmdd'),'yyyy-mm-dd'),'yyyy-mm-dd')
|
|
WHEN
|
|
(SELECT COALESCE(TASK_END_DATE,TO_DATE(TO_CHAR(NOW(),'YYYY-MM-DD'),'YYYY-MM-DD'))
|
|
FROM PMS_WBS_TASK A
|
|
WHERE A.TARGET_OBJID = T1.PROJECT_MGMT_OBJID
|
|
AND A.SEQ = '14'
|
|
) > to_date(TO_CHAR(TO_DATE(T.DEL_DATE, 'yyyymmdd'),'yyyy-mm-dd'),'yyyy-mm-dd')
|
|
THEN
|
|
(SELECT COALESCE(TASK_END_DATE,TO_DATE(TO_CHAR(NOW(),'YYYY-MM-DD'),'YYYY-MM-DD'))
|
|
FROM PMS_WBS_TASK A
|
|
WHERE A.TARGET_OBJID = T1.PROJECT_MGMT_OBJID
|
|
AND A.SEQ = '14'
|
|
) - to_date(TO_CHAR(TO_DATE(T.DEL_DATE, 'yyyymmdd'),'yyyy-mm-dd'),'yyyy-mm-dd')
|
|
END::varchar,'days','') AS DELAY_DATE
|
|
FROM ORDER_MGMT AS T,
|
|
PROJECT_MGMT AS T1 ,
|
|
(SELECT TARGET_OBJID
|
|
,SUM((TASK_END_PLAN_DATE - TASK_START_PLAN_DATE)+'1 day') AS PLAN_DUR
|
|
,SUM((TASK_END_DATE - TASK_START_DATE)+'1 day') AS REAL_DUR
|
|
FROM PMS_WBS_TASK AS TASK
|
|
WHERE TASK.IS_TEMPLATE_TASK = 1
|
|
GROUP BY TARGET_OBJID
|
|
) AS T2
|
|
WHERE T.ORDER_MGMT_OBJID = T1.ORDER_MGMT_OBJID
|
|
AND T1.PROJECT_MGMT_OBJID = T2.TARGET_OBJID
|
|
]]>
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(TO_DATE(T.REQ_DATE,'YYYYMMDD'),'YYYY') = #{Year}
|
|
</if>
|
|
|
|
<if test="region_cd !=null and region_cd != '' ">
|
|
AND T1.REGION_CD = #{region_cd}
|
|
</if>
|
|
<if test="customer_cd != null and customer_cd !='' ">
|
|
AND T1.CUSTOMER_CD = #{customer_cd}
|
|
</if>
|
|
<if test="orditem_cd !=null and orditem_cd !=''">
|
|
AND T1.ORDER_CD = #{orditem_cd}
|
|
</if>
|
|
|
|
<if test="result_cd !=null and result_cd !=''">
|
|
AND RESULT_CD =#{result_cd}
|
|
</if>
|
|
<if test="division_cd != null and division_cd != ''">
|
|
AND T.PROJECT_DIVISION = #{division_cd}
|
|
</if>
|
|
<if test="manager_pm != null and manager_pm != ''">
|
|
AND T1.MANAGER_PM = #{manager_pm}
|
|
</if>
|
|
ORDER BY PROJECT_NO DESC
|
|
) AS T
|
|
) AS TT
|
|
WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END != '' and actionType != 'excel'">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_START != '' and actionType != 'excel'">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
|
|
</select>
|
|
|
|
<select id="projectMainDashboardList" parameterType="map" resultType="map">
|
|
SELECT
|
|
TO_CHAR(T1.PROJECT_MGMT_OBJID) AS PROJECT_MGMT_OBJID
|
|
,TO_CHAR(T.ORDER_MGMT_OBJID) AS ORDER_MGMT_OBJID
|
|
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T1.REGION_CD) AS REGION_NAME
|
|
,T1.REGION_CD
|
|
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T1.CUSTOMER_CD) AS CUSTOMER_NAME
|
|
,T1.CUSTOMER_CD
|
|
,T.ORDER_TITLE
|
|
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T1.ORDER_CD) AS ORDER_NAME
|
|
,T1.ORDER_CD
|
|
,TO_CHAR(TO_DATE(T1.DEL_DATE,'YYYY-MM-DD'),'YYYY-MM-DD') AS DEL_DATE
|
|
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = T1.PLANT_CD) AS PLANT_NAME
|
|
,T1.PLANT_CD
|
|
,(SELECT USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = T1.MANAGER_PM) AS MANAGER_NAME
|
|
,T.REASON
|
|
,T.PROJECT_NO
|
|
,T.ORDER_PRICE
|
|
,T.DESIGN_PM
|
|
,T.PRODUCTION_PM
|
|
,T.ELECTRO_PM
|
|
,T.SE_PM
|
|
,T1.MANAGER_PM
|
|
,(SELECT USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = T1.REG_ID) AS REG_NAME
|
|
,TO_CHAR(T1.REG_DATE,'YYYY-MM-DD') AS REG_DATE
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.ORDER_MGMT_OBJID AND DOC_TYPE='CUSTOMER_01' AND UPPER(STATUS) = 'ACTIVE') AS CU01_CNT
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.ORDER_MGMT_OBJID AND DOC_TYPE='CUSTOMER_02' AND UPPER(STATUS) = 'ACTIVE') AS CU02_CNT
|
|
,(SELECT TO_CHAR(MAX(A.UPDATE_DATE),'YYYY-MM-DD') FROM PMS_WBS_TASK A WHERE A.TARGET_OBJID = T1.PROJECT_MGMT_OBJID) AS UPDATE_DATE
|
|
,(
|
|
SELECT
|
|
TRUNC(SUM((A.TASK_END_DATE - A.TASK_START_DATE)+1) / SUM((A.TASK_END_PLAN_DATE - A.TASK_START_PLAN_DATE)+1) * 100) AS progress
|
|
FROM PMS_WBS_TASK A WHERE A.TARGET_OBJID = T1.PROJECT_MGMT_OBJID
|
|
) AS PROGRESS
|
|
--,(SELECT SUM(TRIM(TO_CHAR(A.TASK_END_DATE - A.TASK_END_PLAN_DATE, '999,990'))) FROM PMS_WBS_TASK A WHERE A.TARGET_OBJID = T1.PROJECT_MGMT_OBJID) AS DELAY_DATE
|
|
|
|
, (SELECT SUM(DECODE(A.STATUS, 'COMPLETE', 1)) FROM PMS_WBS_TASK A WHERE A.TARGET_OBJID = T1.PROJECT_MGMT_OBJID) AS WBS_BTN_YN <!-- WBS버튼 권한을 위한 값 -->
|
|
,(
|
|
SELECT COUNT(1) AS CNT FROM ISSUE_MGMT A WHERE A.PARENT_OBJID = T.ORDER_MGMT_OBJID AND A.WPST_CD NOT IN('WPS00700')
|
|
) AS OCCUR
|
|
,(
|
|
SELECT COUNT(1) AS CNT FROM ISSUE_MGMT A WHERE A.PARENT_OBJID = T.ORDER_MGMT_OBJID AND A.WPST_CD NOT IN('WPS00700') AND A.CASE_CD IN('CAS00600')
|
|
) AS OCCUR1
|
|
,(
|
|
SELECT COUNT(1) AS CNT FROM ISSUE_MGMT A WHERE A.PARENT_OBJID = T.ORDER_MGMT_OBJID AND A.WPST_CD NOT IN('WPS00700') AND A.CASE_CD NOT IN('CAS00600')
|
|
) AS OCCUR2
|
|
,(
|
|
SELECT COUNT(1) AS CNT FROM ISSUE_MGMT A WHERE A.PARENT_OBJID = T.ORDER_MGMT_OBJID AND A.WPST_CD IN('WPS01100','WPS01200')
|
|
) AS MEASURE
|
|
,(
|
|
SELECT COUNT(1) AS CNT FROM ISSUE_MGMT A WHERE A.PARENT_OBJID = T.ORDER_MGMT_OBJID AND A.WPST_CD NOT IN('WPS01100','WPS01200','WPS00700') AND A.REQ_DATE <![CDATA[ < ]]> SYSDATE
|
|
) AS DEPENDENCE
|
|
<!-- (
|
|
( (SELECT COUNT(1) AS CNT FROM ISSUE_MGMT A WHERE A.PARENT_OBJID = T.ORDER_MGMT_OBJID AND A.WPST_CD IN('WPS01100','WPS01200')) * 100) /
|
|
DECODE((SELECT COUNT(1) AS CNT FROM ISSUE_MGMT A WHERE A.PARENT_OBJID = T.ORDER_MGMT_OBJID),0,NULL,(SELECT COUNT(1) AS CNT FROM ISSUE_MGMT A WHERE A.PARENT_OBJID = T.ORDER_MGMT_OBJID AND A.WPST_CD NOT IN('WPS00700')))
|
|
) AS OCCUR_RATE -->
|
|
,CASE WHEN (SELECT COUNT(1) AS CNT FROM ISSUE_MGMT A WHERE A.PARENT_OBJID = T.ORDER_MGMT_OBJID) = 0 THEN 0
|
|
ELSE (SELECT COUNT(1) AS CNT FROM ISSUE_MGMT A WHERE A.PARENT_OBJID = T.ORDER_MGMT_OBJID AND A.WPST_CD IN('WPS01100','WPS01200') ) * 100 / (SELECT COUNT(1) AS CNT FROM ISSUE_MGMT A WHERE A.PARENT_OBJID = T.ORDER_MGMT_OBJID)
|
|
END AS OCCUR_RATE
|
|
,CODE_NAME(T.PROJECT_DIVISION) AS PROJECT_DIVISION_NAME
|
|
,T.PROJECT_DERIVATION_NO
|
|
,(SELECT PROJECT_NO FROM ORDER_MGMT A WHERE A.ORDER_MGMT_OBJID = T.PROJECT_DERIVATION_NO) AS PROJECT_DERIVATION_NO_NAME
|
|
,CODE_NAME(T.PROJECT_MEAN) AS PROJECT_MEAN_NAME
|
|
,T2.TOTAL_SUM
|
|
,T2.SUM1
|
|
,T2.AVR
|
|
,T2.TOTAL_LABORCOSTS
|
|
,T2.LABORCOSTS_GOEL_RATE
|
|
,T2.SETTLE_AMOUNT
|
|
,T2.SETTLE_GOEL_RATE
|
|
,ROUND((T2.TOTAL_SUM / T2.ORDER_PRICE) * 100,1) AS TOTAL_AVR
|
|
,NVL(T3.PLAN_DUR,0) AS PLAN_DUR
|
|
,NVL(T3.REAL_DUR,0) AS REAL_DUR
|
|
,NVL((T3.PLAN_DUR - T3.REAL_DUR),0) AS PLAN_REAL
|
|
--,NVL(ROUND(T3.REAL_DUR/T.REASON *100,1),0) AS REAL_PROGRESS
|
|
,NVL(T.EX_MATERIAL_COST_W,0)+NVL(T.EX_LABOR_COST_W,0)+NVL(T.EX_EXPENSE_COST_W,0) AS PLAN_SUM
|
|
,CASE WHEN NVL(T.EX_MATERIAL_COST_W,0)+NVL(T.EX_LABOR_COST_W,0)+NVL(T.EX_EXPENSE_COST_W,0) = 0
|
|
THEN 0
|
|
ELSE ROUND((T2.TOTAL_SUM) / (NVL(T.EX_MATERIAL_COST_W,0)+NVL(T.EX_LABOR_COST_W,0)+NVL(T.EX_EXPENSE_COST_W,0)) *100,1)
|
|
END AS NEW_GOAL_RATE
|
|
,T2.TOTAL_SUM AS NEW_TOTAL_SUM
|
|
,NVL(T.OUTC_VALUE1,0) + NVL(T.OUTC_VALUE2,0) + NVL(T.OUTC_VALUE3,0) AS PER_OUT_SUM
|
|
,NVL(T.OUTC_VALUE4,0) + NVL(T.OUTC_VALUE5,0) + NVL(T.OUTC_VALUE6,0) AS PER_OUT_SUM1
|
|
,NVL(T.OUTC_VALUE1,0) + NVL(T.OUTC_VALUE2,0) + NVL(T.OUTC_VALUE3,0) + NVL(T.OUTC_VALUE4,0) + NVL(T.OUTC_VALUE5,0) + NVL(T.OUTC_VALUE6,0) AS PER_OUT_TOTALSUM
|
|
,CASE WHEN NVL(T.OUTC_VALUE1,0) + NVL(T.OUTC_VALUE2,0) + NVL(T.OUTC_VALUE3,0) + NVL(T.OUTC_VALUE4,0) + NVL(T.OUTC_VALUE5,0) + NVL(T.OUTC_VALUE6,0) = 0
|
|
THEN 0
|
|
ELSE ROUND((NVL(T.OUTC_VALUE1,0) + NVL(T.OUTC_VALUE2,0) + NVL(T.OUTC_VALUE3,0) + NVL(T.OUTC_VALUE4,0) + NVL(T.OUTC_VALUE5,0) + NVL(T.OUTC_VALUE6,0)) / (NVL(T.EX_MATERIAL_COST_W,0)+NVL(T.EX_LABOR_COST_W,0)+NVL(T.EX_EXPENSE_COST_W,0)) *100,1)
|
|
END AS PER_OUT_RATE
|
|
,CASE
|
|
WHEN (SELECT NVL(TASK_END_DATE, NULL) FROM PMS_WBS_TASK A WHERE A.TARGET_OBJID = T1.PROJECT_MGMT_OBJID AND A.SEQ = '14') IS NOT NULL AND (SELECT NVL(TASK_END_DATE, NULL) FROM PMS_WBS_TASK A WHERE A.TARGET_OBJID = T1.PROJECT_MGMT_OBJID AND A.SEQ = '14') <![CDATA[ <= ]]> TO_DATE(T.DEL_DATE, 'YYYY-MM-DD')
|
|
THEN (SELECT NVL(TASK_END_DATE, NULL) FROM PMS_WBS_TASK A WHERE A.TARGET_OBJID = T1.PROJECT_MGMT_OBJID AND A.SEQ = '14') - TO_DATE(T.DEL_DATE, 'YYYY-MM-DD')
|
|
WHEN (SELECT NVL(TASK_END_DATE,TO_DATE(TO_CHAR(SYSDATE,'YYYY-MM-DD'),'YYYY-MM-DD')) FROM PMS_WBS_TASK A WHERE A.TARGET_OBJID = T1.PROJECT_MGMT_OBJID AND A.SEQ = '14') > TO_DATE(T.DEL_DATE, 'YYYY-MM-DD')
|
|
THEN (SELECT NVL(TASK_END_DATE,TO_DATE(TO_CHAR(SYSDATE,'YYYY-MM-DD'),'YYYY-MM-DD')) FROM PMS_WBS_TASK A WHERE A.TARGET_OBJID = T1.PROJECT_MGMT_OBJID AND A.SEQ = '14') - TO_DATE(T.DEL_DATE, 'YYYY-MM-DD')
|
|
END AS DELAY_DATE
|
|
FROM ORDER_MGMT T,PROJECT_MGMT T1,
|
|
(SELECT A.*
|
|
,ROUND(((LABORCOSTS + LABORCOSTS_OUT) / ORDER_PRICE)*100,1) AS LABORCOSTS_GOEL_RATE
|
|
,ROUND((LABORCOSTS + LABORCOSTS_OUT),1) AS TOTAL_LABORCOSTS
|
|
,ROUND((SETTLE_AMOUNT / ORDER_PRICE) * 100,1) AS SETTLE_GOEL_RATE
|
|
,A.SUM1 + ROUND((LABORCOSTS + LABORCOSTS_OUT),1) + SETTLE_AMOUNT + TOTAL_LABOR_COST AS TOTAL_SUM
|
|
FROM(
|
|
SELECT
|
|
B.ORDER_PRICE
|
|
,B.ORDER_MGMT_OBJID
|
|
,NVL(SUM(C.WORK_TIME),0) AS WORK_TIME_TOTAL
|
|
,(SELECT NVL(SUM(T.WORK_TIME),0) FROM TIME_SHEET T WHERE T.PROJECT_MGMT_OBJID = B.ORDER_MGMT_OBJID AND T.REG_USER_ID NOT IN ('OUT1','OUT2') ) AS WORK_TIME_OWN
|
|
,(SELECT NVL(SUM(T.WORK_TIME),0) FROM TIME_SHEET T WHERE T.PROJECT_MGMT_OBJID = B.ORDER_MGMT_OBJID AND T.REG_USER_ID IN ('OUT1','OUT2') ) AS WORK_TIME_OUTSOURCING
|
|
,(SELECT NVL(SUM(T.WORK_TIME),0) FROM TIME_SHEET T WHERE T.PROJECT_MGMT_OBJID = B.ORDER_MGMT_OBJID AND T.REG_USER_ID NOT IN ('OUT1','OUT2') AND T.DEPT_ID = 'DD' ) AS DD_WORK_TIME
|
|
,(SELECT NVL(SUM(T.WORK_TIME),0) FROM TIME_SHEET T WHERE T.PROJECT_MGMT_OBJID = B.ORDER_MGMT_OBJID AND T.REG_USER_ID NOT IN ('OUT1','OUT2') AND T.DEPT_ID = 'PT' ) AS PT_WORK_TIME
|
|
,(SELECT NVL(SUM(T.WORK_TIME),0) FROM TIME_SHEET T WHERE T.PROJECT_MGMT_OBJID = B.ORDER_MGMT_OBJID AND T.REG_USER_ID NOT IN ('OUT1','OUT2') AND T.DEPT_ID = 'PM' ) AS PM_WORK_TIME
|
|
,(
|
|
SELECT NVL(SUM(LABORCOSTS),0) FROM(
|
|
SELECT
|
|
R.ORDINARY_HOURLY_WAGE
|
|
,T.WORK_TIME
|
|
,(
|
|
TO_NUMBER(REPLACE(R.ORDINARY_HOURLY_WAGE,',','')) * TO_NUMBER(T.WORK_TIME)
|
|
) AS LABORCOSTS
|
|
,T.PROJECT_MGMT_OBJID
|
|
FROM
|
|
TIME_SHEET T, RATECAL_MGMT R
|
|
WHERE T.REG_USER_ID = R.USER_ID
|
|
AND R.YYYY = TO_CHAR(SYSDATE,'YYYY')
|
|
) WHERE PROJECT_MGMT_OBJID = B.ORDER_MGMT_OBJID
|
|
) AS LABORCOSTS
|
|
,(
|
|
SELECT NVL(SUM(LABORCOSTS),0) FROM(
|
|
SELECT
|
|
R.ORDINARY_HOURLY_WAGE
|
|
,T.WORK_TIME
|
|
,(
|
|
TO_NUMBER(REPLACE(R.ORDINARY_HOURLY_WAGE,',','')) * TO_NUMBER(T.WORK_TIME)
|
|
) AS LABORCOSTS
|
|
,T.PROJECT_MGMT_OBJID
|
|
FROM
|
|
TIME_SHEET T, RATECAL_MGMT R
|
|
WHERE T.REG_USER_ID = R.USER_ID
|
|
AND USER_ID IN ('OUT1','OUT2')
|
|
AND R.YYYY = TO_CHAR(SYSDATE,'YYYY')
|
|
) WHERE PROJECT_MGMT_OBJID = B.ORDER_MGMT_OBJID
|
|
) AS LABORCOSTS_OUT
|
|
, NVL((D.CARD_SUM + D.CASH_SUM - D.PAY_SUM),0) AS SETTLE_AMOUNT
|
|
,(NVL(E.SUM1,0)+NVL(Z.OUTSUM1,0)) AS SUM1
|
|
,NVL(E.AVR,0) AS AVR
|
|
,NVL((T4.PER_IN_COUNT*160000)+(T4.PER_IN_OVER_COUNT*200000),0) +NVL((T4.PER_OUT_COUNT*160000)+(T4.PER_OVER_COUNT*200000),0)+ NVL((SELECT NVL(SUM(T.WORK_TIME),0) FROM TIME_SHEET T WHERE T.PROJECT_MGMT_OBJID = B.ORDER_MGMT_OBJID AND T.REG_USER_ID NOT IN ('OUT1','OUT2') ) *25000,0) AS TOTAL_LABOR_COST
|
|
FROM
|
|
PROJECT_MGMT A,
|
|
ORDER_MGMT B,
|
|
TIME_SHEET C,
|
|
(SELECT T1.PROJECT_MGMT_OBJID
|
|
,SUM(T.CARD_SUM) AS CARD_SUM
|
|
,SUM(T.CASH_SUM) AS CASH_SUM
|
|
,SUM(T.PAY_SUM) AS PAY_SUM
|
|
FROM
|
|
(select T.EXPENSE_MASTER_OBJID,SUM(T.CARD_USED) as CARD_SUM ,
|
|
SUM(T.CASH_USED) as CASH_SUM ,
|
|
SUM(T.PAYMENT) as PAY_SUM
|
|
from EXPENSE_DETAIL T
|
|
GROUP BY T.EXPENSE_MASTER_OBJID) T ,EXPENSE_MASTER T1,(SELECT A.TARGET_OBJID FROM APPROVAL A, ROUTE B
|
|
WHERE A.OBJID = B.APPROVAL_OBJID
|
|
AND B.STATUS='complete') T3
|
|
WHERE T.EXPENSE_MASTER_OBJID = T1.EXPENSE_MASTER_OBJID
|
|
AND T3.TARGET_OBJID = T1.EXPENSE_MASTER_OBJID
|
|
GROUP BY PROJECT_MGMT_OBJID) D,
|
|
(SELECT
|
|
PROJECT_MGMT_OBJID
|
|
,SUM(NVL(T.FINAL_ORDER_AMOUNT,0)) AS SUM1
|
|
,T1.ORDER_PRICE
|
|
,ROUND(SUM(NVL(T.FINAL_ORDER_AMOUNT,0)) / T1.ORDER_PRICE * 100,1) AS AVR
|
|
FROM MATERIAL_MASTER_MGMT T,ORDER_MGMT T1
|
|
WHERE T.STATUS_CD IN ('PURSTCD00700','PURSTCD00800')
|
|
AND T.PROJECT_MGMT_OBJID = T1.ORDER_MGMT_OBJID
|
|
GROUP BY T.PROJECT_MGMT_OBJID,T1.ORDER_PRICE) E,
|
|
(SELECT
|
|
PROJECT_MGMT_OBJID
|
|
,SUM(NVL(P.SUP_PRICE,0)) AS OUTSUM1
|
|
FROM PART_MGMT P
|
|
WHERE P.REL_STATUS='PRTS00300'
|
|
GROUP BY P.PROJECT_MGMT_OBJID) Z,
|
|
(SELECT
|
|
TO_CHAR(NVL(SUM(H.PER_IN_COUNT),0)) AS PER_IN_COUNT
|
|
,TO_CHAR(NVL(SUM(H.PER_IN_OVER_COUNT),0)) AS PER_IN_OVER_COUNT
|
|
,TO_CHAR(NVL(SUM(H.PER_OUT_COUNT),0))+TO_CHAR(NVL(SUM(H.PER_OUT_COUNT1),0))+TO_CHAR(NVL(SUM(H.PER_OUT_COUNT2),0))+TO_CHAR(NVL(SUM(H.PER_OUT_COUNT3),0))+TO_CHAR(NVL(SUM(H.PER_OUT_COUNT4),0))+TO_CHAR(NVL(SUM(H.PER_OUT_COUNT5),0)) AS PER_OUT_COUNT
|
|
,TO_CHAR(NVL(SUM(H.PER_OVER_COUNT),0)) + TO_CHAR(NVL(SUM(H.PER_OVER_COUNT1),0)) + TO_CHAR(NVL(SUM(H.PER_OVER_COUNT2),0))+TO_CHAR(NVL(SUM(H.PER_OVER_COUNT3),0)) + TO_CHAR(NVL(SUM(H.PER_OVER_COUNT4),0)) + TO_CHAR(NVL(SUM(H.PER_OVER_COUNT5),0)) AS PER_OVER_COUNT
|
|
,F.PROJECT_MGMT_OBJID
|
|
FROM HUMAN_INPUT_PLAN H, FACILITY_ASSEMBLY_PLAN F
|
|
WHERE H.ASSEMBLY_PLAN_OBJID = F.ASSEMBLY_PLAN_OBJID
|
|
GROUP BY F.PROJECT_MGMT_OBJID) T4
|
|
WHERE A.ORDER_MGMT_OBJID = B.ORDER_MGMT_OBJID
|
|
AND A.ORDER_MGMT_OBJID = C.PROJECT_MGMT_OBJID(+)
|
|
AND A.PROJECT_MGMT_OBJID = D.PROJECT_MGMT_OBJID(+)
|
|
AND A.ORDER_MGMT_OBJID = E.PROJECT_MGMT_OBJID(+)
|
|
AND A.ORDER_MGMT_OBJID = Z.PROJECT_MGMT_OBJID(+)
|
|
AND A.PROJECT_MGMT_OBJID = T4.PROJECT_MGMT_OBJID(+)
|
|
GROUP BY
|
|
B.PROJECT_NO,
|
|
B.REGION_CD,
|
|
B.CUSTOMER_CD,
|
|
A.ORDER_CD,
|
|
A.PROJECT_TITLE,
|
|
B.ORDER_TITLE,
|
|
B.DEL_DATE
|
|
,B.REG_DATE
|
|
,B.ORDER_PRICE
|
|
,B.ORDER_MGMT_OBJID
|
|
,B.PROJECT_DIVISION
|
|
,B.PROJECT_DERIVATION_NO
|
|
,PROJECT_MEAN
|
|
,PER_IN_COUNT
|
|
,PER_IN_OVER_COUNT
|
|
,PER_OUT_COUNT
|
|
,PER_OVER_COUNT
|
|
,NVL((D.CARD_SUM + D.CASH_SUM - D.PAY_SUM),0)
|
|
,E.SUM1
|
|
,Z.OUTSUM1
|
|
,E.AVR
|
|
) A) T2 , (SELECT TARGET_OBJID,
|
|
SUM((TASK_END_PLAN_DATE - TASK_START_PLAN_DATE) + 1) AS PLAN_DUR,
|
|
SUM((TASK_END_DATE - TASK_START_DATE) + 1) AS REAL_DUR
|
|
FROM PMS_WBS_TASK TASK
|
|
WHERE TASK.IS_TEMPLATE_TASK = 1
|
|
START WITH TASK.PARENT_OBJID IS NULL
|
|
AND PROJ_STEP = '1'
|
|
CONNECT BY PRIOR TASK.OBJID = TASK.PARENT_OBJID
|
|
GROUP BY TARGET_OBJID) T3
|
|
WHERE T.ORDER_MGMT_OBJID = T1.ORDER_MGMT_OBJID
|
|
AND T1.ORDER_MGMT_OBJID = T2.ORDER_MGMT_OBJID
|
|
AND T1.PROJECT_MGMT_OBJID = T3.TARGET_OBJID
|
|
AND T.RESULT_CD = 'RES00300'
|
|
|
|
<if test="Year !=null and Year != '' ">
|
|
<!-- AND TO_CHAR(TO_DATE(T1.DEL_DATE,'YYYY-MM-DD'),'YYYY') = #{Year} -->
|
|
AND TO_CHAR(TO_DATE(SUBSTR(PROJECT_NO,0,4),'YYYY'),'YYYY') = #{Year}
|
|
</if>
|
|
ORDER BY T.PROJECT_NO DESC
|
|
</select>
|
|
|
|
|
|
|
|
<select id="projectMgmtList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM
|
|
(
|
|
SELECT T.*
|
|
,ROW_NUMBER() OVER (ORDER BY SUBSTRING(PROJECT_NO,POSITION('-' IN PROJECT_NO)+1) DESC) AS RNUM
|
|
FROM
|
|
(
|
|
SELECT
|
|
OBJID
|
|
,CATEGORY_CD
|
|
,CODE_NAME(CATEGORY_CD) AS CATEGORY_NAME
|
|
,CUSTOMER_OBJID
|
|
,(SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID = T.CUSTOMER_OBJID::NUMERIC) AS CUSTOMER_NAME
|
|
,PRODUCT
|
|
,CODE_NAME(PRODUCT) AS PRODUCT_NAME
|
|
,(SELECT O.CUSTOMER_PROJECT_NAME FROM CONTRACT_MGMT AS O WHERE O.OBJID = CONTRACT_OBJID) AS CUSTOMER_PROJECT_NAME
|
|
,STATUS_CD
|
|
,CODE_NAME(STATUS_CD) AS STATUS_NAME
|
|
,DUE_DATE
|
|
,LOCATION
|
|
,SETUP
|
|
,FACILITY
|
|
,CODE_NAME(FACILITY) AS FACILITY_NAME
|
|
,FACILITY_QTY
|
|
,FACILITY_TYPE
|
|
,FACILITY_DEPTH
|
|
,PRODUCTION_NO
|
|
,BUS_CAL_CD
|
|
,CODE_NAME(BUS_CAL_CD) AS BUS_CAL_NAME
|
|
,CATEGORY1_CD
|
|
,CODE_NAME(CATEGORY1_CD) AS CATEGORY1_NAME
|
|
,CHG_USER_ID
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = T.CHG_USER_ID ) AS CHG_USER_NAME
|
|
,PLAN_DATE
|
|
,COMPLETE_DATE
|
|
,RESULT_CD
|
|
,CODE_NAME(RESULT_CD) AS RESULT_NAME
|
|
,PROJECT_NO
|
|
,PM_USER_ID
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = (SELECT O.PM_USER_ID FROM CONTRACT_MGMT AS O WHERE O.OBJID = T.CONTRACT_OBJID)) AS PM_USER_NAME
|
|
,CONTRACT_PRICE
|
|
,CONTRACT_PRICE_CURRENCY
|
|
,CONTRACT_CURRENCY
|
|
,CODE_NAME(CONTRACT_CURRENCY) AS CONTRACT_CURRENCY_NAME
|
|
,REGDATE
|
|
,TO_CHAR(REGDATE,'YYYY-MM-DD') AS REG_DATE
|
|
,WRITER
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = T.WRITER ) AS WRITER_NAME
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.OBJID AND DOC_TYPE='contractMgmt01' AND UPPER(STATUS) = 'ACTIVE') AS CU01_CNT
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.OBJID AND DOC_TYPE='contractMgmt02' AND UPPER(STATUS) = 'ACTIVE') AS CU02_CNT
|
|
,CONTRACT_NO
|
|
,CUSTOMER_EQUIP_NAME
|
|
,REQ_DEL_DATE
|
|
,CONTRACT_DEL_DATE
|
|
,CONTRACT_COMPANY
|
|
,CODE_NAME(CONTRACT_COMPANY) AS CONTRACT_COMPANY_NAME
|
|
,CONTRACT_DATE
|
|
,PO_NO
|
|
,MANUFACTURE_PLANT
|
|
,CODE_NAME(MANUFACTURE_PLANT) AS MANUFACTURE_PLANT_NAME
|
|
,CONTRACT_RESULT
|
|
,CODE_NAME(CONTRACT_RESULT) AS CONTRACT_RESULT_NAME
|
|
,CODE_NAME(AREA_CD) AS AREA_NAME
|
|
,PROJECT_NAME
|
|
,(((SELECT SUM(COALESCE(DESIGN_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)
|
|
+(SELECT SUM(COALESCE(PURCHASE_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)
|
|
+(SELECT SUM(COALESCE(PRODUCE_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)
|
|
+(SELECT SUM(COALESCE(SELFINS_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)
|
|
+(SELECT COALESCE(MAX(FINALINS_RATE),'0')::INTEGER FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)
|
|
+(SELECT COALESCE(MAX(SHIP_RATE),'0')::INTEGER FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)
|
|
+(SELECT COALESCE(MAX(SETUP_RATE),'0')::INTEGER FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID))/7) AS TOTAL_RATE
|
|
|
|
,(SELECT SUM(COALESCE(DESIGN_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) AS DESIGN_RATE
|
|
,(SELECT SUM(COALESCE(PURCHASE_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) AS PURCHASE_RATE
|
|
,(SELECT SUM(COALESCE(PRODUCE_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) AS PRODUCE_RATE
|
|
,(SELECT SUM(COALESCE(SELFINS_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) AS SELFINS_RATE
|
|
<!-- ,ROUND((SELECT SUM(COALESCE(FINALINS_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)) AS FINALINS_RATE
|
|
,ROUND((SELECT SUM(COALESCE(SHIP_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)) AS SHIP_RATE
|
|
,ROUND((SELECT SUM(COALESCE(SETUP_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)) AS SETUP_RATE -->
|
|
,(SELECT COALESCE(MAX(FINALINS_RATE),'0')::INTEGER FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) AS FINALINS_RATE
|
|
,(SELECT COALESCE(MAX(SHIP_RATE),'0')::INTEGER FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) AS SHIP_RATE
|
|
,(SELECT COALESCE(MAX(SETUP_RATE),'0')::INTEGER FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) AS SETUP_RATE
|
|
,(SELECT COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) AS WBS_CNT
|
|
,MECHANICAL_TYPE
|
|
,OVERHAUL_ORDER
|
|
FROM PROJECT_MGMT AS T
|
|
WHERE 1=1
|
|
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(REGDATE,'YYYY') = #{Year}
|
|
</if>
|
|
|
|
<if test="project_no !=null and project_no != '' ">
|
|
AND OBJID = #{project_no}
|
|
</if>
|
|
|
|
<if test="category_cd !=null and category_cd != '' ">
|
|
AND category_cd = #{category_cd}
|
|
</if>
|
|
|
|
<if test="customer_objid !=null and customer_objid != '' ">
|
|
AND CUSTOMER_OBJID = #{customer_objid}
|
|
</if>
|
|
|
|
<if test="product != null and product !='' ">
|
|
AND product = #{product}
|
|
</if>
|
|
|
|
<if test="status_cd !=null and status_cd !=''">
|
|
AND status_cd = #{status_cd}
|
|
</if>
|
|
|
|
<if test="result_cd !=null and result_cd !=''">
|
|
AND result_cd = #{result_cd}
|
|
</if>
|
|
|
|
<if test="contract_start_date != null and !''.equals(contract_start_date)">
|
|
AND TO_DATE(DUE_DATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{contract_start_date}, 'YYYY-MM-DD')
|
|
|
|
</if>
|
|
<if test="contract_end_date != null and !''.equals(contract_end_date)">
|
|
AND TO_DATE(DUE_DATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{contract_end_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
<if test="pm_user_id !=null and pm_user_id !=''">
|
|
AND pm_user_id = #{pm_user_id}
|
|
</if>
|
|
<if test="location != null and !''.equals(location)">
|
|
AND UPPER(LOCATION) LIKE UPPER('%${location}%')
|
|
</if>
|
|
<if test="setup != null and !''.equals(setup)">
|
|
AND UPPER(SETUP) LIKE UPPER('%${setup}%')
|
|
</if>
|
|
) AS T
|
|
) AS TT
|
|
WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END != '' and actionType != 'excel'">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_START != '' and actionType != 'excel'">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
|
|
</select>
|
|
|
|
<select id="projectMgmtGridList" parameterType="map" resultType="com.pms.common.UpperKeyMap">
|
|
SELECT *
|
|
, ROUND((ASSEMBLY_RATE + DESIGN_RATETOTAL + PURCHASE_RATETOTAL)::NUMERIC /3, 1) TOTAL_RATE
|
|
FROM(
|
|
SELECT
|
|
T.OBJID
|
|
,CATEGORY_CD
|
|
,CODE_NAME(CATEGORY_CD) AS CATEGORY_NAME
|
|
,CUSTOMER_OBJID
|
|
,(SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID = T.CUSTOMER_OBJID::NUMERIC) AS CUSTOMER_NAME
|
|
,T.PRODUCT
|
|
,CODE_NAME(T.PRODUCT) AS PRODUCT_NAME
|
|
,(SELECT O.CUSTOMER_PROJECT_NAME FROM CONTRACT_MGMT AS O WHERE O.OBJID = T.CONTRACT_OBJID) AS CUSTOMER_PROJECT_NAME
|
|
,STATUS_CD
|
|
,CODE_NAME(STATUS_CD) AS STATUS_NAME
|
|
,DUE_DATE
|
|
,LOCATION
|
|
,SETUP
|
|
,FACILITY
|
|
,CODE_NAME(FACILITY) AS FACILITY_NAME
|
|
,FACILITY_QTY
|
|
,FACILITY_TYPE
|
|
,FACILITY_DEPTH
|
|
,PRODUCTION_NO
|
|
,BUS_CAL_CD
|
|
,CODE_NAME(BUS_CAL_CD) AS BUS_CAL_NAME
|
|
,CATEGORY1_CD
|
|
,CODE_NAME(CATEGORY1_CD) AS CATEGORY1_NAME
|
|
,CHG_USER_ID
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = T.CHG_USER_ID ) AS CHG_USER_NAME
|
|
,PLAN_DATE
|
|
,COMPLETE_DATE
|
|
,RESULT_CD
|
|
,CODE_NAME(RESULT_CD) AS RESULT_NAME
|
|
,PROJECT_NO
|
|
,PM_USER_ID
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = (SELECT O.PM_USER_ID FROM CONTRACT_MGMT AS O WHERE O.OBJID = T.CONTRACT_OBJID)) AS PM_USER_NAME
|
|
,CONTRACT_PRICE
|
|
,CONTRACT_PRICE_CURRENCY
|
|
,CONTRACT_CURRENCY
|
|
,CODE_NAME(CONTRACT_CURRENCY) AS CONTRACT_CURRENCY_NAME
|
|
,T.REGDATE
|
|
,TO_CHAR(T.REGDATE,'YYYY-MM-DD') AS REG_DATE
|
|
,T.WRITER
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = T.WRITER ) AS WRITER_NAME
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.OBJID AND DOC_TYPE='contractMgmt01' AND UPPER(STATUS) = 'ACTIVE') AS CU01_CNT
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.OBJID AND DOC_TYPE='contractMgmt02' AND UPPER(STATUS) = 'ACTIVE') AS CU02_CNT
|
|
,T.CONTRACT_NO
|
|
,T.CUSTOMER_EQUIP_NAME
|
|
,REQ_DEL_DATE
|
|
,CONTRACT_DEL_DATE
|
|
,CONTRACT_COMPANY
|
|
,CODE_NAME(CONTRACT_COMPANY) AS CONTRACT_COMPANY_NAME
|
|
,CONTRACT_DATE
|
|
,PO_NO
|
|
,MANUFACTURE_PLANT
|
|
,CODE_NAME(MANUFACTURE_PLANT) AS MANUFACTURE_PLANT_NAME
|
|
,CONTRACT_RESULT
|
|
,CODE_NAME(CONTRACT_RESULT) AS CONTRACT_RESULT_NAME
|
|
,CODE_NAME(AREA_CD) AS AREA_NAME
|
|
,T.PROJECT_NAME
|
|
,MECHANICAL_TYPE
|
|
,OVERHAUL_ORDER
|
|
,CASE WHEN (SELECT COUNT(1) FROM SETUP_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID AND (PARENT_OBJID IS NOT NULL AND PARENT_OBJID != '')) = '0' then '0'
|
|
ELSE ROUND((((SELECT COUNT(1) FROM SETUP_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID and (O.SETUP_ACT_END !='' AND O.SETUP_ACT_END IS not null) AND (PARENT_OBJID IS NOT NULL AND PARENT_OBJID != ''))::FLOAT
|
|
/ (SELECT COUNT(1) FROM SETUP_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID AND (PARENT_OBJID IS NOT NULL AND PARENT_OBJID != ''))) * 100)::integer, 1)
|
|
END SETUP_RATE
|
|
|
|
,coalesce((ICG.MATERIAL_COST_GOAL::numeric + ICG.LABOR_COST_GOAL::numeric + ICG.EXPENSE_COST_GOAL::numeric), 0) AS TOTAL_COST_GOAL
|
|
,(coalesce(EP.SETTLE_AMOUNT, 0) + LC.LABOR_COST_ACTUAL + coalesce(O.ALL_TOTAL_PRICE::numeric, 0)) as TOTAL_COST_ACTUAL
|
|
,CASE WHEN coalesce((ICG.MATERIAL_COST_GOAL::numeric + ICG.LABOR_COST_GOAL::numeric + ICG.EXPENSE_COST_GOAL::numeric), 0) = 0 then 0
|
|
ELSE round((((coalesce(EP.SETTLE_AMOUNT, 0) + LC.LABOR_COST_ACTUAL + coalesce(O.ALL_TOTAL_PRICE::numeric, 0))::float / (ICG.MATERIAL_COST_GOAL::numeric + ICG.LABOR_COST_GOAL::numeric + ICG.EXPENSE_COST_GOAL::numeric))*100)::numeric,1)
|
|
END TOTAL_INPUT_RATE
|
|
,(SELECT COUNT(1) FROM PLANNING_ISSUE AS O WHERE O.PROJECT_OBJID = T.OBJID AND O.status='release' ) AS ISSUE_CNT
|
|
,(SELECT COUNT(1) FROM PLANNING_ISSUE AS O WHERE O.PROJECT_OBJID = T.OBJID AND O.status='release'
|
|
AND O.DESIGN_RESULT !='' AND O.DESIGN_DATE !='') AS COMP_CNT
|
|
,(SELECT COUNT(1) FROM PLANNING_ISSUE AS O WHERE O.PROJECT_OBJID = T.OBJID AND O.status='release' ) - (SELECT COUNT(1) FROM PLANNING_ISSUE AS O WHERE O.PROJECT_OBJID = T.OBJID AND O.status='release'
|
|
AND O.DESIGN_RESULT !='' AND O.DESIGN_DATE !='') AS MISS_CNT
|
|
,CASE WHEN (SELECT COUNT(1) FROM PLANNING_ISSUE AS O WHERE O.PROJECT_OBJID = T.OBJID AND O.status='release' ) = 0
|
|
THEN 0
|
|
ELSE round(((SELECT COUNT(1) FROM PLANNING_ISSUE AS O WHERE O.PROJECT_OBJID = T.OBJID AND O.status='release'
|
|
AND O.DESIGN_RESULT !='' AND O.DESIGN_DATE !='')::float / (SELECT COUNT(1) FROM PLANNING_ISSUE AS O WHERE O.PROJECT_OBJID = T.OBJID AND O.status='release' )::FLOAT * 100)::numeric , 1)
|
|
END AS ISSUE_RATE
|
|
,RM.RELEASE_DATE
|
|
,CASE
|
|
WHEN (COALESCE(TRIM(RM.RELEASE_DATE),'') !='') THEN '출고'
|
|
ELSE '미출고'
|
|
END RELEASE_STATUS_TITLE
|
|
|
|
<!--
|
|
,R.ASSEMBLY_RATE
|
|
-->
|
|
,CASE WHEN (SELECT COUNT(1) AS TOTALCNT FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) = 0 THEN 0
|
|
ELSE
|
|
ROUND((
|
|
((SELECT COUNT(1) AS TOTALCNT FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)
|
|
- (SELECT COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID AND (DESIGN_ACT_END ='' OR DESIGN_ACT_END IS NULL)))::FLOAT
|
|
/(SELECT COUNT(1) AS TOTALCNT FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)) * 100)
|
|
END AS DESIGN_RATETOTAL
|
|
|
|
,CASE WHEN (SELECT COUNT(1) AS TOTALCNT FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) = 0 THEN 0
|
|
ELSE
|
|
ROUND((
|
|
((SELECT COUNT(1) AS TOTALCNT FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)
|
|
- (SELECT COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID AND (PURCHASE_ACT_END ='' OR PURCHASE_ACT_END IS NULL)))::FLOAT
|
|
/(SELECT COUNT(1) AS TOTALCNT FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)) * 100)
|
|
END AS PURCHASE_RATETOTAL
|
|
|
|
,COALESCE(
|
|
(SELECT ROUND((SUM(AS_RATE) / (SELECT COUNT(1) FROM PMS_WBS_TASK W WHERE W.CONTRACT_OBJID = T.OBJID) ),1) AS ASSEMBLY_RATE
|
|
FROM
|
|
(SELECT
|
|
CASE WHEN (SELECT COUNT(*) FROM BOM_PART_QTY AS BP LEFT JOIN PART_MNG AS PM ON BP.PART_NO = PM.OBJID::VARCHAR WHERE BP.BOM_REPORT_OBJID = ST.OBJID AND PM.PART_TYPE IS NOT NULL AND PM.PART_TYPE != '') = 0 THEN 0
|
|
ELSE ROUND((((SELECT COUNT(1) FROM ASSEMBLY_WBS_TASK AS A WHERE A.PARENT_OBJID = ST.OBJID AND ASSEMBLY_USER_ID IS NOT NULL AND ASSEMBLY_USER_ID !='' AND ASSEMBLY_DATE IS NOT NULL AND ASSEMBLY_DATE!=''
|
|
)::NUMERIC / (SELECT COUNT(*) FROM BOM_PART_QTY AS BP LEFT JOIN PART_MNG AS PM ON BP.PART_NO = PM.OBJID::VARCHAR WHERE BP.BOM_REPORT_OBJID = ST.OBJID AND PM.PART_TYPE IS NOT NULL AND PM.PART_TYPE != '')) * 100), 1)
|
|
END AS AS_RATE
|
|
FROM PART_BOM_REPORT AS ST
|
|
WHERE ST.CONTRACT_OBJID = T.OBJID
|
|
) P
|
|
GROUP BY T.CONTRACT_OBJID), 0.0) AS ASSEMBLY_RATE
|
|
|
|
FROM PROJECT_MGMT AS T
|
|
LEFT OUTER JOIN RELEASE_MGMT RM
|
|
ON T.OBJID::VARCHAR = RM.PARENT_OBJID
|
|
LEFT OUTER JOIN INPUT_COST_GOAL ICG /* 목표가 */
|
|
ON T.OBJID = ICG.CONTRACT_OBJID
|
|
LEFT OUTER JOIN /* 재료비 */
|
|
(SELECT
|
|
CONTRACT_MGMT_OBJID,
|
|
SUM(CASE WHEN TOTAL_SUPPLY_UNIT_PRICE IS null or TOTAL_SUPPLY_UNIT_PRICE ='' THEN 0 ELSE TOTAL_SUPPLY_UNIT_PRICE::FLOAT END )::numeric AS ALL_TOTAL_PRICE
|
|
FROM PURCHASE_ORDER_MASTER
|
|
WHERE CONTRACT_MGMT_OBJID IS NOT NULL
|
|
AND status='approvalComplete'
|
|
GROUP BY CONTRACT_MGMT_OBJID) AS O
|
|
ON T.OBJID= O.CONTRACT_MGMT_OBJID
|
|
|
|
LEFT OUTER JOIN /* 경비 */
|
|
(SELECT
|
|
PROJECT_MGMT_OBJID,
|
|
SUM(A.SETTLE_AMOUNT) AS SETTLE_AMOUNT
|
|
FROM
|
|
(SELECT
|
|
M.*,
|
|
SUM(D.CARD_USED::numeric) + SUM(D.CASH_USED::numeric) - SUM(D.PAYMENT::numeric) AS SETTLE_AMOUNT
|
|
FROM
|
|
EXPENSE_MASTER M
|
|
LEFT OUTER JOIN EXPENSE_DETAIL D
|
|
ON M.EXPENSE_MASTER_OBJID = D.EXPENSE_MASTER_OBJID
|
|
GROUP BY M.EXPENSE_MASTER_OBJID) A
|
|
GROUP BY PROJECT_MGMT_OBJID) AS EP
|
|
ON EP.PROJECT_MGMT_OBJID = T.OBJID
|
|
|
|
/* 노무비 */
|
|
LEFT OUTER JOIN
|
|
(SELECT
|
|
RELTMP.OBJID
|
|
, (COALESCE(LABOR_DESIGN_COST, 0) + COALESCE(LABOR_ASSEMBLY_COST, 0) <!-- + COALESCE(LABOR_SETUP_COST, 0) -->) AS LABOR_COST_ACTUAL
|
|
FROM(
|
|
SELECT
|
|
TMP.*
|
|
,LABOR_DESIGN_INPUT_NUMBER * 300000 AS LABOR_DESIGN_COST
|
|
,(INSOURCING + OUTSOURCING) AS LABOR_ASSEMBLY_INPUT_NUMBER
|
|
,(INSOURCING * 300000 + OUTSOURCING * 200000) AS LABOR_ASSEMBLY_COST
|
|
FROM (
|
|
SELECT
|
|
PM.OBJID,
|
|
PM.PROJECT_NO,
|
|
coalesce(D.WORK_HOUR , '0') as LABOR_DESIGN_INPUT_NUMBER, /*설계*/
|
|
coalesce(P.WORK_HOUR , '0') as INSOURCING, /*생산*/
|
|
coalesce(O.WORK_HOUR , '0') as OUTSOURCING /*외주*/
|
|
FROM
|
|
PROJECT_MGMT AS PM
|
|
LEFT OUTER JOIN /* 설계노무비 */
|
|
(SELECT
|
|
CONTRACT_OBJID
|
|
,(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WD.WORKER_ID)
|
|
,SUM(WORK_HOUR::numeric) AS WORK_HOUR
|
|
FROM
|
|
WORK_DIARY WD
|
|
WHERE WD.CONTRACT_OBJID != '' AND WD.CONTRACT_OBJID IS NOT null
|
|
AND STATUS = 'complete'
|
|
AND (SELECT DEPT_CODE FROM USER_INFO WHERE USER_ID = WD.WORKER_ID) IN ('DPT014','DPT006')
|
|
GROUP BY CONTRACT_OBJID, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WD.WORKER_ID) ) AS D
|
|
ON D.CONTRACT_OBJID = PM.OBJID
|
|
LEFT OUTER JOIN
|
|
(SELECT
|
|
CONTRACT_OBJID
|
|
,(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WD.WORKER_ID)
|
|
,SUM(WORK_HOUR::numeric) AS WORK_HOUR
|
|
FROM
|
|
WORK_DIARY WD
|
|
WHERE WD.CONTRACT_OBJID != '' AND WD.CONTRACT_OBJID IS NOT null
|
|
AND STATUS = 'complete'
|
|
AND (SELECT DEPT_CODE FROM USER_INFO WHERE USER_ID = WD.WORKER_ID) IN ('DPT005','DPT023','DPT013')
|
|
GROUP BY CONTRACT_OBJID, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = WD.WORKER_ID) ) AS P
|
|
ON P.CONTRACT_OBJID = PM.OBJID
|
|
LEFT OUTER JOIN
|
|
(SELECT
|
|
CONTRACT_OBJID
|
|
,SUM(WORK_HOUR::numeric) AS WORK_HOUR
|
|
FROM
|
|
WORK_DIARY WD
|
|
WHERE WD.CONTRACT_OBJID != '' AND WD.CONTRACT_OBJID IS NOT null
|
|
AND STATUS = 'complete'
|
|
AND SOURCING_TYPE = 'outsourcing'
|
|
GROUP BY CONTRACT_OBJID ) AS O
|
|
ON O.CONTRACT_OBJID = PM.OBJID
|
|
WHERE 1=1
|
|
) TMP
|
|
) RELTMP
|
|
WHERE 1 = 1 ) AS LC
|
|
ON LC.OBJID = T.OBJID
|
|
<!--
|
|
LEFT OUTER JOIN
|
|
(SELECT
|
|
CONTRACT_OBJID,
|
|
ROUND((SUM(AS_RATE) / COUNT(1)),1) AS ASSEMBLY_RATE
|
|
FROM
|
|
(SELECT
|
|
OBJID
|
|
,CONTRACT_OBJID
|
|
,CASE WHEN (SELECT COUNT(*) FROM BOM_PART_QTY AS BP LEFT JOIN PART_MNG AS PM ON BP.PART_NO = PM.OBJID::VARCHAR where BP.BOM_REPORT_OBJID = T.OBJID and PM.part_type is not null and PM.part_type != '') = 0 THEN 0
|
|
ELSE ROUND((((SELECT count(1) FROM ASSEMBLY_WBS_TASK AS A WHERE A.PARENT_OBJID = T.OBJID AND assembly_user_id IS NOT NULL AND assembly_user_id !='' AND assembly_date IS NOT NULL AND assembly_date!=''
|
|
)::numeric / (SELECT COUNT(*) FROM BOM_PART_QTY AS BP LEFT JOIN PART_MNG AS PM ON BP.PART_NO = PM.OBJID::VARCHAR where BP.BOM_REPORT_OBJID = T.OBJID and PM.part_type is not null and PM.part_type != '')) * 100), 1)
|
|
END AS AS_RATE
|
|
, CASE WHEN (SELECT SUM(CASE WHEN RECEIVE_QTY='' AND RECEIVE_QTY IS NOT NULL THEN '0' ELSE RECEIVE_QTY END ::INTEGER) FROM ASSEMBLY_WBS_TASK AS A WHERE A.PARENT_OBJID = T.OBJID) = 0
|
|
THEN 0
|
|
ELSE
|
|
ROUND(((SELECT SUM(CASE WHEN RECEIVE_QTY='' AND RECEIVE_QTY IS NOT NULL THEN '0' ELSE RECEIVE_QTY END ::INTEGER) FROM ASSEMBLY_WBS_TASK AS A WHERE A.PARENT_OBJID = T.OBJID
|
|
AND ASSEMBLY_USER_ID IS NOT NULL AND ASSEMBLY_USER_ID !='' AND ASSEMBLY_DATE IS NOT NULL AND ASSEMBLY_DATE!='' AND (INSOURCING IS NOT NULL OR INSOURCING!='')
|
|
AND (OUTSOURCING IS NOT NULL OR OUTSOURCING!='')
|
|
)::NUMERIC / (SELECT SUM(CASE WHEN RECEIVE_QTY='' AND RECEIVE_QTY IS NOT NULL THEN '0' ELSE RECEIVE_QTY END ::INTEGER) FROM ASSEMBLY_WBS_TASK AS A WHERE A.PARENT_OBJID = T.OBJID) * 100),1)
|
|
END AS AS_RATE
|
|
FROM
|
|
PART_BOM_REPORT AS T) P
|
|
GROUP BY CONTRACT_OBJID) R
|
|
ON R.CONTRACT_OBJID = T.OBJID
|
|
-->
|
|
WHERE 1=1
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(T.REGDATE,'YYYY') = #{Year}
|
|
</if>
|
|
|
|
<!-- <if test="project_no != null and project_no != '' ">
|
|
AND T.OBJID = #{project_no}
|
|
</if> -->
|
|
|
|
<if test="project_no_array != null and project_no_array.length > 0">
|
|
AND T.OBJID IN
|
|
<foreach item="item" index="index" collection="project_no_array" open="(" separator="," close=")">
|
|
#{item}
|
|
</foreach>
|
|
</if>
|
|
<if test="project_no_arrays != null and project_no_arrays != ''">
|
|
AND T.OBJID IN
|
|
<foreach item="state" collection="project_no_arrays.split(',')"
|
|
open="(" separator="," close=")">
|
|
#{state}
|
|
</foreach>
|
|
</if>
|
|
|
|
<if test="category_cd !=null and category_cd != '' ">
|
|
AND T.category_cd = #{category_cd}
|
|
</if>
|
|
|
|
<if test="customer_objid !=null and customer_objid != '' ">
|
|
AND T.CUSTOMER_OBJID = #{customer_objid}
|
|
</if>
|
|
|
|
<if test="product != null and product !='' ">
|
|
AND T.product = #{product}
|
|
</if>
|
|
|
|
<if test="status_cd !=null and status_cd !=''">
|
|
AND T.status_cd = #{status_cd}
|
|
</if>
|
|
|
|
<if test="result_cd !=null and result_cd !=''">
|
|
AND result_cd = #{result_cd}
|
|
</if>
|
|
|
|
<if test="contract_start_date != null and !''.equals(contract_start_date)">
|
|
AND TO_DATE(T.DUE_DATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{contract_start_date}, 'YYYY-MM-DD')
|
|
|
|
</if>
|
|
<if test="contract_end_date != null and !''.equals(contract_end_date)">
|
|
AND TO_DATE(T.DUE_DATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{contract_end_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
<if test="pm_user_id !=null and pm_user_id !=''">
|
|
AND T.pm_user_id = #{pm_user_id}
|
|
</if>
|
|
<if test="location != null and !''.equals(location)">
|
|
AND UPPER(T.LOCATION) LIKE UPPER('%${location}%')
|
|
</if>
|
|
<if test="setup != null and !''.equals(setup)">
|
|
AND UPPER(T.SETUP) LIKE UPPER('%${setup}%')
|
|
</if>
|
|
) T
|
|
ORDER BY SUBSTRING(PROJECT_NO,POSITION('-' IN PROJECT_NO)+1) DESC
|
|
</select>
|
|
|
|
<select id="projectMgmtWbsGridList" parameterType="map" resultType="com.pms.common.UpperKeyMap">
|
|
SELECT
|
|
OBJID
|
|
,CATEGORY_CD
|
|
,CODE_NAME(CATEGORY_CD) AS CATEGORY_NAME
|
|
,CUSTOMER_OBJID
|
|
,(SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID = T.CUSTOMER_OBJID::NUMERIC) AS CUSTOMER_NAME
|
|
,PRODUCT
|
|
,CODE_NAME(PRODUCT) AS PRODUCT_NAME
|
|
,(SELECT O.CUSTOMER_PROJECT_NAME FROM CONTRACT_MGMT AS O WHERE O.OBJID = CONTRACT_OBJID) AS CUSTOMER_PROJECT_NAME
|
|
,STATUS_CD
|
|
,CODE_NAME(STATUS_CD) AS STATUS_NAME
|
|
,DUE_DATE
|
|
,LOCATION
|
|
,SETUP
|
|
,FACILITY
|
|
,CODE_NAME(FACILITY) AS FACILITY_NAME
|
|
,FACILITY_QTY
|
|
,FACILITY_TYPE
|
|
,FACILITY_DEPTH
|
|
,PRODUCTION_NO
|
|
,BUS_CAL_CD
|
|
,CODE_NAME(BUS_CAL_CD) AS BUS_CAL_NAME
|
|
,CATEGORY1_CD
|
|
,CODE_NAME(CATEGORY1_CD) AS CATEGORY1_NAME
|
|
,CHG_USER_ID
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = T.CHG_USER_ID ) AS CHG_USER_NAME
|
|
,PLAN_DATE
|
|
,COMPLETE_DATE
|
|
,RESULT_CD
|
|
,CODE_NAME(RESULT_CD) AS RESULT_NAME
|
|
,PROJECT_NO
|
|
,PM_USER_ID
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = (SELECT O.PM_USER_ID FROM CONTRACT_MGMT AS O WHERE O.OBJID = T.CONTRACT_OBJID)) AS PM_USER_NAME
|
|
,CONTRACT_PRICE
|
|
,CONTRACT_PRICE_CURRENCY
|
|
,CONTRACT_CURRENCY
|
|
,CODE_NAME(CONTRACT_CURRENCY) AS CONTRACT_CURRENCY_NAME
|
|
,REGDATE
|
|
,TO_CHAR(REGDATE,'YYYY-MM-DD') AS REG_DATE
|
|
,WRITER
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = T.WRITER ) AS WRITER_NAME
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.OBJID AND DOC_TYPE='contractMgmt01' AND UPPER(STATUS) = 'ACTIVE') AS CU01_CNT
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.OBJID AND DOC_TYPE='contractMgmt02' AND UPPER(STATUS) = 'ACTIVE') AS CU02_CNT
|
|
,CONTRACT_NO
|
|
,CUSTOMER_EQUIP_NAME
|
|
,REQ_DEL_DATE
|
|
,CONTRACT_DEL_DATE
|
|
,CONTRACT_COMPANY
|
|
,CODE_NAME(CONTRACT_COMPANY) AS CONTRACT_COMPANY_NAME
|
|
,CONTRACT_DATE
|
|
,PO_NO
|
|
,MANUFACTURE_PLANT
|
|
,CODE_NAME(MANUFACTURE_PLANT) AS MANUFACTURE_PLANT_NAME
|
|
,CONTRACT_RESULT
|
|
,CODE_NAME(CONTRACT_RESULT) AS CONTRACT_RESULT_NAME
|
|
,CODE_NAME(AREA_CD) AS AREA_NAME
|
|
,PROJECT_NAME
|
|
,(SELECT
|
|
CASE
|
|
WHEN O.PAID_TYPE = 'paid' THEN '유상'
|
|
WHEN O.PAID_TYPE = 'free' THEN '무상'
|
|
ELSE O.PAID_TYPE
|
|
END
|
|
FROM CONTRACT_MGMT AS O WHERE O.OBJID = T.CONTRACT_OBJID) AS FREE_OF_CHARGE
|
|
,COALESCE(T.QUANTITY::numeric, 0) AS CONTRACT_QTY
|
|
,T.PART_NO AS PRODUCT_ITEM_CODE
|
|
,T.PART_NAME AS PRODUCT_ITEM_NAME
|
|
-- S/N: 해당 품목의 시리얼 번호 (여러 개일 경우 "S/N 외 N건" 형식)
|
|
,(SELECT
|
|
CASE
|
|
WHEN COUNT(*) = 0 THEN ''
|
|
WHEN COUNT(*) = 1 THEN MIN(S.SERIAL_NO)
|
|
ELSE MIN(S.SERIAL_NO) || ' 외 ' || (COUNT(*) - 1)::TEXT || '건'
|
|
END
|
|
FROM CONTRACT_ITEM AS I
|
|
LEFT JOIN CONTRACT_ITEM_SERIAL AS S ON S.ITEM_OBJID = I.OBJID AND S.STATUS = 'ACTIVE'
|
|
WHERE I.CONTRACT_OBJID = T.CONTRACT_OBJID
|
|
AND I.PART_OBJID = T.PART_OBJID
|
|
AND S.SERIAL_NO IS NOT NULL) AS SERIAL_NO
|
|
-- 요청납기: CONTRACT_ITEM 우선, 없으면 PROJECT_MGMT.DUE_DATE, 없으면 CONTRACT_MGMT.due_date
|
|
,COALESCE(
|
|
(SELECT CI.DUE_DATE
|
|
FROM CONTRACT_ITEM CI
|
|
WHERE CI.CONTRACT_OBJID = T.CONTRACT_OBJID
|
|
AND CI.PART_OBJID = T.PART_OBJID
|
|
AND CI.STATUS = 'ACTIVE'),
|
|
T.DUE_DATE,
|
|
(SELECT CM.due_date FROM CONTRACT_MGMT CM WHERE CM.OBJID = T.CONTRACT_OBJID)
|
|
) AS REQ_DEL_DATE
|
|
-- 영업관리_주문서관리_수주등록
|
|
,EBOM_STATUS
|
|
,MBOM_STATUS
|
|
-- 발주일: CONTRACT_MGMT 테이블에서 가져오기 (영업관리_주문서관리와 동일)
|
|
,(SELECT O.ORDER_DATE FROM CONTRACT_MGMT AS O WHERE O.OBJID = T.CONTRACT_OBJID) AS ORDER_DATE
|
|
,RECEIVING_RATE
|
|
,PRODUCTION_TEAM_12
|
|
,PRODUCTION_TEAM_3
|
|
-- 출하일: sales_registration 테이블에서 가져오기 (영업관리_판매관리와 동일)
|
|
,COALESCE(
|
|
(SELECT TO_CHAR(SR.shipping_date, 'YYYY-MM-DD')
|
|
FROM sales_registration SR
|
|
WHERE SR.project_no = T.PROJECT_NO),
|
|
''
|
|
) AS SHIPMENT_DATE
|
|
,(((SELECT SUM(COALESCE(DESIGN_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)
|
|
+(SELECT SUM(COALESCE(PURCHASE_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)
|
|
+(SELECT SUM(COALESCE(PRODUCE_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)
|
|
+(SELECT SUM(COALESCE(SELFINS_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)
|
|
+(SELECT COALESCE(MAX(FINALINS_RATE),'0')::INTEGER FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)
|
|
+(SELECT COALESCE(MAX(SHIP_RATE),'0')::INTEGER FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)
|
|
+(SELECT COALESCE(MAX(SETUP_RATE),'0')::INTEGER FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID))/7) AS TOTAL_RATE
|
|
|
|
,(SELECT SUM(COALESCE(DESIGN_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) AS DESIGN_RATE
|
|
,(SELECT SUM(COALESCE(PURCHASE_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) AS PURCHASE_RATE
|
|
,(SELECT SUM(COALESCE(PRODUCE_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) AS PRODUCE_RATE
|
|
,(SELECT SUM(COALESCE(SELFINS_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) AS SELFINS_RATE
|
|
,(SELECT COALESCE(MAX(FINALINS_RATE),'0')::INTEGER FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) AS FINALINS_RATE
|
|
,(SELECT COALESCE(MAX(SHIP_RATE),'0')::INTEGER FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) AS SHIP_RATE
|
|
,(SELECT COALESCE(MAX(SETUP_RATE),'0')::INTEGER FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) AS SETUP_RATE
|
|
,(SELECT COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) AS WBS_CNT
|
|
,MECHANICAL_TYPE
|
|
,OVERHAUL_ORDER
|
|
|
|
,CASE WHEN (SELECT COUNT(1) AS TOTALCNT FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) = 0 THEN 0
|
|
ELSE
|
|
ROUND((
|
|
((SELECT COUNT(1) AS TOTALCNT FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)
|
|
- (SELECT COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID AND (DESIGN_ACT_END ='' OR DESIGN_ACT_END IS NULL)))::FLOAT
|
|
/(SELECT COUNT(1) AS TOTALCNT FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)) * 100)
|
|
END AS DESIGN_RATETOTAL
|
|
|
|
,CASE WHEN (SELECT COUNT(1) AS TOTALCNT FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) = 0 THEN 0
|
|
ELSE
|
|
ROUND((
|
|
((SELECT COUNT(1) AS TOTALCNT FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)
|
|
- (SELECT COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID AND (PURCHASE_ACT_END ='' OR PURCHASE_ACT_END IS NULL)))::FLOAT
|
|
/(SELECT COUNT(1) AS TOTALCNT FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)) * 100)
|
|
END AS PURCHASE_RATETOTAL
|
|
|
|
,ROUND(
|
|
(SELECT SUM(COALESCE(PRODUCE_RATE,'0')::NUMERIC) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)
|
|
/ (SELECT COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID), 1) AS PRODUCE_RATETOTAL
|
|
|
|
<!--
|
|
,CASE WHEN (SELECT COUNT(1) AS TOTALCNT FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) = 0 THEN 0
|
|
ELSE
|
|
ROUND((
|
|
((SELECT COUNT(1) AS TOTALCNT FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)
|
|
- (SELECT COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID AND (PRODUCE_ACT_END ='' OR PRODUCE_ACT_END IS NULL)))::FLOAT
|
|
/(SELECT COUNT(1) AS TOTALCNT FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)) * 100)
|
|
END AS PRODUCE_RATETOTAL
|
|
|
|
,CASE WHEN
|
|
(SELECT
|
|
(COUNT(1) * 3 ) AS TOTALCNT
|
|
FROM PMS_WBS_TASK AS O
|
|
WHERE O.CONTRACT_OBJID = T.OBJID) = 0
|
|
THEN 0
|
|
ELSE
|
|
|
|
ROUND((
|
|
((SELECT
|
|
(COUNT(1) * 3 ) AS TOTALCNT
|
|
FROM PMS_WBS_TASK AS O
|
|
WHERE O.CONTRACT_OBJID = T.OBJID)
|
|
-
|
|
(SELECT
|
|
(SELECT
|
|
COUNT(1)
|
|
FROM PMS_WBS_TASK AS O
|
|
WHERE O.CONTRACT_OBJID = T.OBJID
|
|
AND (DESIGN_ACT_END ='' OR DESIGN_ACT_END IS NULL))+
|
|
(SELECT
|
|
COUNT(1)
|
|
FROM PMS_WBS_TASK AS O
|
|
WHERE O.CONTRACT_OBJID = T.OBJID
|
|
AND (PURCHASE_ACT_END ='' OR PURCHASE_ACT_END IS NULL))
|
|
+
|
|
(SELECT
|
|
COUNT(1)
|
|
FROM PMS_WBS_TASK AS O
|
|
WHERE O.CONTRACT_OBJID = T.OBJID
|
|
AND (PRODUCE_ACT_END ='' OR PRODUCE_ACT_END IS NULL))
|
|
))::FLOAT
|
|
/
|
|
(SELECT
|
|
(COUNT(1) * 3 ) AS TOTALCNT
|
|
FROM PMS_WBS_TASK AS O
|
|
WHERE O.CONTRACT_OBJID = T.OBJID)) * 100)
|
|
END AS RATETOTAL -->
|
|
|
|
,(SELECT COUNT(1) FROM PMS_WBS_TASK AS O
|
|
WHERE O.CONTRACT_OBJID=T.OBJID
|
|
AND TO_DATE(O.DESIGN_PLAN_END,'YYYY-MM-DD') <![CDATA[ < ]]> TO_DATE(TO_CHAR(NOW(),'YYYY-MM-DD'),'YYYY-MM-DD')
|
|
AND (O.DESIGN_ACT_END='' OR O.DESIGN_ACT_END IS NULL)
|
|
AND O.DESIGN_PLAN_END IS NOT NULL
|
|
AND O.DESIGN_PLAN_END!='') AS DESIGN_LATE_CNT ,
|
|
|
|
(SELECT COUNT(1) FROM PMS_WBS_TASK AS O
|
|
WHERE O.CONTRACT_OBJID=T.OBJID
|
|
AND TO_DATE(O.PURCHASE_PLAN_END,'YYYY-MM-DD') <![CDATA[ < ]]> TO_DATE(TO_CHAR(NOW(),'YYYY-MM-DD'),'YYYY-MM-DD')
|
|
AND (O.PURCHASE_ACT_END='' OR O.PURCHASE_ACT_END IS NULL)
|
|
AND O.PURCHASE_PLAN_END IS NOT NULL
|
|
AND O.PURCHASE_PLAN_END!='') AS PURCHASE_LATE_CNT ,
|
|
|
|
(SELECT COUNT(1) FROM PMS_WBS_TASK AS O
|
|
WHERE O.CONTRACT_OBJID=T.OBJID
|
|
AND TO_DATE(O.PRODUCE_PLAN_END,'YYYY-MM-DD') <![CDATA[ < ]]> TO_DATE(TO_CHAR(NOW(),'YYYY-MM-DD'),'YYYY-MM-DD')
|
|
AND (O.PRODUCE_ACT_END='' OR O.PRODUCE_ACT_END IS NULL)
|
|
AND O.PRODUCE_PLAN_END IS NOT NULL
|
|
AND O.PRODUCE_PLAN_END!='') AS PRODUCE_LATE_CNT
|
|
|
|
,(SELECT COUNT(1) FROM PMS_WBS_TASK AS O
|
|
WHERE O.CONTRACT_OBJID=T.OBJID
|
|
AND TO_DATE(O.DESIGN_PLAN_END,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(TO_CHAR(NOW(),'YYYY-MM-DD'),'YYYY-MM-DD')
|
|
AND (O.DESIGN_ACT_END='' OR O.DESIGN_ACT_END IS NULL)
|
|
AND O.DESIGN_PLAN_END IS NOT NULL
|
|
AND O.DESIGN_PLAN_END!='') AS DESIGN_ING_CNT,
|
|
+
|
|
(SELECT COUNT(1) FROM PMS_WBS_TASK AS O
|
|
WHERE O.CONTRACT_OBJID=T.OBJID
|
|
AND TO_DATE(O.PURCHASE_PLAN_END,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(TO_CHAR(NOW(),'YYYY-MM-DD'),'YYYY-MM-DD')
|
|
AND (O.PURCHASE_ACT_END='' OR O.PURCHASE_ACT_END IS NULL)
|
|
AND O.PURCHASE_PLAN_END IS NOT NULL
|
|
AND O.PURCHASE_PLAN_END!='') AS PURCHASE_ING_CNT,
|
|
+
|
|
(SELECT COUNT(1) FROM PMS_WBS_TASK AS O
|
|
WHERE O.CONTRACT_OBJID=T.OBJID
|
|
AND TO_DATE(O.PRODUCE_PLAN_END,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(TO_CHAR(NOW(),'YYYY-MM-DD'),'YYYY-MM-DD')
|
|
AND (O.PRODUCE_ACT_END='' OR O.PRODUCE_ACT_END IS NULL)
|
|
AND O.PRODUCE_PLAN_END IS NOT NULL
|
|
AND O.PRODUCE_PLAN_END!='') AS PRODUCE_ING_CNT
|
|
|
|
,(SELECT COUNT(1) FROM PMS_WBS_TASK AS O
|
|
WHERE CONTRACT_OBJID=T.OBJID
|
|
AND TO_DATE(DESIGN_PLAN_END,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(DESIGN_ACT_END,'YYYY-MM-DD')
|
|
AND DESIGN_ACT_END!=''
|
|
AND DESIGN_ACT_END IS NOT NULL
|
|
AND DESIGN_PLAN_END IS NOT NULL
|
|
AND DESIGN_PLAN_END!='') AS DESIGN_COMP_CNT ,
|
|
|
|
(SELECT COUNT(1) FROM PMS_WBS_TASK AS O
|
|
WHERE CONTRACT_OBJID=T.OBJID
|
|
AND TO_DATE(PURCHASE_PLAN_END,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(PURCHASE_ACT_END,'YYYY-MM-DD')
|
|
AND PURCHASE_ACT_END!=''
|
|
AND PURCHASE_ACT_END IS NOT NULL
|
|
AND PURCHASE_PLAN_END IS NOT NULL
|
|
AND PURCHASE_PLAN_END!='') AS PURCHASE_COMP_CNT ,
|
|
|
|
(SELECT COUNT(1) FROM PMS_WBS_TASK AS O
|
|
WHERE CONTRACT_OBJID=T.OBJID
|
|
AND TO_DATE(PRODUCE_PLAN_END,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(PRODUCE_ACT_END,'YYYY-MM-DD')
|
|
AND PRODUCE_ACT_END!=''
|
|
AND PRODUCE_ACT_END IS NOT NULL
|
|
AND PRODUCE_PLAN_END IS NOT NULL
|
|
AND PRODUCE_PLAN_END!='') AS PRODUCE_COMP_CNT
|
|
|
|
,(SELECT COUNT(1) FROM PMS_WBS_TASK AS O
|
|
WHERE CONTRACT_OBJID=T.OBJID
|
|
AND TO_DATE(DESIGN_PLAN_END,'YYYY-MM-DD') <![CDATA[ < ]]> TO_DATE(DESIGN_ACT_END,'YYYY-MM-DD')
|
|
AND DESIGN_ACT_END!=''
|
|
AND DESIGN_ACT_END IS NOT NULL
|
|
AND DESIGN_PLAN_END IS NOT NULL
|
|
AND DESIGN_PLAN_END!='') AS DESIGN_LATE_COMP_CNT,
|
|
|
|
(SELECT COUNT(1) FROM PMS_WBS_TASK AS O
|
|
WHERE CONTRACT_OBJID=T.OBJID
|
|
AND TO_DATE(PURCHASE_PLAN_END,'YYYY-MM-DD') <![CDATA[ < ]]> TO_DATE(PURCHASE_ACT_END,'YYYY-MM-DD')
|
|
AND PURCHASE_ACT_END!=''
|
|
AND PURCHASE_ACT_END IS NOT NULL
|
|
AND PURCHASE_PLAN_END IS NOT NULL
|
|
AND PURCHASE_PLAN_END!='') AS PURCHASE_LATE_COMP_CNT,
|
|
|
|
(SELECT COUNT(1) FROM PMS_WBS_TASK AS O
|
|
WHERE CONTRACT_OBJID=T.OBJID
|
|
AND TO_DATE(PRODUCE_PLAN_END,'YYYY-MM-DD') <![CDATA[ < ]]> TO_DATE(PRODUCE_ACT_END,'YYYY-MM-DD')
|
|
AND PRODUCE_ACT_END!=''
|
|
AND PRODUCE_ACT_END IS NOT NULL
|
|
AND PRODUCE_PLAN_END IS NOT NULL
|
|
AND PRODUCE_PLAN_END!='') AS PRODUCE_LATE_COMP_CNT
|
|
|
|
|
|
,(SELECT COUNT(1)
|
|
FROM SETUP_WBS_TASK AS O
|
|
WHERE O.CONTRACT_OBJID=T.OBJID
|
|
AND TO_DATE(O.SETUP_PLAN_END,'YYYY-MM-DD') <![CDATA[ < ]]> TO_DATE(TO_CHAR(NOW(),'YYYY-MM-DD'),'YYYY-MM-DD')
|
|
AND (O.SETUP_ACT_END='' OR O.SETUP_ACT_END IS NULL)
|
|
AND O.SETUP_PLAN_END IS NOT NULL
|
|
AND O.SETUP_PLAN_END!=''
|
|
AND (PARENT_OBJID IS NOT NULL OR PARENT_OBJID != '')
|
|
) AS SETUP_LATE_CNT
|
|
|
|
,(SELECT COUNT(1)
|
|
FROM SETUP_WBS_TASK AS O
|
|
WHERE O.CONTRACT_OBJID=T.OBJID
|
|
AND TO_DATE(O.SETUP_PLAN_END,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(TO_CHAR(NOW(),'YYYY-MM-DD'),'YYYY-MM-DD')
|
|
AND (O.SETUP_ACT_END='' OR O.SETUP_ACT_END IS NULL)
|
|
AND O.SETUP_PLAN_END IS NOT NULL
|
|
AND O.SETUP_PLAN_END!=''
|
|
AND (PARENT_OBJID IS NOT NULL OR PARENT_OBJID != '')
|
|
) AS SETUP_ING_CNT
|
|
|
|
,(
|
|
SELECT COUNT(1) FROM SETUP_WBS_TASK AS O
|
|
WHERE CONTRACT_OBJID=T.OBJID
|
|
AND TO_DATE(SETUP_PLAN_END,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(SETUP_ACT_END,'YYYY-MM-DD')
|
|
AND SETUP_ACT_END!=''
|
|
AND SETUP_ACT_END IS NOT NULL
|
|
AND SETUP_PLAN_END IS NOT NULL
|
|
AND SETUP_PLAN_END!=''
|
|
AND (PARENT_OBJID IS NOT NULL OR PARENT_OBJID != '')
|
|
) AS SETUP_COMP_CNT
|
|
|
|
,(
|
|
SELECT COUNT(1) FROM SETUP_WBS_TASK AS O
|
|
WHERE CONTRACT_OBJID=T.OBJID
|
|
AND TO_DATE(SETUP_PLAN_END,'YYYY-MM-DD') <![CDATA[ < ]]> TO_DATE(SETUP_ACT_END,'YYYY-MM-DD')
|
|
AND SETUP_ACT_END!=''
|
|
AND SETUP_ACT_END IS NOT NULL
|
|
AND SETUP_PLAN_END IS NOT NULL
|
|
AND SETUP_PLAN_END!=''
|
|
AND (PARENT_OBJID IS NOT NULL OR PARENT_OBJID != '')
|
|
) AS SETUP_LATE_COMP_CNT
|
|
|
|
,CASE WHEN (SELECT COUNT(1) FROM SETUP_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID AND (PARENT_OBJID IS NOT NULL AND PARENT_OBJID != '')) = '0' then '0'
|
|
ELSE ROUND((((SELECT COUNT(1) FROM SETUP_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID and (O.SETUP_ACT_END !='' AND O.SETUP_ACT_END IS not null) AND (PARENT_OBJID IS NOT NULL AND PARENT_OBJID != ''))::FLOAT
|
|
/ (SELECT COUNT(1) FROM SETUP_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID AND (PARENT_OBJID IS NOT NULL AND PARENT_OBJID != ''))) * 100)::integer, 1)
|
|
END SETUP_RATETOTAL
|
|
FROM PROJECT_MGMT AS T
|
|
WHERE 1=1
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(REGDATE,'YYYY') = #{Year}
|
|
</if>
|
|
|
|
<!-- <if test="project_no !=null and project_no != '' ">
|
|
AND OBJID = #{project_no}
|
|
</if> -->
|
|
|
|
<if test="project_nos != null and project_nos != ''">
|
|
AND OBJID IN
|
|
<foreach item="state" collection="project_nos.split(',')"
|
|
open="(" separator="," close=")">
|
|
#{state}
|
|
</foreach>
|
|
</if>
|
|
|
|
<if test="category_cd !=null and category_cd != '' ">
|
|
AND category_cd = #{category_cd}
|
|
</if>
|
|
|
|
<if test="customer_objid !=null and customer_objid != '' ">
|
|
AND CUSTOMER_OBJID = #{customer_objid}
|
|
</if>
|
|
|
|
<if test="product != null and product !='' ">
|
|
AND product = #{product}
|
|
</if>
|
|
|
|
<if test="status_cd !=null and status_cd !=''">
|
|
AND status_cd = #{status_cd}
|
|
</if>
|
|
|
|
<if test="result_cd !=null and result_cd !=''">
|
|
AND result_cd = #{result_cd}
|
|
</if>
|
|
|
|
<if test="contract_start_date != null and !''.equals(contract_start_date)">
|
|
AND TO_DATE(DUE_DATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{contract_start_date}, 'YYYY-MM-DD')
|
|
|
|
</if>
|
|
<if test="contract_end_date != null and !''.equals(contract_end_date)">
|
|
AND TO_DATE(DUE_DATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{contract_end_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
<if test="pm_user_id !=null and pm_user_id !=''">
|
|
AND pm_user_id = #{pm_user_id}
|
|
</if>
|
|
<if test="location != null and !''.equals(location)">
|
|
AND UPPER(LOCATION) LIKE UPPER('%${location}%')
|
|
</if>
|
|
<if test="setup != null and !''.equals(setup)">
|
|
AND UPPER(SETUP) LIKE UPPER('%${setup}%')
|
|
</if>
|
|
ORDER BY SUBSTRING(PROJECT_NO,POSITION('-' IN PROJECT_NO)+1) DESC, OVERHAUL_ORDER DESC NULLS LAST
|
|
</select>
|
|
|
|
<select id="getContractCompleteList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM
|
|
(
|
|
SELECT T.*,ROW_NUMBER() OVER (ORDER BY REGDATE DESC) AS RNUM
|
|
FROM
|
|
(
|
|
SELECT
|
|
OBJID
|
|
,CATEGORY_CD
|
|
,CODE_NAME(CATEGORY_CD) AS CATEGORY_NAME
|
|
,CUSTOMER_OBJID
|
|
,(SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID = T.CUSTOMER_OBJID::NUMERIC) AS CUSTOMER_NAME
|
|
,PRODUCT
|
|
,CODE_NAME(PRODUCT) AS PRODUCT_NAME
|
|
,CUSTOMER_PROJECT_NAME
|
|
,STATUS_CD
|
|
,CODE_NAME(STATUS_CD) AS STATUS_NAME
|
|
,DUE_DATE
|
|
,LOCATION
|
|
,SETUP
|
|
,FACILITY
|
|
,CODE_NAME(FACILITY) AS FACILITY_NAME
|
|
,FACILITY_QTY
|
|
,FACILITY_TYPE
|
|
,FACILITY_DEPTH
|
|
,PRODUCTION_NO
|
|
,BUS_CAL_CD
|
|
,CODE_NAME(BUS_CAL_CD) AS BUS_CAL_NAME
|
|
,CATEGORY1_CD
|
|
,CODE_NAME(CATEGORY1_CD) AS CATEGORY1_NAME
|
|
,CHG_USER_ID
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = T.CHG_USER_ID ) AS CHG_USER_NAME
|
|
,PLAN_DATE
|
|
,COMPLETE_DATE
|
|
,RESULT_CD
|
|
,CODE_NAME(RESULT_CD) AS RESULT_NAME
|
|
,PROJECT_NO
|
|
,PM_USER_ID
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = T.PM_USER_ID ) AS PM_USER_NAME
|
|
,CONTRACT_PRICE
|
|
,CONTRACT_PRICE_CURRENCY
|
|
,CONTRACT_CURRENCY
|
|
,CODE_NAME(CONTRACT_CURRENCY) AS CONTRACT_CURRENCY_NAME
|
|
,REGDATE
|
|
,TO_CHAR(REGDATE,'YYYY-MM-DD') AS REG_DATE
|
|
,WRITER
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = T.WRITER ) AS WRITER_NAME
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.OBJID AND DOC_TYPE='contractMgmt01' AND UPPER(STATUS) = 'ACTIVE') AS CU01_CNT
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.OBJID AND DOC_TYPE='contractMgmt02' AND UPPER(STATUS) = 'ACTIVE') AS CU02_CNT
|
|
,CONTRACT_NO
|
|
,CUSTOMER_EQUIP_NAME
|
|
,REQ_DEL_DATE
|
|
,CONTRACT_DEL_DATE
|
|
,CONTRACT_COMPANY
|
|
,CODE_NAME(CONTRACT_COMPANY) AS CONTRACT_COMPANY_NAME
|
|
,CONTRACT_DATE
|
|
,PO_NO
|
|
,MANUFACTURE_PLANT
|
|
,CODE_NAME(MANUFACTURE_PLANT) AS MANUFACTURE_PLANT_NAME
|
|
,CONTRACT_RESULT
|
|
,CODE_NAME(CONTRACT_RESULT) AS CONTRACT_RESULT_NAME
|
|
,PROJECT_NAME
|
|
,CODE_NAME(AREA_CD) AS AREA_NAME
|
|
FROM CONTRACT_MGMT AS T
|
|
WHERE T.CONTRACT_RESULT='0000964'
|
|
AND SUBSTR(CONTRACT_DATE,0,5) = #{Year}
|
|
|
|
<if test="category_cd !=null and category_cd != '' ">
|
|
AND category_cd = #{category_cd}
|
|
</if>
|
|
|
|
<if test="customer_objid !=null and customer_objid != '' ">
|
|
AND customer_objid = #{customer_objid}
|
|
</if>
|
|
|
|
<if test="product != null and product !='' ">
|
|
AND product = #{product}
|
|
</if>
|
|
|
|
<if test="status_cd !=null and status_cd !=''">
|
|
AND status_cd = #{status_cd}
|
|
</if>
|
|
|
|
|
|
<if test="result_cd !=null and result_cd !=''">
|
|
AND result_cd = #{result_cd}
|
|
</if>
|
|
|
|
<if test="contract_start_date != null and !''.equals(contract_start_date)">
|
|
AND TO_DATE(CONTRACT_DATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{contract_start_date}, 'YYYY-MM-DD')
|
|
|
|
</if>
|
|
<if test="contract_end_date != null and !''.equals(contract_end_date)">
|
|
AND TO_DATE(CONTRACT_DATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{contract_end_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
<if test="pm_user_id !=null and pm_user_id !=''">
|
|
AND pm_user_id = #{pm_user_id}
|
|
</if>
|
|
) AS T
|
|
) AS TT
|
|
WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END != '' and actionType != 'excel'">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_START != '' and actionType != 'excel'">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
|
|
</select>
|
|
|
|
|
|
<!-- 계약 완료 건수 -->
|
|
<select id="projectMgmtListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(CAST(TOTAL_CNT AS FLOAT)/#{COUNT_PER_PAGE})::numeric::integer as MAX_PAGE_SIZE
|
|
,TOTAL_CNT::integer
|
|
FROM (
|
|
SELECT COUNT(1)::float TOTAL_CNT
|
|
FROM(
|
|
SELECT
|
|
OBJID
|
|
,CATEGORY_CD
|
|
,CODE_NAME(CATEGORY_CD) AS CATEGORY_NAME
|
|
,CUSTOMER_OBJID
|
|
,(SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID = T.CUSTOMER_OBJID::NUMERIC) AS CUSTOMER_NAME
|
|
,PRODUCT
|
|
,CODE_NAME(PRODUCT) AS PRODUCT_NAME
|
|
,CUSTOMER_PROJECT_NAME
|
|
,STATUS_CD
|
|
,CODE_NAME(STATUS_CD) AS STATUS_NAME
|
|
,DUE_DATE
|
|
,LOCATION
|
|
,SETUP
|
|
,FACILITY
|
|
,CODE_NAME(FACILITY) AS FACILITY_NAME
|
|
,FACILITY_QTY
|
|
,FACILITY_TYPE
|
|
,FACILITY_DEPTH
|
|
,PRODUCTION_NO
|
|
,BUS_CAL_CD
|
|
,CODE_NAME(BUS_CAL_CD) AS BUS_CAL_NAME
|
|
,CATEGORY1_CD
|
|
,CODE_NAME(CATEGORY1_CD) AS CATEGORY1_NAME
|
|
,CHG_USER_ID
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = T.CHG_USER_ID ) AS CHG_USER_NAME
|
|
,PLAN_DATE
|
|
,COMPLETE_DATE
|
|
,RESULT_CD
|
|
,CODE_NAME(RESULT_CD) AS RESULT_NAME
|
|
,PROJECT_NO
|
|
,PM_USER_ID
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = T.PM_USER_ID ) AS PM_USER_NAME
|
|
,CONTRACT_PRICE
|
|
,CONTRACT_PRICE_CURRENCY
|
|
,CONTRACT_CURRENCY
|
|
,CODE_NAME(CONTRACT_CURRENCY) AS CONTRACT_CURRENCY_NAME
|
|
,REGDATE
|
|
,TO_CHAR(REGDATE,'YYYY-MM-DD') AS REG_DATE
|
|
,WRITER
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = T.WRITER ) AS WRITER_NAME
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.OBJID AND DOC_TYPE='contractMgmt01' AND UPPER(STATUS) = 'ACTIVE') AS CU01_CNT
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.OBJID AND DOC_TYPE='contractMgmt02' AND UPPER(STATUS) = 'ACTIVE') AS CU02_CNT
|
|
,CONTRACT_NO
|
|
,CUSTOMER_EQUIP_NAME
|
|
,REQ_DEL_DATE
|
|
,CONTRACT_DEL_DATE
|
|
,CONTRACT_COMPANY
|
|
,CODE_NAME(CONTRACT_COMPANY) AS CONTRACT_COMPANY_NAME
|
|
,CONTRACT_DATE
|
|
,PO_NO
|
|
,MANUFACTURE_PLANT
|
|
,CODE_NAME(MANUFACTURE_PLANT) AS MANUFACTURE_PLANT_NAME
|
|
,CONTRACT_RESULT
|
|
,CODE_NAME(CONTRACT_RESULT) AS CONTRACT_RESULT_NAME
|
|
,PROJECT_NAME
|
|
FROM PROJECT_MGMT AS T
|
|
WHERE 1=1
|
|
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(REGDATE,'YYYY') = #{Year}
|
|
</if>
|
|
|
|
<if test="category_cd !=null and category_cd != '' ">
|
|
AND category_cd = #{category_cd}
|
|
</if>
|
|
|
|
<if test="project_no !=null and project_no != '' ">
|
|
AND OBJID = #{project_no}
|
|
</if>
|
|
|
|
<if test="customer_objid !=null and customer_objid != '' ">
|
|
AND customer_objid = #{customer_objid}
|
|
</if>
|
|
|
|
<if test="product != null and product !='' ">
|
|
AND product = #{product}
|
|
</if>
|
|
|
|
<if test="status_cd !=null and status_cd !=''">
|
|
AND status_cd = #{status_cd}
|
|
</if>
|
|
|
|
|
|
<if test="result_cd !=null and result_cd !=''">
|
|
AND result_cd = #{result_cd}
|
|
</if>
|
|
|
|
<if test="contract_start_date != null and !''.equals(contract_start_date)">
|
|
AND TO_DATE(DUE_DATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{contract_start_date}, 'YYYY-MM-DD')
|
|
|
|
</if>
|
|
<if test="contract_end_date != null and !''.equals(contract_end_date)">
|
|
AND TO_DATE(DUE_DATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{contract_end_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
<if test="pm_user_id !=null and pm_user_id !=''">
|
|
AND pm_user_id = #{pm_user_id}
|
|
</if>
|
|
|
|
|
|
) AS T
|
|
|
|
)AS T
|
|
WHERE 1=1
|
|
</select>
|
|
|
|
|
|
|
|
<!-- tnwndhksfy -->
|
|
<select id="getContractCompleteListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(CAST(TOTAL_CNT AS FLOAT)/#{COUNT_PER_PAGE})::numeric::integer as MAX_PAGE_SIZE
|
|
,TOTAL_CNT::integer
|
|
FROM (
|
|
SELECT COUNT(1)::float TOTAL_CNT
|
|
FROM(
|
|
SELECT
|
|
OBJID
|
|
,CATEGORY_CD
|
|
,CODE_NAME(CATEGORY_CD) AS CATEGORY_NAME
|
|
,CUSTOMER_OBJID
|
|
,(SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID = T.CUSTOMER_OBJID::NUMERIC) AS CUSTOMER_NAME
|
|
,PRODUCT
|
|
,CODE_NAME(PRODUCT) AS PRODUCT_NAME
|
|
,CUSTOMER_PROJECT_NAME
|
|
,STATUS_CD
|
|
,CODE_NAME(STATUS_CD) AS STATUS_NAME
|
|
,DUE_DATE
|
|
,LOCATION
|
|
,SETUP
|
|
,FACILITY
|
|
,CODE_NAME(FACILITY) AS FACILITY_NAME
|
|
,FACILITY_QTY
|
|
,FACILITY_TYPE
|
|
,FACILITY_DEPTH
|
|
,PRODUCTION_NO
|
|
,BUS_CAL_CD
|
|
,CODE_NAME(BUS_CAL_CD) AS BUS_CAL_NAME
|
|
,CATEGORY1_CD
|
|
,CODE_NAME(CATEGORY1_CD) AS CATEGORY1_NAME
|
|
,CHG_USER_ID
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = T.CHG_USER_ID ) AS CHG_USER_NAME
|
|
,PLAN_DATE
|
|
,COMPLETE_DATE
|
|
,RESULT_CD
|
|
,CODE_NAME(RESULT_CD) AS RESULT_NAME
|
|
,PROJECT_NO
|
|
,PM_USER_ID
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = T.PM_USER_ID ) AS PM_USER_NAME
|
|
,CONTRACT_PRICE
|
|
,CONTRACT_PRICE_CURRENCY
|
|
,CONTRACT_CURRENCY
|
|
,CODE_NAME(CONTRACT_CURRENCY) AS CONTRACT_CURRENCY_NAME
|
|
,REGDATE
|
|
,TO_CHAR(REGDATE,'YYYY-MM-DD') AS REG_DATE
|
|
,WRITER
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = T.WRITER ) AS WRITER_NAME
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.OBJID AND DOC_TYPE='contractMgmt01' AND UPPER(STATUS) = 'ACTIVE') AS CU01_CNT
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.OBJID AND DOC_TYPE='contractMgmt02' AND UPPER(STATUS) = 'ACTIVE') AS CU02_CNT
|
|
,CONTRACT_NO
|
|
,CUSTOMER_EQUIP_NAME
|
|
,REQ_DEL_DATE
|
|
,CONTRACT_DEL_DATE
|
|
,CONTRACT_COMPANY
|
|
,CODE_NAME(CONTRACT_COMPANY) AS CONTRACT_COMPANY_NAME
|
|
,CONTRACT_DATE
|
|
,PO_NO
|
|
,MANUFACTURE_PLANT
|
|
,CODE_NAME(MANUFACTURE_PLANT) AS MANUFACTURE_PLANT_NAME
|
|
,CONTRACT_RESULT
|
|
,CODE_NAME(CONTRACT_RESULT) AS CONTRACT_RESULT_NAME
|
|
,PROJECT_NAME
|
|
FROM CONTRACT_MGMT AS T
|
|
WHERE T.CONTRACT_RESULT='0000964'
|
|
AND SUBSTR(CONTRACT_DATE,0,5) = #{Year}
|
|
|
|
<if test="category_cd !=null and category_cd != '' ">
|
|
AND category_cd = #{category_cd}
|
|
</if>
|
|
|
|
<if test="customer_objid !=null and customer_objid != '' ">
|
|
AND customer_objid = #{customer_objid}
|
|
</if>
|
|
|
|
<if test="product != null and product !='' ">
|
|
AND product = #{product}
|
|
</if>
|
|
|
|
<if test="status_cd !=null and status_cd !=''">
|
|
AND status_cd = #{status_cd}
|
|
</if>
|
|
|
|
|
|
<if test="result_cd !=null and result_cd !=''">
|
|
AND result_cd = #{result_cd}
|
|
</if>
|
|
|
|
<if test="contract_start_date != null and !''.equals(contract_start_date)">
|
|
AND TO_DATE(CONTRACT_DATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{contract_start_date}, 'YYYY-MM-DD')
|
|
|
|
</if>
|
|
<if test="contract_end_date != null and !''.equals(contract_end_date)">
|
|
AND TO_DATE(CONTRACT_DATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{contract_end_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
<if test="pm_user_id !=null and pm_user_id !=''">
|
|
AND pm_user_id = #{pm_user_id}
|
|
</if>
|
|
|
|
|
|
) AS T
|
|
|
|
)AS T
|
|
WHERE 1=1
|
|
</select>
|
|
|
|
|
|
<!-- //영업정보를 받아 프로젝트 최초저장 -->
|
|
<insert id="insertProjectTaskMgmtInfo" parameterType="map">
|
|
INSERT INTO
|
|
PROJECT_TASK_MGMT (
|
|
OBJID
|
|
,TARGET_OBJID
|
|
,ORDER_NO
|
|
,TASK_NAME
|
|
,WRITER
|
|
,START_PDATE
|
|
,END_PDATE
|
|
,END_DATE
|
|
,APPR_CD
|
|
,REG_DATE
|
|
,FILE_TYPE
|
|
)
|
|
(select #{taskobjId}+T.ORDER_NO
|
|
,#{objId}
|
|
,T.ORDER_NO
|
|
,T.TASK_NAME
|
|
,''
|
|
,''
|
|
,''
|
|
,''
|
|
,''
|
|
,sysdate
|
|
,T.FILE_TYPE
|
|
from PROJECT_TASK_REFERENCE t
|
|
)
|
|
</insert>
|
|
|
|
|
|
<select id="getProjectMgmt" parameterType="map" resultType="map">
|
|
SELECT T.PROJECT_MGMT_OBJID::varchar AS PROJECT_MGMT_OBJID
|
|
,T1.ASSEMBLY_PLAN_OBJID::varchar AS ASSEMBLY_PLAN_OBJID
|
|
FROM PROJECT_MGMT T
|
|
LEFT JOIN FACILITY_ASSEMBLY_PLAN T1
|
|
ON T.PROJECT_MGMT_OBJID = T1.PROJECT_MGMT_OBJID
|
|
WHERE T.ORDER_MGMT_OBJID = #{objId}
|
|
</select>
|
|
|
|
|
|
<select id="getProjectTaskList" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID
|
|
,TARGET_OBJID
|
|
,ORDER_NO
|
|
,TASK_NAME
|
|
,WRITER
|
|
,(SELECT DEPT_CODE FROM USER_INFO O WHERE O.USER_ID = T.WRITER) AS DEPT_CODE
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.OBJID AND DOC_TYPE=T.FILE_TYPE AND UPPER(STATUS) = 'ACTIVE') AS FILE_CNT
|
|
,TO_CHAR(START_PDATE,'YYYY-MM-DD') AS START_PDATE
|
|
,TO_CHAR(END_PDATE,'YYYY-MM-DD') AS END_PDATE
|
|
,TO_CHAR(END_DATE,'YYYY-MM-DD') AS END_DATE
|
|
,(END_PDATE - START_PDATE)+1 AS DAY1
|
|
,END_DATE - END_PDATE AS DAY2
|
|
,APPR_CD
|
|
,REG_DATE
|
|
,FILE_TYPE
|
|
FROM PROJECT_TASK_MGMT T
|
|
WHERE T.TARGET_OBJID = #{objId}
|
|
ORDER BY ORDER_NO
|
|
</select>
|
|
|
|
<select id="getProjectTaskAverage" parameterType="map" resultType="string">
|
|
<![CDATA[
|
|
SELECT
|
|
ROUND(((Select SUM((END_PDATE - START_PDATE)+1) AS CNT FROM PROJECT_TASK_MGMT T
|
|
WHERE T.TARGET_OBJID=#{objId}
|
|
AND T.TASK_NAME!='납기일')/
|
|
(Select (END_PDATE - START_PDATE)+1 AS CNT1 FROM PROJECT_TASK_MGMT T
|
|
WHERE T.TARGET_OBJID=#{objId}
|
|
AND T.TASK_NAME='납기일'
|
|
))*100,1) || '%' AS AVERAGE
|
|
FROM DUAL
|
|
]]>
|
|
</select>
|
|
|
|
<!-- //영업활동 등록 및 저장 -->
|
|
<update id="mergeProjectTaskMgmtInfo" parameterType="map">
|
|
MERGE INTO PROJECT_TASK_MGMT USING DUAL ON (OBJID = #{objId})
|
|
WHEN MATCHED THEN
|
|
UPDATE SET
|
|
TASK_NAME = #{task_name}
|
|
,ORDER_NO=#{order_no}
|
|
,WRITER = #{user_id}
|
|
,START_PDATE = #{start_pdate}
|
|
,END_PDATE=#{end_pdate}
|
|
,END_DATE=#{end_date}
|
|
,APPR_CD=#{appr_cd}
|
|
,FILE_TYPE = #{file_type}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT (
|
|
OBJID
|
|
,TARGET_OBJID
|
|
,ORDER_NO
|
|
,TASK_NAME
|
|
,WRITER
|
|
,START_PDATE
|
|
,END_PDATE
|
|
,END_DATE
|
|
,APPR_CD
|
|
,REG_DATE
|
|
,FILE_TYPE
|
|
) VALUES (
|
|
#{objId}
|
|
,#{parentObjId}
|
|
,#{order_no}
|
|
,#{task_name}
|
|
,#{user_id}
|
|
,#{start_pdate}
|
|
,#{end_pdate}
|
|
,#{end_date}
|
|
,#{appr_cd}
|
|
,sysdate
|
|
,#{file_type}
|
|
)
|
|
</update>
|
|
<!-- //프로젝트 정보 저장-->
|
|
<!-- //영업활동 등록 및 저장 -->
|
|
<update id="updateProjectMgmt" parameterType="map">
|
|
UPDATE PROJECT_MGMT T
|
|
SET PROJECT_NO=#{project_no}
|
|
,MODEL_NAME=#{model_name}
|
|
,CNT=#{cnt}
|
|
,MANUFACTUR_COST1=#{manufactur_cost1}
|
|
,MANUFACTUR_COST2=#{manufactur_cost2}
|
|
,CONTRACT_AMOUNT=#{contract_amount}
|
|
,MANUFACTUR_SCOST=#{manufactur_scost}
|
|
WHERE T.OBJID = #{objId}
|
|
|
|
</update>
|
|
|
|
<select id="getIssueUser" parameterType="map" resultType="map">
|
|
SELECT
|
|
DISTINCT(WRITER) AS CODE
|
|
,(SELECT O.USER_NAME FROM USER_INFO O WHERE O.USER_ID=WRITER) AS NAME
|
|
,'' AS CODE_CD
|
|
,'' AS STATUS
|
|
,'' AS ID
|
|
,'' AS EXT_VAL
|
|
FROM ISSUE_MGMT T
|
|
</select>
|
|
|
|
|
|
<select id="getIssueSolUser" parameterType="map" resultType="map">
|
|
SELECT
|
|
DISTINCT(SOL_USERID) AS CODE
|
|
,(SELECT O.USER_NAME FROM USER_INFO O WHERE O.USER_ID=SOL_USERID) AS NAME
|
|
,'' AS CODE_CD
|
|
,'' AS STATUS
|
|
,'' AS ID
|
|
,'' AS EXT_VAL
|
|
FROM ISSUE_MGMT T
|
|
</select>
|
|
|
|
<!-- //TASK 삭제 -->
|
|
<delete id="deleteProjectmgmtinfo" parameterType="map">
|
|
DELETE FROM PROJECT_TASK_MGMT
|
|
WHERE OBJID IN
|
|
<foreach collection="delObjKeyarr" item="objkey" index="index" separator="," open="(" close=")">
|
|
#{objkey}
|
|
</foreach>
|
|
</delete>
|
|
|
|
|
|
<!-- 이슈 목록을 가져온다. -->
|
|
<select id="getIssueListInfo" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM
|
|
(
|
|
SELECT T.*,ROW_NUMBER() OVER (ORDER BY REG_DATE DESC) AS RNUM
|
|
FROM
|
|
(
|
|
SELECT
|
|
OBJID
|
|
,PARENT_OBJID
|
|
,ISSUE_NO
|
|
,CODE_NAME(ISU_CD) AS ISU_NAME
|
|
,ISU_CD
|
|
,PROJECT_NAME
|
|
,TITLE
|
|
,CODE_NAME(OCCU_CD) AS OCCU_NAME
|
|
,OCCU_CD
|
|
,CODE_NAME(STEP_CD) AS STEP_NAME
|
|
,STEP_CD
|
|
,CODE_NAME(CASE_CD) AS CASE_NAME
|
|
,CASE_CD
|
|
,WRITER
|
|
,USER_NAME(T.WRITER) AS WRITER_NAME
|
|
,TO_CHAR(REG_DATE,'YYYY-MM-DD') AS REG_DATE
|
|
,TO_CHAR(REQ_DATE,'YYYY-MM-DD') AS REQ_DATE
|
|
,USER_NAME(T.SOL_USERID) AS SOL_USER_NAME
|
|
,SOL_USERID
|
|
,USER_NAME(T.CUR_USERID) AS CUR_USER_NAME
|
|
,CUR_USERID
|
|
,TO_CHAR(RET_DATE,'YYYY-MM-DD') AS RET_DATE
|
|
,CUR_COST
|
|
,CUSTOMER_CD
|
|
,CODE_NAME(T.CUSTOMER_CD) AS CUSTOMER_NAME
|
|
,WPST_CD
|
|
,CASE WHEN WPST_CD='WPS00700'
|
|
THEN '등록중'
|
|
WHEN WPST_CD='WPS00800'
|
|
THEN '배포'
|
|
WHEN WPST_CD='WPS00900'
|
|
THEN '조치중'
|
|
WHEN WPST_CD='WPS01000'
|
|
THEN '결재중'
|
|
WHEN WPST_CD='WPS01100'
|
|
THEN '결재완료'
|
|
ELSE '미조치대상'
|
|
END AS WPST_NAME
|
|
, CONTENT
|
|
, RESULT
|
|
,A.APPR_STATUS AS APPROVAL_STATUS
|
|
,A.ROUTE_OBJID
|
|
,A.APPROVAL_OBJID
|
|
FROM ISSUE_MGMT AS T LEFT OUTER JOIN
|
|
(SELECT B.OBJID AS ROUTE_OBJID
|
|
,CASE WHEN B.STATUS='inProcess'
|
|
THEN '결재중'
|
|
WHEN B.STATUS='complete'
|
|
THEN '결재완료'
|
|
WHEN B.STATUS='reject'
|
|
THEN '반려'
|
|
END AS 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) AS T,ROUTE AS 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 = 'ISSUE_RELEASE'
|
|
) AS A
|
|
ON A.TARGET_OBJID = T.OBJID
|
|
WHERE 1=1
|
|
<if test="year != null and year != '' ">
|
|
AND TO_CHAR(T.REG_DATE,'YYYY') = #{year}
|
|
</if>
|
|
<if test="projectNo !=null and projectNo != '' ">
|
|
AND T.PARENT_OBJID = #{projectNo}
|
|
</if>
|
|
<if test="writer != null and writer !='' ">
|
|
AND T.WRITER = #{writer}
|
|
</if>
|
|
|
|
<if test="title != null and title !='' ">
|
|
AND UPPER(T.TITLE) LIKE UPPER('%${title}%')
|
|
</if>
|
|
|
|
<if test="isu_cd != null and isu_cd != '' ">
|
|
AND T.ISU_CD = #{isu_cd}
|
|
</if>
|
|
|
|
<if test="occu_cd != null and occu_cd != '' ">
|
|
AND T.OCCU_CD = #{occu_cd}
|
|
</if>
|
|
|
|
<if test="step_cd != null and step_cd != '' ">
|
|
AND T.STEP_CD = #{step_cd}
|
|
</if>
|
|
|
|
<if test="case_cd != null and case_cd != '' ">
|
|
AND T.CASE_CD = #{case_cd}
|
|
</if>
|
|
|
|
<if test="wpst_cd != null and wpst_cd != '' ">
|
|
AND T.WPST_CD = #{wpst_cd}
|
|
</if>
|
|
|
|
<if test="project_code != null and project_code !='' ">
|
|
AND T.PARENT_OBJID = #{project_code}::integer
|
|
</if>
|
|
|
|
<if test="sol_userid != null and sol_userid !='' ">
|
|
AND T.SOL_USERID = #{sol_userid}
|
|
</if>
|
|
|
|
<if test="customer_cd != null and customer_cd !='' ">
|
|
AND T.CUSTOMER_CD = #{customer_cd}
|
|
</if>
|
|
|
|
) AS T
|
|
ORDER BY T.ISSUE_NO DESC NULLS LAST, T.REG_DATE DESC
|
|
) AS TT
|
|
WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END != '' and actionType != 'excel'">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END}::integer ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_START != '' and actionType != 'excel'">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START}::integer ]]>
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 프로젝트 목록을 가져온다. -->
|
|
<select id="getIssueListInfoCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(CAST(TOTAL_CNT AS FLOAT)/#{COUNT_PER_PAGE})::numeric::integer as MAX_PAGE_SIZE,
|
|
TOTAL_CNT
|
|
FROM (
|
|
SELECT
|
|
COUNT(1) TOTAL_CNT
|
|
FROM(
|
|
SELECT
|
|
OBJID
|
|
,PARENT_OBJID
|
|
,ISSUE_NO
|
|
,CODE_NAME(ISU_CD) AS ISU_NAME
|
|
,ISU_CD
|
|
,PROJECT_NAME
|
|
,TITLE
|
|
,CODE_NAME(OCCU_CD) AS OCCU_NAME
|
|
,OCCU_CD
|
|
,CODE_NAME(STEP_CD) AS STEP_NAME
|
|
,STEP_CD
|
|
,CODE_NAME(CASE_CD) AS CASE_NAME
|
|
,CASE_CD
|
|
,WRITER
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = T.WRITER) AS WRITER_NAME
|
|
,TO_CHAR(REG_DATE,'YYYY-MM-DD') AS REG_DATE
|
|
,TO_CHAR(REQ_DATE,'YYYY-MM-DD') AS REQ_DATE
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = T.SOL_USERID) AS SOL_USER_NAME
|
|
,SOL_USERID
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = T.CUR_USERID) AS CUR_USER_NAME
|
|
,CUR_USERID
|
|
,TO_CHAR(RET_DATE,'YYYY-MM-DD') AS RET_DATE
|
|
,CUR_COST
|
|
,WPST_CD
|
|
,CODE_NAME(WPST_CD) AS WPST_NAME
|
|
FROM ISSUE_MGMT AS T
|
|
WHERE 1=1
|
|
|
|
<if test="year != null and year != '' ">
|
|
AND TO_CHAR(T.REG_DATE,'YYYY') = #{year}
|
|
</if>
|
|
|
|
<if test="writer != null and writer !='' ">
|
|
AND T.WRITER = #{writer}
|
|
</if>
|
|
|
|
<if test="title != null and title !='' ">
|
|
AND UPPER(T.TITLE) LIKE UPPER('%${title}%')
|
|
</if>
|
|
|
|
<if test="isu_cd != null and isu_cd != '' ">
|
|
AND T.ISU_CD = #{isu_cd}
|
|
</if>
|
|
|
|
<if test="occu_cd != null and occu_cd != '' ">
|
|
AND T.OCCU_CD = #{occu_cd}
|
|
</if>
|
|
|
|
<if test="step_cd != null and step_cd != '' ">
|
|
AND T.STEP_CD = #{step_cd}
|
|
</if>
|
|
|
|
<if test="case_cd != null and case_cd != '' ">
|
|
AND T.CASE_CD = #{case_cd}
|
|
</if>
|
|
|
|
<if test="wpst_cd != null and wpst_cd != '' ">
|
|
AND T.WPST_CD = #{wpst_cd}
|
|
</if>
|
|
|
|
|
|
<if test="project_code != null and project_code !='' ">
|
|
AND T.PARENT_OBJID = #{project_code}::integer
|
|
</if>
|
|
|
|
<if test="sol_userid != null and sol_userid !='' ">
|
|
AND T.SOL_USERID = #{sol_userid}
|
|
</if>
|
|
|
|
<if test="customer_cd != null and customer_cd !='' ">
|
|
AND T.CUSTOMER_CD = #{customer_cd}
|
|
</if>
|
|
) AS TT
|
|
) AS TTT
|
|
</select>
|
|
|
|
|
|
<select id="getProjectCustomer" parameterType="map" resultType="map">
|
|
SELECT
|
|
CUSTOMER_CD AS CODE
|
|
,CODE_NAME(CUSTOMER_CD) AS NAME
|
|
,'' AS CODE_CD
|
|
,'' AS STATUS
|
|
,'' AS ID
|
|
,'' AS EXT_VAL
|
|
FROM PROJECT_MGMT T
|
|
GROUP BY CUSTOMER_CD, CODE_NAME(CUSTOMER_CD)
|
|
</select>
|
|
|
|
<select id="getProjectName" parameterType="map" resultType="map">
|
|
SELECT
|
|
TO_CHAR(PROJECT_MGMT_OBJID) AS CODE
|
|
,PROJECT_TITLE AS NAME
|
|
,'' AS CODE_CD
|
|
,'' AS STATUS
|
|
,'' AS ID
|
|
,'' AS EXT_VAL
|
|
FROM PROJECT_MGMT
|
|
WHERE CUSTOMER_CD=#{code}
|
|
</select>
|
|
|
|
<select id="getProjectNo" parameterType="map" resultType="map">
|
|
SELECT
|
|
<!-- TO_CHAR(B.PROJECT_MGMT_OBJID) AS CODE -->
|
|
TO_CHAR(A.ORDER_MGMT_OBJID) AS CODE
|
|
,A.PROJECT_NO AS NAME
|
|
,'' AS CODE_CD
|
|
,'' AS STATUS
|
|
,'' AS ID
|
|
,'' AS EXT_VAL
|
|
FROM ORDER_MGMT A, PROJECT_MGMT B
|
|
WHERE A.ORDER_MGMT_OBJID = B.ORDER_MGMT_OBJID
|
|
AND B.CUSTOMER_CD=#{code}
|
|
ORDER BY A.PROJECT_NO DESC
|
|
</select>
|
|
<!-- //msryu end -->
|
|
<!-- ********************************************************************************************************** -->
|
|
|
|
<!-- 프로젝트 PM 권한을 위한 search -->
|
|
<select id="getProjectPmAuth" parameterType="map" resultType="map">
|
|
SELECT MANAGER_PM
|
|
FROM PROJECT_MGMT
|
|
WHERE PROJECT_MGMT_OBJID = #{objId}::integer
|
|
AND MANAGER_PM = #{writer}
|
|
</select>
|
|
|
|
<!-- WBS Task를 확정한다. -->
|
|
<update id="completeProjectWBSTask" parameterType="map">
|
|
UPDATE PMS_WBS_TASK
|
|
SET STATUS = 'COMPLETE'
|
|
WHERE OBJID = #{objId}
|
|
</update>
|
|
|
|
<!-- project를 삭제한다. -->
|
|
<delete id="deleteProjectmgmt" parameterType="map">
|
|
DELETE FROM PROJECT_MGMT
|
|
WHERE order_mgmt_objid = #{objId}::integer
|
|
</delete>
|
|
|
|
<!-- WBS Task를 삭제한다. -->
|
|
<delete id="deleteProjectTaskmgmt" parameterType="map">
|
|
DELETE FROM PMS_WBS_TASK
|
|
WHERE target_objid = (select project_mgmt_objid from project_mgmt as o where o.order_mgmt_objid=#{objId}::integer)
|
|
</delete>
|
|
|
|
<!-- WBS TASK 상태 변경 -->
|
|
<update id="changewbsstatus" parameterType="map">
|
|
UPDATE PMS_WBS_TASK
|
|
SET STATUS = #{status}
|
|
WHERE TARGET_OBJID = #{objId}::integer
|
|
</update>
|
|
|
|
<!-- 프로젝트 갯수구함 -->
|
|
<select id="getProjectProductListCnt" 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.OBJID AS CONCEPT_OBJID
|
|
, 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
|
|
<!-- , B.OBJID AS CONCEPT_PROD_OBJID -->
|
|
<!-- , B.PROD_OBJID -->
|
|
, (SELECT PG.CODE_NAME FROM COMM_CODE PG WHERE PG.CODE_ID = B.parent_code_id) AS PRODUCT_GROUP_NAME
|
|
, (SELECT PG.CODE_ID FROM COMM_CODE PG WHERE PG.CODE_ID = B.parent_code_id) AS PRODUCT_GROUP_OBJID
|
|
<!--, (SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = B.PROD_OBJID) AS PROD_NAME-->
|
|
, B.ESTIMATE_NO
|
|
, 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
|
|
, B.ESTIMATE_PIC AS ESTIMATE_PIC_USER_ID
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = B.ESTIMATE_PIC) AS ESTIMATE_PIC_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = B.ESTIMATE_PIC) AS ESTIMATE_PIC_USER_NAME
|
|
, A.YEARLY_AVG_PRODUCTION_CNT
|
|
, A.TOTAL_PRODUCTION_CNT
|
|
, B.BIDDING_RESULT
|
|
, case B.BIDDING_RESULT when 'Y' then '수주성공'
|
|
when 'N' then '수주실패'
|
|
else B.BIDDING_RESULT
|
|
end BIDDING_RESULT_NAME
|
|
, 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 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
|
|
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
|
|
<if test="search_req_yearly !=null and search_req_yearly != '' ">
|
|
AND TO_CHAR(ESTIMATE_REQ_DATE, 'YYYY') = #{search_req_yearly}
|
|
</if>
|
|
<if test="search_submit_yearly !=null and search_submit_yearly != '' ">
|
|
AND TO_CHAR(ESTIMATE_SUBMIT_DATE, 'YYYY') = #{search_submit_yearly}
|
|
</if>
|
|
<if test="search_region != null and search_region !='' ">
|
|
AND FOREIGN_TYPE = #{search_region}
|
|
</if>
|
|
|
|
<if test="search_projectType != null and search_projectType !='' ">
|
|
AND PJT_TYPE = #{search_projectType}
|
|
</if>
|
|
|
|
<if test="search_oem !=null and search_oem !=''">
|
|
AND A.OEM_OBJID = #{search_oem}::numeric
|
|
</if>
|
|
<if test="search_carType != null and search_carType != ''">
|
|
AND A.CAR_OBJID = #{search_carType}::numeric
|
|
</if>
|
|
<if test="search_productGroup != null and search_productGroup != '' ">
|
|
AND A.PRODUCT_GROUP_TYPE = #{search_productGroup}::numeric
|
|
</if>
|
|
<if test="search_productType != null and search_productType !=''">
|
|
AND B.PROD_OBJID = #{search_productType}::numeric
|
|
</if>
|
|
<if test="search_writer != null and search_writer != '' ">
|
|
AND B.ESTIMATE_PIC IN (SELECT USER_ID FROM USER_INFO WHERE UPPER(USER_NAME) LIKE UPPER('%${search_writer}%'))
|
|
</if>
|
|
<if test="search_dept != null and search_dept != '' ">
|
|
AND B.ESTIMATE_PIC IN (SELECT USER_ID FROM USER_INFO WHERE UPPER(DEPT_NAME) LIKE UPPER('%${search_dept}%'))
|
|
</if>
|
|
<if test="search_status !=null and search_status !='' ">
|
|
AND B.STATUS = #{search_status}
|
|
</if>
|
|
<if test="search_bidding !=null and search_bidding !=''">
|
|
<if test='search_bidding == "Y" '>
|
|
AND A.STATUS = (select objid from comm_code where parent_code_id = '0005154' and code_name = '수주')
|
|
</if>
|
|
<if test='search_bidding == "N" '>
|
|
AND A.STATUS IN (select objid from comm_code where parent_code_id = '0005154' and code_name != '수주')
|
|
</if>
|
|
</if>
|
|
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 , B.BIDDING_RESULT ,B.IS_DEL,
|
|
B.WRITER, B.status
|
|
) PMS_PJT_CONCEPT_INFO
|
|
WHERE 1=1
|
|
<if test="search_fromDate != null and !''.equals(search_fromDate)">
|
|
AND ESTIMATE_SUBMIT_DATE <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and !''.equals(search_toDate)">
|
|
AND ESTIMATE_SUBMIT_DATE <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
) T1 WHERE 1=1
|
|
</select>
|
|
|
|
<!-- //수주활동 제품별 목록 구성 -->
|
|
<select id="getProjectProductList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM (
|
|
SELECT PJT_CONCEPT_INFO.*,ROW_NUMBER() OVER (ORDER BY ESTIMATE_REQ_DATE_ORG DESC NULLS LAST) AS RNUM
|
|
FROM(
|
|
SELECT
|
|
PMS_PJT_CONCEPT_INFO.*,
|
|
PMS_PJT_WBS_INFO.WBS_TASK_RATIO
|
|
FROM(
|
|
SELECT A.OBJID AS CONCEPT_OBJID
|
|
, 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
|
|
<!-- , B.OBJID AS CONCEPT_PROD_OBJID -->
|
|
, count(B.TARGET_OBJID) AS CONCEPT_PROD_CNT
|
|
<!--, B.PROD_OBJID-->
|
|
, ( 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
|
|
<!--, (SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = B.PROD_OBJID) AS PROD_NAME -->
|
|
, B.ESTIMATE_NO
|
|
, 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
|
|
<!-- , B.REGDATE REGDATE_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
|
|
<if test="search_req_yearly !=null and search_req_yearly != '' ">
|
|
AND TO_CHAR(ESTIMATE_REQ_DATE, 'YYYY') = #{search_req_yearly}
|
|
</if>
|
|
<if test="search_submit_yearly !=null and search_submit_yearly != '' ">
|
|
AND TO_CHAR(ESTIMATE_SUBMIT_DATE, 'YYYY') = #{search_submit_yearly}
|
|
</if>
|
|
<if test="search_region != null and search_region !='' ">
|
|
AND FOREIGN_TYPE = #{search_region}
|
|
</if>
|
|
|
|
<if test="search_projectType != null and search_projectType !='' ">
|
|
AND PJT_TYPE = #{search_projectType}
|
|
</if>
|
|
|
|
<if test="search_oem !=null and search_oem !=''">
|
|
AND A.OEM_OBJID = #{search_oem}::numeric
|
|
</if>
|
|
<if test="search_carType != null and search_carType != ''">
|
|
AND A.CAR_OBJID = #{search_carType}::numeric
|
|
</if>
|
|
<if test="search_productGroup != null and search_productGroup != '' ">
|
|
AND A.PRODUCT_GROUP_TYPE = #{search_productGroup}::numeric
|
|
</if>
|
|
<if test="search_productType != null and search_productType !=''">
|
|
AND B.PROD_OBJID = #{search_productType}::numeric
|
|
</if>
|
|
<if test="search_writer != null and search_writer != '' ">
|
|
AND B.ESTIMATE_PIC IN (SELECT USER_ID FROM USER_INFO WHERE UPPER(USER_NAME) LIKE UPPER('%${search_writer}%'))
|
|
</if>
|
|
<if test="search_dept != null and search_dept != '' ">
|
|
AND B.ESTIMATE_PIC IN (SELECT USER_ID FROM USER_INFO WHERE UPPER(DEPT_NAME) LIKE UPPER('%${search_dept}%'))
|
|
</if>
|
|
<if test="search_status !=null and search_status !='' ">
|
|
AND B.STATUS = #{search_status}
|
|
</if>
|
|
<if test="search_bidding !=null and search_bidding !=''">
|
|
AND A.STATUS = #{search_bidding}::numeric
|
|
</if>
|
|
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
|
|
WHERE 1=1
|
|
<if test="search_fromDate != null and !''.equals(search_fromDate)">
|
|
AND ESTIMATE_SUBMIT_DATE <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="search_toDate != null and !''.equals(search_toDate)">
|
|
AND ESTIMATE_SUBMIT_DATE <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
) PJT_CONCEPT_INFO
|
|
WHERE 1=1
|
|
) T1 WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END !='' and actionType != 'excel' ">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END}::integer ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_STRART!='' and actionType != 'excel' ">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START}::integer ]]>
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 해당 프로젝트의 WBS Task 목록을 가져온다. -->
|
|
<select id="getProjectWBSTaskList" parameterType="map" resultType="map">
|
|
SELECT
|
|
ROW_NUMBER() OVER(ORDER BY TASK_SEQ::INTEGER) AS RNUM,
|
|
OBJID,
|
|
TARGET_OBJID,
|
|
TASK_STEP,
|
|
TASK_NAME,
|
|
TASK_SEQ,
|
|
DEPT_CODE AS DEPT_CODE,
|
|
(SELECT DEPT_NAME FROM DEPT_INFO DI WHERE 1=1 AND DI.DEPT_CODE = PWTI.DEPT_CODE) AS DEPT_NAME,
|
|
MANAGER_USER_ID,
|
|
(SELECT USER_NAME FROM USER_INFO UI WHERE 1=1 AND UI.USER_ID = PWTI.MANAGER_USER_ID) AS MANAGER_USER_NAME,
|
|
TASK_PERFORM_DAY,
|
|
PLAN_START_DATE,
|
|
PLAN_END_DATE,
|
|
RESULT_START_DATE,
|
|
RESULT_END_DATE,
|
|
CASE
|
|
WHEN (PLAN_END_DATE != '' AND PLAN_END_DATE IS NOT NULL) AND (RESULT_END_DATE != '' AND RESULT_END_DATE IS NOT NULL)
|
|
THEN TO_DATE(RESULT_END_DATE,'YYYY-MM-DD')-TO_DATE(PLAN_END_DATE,'YYYY-MM-DD')
|
|
WHEN (PLAN_END_DATE != '' AND PLAN_END_DATE IS NOT NULL) AND (RESULT_END_DATE = '' OR RESULT_END_DATE IS NULL)
|
|
THEN (TO_DATE(TO_CHAR(NOW(),'YYYY-MM-DD'),'YYYY-MM-DD'))-TO_DATE(PLAN_END_DATE, 'YYYY-MM-DD')
|
|
ELSE 0
|
|
END TASK_DELAY_DAY,
|
|
EXPECTED_POINT,
|
|
STANDARD_DOC_NAME,
|
|
TASK_STATUS,
|
|
PM_USER_ID,
|
|
(SELECT USER_NAME FROM USER_INFO UI WHERE 1=1 AND UI.USER_ID = PWTI.PM_USER_ID) AS PM_USER_NAME,
|
|
PM_CONFIRM_STATUS,
|
|
PM_CONFIRM_DATE,
|
|
(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = PWTI.OBJID AND DOC_TYPE='WBS_RESULT_FILE' AND UPPER(STATUS) = 'ACTIVE') AS RESULT_FILE_CNT,
|
|
REMARK,
|
|
WRITER,
|
|
REG_DATE,
|
|
UPDATE_DATE
|
|
FROM
|
|
PMS_WBS_TASK_INFO PWTI
|
|
WHERE TARGET_OBJID = #{OBJID}
|
|
</select>
|
|
|
|
<update id="mergeProjectWBSTask" parameterType="map">
|
|
UPDATE PMS_WBS_TASK_INFO
|
|
SET
|
|
DEPT_CODE = #{DEPT_CODE},
|
|
MANAGER_USER_ID = #{MANAGER_USER_ID},
|
|
TASK_PERFORM_DAY = #{TASK_PERFORM_DAY},
|
|
PLAN_START_DATE = #{PLAN_START_DATE},
|
|
PLAN_END_DATE = #{PLAN_END_DATE},
|
|
RESULT_START_DATE = #{RESULT_START_DATE},
|
|
RESULT_END_DATE = #{RESULT_END_DATE},
|
|
EXPECTED_POINT = #{EXPECTED_POINT},
|
|
<!-- TASK_STATUS = '', -->
|
|
<!-- PM_USER_ID, -->
|
|
PM_CONFIRM_STATUS = #{PM_CONFIRM_STATUS},
|
|
<!-- PM_CONFIRM_DATE, -->
|
|
REMARK = #{REMARK},
|
|
WRITER = #{WRITER},
|
|
UPDATE_DATE = NOW()
|
|
WHERE OBJID = #{OBJID}
|
|
AND TARGET_OBJID = #{TARGET_OBJID}
|
|
</update>
|
|
|
|
<update id="mergeInvestCostMng" parameterType="map">
|
|
|
|
with upsert as (
|
|
UPDATE
|
|
PMS_INVEST_COST_MNG
|
|
SET
|
|
STATUS=#{addStatus}
|
|
where
|
|
OBJID = #{OBJID}::numeric
|
|
)
|
|
|
|
INSERT INTO PMS_INVEST_COST_MNG(
|
|
OBJID
|
|
, SEQ
|
|
, TITLE
|
|
, DRAFTER
|
|
, DUEDATE
|
|
, AMOUNT
|
|
, STATUS
|
|
, TARGET_OBJID
|
|
, REGDATE
|
|
)
|
|
select
|
|
#{OBJID}::numeric
|
|
, #{addSeq}
|
|
, #{addTitle}
|
|
, #{addDrafter}
|
|
, TO_DATE(#{addDueDate}, 'YYYY-MM-DD')
|
|
, #{addAmount}::numeric
|
|
, #{addStatus}
|
|
, #{targetObjId}::numeric
|
|
, now()
|
|
|
|
where not exists (
|
|
select
|
|
*
|
|
from PMS_INVEST_COST_MNG
|
|
where OBJID = #{OBJID}::numeric
|
|
)
|
|
</update>
|
|
|
|
<!-- 해당 프로젝트의 WBS Task 목록을 가져온다. -->
|
|
<select id="investCostMngList" parameterType="map" resultType="map">
|
|
select
|
|
A.OBJID
|
|
, ROW_NUMBER() OVER (ORDER BY REGDATE DESC) AS SEQ
|
|
, A.TITLE
|
|
, A.DRAFTER
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = A.DRAFTER) AS DRAFTER_NAME
|
|
, A.DUEDATE
|
|
, A.AMOUNT
|
|
, A.STATUS
|
|
, (SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = A.OBJID AND DOC_TYPE='PJT_INVEST_COST_ATTACH' AND UPPER(STATUS) = 'ACTIVE') AS INVEST_FILE_CNT
|
|
from PMS_INVEST_COST_MNG A
|
|
WHERE 1=1
|
|
<if test="targetObjId != null and targetObjId != '' ">
|
|
AND TARGET_OBJID = #{targetObjId}::numeric
|
|
ORDER BY REGDATE DESC
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 프로젝트에 해당하는 품목 중 삭제된 품목의 연결을 해제한다. -->
|
|
<delete id="deleteInvestCostMng" parameterType="map">
|
|
DELETE FROM PMS_INVEST_COST_MNG
|
|
WHERE OBJID = #{objId}::numeric
|
|
</delete>
|
|
|
|
|
|
<!-- WBS 템플릿 갯수구함 -->
|
|
<select id="getWBSTemplateMngListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(CAST(TOTAL_CNT AS FLOAT)/#{COUNT_PER_PAGE})::numeric::integer as MAX_PAGE_SIZE
|
|
,TOTAL_CNT::integer
|
|
FROM (
|
|
SELECT COUNT(1)::float TOTAL_CNT
|
|
FROM(
|
|
SELECT T.OBJID
|
|
FROM PMS_WBS_TEMPLATE AS T
|
|
|
|
<if test="product != null and product !='' ">
|
|
WHERE T.PRODUCT_OBJID = #{product}
|
|
</if>
|
|
) AS T
|
|
|
|
)AS T
|
|
WHERE 1=1
|
|
</select>
|
|
|
|
|
|
<select id="getWBSTemplateMngList" parameterType="map" resultType="map">
|
|
SELECT
|
|
ROW_NUMBER() OVER (ORDER BY REG_DATE DESC NULLS LAST) AS RNUM,
|
|
OBJID,
|
|
PRODUCT_OBJID,
|
|
CODE_NAME(PRODUCT_OBJID) AS PRODUCT_NAME,
|
|
TITLE,
|
|
WRITER,
|
|
(SELECT DEPT_NAME || USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_TITLE,
|
|
REG_DATE,
|
|
TO_CHAR(REG_DATE,'YYYY-MM-DD') AS REG_DATE_TITLE,
|
|
(SELECT COUNT(1) FROM PMS_WBS_TASK_STANDARD PWTS WHERE PWTS.PARENT_OBJID = OBJID) AS WBS_TASK_CNT,
|
|
CUSTOMER_PRODUCT
|
|
FROM PMS_WBS_TEMPLATE
|
|
WHERE 1=1
|
|
|
|
<if test="product != null and product !='' ">
|
|
AND PRODUCT_OBJID = #{product}
|
|
</if>
|
|
|
|
<if test="objid != null and objid !='' ">
|
|
AND OBJID = #{objid}
|
|
</if>
|
|
</select>
|
|
|
|
<select id="wbsTemplateMngGridList" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID,
|
|
PRODUCT_OBJID,
|
|
CODE_NAME(PRODUCT_OBJID) AS PRODUCT_NAME,
|
|
TITLE,
|
|
WRITER,
|
|
(SELECT DEPT_NAME || USER_NAME FROM USER_INFO WHERE USER_ID = WRITER) AS WRITER_TITLE,
|
|
REG_DATE,
|
|
TO_CHAR(REG_DATE,'YYYY-MM-DD') AS REG_DATE_TITLE,
|
|
(SELECT COUNT(1) FROM PMS_WBS_TASK_STANDARD PWTS WHERE PWTS.PARENT_OBJID = OBJID) AS WBS_TASK_CNT,
|
|
CUSTOMER_PRODUCT
|
|
FROM PMS_WBS_TEMPLATE
|
|
WHERE 1=1
|
|
|
|
<if test="product != null and product !='' ">
|
|
AND PRODUCT_OBJID = #{product}
|
|
</if>
|
|
|
|
<if test="objid != null and objid !='' ">
|
|
AND OBJID = #{objid}
|
|
</if>
|
|
</select>
|
|
|
|
<select id="getWBSTemplateProductList" parameterType="map" resultType="map">
|
|
SELECT
|
|
*
|
|
FROM
|
|
PMS_WBS_TEMPLATE AS T
|
|
LEFT OUTER JOIN PMS_WBS_TASK_STANDARD AS T1
|
|
ON T.OBJID = T1.PARENT_OBJID
|
|
WHERE T.PRODUCT_OBJID = #{PRODUCT}
|
|
AND T.TITLE = #{TITLE}
|
|
</select>
|
|
|
|
<insert id="saveWBSTaskTemp" parameterType="map">
|
|
INSERT INTO
|
|
PMS_WBS_TEMPLATE
|
|
(
|
|
OBJID
|
|
,PRODUCT_OBJID
|
|
,TITLE
|
|
,CUSTOMER_PRODUCT
|
|
,WRITER
|
|
,REG_DATE
|
|
)
|
|
VALUES (
|
|
#{objid}
|
|
,#{product}
|
|
,#{title}
|
|
,#{customer_product}
|
|
,#{writer}
|
|
,now()
|
|
)
|
|
</insert>
|
|
|
|
|
|
<insert id="saveWBSTemplateTaskInfo" parameterType="map">
|
|
INSERT INTO PMS_WBS_TASK_STANDARD (
|
|
OBJID
|
|
,PARENT_OBJID
|
|
,TASK_NAME
|
|
,TASK_SEQ
|
|
,USER_ID
|
|
,WRITER
|
|
,REG_DATE
|
|
,UNIT_NO
|
|
) VALUES (
|
|
#{objid}
|
|
,#{parent_objid}
|
|
,#{task_name}
|
|
,#{task_seq}
|
|
,#{user_id}
|
|
,#{writer}
|
|
,now()
|
|
,#{unit_no}
|
|
) ON
|
|
CONFLICT (OBJID) DO
|
|
UPDATE SET
|
|
TASK_NAME = #{task_name}
|
|
,TASK_SEQ = #{task_seq}
|
|
,USER_ID = #{user_id}
|
|
,UNIT_NO = #{unit_no}
|
|
</insert>
|
|
|
|
|
|
<select id="getWBSTemplateMasterInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID
|
|
,PRODUCT_OBJID
|
|
,CODE_NAME(PRODUCT_OBJID) AS PRODUCT_OBJID_NAME
|
|
,TITLE
|
|
,WRITER
|
|
,REG_DATE
|
|
,CUSTOMER_PRODUCT
|
|
FROM PMS_WBS_TEMPLATE AS T
|
|
WHERE OBJID = #{OBJID}
|
|
</select>
|
|
|
|
|
|
<select id="getWBSTemplateTaskList" parameterType="map" resultType="map">
|
|
SELECT
|
|
T.OBJID
|
|
,T.PARENT_OBJID
|
|
,T.TASK_NAME
|
|
,T.TASK_SEQ
|
|
,T.USER_ID
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = T.USER_ID) AS USER_ID_TITLE
|
|
,T.WRITER
|
|
,T.REG_DATE
|
|
,T.UNIT_NO
|
|
FROM PMS_WBS_TASK_STANDARD AS T
|
|
WHERE T.PARENT_OBJID = #{OBJID}
|
|
ORDER BY UNIT_NO
|
|
</select>
|
|
|
|
|
|
<select id="getWBSTemplateTaskInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
T.OBJID
|
|
,T.PARENT_OBJID
|
|
,T.TASK_NAME
|
|
,T.TASK_SEQ
|
|
,T.USER_ID
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = T.USER_ID) AS USER_ID_TITLE
|
|
,T.WRITER
|
|
,T.REG_DATE
|
|
,T.UNIT_NO
|
|
FROM PMS_WBS_TASK_STANDARD AS T
|
|
WHERE 1=1
|
|
<if test="OBJID !=null and OBJID !=''">
|
|
AND OBJID = #{OBJID}
|
|
</if>
|
|
|
|
<if test="OBJID_NE !=null and OBJID_NE !=''">
|
|
AND OBJID != #{OBJID_NE}
|
|
</if>
|
|
<if test="PARENT_OBJID !=null and PARENT_OBJID !=''">
|
|
AND PARENT_OBJID = #{PARENT_OBJID}
|
|
</if>
|
|
<if test="TASK_NAME !=null and TASK_NAME !=''">
|
|
AND TRIM(UPPER(TASK_NAME)) = TRIM(UPPER(#{TASK_NAME}))
|
|
</if>
|
|
<if test="UNIT_NO !=null and UNIT_NO !=''">
|
|
AND TRIM(UPPER(UNIT_NO)) = TRIM(UPPER(#{UNIT_NO}))
|
|
</if>
|
|
</select>
|
|
|
|
<delete id="deleteWBSTemplateTask" parameterType="map">
|
|
DELETE FROM PMS_WBS_TASK_STANDARD
|
|
WHERE OBJID IN
|
|
<foreach collection="checkArr" item="objkey" index="index" separator="," open="(" close=")">
|
|
#{objkey}
|
|
</foreach>
|
|
</delete>
|
|
|
|
|
|
<update id="saveWBSTemplateMasterInfo" parameterType="map">
|
|
UPDATE PMS_WBS_TEMPLATE
|
|
SET CUSTOMER_PRODUCT = #{customer_product}
|
|
WHERE OBJID = #{OBJID}
|
|
</update>
|
|
|
|
<delete id="deleteWBSTemplateMaster" parameterType="map">
|
|
DELETE FROM PMS_WBS_TEMPLATE
|
|
WHERE OBJID IN
|
|
<foreach collection="checkArr" item="objkey" index="index" separator="," open="(" close=")">
|
|
#{objkey}
|
|
</foreach>
|
|
</delete>
|
|
|
|
<delete id="deleteWBSTemplateMasterTask" parameterType="map">
|
|
DELETE FROM PMS_WBS_TASK_STANDARD
|
|
WHERE PARENT_OBJID IN
|
|
<foreach collection="checkArr" item="objkey" index="index" separator="," open="(" close=")">
|
|
#{objkey}
|
|
</foreach>
|
|
</delete>
|
|
|
|
|
|
<insert id="saveWBSTaskInfo" parameterType="map">
|
|
INSERT INTO PMS_WBS_TASK (
|
|
OBJID
|
|
,CONTRACT_OBJID
|
|
,PARENT_OBJID
|
|
,TASK_NAME
|
|
,TASK_SEQ
|
|
,WRITER
|
|
,UNIT_NO
|
|
) VALUES (
|
|
#{objid}
|
|
,#{parent_objid}
|
|
,''
|
|
,#{task_name}
|
|
,#{task_seq}
|
|
,#{writer}
|
|
,#{unit_no}
|
|
) ON
|
|
CONFLICT (OBJID) DO
|
|
UPDATE SET
|
|
TASK_NAME = #{task_name}
|
|
,TASK_SEQ = #{task_seq}
|
|
,UNIT_NO = #{unit_no}
|
|
</insert>
|
|
<select id="getWBSTaskInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
T.OBJID
|
|
,T.CONTRACT_OBJID
|
|
,T.PARENT_OBJID
|
|
,T.TASK_NAME
|
|
,T.TASK_SEQ
|
|
,T.WRITER
|
|
,T.UNIT_NO
|
|
FROM PMS_WBS_TASK AS T
|
|
WHERE 1=1
|
|
<if test="OBJID !=null and OBJID !=''">
|
|
AND OBJID = #{OBJID}
|
|
</if>
|
|
|
|
<if test="OBJID_NE !=null and OBJID_NE !=''">
|
|
AND OBJID != #{OBJID_NE}
|
|
</if>
|
|
<if test="CONTRACT_OBJID !=null and CONTRACT_OBJID !=''">
|
|
AND CONTRACT_OBJID = #{CONTRACT_OBJID}
|
|
</if>
|
|
<if test="PARENT_OBJID !=null and PARENT_OBJID !=''">
|
|
AND PARENT_OBJID = #{PARENT_OBJID}
|
|
</if>
|
|
<if test="TASK_NAME !=null and TASK_NAME !=''">
|
|
AND TRIM(UPPER(TASK_NAME)) = TRIM(UPPER(#{TASK_NAME}))
|
|
</if>
|
|
<if test="UNIT_NO !=null and UNIT_NO !=''">
|
|
AND TRIM(UPPER(UNIT_NO)) = TRIM(UPPER(#{UNIT_NO}))
|
|
</if>
|
|
</select>
|
|
|
|
<delete id="deleteWBSTask" parameterType="map">
|
|
DELETE FROM PMS_WBS_TASK
|
|
WHERE OBJID IN
|
|
<foreach collection="checkArr" item="objkey" index="index" separator="," open="(" close=")">
|
|
#{objkey}
|
|
</foreach>
|
|
</delete>
|
|
|
|
<delete id="deleteSetupWBSTask" parameterType="map">
|
|
DELETE FROM SETUP_WBS_TASK
|
|
WHERE OBJID IN
|
|
<foreach collection="checkArr" item="objkey" index="index" separator="," open="(" close=")">
|
|
#{objkey}
|
|
</foreach>
|
|
</delete>
|
|
|
|
<delete id="deleteInspection" parameterType="map">
|
|
DELETE FROM INSPECTION_MGMT
|
|
WHERE OBJID IN
|
|
<foreach collection="checkArr" item="objkey" index="index" separator="," open="(" close=")">
|
|
#{objkey}
|
|
</foreach>
|
|
</delete>
|
|
|
|
<insert id="saveSetupWBSTaskInfo" parameterType="map">
|
|
INSERT INTO SETUP_WBS_TASK (
|
|
OBJID
|
|
,CONTRACT_OBJID
|
|
,PARENT_OBJID
|
|
,TASK_NAME
|
|
,TASK_SEQ
|
|
,WRITER
|
|
,REGDATE
|
|
) VALUES (
|
|
#{objid}
|
|
,#{CONTRACT_OBJID}
|
|
,#{PARENT_OBJID}
|
|
,#{task_name}
|
|
,#{task_seq}
|
|
,#{writer}
|
|
,NOW()
|
|
) ON
|
|
CONFLICT (OBJID) DO
|
|
UPDATE SET
|
|
TASK_NAME = #{task_name}
|
|
,TASK_SEQ = #{task_seq}
|
|
</insert>
|
|
|
|
<update id="updateSetupWBSTaskListSeq" parameterType="map">
|
|
UPDATE SETUP_WBS_TASK
|
|
SET TASK_SEQ = (COALESCE(TASK_SEQ,'0')::NUMERIC + 1)
|
|
WHERE CONTRACT_OBJID = #{CONTRACT_OBJID}
|
|
AND PARENT_OBJID = #{PARENT_OBJID}
|
|
AND TASK_SEQ::NUMERIC >= #{task_seq}::NUMERIC
|
|
</update>
|
|
|
|
<select id="getSetupWBSTaskInfo" parameterType="map" resultType="com.pms.common.UpperKeyMap">
|
|
SELECT
|
|
T.OBJID
|
|
,T.PARENT_OBJID
|
|
,T.TASK_NAME
|
|
,T.TASK_SEQ
|
|
,T.WRITER
|
|
FROM SETUP_WBS_TASK AS T
|
|
WHERE 1=1
|
|
<if test="OBJID !=null and OBJID !=''">
|
|
AND OBJID = #{OBJID}
|
|
</if>
|
|
|
|
<if test="OBJID_NE !=null and OBJID_NE !=''">
|
|
AND OBJID != #{OBJID_NE}
|
|
</if>
|
|
<if test="CONTRACT_OBJID !=null and CONTRACT_OBJID !=''">
|
|
AND CONTRACT_OBJID = #{CONTRACT_OBJID}
|
|
</if>
|
|
<if test="TARGET_OBJID !=null and TARGET_OBJID !=''">
|
|
AND TARGET_OBJID = #{TARGET_OBJID}
|
|
</if>
|
|
<if test="PARENT_OBJID !=null and PARENT_OBJID !=''">
|
|
AND PARENT_OBJID = #{PARENT_OBJID}
|
|
</if>
|
|
<if test="PARENT_TASK_OBJID !=null and PARENT_TASK_OBJID !=''">
|
|
AND PARENT_TASK_OBJID = #{PARENT_TASK_OBJID}
|
|
</if>
|
|
<if test="TASK_NAME !=null and TASK_NAME !=''">
|
|
AND TRIM(UPPER(TASK_NAME)) = TRIM(UPPER(#{TASK_NAME}))
|
|
</if>
|
|
<if test="TASK_SEQ !=null and TASK_SEQ !=''">
|
|
AND TRIM(UPPER(TASK_SEQ)) = TRIM(UPPER(#{TASK_SEQ}))
|
|
</if>
|
|
<if test="UNIT_NO !=null and UNIT_NO !=''">
|
|
AND TRIM(UPPER(UNIT_NO)) = TRIM(UPPER(#{UNIT_NO}))
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 해당 프로젝트의 WBS Task 목록을 가져온다. -->
|
|
<select id="getProjectSetupTaskStepList" parameterType="map" resultType="com.pms.common.UpperKeyMap">
|
|
SELECT
|
|
OBJID AS CODE
|
|
,TASK_CATEGORY AS NAME
|
|
FROM
|
|
SETUP_WBS_TASK_STANDARD T
|
|
WHERE 1=1
|
|
AND PARENT_OBJID = '' or PARENT_OBJID is null
|
|
ORDER BY NVL(TASK_SEQ,'0')::INTEGER NULLS LAST
|
|
</select>
|
|
|
|
<!-- 해당 프로젝트의 WBS Task 목록을 가져온다. -->
|
|
<select id="getProjectProductTaskList" parameterType="map" resultType="map">
|
|
SELECT * FROM
|
|
(SELECT
|
|
MAX(OBJID) AS OBJID
|
|
,MAX(CONTRACT_OBJID) AS CONTRACT_OBJID
|
|
,MAX(PARENT_OBJID) AS PARENT_OBJID
|
|
,'' AS TASK_NAME
|
|
,'0' AS TASK_SEQ
|
|
,'' AS DESIGN_USER_ID
|
|
,MIN(DESIGN_PLAN_START) AS DESIGN_PLAN_START
|
|
,MAX(DESIGN_PLAN_END) AS DESIGN_PLAN_END
|
|
,MIN(DESIGN_ACT_START) AS DESIGN_ACT_START
|
|
,MAX(DESIGN_ACT_END) AS DESIGN_ACT_END
|
|
,'' AS PURCHASE_USER_ID
|
|
,MIN(PURCHASE_PLAN_START) AS PURCHASE_PLAN_START
|
|
,MAX(PURCHASE_PLAN_END) AS PURCHASE_PLAN_END
|
|
,MIN(PURCHASE_ACT_START) AS PURCHASE_ACT_START
|
|
,MAX(PURCHASE_ACT_END) AS PURCHASE_ACT_END
|
|
,'' AS PRODUCE_USER_ID
|
|
,MIN(PRODUCE_PLAN_START) AS PRODUCE_PLAN_START
|
|
,MAX(PRODUCE_PLAN_END) AS PRODUCE_PLAN_END
|
|
,MIN(PRODUCE_ACT_START) AS PRODUCE_ACT_START
|
|
,MAX(PRODUCE_ACT_END) AS PRODUCE_ACT_END
|
|
,'' AS SELFINS_USER_ID
|
|
,MIN(SELFINS_PLAN_START) AS SELFINS_PLAN_START
|
|
,MAX(SELFINS_PLAN_END) AS SELFINS_PLAN_END
|
|
,MIN(SELFINS_ACT_START) AS SELFINS_ACT_START
|
|
,MAX(SELFINS_ACT_END) AS SELFINS_ACT_END
|
|
,'' AS FINALINS_USER_ID
|
|
,MIN(FINALINS_PLAN_START) AS FINALINS_PLAN_START
|
|
,MAX(FINALINS_PLAN_END) AS FINALINS_PLAN_END
|
|
,MIN(FINALINS_ACT_START) AS FINALINS_ACT_START
|
|
,MAX(FINALINS_ACT_END) AS FINALINS_ACT_END
|
|
,'' AS SHIP_USER_ID
|
|
,MIN(SHIP_PLAN_START) AS SHIP_PLAN_START
|
|
,MAX(SHIP_PLAN_END) AS SHIP_PLAN_END
|
|
,MIN(SHIP_ACT_START) AS SHIP_ACT_START
|
|
,MAX(SHIP_ACT_END) AS SHIP_ACT_END
|
|
,'' AS SETUP_USER_ID
|
|
,MIN(SETUP_PLAN_START) AS SETUP_PLAN_START
|
|
,MAX(SETUP_PLAN_END) AS SETUP_PLAN_END
|
|
,MIN(SETUP_ACT_START) AS SETUP_ACT_START
|
|
,MAX(SETUP_ACT_END) AS SETUP_ACT_END
|
|
,'' AS WRITER
|
|
,(sum(COALESCE(DESIGN_RATE,'0')::INTEGER) / COUNT(1))::VARCHAR AS DESIGN_RATE
|
|
,(sum(COALESCE(PURCHASE_RATE,'0')::INTEGER) / COUNT(1))::Varchar AS PURCHASE_RATE
|
|
<!-- ,(sum(COALESCE(PRODUCE_RATE,'0')::INTEGER) / COUNT(1))::Varchar AS PRODUCE_RATE -->
|
|
,ROUND((sum(COALESCE(PRODUCE_RATE,'0')::float) / COUNT(1))::numeric, 1)::varchar AS PRODUCE_RATE
|
|
,(sum(COALESCE(SELFINS_RATE,'0')::INTEGER) / COUNT(1))::Varchar AS SELFINS_RATE
|
|
,(COALESCE(MAX(FINALINS_RATE),'0')::INTEGER)::VARCHAR AS FINALINS_RATE
|
|
,(COALESCE(MAX(SHIP_RATE),'0')::INTEGER)::VARCHAR AS SHIP_RATE
|
|
,(COALESCE(MAX(SETUP_RATE),'0')::INTEGER)::VARCHAR AS SETUP_RATE
|
|
|
|
,'0' AS UNIT_NO
|
|
,ROUND((SUM(COALESCE(AS_RATE,'0')::FLOAT) / COUNT(1))::NUMERIC, 1) AS AS_RATE
|
|
FROM(
|
|
SELECT
|
|
OBJID,
|
|
CONTRACT_OBJID ,
|
|
PARENT_OBJID ,
|
|
CASE
|
|
WHEN DESIGN_PLAN_START = '' THEN NULL
|
|
ELSE DESIGN_PLAN_START
|
|
END DESIGN_PLAN_START,
|
|
CASE
|
|
WHEN DESIGN_PLAN_END = '' THEN NULL
|
|
ELSE DESIGN_PLAN_END
|
|
END DESIGN_PLAN_END,
|
|
CASE
|
|
WHEN DESIGN_ACT_START = '' THEN NULL
|
|
ELSE DESIGN_ACT_START
|
|
END DESIGN_ACT_START,
|
|
CASE
|
|
WHEN DESIGN_ACT_END = '' THEN NULL
|
|
ELSE DESIGN_ACT_END
|
|
END DESIGN_ACT_END,
|
|
CASE
|
|
WHEN PURCHASE_PLAN_START = '' THEN NULL
|
|
ELSE PURCHASE_PLAN_START
|
|
END PURCHASE_PLAN_START,
|
|
CASE
|
|
WHEN PURCHASE_PLAN_END = '' THEN NULL
|
|
ELSE PURCHASE_PLAN_END
|
|
END PURCHASE_PLAN_END,
|
|
CASE
|
|
WHEN PURCHASE_ACT_START = '' THEN NULL
|
|
ELSE PURCHASE_ACT_START
|
|
END PURCHASE_ACT_START,
|
|
CASE
|
|
WHEN PURCHASE_ACT_END = '' THEN NULL
|
|
ELSE PURCHASE_ACT_END
|
|
END PURCHASE_ACT_END,
|
|
CASE
|
|
WHEN PRODUCE_PLAN_START = '' THEN NULL
|
|
ELSE PRODUCE_PLAN_START
|
|
END PRODUCE_PLAN_START,
|
|
CASE
|
|
WHEN PRODUCE_PLAN_END = '' THEN NULL
|
|
ELSE PRODUCE_PLAN_END
|
|
END PRODUCE_PLAN_END,
|
|
CASE
|
|
WHEN PRODUCE_ACT_START = '' THEN NULL
|
|
ELSE PRODUCE_ACT_START
|
|
END PRODUCE_ACT_START,
|
|
CASE
|
|
WHEN PRODUCE_ACT_END = '' THEN NULL
|
|
ELSE PRODUCE_ACT_END
|
|
END PRODUCE_ACT_END,
|
|
CASE
|
|
WHEN SELFINS_PLAN_START = '' THEN NULL
|
|
ELSE SELFINS_PLAN_START
|
|
END SELFINS_PLAN_START,
|
|
CASE
|
|
WHEN SELFINS_PLAN_END = '' THEN NULL
|
|
ELSE SELFINS_PLAN_END
|
|
END SELFINS_PLAN_END,
|
|
CASE
|
|
WHEN SELFINS_ACT_START = '' THEN NULL
|
|
ELSE SELFINS_ACT_START
|
|
END SELFINS_ACT_START,
|
|
CASE
|
|
WHEN SELFINS_ACT_END = '' THEN NULL
|
|
ELSE SELFINS_ACT_END
|
|
END SELFINS_ACT_END,
|
|
CASE
|
|
WHEN FINALINS_PLAN_START = '' THEN NULL
|
|
ELSE FINALINS_PLAN_START
|
|
END FINALINS_PLAN_START,
|
|
CASE
|
|
WHEN FINALINS_PLAN_END = '' THEN NULL
|
|
ELSE FINALINS_PLAN_END
|
|
END FINALINS_PLAN_END,
|
|
CASE
|
|
WHEN FINALINS_ACT_START = '' THEN NULL
|
|
ELSE FINALINS_ACT_START
|
|
END FINALINS_ACT_START,
|
|
CASE
|
|
WHEN FINALINS_ACT_END = '' THEN NULL
|
|
ELSE FINALINS_ACT_END
|
|
END FINALINS_ACT_END,
|
|
CASE
|
|
WHEN SHIP_PLAN_START = '' THEN NULL
|
|
ELSE SHIP_PLAN_START
|
|
END SHIP_PLAN_START,
|
|
CASE
|
|
WHEN SHIP_PLAN_END = '' THEN NULL
|
|
ELSE SHIP_PLAN_END
|
|
END SHIP_PLAN_END,
|
|
CASE
|
|
WHEN SHIP_ACT_START = '' THEN NULL
|
|
ELSE SHIP_ACT_START
|
|
END SHIP_ACT_START,
|
|
CASE
|
|
WHEN SHIP_ACT_END = '' THEN NULL
|
|
ELSE SHIP_ACT_END
|
|
END SHIP_ACT_END,
|
|
CASE
|
|
WHEN SETUP_PLAN_START = '' THEN NULL
|
|
ELSE SETUP_PLAN_START
|
|
END SETUP_PLAN_START,
|
|
CASE
|
|
WHEN SETUP_PLAN_END = '' THEN NULL
|
|
ELSE SETUP_PLAN_END
|
|
END SETUP_PLAN_END,
|
|
CASE
|
|
WHEN SETUP_ACT_START = '' THEN NULL
|
|
ELSE SETUP_ACT_START
|
|
END SETUP_ACT_START,
|
|
CASE
|
|
WHEN SETUP_ACT_END = '' THEN NULL
|
|
ELSE SETUP_ACT_END
|
|
END SETUP_ACT_END,
|
|
CASE
|
|
WHEN DESIGN_RATE = '' THEN NULL
|
|
ELSE DESIGN_RATE
|
|
END DESIGN_RATE,
|
|
CASE
|
|
WHEN PURCHASE_RATE = '' THEN NULL
|
|
ELSE PURCHASE_RATE
|
|
END PURCHASE_RATE,
|
|
CASE
|
|
WHEN PRODUCE_RATE = '' THEN NULL
|
|
ELSE PRODUCE_RATE
|
|
END PRODUCE_RATE,
|
|
CASE
|
|
WHEN SELFINS_RATE = '' THEN NULL
|
|
ELSE SELFINS_RATE
|
|
END SELFINS_RATE,
|
|
CASE
|
|
WHEN FINALINS_RATE = '' THEN NULL
|
|
ELSE FINALINS_RATE
|
|
END FINALINS_RATE,
|
|
CASE
|
|
WHEN SHIP_RATE = '' THEN NULL
|
|
ELSE SHIP_RATE
|
|
END SHIP_RATE,
|
|
CASE
|
|
WHEN SETUP_RATE = '' THEN NULL
|
|
ELSE SETUP_RATE
|
|
END SETUP_RATE
|
|
,COALESCE(
|
|
(SELECT ROUND((SUM(AS_RATE) / COUNT(1)),1) AS AS_RATE
|
|
FROM
|
|
(SELECT
|
|
CASE WHEN (SELECT COUNT(*) FROM BOM_PART_QTY AS BP LEFT JOIN PART_MNG AS PM ON BP.PART_NO = PM.OBJID::VARCHAR WHERE BP.BOM_REPORT_OBJID = ST.OBJID AND PM.PART_TYPE IS NOT NULL AND PM.PART_TYPE != '') = 0 THEN 0
|
|
ELSE ROUND((((SELECT COUNT(1) FROM ASSEMBLY_WBS_TASK AS A WHERE A.PARENT_OBJID = ST.OBJID AND ASSEMBLY_USER_ID IS NOT NULL AND ASSEMBLY_USER_ID !='' AND ASSEMBLY_DATE IS NOT NULL AND ASSEMBLY_DATE!=''
|
|
)::NUMERIC / (SELECT COUNT(*) FROM BOM_PART_QTY AS BP LEFT JOIN PART_MNG AS PM ON BP.PART_NO = PM.OBJID::VARCHAR WHERE BP.BOM_REPORT_OBJID = ST.OBJID AND PM.PART_TYPE IS NOT NULL AND PM.PART_TYPE != '')) * 100), 1)
|
|
END AS AS_RATE
|
|
FROM PART_BOM_REPORT AS ST
|
|
WHERE ST.CONTRACT_OBJID = T.CONTRACT_OBJID
|
|
AND T.OBJID = ST.UNIT_CODE
|
|
) P
|
|
GROUP BY CONTRACT_OBJID), 0) AS AS_RATE
|
|
FROM
|
|
PMS_WBS_TASK T
|
|
WHERE CONTRACT_OBJID = #{OBJID}
|
|
) PMS_WBS_TASK
|
|
UNION ALL
|
|
SELECT
|
|
OBJID
|
|
,CONTRACT_OBJID
|
|
,PARENT_OBJID
|
|
,TASK_NAME
|
|
,TASK_SEQ
|
|
,DESIGN_USER_ID
|
|
,DESIGN_PLAN_START
|
|
,DESIGN_PLAN_END
|
|
,DESIGN_ACT_START
|
|
,DESIGN_ACT_END
|
|
,PURCHASE_USER_ID
|
|
,PURCHASE_PLAN_START
|
|
,PURCHASE_PLAN_END
|
|
,PURCHASE_ACT_START
|
|
,PURCHASE_ACT_END
|
|
,PRODUCE_USER_ID
|
|
,PRODUCE_PLAN_START
|
|
,PRODUCE_PLAN_END
|
|
,PRODUCE_ACT_START
|
|
,PRODUCE_ACT_END
|
|
,SELFINS_USER_ID
|
|
,SELFINS_PLAN_START
|
|
,SELFINS_PLAN_END
|
|
,SELFINS_ACT_START
|
|
,SELFINS_ACT_END
|
|
,FINALINS_USER_ID
|
|
,FINALINS_PLAN_START
|
|
,FINALINS_PLAN_END
|
|
,FINALINS_ACT_START
|
|
,FINALINS_ACT_END
|
|
,SHIP_USER_ID
|
|
,SHIP_PLAN_START
|
|
,SHIP_PLAN_END
|
|
,SHIP_ACT_START
|
|
,SHIP_ACT_END
|
|
,SETUP_USER_ID
|
|
,SETUP_PLAN_START
|
|
,SETUP_PLAN_END
|
|
,SETUP_ACT_START
|
|
,SETUP_ACT_END
|
|
,WRITER
|
|
,DESIGN_RATE
|
|
,PURCHASE_RATE
|
|
,PRODUCE_RATE
|
|
,SELFINS_RATE
|
|
,FINALINS_RATE
|
|
,SHIP_RATE
|
|
,SETUP_RATE
|
|
,UNIT_NO
|
|
,COALESCE(
|
|
(SELECT ROUND((SUM(AS_RATE) / COUNT(1)),1) AS AS_RATE
|
|
FROM
|
|
(SELECT
|
|
CASE WHEN (SELECT COUNT(*) FROM BOM_PART_QTY AS BP LEFT JOIN PART_MNG AS PM ON BP.PART_NO = PM.OBJID::VARCHAR WHERE BP.BOM_REPORT_OBJID = ST.OBJID AND PM.PART_TYPE IS NOT NULL AND PM.PART_TYPE != '') = 0 THEN 0
|
|
ELSE ROUND((((SELECT COUNT(1) FROM ASSEMBLY_WBS_TASK AS A WHERE A.PARENT_OBJID = ST.OBJID AND ASSEMBLY_USER_ID IS NOT NULL AND ASSEMBLY_USER_ID !='' AND ASSEMBLY_DATE IS NOT NULL AND ASSEMBLY_DATE!=''
|
|
)::NUMERIC / (SELECT COUNT(*) FROM BOM_PART_QTY AS BP LEFT JOIN PART_MNG AS PM ON BP.PART_NO = PM.OBJID::VARCHAR WHERE BP.BOM_REPORT_OBJID = ST.OBJID AND PM.PART_TYPE IS NOT NULL AND PM.PART_TYPE != '')) * 100), 1)
|
|
END AS AS_RATE
|
|
FROM PART_BOM_REPORT AS ST
|
|
WHERE ST.CONTRACT_OBJID = T.CONTRACT_OBJID
|
|
AND T.OBJID = ST.UNIT_CODE
|
|
) P
|
|
GROUP BY CONTRACT_OBJID), 0)
|
|
FROM
|
|
PMS_WBS_TASK AS T
|
|
WHERE CONTRACT_OBJID = #{OBJID}
|
|
) T
|
|
<!-- ORDER BY TASK_SEQ::INTEGER -->
|
|
ORDER BY UNIT_NO
|
|
</select>
|
|
|
|
<!-- 해당 프로젝트의 WBS Task 목록을 가져온다. -->
|
|
<select id="getProjectSetupWBSTaskList" parameterType="map" resultType="map">
|
|
SELECT
|
|
*
|
|
,MIN(NVL(SETUP_PLAN_START, '9999')) over (partition by PROJ_STEP3) SETUP_PLAN_START_MIN
|
|
,MAX(SETUP_PLAN_END) over (partition by PROJ_STEP3 ) SETUP_PLAN_END_MAX
|
|
,MIN(NVL(SETUP_ACT_START,'9999')) over (partition by PROJ_STEP3) SETUP_ACT_START_MIN
|
|
,MAX(SETUP_ACT_END) over (partition by PROJ_STEP3 ) SETUP_ACT_END_MAX
|
|
,SUM(EMPLOYEES_IN) over (partition by PROJ_STEP3 ) EMPLOYEES_IN_SUM
|
|
,SUM(EMPLOYEES_OUT) over (partition by PROJ_STEP3 ) EMPLOYEES_OUT_SUM
|
|
,SUM(EMPLOYEES_TOTAL) over (partition by PROJ_STEP3 ) EMPLOYEES_TOTAL_SUM
|
|
,SUM(SETUP_DELAYE_DAY) over (partition by PROJ_STEP3 ) SETUP_DELAYE_DAY_SUM
|
|
FROM(SELECT
|
|
OBJID ,
|
|
CONTRACT_OBJID ,
|
|
PARENT_OBJID ,
|
|
PROJ_STEP ,
|
|
CASE WHEN PROJ_STEP != '' THEN PROJ_STEP||'0' ELSE (SELECT PROJ_STEP FROM SETUP_WBS_TASK_STANDARD S WHERE S.OBJID = T.PARENT_OBJID)||'1' END PROJ_STEP2 ,
|
|
CASE WHEN PROJ_STEP != '' THEN PROJ_STEP ELSE (SELECT PROJ_STEP FROM SETUP_WBS_TASK_STANDARD S WHERE S.OBJID = T.PARENT_OBJID) END PROJ_STEP3 ,
|
|
TASK_CATEGORY ,
|
|
TASK_NAME ,
|
|
STANDARD_OBJID ,
|
|
DECODE(NVL(PROJ_STEP, ''), '', SETUP_PLAN_START, '') SETUP_PLAN_START ,
|
|
DECODE(NVL(PROJ_STEP, ''), '', SETUP_PLAN_END, '') SETUP_PLAN_END ,
|
|
SETUP_ACT_START ,
|
|
SETUP_ACT_END ,
|
|
CASE WHEN TO_DATE(SETUP_ACT_END,'YYYY-MM-DD') <![CDATA[ < ]]> TO_DATE(SETUP_PLAN_END,'YYYY-MM-DD') THEN '0'
|
|
WHEN trim(SETUP_PLAN_END) = '' then '0'
|
|
WHEN trim(TASK_NAME) = '' then '0'
|
|
ELSE TO_DATE(SETUP_ACT_END,'YYYY-MM-DD') - TO_DATE(SETUP_PLAN_END,'YYYY-MM-DD')
|
|
END SETUP_DELAYE_DAY ,
|
|
WRITER ,
|
|
EMPLOYEES_IN::integer ,
|
|
EMPLOYEES_OUT::integer ,
|
|
(coalesce(EMPLOYEES_IN,'0')::integer + coalesce(EMPLOYEES_OUT,'0')::integer) AS EMPLOYEES_TOTAL ,
|
|
SETUP_RATE ,
|
|
UNIT_NO ,
|
|
TASK_SEQ
|
|
FROM
|
|
SETUP_WBS_TASK T
|
|
WHERE
|
|
CONTRACT_OBJID = #{OBJID}) AS T
|
|
ORDER BY PROJ_STEP2 , TASK_SEQ::integer
|
|
<!-- SELECT * FROM
|
|
(SELECT
|
|
MAX(OBJID) AS OBJID
|
|
,MAX(CONTRACT_OBJID) AS CONTRACT_OBJID
|
|
,MAX(PARENT_OBJID) AS PARENT_OBJID
|
|
,'' AS TASK_CATEGORY
|
|
,'' AS TASK_NAME
|
|
,'' AS SETUP_USER_ID
|
|
,MIN(SETUP_PLAN_START) AS SETUP_PLAN_START
|
|
,MAX(SETUP_PLAN_END) AS SETUP_PLAN_END
|
|
,MIN(SETUP_ACT_START) AS SETUP_ACT_START
|
|
,MAX(SETUP_ACT_END) AS SETUP_ACT_END
|
|
,'' AS SETUP_DELAYE_DATE
|
|
,'' AS WRITER
|
|
,SUM(EMPLOYEES_IN::integer) AS EMPLOYEES_IN
|
|
,SUM(EMPLOYEES_OUT::integer) AS EMPLOYEES_OUT
|
|
,SUM(EMPLOYEES_IN::integer + EMPLOYEES_OUT::integer) as EMPLOYEES_TOTAL
|
|
,(COALESCE(MAX(SETUP_RATE),'0')::INTEGER)::VARCHAR AS SETUP_RATE
|
|
,'0' AS UNIT_NO
|
|
FROM(
|
|
SELECT
|
|
OBJID,
|
|
CONTRACT_OBJID ,
|
|
PARENT_OBJID ,
|
|
|
|
CASE
|
|
WHEN SETUP_PLAN_START = '' THEN NULL
|
|
ELSE SETUP_PLAN_START
|
|
END SETUP_PLAN_START,
|
|
CASE
|
|
WHEN SETUP_PLAN_END = '' THEN NULL
|
|
ELSE SETUP_PLAN_END
|
|
END SETUP_PLAN_END,
|
|
CASE
|
|
WHEN SETUP_ACT_START = '' THEN NULL
|
|
ELSE SETUP_ACT_START
|
|
END SETUP_ACT_START,
|
|
CASE
|
|
WHEN SETUP_ACT_END = '' THEN NULL
|
|
ELSE SETUP_ACT_END
|
|
END SETUP_ACT_END,
|
|
CASE
|
|
WHEN SETUP_RATE = '' THEN NULL
|
|
ELSE SETUP_RATE
|
|
END SETUP_RATE,
|
|
EMPLOYEES_IN,
|
|
EMPLOYEES_OUT,
|
|
EMPLOYEES_TOTAL
|
|
FROM
|
|
SETUP_WBS_TASK
|
|
WHERE CONTRACT_OBJID = #{OBJID}
|
|
) SETUP_WBS_TASK
|
|
UNION ALL
|
|
SELECT
|
|
OBJID
|
|
,CONTRACT_OBJID
|
|
,PARENT_OBJID
|
|
,TASK_CATEGORY
|
|
,TASK_NAME
|
|
,SETUP_USER_ID
|
|
,SETUP_PLAN_START
|
|
,SETUP_PLAN_END
|
|
,SETUP_ACT_START
|
|
,SETUP_ACT_END
|
|
,SETUP_DELAYE_DATE
|
|
,WRITER
|
|
,EMPLOYEES_IN::integer
|
|
,EMPLOYEES_OUT::integer
|
|
,(coalesce(EMPLOYEES_IN,'0')::integer + coalesce(EMPLOYEES_OUT,'0')::integer) as EMPLOYEES_TOTAL
|
|
,SETUP_RATE
|
|
,UNIT_NO
|
|
FROM
|
|
SETUP_WBS_TASK
|
|
WHERE CONTRACT_OBJID = #{OBJID}) AS T
|
|
ORDER BY TASK_SEQ::INTEGER
|
|
ORDER BY UNIT_NO -->
|
|
</select>
|
|
|
|
<update id="save_wbsTaskProductForm" parameterType="map">
|
|
INSERT INTO PMS_WBS_TASK (
|
|
OBJID
|
|
,CONTRACT_OBJID
|
|
,PARENT_OBJID
|
|
,TASK_NAME
|
|
,TASK_SEQ
|
|
|
|
,DESIGN_USER_ID
|
|
|
|
<if test="DESIGN_PLAN_START != null and DESIGN_PLAN_START !='' ">
|
|
,DESIGN_PLAN_START
|
|
</if>
|
|
<if test="DESIGN_PLAN_END != null and DESIGN_PLAN_END !='' ">
|
|
,DESIGN_PLAN_END
|
|
</if>
|
|
<if test="DESIGN_ACT_START != null and DESIGN_ACT_START !='' ">
|
|
,DESIGN_ACT_START
|
|
</if>
|
|
<if test="DESIGN_ACT_END != null and DESIGN_ACT_END !='' ">
|
|
,DESIGN_ACT_END
|
|
</if>
|
|
|
|
,PURCHASE_USER_ID
|
|
|
|
<if test="PURCHASE_PLAN_START != null and PURCHASE_PLAN_START !='' ">
|
|
,PURCHASE_PLAN_START
|
|
</if>
|
|
<if test="PURCHASE_PLAN_END != null and PURCHASE_PLAN_END !='' ">
|
|
,PURCHASE_PLAN_END
|
|
</if>
|
|
<if test="PURCHASE_ACT_START != null and PURCHASE_ACT_START !='' ">
|
|
,PURCHASE_ACT_START
|
|
</if>
|
|
<if test="PURCHASE_ACT_END != null and PURCHASE_ACT_END !='' ">
|
|
,PURCHASE_ACT_END
|
|
</if>
|
|
|
|
,PRODUCE_USER_ID
|
|
|
|
<if test="PRODUCE_PLAN_START != null and PRODUCE_PLAN_START !='' ">
|
|
,PRODUCE_PLAN_START
|
|
</if>
|
|
<if test="PRODUCE_PLAN_END != null and PRODUCE_PLAN_END !='' ">
|
|
,PRODUCE_PLAN_END
|
|
</if>
|
|
<if test="PRODUCE_ACT_START != null and PRODUCE_ACT_START !='' ">
|
|
,PRODUCE_ACT_START
|
|
</if>
|
|
<if test="PRODUCE_ACT_END != null and PRODUCE_ACT_END !='' ">
|
|
,PRODUCE_ACT_END
|
|
</if>
|
|
|
|
,SELFINS_USER_ID
|
|
|
|
<if test="SELFINS_PLAN_START != null and SELFINS_PLAN_START !='' ">
|
|
,SELFINS_PLAN_START
|
|
</if>
|
|
<if test="SELFINS_PLAN_END != null and SELFINS_PLAN_END !='' ">
|
|
,SELFINS_PLAN_END
|
|
</if>
|
|
<if test="SELFINS_ACT_START != null and SELFINS_ACT_START !='' ">
|
|
,SELFINS_ACT_START
|
|
</if>
|
|
<if test="SELFINS_ACT_END != null and SELFINS_ACT_END !='' ">
|
|
,SELFINS_ACT_END
|
|
</if>
|
|
|
|
,FINALINS_USER_ID
|
|
|
|
<if test="FINALINS_PLAN_START != null and FINALINS_PLAN_START !='' ">
|
|
,FINALINS_PLAN_START
|
|
</if>
|
|
<if test="FINALINS_PLAN_END != null and FINALINS_PLAN_END !='' ">
|
|
,FINALINS_PLAN_END
|
|
</if>
|
|
<if test="FINALINS_ACT_START != null and FINALINS_ACT_START !='' ">
|
|
,FINALINS_ACT_START
|
|
</if>
|
|
<if test="FINALINS_ACT_END != null and FINALINS_ACT_END !='' ">
|
|
,FINALINS_ACT_END
|
|
</if>
|
|
|
|
,SHIP_USER_ID
|
|
|
|
<if test="SHIP_PLAN_START != null and SHIP_PLAN_START !='' ">
|
|
,SHIP_PLAN_START
|
|
</if>
|
|
<if test="SHIP_PLAN_END != null and SHIP_PLAN_END !='' ">
|
|
,SHIP_PLAN_END
|
|
</if>
|
|
<if test="SHIP_ACT_START != null and SHIP_ACT_START !='' ">
|
|
,SHIP_ACT_START
|
|
</if>
|
|
<if test="SHIP_ACT_END != null and SHIP_ACT_END !='' ">
|
|
,SHIP_ACT_END
|
|
</if>
|
|
|
|
,SETUP_USER_ID
|
|
|
|
<if test="SETUP_PLAN_START != null and SETUP_PLAN_START !='' ">
|
|
,SETUP_PLAN_START
|
|
</if>
|
|
<if test="SETUP_PLAN_END != null and SETUP_PLAN_END !='' ">
|
|
,SETUP_PLAN_END
|
|
</if>
|
|
<if test="SETUP_ACT_START != null and SETUP_ACT_START !='' ">
|
|
,SETUP_ACT_START
|
|
</if>
|
|
<if test="SETUP_ACT_END != null and SETUP_ACT_END !='' ">
|
|
,SETUP_ACT_END
|
|
</if>
|
|
,WRITER
|
|
,REG_DATE
|
|
,DESIGN_RATE
|
|
,PURCHASE_RATE
|
|
,PRODUCE_RATE
|
|
,SELFINS_RATE
|
|
,FINALINS_RATE
|
|
,SHIP_RATE
|
|
,SETUP_RATE
|
|
) VALUES (
|
|
#{OBJID }
|
|
,#{CONTRACT_OBJID }
|
|
,#{PARENT_OBJID }
|
|
,#{TASK_NAME }
|
|
,#{TASK_SEQ }
|
|
,#{DESIGN_USER_ID}
|
|
|
|
<if test="DESIGN_PLAN_START != null and DESIGN_PLAN_START !='' ">
|
|
,#{DESIGN_PLAN_START}
|
|
</if>
|
|
<if test="DESIGN_PLAN_END != null and DESIGN_PLAN_END !='' ">
|
|
,#{DESIGN_PLAN_END}
|
|
</if>
|
|
<if test="DESIGN_ACT_START != null and DESIGN_ACT_START !='' ">
|
|
,#{DESIGN_ACT_START}
|
|
</if>
|
|
<if test="DESIGN_ACT_END != null and DESIGN_ACT_END !='' ">
|
|
,#{DESIGN_ACT_END}
|
|
</if>
|
|
|
|
,#{PURCHASE_USER_ID}
|
|
|
|
<if test="PURCHASE_PLAN_START != null and PURCHASE_PLAN_START !='' ">
|
|
,#{PURCHASE_PLAN_START}
|
|
</if>
|
|
<if test="PURCHASE_PLAN_END != null and PURCHASE_PLAN_END !='' ">
|
|
,#{PURCHASE_PLAN_END}
|
|
</if>
|
|
<if test="PURCHASE_ACT_START != null and PURCHASE_ACT_START !='' ">
|
|
,#{PURCHASE_ACT_START}
|
|
</if>
|
|
<if test="PURCHASE_ACT_END != null and PURCHASE_ACT_END !='' ">
|
|
,#{PURCHASE_ACT_END}
|
|
</if>
|
|
|
|
,#{PRODUCE_USER_ID}
|
|
|
|
<if test="PRODUCE_PLAN_START != null and PRODUCE_PLAN_START !='' ">
|
|
,#{PRODUCE_PLAN_START}
|
|
</if>
|
|
<if test="PRODUCE_PLAN_END != null and PRODUCE_PLAN_END !='' ">
|
|
,#{PRODUCE_PLAN_END}
|
|
</if>
|
|
<if test="PRODUCE_ACT_START != null and PRODUCE_ACT_START !='' ">
|
|
,#{PRODUCE_ACT_START}
|
|
</if>
|
|
<if test="PRODUCE_ACT_END != null and PRODUCE_ACT_END !='' ">
|
|
,#{PRODUCE_ACT_END}
|
|
</if>
|
|
|
|
,#{SELFINS_USER_ID}
|
|
|
|
<if test="SELFINS_PLAN_START != null and SELFINS_PLAN_START !='' ">
|
|
,#{SELFINS_PLAN_START}
|
|
</if>
|
|
<if test="SELFINS_PLAN_END != null and SELFINS_PLAN_END !='' ">
|
|
,#{SELFINS_PLAN_END}
|
|
</if>
|
|
<if test="SELFINS_ACT_START != null and SELFINS_ACT_START !='' ">
|
|
,#{SELFINS_ACT_START}
|
|
</if>
|
|
<if test="SELFINS_ACT_END != null and SELFINS_ACT_END !='' ">
|
|
,#{SELFINS_ACT_END}
|
|
</if>
|
|
|
|
,#{FINALINS_USER_ID}
|
|
|
|
<if test="FINALINS_PLAN_START != null and FINALINS_PLAN_START !='' ">
|
|
,#{FINALINS_PLAN_START}
|
|
</if>
|
|
<if test="FINALINS_PLAN_END != null and FINALINS_PLAN_END !='' ">
|
|
,#{FINALINS_PLAN_END}
|
|
</if>
|
|
<if test="FINALINS_ACT_START != null and FINALINS_ACT_START !='' ">
|
|
,#{FINALINS_ACT_START}
|
|
</if>
|
|
<if test="FINALINS_ACT_END != null and FINALINS_ACT_END !='' ">
|
|
,#{FINALINS_ACT_END}
|
|
</if>
|
|
|
|
,#{SHIP_USER_ID}
|
|
|
|
<if test="SHIP_PLAN_START != null and SHIP_PLAN_START !='' ">
|
|
,#{SHIP_PLAN_START}
|
|
</if>
|
|
<if test="SHIP_PLAN_END != null and SHIP_PLAN_END !='' ">
|
|
,#{SHIP_PLAN_END}
|
|
</if>
|
|
<if test="SHIP_ACT_START != null and SHIP_ACT_START !='' ">
|
|
,#{SHIP_ACT_START}
|
|
</if>
|
|
<if test="SHIP_ACT_END != null and SHIP_ACT_END !='' ">
|
|
,#{SHIP_ACT_END}
|
|
</if>
|
|
|
|
,#{SETUP_USER_ID}
|
|
|
|
<if test="SETUP_PLAN_START != null and SETUP_PLAN_START !='' ">
|
|
,#{SETUP_PLAN_START}
|
|
</if>
|
|
<if test="SETUP_PLAN_END != null and SETUP_PLAN_END !='' ">
|
|
,#{SETUP_PLAN_END}
|
|
</if>
|
|
<if test="SETUP_ACT_START != null and SETUP_ACT_START !='' ">
|
|
,#{SETUP_ACT_START}
|
|
</if>
|
|
<if test="SETUP_ACT_END != null and SETUP_ACT_END !='' ">
|
|
,#{SETUP_ACT_END}
|
|
</if>
|
|
|
|
,#{WRITER }
|
|
,NOW()
|
|
,#{DESIGN_RATE }
|
|
,#{PURCHASE_RATE }
|
|
,#{PRODUCE_RATE }
|
|
,#{SELFINS_RATE }
|
|
,#{FINALINS_RATE }
|
|
,#{SHIP_RATE }
|
|
,#{SETUP_RATE }
|
|
) ON CONFLICT (OBJID) DO
|
|
UPDATE SET
|
|
DESIGN_USER_ID = #{DESIGN_USER_ID }
|
|
,DESIGN_PLAN_START = #{DESIGN_PLAN_START }
|
|
,DESIGN_PLAN_END = #{DESIGN_PLAN_END }
|
|
,DESIGN_ACT_START = #{DESIGN_ACT_START }
|
|
,DESIGN_ACT_END = #{DESIGN_ACT_END }
|
|
<if test="TASK_NAME != null and TASK_NAME !='' ">
|
|
,TASK_NAME = #{TASK_NAME }
|
|
</if>
|
|
<if test="DESIGN_PLAN_START != null and DESIGN_PLAN_START !='' ">
|
|
</if>
|
|
<if test="DESIGN_PLAN_END != null and DESIGN_PLAN_END !='' ">
|
|
</if>
|
|
<if test="DESIGN_ACT_START != null and DESIGN_ACT_START !='' ">
|
|
</if>
|
|
<if test="DESIGN_ACT_END != null and DESIGN_ACT_END !='' ">
|
|
</if>
|
|
|
|
,PURCHASE_USER_ID = #{PURCHASE_USER_ID }
|
|
,PURCHASE_PLAN_START = #{PURCHASE_PLAN_START}
|
|
,PURCHASE_PLAN_END = #{PURCHASE_PLAN_END}
|
|
,PURCHASE_ACT_START = #{PURCHASE_ACT_START}
|
|
,PURCHASE_ACT_END = #{PURCHASE_ACT_END}
|
|
<if test="PURCHASE_PLAN_START != null and PURCHASE_PLAN_START !='' ">
|
|
</if>
|
|
<if test="PURCHASE_PLAN_END != null and PURCHASE_PLAN_END !='' ">
|
|
</if>
|
|
<if test="PURCHASE_ACT_START != null and PURCHASE_ACT_START !='' ">
|
|
</if>
|
|
<if test="PURCHASE_ACT_END != null and PURCHASE_ACT_END !='' ">
|
|
</if>
|
|
|
|
<!-- ,PRODUCE_USER_ID = #{PRODUCE_USER_ID}
|
|
,PRODUCE_PLAN_START = #{PRODUCE_PLAN_START}
|
|
,PRODUCE_PLAN_END = #{PRODUCE_PLAN_END}
|
|
,PRODUCE_ACT_START = #{PRODUCE_ACT_START}
|
|
,PRODUCE_ACT_END = #{PRODUCE_ACT_END} -->
|
|
<if test="PRODUCE_PLAN_START != null and PRODUCE_PLAN_START !='' ">
|
|
</if>
|
|
<if test="PRODUCE_PLAN_END != null and PRODUCE_PLAN_END !='' ">
|
|
</if>
|
|
<if test="PRODUCE_ACT_START != null and PRODUCE_ACT_START !='' ">
|
|
</if>
|
|
<if test="PRODUCE_ACT_END != null and PRODUCE_ACT_END !='' ">
|
|
</if>
|
|
|
|
<!-- ,SELFINS_USER_ID = #{SELFINS_USER_ID}
|
|
,SELFINS_PLAN_START = #{SELFINS_PLAN_START}
|
|
,SELFINS_PLAN_END = #{SELFINS_PLAN_END}
|
|
,SELFINS_ACT_START = #{SELFINS_ACT_START}
|
|
,SELFINS_ACT_END = #{SELFINS_ACT_END} -->
|
|
|
|
<if test="SELFINS_PLAN_START != null and SELFINS_PLAN_START !='' ">
|
|
</if>
|
|
<if test="SELFINS_PLAN_END != null and SELFINS_PLAN_END !='' ">
|
|
</if>
|
|
<if test="SELFINS_ACT_START != null and SELFINS_ACT_START !='' ">
|
|
</if>
|
|
<if test="SELFINS_ACT_END != null and SELFINS_ACT_END !='' ">
|
|
</if>
|
|
|
|
<!-- ,FINALINS_USER_ID = #{FINALINS_USER_ID}
|
|
,FINALINS_PLAN_START = #{FINALINS_PLAN_START}
|
|
,FINALINS_PLAN_END = #{FINALINS_PLAN_END}
|
|
,FINALINS_ACT_START = #{FINALINS_ACT_START}
|
|
,FINALINS_ACT_END = #{FINALINS_ACT_END} -->
|
|
<if test="FINALINS_PLAN_START != null and FINALINS_PLAN_START !='' ">
|
|
</if>
|
|
<if test="FINALINS_PLAN_END != null and FINALINS_PLAN_END !='' ">
|
|
</if>
|
|
<if test="FINALINS_ACT_START != null and FINALINS_ACT_START !='' ">
|
|
</if>
|
|
<if test="FINALINS_ACT_END != null and FINALINS_ACT_END !='' ">
|
|
</if>
|
|
|
|
<!-- ,SHIP_USER_ID = #{SHIP_USER_ID}
|
|
,SHIP_PLAN_START = #{SHIP_PLAN_START}
|
|
,SHIP_PLAN_END = #{SHIP_PLAN_END}
|
|
,SHIP_ACT_START = #{SHIP_ACT_START}
|
|
,SHIP_ACT_END = #{SHIP_ACT_END} -->
|
|
<if test="SHIP_PLAN_START != null and SHIP_PLAN_START !='' ">
|
|
</if>
|
|
<if test="SHIP_PLAN_END != null and SHIP_PLAN_END !='' ">
|
|
</if>
|
|
<if test="SHIP_ACT_START != null and SHIP_ACT_START !='' ">
|
|
</if>
|
|
<if test="SHIP_ACT_END != null and SHIP_ACT_END !='' ">
|
|
</if>
|
|
|
|
<!-- ,SETUP_USER_ID = #{SETUP_USER_ID}
|
|
,SETUP_PLAN_START = #{SETUP_PLAN_START}
|
|
,SETUP_PLAN_END = #{SETUP_PLAN_END}
|
|
,SETUP_ACT_START = #{SETUP_ACT_START}
|
|
,SETUP_ACT_END = #{SETUP_ACT_END} -->
|
|
|
|
<if test="SETUP_PLAN_START != null and SETUP_PLAN_START !='' ">
|
|
</if>
|
|
<if test="SETUP_PLAN_END != null and SETUP_PLAN_END !='' ">
|
|
</if>
|
|
<if test="SETUP_ACT_START != null and SETUP_ACT_START !='' ">
|
|
</if>
|
|
<if test="SETUP_ACT_END != null and SETUP_ACT_END !='' ">
|
|
</if>
|
|
<!--
|
|
,WRITER = #{WRITER }
|
|
-->
|
|
,MODIFIER = #{WRITER }
|
|
,UPDATE_DATE = NOW()
|
|
,DESIGN_RATE = #{DESIGN_RATE }
|
|
,PURCHASE_RATE = #{PURCHASE_RATE }
|
|
<!-- ,PRODUCE_RATE = #{PRODUCE_RATE }
|
|
,SELFINS_RATE = #{SELFINS_RATE }
|
|
,FINALINS_RATE = #{FINALINS_RATE }
|
|
,SHIP_RATE = #{SHIP_RATE }
|
|
,SETUP_RATE = #{SETUP_RATE } -->
|
|
</update>
|
|
|
|
<update id="save_wbsTaskProductProduceForm" parameterType="map">
|
|
INSERT INTO PMS_WBS_TASK (
|
|
OBJID
|
|
,CONTRACT_OBJID
|
|
,PARENT_OBJID
|
|
,TASK_NAME
|
|
,TASK_SEQ
|
|
|
|
,DESIGN_USER_ID
|
|
|
|
<if test="DESIGN_PLAN_START != null and DESIGN_PLAN_START !='' ">
|
|
,DESIGN_PLAN_START
|
|
</if>
|
|
<if test="DESIGN_PLAN_END != null and DESIGN_PLAN_END !='' ">
|
|
,DESIGN_PLAN_END
|
|
</if>
|
|
<if test="DESIGN_ACT_START != null and DESIGN_ACT_START !='' ">
|
|
,DESIGN_ACT_START
|
|
</if>
|
|
<if test="DESIGN_ACT_END != null and DESIGN_ACT_END !='' ">
|
|
,DESIGN_ACT_END
|
|
</if>
|
|
|
|
,PURCHASE_USER_ID
|
|
|
|
<if test="PURCHASE_PLAN_START != null and PURCHASE_PLAN_START !='' ">
|
|
,PURCHASE_PLAN_START
|
|
</if>
|
|
<if test="PURCHASE_PLAN_END != null and PURCHASE_PLAN_END !='' ">
|
|
,PURCHASE_PLAN_END
|
|
</if>
|
|
<if test="PURCHASE_ACT_START != null and PURCHASE_ACT_START !='' ">
|
|
,PURCHASE_ACT_START
|
|
</if>
|
|
<if test="PURCHASE_ACT_END != null and PURCHASE_ACT_END !='' ">
|
|
,PURCHASE_ACT_END
|
|
</if>
|
|
|
|
,PRODUCE_USER_ID
|
|
|
|
<if test="PRODUCE_PLAN_START != null and PRODUCE_PLAN_START !='' ">
|
|
,PRODUCE_PLAN_START
|
|
</if>
|
|
<if test="PRODUCE_PLAN_END != null and PRODUCE_PLAN_END !='' ">
|
|
,PRODUCE_PLAN_END
|
|
</if>
|
|
<if test="PRODUCE_ACT_START != null and PRODUCE_ACT_START !='' ">
|
|
,PRODUCE_ACT_START
|
|
</if>
|
|
<if test="PRODUCE_ACT_END != null and PRODUCE_ACT_END !='' ">
|
|
,PRODUCE_ACT_END
|
|
</if>
|
|
|
|
,SELFINS_USER_ID
|
|
|
|
<if test="SELFINS_PLAN_START != null and SELFINS_PLAN_START !='' ">
|
|
,SELFINS_PLAN_START
|
|
</if>
|
|
<if test="SELFINS_PLAN_END != null and SELFINS_PLAN_END !='' ">
|
|
,SELFINS_PLAN_END
|
|
</if>
|
|
<if test="SELFINS_ACT_START != null and SELFINS_ACT_START !='' ">
|
|
,SELFINS_ACT_START
|
|
</if>
|
|
<if test="SELFINS_ACT_END != null and SELFINS_ACT_END !='' ">
|
|
,SELFINS_ACT_END
|
|
</if>
|
|
|
|
,FINALINS_USER_ID
|
|
|
|
<if test="FINALINS_PLAN_START != null and FINALINS_PLAN_START !='' ">
|
|
,FINALINS_PLAN_START
|
|
</if>
|
|
<if test="FINALINS_PLAN_END != null and FINALINS_PLAN_END !='' ">
|
|
,FINALINS_PLAN_END
|
|
</if>
|
|
<if test="FINALINS_ACT_START != null and FINALINS_ACT_START !='' ">
|
|
,FINALINS_ACT_START
|
|
</if>
|
|
<if test="FINALINS_ACT_END != null and FINALINS_ACT_END !='' ">
|
|
,FINALINS_ACT_END
|
|
</if>
|
|
|
|
,SHIP_USER_ID
|
|
|
|
<if test="SHIP_PLAN_START != null and SHIP_PLAN_START !='' ">
|
|
,SHIP_PLAN_START
|
|
</if>
|
|
<if test="SHIP_PLAN_END != null and SHIP_PLAN_END !='' ">
|
|
,SHIP_PLAN_END
|
|
</if>
|
|
<if test="SHIP_ACT_START != null and SHIP_ACT_START !='' ">
|
|
,SHIP_ACT_START
|
|
</if>
|
|
<if test="SHIP_ACT_END != null and SHIP_ACT_END !='' ">
|
|
,SHIP_ACT_END
|
|
</if>
|
|
|
|
,SETUP_USER_ID
|
|
|
|
<if test="SETUP_PLAN_START != null and SETUP_PLAN_START !='' ">
|
|
,SETUP_PLAN_START
|
|
</if>
|
|
<if test="SETUP_PLAN_END != null and SETUP_PLAN_END !='' ">
|
|
,SETUP_PLAN_END
|
|
</if>
|
|
<if test="SETUP_ACT_START != null and SETUP_ACT_START !='' ">
|
|
,SETUP_ACT_START
|
|
</if>
|
|
<if test="SETUP_ACT_END != null and SETUP_ACT_END !='' ">
|
|
,SETUP_ACT_END
|
|
</if>
|
|
,WRITER
|
|
,DESIGN_RATE
|
|
,PURCHASE_RATE
|
|
,PRODUCE_RATE
|
|
,SELFINS_RATE
|
|
,FINALINS_RATE
|
|
,SHIP_RATE
|
|
,SETUP_RATE
|
|
) VALUES (
|
|
#{OBJID }
|
|
,#{CONTRACT_OBJID }
|
|
,#{PARENT_OBJID }
|
|
,#{TASK_NAME }
|
|
,#{TASK_SEQ }
|
|
,#{DESIGN_USER_ID}
|
|
|
|
<if test="DESIGN_PLAN_START != null and DESIGN_PLAN_START !='' ">
|
|
,#{DESIGN_PLAN_START}
|
|
</if>
|
|
<if test="DESIGN_PLAN_END != null and DESIGN_PLAN_END !='' ">
|
|
,#{DESIGN_PLAN_END}
|
|
</if>
|
|
<if test="DESIGN_ACT_START != null and DESIGN_ACT_START !='' ">
|
|
,#{DESIGN_ACT_START}
|
|
</if>
|
|
<if test="DESIGN_ACT_END != null and DESIGN_ACT_END !='' ">
|
|
,#{DESIGN_ACT_END}
|
|
</if>
|
|
|
|
,#{PURCHASE_USER_ID}
|
|
|
|
<if test="PURCHASE_PLAN_START != null and PURCHASE_PLAN_START !='' ">
|
|
,#{PURCHASE_PLAN_START}
|
|
</if>
|
|
<if test="PURCHASE_PLAN_END != null and PURCHASE_PLAN_END !='' ">
|
|
,#{PURCHASE_PLAN_END}
|
|
</if>
|
|
<if test="PURCHASE_ACT_START != null and PURCHASE_ACT_START !='' ">
|
|
,#{PURCHASE_ACT_START}
|
|
</if>
|
|
<if test="PURCHASE_ACT_END != null and PURCHASE_ACT_END !='' ">
|
|
,#{PURCHASE_ACT_END}
|
|
</if>
|
|
|
|
,#{PRODUCE_USER_ID}
|
|
|
|
<if test="PRODUCE_PLAN_START != null and PRODUCE_PLAN_START !='' ">
|
|
,#{PRODUCE_PLAN_START}
|
|
</if>
|
|
<if test="PRODUCE_PLAN_END != null and PRODUCE_PLAN_END !='' ">
|
|
,#{PRODUCE_PLAN_END}
|
|
</if>
|
|
<if test="PRODUCE_ACT_START != null and PRODUCE_ACT_START !='' ">
|
|
,#{PRODUCE_ACT_START}
|
|
</if>
|
|
<if test="PRODUCE_ACT_END != null and PRODUCE_ACT_END !='' ">
|
|
,#{PRODUCE_ACT_END}
|
|
</if>
|
|
|
|
,#{SELFINS_USER_ID}
|
|
|
|
<if test="SELFINS_PLAN_START != null and SELFINS_PLAN_START !='' ">
|
|
,#{SELFINS_PLAN_START}
|
|
</if>
|
|
<if test="SELFINS_PLAN_END != null and SELFINS_PLAN_END !='' ">
|
|
,#{SELFINS_PLAN_END}
|
|
</if>
|
|
<if test="SELFINS_ACT_START != null and SELFINS_ACT_START !='' ">
|
|
,#{SELFINS_ACT_START}
|
|
</if>
|
|
<if test="SELFINS_ACT_END != null and SELFINS_ACT_END !='' ">
|
|
,#{SELFINS_ACT_END}
|
|
</if>
|
|
|
|
,#{FINALINS_USER_ID}
|
|
|
|
<if test="FINALINS_PLAN_START != null and FINALINS_PLAN_START !='' ">
|
|
,#{FINALINS_PLAN_START}
|
|
</if>
|
|
<if test="FINALINS_PLAN_END != null and FINALINS_PLAN_END !='' ">
|
|
,#{FINALINS_PLAN_END}
|
|
</if>
|
|
<if test="FINALINS_ACT_START != null and FINALINS_ACT_START !='' ">
|
|
,#{FINALINS_ACT_START}
|
|
</if>
|
|
<if test="FINALINS_ACT_END != null and FINALINS_ACT_END !='' ">
|
|
,#{FINALINS_ACT_END}
|
|
</if>
|
|
|
|
,#{SHIP_USER_ID}
|
|
|
|
<if test="SHIP_PLAN_START != null and SHIP_PLAN_START !='' ">
|
|
,#{SHIP_PLAN_START}
|
|
</if>
|
|
<if test="SHIP_PLAN_END != null and SHIP_PLAN_END !='' ">
|
|
,#{SHIP_PLAN_END}
|
|
</if>
|
|
<if test="SHIP_ACT_START != null and SHIP_ACT_START !='' ">
|
|
,#{SHIP_ACT_START}
|
|
</if>
|
|
<if test="SHIP_ACT_END != null and SHIP_ACT_END !='' ">
|
|
,#{SHIP_ACT_END}
|
|
</if>
|
|
|
|
,#{SETUP_USER_ID}
|
|
|
|
<if test="SETUP_PLAN_START != null and SETUP_PLAN_START !='' ">
|
|
,#{SETUP_PLAN_START}
|
|
</if>
|
|
<if test="SETUP_PLAN_END != null and SETUP_PLAN_END !='' ">
|
|
,#{SETUP_PLAN_END}
|
|
</if>
|
|
<if test="SETUP_ACT_START != null and SETUP_ACT_START !='' ">
|
|
,#{SETUP_ACT_START}
|
|
</if>
|
|
<if test="SETUP_ACT_END != null and SETUP_ACT_END !='' ">
|
|
,#{SETUP_ACT_END}
|
|
</if>
|
|
|
|
,#{WRITER }
|
|
,#{DESIGN_RATE }
|
|
,#{PURCHASE_RATE }
|
|
,#{PRODUCE_RATE }
|
|
,#{SELFINS_RATE }
|
|
,#{FINALINS_RATE }
|
|
,#{SHIP_RATE }
|
|
,#{SETUP_RATE }
|
|
) ON CONFLICT (OBJID) DO
|
|
UPDATE SET
|
|
<!-- DESIGN_USER_ID = #{DESIGN_USER_ID }
|
|
,DESIGN_PLAN_START = #{DESIGN_PLAN_START }
|
|
,DESIGN_PLAN_END = #{DESIGN_PLAN_END }
|
|
,DESIGN_ACT_START = #{DESIGN_ACT_START }
|
|
,DESIGN_ACT_END = #{DESIGN_ACT_END } -->
|
|
|
|
<if test="DESIGN_PLAN_START != null and DESIGN_PLAN_START !='' ">
|
|
</if>
|
|
<if test="DESIGN_PLAN_END != null and DESIGN_PLAN_END !='' ">
|
|
</if>
|
|
<if test="DESIGN_ACT_START != null and DESIGN_ACT_START !='' ">
|
|
</if>
|
|
<if test="DESIGN_ACT_END != null and DESIGN_ACT_END !='' ">
|
|
</if>
|
|
|
|
<!-- ,PURCHASE_USER_ID = #{PURCHASE_USER_ID }
|
|
,PURCHASE_PLAN_START = #{PURCHASE_PLAN_START}
|
|
,PURCHASE_PLAN_END = #{PURCHASE_PLAN_END}
|
|
,PURCHASE_ACT_START = #{PURCHASE_ACT_START}
|
|
,PURCHASE_ACT_END = #{PURCHASE_ACT_END} -->
|
|
<if test="PURCHASE_PLAN_START != null and PURCHASE_PLAN_START !='' ">
|
|
</if>
|
|
<if test="PURCHASE_PLAN_END != null and PURCHASE_PLAN_END !='' ">
|
|
</if>
|
|
<if test="PURCHASE_ACT_START != null and PURCHASE_ACT_START !='' ">
|
|
</if>
|
|
<if test="PURCHASE_ACT_END != null and PURCHASE_ACT_END !='' ">
|
|
</if>
|
|
|
|
PRODUCE_USER_ID = #{PRODUCE_USER_ID}
|
|
,PRODUCE_PLAN_START = #{PRODUCE_PLAN_START}
|
|
,PRODUCE_PLAN_END = #{PRODUCE_PLAN_END}
|
|
<!-- ,PRODUCE_ACT_START = #{PRODUCE_ACT_START} -->
|
|
<!-- ,PRODUCE_ACT_END = #{PRODUCE_ACT_END} -->
|
|
<if test="PRODUCE_PLAN_START != null and PRODUCE_PLAN_START !='' ">
|
|
</if>
|
|
<if test="PRODUCE_PLAN_END != null and PRODUCE_PLAN_END !='' ">
|
|
</if>
|
|
<if test="PRODUCE_ACT_START != null and PRODUCE_ACT_START !='' ">
|
|
</if>
|
|
<if test="PRODUCE_ACT_END != null and PRODUCE_ACT_END !='' ">
|
|
</if>
|
|
|
|
<!-- ,SELFINS_USER_ID = #{SELFINS_USER_ID}
|
|
,SELFINS_PLAN_START = #{SELFINS_PLAN_START}
|
|
,SELFINS_PLAN_END = #{SELFINS_PLAN_END}
|
|
,SELFINS_ACT_START = #{SELFINS_ACT_START}
|
|
,SELFINS_ACT_END = #{SELFINS_ACT_END} -->
|
|
|
|
<if test="SELFINS_PLAN_START != null and SELFINS_PLAN_START !='' ">
|
|
</if>
|
|
<if test="SELFINS_PLAN_END != null and SELFINS_PLAN_END !='' ">
|
|
</if>
|
|
<if test="SELFINS_ACT_START != null and SELFINS_ACT_START !='' ">
|
|
</if>
|
|
<if test="SELFINS_ACT_END != null and SELFINS_ACT_END !='' ">
|
|
</if>
|
|
|
|
<!-- ,FINALINS_USER_ID = #{FINALINS_USER_ID}
|
|
,FINALINS_PLAN_START = #{FINALINS_PLAN_START}
|
|
,FINALINS_PLAN_END = #{FINALINS_PLAN_END}
|
|
,FINALINS_ACT_START = #{FINALINS_ACT_START}
|
|
,FINALINS_ACT_END = #{FINALINS_ACT_END} -->
|
|
<if test="FINALINS_PLAN_START != null and FINALINS_PLAN_START !='' ">
|
|
</if>
|
|
<if test="FINALINS_PLAN_END != null and FINALINS_PLAN_END !='' ">
|
|
</if>
|
|
<if test="FINALINS_ACT_START != null and FINALINS_ACT_START !='' ">
|
|
</if>
|
|
<if test="FINALINS_ACT_END != null and FINALINS_ACT_END !='' ">
|
|
</if>
|
|
|
|
<!-- ,SHIP_USER_ID = #{SHIP_USER_ID}
|
|
,SHIP_PLAN_START = #{SHIP_PLAN_START}
|
|
,SHIP_PLAN_END = #{SHIP_PLAN_END}
|
|
,SHIP_ACT_START = #{SHIP_ACT_START}
|
|
,SHIP_ACT_END = #{SHIP_ACT_END} -->
|
|
<if test="SHIP_PLAN_START != null and SHIP_PLAN_START !='' ">
|
|
</if>
|
|
<if test="SHIP_PLAN_END != null and SHIP_PLAN_END !='' ">
|
|
</if>
|
|
<if test="SHIP_ACT_START != null and SHIP_ACT_START !='' ">
|
|
</if>
|
|
<if test="SHIP_ACT_END != null and SHIP_ACT_END !='' ">
|
|
</if>
|
|
|
|
<!-- ,SETUP_USER_ID = #{SETUP_USER_ID}
|
|
,SETUP_PLAN_START = #{SETUP_PLAN_START}
|
|
,SETUP_PLAN_END = #{SETUP_PLAN_END}
|
|
,SETUP_ACT_START = #{SETUP_ACT_START}
|
|
,SETUP_ACT_END = #{SETUP_ACT_END} -->
|
|
|
|
<if test="SETUP_PLAN_START != null and SETUP_PLAN_START !='' ">
|
|
</if>
|
|
<if test="SETUP_PLAN_END != null and SETUP_PLAN_END !='' ">
|
|
</if>
|
|
<if test="SETUP_ACT_START != null and SETUP_ACT_START !='' ">
|
|
</if>
|
|
<if test="SETUP_ACT_END != null and SETUP_ACT_END !='' ">
|
|
</if>
|
|
<if test="TASK_NAME != null and TASK_NAME !='' ">
|
|
,TASK_NAME = #{TASK_NAME }
|
|
</if>
|
|
,WRITER = #{WRITER }
|
|
<!-- ,DESIGN_RATE = #{DESIGN_RATE }
|
|
,PURCHASE_RATE = #{PURCHASE_RATE } -->
|
|
,PRODUCE_RATE = #{PRODUCE_RATE }
|
|
<!-- ,SELFINS_RATE = #{SELFINS_RATE }
|
|
,FINALINS_RATE = #{FINALINS_RATE }
|
|
,SHIP_RATE = #{SHIP_RATE }
|
|
,SETUP_RATE = #{SETUP_RATE } -->
|
|
</update>
|
|
|
|
<update id="mergeAssemblyDate" parameterType="map">
|
|
UPDATE PMS_WBS_TASK
|
|
SET
|
|
PRODUCE_ACT_START = #{PRODUCE_ACT_START}
|
|
,PRODUCE_ACT_END = #{PRODUCE_ACT_END}
|
|
,PRODUCE_RATE = #{AS_RATE}
|
|
WHERE OBJID = #{UNIT_CODE}
|
|
<!-- WHERE OBJID = (SELECT
|
|
OBJID
|
|
FROM
|
|
PMS_WBS_TASK PWT
|
|
WHERE TASK_NAME = (SELECT
|
|
TASK_NAME
|
|
FROM
|
|
PMS_WBS_TASK_STANDARD PWTS
|
|
WHERE
|
|
OBJID = #{UNIT_CODE})
|
|
AND CONTRACT_OBJID = #{PROJECT_NAME}) -->
|
|
|
|
</update>
|
|
|
|
<update id="save_setupWbsTaskProductForm" parameterType="map">
|
|
INSERT INTO SETUP_WBS_TASK (
|
|
OBJID
|
|
,CONTRACT_OBJID
|
|
,PARENT_OBJID
|
|
,TASK_NAME
|
|
,TASK_CATEGORY
|
|
<if test="SETUP_PLAN_START != null and SETUP_PLAN_START !='' ">
|
|
,SETUP_PLAN_START
|
|
</if>
|
|
<if test="SETUP_PLAN_END != null and SETUP_PLAN_END !='' ">
|
|
,SETUP_PLAN_END
|
|
</if>
|
|
<if test="SETUP_ACT_START != null and SETUP_ACT_START !='' ">
|
|
,SETUP_ACT_START
|
|
</if>
|
|
<if test="SETUP_ACT_END != null and SETUP_ACT_END !='' ">
|
|
,SETUP_ACT_END
|
|
</if>
|
|
<if test="EMPLOYEES_IN != null and EMPLOYEES_IN !='' ">
|
|
,EMPLOYEES_IN
|
|
</if>
|
|
<if test="EMPLOYEES_OUT != null and EMPLOYEES_OUT !='' ">
|
|
,EMPLOYEES_OUT
|
|
</if>
|
|
,WRITER
|
|
,SETUP_RATE
|
|
) VALUES (
|
|
#{OBJID }
|
|
,#{CONTRACT_OBJID }
|
|
,#{PARENT_OBJID }
|
|
,#{TASK_NAME }
|
|
,#{TASK_CATEGORY }
|
|
<if test="SETUP_PLAN_START != null and SETUP_PLAN_START !='' ">
|
|
,#{SETUP_PLAN_START}
|
|
</if>
|
|
<if test="SETUP_PLAN_END != null and SETUP_PLAN_END !='' ">
|
|
,#{SETUP_PLAN_END}
|
|
</if>
|
|
<if test="SETUP_ACT_START != null and SETUP_ACT_START !='' ">
|
|
,#{SETUP_ACT_START}
|
|
</if>
|
|
<if test="SETUP_ACT_END != null and SETUP_ACT_END !='' ">
|
|
,#{SETUP_ACT_END}
|
|
</if>
|
|
<if test="EMPLOYEES_IN != null and EMPLOYEES_IN !='' ">
|
|
,#{EMPLOYEES_IN }
|
|
</if>
|
|
<if test="EMPLOYEES_OUT != null and EMPLOYEES_OUT !='' ">
|
|
,#{EMPLOYEES_OUT }
|
|
</if>
|
|
,#{WRITER }
|
|
,#{SETUP_RATE }
|
|
) ON CONFLICT (OBJID) DO
|
|
UPDATE SET
|
|
SETUP_PLAN_START = #{SETUP_PLAN_START}
|
|
,SETUP_PLAN_END = #{SETUP_PLAN_END}
|
|
,SETUP_ACT_START = #{SETUP_ACT_START}
|
|
,SETUP_ACT_END = #{SETUP_ACT_END}
|
|
<if test="SETUP_PLAN_START != null and SETUP_PLAN_START !='' ">
|
|
</if>
|
|
<if test="SETUP_PLAN_END != null and SETUP_PLAN_END !='' ">
|
|
</if>
|
|
<if test="SETUP_ACT_START != null and SETUP_ACT_START !='' ">
|
|
</if>
|
|
<if test="SETUP_ACT_END != null and SETUP_ACT_END !='' ">
|
|
</if>
|
|
,WRITER = #{WRITER }
|
|
<if test="EMPLOYEES_IN != null and EMPLOYEES_IN !='' ">
|
|
,EMPLOYEES_IN = #{EMPLOYEES_IN }
|
|
</if>
|
|
<if test="EMPLOYEES_OUT != null and EMPLOYEES_OUT !='' ">
|
|
,EMPLOYEES_OUT = #{EMPLOYEES_OUT }
|
|
</if>
|
|
,SETUP_RATE = #{SETUP_RATE }
|
|
</update>
|
|
|
|
<!-- 해당 프로젝트의 WBS Task 목록을 가져온다. -->
|
|
<select id="getProjectProductGanttTaskList" parameterType="map" resultType="map">
|
|
SELECT * FROM
|
|
(
|
|
(SELECT
|
|
'Master' AS TASK_NAME
|
|
,'-999' AS TASK_SEQ
|
|
,'-999' AS SEQ
|
|
,'' AS DESIGN_USER_ID
|
|
,MAX(DESIGN_PLAN_START) AS DESIGN_PLAN_START
|
|
,MAX(DESIGN_PLAN_END) AS DESIGN_PLAN_END
|
|
,'' AS PURCHASE_USER_ID
|
|
,MAX(PURCHASE_PLAN_START) AS PURCHASE_PLAN_START
|
|
,MAX(PURCHASE_PLAN_END) AS PURCHASE_PLAN_END
|
|
,'' AS PRODUCE_USER_ID
|
|
,MAX(PRODUCE_PLAN_START) AS PRODUCE_PLAN_START
|
|
,MAX(PRODUCE_PLAN_END) AS PRODUCE_PLAN_END
|
|
,'' AS SELFINS_USER_ID
|
|
,MAX(SELFINS_PLAN_START) AS SELFINS_PLAN_START
|
|
,MAX(SELFINS_PLAN_END) AS SELFINS_PLAN_END
|
|
,'' AS FINALINS_USER_ID
|
|
,MAX(FINALINS_PLAN_START) AS FINALINS_PLAN_START
|
|
,MAX(FINALINS_PLAN_END) AS FINALINS_PLAN_END
|
|
,'' AS SHIP_USER_ID
|
|
,MAX(SHIP_PLAN_START) AS SHIP_PLAN_START
|
|
,MAX(SHIP_PLAN_END) AS SHIP_PLAN_END
|
|
,'' AS SETUP_USER_ID
|
|
,MAX(SETUP_PLAN_START) AS SETUP_PLAN_START
|
|
,MAX(SETUP_PLAN_END) AS SETUP_PLAN_END
|
|
,'' AS WRITER
|
|
,(sum(COALESCE(DESIGN_RATE,'0')::INTEGER) / COUNT(1))::VARCHAR AS DESIGN_RATE
|
|
,(sum(COALESCE(PURCHASE_RATE,'0')::INTEGER) / COUNT(1))::Varchar AS PURCHASE_RATE
|
|
,(sum(COALESCE(PRODUCE_RATE,'0')::INTEGER) / COUNT(1))::Varchar AS PRODUCE_RATE
|
|
,(sum(COALESCE(SELFINS_RATE,'0')::INTEGER) / COUNT(1))::Varchar AS SELFINS_RATE
|
|
,(COALESCE(MAX(FINALINS_RATE),'0')::INTEGER)::VARCHAR AS FINALINS_RATE
|
|
,(COALESCE(MAX(SHIP_RATE),'0')::INTEGER)::VARCHAR AS SHIP_RATE
|
|
,(COALESCE(MAX(SETUP_RATE),'0')::INTEGER)::VARCHAR AS SETUP_RATE
|
|
FROM
|
|
pms_wbs_task AS PW
|
|
WHERE CONTRACT_OBJID =#{OBJID}
|
|
UNION ALL
|
|
SELECT
|
|
'Master' AS TASK_NAME
|
|
,'-998' AS TASK_SEQ
|
|
,'-998' AS SEQ
|
|
,'' AS DESIGN_USER_ID
|
|
,MAX(DESIGN_ACT_START) AS DESIGN_ACT_START
|
|
,MAX(DESIGN_ACT_END) AS DESIGN_ACT_END
|
|
,'' AS PURCHASE_USER_ID
|
|
,MAX(PURCHASE_ACT_START) AS PURCHASE_ACT_START
|
|
,MAX(PURCHASE_ACT_END) AS PURCHASE_ACT_END
|
|
,'' AS PRODUCE_USER_ID
|
|
,MAX(PRODUCE_ACT_START) AS PRODUCE_ACT_START
|
|
,MAX(PRODUCE_ACT_END) AS PRODUCE_ACT_END
|
|
,'' AS SELFINS_USER_ID
|
|
,MAX(SELFINS_ACT_START) AS SELFINS_ACT_START
|
|
,MAX(SELFINS_ACT_END) AS SELFINS_ACT_END
|
|
,'' AS FINALINS_USER_ID
|
|
,MAX(FINALINS_ACT_START) AS FINALINS_ACT_START
|
|
,MAX(FINALINS_ACT_END) AS FINALINS_ACT_END
|
|
,'' AS SHIP_USER_ID
|
|
,MAX(SHIP_ACT_START) AS SHIP_ACT_START
|
|
,MAX(SHIP_ACT_END) AS SHIP_ACT_END
|
|
,'' AS SETUP_USER_ID
|
|
,MAX(SETUP_ACT_START) AS SETUP_ACT_START
|
|
,MAX(SETUP_ACT_END) AS SETUP_ACT_END
|
|
,'' AS WRITER
|
|
,(sum(COALESCE(DESIGN_RATE,'0')::INTEGER) / COUNT(1))::VARCHAR AS DESIGN_RATE
|
|
,(sum(COALESCE(PURCHASE_RATE,'0')::INTEGER) / COUNT(1))::Varchar AS PURCHASE_RATE
|
|
,(sum(COALESCE(PRODUCE_RATE,'0')::INTEGER) / COUNT(1))::Varchar AS PRODUCE_RATE
|
|
,(sum(COALESCE(SELFINS_RATE,'0')::INTEGER) / COUNT(1))::Varchar AS SELFINS_RATE
|
|
,(COALESCE(MAX(FINALINS_RATE),'0')::INTEGER)::VARCHAR AS FINALINS_RATE
|
|
,(COALESCE(MAX(SHIP_RATE),'0')::INTEGER)::VARCHAR AS SHIP_RATE
|
|
,(COALESCE(MAX(SETUP_RATE),'0')::INTEGER)::VARCHAR AS SETUP_RATE
|
|
FROM
|
|
pms_wbs_task AS PW
|
|
WHERE CONTRACT_OBJID =#{OBJID})
|
|
UNION ALL
|
|
(SELECT
|
|
TASK_NAME
|
|
,COALESCE(TASK_SEQ,'500') AS TASK_SEQ
|
|
,'0' SEQ
|
|
,DESIGN_USER_ID
|
|
,DESIGN_PLAN_START
|
|
,DESIGN_PLAN_END
|
|
,PURCHASE_USER_ID
|
|
,PURCHASE_PLAN_START
|
|
,PURCHASE_PLAN_END
|
|
,PRODUCE_USER_ID
|
|
,PRODUCE_PLAN_START
|
|
,PRODUCE_PLAN_END
|
|
,SELFINS_USER_ID
|
|
,SELFINS_PLAN_START
|
|
,SELFINS_PLAN_END
|
|
,FINALINS_USER_ID
|
|
,FINALINS_PLAN_START
|
|
,FINALINS_PLAN_END
|
|
,SHIP_USER_ID
|
|
,SHIP_PLAN_START
|
|
,SHIP_PLAN_END
|
|
,SETUP_USER_ID
|
|
,SETUP_PLAN_START
|
|
,SETUP_PLAN_END
|
|
,WRITER
|
|
,DESIGN_RATE
|
|
,PURCHASE_RATE
|
|
,PRODUCE_RATE
|
|
,SELFINS_RATE
|
|
,FINALINS_RATE
|
|
,SHIP_RATE
|
|
,SETUP_RATE
|
|
FROM
|
|
pms_wbs_task AS PW
|
|
WHERE CONTRACT_OBJID = #{OBJID}
|
|
|
|
UNION ALL
|
|
SELECT
|
|
TASK_NAME
|
|
,COALESCE(TASK_SEQ,'500') AS TASK_SEQ
|
|
,'1' SEQ
|
|
,DESIGN_USER_ID
|
|
,DESIGN_ACT_START
|
|
,DESIGN_ACT_END
|
|
,PURCHASE_USER_ID
|
|
,PURCHASE_ACT_START
|
|
,PURCHASE_ACT_END
|
|
,PRODUCE_USER_ID
|
|
,PRODUCE_ACT_START
|
|
,PRODUCE_ACT_END
|
|
,SELFINS_USER_ID
|
|
,SELFINS_ACT_START
|
|
,SELFINS_ACT_END
|
|
,FINALINS_USER_ID
|
|
,FINALINS_ACT_START
|
|
,FINALINS_ACT_END
|
|
,SHIP_USER_ID
|
|
,SHIP_ACT_START
|
|
,SHIP_ACT_END
|
|
,SETUP_USER_ID
|
|
,SETUP_ACT_START
|
|
,SETUP_ACT_END
|
|
,WRITER
|
|
,DESIGN_RATE
|
|
,PURCHASE_RATE
|
|
,PRODUCE_RATE
|
|
,SELFINS_RATE
|
|
,FINALINS_RATE
|
|
,SHIP_RATE
|
|
,SETUP_RATE
|
|
FROM
|
|
pms_wbs_task AS PW
|
|
WHERE CONTRACT_OBJID = #{OBJID})
|
|
) AS T
|
|
ORDER BY TASK_SEQ::INTEGER,SEQ::INTEGER
|
|
</select>
|
|
|
|
<!-- 해당 프로젝트의 WBS Task New 목록을 가져온다. -->
|
|
<select id="getProjectProductGanttTaskNewList" parameterType="map" resultType="map">
|
|
SELECT
|
|
'설계' AS TASK_NAME
|
|
,TO_CHAR(TO_DATE(MIN(DESIGN_PLAN_START),'YYYY-MM-DD'),'DD-MM-YYYY') AS PLAN_START
|
|
,MAX(DESIGN_PLAN_END) AS PLAN_END
|
|
,MAX(DESIGN_PLAN_END)::date - MIN(DESIGN_PLAN_START)::date AS du
|
|
FROM pms_wbs_task t
|
|
WHERE t.contract_objid=#{OBJID}
|
|
AND DESIGN_PLAN_END !=''
|
|
AND DESIGN_PLAN_START!=''
|
|
UNION ALL
|
|
SELECT
|
|
'구매' AS TASK_NAME
|
|
,TO_CHAR(TO_DATE(MIN(PURCHASE_PLAN_START),'YYYY-MM-DD'),'DD-MM-YYYY') AS PLAN_START
|
|
,MAX(PURCHASE_PLAN_END) AS PLAN_END
|
|
,MAX(PURCHASE_PLAN_END)::date - MIN(PURCHASE_PLAN_START)::date AS du
|
|
FROM pms_wbs_task t
|
|
WHERE t.contract_objid=#{OBJID}
|
|
AND PURCHASE_PLAN_END !=''
|
|
AND PURCHASE_PLAN_START!=''
|
|
UNION ALL
|
|
SELECT
|
|
'제작' AS TASK_NAME
|
|
,TO_CHAR(TO_DATE(MIN(PRODUCE_PLAN_START),'YYYY-MM-DD'),'DD-MM-YYYY') AS PLAN_START
|
|
,MAX(PRODUCE_PLAN_END) AS PLAN_END
|
|
,MAX(PRODUCE_PLAN_END)::date - MIN(PRODUCE_PLAN_START)::date AS du
|
|
FROM pms_wbs_task t
|
|
WHERE t.contract_objid=#{OBJID}
|
|
AND PRODUCE_PLAN_END !=''
|
|
AND PRODUCE_PLAN_START!=''
|
|
UNION ALL
|
|
SELECT
|
|
'출하' AS TASK_NAME
|
|
,TO_CHAR(TO_DATE(MIN(SHIP_PLAN_START),'YYYY-MM-DD'),'DD-MM-YYYY') AS PLAN_START
|
|
,MAX(SHIP_PLAN_END) AS PLAN_END
|
|
,MAX(SHIP_PLAN_END)::date - MIN(SHIP_PLAN_START)::date AS du
|
|
FROM pms_wbs_task t
|
|
WHERE t.contract_objid=#{OBJID}
|
|
AND SHIP_PLAN_END !=''
|
|
AND SHIP_PLAN_START!=''
|
|
UNION ALL
|
|
SELECT
|
|
'셋업' as TASK_NAME ,
|
|
TO_CHAR(TO_DATE(MIN(SETUP_PLAN_START), 'YYYY-MM-DD'), 'DD-MM-YYYY') as PLAN_START ,
|
|
MAX(SETUP_PLAN_END) as PLAN_END ,
|
|
MAX(SETUP_PLAN_END)::date - MIN(SETUP_PLAN_START)::date as du
|
|
FROM
|
|
SETUP_WBS_TASK S
|
|
WHERE S.CONTRACT_OBJID =#{OBJID}
|
|
AND SETUP_PLAN_END != ''
|
|
AND SETUP_PLAN_START != ''
|
|
<!-- UNION ALL
|
|
SELECT
|
|
'자체검수' AS TASK_NAME
|
|
,TO_CHAR(TO_DATE(MIN(SELFINS_PLAN_START),'YYYY-MM-DD'),'DD-MM-YYYY') AS PLAN_START
|
|
,MAX(SELFINS_PLAN_END) AS PLAN_END
|
|
,MAX(SELFINS_PLAN_END)::date - MIN(SELFINS_PLAN_START)::date AS du
|
|
FROM pms_wbs_task t
|
|
WHERE t.contract_objid=#{OBJID}
|
|
AND SELFINS_PLAN_END !=''
|
|
AND SELFINS_PLAN_START!=''
|
|
UNION ALL
|
|
SELECT
|
|
'최종검수' AS TASK_NAME
|
|
,TO_CHAR(TO_DATE(MIN(FINALINS_PLAN_START),'YYYY-MM-DD'),'DD-MM-YYYY') AS PLAN_START
|
|
,MAX(FINALINS_PLAN_END) AS PLAN_END
|
|
,MAX(FINALINS_PLAN_END)::date - MIN(FINALINS_PLAN_START)::date AS du
|
|
FROM pms_wbs_task t
|
|
WHERE t.contract_objid=#{OBJID}
|
|
AND FINALINS_PLAN_END !=''
|
|
AND FINALINS_PLAN_START!='' -->
|
|
</select>
|
|
|
|
<!-- 해당 프로젝트의 WBS Task 목록을 가져온다. -->
|
|
<select id="wbsTaskProductGantt" parameterType="map" resultType="map">
|
|
SELECT * FROM ((SELECT
|
|
'MASTER' AS TASK_NAME
|
|
,MIN(LEAST(DESIGN_PLAN_START,PURCHASE_PLAN_START,PRODUCE_PLAN_START,SELFINS_PLAN_START,FINALINS_PLAN_START,SHIP_PLAN_START,SETUP_PLAN_START)) AS PLAN_START
|
|
,MAX(GREATEST(DESIGN_PLAN_END,PURCHASE_PLAN_END,PRODUCE_PLAN_END,SELFINS_PLAN_END,FINALINS_PLAN_END,SHIP_PLAN_END,SETUP_PLAN_END)) AS PLAN_END
|
|
,'0' AS TASK_SEQ
|
|
,'0' AS SEQ
|
|
FROM
|
|
PMS_WBS_TASK AS PW
|
|
WHERE CONTRACT_OBJID =#{OBJID}
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
'MASTER' AS TASK_NAME
|
|
,MIN(LEAST(DESIGN_ACT_START,PURCHASE_ACT_START,PRODUCE_ACT_START,SELFINS_ACT_START,FINALINS_ACT_START,SHIP_ACT_START,SETUP_ACT_START)) AS ACT_START
|
|
,MAX(GREATEST(DESIGN_ACT_END,PURCHASE_ACT_END,PRODUCE_ACT_END,SELFINS_ACT_END,FINALINS_ACT_END,SHIP_ACT_END,SETUP_ACT_END)) AS ACT_END
|
|
,'0' AS TASK_SEQ
|
|
,'0' AS SEQ
|
|
FROM
|
|
PMS_WBS_TASK AS PW
|
|
WHERE CONTRACT_OBJID =#{OBJID})
|
|
UNION ALL
|
|
(
|
|
SELECT
|
|
TASK_NAME
|
|
,LEAST(DESIGN_PLAN_START,PURCHASE_PLAN_START,PRODUCE_PLAN_START,SELFINS_PLAN_START,FINALINS_PLAN_START,SHIP_PLAN_START,SETUP_PLAN_START) AS PLAN_START
|
|
,GREATEST(DESIGN_PLAN_END,PURCHASE_PLAN_END,PRODUCE_PLAN_END,SELFINS_PLAN_END,FINALINS_PLAN_END,SHIP_PLAN_END,SETUP_PLAN_END) AS PLAN_END
|
|
,CASE WHEN TASK_SEQ =''
|
|
THEN '999'
|
|
ELSE TASK_SEQ END AS TASK_SEQ
|
|
,'0' SEQ
|
|
FROM
|
|
PMS_WBS_TASK AS PW
|
|
WHERE CONTRACT_OBJID =#{OBJID}
|
|
UNION ALL
|
|
|
|
SELECT
|
|
TASK_NAME
|
|
,LEAST(DESIGN_ACT_START,PURCHASE_ACT_START,PRODUCE_ACT_START,SELFINS_ACT_START,FINALINS_ACT_START,SHIP_ACT_START,SETUP_ACT_START) AS ACT_START
|
|
,GREATEST(DESIGN_ACT_END,PURCHASE_ACT_END,PRODUCE_ACT_END,SELFINS_ACT_END,FINALINS_ACT_END,SHIP_ACT_END,SETUP_ACT_END) AS ACT_END
|
|
,CASE WHEN TASK_SEQ =''
|
|
THEN '999'
|
|
ELSE TASK_SEQ END AS TASK_SEQ
|
|
,'1' SEQ
|
|
FROM
|
|
PMS_WBS_TASK AS PW
|
|
WHERE CONTRACT_OBJID =#{OBJID})) AS T
|
|
ORDER BY TASK_SEQ::INTEGER,SEQ::INTEGER
|
|
</select>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- //계약정보를 받아 프로젝트 최초저장 -->
|
|
<insert id="createProject" parameterType="map">
|
|
INSERT INTO
|
|
PROJECT_MGMT (
|
|
OBJID
|
|
,CONTRACT_OBJID
|
|
,CATEGORY_CD
|
|
,CUSTOMER_OBJID
|
|
,PRODUCT
|
|
,CUSTOMER_PROJECT_NAME
|
|
,STATUS_CD
|
|
,DUE_DATE
|
|
,LOCATION
|
|
,SETUP
|
|
,FACILITY
|
|
,FACILITY_QTY
|
|
,FACILITY_TYPE
|
|
,FACILITY_DEPTH
|
|
,PRODUCTION_NO
|
|
,BUS_CAL_CD
|
|
,CATEGORY1_CD
|
|
,CHG_USER_ID
|
|
,PLAN_DATE
|
|
,COMPLETE_DATE
|
|
,RESULT_CD
|
|
,PROJECT_NO
|
|
,PM_USER_ID
|
|
,CONTRACT_PRICE
|
|
,CONTRACT_PRICE_CURRENCY
|
|
,CONTRACT_CURRENCY
|
|
,REGDATE
|
|
,WRITER
|
|
,CONTRACT_NO
|
|
,CUSTOMER_EQUIP_NAME
|
|
,REQ_DEL_DATE
|
|
,CONTRACT_DEL_DATE
|
|
,CONTRACT_COMPANY
|
|
,CONTRACT_DATE
|
|
,PO_NO
|
|
,MANUFACTURE_PLANT
|
|
,CONTRACT_RESULT
|
|
,PROJECT_NAME
|
|
,SPEC_USER_ID
|
|
,SPEC_PLAN_DATE
|
|
,SPEC_COMP_DATE
|
|
,SPEC_RESULT_CD
|
|
,EST_PLAN_DATE
|
|
,EST_USER_ID
|
|
,EST_COMP_DATE
|
|
,EST_RESULT_CD
|
|
,AREA_CD
|
|
,MECHANICAL_TYPE
|
|
,OVERHAUL_ORDER
|
|
,IS_TEMP
|
|
,PART_OBJID
|
|
,PART_NO
|
|
,PART_NAME
|
|
,QUANTITY
|
|
)
|
|
|
|
(
|
|
SELECT
|
|
#{OBJID}
|
|
,#{objId}
|
|
,CATEGORY_CD
|
|
,CUSTOMER_OBJID
|
|
,PRODUCT
|
|
,CUSTOMER_PROJECT_NAME
|
|
,STATUS_CD
|
|
,DUE_DATE
|
|
,LOCATION
|
|
,SETUP
|
|
,#{facility}
|
|
,#{facility_qty}
|
|
,FACILITY_TYPE
|
|
,#{facility_depth}
|
|
,PRODUCTION_NO
|
|
,BUS_CAL_CD
|
|
,CATEGORY1_CD
|
|
,CHG_USER_ID
|
|
,PLAN_DATE
|
|
,COMPLETE_DATE
|
|
,RESULT_CD
|
|
<!-- 기존 PROJECT_NO 자동생성 로직 (주석처리)
|
|
<choose>
|
|
<when test="overhaul_project_no != null and overhaul_project_no !='' ">
|
|
,#{overhaul_project_no}
|
|
</when>
|
|
<otherwise>
|
|
,MECHANICAL_TYPE || '-' ||
|
|
(SELECT CASE
|
|
WHEN PROJECT_NO ~ '[-\s][0-9]+$'
|
|
THEN REGEXP_REPLACE(PROJECT_NO, '.*[-\s]([0-9]+)$', '\1')::integer+1
|
|
ELSE NULL
|
|
END AS extracted_number
|
|
FROM PROJECT_MGMT
|
|
WHERE PROJECT_NO NOT LIKE '%\_%' ESCAPE '\'
|
|
ORDER BY extracted_number DESC NULLS LAST
|
|
LIMIT 1)
|
|
</otherwise>
|
|
</choose>
|
|
-->
|
|
|
|
<!-- 신규 PROJECT_NO 생성 로직: 주문유형-제품구분-날짜-순번 형식 (예: R-AS-250302-001) -->
|
|
,(
|
|
SELECT
|
|
-- 주문유형 코드 (CATEGORY_CD를 영문 약어로 매핑)
|
|
CASE CODE_NAME(CATEGORY_CD)
|
|
WHEN '오버홀' THEN 'O'
|
|
WHEN '개조' THEN 'M'
|
|
WHEN '개발' THEN 'D'
|
|
WHEN '견적' THEN 'Q'
|
|
WHEN '수리' THEN 'R'
|
|
WHEN '판매' THEN 'S'
|
|
ELSE 'T'
|
|
END || '-' ||
|
|
-- 제품구분 코드 (PRODUCT의 CODE_NAME에서 슬래시 제거)
|
|
REPLACE(CODE_NAME(PRODUCT), '/', '') || '-' ||
|
|
-- 날짜 (YYMMDD)
|
|
TO_CHAR(CURRENT_DATE, 'YYMMDD') || '-' ||
|
|
-- 순번 (001, 002, ...)
|
|
LPAD(
|
|
COALESCE(
|
|
(
|
|
SELECT MAX(SUBSTRING(PROJECT_NO FROM '\d{3}$')::INTEGER) + 1
|
|
FROM PROJECT_MGMT
|
|
WHERE PROJECT_NO LIKE
|
|
CASE CODE_NAME(CATEGORY_CD)
|
|
WHEN '오버홀' THEN 'O'
|
|
WHEN '개조' THEN 'M'
|
|
WHEN '개발' THEN 'D'
|
|
WHEN '견적' THEN 'Q'
|
|
WHEN '수리' THEN 'R'
|
|
WHEN '판매' THEN 'S'
|
|
ELSE 'T'
|
|
END || '-' ||
|
|
REPLACE(CODE_NAME(PRODUCT), '/', '') || '-' ||
|
|
TO_CHAR(CURRENT_DATE, 'YYMMDD') || '-%'
|
|
),
|
|
1
|
|
)::TEXT,
|
|
3,
|
|
'0'
|
|
)
|
|
FROM CONTRACT_MGMT
|
|
WHERE OBJID = #{objId}
|
|
)
|
|
,PM_USER_ID
|
|
,#{contract_price}
|
|
,#{contract_price_currency}
|
|
,#{contract_currency}
|
|
,now()
|
|
,WRITER
|
|
,CONTRACT_NO
|
|
,CUSTOMER_EQUIP_NAME
|
|
,REQ_DEL_DATE
|
|
,CONTRACT_DEL_DATE
|
|
,CONTRACT_COMPANY
|
|
,CONTRACT_DATE
|
|
,PO_NO
|
|
,MANUFACTURE_PLANT
|
|
,CONTRACT_RESULT
|
|
,#{project_name}
|
|
,SPEC_USER_ID
|
|
,SPEC_PLAN_DATE
|
|
,SPEC_COMP_DATE
|
|
,SPEC_RESULT_CD
|
|
,EST_PLAN_DATE
|
|
,EST_USER_ID
|
|
,EST_COMP_DATE
|
|
,EST_RESULT_CD
|
|
,AREA_CD
|
|
,MECHANICAL_TYPE
|
|
,#{overhaul_order}
|
|
,#{is_temp}
|
|
,#{part_objid}
|
|
,#{part_no}
|
|
,#{part_name}
|
|
,#{quantity}
|
|
FROM CONTRACT_MGMT
|
|
WHERE OBJID=#{objId}
|
|
)
|
|
</insert>
|
|
|
|
|
|
<!-- //계약정보를 받아 프로젝트 TASK 최초저장 -->
|
|
<insert id="insertProjectTask" parameterType="map">
|
|
INSERT INTO
|
|
PMS_WBS_TASK (
|
|
OBJID
|
|
,CONTRACT_OBJID
|
|
,TASK_NAME
|
|
,TASK_SEQ
|
|
,UNIT_NO
|
|
,WRITER
|
|
)
|
|
(SELECT HASHTEXT(REPLACE(GEN_RANDOM_UUID()::VARCHAR,'-',''))::VARCHAR
|
|
,#{OBJID}
|
|
,T.TASK_NAME
|
|
,T.TASK_SEQ
|
|
,T.UNIT_NO
|
|
,#{writer}
|
|
FROM PMS_WBS_TASK_STANDARD AS T LEFT JOIN PMS_WBS_TEMPLATE AS T1
|
|
ON T.PARENT_OBJID = T1.OBJID
|
|
WHERE T1.PRODUCT_OBJID= (SELECT PRODUCT FROM CONTRACT_MGMT WHERE OBJID = #{contract_objid}
|
|
AND T1.TITLE=#{customer_product}
|
|
)
|
|
)
|
|
</insert>
|
|
|
|
<select id="getWbsTaskListByProject" parameterType="map" resultType="map">
|
|
SELECT
|
|
T.OBJID
|
|
,T.TASK_NAME
|
|
,T.TASK_SEQ
|
|
,T.UNIT_NO
|
|
FROM PMS_WBS_TASK_STANDARD AS T
|
|
LEFT JOIN PMS_WBS_TEMPLATE AS T1
|
|
ON T.PARENT_OBJID = T1.OBJID
|
|
WHERE T1.PRODUCT_OBJID= (SELECT PRODUCT FROM CONTRACT_MGMT WHERE OBJID = #{contract_objid} AND T1.TITLE=#{customer_product})
|
|
</select>
|
|
|
|
<select id="getProjectNoList" parameterType="map" resultType="map">
|
|
SELECT * FROM PROJECT_MGMT AS T
|
|
WHERE T.PROJECT_NO = #{project_no}
|
|
<if test="old_project_no != null and old_project_no !='' ">
|
|
AND T.PROJECT_NO != #{old_project_no}
|
|
</if>
|
|
</select>
|
|
|
|
|
|
|
|
<!-- 프로젝트 정보 가져온다. -->
|
|
<select id="getProjectMngInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID
|
|
,FACILITY_QTY
|
|
,FACILITY
|
|
,FACILITY_DEPTH
|
|
,PROJECT_NO
|
|
,CONTRACT_PRICE
|
|
,CONTRACT_PRICE_CURRENCY
|
|
,CONTRACT_CURRENCY
|
|
,PROJECT_NAME
|
|
,CONTRACT_DEL_DATE
|
|
FROM PROJECT_MGMT
|
|
WHERE OBJID = #{OBJID}
|
|
</select>
|
|
|
|
|
|
<!-- //프로젝트 정보 업데이트 -->
|
|
<update id="ModifyProject" parameterType="map">
|
|
UPDATE PROJECT_MGMT
|
|
SET FACILITY_QTY = #{facility_qty}
|
|
,PROJECT_NO = #{project_no}
|
|
,CONTRACT_PRICE = #{contract_price}
|
|
,CONTRACT_PRICE_CURRENCY = #{contract_price_currency}
|
|
,CONTRACT_CURRENCY = #{contract_currency}
|
|
,PROJECT_NAME = #{project_name}
|
|
,FACILITY = #{facility}
|
|
,FACILITY_DEPTH = #{facility_depth}
|
|
,CONTRACT_DEL_DATE = #{contract_del_date}
|
|
WHERE OBJID = #{OBJID}
|
|
</update>
|
|
|
|
<!-- //영업정보 수정시 프로젝트 정보 업데이트 -->
|
|
<update id="ModifyProjectByContract" parameterType="map">
|
|
UPDATE PROJECT_MGMT
|
|
SET
|
|
DUE_DATE = #{due_date}
|
|
,CUSTOMER_PROJECT_NAME = #{customer_project_name}
|
|
,LOCATION = #{location}
|
|
,SETUP = #{setup}
|
|
,FACILITY = #{facility}
|
|
,FACILITY_TYPE = #{facility_type}
|
|
,FACILITY_DEPTH = #{facility_depth}
|
|
,CONTRACT_DATE = #{contract_date}
|
|
,PO_NO = #{po_no}
|
|
,PM_USER_ID = #{pm_user_id}
|
|
,CONTRACT_CURRENCY = #{contract_currency}
|
|
,CONTRACT_PRICE_CURRENCY = #{contract_price_currency}
|
|
,CONTRACT_PRICE = #{contract_price}
|
|
,PROJECT_NAME = #{project_name}
|
|
,CONTRACT_DEL_DATE = #{contract_del_date}
|
|
,REQ_DEL_DATE = #{req_del_date}
|
|
,CONTRACT_COMPANY = #{contract_company}
|
|
,MANUFACTURE_PLANT = #{manufacture_plant}
|
|
,PART_OBJID = #{part_objid}
|
|
,PART_NO = #{part_no}
|
|
,PART_NAME = #{part_name}
|
|
,QUANTITY = #{quantity}
|
|
WHERE CONTRACT_OBJID = #{objId}
|
|
AND PART_OBJID = #{part_objid}
|
|
</update>
|
|
|
|
<delete id="deleteProjectMngInfo" parameterType="map">
|
|
DELETE FROM PROJECT_MGMT
|
|
WHERE 1=1
|
|
<if test="checkArr != null and checkArr !=''">
|
|
<![CDATA[ AND 0 < POSITION(OBJID::TEXT || ',' IN #{checkArr}||',') ]]>
|
|
</if>
|
|
</delete>
|
|
|
|
|
|
|
|
<select id="getProjectTimeLineList" parameterType="map" resultType="map">
|
|
SELECT
|
|
T.PROJECT_NO,
|
|
REPLACE(T.DESIGN_PLAN_START, '-', '') AS DESIGN_PLAN_START,
|
|
REPLACE(T.DESIGN_PLAN_END, '-', '') AS DESIGN_PLAN_END,
|
|
SUBSTR(REPLACE(T.DESIGN_PLAN_START, '-', ''), 1, 4) AS DESIGN_PLAN_START_YYYY,
|
|
SUBSTR(REPLACE(T.DESIGN_PLAN_START, '-', ''), 5, 2) AS DESIGN_PLAN_START_MM,
|
|
SUBSTR(REPLACE(T.DESIGN_PLAN_START, '-', ''), 7, 2) AS DESIGN_PLAN_START_DD,
|
|
SUBSTR(REPLACE(T.DESIGN_PLAN_END, '-', ''), 1, 4) AS DESIGN_PLAN_END_YYYY,
|
|
SUBSTR(REPLACE(T.DESIGN_PLAN_END, '-', ''), 5, 2) AS DESIGN_PLAN_END_MM,
|
|
SUBSTR(REPLACE(T.DESIGN_PLAN_END, '-', ''), 7, 2) AS DESIGN_PLAN_END_DD,
|
|
CASE
|
|
WHEN T.DESIGN_ACT_START IS NULL OR T.DESIGN_ACT_START = ''
|
|
THEN REPLACE(T.DESIGN_PLAN_START, '-', '')
|
|
ELSE REPLACE(T.DESIGN_ACT_START, '-', '')
|
|
END AS DESIGN_ACT_START,
|
|
REPLACE(T.DESIGN_ACT_END, '-', '') AS DESIGN_ACT_END,
|
|
<!-- SUBSTR(REPLACE(T.DESIGN_ACT_START, '-', ''), 1, 4) AS DESIGN_ACT_START_YYYY,
|
|
SUBSTR(REPLACE(T.DESIGN_ACT_START, '-', ''), 5, 2) AS DESIGN_ACT_START_MM,
|
|
SUBSTR(REPLACE(T.DESIGN_ACT_START, '-', ''), 7, 2) AS DESIGN_ACT_START_DD,
|
|
SUBSTR(REPLACE(T.DESIGN_ACT_END, '-', ''), 1, 4) AS DESIGN_ACT_END_YYYY,
|
|
SUBSTR(REPLACE(T.DESIGN_ACT_END, '-', ''), 5, 2) AS DESIGN_ACT_END_MM,
|
|
SUBSTR(REPLACE(T.DESIGN_ACT_END, '-', ''), 7, 2) AS DESIGN_ACT_END_DD, -->
|
|
CASE
|
|
WHEN REPLACE(T.PURCHASE_PLAN_START, '-', '') <![CDATA[ < ]]> REPLACE(T.DESIGN_PLAN_END, '-', '')
|
|
THEN REPLACE(T.DESIGN_PLAN_END, '-', '')
|
|
ELSE REPLACE(T.PURCHASE_PLAN_START, '-', '')
|
|
END AS PURCHASE_PLAN_START,
|
|
REPLACE(T.PURCHASE_PLAN_END, '-', '') AS PURCHASE_PLAN_END,
|
|
<!-- SUBSTR(REPLACE(T.PURCHASE_PLAN_START, '-', ''), 1, 4) AS PURCHASE_PLAN_START_YYYY,
|
|
SUBSTR(REPLACE(T.PURCHASE_PLAN_START, '-', ''), 5, 2) AS PURCHASE_PLAN_START_MM,
|
|
SUBSTR(REPLACE(T.PURCHASE_PLAN_START, '-', ''), 7, 2) AS PURCHASE_PLAN_START_DD,
|
|
SUBSTR(REPLACE(T.PURCHASE_PLAN_END, '-', ''), 1, 4) AS PURCHASE_PLAN_END_YYYY,
|
|
SUBSTR(REPLACE(T.PURCHASE_PLAN_END, '-', ''), 5, 2) AS PURCHASE_PLAN_END_MM,
|
|
SUBSTR(REPLACE(T.PURCHASE_PLAN_END, '-', ''), 7, 2) AS PURCHASE_PLAN_END_DD, -->
|
|
CASE
|
|
WHEN REPLACE(T.PURCHASE_ACT_START, '-', '') <![CDATA[ < ]]> REPLACE(T.DESIGN_ACT_END, '-', '')
|
|
THEN REPLACE(T.DESIGN_ACT_END, '-', '')
|
|
WHEN T.PURCHASE_ACT_START IS NULL OR T.PURCHASE_ACT_START = ''
|
|
THEN REPLACE(T.DESIGN_PLAN_START, '-', '')
|
|
ELSE REPLACE(T.PURCHASE_ACT_START, '-', '')
|
|
END AS PURCHASE_ACT_START,
|
|
REPLACE(T.PURCHASE_ACT_END, '-', '') AS PURCHASE_ACT_END,
|
|
<!-- SUBSTR(REPLACE(T.PURCHASE_ACT_START, '-', ''), 1, 4) AS PURCHASE_ACT_START_YYYY,
|
|
SUBSTR(REPLACE(T.PURCHASE_ACT_START, '-', ''), 5, 2) AS PURCHASE_ACT_START_MM,
|
|
SUBSTR(REPLACE(T.PURCHASE_ACT_START, '-', ''), 7, 2) AS PURCHASE_ACT_START_DD,
|
|
SUBSTR(REPLACE(T.PURCHASE_ACT_END, '-', ''), 1, 4) AS PURCHASE_ACT_END_YYYY,
|
|
SUBSTR(REPLACE(T.PURCHASE_ACT_END, '-', ''), 5, 2) AS PURCHASE_ACT_END_MM,
|
|
SUBSTR(REPLACE(T.PURCHASE_ACT_END, '-', ''), 7, 2) AS PURCHASE_ACT_END_DD, -->
|
|
CASE
|
|
WHEN REPLACE(T.PRODUCE_PLAN_START, '-', '') <![CDATA[ < ]]> REPLACE(T.PURCHASE_PLAN_END, '-', '')
|
|
THEN REPLACE(T.PURCHASE_PLAN_END, '-', '')
|
|
ELSE REPLACE(T.PRODUCE_PLAN_START, '-', '')
|
|
END AS PRODUCE_PLAN_START,
|
|
REPLACE(T.PRODUCE_PLAN_END, '-', '') AS PRODUCE_PLAN_END,
|
|
<!-- SUBSTR(REPLACE(T.PRODUCE_PLAN_START, '-', ''), 1, 4) AS PRODUCE_PLAN_START_YYYY,
|
|
SUBSTR(REPLACE(T.PRODUCE_PLAN_START, '-', ''), 5, 2) AS PRODUCE_PLAN_START_MM,
|
|
SUBSTR(REPLACE(T.PRODUCE_PLAN_START, '-', ''), 7, 2) AS PRODUCE_PLAN_START_DD,
|
|
SUBSTR(REPLACE(T.PRODUCE_PLAN_END, '-', ''), 1, 4) AS PRODUCE_PLAN_END_YYYY,
|
|
SUBSTR(REPLACE(T.PRODUCE_PLAN_END, '-', ''), 5, 2) AS PRODUCE_PLAN_END_MM,
|
|
SUBSTR(REPLACE(T.PRODUCE_PLAN_END, '-', ''), 7, 2) AS PRODUCE_PLAN_END_DD, -->
|
|
CASE
|
|
WHEN REPLACE(T.PRODUCE_ACT_START, '-', '') <![CDATA[ < ]]> REPLACE(T.PURCHASE_ACT_END, '-', '')
|
|
THEN REPLACE(T.PURCHASE_ACT_END, '-', '')
|
|
WHEN T.PRODUCE_ACT_START IS NULL OR T.PRODUCE_ACT_START = ''
|
|
THEN REPLACE(T.PRODUCE_PLAN_START, '-', '')
|
|
ELSE REPLACE(T.PRODUCE_ACT_START, '-', '')
|
|
END AS PRODUCE_ACT_START,
|
|
REPLACE(T.PRODUCE_ACT_END, '-', '') AS PRODUCE_ACT_END,
|
|
<!-- SUBSTR(REPLACE(T.PRODUCE_ACT_START, '-', ''), 1, 4) AS PRODUCE_ACT_START_YYYY,
|
|
SUBSTR(REPLACE(T.PRODUCE_ACT_START, '-', ''), 5, 2) AS PRODUCE_ACT_START_MM,
|
|
SUBSTR(REPLACE(T.PRODUCE_ACT_START, '-', ''), 7, 2) AS PRODUCE_ACT_START_DD,
|
|
SUBSTR(REPLACE(T.PRODUCE_ACT_END, '-', ''), 1, 4) AS PRODUCE_ACT_END_YYYY,
|
|
SUBSTR(REPLACE(T.PRODUCE_ACT_END, '-', ''), 5, 2) AS PRODUCE_ACT_END_MM,
|
|
SUBSTR(REPLACE(T.PRODUCE_ACT_END, '-', ''), 7, 2) AS PRODUCE_ACT_END_DD, -->
|
|
REPLACE(T.SHIP_PLAN_END, '-', '') AS SHIP_PLAN_END,
|
|
REPLACE(T.SHIP_ACT_END, '-', '') AS SHIP_ACT_END
|
|
FROM (
|
|
SELECT
|
|
PM.PROJECT_NO,
|
|
MIN(NULLIF(PW.DESIGN_PLAN_START, '')) AS DESIGN_PLAN_START,
|
|
MAX(PW.DESIGN_PLAN_END) AS DESIGN_PLAN_END,
|
|
MIN(NULLIF(DESIGN_ACT_START, '')) as DESIGN_ACT_START ,
|
|
MAX(DESIGN_ACT_END) as DESIGN_ACT_END ,
|
|
MIN(NULLIF(PURCHASE_PLAN_START, '')) as PURCHASE_PLAN_START ,
|
|
MAX(PURCHASE_PLAN_END) as PURCHASE_PLAN_END ,
|
|
MIN(NULLIF(PURCHASE_ACT_START, '')) as PURCHASE_ACT_START ,
|
|
MAX(PURCHASE_ACT_END) as PURCHASE_ACT_END ,
|
|
MIN(NULLIF(PRODUCE_PLAN_START, '')) as PRODUCE_PLAN_START ,
|
|
MAX(PRODUCE_PLAN_END) as PRODUCE_PLAN_END ,
|
|
MIN(NULLIF(PRODUCE_ACT_START, '')) as PRODUCE_ACT_START ,
|
|
MAX(PRODUCE_ACT_END) as PRODUCE_ACT_END ,
|
|
MAX(SHIP_PLAN_END) as SHIP_PLAN_END,
|
|
MAX(SHIP_ACT_END) as SHIP_ACT_END
|
|
FROM
|
|
PMS_WBS_TASK AS PW
|
|
INNER JOIN PROJECT_MGMT AS PM ON PW.CONTRACT_OBJID = PM.OBJID
|
|
WHERE
|
|
PW.DESIGN_PLAN_START IS NOT NULL
|
|
AND PW.DESIGN_PLAN_START <![CDATA[ <= ]]> PW.DESIGN_PLAN_END
|
|
AND PROJECT_NO = 'RF7-153'
|
|
GROUP BY
|
|
PM.PROJECT_NO
|
|
) AS T
|
|
<!-- SELECT
|
|
T.PROJECT_NO
|
|
,T.TASK_NAME
|
|
,replace(T.PLAN_START,'-','') AS PLAN_START
|
|
,replace(T.PLAN_END,'-','') AS PLAN_END
|
|
,SUBSTR(PLAN_START,0,5) AS PLAN_START_YYYY
|
|
,SUBSTR(PLAN_START,6,2) AS PLAN_START_MM
|
|
,SUBSTR(PLAN_START,9,2) AS PLAN_START_DD
|
|
,SUBSTR(PLAN_END,0,5) AS PLAN_END_YYYY
|
|
,SUBSTR(PLAN_END,6,2) AS PLAN_END_MM
|
|
,SUBSTR(PLAN_END,9,2) AS PLAN_END_DD
|
|
|
|
FROM (SELECT
|
|
PM.PROJECT_NO
|
|
,TASK_NAME
|
|
,LEAST(DESIGN_PLAN_START,PURCHASE_PLAN_START,PRODUCE_PLAN_START,SELFINS_PLAN_START,FINALINS_PLAN_START,SHIP_PLAN_START,SETUP_PLAN_START) AS PLAN_START
|
|
,GREATEST(DESIGN_PLAN_END,PURCHASE_PLAN_END,PRODUCE_PLAN_END,SELFINS_PLAN_END,FINALINS_PLAN_END,SHIP_PLAN_END,SETUP_PLAN_END) AS PLAN_END
|
|
FROM
|
|
PMS_WBS_TASK AS PW,PROJECT_MGMT AS PM
|
|
WHERE PW.CONTRACT_OBJID = PM.OBJID
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(REGDATE,'YYYY') = #{Year}
|
|
</if>
|
|
ORDER BY PM.REGDATE DESC,PW.UNIT_NO
|
|
) AS T
|
|
WHERE T.PLAN_START IS NOT NULL
|
|
AND T.PLAN_END IS NOT NULL
|
|
AND T.PLAN_START <![CDATA[ <= ]]> t.PLAN_END -->
|
|
</select>
|
|
|
|
|
|
|
|
<!-- 계약 완료 건수 -->
|
|
<select id="projectMgmtTimeLineListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(CAST(TOTAL_CNT AS FLOAT)/#{COUNT_PER_PAGE})::numeric::integer as MAX_PAGE_SIZE
|
|
,TOTAL_CNT::integer
|
|
FROM (
|
|
SELECT COUNT(1)::float TOTAL_CNT
|
|
FROM(
|
|
SELECT
|
|
T.OBJID
|
|
,CATEGORY_CD
|
|
,CUSTOMER_OBJID
|
|
,PRODUCT
|
|
,REGDATE
|
|
FROM PROJECT_MGMT AS T
|
|
WHERE T.OBJID IN(SELECT T.OBJID
|
|
FROM (SELECT
|
|
PM.PROJECT_NO
|
|
,TASK_NAME
|
|
,LEAST(DESIGN_PLAN_START,PURCHASE_PLAN_START,PRODUCE_PLAN_START,SELFINS_PLAN_START,FINALINS_PLAN_START,SHIP_PLAN_START,SETUP_PLAN_START) AS PLAN_START
|
|
,GREATEST(DESIGN_PLAN_END,PURCHASE_PLAN_END,PRODUCE_PLAN_END,SELFINS_PLAN_END,FINALINS_PLAN_END,SHIP_PLAN_END,SETUP_PLAN_END) AS PLAN_END
|
|
,PM.OBJID
|
|
FROM PMS_WBS_TASK AS PW,PROJECT_MGMT AS PM
|
|
WHERE PW.CONTRACT_OBJID = PM.OBJID
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(REGDATE,'YYYY') = #{Year}
|
|
</if>
|
|
ORDER BY PM.REGDATE DESC,PW.UNIT_NO
|
|
) AS T
|
|
WHERE T.PLAN_START IS NOT NULL
|
|
AND T.PLAN_END IS NOT NULL
|
|
AND T.PLAN_START <![CDATA[ <= ]]> T.PLAN_END)
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(REGDATE,'YYYY') = #{Year}
|
|
</if>
|
|
|
|
) AS T
|
|
|
|
)AS T
|
|
WHERE 1=1
|
|
</select>
|
|
|
|
|
|
<select id="projectMgmtTimeLineList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM
|
|
(
|
|
SELECT T.*,ROW_NUMBER() OVER (ORDER BY REGDATE DESC) AS RNUM
|
|
FROM
|
|
(
|
|
SELECT
|
|
T.OBJID
|
|
,CATEGORY_CD
|
|
,CODE_NAME(CATEGORY_CD) AS CATEGORY_NAME
|
|
,CUSTOMER_OBJID
|
|
,(SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID = T.CUSTOMER_OBJID::NUMERIC) AS CUSTOMER_NAME
|
|
,PRODUCT
|
|
,CODE_NAME(PRODUCT) AS PRODUCT_NAME
|
|
,(SELECT O.CUSTOMER_PROJECT_NAME FROM CONTRACT_MGMT AS O WHERE O.OBJID = CONTRACT_OBJID) AS CUSTOMER_PROJECT_NAME
|
|
,STATUS_CD
|
|
,CODE_NAME(STATUS_CD) AS STATUS_NAME
|
|
,DUE_DATE
|
|
,LOCATION
|
|
,SETUP
|
|
,FACILITY
|
|
,CODE_NAME(FACILITY) AS FACILITY_NAME
|
|
,FACILITY_QTY
|
|
,FACILITY_TYPE
|
|
,FACILITY_DEPTH
|
|
,PRODUCTION_NO
|
|
,BUS_CAL_CD
|
|
,CODE_NAME(BUS_CAL_CD) AS BUS_CAL_NAME
|
|
,CATEGORY1_CD
|
|
,CODE_NAME(CATEGORY1_CD) AS CATEGORY1_NAME
|
|
,CHG_USER_ID
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = T.CHG_USER_ID ) AS CHG_USER_NAME
|
|
,PLAN_DATE
|
|
,COMPLETE_DATE
|
|
,RESULT_CD
|
|
,CODE_NAME(RESULT_CD) AS RESULT_NAME
|
|
,PROJECT_NO
|
|
,PM_USER_ID
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = (SELECT O.PM_USER_ID FROM CONTRACT_MGMT AS O WHERE O.OBJID = T.CONTRACT_OBJID)) AS PM_USER_NAME
|
|
,CONTRACT_PRICE
|
|
,CONTRACT_PRICE_CURRENCY
|
|
,CONTRACT_CURRENCY
|
|
,CODE_NAME(CONTRACT_CURRENCY) AS CONTRACT_CURRENCY_NAME
|
|
,REGDATE
|
|
,TO_CHAR(REGDATE,'YYYY-MM-DD') AS REG_DATE
|
|
,WRITER
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = T.WRITER ) AS WRITER_NAME
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.OBJID AND DOC_TYPE='contractMgmt01' AND UPPER(STATUS) = 'ACTIVE') AS CU01_CNT
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.OBJID AND DOC_TYPE='contractMgmt02' AND UPPER(STATUS) = 'ACTIVE') AS CU02_CNT
|
|
,CONTRACT_NO
|
|
,CUSTOMER_EQUIP_NAME
|
|
,REQ_DEL_DATE
|
|
,CONTRACT_DEL_DATE
|
|
,CONTRACT_COMPANY
|
|
,CODE_NAME(CONTRACT_COMPANY) AS CONTRACT_COMPANY_NAME
|
|
,CONTRACT_DATE
|
|
,PO_NO
|
|
,MANUFACTURE_PLANT
|
|
,CODE_NAME(MANUFACTURE_PLANT) AS MANUFACTURE_PLANT_NAME
|
|
,CONTRACT_RESULT
|
|
,CODE_NAME(CONTRACT_RESULT) AS CONTRACT_RESULT_NAME
|
|
,CODE_NAME(AREA_CD) AS AREA_NAME
|
|
,PROJECT_NAME
|
|
,MECHANICAL_TYPE
|
|
,OVERHAUL_ORDER
|
|
,((SELECT SUM(COALESCE(DESIGN_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)+
|
|
(SELECT SUM(COALESCE(PURCHASE_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)+
|
|
(SELECT SUM(COALESCE(PRODUCE_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)+
|
|
(SELECT SUM(COALESCE(SELFINS_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)+
|
|
(SELECT COALESCE(MAX(FINALINS_RATE),'0')::INTEGER FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)+
|
|
(SELECT COALESCE(MAX(SHIP_RATE),'0')::INTEGER FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)+
|
|
(SELECT COALESCE(MAX(SETUP_RATE),'0')::INTEGER FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)/7) AS TOTAL_RATE
|
|
|
|
,(SELECT SUM(COALESCE(DESIGN_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) AS DESIGN_RATE
|
|
,(SELECT SUM(COALESCE(PURCHASE_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) AS PURCHASE_RATE
|
|
,(SELECT SUM(COALESCE(PRODUCE_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) AS PRODUCE_RATE
|
|
,(SELECT SUM(COALESCE(SELFINS_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) AS SELFINS_RATE
|
|
,(SELECT COALESCE(MAX(FINALINS_RATE),'0')::INTEGER FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) AS FINALINS_RATE
|
|
,(SELECT COALESCE(MAX(SHIP_RATE),'0')::INTEGER FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) AS SHIP_RATE
|
|
,(SELECT COALESCE(MAX(SETUP_RATE),'0')::INTEGER FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) AS SETUP_RATE
|
|
,(SELECT COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) AS WBS_CNT
|
|
FROM PROJECT_MGMT AS T
|
|
WHERE T.OBJID IN(SELECT T.OBJID
|
|
FROM (SELECT
|
|
PM.PROJECT_NO
|
|
,TASK_NAME
|
|
,LEAST(DESIGN_PLAN_START,PURCHASE_PLAN_START,PRODUCE_PLAN_START,SELFINS_PLAN_START,FINALINS_PLAN_START,SHIP_PLAN_START,SETUP_PLAN_START) AS PLAN_START
|
|
,GREATEST(DESIGN_PLAN_END,PURCHASE_PLAN_END,PRODUCE_PLAN_END,SELFINS_PLAN_END,FINALINS_PLAN_END,SHIP_PLAN_END,SETUP_PLAN_END) AS PLAN_END
|
|
,PM.OBJID
|
|
FROM PMS_WBS_TASK AS PW,PROJECT_MGMT AS PM
|
|
WHERE PW.CONTRACT_OBJID = PM.OBJID
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(REGDATE,'YYYY') = #{Year}
|
|
</if>
|
|
ORDER BY PM.REGDATE DESC,PW.UNIT_NO
|
|
) AS T
|
|
WHERE T.PLAN_START IS NOT NULL
|
|
AND T.PLAN_END IS NOT NULL
|
|
AND T.PLAN_START <![CDATA[ <= ]]> T.PLAN_END)
|
|
|
|
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(REGDATE,'YYYY') = #{Year}
|
|
</if>
|
|
) AS T
|
|
) AS TT
|
|
WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END != '' and actionType != 'excel'">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_START != '' and actionType != 'excel'">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
|
|
</select>
|
|
|
|
<!-- 대시보드에서 추가로 사용 240409 -->
|
|
<select id="projectMgmtTimeLineGridList" parameterType="map" resultType="map">
|
|
SELECT
|
|
T.OBJID
|
|
,CATEGORY_CD
|
|
,CODE_NAME(CATEGORY_CD) AS CATEGORY_NAME
|
|
,CUSTOMER_OBJID
|
|
,(SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID = T.CUSTOMER_OBJID::NUMERIC) AS CUSTOMER_NAME
|
|
,PRODUCT
|
|
,CODE_NAME(PRODUCT) AS PRODUCT_NAME
|
|
,(SELECT O.CUSTOMER_PROJECT_NAME FROM CONTRACT_MGMT AS O WHERE O.OBJID = CONTRACT_OBJID) AS CUSTOMER_PROJECT_NAME
|
|
,STATUS_CD
|
|
,CODE_NAME(STATUS_CD) AS STATUS_NAME
|
|
,DUE_DATE
|
|
,LOCATION
|
|
,SETUP
|
|
,FACILITY
|
|
,CODE_NAME(FACILITY) AS FACILITY_NAME
|
|
,FACILITY_QTY
|
|
,FACILITY_TYPE
|
|
,FACILITY_DEPTH
|
|
,PRODUCTION_NO
|
|
,BUS_CAL_CD
|
|
,CODE_NAME(BUS_CAL_CD) AS BUS_CAL_NAME
|
|
,CATEGORY1_CD
|
|
,CODE_NAME(CATEGORY1_CD) AS CATEGORY1_NAME
|
|
,CHG_USER_ID
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = T.CHG_USER_ID ) AS CHG_USER_NAME
|
|
,PLAN_DATE
|
|
,COMPLETE_DATE
|
|
,RESULT_CD
|
|
,CODE_NAME(RESULT_CD) AS RESULT_NAME
|
|
,PROJECT_NO
|
|
,PM_USER_ID
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = (SELECT O.PM_USER_ID FROM CONTRACT_MGMT AS O WHERE O.OBJID = T.CONTRACT_OBJID)) AS PM_USER_NAME
|
|
,CONTRACT_PRICE
|
|
,CONTRACT_PRICE_CURRENCY
|
|
,CONTRACT_CURRENCY
|
|
,CODE_NAME(CONTRACT_CURRENCY) AS CONTRACT_CURRENCY_NAME
|
|
,REGDATE
|
|
,TO_CHAR(REGDATE,'YYYY-MM-DD') AS REG_DATE
|
|
,WRITER
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = T.WRITER ) AS WRITER_NAME
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.OBJID AND DOC_TYPE='contractMgmt01' AND UPPER(STATUS) = 'ACTIVE') AS CU01_CNT
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.OBJID AND DOC_TYPE='contractMgmt02' AND UPPER(STATUS) = 'ACTIVE') AS CU02_CNT
|
|
,CONTRACT_NO
|
|
,CUSTOMER_EQUIP_NAME
|
|
,REQ_DEL_DATE
|
|
,CONTRACT_DEL_DATE
|
|
,CONTRACT_COMPANY
|
|
,CODE_NAME(CONTRACT_COMPANY) AS CONTRACT_COMPANY_NAME
|
|
,CONTRACT_DATE
|
|
,PO_NO
|
|
,MANUFACTURE_PLANT
|
|
,CODE_NAME(MANUFACTURE_PLANT) AS MANUFACTURE_PLANT_NAME
|
|
,CONTRACT_RESULT
|
|
,CODE_NAME(CONTRACT_RESULT) AS CONTRACT_RESULT_NAME
|
|
,CODE_NAME(AREA_CD) AS AREA_NAME
|
|
,PROJECT_NAME
|
|
,MECHANICAL_TYPE
|
|
,OVERHAUL_ORDER
|
|
,(SELECT MIN(DESIGN_PLAN_START) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID AND O.DESIGN_PLAN_START IS NOT NULL AND O.DESIGN_PLAN_START <![CDATA[ <> ]]> '') AS DESIGN_PLAN_START
|
|
,(SELECT MAX(DESIGN_PLAN_END) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) AS DESIGN_PLAN_END
|
|
,(SELECT MIN(PURCHASE_PLAN_START) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID AND O.PURCHASE_PLAN_START IS NOT NULL AND O.PURCHASE_PLAN_START <![CDATA[ <> ]]> '') AS PURCHASE_PLAN_START
|
|
,(SELECT MAX(PURCHASE_PLAN_END) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) AS PURCHASE_PLAN_END
|
|
,(SELECT MIN(PRODUCE_PLAN_START) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID AND O.PRODUCE_PLAN_START IS NOT NULL AND O.PRODUCE_PLAN_START <![CDATA[ <> ]]> '') AS PRODUCE_PLAN_START
|
|
,(SELECT MAX(PRODUCE_PLAN_END) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) AS PRODUCE_PLAN_END
|
|
|
|
,((SELECT SUM(COALESCE(DESIGN_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)+
|
|
(SELECT SUM(COALESCE(PURCHASE_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)+
|
|
(SELECT SUM(COALESCE(PRODUCE_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)+
|
|
(SELECT SUM(COALESCE(SELFINS_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)+
|
|
(SELECT COALESCE(MAX(FINALINS_RATE),'0')::INTEGER FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)+
|
|
(SELECT COALESCE(MAX(SHIP_RATE),'0')::INTEGER FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)+
|
|
(SELECT COALESCE(MAX(SETUP_RATE),'0')::INTEGER FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID)/7) AS TOTAL_RATE
|
|
|
|
,(SELECT SUM(COALESCE(DESIGN_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) AS DESIGN_RATE
|
|
,(SELECT SUM(COALESCE(PURCHASE_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) AS PURCHASE_RATE
|
|
,(SELECT SUM(COALESCE(PRODUCE_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) AS PRODUCE_RATE
|
|
,(SELECT SUM(COALESCE(SELFINS_RATE,'0')::INTEGER) / COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) AS SELFINS_RATE
|
|
,(SELECT COALESCE(MAX(FINALINS_RATE),'0')::INTEGER FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) AS FINALINS_RATE
|
|
,(SELECT COALESCE(MAX(SHIP_RATE),'0')::INTEGER FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) AS SHIP_RATE
|
|
,(SELECT COALESCE(MAX(SETUP_RATE),'0')::INTEGER FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) AS SETUP_RATE
|
|
,(SELECT COUNT(1) FROM PMS_WBS_TASK AS O WHERE O.CONTRACT_OBJID = T.OBJID) AS WBS_CNT
|
|
FROM PROJECT_MGMT AS T
|
|
WHERE T.OBJID IN(SELECT T.OBJID
|
|
FROM (SELECT
|
|
PM.PROJECT_NO
|
|
,TASK_NAME
|
|
,LEAST(DESIGN_PLAN_START,PURCHASE_PLAN_START,PRODUCE_PLAN_START,SELFINS_PLAN_START,FINALINS_PLAN_START,SHIP_PLAN_START,SETUP_PLAN_START) AS PLAN_START
|
|
,GREATEST(DESIGN_PLAN_END,PURCHASE_PLAN_END,PRODUCE_PLAN_END,SELFINS_PLAN_END,FINALINS_PLAN_END,SHIP_PLAN_END,SETUP_PLAN_END) AS PLAN_END
|
|
,PM.OBJID
|
|
FROM PMS_WBS_TASK AS PW,PROJECT_MGMT AS PM
|
|
WHERE PW.CONTRACT_OBJID = PM.OBJID
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(REGDATE,'YYYY') = #{Year}
|
|
</if>
|
|
ORDER BY PM.REGDATE DESC,PW.UNIT_NO
|
|
) AS T
|
|
WHERE T.PLAN_START IS NOT NULL
|
|
AND T.PLAN_END IS NOT NULL
|
|
AND T.PLAN_START <![CDATA[ <= ]]> T.PLAN_END)
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(REGDATE,'YYYY') = #{Year}
|
|
</if>
|
|
ORDER BY SUBSTRING(PROJECT_NO,POSITION('-' IN PROJECT_NO)+1) DESC
|
|
</select>
|
|
|
|
<select id="getProject" parameterType="map" resultType="map">
|
|
SELECT
|
|
PROJECT_NAME
|
|
FORM PROJECT_MGMT
|
|
WHERE OBJID =
|
|
|
|
|
|
AND TO_CHAR(REGDATE,'YYYY') = #{Year}
|
|
|
|
</select>
|
|
|
|
<select id="getInspectionList" parameterType="map" resultType="map">
|
|
SELECT
|
|
*
|
|
<!-- ,USER_NAME(MANAGER_USER_ID) AS MANAGER_USER_NAME -->
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = MA.OBJID AND DOC_TYPE='INSPECTION_CHECKLIST_FILE' AND UPPER(STATUS) = 'ACTIVE') AS CL01_CNT
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = MA.OBJID AND DOC_TYPE='ADMISSION_INSPECTION_FILE' AND UPPER(STATUS) = 'ACTIVE') AS CL02_CNT
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = MA.OBJID AND DOC_TYPE='SUPPLEMENTARY_MATTERS_FILE' AND UPPER(STATUS) = 'ACTIVE') AS CL03_CNT
|
|
FROM
|
|
INSPECTION_MGMT MA
|
|
WHERE MA.PARENT_OBJID = #{ObjId}
|
|
</select>
|
|
|
|
<delete id="deleteAllInspectionList" parameterType="map">
|
|
DELETE FROM INSPECTION_MGMT
|
|
WHERE PARENT_OBJID = #{parentObjId}
|
|
</delete>
|
|
|
|
<update id="save_inspectionListFormPopUp" parameterType="map">
|
|
INSERT INTO INSPECTION_MGMT
|
|
(
|
|
OBJID
|
|
,PARENT_OBJID
|
|
,UNIT_CODE
|
|
,INTERNAL_INSPECTION_DATE
|
|
,INTERNAL_INSPECTION_RESULT
|
|
,INTERNAL_INSPECTION_ID
|
|
<!-- ,ADMISSION_INSPECTION_DATE
|
|
,ADMISSION_INSPECTION_RESULT
|
|
,ADMISSION_INSPECTION_ID -->
|
|
,REGDATE
|
|
,WRITER
|
|
)
|
|
VALUES
|
|
(
|
|
#{OBJID }
|
|
,#{PARENT_OBJID }
|
|
,#{UNIT_CODE }
|
|
,#{INTERNAL_INSPECTION_DATE }
|
|
,#{INTERNAL_INSPECTION_RESULT }
|
|
,#{INTERNAL_INSPECTION_ID }
|
|
<!-- ,#{ADMISSION_INSPECTION_DATE }
|
|
,#{ADMISSION_INSPECTION_RESULT }
|
|
,#{ADMISSION_INSPECTION_ID } -->
|
|
,NOW()
|
|
,#{WRITER }
|
|
) ON CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET
|
|
PARENT_OBJID = #{PARENT_OBJID }
|
|
,UNIT_CODE = #{UNIT_CODE }
|
|
,INTERNAL_INSPECTION_DATE = #{INTERNAL_INSPECTION_DATE }
|
|
,INTERNAL_INSPECTION_RESULT = #{INTERNAL_INSPECTION_RESULT }
|
|
,INTERNAL_INSPECTION_ID = #{INTERNAL_INSPECTION_ID }
|
|
<!-- ,ADMISSION_INSPECTION_DATE = #{ADMISSION_INSPECTION_DATE }
|
|
,ADMISSION_INSPECTION_RESULT = #{ADMISSION_INSPECTION_RESULT }
|
|
,ADMISSION_INSPECTION_ID = #{ADMISSION_INSPECTION_ID } -->
|
|
,REGDATE = NOW()
|
|
,WRITER = #{WRITER }
|
|
</update>
|
|
|
|
</mapper>
|