- Add Docker Compose configurations for dev, prod, and standalone environments - Add database initialization scripts (init-db.sh, init-db-docker.sh) - Add enhanced start-docker-linux.sh with DB init support - Add comprehensive database initialization guide - Support for automatic dbexport.pgsql import on first run - Include safety checks for production environment
2282 lines
76 KiB
XML
2282 lines
76 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="projectConcept">
|
|
<!-- ********************************************************************************************************** -->
|
|
<!-- //jmpark start -->
|
|
<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>
|
|
|
|
<!-- //수주활동 제품별 협조부서 등록 merge -->
|
|
<update id="mergeProjectConceptProductDeptInfo" parameterType="map">
|
|
MERGE INTO PMS_REL_PROD_REF_DEPT T USING DUAL ON (T.TARGET_OBJID = #{targetObjId} AND T.DEPT_CODE = #{deptCode})
|
|
WHEN NOT MATCHED THEN
|
|
INSERT (
|
|
OBJID
|
|
, TARGET_OBJID
|
|
, DEPT_CODE
|
|
, REGDATE
|
|
) VALUES (
|
|
#{objId}
|
|
, #{targetObjId}
|
|
, #{deptCode}
|
|
, SYSDATE
|
|
)
|
|
</update>
|
|
|
|
<!-- //수주활동 제품별 협조부서 목록 조회 -->
|
|
<select id="getProjectConceptProductDeptList" parameterType="map" resultType="map">
|
|
SELECT A.OBJID
|
|
, A.TARGET_OBJID
|
|
, A.DEPT_CODE
|
|
, (SELECT D.DEPT_NAME FROM DEPT_INFO D WHERE D.DEPT_CODE = A.DEPT_CODE) AS DEPT_NAME
|
|
, (SELECT D.LOCATION_NAME FROM DEPT_INFO D WHERE D.DEPT_CODE = A.DEPT_CODE) AS LOCATION_NAME
|
|
, TO_CHAR(A.REPLY_REQ_DATE, 'YYYY-MM-DD') AS REPLY_REQ_DATE
|
|
, A.REPLY_REQ_DATE AS REPLY_REQ_DATE_ORG
|
|
, TO_CHAR(A.REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
, A.REGDATE AS REGDATE_ORG
|
|
FROM PMS_REL_PROD_REF_DEPT A
|
|
WHERE 1=1
|
|
AND TARGET_OBJID = #{targetObjId}::numeric
|
|
ORDER BY A.REGDATE DESC
|
|
</select>
|
|
|
|
<!-- //수주활동 제품별 정보 저장 -->
|
|
<update id="mergeProjectConceptProductInfo" parameterType="map">
|
|
|
|
INSERT INTO PMS_REL_PJT_CONCEPT_PROD
|
|
(
|
|
OBJID
|
|
, TARGET_OBJID
|
|
, PROD_OBJID
|
|
, ESTIMATE_NO
|
|
, ESTIMATE_PIC
|
|
, IS_DEL
|
|
, WRITER
|
|
, REGDATE
|
|
, STATUS
|
|
)
|
|
VALUES
|
|
(
|
|
#{objId}::numeric
|
|
, #{targetObjId}::numeric
|
|
, #{productObjId}::numeric
|
|
, #{estimateNo}
|
|
, #{estimatePICUserId}
|
|
, '1'
|
|
, #{userId}
|
|
,now()
|
|
, 'create'
|
|
) ON CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET
|
|
ESTIMATE_NO = #{estimateNo}
|
|
, ESTIMATE_PIC = #{estimatePICUserId}
|
|
, IS_DEL = '1'
|
|
<!-- with upsert as (
|
|
UPDATE
|
|
PMS_REL_PJT_CONCEPT_PROD
|
|
SET
|
|
ESTIMATE_NO = #{estimateNo}
|
|
, ESTIMATE_PIC = #{estimatePICUserId}
|
|
, IS_DEL = '1'
|
|
where
|
|
TARGET_OBJID = #{targetObjId}::numeric
|
|
AND PROD_OBJID = #{productObjId}::numeric
|
|
)
|
|
|
|
INSERT INTO PMS_REL_PJT_CONCEPT_PROD(
|
|
OBJID
|
|
, TARGET_OBJID
|
|
, PROD_OBJID
|
|
, ESTIMATE_NO
|
|
, ESTIMATE_PIC
|
|
, IS_DEL
|
|
, WRITER
|
|
, REGDATE
|
|
, STATUS
|
|
)
|
|
select
|
|
#{objId}::numeric
|
|
, #{targetObjId}::numeric
|
|
, #{productObjId}::numeric
|
|
, #{estimateNo}
|
|
, #{estimatePICUserId}
|
|
, '1'
|
|
, #{userId}
|
|
,now()
|
|
, 'create'
|
|
|
|
where not exists (
|
|
select
|
|
*
|
|
from PMS_REL_PJT_CONCEPT_PROD
|
|
where TARGET_OBJID = #{targetObjId}::numeric
|
|
AND PROD_OBJID = #{productObjId}::numeric
|
|
) -->
|
|
</update>
|
|
|
|
|
|
<!-- //수주활동 연결 제품 정보 삭제 -->
|
|
<delete id="deleteconceptprod" parameterType="map">
|
|
DELETE FROM PMS_REL_PJT_CONCEPT_PROD
|
|
WHERE OBJID = #{objId}::numeric
|
|
</delete>
|
|
|
|
|
|
|
|
<!-- //수주활동 제품별 협조부서별 자료회신요청일 수정 -->
|
|
<update id="updateProjectConceptProductDeptReplyReqDate" parameterType="map">
|
|
UPDATE PMS_REL_PROD_REF_DEPT SET REPLY_REQ_DATE = #{replyReqDate} WHERE TARGET_OBJID = #{targetObjId} AND DEPT_CODE = #{deptCode}
|
|
</update>
|
|
|
|
<!-- //수주활동별 제품(입찰)목록 -->
|
|
<select id="getProjectConceptProductList_forProjectConcept" parameterType="map" resultType="map">
|
|
SELECT OBJID
|
|
, TARGET_OBJID
|
|
, PROD_OBJID
|
|
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG P WHERE P.OBJID = PROD_OBJID) AS PROD_NAME
|
|
, ESTIMATE_NO
|
|
, TO_CHAR(ESTIMATE_REQ_DATE, 'YYYY-MM-DD') AS ESTIMATE_REQ_DATE
|
|
, ESTIMATE_REQ_DATE AS ESTIMATE_REQ_DATE_ORG
|
|
, TO_CHAR(ESTIMATE_SUBMIT_DATE, 'YYYY-MM-DD') AS ESTIMATE_SUBMIT_DATE
|
|
, ESTIMATE_SUBMIT_DATE AS ESTIMATE_SUBMIT_DATE_ORG
|
|
, ESTIMATE_PIC AS ESTIMATE_PIC_USER_ID
|
|
, (SELECT USER_NAME FROM USER_INFO U WHERE U.USER_ID = ESTIMATE_PIC) AS ESTIMATE_PIC_USER_NAME
|
|
, YEARLY_AVG_PRODUCTION_CNT
|
|
, TOTAL_PRODUCTION_CNT
|
|
, BIDDING_RESULT
|
|
, CASE WHEN IS_DEL = 0 THEN 'Y'
|
|
ELSE 'N'
|
|
END AS IS_DEL
|
|
, WRITER
|
|
, STATUS
|
|
, REGDATE
|
|
FROM PMS_REL_PJT_CONCEPT_PROD
|
|
WHERE 1=1
|
|
AND TARGET_OBJID = #{targetObjId}::numeric
|
|
ORDER BY REGDATE
|
|
</select>
|
|
|
|
<!-- //수주활동 정보 등록 및 저장 -->
|
|
<update id="mergeProjectConceptInfo" parameterType="map">
|
|
|
|
with upsert as (
|
|
UPDATE
|
|
PMS_PJT_CONCEPT_INFO
|
|
SET
|
|
FOREIGN_TYPE = #{foreignType}
|
|
, OEM_OBJID = #{oemObjId}::numeric
|
|
, CAR_OBJID = #{carObjId}::numeric
|
|
, PJT_TYPE = #{projectType}
|
|
<choose>
|
|
<when test="lineInstlSite != null and !''.equals(lineInstlSite)">
|
|
, OEM_FACTORY = #{lineInstlSite}::numeric
|
|
</when>
|
|
<otherwise>
|
|
, OEM_FACTORY = null
|
|
</otherwise>
|
|
</choose>
|
|
|
|
<choose>
|
|
<when test="estimateReqDate != null and !''.equals(estimateReqDate)">
|
|
, ESTIMATE_REQ_DATE = TO_DATE(#{estimateReqDate}, 'YYYY-MM-DD')
|
|
</when>
|
|
<otherwise>
|
|
, ESTIMATE_REQ_DATE = null
|
|
</otherwise>
|
|
</choose>
|
|
|
|
<choose>
|
|
<when test="estimateSubmitDate != null and !''.equals(estimateSubmitDate)">
|
|
, ESTIMATE_SUBMIT_DATE = TO_DATE(#{estimateSubmitDate}, 'YYYY-MM-DD')
|
|
</when>
|
|
<otherwise>
|
|
, ESTIMATE_SUBMIT_DATE = null
|
|
</otherwise>
|
|
</choose>
|
|
|
|
, yearly_avg_production_cnt = #{avgProductionCnt}::numeric
|
|
, total_production_cnt = #{totalProductionCnt}::numeric
|
|
, STATUS = #{conceptStatus}::numeric
|
|
, PM_ID = #{pmId}
|
|
, PRODUCT_GROUP_TYPE = #{productGroupObjId}::numeric
|
|
where
|
|
OBJID = #{objId}::numeric
|
|
)
|
|
|
|
INSERT INTO PMS_PJT_CONCEPT_INFO(
|
|
OBJID
|
|
, FOREIGN_TYPE
|
|
, OEM_OBJID
|
|
, CAR_OBJID
|
|
, PJT_TYPE
|
|
, OEM_FACTORY
|
|
, IS_DEL
|
|
, WRITER
|
|
, STATUS
|
|
, REGDATE
|
|
, estimate_req_date
|
|
, estimate_submit_date
|
|
, yearly_avg_production_cnt
|
|
, total_production_cnt
|
|
, PM_ID
|
|
, PRODUCT_GROUP_TYPE
|
|
)
|
|
select
|
|
#{objId}::numeric
|
|
, #{foreignType}
|
|
, #{oemObjId}::numeric
|
|
, #{carObjId}::numeric
|
|
, #{projectType}
|
|
<choose>
|
|
<when test="lineInstlSite != null and !''.equals(lineInstlSite)">
|
|
, #{lineInstlSite}::numeric
|
|
</when>
|
|
<otherwise>
|
|
, null
|
|
</otherwise>
|
|
</choose>
|
|
, '1'
|
|
, #{userId}
|
|
, #{conceptStatus}::numeric
|
|
,now()
|
|
|
|
<choose>
|
|
<when test="estimateReqDate != null and !''.equals(estimateReqDate)">
|
|
, TO_DATE(#{estimateReqDate}, 'YYYY-MM-DD')
|
|
</when>
|
|
<otherwise>
|
|
, null
|
|
</otherwise>
|
|
</choose>
|
|
|
|
<choose>
|
|
<when test="estimateSubmitDate != null and !''.equals(estimateSubmitDate)">
|
|
, TO_DATE(#{estimateSubmitDate}, 'YYYY-MM-DD')
|
|
</when>
|
|
<otherwise>
|
|
, null
|
|
</otherwise>
|
|
</choose>
|
|
|
|
, #{avgProductionCnt}::numeric
|
|
, #{totalProductionCnt}::numeric
|
|
, #{pmId}
|
|
, #{productGroupObjId}::numeric
|
|
|
|
where not exists (
|
|
select
|
|
*
|
|
from PMS_PJT_CONCEPT_INFO
|
|
where OBJID = #{objId}::numeric
|
|
)
|
|
</update>
|
|
|
|
|
|
|
|
<!-- //영업활동 등록 및 저장 -->
|
|
<update id="mergeOrderMgmtInfo" parameterType="map">
|
|
MERGE INTO ORDER_MGMT USING DUAL ON (OBJID = #{objId})
|
|
WHEN MATCHED THEN
|
|
UPDATE SET
|
|
REGION_HIGH_CD = #{region_high_cd}
|
|
,REGION_MID_CD = #{region_mid_cd}
|
|
,REGION_LOW_CD = #{region_low_cd}
|
|
,CUSTOMER_CD = #{customer_cd}
|
|
,ORDER_TITLE = #{order_title}
|
|
,C_TYPE_CD = #{c_type_cd}
|
|
,C_AGENCY_CD = #{c_agency_cd}
|
|
,C_CLASS_CD = #{c_class_cd}
|
|
,STATUS_CD = #{status_cd}
|
|
,TITLE = #{title}
|
|
,RESULT_CD = #{result_cd}
|
|
,REASON = #{reason}
|
|
,SALES_P_DATE = #{sales_p_date}
|
|
,SUB_P_SUM = #{sub_p_sum}
|
|
,DEV_P_PRODUCT = #{dev_p_product}
|
|
,SALE_P_PRODUCT = #{sale_p_product}
|
|
,SCH_DATE = #{sch_date}
|
|
,SALES_R_DATE = #{sales_r_date}
|
|
,SUB_R_SUM = #{sub_r_sum}
|
|
,DEV_R_PRODUCT = #{dev_r_product}
|
|
,SALE_R_PRODUCT = #{sale_r_product}
|
|
,RECV_DATE = #{recv_date}
|
|
,ACHIEVEMENT_RATE = #{achievement_rate}
|
|
,SPEC_CD = #{spec_cd}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT (
|
|
OBJID
|
|
,ESTIMATE_NO
|
|
,REGION_HIGH_CD
|
|
,REGION_MID_CD
|
|
,REGION_LOW_CD
|
|
,CUSTOMER_CD
|
|
,ORDER_TITLE
|
|
,C_TYPE_CD
|
|
,C_AGENCY_CD
|
|
,C_CLASS_CD
|
|
,WRITER
|
|
,REGDATE
|
|
,STATUS_CD
|
|
,TITLE
|
|
,RESULT_CD
|
|
,REASON
|
|
,SALES_P_DATE
|
|
,SUB_P_SUM
|
|
,DEV_P_PRODUCT
|
|
,SALE_P_PRODUCT
|
|
,SCH_DATE
|
|
,SALES_R_DATE
|
|
,SUB_R_SUM
|
|
,DEV_R_PRODUCT
|
|
,SALE_R_PRODUCT
|
|
,RECV_DATE
|
|
,ACHIEVEMENT_RATE
|
|
,SPEC_CD
|
|
) VALUES (
|
|
#{objId}
|
|
,(SELECT ORDER_MGMT_ID('now') FROM DUAL)
|
|
,#{region_high_cd}
|
|
,#{region_mid_cd}
|
|
,#{region_low_cd}
|
|
,#{customer_cd}
|
|
,#{order_title}
|
|
,#{c_type_cd}
|
|
,#{c_agency_cd}
|
|
,#{c_class_cd}
|
|
,#{userId}
|
|
,sysdate
|
|
,#{status_cd}
|
|
,#{title}
|
|
,#{result_cd}
|
|
,#{reason}
|
|
,#{sales_p_date}
|
|
,#{sub_p_sum}
|
|
,#{dev_p_product}
|
|
,#{sale_p_product}
|
|
,#{sch_date}
|
|
,#{sales_r_date}
|
|
,#{sub_r_sum}
|
|
,#{dev_r_product}
|
|
,#{sale_r_product}
|
|
,#{recv_date}
|
|
,#{achievement_rate}
|
|
,#{spec_cd}
|
|
)
|
|
</update>
|
|
|
|
<!-- //영업활동 등록 및 저장 -->
|
|
<update id="mergeOrderMgmtSubInfo" parameterType="map">
|
|
MERGE INTO ORDER_MGMT_SUBLIST USING DUAL ON (OBJID = #{objId})
|
|
WHEN MATCHED THEN
|
|
UPDATE SET
|
|
PARENT_OBJID = #{parentObjId}
|
|
,MODEL_NAME = #{model_name}
|
|
,SPEC_CD = #{spec_cd}
|
|
,CNT = #{count}
|
|
,CONTRACT_AMOUNT = #{contract_amount}
|
|
,DELIVERY_DATE = #{delivery_date}
|
|
,SCH_DATE = #{sch_date}
|
|
|
|
WHEN NOT MATCHED THEN
|
|
INSERT (
|
|
OBJID
|
|
,PARENT_OBJID
|
|
,MODEL_NAME
|
|
,SPEC_CD
|
|
,CNT
|
|
,CONTRACT_AMOUNT
|
|
,DELIVERY_DATE
|
|
,SCH_DATE
|
|
,REG_DATE
|
|
|
|
) VALUES (
|
|
#{objId}
|
|
,#{parentObjId}
|
|
,#{model_name}
|
|
,#{spec_cd}
|
|
,#{count}
|
|
,#{contract_amount}
|
|
,#{delivery_date}
|
|
,#{sch_date}
|
|
,sysdate
|
|
)
|
|
</update>
|
|
|
|
<!-- //수주활동 milestone 정보 삭제 -->
|
|
<delete id="deleteProjectConceptMilestoneInfo" parameterType="map">
|
|
DELETE FROM PMS_REL_PJT_CONCEPT_MILESTONE WHERE TARGET_OBJID = #{objId}::numeric
|
|
</delete>
|
|
|
|
<!-- //수주활동 milestone date 저장 -->
|
|
<update id="mergeProjectConceptMilestoneInfo" parameterType="map">
|
|
|
|
with upsert as (
|
|
UPDATE
|
|
PMS_REL_PJT_CONCEPT_MILESTONE
|
|
SET
|
|
MILESTONE_DATE = case when #{milestoneDate} = '' then NULL
|
|
else TO_DATE(#{milestoneDate}, 'YYYY-MM-DD')
|
|
END
|
|
where
|
|
TARGET_OBJID = #{targetObjId}::numeric AND MILESTONE_OBJID = #{milestoneObjId}::numeric
|
|
)
|
|
|
|
INSERT INTO PMS_REL_PJT_CONCEPT_MILESTONE(
|
|
OBJID
|
|
, TARGET_OBJID
|
|
, OEM_OBJID
|
|
, MILESTONE_OBJID
|
|
, MILESTONE_DATE
|
|
)
|
|
select
|
|
#{objId}::numeric
|
|
, #{targetObjId}::numeric
|
|
, #{oemObjId}::numeric
|
|
, #{milestoneObjId}::numeric
|
|
, case when #{milestoneDate} = '' then NULL
|
|
else TO_DATE(#{milestoneDate}, 'YYYY-MM-DD')
|
|
END
|
|
|
|
where not exists (
|
|
select
|
|
*
|
|
from PMS_REL_PJT_CONCEPT_MILESTONE
|
|
where TARGET_OBJID = #{targetObjId}::numeric AND MILESTONE_OBJID = #{milestoneObjId}::numeric
|
|
)
|
|
</update>
|
|
|
|
<!-- //수주활동에 연결된 제품정보 갯수를 반환 -->
|
|
<select id="getProjectConceptProductCnt" parameterType="map" resultType="map">
|
|
SELECT COUNT(*) AS CNT
|
|
FROM PMS_REL_PJT_CONCEPT_PROD
|
|
WHERE 1=1
|
|
AND TARGET_OBJID = #{targetObjId}::numeric
|
|
</select>
|
|
|
|
<!-- //수주활동 삭제 -->
|
|
<delete id="deleteProjectConcept" parameterType="map">
|
|
DELETE FROM pms_pjt_concept_info WHERE OBJID = #{objId}::numeric
|
|
</delete>
|
|
|
|
<!-- //수주활동 제품별 협력부서정보 삭제 -->
|
|
<delete id="deleteProjectConceptProductDeptInfo" parameterType="map">
|
|
DELETE FROM PMS_REL_PROD_REF_DEPT WHERE TARGET_OBJID = #{objId}
|
|
</delete>
|
|
|
|
<!-- //수주활동 제품별 협력부서정보 건별 삭제 -->
|
|
<delete id="deleteProjectConceptProductDeptInfo_byEach" parameterType="map">
|
|
DELETE FROM PMS_REL_PROD_REF_DEPT WHERE OBJID = #{objId}
|
|
</delete>
|
|
|
|
<!-- //수주활동별 제품정보 삭제 -->
|
|
<delete id="deleteProjectConceptProductInfo" parameterType="map">
|
|
DELETE FROM PMS_REL_PJT_CONCEPT_PROD WHERE TARGET_OBJID = #{objId}::numeric
|
|
</delete>
|
|
|
|
<!-- 수주활동 갯수구함 -->
|
|
<select id="getProjectConceptProductListCnt" 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_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
|
|
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="getProjectConceptProductList" 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.*
|
|
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
|
|
, SUM(B.final_cost) as final_cost
|
|
FROM PMS_PJT_CONCEPT_INFO A, (select P.*,(SELECT o.final_cost from profit_loss_total o where o.target_objid = P.OBJID) AS final_cost, 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_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
|
|
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
|
|
) 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>
|
|
) 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>
|
|
|
|
|
|
|
|
<!-- 수주관리 갯수구함 -->
|
|
<select id="getorderMgmtListCnt" parameterType="map" resultType="map">
|
|
SELECT ceil(TOTAL_CNT /20) MAX_PAGE_SIZE,
|
|
TOTAL_CNT
|
|
FROM (
|
|
SELECT COUNT(1) TOTAL_CNT
|
|
FROM(
|
|
SELECT OBJID
|
|
FROM ORDER_MGMT T
|
|
WHERE 1=1
|
|
<if test="search_fromDate != null and search_fromDate != '' and search_toDate != null and search_toDate != ''">
|
|
AND REGDATE BETWEEN #{search_fromDate} AND #{search_toDate}
|
|
</if>
|
|
|
|
<if test="region_h_cd != null and region_h_cd !='' ">
|
|
AND REGION_HIGH_CD = #{region_h_cd}
|
|
</if>
|
|
<if test="region_m_cd !=null and region_m_cd !=''">
|
|
AND T.REGION_MID_CD = #{region_m_cd}
|
|
</if>
|
|
<if test="customer_cd != null and customer_cd != ''">
|
|
AND A.CUSTOMER_CD = #{customer_cd}
|
|
</if>
|
|
|
|
<if test="c_type_cd != null and c_type_cd != ''">
|
|
AND A.C_TYPE_CD = #{c_type_cd}
|
|
</if>
|
|
|
|
<if test="c_agency_cd != null and c_agency_cd != ''">
|
|
AND A.C_AGENCY_CD = #{c_agency_cd}
|
|
</if>
|
|
|
|
<if test="c_class_cd != null and c_class_cd != ''">
|
|
AND A.C_CLASS_CD = #{c_class_cd}
|
|
</if>
|
|
<if test="team_cd != null and team_cd != ''">
|
|
AND (SELECT DEPT_CODE FROM USER_INFO WHERE USER_ID = T.WRITER) = #{team_cd}
|
|
</if>
|
|
|
|
<if test="writer != null and writer != ''">
|
|
AND T.WRITER = #{writer}
|
|
</if>
|
|
|
|
<if test="result_cd != null and result_cd != ''">
|
|
AND t.RESULT_CD = #{result_cd}
|
|
</if>
|
|
|
|
<if test="status_cd != null and status_cd != ''">
|
|
AND t.STATUS_CD = #{status_cd}
|
|
</if>
|
|
|
|
) T1
|
|
|
|
) T2 WHERE 1=1
|
|
</select>
|
|
|
|
<!-- //수주활동 제품별 목록 구성 -->
|
|
<select id="getorderMgmtList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM (
|
|
SELECT PJT_CONCEPT_INFO.*,ROW_NUMBER() OVER (ORDER BY REGDATE DESC NULLS LAST) AS RNUM
|
|
FROM(
|
|
SELECT PMS_PJT_CONCEPT_INFO.*
|
|
FROM(
|
|
SELECT OBJID
|
|
,ESTIMATE_NO
|
|
,CODE_NAME(REGION_HIGH_CD) AS REGION_HIGH_NAME
|
|
,CODE_NAME(REGION_MID_CD) AS REGION_MID_NAME
|
|
,CODE_NAME(REGION_LOW_CD) AS REGION_LOW_NAME
|
|
,CODE_NAME(CUSTOMER_CD) AS CUSTOMER_NAME
|
|
,CODE_NAME(C_TYPE_CD) AS C_TYPE_NAME
|
|
,CODE_NAME(C_AGENCY_CD) AS C_AGENCY_NAME
|
|
,CODE_NAME(C_CLASS_CD) AS C_CLASS_NAME
|
|
,CODE_NAME(SPEC_CD) AS SPEC_NAME
|
|
,SPEC_CD
|
|
,ORDER_TITLE
|
|
,WRITER
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = T.WRITER) AS WRITER_NAME
|
|
,(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = T.WRITER) AS TEAM
|
|
,TO_CHAR(REGDATE,'YYYY-MM-DD') AS REGDATE
|
|
,CODE_NAME(STATUS_CD) AS STATUS_NAME
|
|
,TITLE
|
|
,CODE_NAME(RESULT_CD) AS RESULT_NAME
|
|
,REASON
|
|
,TO_CHAR(SALES_P_DATE,'YYYY-MM-DD') AS SALES_P_DATE
|
|
,SUB_P_SUM
|
|
,DEV_P_PRODUCT
|
|
<!-- ,ROUND( (CAST(DEV_P_PRODUCT as integer) / CAST(SUB_P_SUM as integer) * 100) , 2) || '%' --> ,'' as DEV_P
|
|
,SALE_P_PRODUCT
|
|
<!-- ,ROUND( (CAST(SALE_P_PRODUCT as integer) / CAST(SUB_P_SUM as integer) * 100) , 2) || '%' --> ,'' as SALE_P
|
|
,TO_CHAR(SCH_DATE, 'YYYY-MM-DD') as SCH_DATE
|
|
,TO_CHAR(SALES_R_DATE, 'YYYY-MM-DD') as SALES_R_DATE
|
|
,SUB_R_SUM
|
|
,DEV_R_PRODUCT
|
|
<!-- ,ROUND( (CAST(DEV_P_PRODUCT as integer) / CAST(SUB_P_SUM as integer) * 100) , 2) || --> ,'%' as DEV_R
|
|
,SALE_R_PRODUCT
|
|
<!-- ,ROUND( (CAST(SALE_P_PRODUCT as integer) / CAST(SUB_P_SUM as integer) * 100) , 2) || --> ,'%' as SALE_R
|
|
,TO_CHAR(RECV_DATE, 'YYYY-MM-DD') as RECV_DATE
|
|
,ACHIEVEMENT_RATE
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.OBJID AND DOC_TYPE='CUSTOMER_01' AND UPPER(STATUS) = 'ACTIVE') AS CU01_CNT
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.OBJID AND DOC_TYPE='CUSTOMER_02' AND UPPER(STATUS) = 'ACTIVE') AS CU02_CNT
|
|
FROM ORDER_MGMT T
|
|
WHERE 1=1
|
|
<if test="search_fromDate != null and search_fromDate != '' and search_toDate != null and search_toDate != ''">
|
|
AND REGDATE BETWEEN TO_DATE(#{search_fromDate}, 'YYYY-MM-DD') AND TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
<if test="region_h_cd != null and region_h_cd !='' ">
|
|
AND REGION_HIGH_CD = #{region_h_cd}
|
|
</if>
|
|
<if test="region_m_cd !=null and region_m_cd !=''">
|
|
AND T.REGION_MID_CD = #{region_m_cd}
|
|
</if>
|
|
<if test="customer_cd != null and customer_cd != ''">
|
|
AND T.CUSTOMER_CD = #{customer_cd}
|
|
</if>
|
|
|
|
<if test="c_type_cd != null and c_type_cd != ''">
|
|
AND AT.C_TYPE_CD = #{c_type_cd}
|
|
</if>
|
|
|
|
<if test="c_agency_cd != null and c_agency_cd != ''">
|
|
AND T.C_AGENCY_CD = #{c_agency_cd}
|
|
</if>
|
|
|
|
<if test="c_class_cd != null and c_class_cd != ''">
|
|
AND T.C_CLASS_CD = #{c_class_cd}
|
|
</if>
|
|
<if test="team_cd != null and team_cd != ''">
|
|
AND (SELECT DEPT_CODE FROM USER_INFO WHERE USER_ID = T.WRITER) = #{team_cd}
|
|
</if>
|
|
|
|
<if test="result_cd != null and result_cd != ''">
|
|
AND t.RESULT_CD = #{result_cd}
|
|
</if>
|
|
|
|
<if test="status_cd != null and status_cd != ''">
|
|
AND t.STATUS_CD = #{status_cd}
|
|
</if>
|
|
|
|
|
|
<if test="writer != null and writer != ''">
|
|
AND T.WRITER = #{writer}
|
|
</if>
|
|
) PMS_PJT_CONCEPT_INFO
|
|
|
|
) PJT_CONCEPT_INFO
|
|
WHERE 1=1
|
|
) T 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>
|
|
ORDER BY ESTIMATE_NO DESC
|
|
</select>
|
|
|
|
|
|
<select id="getorderMgmtSubList" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID
|
|
,PARENT_OBJID
|
|
,MODEL_NAME
|
|
,SPEC_CD
|
|
,CODE_NAME(SPEC_CD) AS SPEC_NAME
|
|
,CNT
|
|
,CONTRACT_AMOUNT
|
|
,TO_CHAR(DELIVERY_DATE,'YYYY-MM-DD') AS DELIVERY_DATE
|
|
,TO_CHAR(SCH_DATE,'YYYY-MM-DD') AS SCH_DATE
|
|
FROM ORDER_MGMT_SUBLIST T
|
|
WHERE 1=1
|
|
AND PARENT_OBJID = #{objId}
|
|
ORDER BY REG_DATE DESC
|
|
</select>
|
|
|
|
|
|
|
|
<!-- //영업품목 상세 삭제 -->
|
|
<delete id="deleteordermgmttsubinfo" parameterType="map">
|
|
DELETE FROM ORDER_MGMT_SUBLIST
|
|
WHERE OBJID IN
|
|
<foreach collection="delObjKeyarr" item="objkey" index="index" separator="," open="(" close=")">
|
|
#{objkey}
|
|
</foreach>
|
|
</delete>
|
|
|
|
<!-- //수주활동 상세조회 -->
|
|
<select id="getProjectConceptInfo" parameterType="map" resultType="map">
|
|
SELECT A.OBJID AS CONCEPT_OBJID
|
|
, A.FOREIGN_TYPE AS FOREIGN_TYPE_ORG
|
|
, CASE WHEN A.FOREIGN_TYPE = 'D' THEN '국내'
|
|
WHEN A.FOREIGN_TYPE = 'F' THEN '해외'
|
|
ELSE A.FOREIGN_TYPE
|
|
END AS 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 WHEN A.PJT_TYPE = 'new' THEN '신차'
|
|
WHEN A.PJT_TYPE = 'derivative' THEN '파생차'
|
|
WHEN A.PJT_TYPE = 'sample' THEN '시작차'
|
|
ELSE A.PJT_TYPE
|
|
END AS PJT_TYPE
|
|
, A.OEM_FACTORY
|
|
, (SELECT FACTORY_NAME FROM OEM_FACTORY_MNG WHERE OBJID = A.OEM_FACTORY) AS FACTORY_NAME
|
|
, A.IS_DEL AS CONCEPT_IS_DEL_ORG
|
|
, CASE WHEN A.IS_DEL||'' = '0' THEN '삭제됨'
|
|
WHEN A.IS_DEL||'' = '1' THEN '활성화'
|
|
ELSE A.IS_DEL
|
|
END AS 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
|
|
, STATUS
|
|
FROM PMS_PJT_CONCEPT_INFO A
|
|
WHERE 1=1
|
|
AND OBJID = #{objId}::numeric
|
|
</select>
|
|
|
|
|
|
<!-- //영업활동 상세조회 -->
|
|
<select id="getOrderMgmtInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID
|
|
,ESTIMATE_NO
|
|
,REGION_HIGH_CD
|
|
,REGION_MID_CD
|
|
,REGION_LOW_CD
|
|
,ORDER_TITLE
|
|
,(SELECT O.PARENT_CODE_ID FROM COMM_CODE O WHERE T.REGION_LOW_CD = O.CODE_ID) AS PARENT_L_REGION
|
|
,CUSTOMER_CD
|
|
,C_TYPE_CD
|
|
,C_AGENCY_CD
|
|
,C_CLASS_CD
|
|
,WRITER
|
|
,(SELECT DEPT_CODE FROM USER_INFO WHERE USER_ID = T.WRITER) AS TEAM_ID
|
|
,TO_CHAR(REGDATE,'YYYY-MM-DD') AS REGDATE
|
|
,STATUS_CD
|
|
,TITLE
|
|
,RESULT_CD
|
|
,SPEC_CD
|
|
,REASON
|
|
,TO_CHAR(SALES_P_DATE,'YYYY-MM-DD') AS SALES_P_DATE
|
|
,SUB_P_SUM
|
|
,DEV_P_PRODUCT
|
|
,ROUND( (DEV_P_PRODUCT / SUB_P_SUM * 100) ,2) || '%' AS DEV_P
|
|
,SALE_P_PRODUCT
|
|
,ROUND( (SALE_P_PRODUCT / SUB_P_SUM * 100) ,2) || '%' AS SALE_P
|
|
,TO_CHAR(SCH_DATE,'YYYY-MM-DD') AS SCH_DATE
|
|
,TO_CHAR(SALES_R_DATE,'YYYY-MM-DD') AS SALES_R_DATE
|
|
,SUB_R_SUM
|
|
,DEV_R_PRODUCT
|
|
,ROUND( (DEV_R_PRODUCT / SUB_P_SUM * 100) ,2) || '%' AS DEV_R
|
|
,SALE_R_PRODUCT
|
|
,ROUND( (SALE_R_PRODUCT / SUB_P_SUM * 100) ,2) || '%' AS SALE_R
|
|
,TO_CHAR(RECV_DATE,'YYYY-MM-DD') AS RECV_DATE
|
|
,ACHIEVEMENT_RATE
|
|
,(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = T.WRITER) AS WRITER_DEPT_NAME
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = T.WRITER) AS WRITER_USER_NAME
|
|
FROM ORDER_MGMT T
|
|
WHERE 1=1
|
|
AND T.OBJID = #{objId}
|
|
</select>
|
|
|
|
<!-- //수주활동 oem의 milestone 목록 조회 (mode=edit)-->
|
|
<select id="getProjectConceptMilestoneList" parameterType="map" resultType="map">
|
|
SELECT A.OBJID AS CONCEPT_OBJID
|
|
, B.OBJID AS CONCEPT_MILESTONE_OBJID
|
|
, B.SEQ
|
|
, B.MILESTONE_NAME
|
|
, (SELECT TO_CHAR(MILESTONE_DATE, 'YYYY-MM-DD') FROM PMS_REL_PJT_CONCEPT_MILESTONE WHERE TARGET_OBJID = A.OBJID AND OEM_OBJID = B.OEM_OBJID AND MILESTONE_OBJID = B.OBJID) AS MILESTONE_DATE
|
|
FROM PMS_PJT_CONCEPT_INFO A, OEM_MILESTONE_MNG B
|
|
WHERE 1=1
|
|
AND A.OBJID = #{objId}
|
|
AND B.OEM_OBJID = #{oemObjId}
|
|
AND A.IS_DEL = 1
|
|
AND UPPER(B.STATUS) = 'ACTIVE'
|
|
ORDER BY FLOAT8(COALESCE(B.SEQ,'0'))
|
|
</select>
|
|
|
|
<!-- //수주활동 oem의 milestone 목록 조회 (mode=null)-->
|
|
<select id="getProjectConceptMilestoneList2" parameterType="map" resultType="map">
|
|
SELECT OBJID AS CONCEPT_MILESTONE_OBJID
|
|
, SEQ
|
|
, MILESTONE_NAME
|
|
FROM OEM_MILESTONE_MNG
|
|
WHERE 1=1
|
|
AND OEM_OBJID = #{oemObjId}::numeric
|
|
AND UPPER(STATUS) = 'ACTIVE'
|
|
ORDER BY FLOAT8(COALESCE(SEQ,'0'))
|
|
</select>
|
|
|
|
<!-- //수주활동별 제품정보 조회 -->
|
|
<select id="getProjectConceptProductInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
A.OBJID AS CONCEPT_PROD_OBJID
|
|
, A.TARGET_OBJID AS CONCEPT_OBJID
|
|
, (SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = (SELECT CAR_OBJID FROM PMS_PJT_CONCEPT_INFO WHERE OBJID = A.TARGET_OBJID)) AS CAR_NAME
|
|
, (SELECT CAR_CODE FROM CAR_MNG WHERE OBJID = (SELECT CAR_OBJID FROM PMS_PJT_CONCEPT_INFO WHERE OBJID = A.TARGET_OBJID)) AS CAR_CODE
|
|
, (SELECT OBJID FROM PRODUCT_GROUP_MNG WHERE OBJID = (SELECT PRODUCT_GROUP_OBJID FROM PRODUCT_MNG WHERE OBJID = A.PROD_OBJID)) AS PROD_GROUP_OBJID
|
|
, (SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG WHERE OBJID = (SELECT PRODUCT_GROUP_OBJID FROM PRODUCT_MNG WHERE OBJID = A.PROD_OBJID)) AS PROD_GROUP_NAME
|
|
, A.PROD_OBJID
|
|
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = A.PROD_OBJID) AS PROD_NAME
|
|
, A.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.ESTIMATE_PIC
|
|
, (SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = A.ESTIMATE_PIC) AS ESTIMATE_PIC_DEPT_NAME
|
|
, (SELECT USER_NAME FROM USER_INFO WHERE USER_ID = A.ESTIMATE_PIC) AS ESTIMATE_PIC_USER_NAME
|
|
, A.YEARLY_AVG_PRODUCTION_CNT
|
|
, A.TOTAL_PRODUCTION_CNT
|
|
, A.BIDDING_RESULT
|
|
, A.IS_DEL
|
|
, 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
|
|
, A.STATUS
|
|
, TO_CHAR(A.REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
FROM PMS_REL_PJT_CONCEPT_PROD A
|
|
WHERE 1=1
|
|
AND OBJID = #{objId}
|
|
ORDER BY A.REGDATE DESC
|
|
</select>
|
|
|
|
<!-- //수주활동 제품별 수주결과 수정 -->
|
|
<update id="updateProjectConceptProdBiddingResult" parameterType="map">
|
|
UPDATE PMS_REL_PJT_CONCEPT_PROD SET BIDDING_RESULT = #{biddingResult} WHERE OBJID = #{projectConceptProdObjId}
|
|
</update>
|
|
|
|
<!-- //수주활동 입찰결과 등록시 상태값 변경 -->
|
|
<update id="updateProjectConceptStatusComplete" parameterType="map">
|
|
UPDATE PMS_REL_PJT_CONCEPT_PROD SET STATUS = #{changeStatus} WHERE OBJID = #{projectConceptProdObjId}
|
|
</update>
|
|
|
|
<!-- //수주활동 제품별 확정 -->
|
|
<update id="completeProjectConceptProductInfo" parameterType="map">
|
|
UPDATE PMS_REL_PJT_CONCEPT_PROD SET STATUS = 'complete' WHERE OBJID = #{conceptProdObjId}
|
|
</update>
|
|
|
|
<!-- //수주활동 작성중인 입찰품목 카운트 -->
|
|
<select id="getProjectConceptProductCreateCnt" parameterType="map" resultType="map">
|
|
SELECT COUNT(*) AS CNT
|
|
FROM PMS_REL_PJT_CONCEPT_PROD
|
|
WHERE 1=1
|
|
AND TARGET_OBJID = #{targetObjId}
|
|
AND UPPER(STATUS) = 'CREATE'
|
|
</select>
|
|
|
|
<!-- //수주활동 상태를 complete으로 변경 -->
|
|
<update id="completeProjectConceptInfo" parameterType="map">
|
|
UPDATE PMS_PJT_CONCEPT_INFO SET STATUS = 'complete' WHERE OBJID = #{targetObjId}
|
|
</update>
|
|
|
|
<!-- //수주활동 중복체크 -->
|
|
<select id="getProjectConceptDuplicateCnt" parameterType="map" resultType="map">
|
|
SELECT COUNT(*) AS CNT
|
|
FROM PMS_PJT_CONCEPT_INFO
|
|
WHERE 1=1
|
|
AND OEM_OBJID = #{oemObjId}
|
|
AND CAR_OBJID = #{carObjId}
|
|
AND OBJID != #{objId}
|
|
</select>
|
|
|
|
<!-- //jmpark end -->
|
|
<!-- ********************************************************************************************************** -->
|
|
|
|
<!-- ********************************************************************************************************** -->
|
|
<!-- //edhwang start -->
|
|
|
|
<!-- //edhwang end -->
|
|
<!-- ********************************************************************************************************** -->
|
|
|
|
<!-- ********************************************************************************************************** -->
|
|
<!-- //dhchoi start -->
|
|
|
|
<!-- 수주 QnA 활동 등록 -->
|
|
<update id="saveQnaProjectConceptInfo" parameterType="map">
|
|
MERGE INTO PMS_PJT_CONCEPT_QNA P USING DUAL ON ( P.OBJID = #{objId})
|
|
WHEN MATCHED THEN
|
|
UPDATE SET
|
|
P.FOREIGN_TYPE = #{region},
|
|
P.OEM_OBJID = #{oem},
|
|
P.CAR_OBJID = #{carType},
|
|
P.PROD_GROUP_OBJID = #{productGroup},
|
|
P.PROD_OBJID = #{productType},
|
|
P.TITLE = #{qnaTitle},
|
|
P.CONTENTS = #{qnaContents}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT
|
|
(
|
|
P.OBJID,
|
|
P.FOREIGN_TYPE,
|
|
P.OEM_OBJID,
|
|
P.CAR_OBJID,
|
|
P.PROD_GROUP_OBJID,
|
|
P.PROD_OBJID,
|
|
P.TITLE,
|
|
P.CONTENTS,
|
|
P.WRITER,
|
|
P.REGDATE
|
|
)
|
|
VALUES
|
|
(
|
|
#{objId},
|
|
#{region},
|
|
#{oem},
|
|
#{carType},
|
|
#{productGroup},
|
|
#{productType},
|
|
#{qnaTitle},
|
|
#{qnaContents},
|
|
#{writer},
|
|
SYSDATE
|
|
)
|
|
|
|
</update>
|
|
<!--QnaListPage 목록 -->
|
|
<select id ="getQnaListPage" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM
|
|
(SELECT PMS_PJT_CONCEPT_QNA.*,ROW_NUMBER() OVER (ORDER BY REGDATE_ORG DESC) AS RNUM
|
|
FROM
|
|
(
|
|
SELECT OBJID
|
|
, FOREIGN_TYPE AS FOREIGN_TYPE_ORG
|
|
, DECODE(FOREIGN_TYPE, 'D', '국내', 'F', '해외', FOREIGN_TYPE) AS FOREIGN_TYPE
|
|
, OEM_OBJID
|
|
, (SELECT OEM_NAME FROM OEM_MNG OEM_T WHERE OEM_T.OBJID = OEM_OBJID) AS OEM_NAME
|
|
, CAR_OBJID
|
|
, (SELECT CAR_NAME FROM CAR_MNG CAR_T WHERE CAR_T.OBJID = CAR_OBJID) AS CAR_NAME
|
|
, (SELECT CAR_CODE FROM CAR_MNG CAR_T WHERE CAR_T.OBJID = CAR_OBJID) AS CAR_CODE
|
|
, (SELECT MODEL_CODE FROM CAR_MNG CAR_T WHERE CAR_T.OBJID = CAR_OBJID) AS CAR_MODEL_CODE
|
|
, PROD_GROUP_OBJID
|
|
, (SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG PRODUCT_GROUP_T WHERE PRODUCT_GROUP_T.OBJID = PROD_GROUP_OBJID) AS PRODUCT_GROUP_NAME
|
|
, PROD_OBJID
|
|
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG PRODUCT_T WHERE PRODUCT_T.OBJID = PROD_OBJID ) AS PRODUCT_NAME
|
|
, TITLE
|
|
, CONTENTS
|
|
, WRITER
|
|
, (SELECT USER_NAME FROM USER_INFO USER_INFO_T WHERE USER_INFO_T.SABUN = WRITER) AS USER_NAME
|
|
, (SELECT DEPT_NAME FROM USER_INFO USER_INFO_T WHERE USER_INFO_T.SABUN = WRITER) AS DEPT_NAME
|
|
, REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
FROM PMS_PJT_CONCEPT_QNA
|
|
WHERE 1=1
|
|
<if test="search_region != null and search_region !='' ">
|
|
AND FOREIGN_TYPE = #{search_region}
|
|
</if>
|
|
<if test="search_oem != null and search_oem !='' ">
|
|
AND OEM_OBJID = #{search_oem}
|
|
</if>
|
|
<if test="search_carType != null and search_carType != '' ">
|
|
AND CAR_OBJID = #{search_carType}
|
|
</if>
|
|
<if test="search_productGroup != null and search_productGroup != '' ">
|
|
AND PRODUCT_GROUP_OBJID = #{search_productGroup}
|
|
</if>
|
|
<if test="search_productType != null and search_productType != '' ">
|
|
AND PROD_OBJID = #{search_productType}
|
|
</if>
|
|
<if test="search_writer != null and search_writer != '' ">
|
|
AND WRITER IN (SELECT USER_ID FROM USER_INFO WHERE UPPER(USER_NAME) LIKE UPPER('%${search_writer}%'))
|
|
</if>
|
|
) PMS_PJT_CONCEPT_QNA 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_START != ''">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
</select>
|
|
<!--QnaListPageCnt 갯수 구함 -->
|
|
<select id ="getQnaListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
|
|
TOTAL_CNT
|
|
FROM (
|
|
SELECT COUNT(1) TOTAL_CNT
|
|
FROM(SELECT OBJID
|
|
, FOREIGN_TYPE AS FOREIGN_TYPE_ORG
|
|
, DECODE(FOREIGN_TYPE, 'D', '국내', 'F', '해외', FOREIGN_TYPE) AS FOREIGN_TYPE
|
|
, OEM_OBJID
|
|
, (SELECT OEM_NAME FROM OEM_MNG OEM_T WHERE OEM_T.OBJID = OEM_OBJID) AS OEM_NAME
|
|
, CAR_OBJID
|
|
, (SELECT CAR_NAME FROM CAR_MNG CAR_T WHERE CAR_T.OBJID = CAR_OBJID) AS CAR_NAME
|
|
, (SELECT CAR_CODE FROM CAR_MNG CAR_T WHERE CAR_T.OBJID = CAR_OBJID) AS CAR_CODE
|
|
, (SELECT MODEL_CODE FROM CAR_MNG CAR_T WHERE CAR_T.OBJID = CAR_OBJID) AS CAR_MODEL_CODE
|
|
, PROD_GROUP_OBJID
|
|
, (SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG PRODUCT_GROUP_T WHERE PRODUCT_GROUP_T.OBJID = PROD_GROUP_OBJID) AS PRODUCT_GROUP_NAME
|
|
, PROD_OBJID
|
|
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG PRODUCT_T WHERE PRODUCT_T.OBJID = PROD_OBJID ) AS PRODUCT_NAME
|
|
, TITLE
|
|
, CONTENTS
|
|
, WRITER
|
|
, (SELECT USER_NAME FROM USER_INFO USER_INFO_T WHERE USER_INFO_T.SABUN = WRITER) AS USER_NAME
|
|
, (SELECT DEPT_NAME FROM USER_INFO USER_INFO_T WHERE USER_INFO_T.SABUN = WRITER) AS DEPT_NAME
|
|
, REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
FROM PMS_PJT_CONCEPT_QNA
|
|
WHERE 1=1
|
|
<if test="search_region != null and search_region !='' ">
|
|
AND FOREIGN_TYPE = #{search_region}
|
|
</if>
|
|
<if test="search_oem != null and search_oem !='' ">
|
|
AND OEM_OBJID = #{search_oem}
|
|
</if>
|
|
<if test="search_carType != null and search_carType != '' ">
|
|
AND CAR_OBJID = #{search_carType}
|
|
</if>
|
|
<if test="search_productGroup != null and search_productGroup != '' ">
|
|
AND PRODUCT_GROUP_TYPE = #{search_productGroup}
|
|
</if>
|
|
<if test="search_productType != null and search_productType != '' ">
|
|
AND PROD_OBJID = #{search_productType}
|
|
</if>
|
|
<if test="search_writer != null and search_writer != '' ">
|
|
AND WRITER IN (SELECT USER_ID FROM USER_INFO WHERE UPPER(USER_NAME) LIKE UPPER('%${search_writer}%'))
|
|
</if>
|
|
) T WHERE 1=1
|
|
) T1
|
|
|
|
</select>
|
|
|
|
<!--Qna 상세 페이지 -->
|
|
<select id ="getQnaInfo" parameterType="map" resultType="map">
|
|
SELECT OBJID
|
|
, FOREIGN_TYPE AS FOREIGN_TYPE_ORG
|
|
, DECODE(FOREIGN_TYPE, 'D', '국내', 'F', '해외', FOREIGN_TYPE) AS FOREIGN_TYPE
|
|
, OEM_OBJID
|
|
, (SELECT OEM_NAME FROM OEM_MNG OEM_T WHERE OEM_T.OBJID = OEM_OBJID) AS OEM_NAME
|
|
, CAR_OBJID
|
|
, (SELECT CAR_NAME FROM CAR_MNG CAR_T WHERE CAR_T.OBJID = CAR_OBJID) AS CAR_NAME
|
|
, (SELECT CAR_CODE FROM CAR_MNG CAR_T WHERE CAR_T.OBJID = CAR_OBJID) AS CAR_CODE
|
|
, (SELECT MODEL_CODE FROM CAR_MNG CAR_T WHERE CAR_T.OBJID = CAR_OBJID) AS CAR_MODEL_CODE
|
|
, PROD_GROUP_OBJID
|
|
, (SELECT PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG PRODUCT_GROUP_T WHERE PRODUCT_GROUP_T.OBJID = PROD_GROUP_OBJID) AS PRODUCT_GROUP_NAME
|
|
, PROD_OBJID
|
|
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG PRODUCT_T WHERE PRODUCT_T.OBJID = PROD_OBJID ) AS PRODUCT_NAME
|
|
, TITLE
|
|
, CONTENTS
|
|
, WRITER
|
|
, (SELECT USER_NAME FROM USER_INFO USER_INFO_T WHERE USER_INFO_T.SABUN = WRITER) AS USER_NAME
|
|
, (SELECT DEPT_NAME FROM USER_INFO USER_INFO_T WHERE USER_INFO_T.SABUN = WRITER) AS DEPT_NAME
|
|
, REGDATE AS REGDATE_ORG
|
|
, TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
FROM PMS_PJT_CONCEPT_QNA
|
|
WHERE OBJID = ${objId}
|
|
</select>
|
|
|
|
<!-- 수주활동 등록 중복 제품군 체크 -->
|
|
<select id="getPjtProdListCnt" parameterType="map" resultType="map">
|
|
select count(*) CNT
|
|
from PMS_PJT_CONCEPT_INFO A
|
|
inner join PMS_REL_PJT_CONCEPT_PROD B on A.objid = B.target_objid
|
|
inner join COMM_CODE C on C.objid = B.prod_objid
|
|
where
|
|
C.parent_code_id = (select code_id from comm_code where objid = ${productGroupObjId}::numeric) AND A.car_objid = ${carObjId}::numeric
|
|
</select>
|
|
|
|
<!-- //수주활동 Form 수정 팝업 조회 -->
|
|
<select id="getProjectConceptEditInfo" parameterType="map" resultType="map">
|
|
select
|
|
OBJID,
|
|
FOREIGN_TYPE,
|
|
PJT_TYPE,
|
|
OEM_OBJID,
|
|
CAR_OBJID,
|
|
TOTAL_PRODUCTION_CNT,
|
|
YEARLY_AVG_PRODUCTION_CNT,
|
|
(select objid from COMM_CODE C where C.code_id = (
|
|
select
|
|
C1.parent_code_id
|
|
from
|
|
COMM_CODE C1
|
|
inner join pms_rel_pjt_concept_prod PROD on PROD.prod_objid = C1.objid
|
|
where
|
|
UPPER(C1.STATUS) = 'ACTIVE'
|
|
and PROD.target_objid = P.objid
|
|
group by C1.parent_code_id )) as PRODUCT_GROUP_OBJID,
|
|
ESTIMATE_REQ_DATE,
|
|
ESTIMATE_SUBMIT_DATE,
|
|
(SELECT ESTIMATE_NO FROM PMS_REL_PJT_CONCEPT_PROD WHERE TARGET_OBJID = P.OBJID GROUP BY ESTIMATE_NO) AS ESTIMATE_NO,
|
|
STATUS,
|
|
(
|
|
SELECT
|
|
CODE_NAME
|
|
FROM COMM_CODE C
|
|
WHERE PARENT_CODE_ID = '0005154' AND UPPER(STATUS) = 'ACTIVE'
|
|
AND C.OBJID = P.STATUS
|
|
) AS STATUS_TITLE,
|
|
OEM_FACTORY,
|
|
PM_ID
|
|
from
|
|
PMS_PJT_CONCEPT_INFO P
|
|
where
|
|
objid = ${objId}::numeric
|
|
</select>
|
|
|
|
<!-- //수주활동 Form 수정 팝업 조회 Milestone data -->
|
|
<select id="getProjectConceptEditMilestoneList" parameterType="map" resultType="map">
|
|
SELECT
|
|
T.OBJID::varchar,
|
|
T.SEQ,
|
|
T.OEM_OBJID,
|
|
T.MILESTONE_NAME,
|
|
T.WRITER,
|
|
TO_CHAR(T.REGDATE,'YYYY-MM-DD') REGDATE,
|
|
(SELECT case when MILESTONE_DATE is null then ''
|
|
else TO_CHAR(MILESTONE_DATE,'YYYY-MM-DD')
|
|
end
|
|
FROM pms_rel_pjt_concept_milestone WHERE MILESTONE_OBJID = T.OBJID AND TARGET_OBJID = P.objid ::integer) AS MILESTONE_DATE,
|
|
(SELECT OBJID FROM pms_rel_pjt_concept_milestone WHERE MILESTONE_OBJID = T.OBJID AND TARGET_OBJID = P.objid ::integer) AS MILESTONE_OBJID,
|
|
T.STATUS
|
|
FROM OEM_MILESTONE_MNG T
|
|
inner join pms_pjt_concept_info P on T.OEM_OBJID = P.OEM_OBJID
|
|
WHERE P.OBJID = ${OBJID}::integer
|
|
ORDER BY SEQ::integer asc
|
|
</select>
|
|
|
|
<!-- //제품 조회(콤보박스용) -->
|
|
<select id="getProductEditList" parameterType="map" resultType="map">
|
|
select C.OBJID
|
|
, (select CC.objid from COMM_CODE CC where CC.code_id = C.parent_code_id) AS PRODUCT_GROUP_OBJID
|
|
, (select CC.code_name from COMM_CODE CC where CC.code_id = C.parent_code_id) AS PRODUCT_GROUP_NAME
|
|
, C.CODE_ID PRODUCT_CODE
|
|
, C.CODE_NAME PRODUCT_NAME
|
|
, '' PRODUCT_DESC
|
|
,P.OBJID::varchar AS rel_objid
|
|
,P.target_objid::varchar
|
|
from
|
|
pms_rel_pjt_concept_prod P
|
|
inner join comm_code C on P.prod_objid = C.objid
|
|
where
|
|
P.target_objid = ${objid}::integer
|
|
ORDER BY PRODUCT_NAME
|
|
</select>
|
|
|
|
<!-- //수주활동별 제품정보 삭제 -->
|
|
<delete id="deleteProjectConceptProductEditInfo" parameterType="map">
|
|
DELETE FROM PMS_REL_PJT_CONCEPT_PROD WHERE target_objid = #{objId}::integer
|
|
</delete>
|
|
|
|
|
|
<!-- //손익 산출 재료비 데이터 -->
|
|
<select id="getprofitlossPopUpInfo" parameterType="map" resultType="map">
|
|
select
|
|
T.objid::varchar
|
|
,T.target_objid::varchar
|
|
,T.part_no
|
|
,T.part_name
|
|
,T.photo
|
|
,T.process
|
|
,T.material
|
|
,T.scrap_loss
|
|
,T.grade
|
|
,T.source
|
|
,T.resin_price
|
|
,T.part_weight
|
|
,T.sr_rate
|
|
,T.sr_weight
|
|
,T.part_price
|
|
,T.sr_price
|
|
,T.material_spec
|
|
,T.inj_ton
|
|
,T.inj_cav
|
|
,T.machine_time
|
|
,T.injection_ct
|
|
,T.shot_ct
|
|
,T.gram_thickness
|
|
,T.equip_coefficient
|
|
,T.mold_coefficient
|
|
,T.cooling_time
|
|
,T.total_cooling_time
|
|
,T.inj_labor_wage_rate
|
|
,T.expense
|
|
,T.inj_setup_time
|
|
,T.inj_setup_person
|
|
,T.inj_lot
|
|
,T.inj_et
|
|
,T.injection_exp
|
|
,T.injection_labor
|
|
,T.injection_expense
|
|
,T.assy_labor_ct
|
|
,T.assy_expense_ct
|
|
,T.expense_wage_rate
|
|
,T.setup_time
|
|
,T.setup_person
|
|
,T.ind_exp
|
|
,T.assy_labor_price
|
|
,T.assy_expense_price
|
|
,T.regdate
|
|
,T.assy_cav
|
|
,T.rm_price
|
|
,T.labor_wage_rate
|
|
,T.assy_lot
|
|
,T.assy_et
|
|
,T.us_1
|
|
,T.crushing_price_1
|
|
,T.us_2
|
|
,T.crushing_price_2
|
|
,T.type
|
|
,T.custom_price
|
|
,TRUNC((T.inj_setup_time * T.inj_labor_wage_rate)/3600*total_cooling_time,2) AS labor_cost
|
|
,TRUNC((T.total_cooling_time * T.expense)/3600*1.6,2) AS expense_cost
|
|
,T.amount_1
|
|
,T.amount_2
|
|
,T.material_price_1
|
|
,T.material_price_2
|
|
from profit_loss AS T
|
|
where target_objid = ${objId}::numeric
|
|
ORDER BY array_position(ARRAY['part','subpart','assy'],type::text)
|
|
</select>
|
|
|
|
<!-- //손익 산출 경비 추가 데이터 -->
|
|
<select id="getprofitlossaddlistInfo" parameterType="map" resultType="map">
|
|
select
|
|
T.objid
|
|
,T.target_objid
|
|
,T.part_name
|
|
,T.inj_cav
|
|
,T.machine_type
|
|
,T.inj_ton
|
|
,T.expense_total_cooling_time
|
|
,T.expense
|
|
,T.expense_cost
|
|
from profit_loss_total_addlist AS T
|
|
where target_objid = ${objId}::numeric
|
|
</select>
|
|
|
|
<!-- //손익 산출 재료비 추가 데이터 -->
|
|
<select id="getprofitlossaddlistInfo2" parameterType="map" resultType="map">
|
|
select
|
|
T.objid
|
|
,T.target_objid
|
|
,T.sub_part_name
|
|
,T.sub_us
|
|
,T.sub_weight
|
|
,T.sub_part_price
|
|
,T.sub_material_price
|
|
from profit_loss_total_addlist2 AS T
|
|
where target_objid = ${objId}::numeric
|
|
</select>
|
|
|
|
<!-- //손익 산출 재료비 데이터 -->
|
|
<select id="getprofitlossMaterialcostInfo" parameterType="map" resultType="map">
|
|
select
|
|
objid::varchar
|
|
,target_objid::varchar
|
|
,part_name
|
|
,photo
|
|
,process
|
|
,material
|
|
,scrap_loss
|
|
,grade
|
|
,source
|
|
,resin_price
|
|
,part_weight
|
|
,sr_rate
|
|
,sr_weight
|
|
,part_price
|
|
,sr_price
|
|
from material_cost AS T
|
|
where target_objid = ${objId}::numeric
|
|
</select>
|
|
|
|
<!-- //손익산출 통합 저장 -->
|
|
<update id="saveProfit_loss" parameterType="map">
|
|
INSERT INTO
|
|
profit_loss
|
|
(objid
|
|
,target_objid
|
|
,part_no
|
|
,part_name
|
|
,photo
|
|
,process
|
|
,material
|
|
,scrap_loss
|
|
,grade
|
|
,source
|
|
,resin_price
|
|
,part_weight
|
|
,sr_rate
|
|
,sr_weight
|
|
,part_price
|
|
,material_price_1
|
|
,sr_price
|
|
,material_price_2
|
|
,material_spec
|
|
<!-- ,rm_price -->
|
|
,inj_ton
|
|
,inj_cav
|
|
,machine_time
|
|
,injection_ct
|
|
,shot_ct
|
|
,gram_thickness
|
|
,equip_coefficient
|
|
,mold_coefficient
|
|
,cooling_time
|
|
,total_cooling_time
|
|
,inj_labor_wage_rate
|
|
,expense
|
|
,inj_setup_time
|
|
,inj_setup_person
|
|
,inj_lot
|
|
,inj_et
|
|
,injection_exp
|
|
,injection_labor
|
|
,injection_expense
|
|
,assy_cav
|
|
,assy_labor_ct
|
|
,labor_wage_rate
|
|
,setup_time
|
|
,setup_person
|
|
,assy_lot
|
|
,assy_et
|
|
,assy_labor_price
|
|
,regdate
|
|
,type
|
|
,custom_price
|
|
)
|
|
VALUES (
|
|
#{objId}::numeric
|
|
,#{target_objid}::numeric
|
|
,#{part_no}
|
|
,#{part_name}
|
|
,#{photo}
|
|
,#{process}
|
|
,#{material}
|
|
,#{scrap_loss}::numeric
|
|
,#{grade}
|
|
,#{source}
|
|
,#{resin_price}::numeric
|
|
,#{part_weight}::numeric
|
|
,#{sr_rate}::numeric
|
|
,#{sr_weight}::numeric
|
|
,#{part_price}::numeric
|
|
,#{material_price_1}::numeric
|
|
,#{sr_price}::numeric
|
|
,#{material_price_2}::numeric
|
|
,#{material_spec}
|
|
<!-- ,#{rm_price}::numeric -->
|
|
,#{inj_ton}::numeric
|
|
,#{inj_cav}::numeric
|
|
,#{machine_time}::numeric
|
|
,#{injection_ct}::numeric
|
|
,#{shot_ct}::numeric
|
|
,#{gram_thickness}::numeric
|
|
,#{equip_coefficient}::numeric
|
|
,#{mold_coefficient}::numeric
|
|
,#{cooling_time}::numeric
|
|
,#{total_cooling_time}::numeric
|
|
,#{inj_labor_wage_rate}::numeric
|
|
,#{expense}::numeric
|
|
,#{inj_setup_time}::numeric
|
|
,#{inj_setup_person}::numeric
|
|
,#{inj_lot}::numeric
|
|
,#{inj_et}::numeric
|
|
,#{injection_exp}::numeric
|
|
,#{injection_labor}::numeric
|
|
,#{injection_expense}::numeric
|
|
,#{assy_cav}::numeric
|
|
,#{assy_labor_ct}::numeric
|
|
,#{labor_wage_rate}::numeric
|
|
,#{setup_time}::numeric
|
|
,#{setup_person}::numeric
|
|
,#{assy_lot}::numeric
|
|
,#{assy_et}::numeric
|
|
,#{assy_labor_price}::numeric
|
|
,now()
|
|
,#{type}
|
|
,#{custom_price}::numeric
|
|
) ON
|
|
CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET part_no=#{part_no}
|
|
,part_name=#{part_name}
|
|
,photo=#{photo}
|
|
,process=#{process}
|
|
,material=#{material}
|
|
,scrap_loss=#{scrap_loss}::numeric
|
|
,grade=#{grade}
|
|
,source=#{source}
|
|
,resin_price=#{resin_price}::numeric
|
|
,part_weight=#{part_weight}::numeric
|
|
,sr_rate=#{sr_rate}::numeric
|
|
,sr_weight=#{sr_weight}::numeric
|
|
,part_price=#{part_price}::numeric
|
|
,material_price_1=#{material_price_1}::numeric
|
|
,sr_price=#{sr_price}::numeric
|
|
,material_price_2=#{material_price_2}::numeric
|
|
,material_spec = #{material_spec}
|
|
<!-- ,rm_price=#{rm_price}::numeric -->
|
|
,inj_ton = #{inj_ton}::numeric
|
|
,inj_cav = #{inj_cav}::numeric
|
|
,machine_time = #{machine_time}::numeric
|
|
,injection_ct = #{injection_ct}::numeric
|
|
,shot_ct = #{shot_ct}::numeric
|
|
,gram_thickness = #{gram_thickness}::numeric
|
|
,equip_coefficient = #{equip_coefficient}::numeric
|
|
,mold_coefficient = #{mold_coefficient}::numeric
|
|
,cooling_time = #{cooling_time}::numeric
|
|
,total_cooling_time = #{total_cooling_time}::numeric
|
|
,inj_labor_wage_rate = #{inj_labor_wage_rate}::numeric
|
|
,expense = #{expense}::numeric
|
|
,inj_setup_time = #{inj_setup_time}::numeric
|
|
,inj_setup_person = #{inj_setup_person}::numeric
|
|
,inj_lot = #{inj_lot}::numeric
|
|
,inj_et = #{inj_et}::numeric
|
|
,injection_exp = #{injection_exp}::numeric
|
|
,injection_labor = #{injection_labor}::numeric
|
|
,injection_expense = #{injection_expense}::numeric
|
|
,assy_cav = #{assy_cav}::numeric
|
|
,assy_labor_ct = #{assy_labor_ct}::numeric
|
|
,labor_wage_rate = #{labor_wage_rate}::numeric
|
|
,setup_time = #{setup_time}::numeric
|
|
,setup_person = #{setup_person}::numeric
|
|
,assy_lot = #{assy_lot}::numeric
|
|
,assy_et = #{assy_et}::numeric
|
|
,assy_labor_price = #{assy_labor_price}::numeric
|
|
,type = #{type}
|
|
,custom_price = #{custom_price}::numeric
|
|
</update>
|
|
|
|
<!-- //손익산출 통합 경비 추가 저장 -->
|
|
<update id="saveProfit_loss_addlist" parameterType="map">
|
|
INSERT INTO
|
|
profit_loss_total_addlist
|
|
(objid
|
|
,target_objid
|
|
,part_name
|
|
,inj_cav
|
|
,machine_type
|
|
,inj_ton
|
|
,expense_total_cooling_time
|
|
,expense
|
|
,expense_cost
|
|
)
|
|
VALUES (
|
|
#{objId}::numeric
|
|
,#{target_objid}::numeric
|
|
,#{add_part_name}
|
|
,#{add_inj_cav}::numeric
|
|
,#{add_machine_type}
|
|
,#{add_inj_ton}::numeric
|
|
,#{add_expense_total_cooling_time}::numeric
|
|
,#{add_expense}::numeric
|
|
,#{add_expense_cost}::numeric
|
|
) ON
|
|
CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET objid=#{objid}::numeric
|
|
,target_objid=#{target_objid}::numeric
|
|
,part_name=#{add_part_name}
|
|
,inj_cav=#{add_inj_cav}::numeric
|
|
,machine_type=#{add_machine_type}
|
|
,inj_ton=#{add_inj_ton}::numeric
|
|
,expense_total_cooling_time=#{add_expense_total_cooling_time}::numeric
|
|
,expense=#{add_expense}::numeric
|
|
,expense_cost=#{add_expense_cost}::numeric
|
|
|
|
</update>
|
|
|
|
<!-- //손익산출 통합 재료비 추가 저장 -->
|
|
<update id="saveProfit_loss_addlist2" parameterType="map">
|
|
INSERT INTO
|
|
profit_loss_total_addlist2
|
|
(objid
|
|
,target_objid
|
|
,sub_part_name
|
|
,sub_us
|
|
,sub_weight
|
|
,sub_part_price
|
|
,sub_material_price
|
|
)
|
|
VALUES (
|
|
#{objId}::numeric
|
|
,#{target_objid}::numeric
|
|
,#{sub_part_name}
|
|
,#{sub_us}::numeric
|
|
,#{sub_weight}::numeric
|
|
,#{sub_part_price}::numeric
|
|
,#{sub_material_price}::numeric
|
|
) ON
|
|
CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET objid=#{objId}::numeric
|
|
,target_objid=#{target_objid}::numeric
|
|
,sub_part_name=#{sub_part_name}
|
|
,sub_us=#{sub_us}::numeric
|
|
,sub_weight=#{sub_weight}::numeric
|
|
,sub_part_price=#{sub_part_price}::numeric
|
|
,sub_material_price=#{sub_material_price}::numeric
|
|
|
|
</update>
|
|
|
|
<!-- //손익산출 재료비 저장 -->
|
|
<update id="saveMaterialcost" parameterType="map">
|
|
INSERT INTO
|
|
material_cost
|
|
(objid
|
|
,target_objid
|
|
,part_name
|
|
,photo
|
|
,process
|
|
,material
|
|
,scrap_loss
|
|
,grade
|
|
,source
|
|
,resin_price
|
|
,part_weight
|
|
,sr_rate
|
|
,sr_weight
|
|
,part_price
|
|
,sr_price
|
|
,regdate
|
|
)
|
|
VALUES (
|
|
#{objId}::numeric
|
|
,#{target_objid}::numeric
|
|
,#{part_name}
|
|
,#{photo}
|
|
,#{process}
|
|
,#{material}
|
|
,#{scrap_loss}
|
|
,#{grade}
|
|
,#{source}
|
|
,#{resin_price}::numeric
|
|
,#{part_weight}::numeric
|
|
,#{sr_rate}::numeric
|
|
,#{sr_weight}::numeric
|
|
,#{part_price}::numeric
|
|
,#{sr_price}::numeric
|
|
,now()
|
|
) ON
|
|
CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET part_name=#{part_name}
|
|
,photo=#{photo}
|
|
,process=#{process}
|
|
,material=#{material}
|
|
,scrap_loss=#{scrap_loss}
|
|
,grade=#{grade}
|
|
,source=#{source}
|
|
,resin_price=#{resin_price}::numeric
|
|
,part_weight=#{part_weight}::numeric
|
|
,sr_rate=#{sr_rate}::numeric
|
|
,sr_weight=#{sr_weight}::numeric
|
|
,part_price=#{part_price}::numeric
|
|
,sr_price=#{sr_price}::numeric
|
|
</update>
|
|
|
|
|
|
<!-- //제품 조회(손익산출용) -->
|
|
<select id="getProductEditProfitList" parameterType="map" resultType="map">
|
|
select C.OBJID
|
|
, (select CC.objid from COMM_CODE CC where CC.code_id = C.parent_code_id) AS PRODUCT_GROUP_OBJID
|
|
, (select CC.code_name from COMM_CODE CC where CC.code_id = C.parent_code_id) AS PRODUCT_GROUP_NAME
|
|
, C.CODE_ID PRODUCT_CODE
|
|
, C.CODE_NAME PRODUCT_NAME
|
|
, '' PRODUCT_DESC
|
|
,P.OBJID::varchar AS rel_objid
|
|
,P.target_objid::varchar
|
|
,(select count(1) from material_cost o where o.target_objid = p.OBJID) as MATER_CNT
|
|
,(select count(1) from injection_cost o where o.target_objid = p.OBJID) as INJECT_CNT
|
|
,(select count(1) from assembly_cost o where o.target_objid = p.OBJID) as ASSY_CNT
|
|
,(select count(1) from profit_loss o where o.target_objid = p.OBJID) as PROFIT_LOSS_CNT
|
|
,(select count(1) from profit_loss_total o where o.target_objid = p.OBJID) as PROFIT_LOSS_TOTAL_CNT
|
|
,(SELECT o.final_cost from profit_loss_total o where o.target_objid = p.OBJID) as FINAL_COST
|
|
from
|
|
pms_rel_pjt_concept_prod P
|
|
inner join comm_code C on P.prod_objid = C.objid
|
|
where
|
|
P.target_objid = ${objid}::integer
|
|
ORDER BY PRODUCT_NAME
|
|
</select>
|
|
|
|
|
|
|
|
|
|
<!-- //손익 산출 조립비 데이터 -->
|
|
<select id="getprofitlossInjectioncostInfo" parameterType="map" resultType="map">
|
|
select
|
|
t.objid::varchar
|
|
,case when t.target_objid::VARCHAR IS null
|
|
THEN m.target_objid::VARCHAR END AS target_objid
|
|
|
|
,t.material_spec
|
|
,t.inj_ton
|
|
,t.cav
|
|
,t.machine_time
|
|
,t.gram_thickness
|
|
,t.equip_coefficient
|
|
,t.mold_coefficient
|
|
,t.cooling_time
|
|
,t.total_cooling_time
|
|
,t.labor_wage_rate
|
|
,t.expense
|
|
,t.injection_setup_time
|
|
,t.injection_setup_person
|
|
,t.lot
|
|
,t.et
|
|
,t.injection_exp
|
|
,t.injection_labor
|
|
,t.injection_expense
|
|
,m.material
|
|
,m.resin_price
|
|
,m.part_weight
|
|
,m.sr_rate
|
|
,m.sr_weight
|
|
,round(4.396*(m.part_weight+m.sr_weight)^0.1477,1) AS injection_ct
|
|
,(SELECT c.second FROM profit_loss_coolingtime AS c WHERE c.material = m.material) AS shot_ct
|
|
from injection_cost AS T
|
|
FULL OUTER JOIN material_cost AS m on
|
|
t.target_objid = m.target_objid
|
|
where ${objId}::numeric = (CASE WHEN t.target_objid IS NULL THEN m.target_objid ELSE t.target_objid END)
|
|
</select>
|
|
|
|
<!-- //손익산출 조립비 저장 -->
|
|
<update id="saveInjectionCost" parameterType="map">
|
|
INSERT INTO
|
|
injection_cost
|
|
(objid
|
|
,target_objid
|
|
,material_spec
|
|
,inj_ton
|
|
,cav
|
|
,machine_time
|
|
,injection_ct
|
|
,shot_ct
|
|
,gram_thickness
|
|
,equip_coefficient
|
|
,mold_coefficient
|
|
,cooling_time
|
|
,total_cooling_time
|
|
,labor_wage_rate
|
|
,expense
|
|
,injection_setup_time
|
|
,injection_setup_person
|
|
,lot
|
|
,et
|
|
,injection_exp
|
|
,injection_labor
|
|
,injection_expense
|
|
,regdate
|
|
)
|
|
VALUES (
|
|
#{objId}::numeric
|
|
,#{target_objid}::numeric
|
|
,#{material_spec}
|
|
,#{inj_ton}::numeric
|
|
,#{cav}::numeric
|
|
,#{machine_time}::numeric
|
|
,#{injection_ct}::numeric
|
|
,#{shot_ct}::numeric
|
|
,#{gram_thickness}::numeric
|
|
,#{equip_coefficient}::numeric
|
|
,#{mold_coefficient}::numeric
|
|
,#{cooling_time}::numeric
|
|
,#{total_cooling_time}::numeric
|
|
,#{labor_wage_rate}::numeric
|
|
,#{expense}::numeric
|
|
,#{injection_setup_time}::numeric
|
|
,#{injection_setup_person}::numeric
|
|
,#{lot}::numeric
|
|
,#{et}::numeric
|
|
,#{injection_exp}::numeric
|
|
,#{injection_labor}::numeric
|
|
,#{injection_expense}::numeric
|
|
,now()
|
|
) ON
|
|
CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET material_spec=#{material_spec}
|
|
,inj_ton=#{inj_ton}::numeric
|
|
,cav=#{cav}::numeric
|
|
,machine_time=#{machine_time}::numeric
|
|
,injection_ct=#{injection_ct}::numeric
|
|
,shot_ct=#{shot_ct}::numeric
|
|
,gram_thickness=#{gram_thickness}::numeric
|
|
,equip_coefficient=#{equip_coefficient}::numeric
|
|
,mold_coefficient=#{mold_coefficient}::numeric
|
|
,cooling_time=#{cooling_time}::numeric
|
|
,total_cooling_time=#{total_cooling_time}::numeric
|
|
,labor_wage_rate=#{labor_wage_rate}::numeric
|
|
,expense=#{expense}::numeric
|
|
,injection_setup_time=#{injection_setup_time}::numeric
|
|
,injection_setup_person=#{injection_setup_person}::numeric
|
|
,lot=#{lot}::numeric
|
|
,et=#{et}::numeric
|
|
,injection_exp=#{injection_exp}::numeric
|
|
,injection_labor=#{injection_labor}::numeric
|
|
,injection_expense=#{injection_expense}::numeric
|
|
</update>
|
|
|
|
<!-- //손익 산출 조립비 데이터 -->
|
|
<select id="getprofitlossAssemblycostInfo" parameterType="map" resultType="map">
|
|
select
|
|
objid::varchar
|
|
,target_objid::varchar
|
|
,cav
|
|
,assy_labor_ct
|
|
,assy_expense_ct
|
|
,labor_wage_rate
|
|
,expense_wage_rate
|
|
,setup_time
|
|
,setup_person
|
|
,lot
|
|
,et
|
|
,ind_exp
|
|
,assy_labor_price
|
|
,assy_expense_price
|
|
from assembly_cost AS T
|
|
where target_objid = ${objId}::numeric
|
|
</select>
|
|
|
|
<!-- //손익산출 조립비 저장 -->
|
|
<update id="saveAssemblyCost" parameterType="map">
|
|
INSERT INTO
|
|
assembly_cost
|
|
(objid
|
|
,target_objid
|
|
,cav
|
|
,assy_labor_ct
|
|
,assy_expense_ct
|
|
,labor_wage_rate
|
|
,expense_wage_rate
|
|
,setup_time
|
|
,setup_person
|
|
,lot
|
|
,et
|
|
,ind_exp
|
|
,assy_labor_price
|
|
,assy_expense_price
|
|
,regdate
|
|
)
|
|
VALUES (
|
|
#{objId}::numeric
|
|
,#{target_objid}::numeric
|
|
,#{cav}::numeric
|
|
,#{assy_labor_ct}::numeric
|
|
,#{assy_expense_ct}::numeric
|
|
,#{labor_wage_rate}::numeric
|
|
,#{expense_wage_rate}::numeric
|
|
,#{setup_time}::numeric
|
|
,#{setup_person}::numeric
|
|
,#{lot}::numeric
|
|
,#{et}::numeric
|
|
,#{ind_exp}::numeric
|
|
,#{assy_labor_price}::numeric
|
|
,#{assy_expense_price}::numeric
|
|
,now()
|
|
) ON
|
|
CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET cav=#{cav}::numeric
|
|
,assy_labor_ct=#{assy_labor_ct}::numeric
|
|
,assy_expense_ct=#{assy_expense_ct}::numeric
|
|
,labor_wage_rate=#{labor_wage_rate}::numeric
|
|
,expense_wage_rate=#{expense_wage_rate}::numeric
|
|
,setup_time=#{setup_time}::numeric
|
|
,setup_person=#{setup_person}::numeric
|
|
,lot=#{lot}::numeric
|
|
,et=#{et}::numeric
|
|
,ind_exp=#{ind_exp}::numeric
|
|
,assy_labor_price=#{assy_labor_price}::numeric
|
|
,assy_expense_price=#{assy_expense_price}::numeric
|
|
</update>
|
|
|
|
<!-- //손익 산출 통합 데이터 -->
|
|
<select id="getprofitlossTotalPopUpInfo" parameterType="map" resultType="map">
|
|
select
|
|
objid::varchar
|
|
,target_objid::varchar
|
|
,material_cost
|
|
,labor_cost_sum
|
|
,expense_cost_sum
|
|
,pro_cost
|
|
,manufacturing_cost
|
|
,normal_cost_per
|
|
,normal_cost
|
|
,profit_per
|
|
,profit
|
|
,management_fee_per
|
|
,management_fee
|
|
,out_cost_per
|
|
,out_cost
|
|
,mold_cost
|
|
,rd_cost_per
|
|
,rd_cost
|
|
,transport_cost
|
|
,transport_cost_custom
|
|
,transport_cost_result
|
|
,palette_cost
|
|
,palette_cost_custom
|
|
,palette_cost_result
|
|
,total_cost
|
|
,add_cost
|
|
,final_cost
|
|
,TO_CHAR(regdate, 'YYYY-MM-DD') AS regdate
|
|
,(SELECT OEM_CODE FROM OEM_MNG WHERE OBJID = (SELECT DISTINCT(OEM_OBJID) FROM pms_pjt_concept_info WHERE car_objid= ${car_objid}::numeric)) AS OEM_CODE
|
|
,(SELECT OEM_NAME FROM OEM_MNG WHERE OBJID = (SELECT DISTINCT(OEM_OBJID) FROM pms_pjt_concept_info WHERE car_objid= ${car_objid}::numeric)) AS OEM_NAME
|
|
,(SELECT C.CODE_NAME FROM comm_code AS C WHERE C.objid=${_objId}::numeric) as code_name
|
|
,(SELECT CAR_CODE FROM CAR_MNG WHERE OBJID = ${car_objid}::numeric) AS CAR_CODE
|
|
,(SELECT CAR_NAME FROM CAR_MNG WHERE OBJID = ${car_objid}::numeric) AS CAR_NAME
|
|
from profit_loss_total AS T
|
|
where target_objid = ${objId}::numeric
|
|
</select>
|
|
|
|
<!-- //손익산출 통합 저장 -->
|
|
<update id="saveprofitlossTotal" parameterType="map">
|
|
INSERT INTO
|
|
profit_loss_total
|
|
(objid
|
|
,target_objid
|
|
,material_cost
|
|
,labor_cost_sum
|
|
,expense_cost_sum
|
|
,pro_cost
|
|
,manufacturing_cost
|
|
,normal_cost_per
|
|
,normal_cost
|
|
,profit_per
|
|
,profit
|
|
,management_fee_per
|
|
,management_fee
|
|
,out_cost_per
|
|
,out_cost
|
|
,mold_cost
|
|
,rd_cost_per
|
|
,rd_cost
|
|
,transport_cost
|
|
,transport_cost_custom
|
|
,transport_cost_result
|
|
,palette_cost
|
|
,palette_cost_custom
|
|
,palette_cost_result
|
|
,total_cost
|
|
,add_cost
|
|
,final_cost
|
|
,regdate
|
|
)
|
|
VALUES (
|
|
#{objId}::numeric
|
|
,#{target_objid}::numeric
|
|
,#{material_cost}::numeric
|
|
,#{labor_cost_sum}::numeric
|
|
,#{expense_cost_sum}::numeric
|
|
,#{pro_cost}::numeric
|
|
,#{manufacturing_cost}::numeric
|
|
,#{normal_cost_per}::numeric
|
|
,#{normal_cost}::numeric
|
|
,#{profit_per}::numeric
|
|
,#{profit}::numeric
|
|
,#{management_fee_per}::numeric
|
|
,#{management_fee}::numeric
|
|
,#{out_cost_per}::numeric
|
|
,#{out_cost}::numeric
|
|
,#{mold_cost}::numeric
|
|
,#{rd_cost_per}::numeric
|
|
,#{rd_cost}::numeric
|
|
,#{transport_cost}::numeric
|
|
,#{transport_cost_custom}::numeric
|
|
,#{transport_cost_result}::numeric
|
|
,#{palette_cost}::numeric
|
|
,#{palette_cost_custom}::numeric
|
|
,#{palette_cost_result}::numeric
|
|
,#{total_cost}::numeric
|
|
,#{add_cost}::numeric
|
|
,#{final_cost}::numeric
|
|
,now()
|
|
) ON
|
|
CONFLICT (OBJID) DO
|
|
UPDATE SET
|
|
material_cost=#{material_cost}::numeric
|
|
,labor_cost_sum=#{labor_cost_sum}::numeric
|
|
,expense_cost_sum=#{expense_cost_sum}::numeric
|
|
,pro_cost=#{pro_cost}::numeric
|
|
,manufacturing_cost=#{manufacturing_cost}::numeric
|
|
,normal_cost_per=#{normal_cost_per}::numeric
|
|
,normal_cost=#{normal_cost}::numeric
|
|
,profit_per=#{profit_per}::numeric
|
|
,profit=#{profit}::numeric
|
|
,management_fee_per=#{management_fee_per}::numeric
|
|
,management_fee=#{management_fee}::numeric
|
|
,out_cost_per=#{out_cost_per}::numeric
|
|
,out_cost=#{out_cost}::numeric
|
|
,mold_cost=#{mold_cost}::numeric
|
|
,rd_cost_per=#{rd_cost_per}::numeric
|
|
,rd_cost=#{rd_cost}::numeric
|
|
,transport_cost=#{transport_cost}::numeric
|
|
,transport_cost_custom=#{transport_cost_custom}::numeric
|
|
,transport_cost_result=#{transport_cost_result}::numeric
|
|
,palette_cost=#{palette_cost}::numeric
|
|
,palette_cost_custom=#{palette_cost_custom}::numeric
|
|
,palette_cost_result=#{palette_cost_result}::numeric
|
|
,total_cost=#{total_cost}::numeric
|
|
,add_cost=#{add_cost}::numeric
|
|
,final_cost=#{final_cost}::numeric
|
|
|
|
|
|
|
|
</update>
|
|
|
|
<select id="getShot_ct" parameterType="map" resultType="map">
|
|
SELECT second FROM profit_loss_coolingtime t
|
|
WHERE 1=1
|
|
and UPPER(material) = UPPER(#{material})
|
|
|
|
</select>
|
|
|
|
<select id="getSrRate" parameterType="map" resultType="map">
|
|
SELECT sr_rate FROM profit_loss_srrate t
|
|
WHERE 1=1
|
|
and t.from_value::numeric <![CDATA[ <= ]]> #{part_weight}::numeric
|
|
AND t.to_value::numeric <![CDATA[ > ]]> #{part_weight}::numeric
|
|
|
|
</select>
|
|
|
|
<select id="getMachine_time" parameterType="map" resultType="map">
|
|
SELECT second FROM profit_loss_machine t
|
|
WHERE 1=1
|
|
and t.from_value::numeric <![CDATA[ < ]]> #{inj_ton}::numeric
|
|
AND t.to_value::numeric <![CDATA[ >= ]]> #{inj_ton}::numeric
|
|
|
|
</select>
|
|
|
|
<!-- WBS Task 기본구성을 위한 목록을 가져온다. -->
|
|
<select id="getStandardWBSTaskList" parameterType="map" resultType="map">
|
|
SELECT
|
|
TASK_STEP,
|
|
TASK_NAME,
|
|
TASK_SEQ,
|
|
(SELECT DEPT_CODE FROM DEPT_INFO DI WHERE 1=1 AND DI.DEPT_NAME = PWTS.DEPT_CODE) AS DEPT_CODE,
|
|
MANAGER_USER_ID,
|
|
TASK_PERFORM_DAY,
|
|
PLAN_START_DATE,
|
|
PLAN_END_DATE,
|
|
RESULT_START_DATE,
|
|
RESULT_END_DATE,
|
|
EXPECTED_POINT,
|
|
STANDARD_DOC_NAME,
|
|
TASK_STATUS,
|
|
PM_USER_ID,
|
|
PM_CONFIRM_STATUS,
|
|
PM_CONFIRM_DATE,
|
|
REMARK,
|
|
WRITER,
|
|
REG_DATE,
|
|
UPDATE_DATE
|
|
FROM PMS_WBS_TASK_STANDARD PWTS
|
|
ORDER BY TASK_SEQ::INTEGER
|
|
</select>
|
|
|
|
<!-- 표준 WBS Task를 통한 정보로 프로젝트에 WBS Task를 입력한다. -->
|
|
<insert id="createProjectWBSTask" parameterType="map">
|
|
INSERT INTO PMS_WBS_TASK_INFO
|
|
(
|
|
OBJID,
|
|
TARGET_OBJID,
|
|
TASK_STEP,
|
|
TASK_NAME,
|
|
TASK_SEQ,
|
|
DEPT_CODE,
|
|
TASK_PERFORM_DAY,
|
|
STANDARD_DOC_NAME,
|
|
REG_DATE
|
|
)VALUES(
|
|
#{OBJID}::numeric,
|
|
#{TARGET_OBJID}::numeric,
|
|
#{TASK_STEP},
|
|
#{TASK_NAME},
|
|
#{TASK_SEQ},
|
|
#{DEPT_CODE},
|
|
#{TASK_PERFORM_DAY},
|
|
#{STANDARD_DOC_NAME},
|
|
NOW()
|
|
)
|
|
|
|
</insert>
|
|
|
|
<delete id="DeleteProfit_loss" parameterType="map">
|
|
DELETE FROM profit_loss where target_objid= #{target_objid}::numeric
|
|
</delete>
|
|
|
|
<delete id="DeleteProfit_loss_addlist" parameterType="map">
|
|
DELETE FROM profit_loss_total_addlist where target_objid= #{target_objid}::numeric
|
|
</delete>
|
|
|
|
<delete id="DeleteProfit_loss_addlist2" parameterType="map">
|
|
DELETE FROM profit_loss_total_addlist2 where target_objid= #{target_objid2}::numeric
|
|
</delete>
|
|
|
|
<!-- //손익산출 등록 재료비 저장 -->
|
|
<update id="updateProfit_loss" parameterType="map">
|
|
UPDATE
|
|
profit_loss
|
|
SET
|
|
us_1 = #{us_1}::numeric
|
|
,us_2 = #{us_2}::numeric
|
|
,material_price_1=#{material_price_1}::numeric
|
|
,material_price_2=#{material_price_2}::numeric
|
|
WHERE objid = #{profit_loss_objId}::numeric
|
|
</update>
|
|
|
|
<!-- //손익산출 등록 노무비 저장 -->
|
|
<update id="updateProfit_loss2" parameterType="map">
|
|
UPDATE
|
|
profit_loss
|
|
SET
|
|
inj_cav=#{inj_cav}::numeric
|
|
,total_cooling_time=#{total_cooling_time}::numeric
|
|
,inj_setup_time=#{inj_setup_time}::numeric
|
|
,inj_labor_wage_rate=#{inj_labor_wage_rate}::numeric
|
|
,labor_cost=#{labor_cost}::numeric
|
|
WHERE objid = #{profit_loss_objId}::numeric
|
|
</update>
|
|
|
|
<!-- //dhchoi end -->
|
|
<!-- ********************************************************************************************************** -->
|
|
</mapper> |