- 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
1443 lines
52 KiB
XML
1443 lines
52 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="orderMng">
|
|
|
|
<!-- //출고관리 조회 -->
|
|
<select id="orderMngMasterList" parameterType="map" resultType="map">
|
|
SELECT
|
|
ROW_NUMBER() OVER(ORDER BY A.REG_DATE DESC) AS RNUM,
|
|
A.*
|
|
FROM (
|
|
SELECT
|
|
OMM.OBJID,
|
|
|
|
OMM.PRODUCT_MGMT_OBJID,
|
|
(SELECT PM.PRODUCT_CODE FROM PRODUCT_MGMT PM WHERE PM.OBJID::VARCHAR = OMM.PRODUCT_MGMT_OBJID) AS PRODUCT_CODE,
|
|
|
|
OMM.PARTNER_OBJID,
|
|
(SELECT SM.SUPPLY_NAME FROM SUPPLY_MNG SM WHERE 1=1 AND SM.SUPPLY_CODE = OMM.PARTNER_OBJID) AS PARTNER_NAME,
|
|
|
|
OMM.FINAL_DELIVERY_DATE,
|
|
OMM.REASON,
|
|
OMM.STATUS,
|
|
|
|
OMM.REG_DATE,
|
|
TO_CHAR(OMM.REG_DATE,'YYYY-MM-DD') AS REG_DATE_TITLE,
|
|
|
|
OMM.WRITER,
|
|
(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = OMM.WRITER) AS DEPT_NAME,
|
|
(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = OMM.WRITER) AS USER_NAME
|
|
FROM
|
|
ORDER_MNG_MASTER OMM
|
|
WHERE 1=1
|
|
) A
|
|
</select>
|
|
|
|
<!-- 수주관리 갯수구함 -->
|
|
<select id="orderMgmtListCnt" 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 ORDER_MGMT_OBJID
|
|
FROM ORDER_MGMT T
|
|
WHERE 1=1
|
|
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(TO_DATE(REQ_DATE,'YYYYMMDD'),'YYYY') = #{Year}
|
|
</if>
|
|
|
|
<if test="region_cd !=null and region_cd != '' ">
|
|
AND REGION_CD = #{region_cd}
|
|
</if>
|
|
<if test="customer_cd != null and customer_cd !='' ">
|
|
AND CUSTOMER_CD = #{customer_cd}
|
|
</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="reg_id !=null and reg_id !=''">
|
|
AND T.reg_id = #{reg_id}
|
|
</if>
|
|
|
|
|
|
<if test="search_fromDate != null and !''.equals(search_fromDate)">
|
|
AND TO_DATE(TO_CHAR(TO_DATE(REQ_DATE,'YYYYMMDD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{search_fromDate}, 'YYYY-MM-DD')
|
|
|
|
</if>
|
|
<if test="search_toDate != null and !''.equals(search_toDate)">
|
|
AND TO_DATE(TO_CHAR(TO_DATE(REQ_DATE,'YYYYMMDD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{search_toDate}, 'YYYY-MM-DD')
|
|
</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>
|
|
|
|
) AS T
|
|
|
|
) AS T
|
|
WHERE 1=1
|
|
</select>
|
|
|
|
|
|
<!-- //영업활동 상세조회 -->
|
|
<select id="getOrderMgmtInfo" parameterType="map" resultType="map">
|
|
SELECT ORDER_MGMT_OBJID
|
|
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = REGION_CD) AS REGION_NAME
|
|
,REGION_CD
|
|
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = CUSTOMER_CD) AS CUSTOMER_NAME
|
|
,CUSTOMER_CD
|
|
,ORDER_TITLE
|
|
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = ORDER_CD) AS ORDER_NAME
|
|
,ORDER_CD
|
|
,TO_CHAR(TO_DATE(START_DATE,'YYYYMMDD'),'YYYY-MM-DD') AS START_DATE
|
|
,TO_CHAR(TO_DATE(DEL_DATE,'YYYYMMDD'),'YYYY-MM-DD') AS DEL_DATE
|
|
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = PLANT_CD) AS PLANT_NAME
|
|
,PLANT_CD
|
|
,TO_CHAR(TO_DATE(REQ_DATE,'YYYYMMDD'),'YYYY-MM-DD') AS REQ_DATE
|
|
,REASON
|
|
,(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = RESULT_CD) AS RESULT_NAME
|
|
,RESULT_CD
|
|
,PROJECT_NO
|
|
,ORDER_PRICE
|
|
,ORDER_PRICE_D
|
|
,EX_MATERIAL_COST
|
|
,EX_LABOR_COST
|
|
,EX_EXPENSE_COST
|
|
,(SELECT USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = DESIGN_PM) DESIGN_NAME
|
|
,(SELECT USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = PRODUCTION_PM) PRODUCTION_NAME
|
|
,(SELECT USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = ELECTRO_PM) ELECTRO_NAME
|
|
,(SELECT USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = SE_PM) SE_NAME
|
|
,(SELECT USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = PURCHASE_PM) PURCHASE_NAME
|
|
,(SELECT USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = MANAGER_PM) AS MANAGER_NAME
|
|
,(SELECT USER_NAME FROM USER_INFO O1 WHERE O1.USER_ID = REG_ID) AS REG_NAME
|
|
,DESIGN_PM
|
|
,PRODUCTION_PM
|
|
,ELECTRO_PM
|
|
,SE_PM
|
|
,PURCHASE_PM
|
|
,PROJECT_DIVISION
|
|
,PROJECT_DERIVATION_NO
|
|
,OUTC_CD1
|
|
,OUTC_CD2
|
|
,OUTC_CD3
|
|
,OUTC_CD4
|
|
,OUTC_CD5
|
|
,OUTC_CD6
|
|
,OUTI_CD1
|
|
,OUTI_CD2
|
|
,OUTI_CD3
|
|
,OUTI_CD4
|
|
,OUTI_CD5
|
|
,OUTI_CD6
|
|
,OUTC_VALUE1
|
|
,OUTC_VALUE2
|
|
,OUTC_VALUE3
|
|
,OUTC_VALUE4
|
|
,OUTC_VALUE5
|
|
,OUTC_VALUE6
|
|
,MANAGER_PM
|
|
,REG_ID
|
|
,TO_CHAR(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
|
|
,PONUM
|
|
,INVOICE
|
|
FROM ORDER_MGMT T
|
|
WHERE 1=1
|
|
AND T.ORDER_MGMT_OBJID = #{objId}
|
|
</select>
|
|
|
|
|
|
|
|
<!-- //영업활동 등록 및 저장 -->
|
|
<update id="mergeOrderMgmtInfo" parameterType="map">
|
|
INSERT INTO
|
|
order_mgmt
|
|
(order_mgmt_objid
|
|
,region_cd
|
|
,customer_cd
|
|
,order_title
|
|
,order_cd
|
|
,start_date
|
|
,del_date
|
|
,plant_cd
|
|
,outc_cd1
|
|
,outc_cd2
|
|
,outc_cd3
|
|
,outc_cd4
|
|
,outc_cd5
|
|
,outc_cd6
|
|
,outi_cd1
|
|
,outi_cd2
|
|
,outi_cd3
|
|
,outi_cd4
|
|
,outi_cd5
|
|
,outi_cd6
|
|
,outc_value1
|
|
,outc_value2
|
|
,outc_value3
|
|
,outc_value4
|
|
,outc_value5
|
|
,outc_value6
|
|
,req_date
|
|
,reason
|
|
,result_cd
|
|
,project_no
|
|
,order_price
|
|
,order_price_d
|
|
,ex_material_cost
|
|
,ex_labor_cost
|
|
,ex_expense_cost
|
|
,ex_material_cost_w
|
|
,ex_labor_cost_w
|
|
,ex_expense_cost_w
|
|
,design_pm
|
|
,production_pm
|
|
,electro_pm
|
|
,se_pm
|
|
,purchase_pm
|
|
,manager_pm
|
|
,reg_id
|
|
,reg_date
|
|
,project_division
|
|
,project_derivation_no
|
|
,project_mean
|
|
,ponum
|
|
,invoice
|
|
)
|
|
VALUES (
|
|
#{objId}
|
|
,(SELECT TO_CHAR(NOW(),'yyyy')::VARCHAR ||'-'||LPAD((SELECT (COUNT(1)+1) FROM order_mgmt AS T)::VARCHAR ,3,'0'))
|
|
,#{customer_cd}
|
|
,#{order_title}
|
|
,#{order_cd}
|
|
,#{start_date}
|
|
,#{del_date}
|
|
,#{plant_cd}
|
|
,#{outc_cd1}
|
|
,#{outc_cd2}
|
|
,#{outc_cd3}
|
|
,#{outc_cd4}
|
|
,#{outc_cd5}
|
|
,#{outc_cd6}
|
|
,#{outi_cd1}
|
|
,#{outi_cd2}
|
|
,#{outi_cd3}
|
|
,#{outi_cd4}
|
|
,#{outi_cd5}
|
|
,#{outi_cd6}
|
|
,#{outc_value1}
|
|
,#{outc_value2}
|
|
,#{outc_value3}
|
|
,#{outc_value4}
|
|
,#{outc_value5}
|
|
,#{outc_value6}
|
|
,#{req_date}
|
|
,#{reason}
|
|
,#{result_cd}
|
|
,#{project_no}
|
|
,#{order_price}
|
|
,#{order_price_d}
|
|
,#{ex_material_cost}
|
|
,#{ex_labor_cost}
|
|
,#{ex_expense_cost}
|
|
,#{ex_material_cost_w}
|
|
,#{ex_labor_cost_w}
|
|
,#{ex_expense_cost_w}
|
|
,#{design_pm}
|
|
,#{production_pm}
|
|
,#{electro_pm}
|
|
,#{se_pm}
|
|
,#{purchase_pm}
|
|
,#{manager_pm}
|
|
,#{userId}
|
|
,now()
|
|
,#{project_division}
|
|
,#{project_derivation_no}
|
|
,#{project_mean}
|
|
,#{ponum}
|
|
,#{invoice}
|
|
) ON
|
|
CONFLICT (order_mgmt_objid) DO
|
|
UPDATE
|
|
SET customer_cd=#{customer_cd}
|
|
,order_title=#{order_title}
|
|
,order_cd=#{order_cd}
|
|
,start_date=#{start_date}
|
|
,del_date=#{del_date}
|
|
,plant_cd=#{plant_cd}
|
|
,outc_cd1=#{outc_cd1}
|
|
,outc_cd2=#{outc_cd2}
|
|
,outc_cd3=#{outc_cd3}
|
|
,outc_cd4=#{outc_cd4}
|
|
,outc_cd5=#{outc_cd5}
|
|
,outc_cd6=#{outc_cd6}
|
|
,outi_cd1=#{outi_cd1}
|
|
,outi_cd2=#{outi_cd2}
|
|
,outi_cd3=#{outi_cd3}
|
|
,outi_cd4=#{outi_cd4}
|
|
,outi_cd5=#{outi_cd5}
|
|
,outi_cd6=#{outi_cd6}
|
|
,outc_value1=#{outc_value1}
|
|
,outc_value2=#{outc_value2}
|
|
,req_date=#{req_date}
|
|
,reason=#{reason}
|
|
,result_cd=#{result_cd}
|
|
,project_no=#{project_no}
|
|
,order_price=#{order_price}
|
|
,order_price_d=#{order_price_d}
|
|
,ex_material_cost=#{ex_material_cost}
|
|
,ex_labor_cost=#{ex_labor_cost}
|
|
,ex_expense_cost=#{ex_expense_cost}
|
|
,ex_material_cost_w=#{ex_material_cost_w}
|
|
,ex_labor_cost_w=#{ex_labor_cost_w}
|
|
,ex_expense_cost_w=#{ex_expense_cost_w}
|
|
,design_pm=#{design_pm}
|
|
,production_pm=#{production_pm}
|
|
,electro_pm=#{electro_pm}
|
|
,se_pm=#{se_pm}
|
|
,purchase_pm=#{purchase_pm}
|
|
,manager_pm=#{manager_pm}
|
|
,project_division=#{project_division}
|
|
,project_derivation_no=#{project_derivation_no}
|
|
,project_mean=#{project_mean}
|
|
,ponum=#{ponum}
|
|
,invoice=#{invoice}
|
|
</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>
|
|
|
|
<!-- //수주활동 제품별 협조부서 등록 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}
|
|
ORDER BY A.REGDATE DESC
|
|
</select>
|
|
|
|
<!-- //수주활동 제품별 정보 저장 -->
|
|
<update id="mergeProjectConceptProductInfo" parameterType="map">
|
|
MERGE INTO PMS_REL_PJT_CONCEPT_PROD USING DUAL ON (OBJID = #{objId})
|
|
WHEN MATCHED THEN
|
|
UPDATE
|
|
SET
|
|
PROD_OBJID = #{productObjId}
|
|
, ESTIMATE_NO = #{estimateNo}
|
|
, ESTIMATE_REQ_DATE = TO_DATE(#{estimateReqDate}, 'YYYY-MM-DD')
|
|
, ESTIMATE_SUBMIT_DATE = TO_DATE(#{estimateSubmitDate}, 'YYYY-MM-DD')
|
|
, ESTIMATE_PIC = #{estimatePICUserId}
|
|
, YEARLY_AVG_PRODUCTION_CNT = #{productionAvgCnt}
|
|
, TOTAL_PRODUCTION_CNT = #{productionAllCnt}
|
|
, IS_DEL = '1'
|
|
WHEN NOT MATCHED THEN
|
|
INSERT (
|
|
OBJID
|
|
, TARGET_OBJID
|
|
, PROD_OBJID
|
|
, ESTIMATE_NO
|
|
, ESTIMATE_REQ_DATE
|
|
, ESTIMATE_SUBMIT_DATE
|
|
, ESTIMATE_PIC
|
|
, YEARLY_AVG_PRODUCTION_CNT
|
|
, TOTAL_PRODUCTION_CNT
|
|
, IS_DEL
|
|
, WRITER
|
|
, REGDATE
|
|
, STATUS
|
|
) VALUES (
|
|
#{objId}
|
|
, #{targetObjId}
|
|
, #{productObjId}
|
|
, #{estimateNo}
|
|
, TO_DATE(#{estimateReqDate}, 'YYYY-MM-DD')
|
|
, TO_DATE(#{estimateSubmitDate}, 'YYYY-MM-DD')
|
|
, #{estimatePICUserId}
|
|
, #{productionAvgCnt}
|
|
, #{productionAllCnt}
|
|
, '1'
|
|
, #{userId}
|
|
, sysdate
|
|
, 'create'
|
|
)
|
|
</update>
|
|
|
|
<!-- //수주활동 제품별 협조부서별 자료회신요청일 수정 -->
|
|
<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
|
|
, DECODE(IS_DEL,0,'Y','N') AS IS_DEL
|
|
, WRITER
|
|
, STATUS
|
|
, REGDATE
|
|
FROM PMS_REL_PJT_CONCEPT_PROD
|
|
WHERE 1=1
|
|
AND TARGET_OBJID = #{targetObjId}
|
|
ORDER BY REGDATE
|
|
</select>
|
|
|
|
<!-- //수주활동 정보 등록 및 저장 -->
|
|
<update id="mergeProjectConceptInfo" parameterType="map">
|
|
MERGE INTO PMS_PJT_CONCEPT_INFO USING DUAL ON (OBJID = #{objId})
|
|
WHEN MATCHED THEN
|
|
UPDATE SET
|
|
FOREIGN_TYPE = #{foreignType}
|
|
, OEM_OBJID = #{oemObjId}
|
|
, CAR_OBJID = #{carTypeObjId}
|
|
, PJT_TYPE = #{projectType}
|
|
, OEM_FACTORY = #{factory}
|
|
WHEN NOT MATCHED THEN
|
|
INSERT (
|
|
OBJID
|
|
, FOREIGN_TYPE
|
|
, OEM_OBJID
|
|
, CAR_OBJID
|
|
, PJT_TYPE
|
|
, OEM_FACTORY
|
|
, IS_DEL
|
|
, WRITER
|
|
, STATUS
|
|
, REGDATE
|
|
) VALUES (
|
|
#{objId}
|
|
, #{foreignType}
|
|
, #{oemObjId}
|
|
, #{carTypeObjId}
|
|
, #{projectType}
|
|
, #{factory}
|
|
, '1'
|
|
, #{userId}
|
|
, 'create'
|
|
, sysdate
|
|
)
|
|
</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}
|
|
</delete>
|
|
|
|
<!-- //수주활동 milestone date 저장 -->
|
|
<update id="mergeProjectConceptMilestoneInfo" parameterType="map">
|
|
MERGE INTO PMS_REL_PJT_CONCEPT_MILESTONE USING DUAL ON (TARGET_OBJID = #{targetObjId} AND MILESTONE_OBJID = #{milestoneObjId})
|
|
WHEN MATCHED THEN
|
|
UPDATE SET
|
|
MILESTONE_DATE = TO_DATE(#{milestoneDate}, 'YYYY-MM-DD')
|
|
WHEN NOT MATCHED THEN
|
|
INSERT (
|
|
OBJID
|
|
, TARGET_OBJID
|
|
, OEM_OBJID
|
|
, MILESTONE_OBJID
|
|
, MILESTONE_DATE
|
|
) VALUES (
|
|
#{objId}
|
|
, #{targetObjId}
|
|
, #{oemObjId}
|
|
, #{milestoneObjId}
|
|
, #{milestoneDate}
|
|
)
|
|
</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}
|
|
</select>
|
|
|
|
<!-- //수주활동 제품별 협력부서정보 삭제 -->
|
|
<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 OBJID = #{objId}
|
|
</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
|
|
, DECODE(A.FOREIGN_TYPE, 'D', '국내', 'F', '해외', A.FOREIGN_TYPE) 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
|
|
, DECODE(A.PJT_TYPE, 'new', '신차', 'derivative', '파생차', 'sample', '시작차', A.PJT_TYPE) AS PJT_TYPE
|
|
, A.OEM_FACTORY
|
|
, A.IS_DEL AS CONCEPT_IS_DEL_ORG
|
|
, DECODE(A.IS_DEL, 0, '삭제됨', 1, '활성화', A.IS_DEL) 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
|
|
, B.OBJID AS CONCEPT_PROD_OBJID
|
|
, B.PROD_OBJID
|
|
, (SELECT PG.PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG PG WHERE PG.OBJID = (SELECT P.PRODUCT_GROUP_OBJID FROM PRODUCT_MNG P WHERE P.OBJID = B.PROD_OBJID)) AS PRODUCT_GROUP_NAME
|
|
, (SELECT PG.OBJID FROM PRODUCT_GROUP_MNG PG WHERE PG.OBJID = (SELECT P.PRODUCT_GROUP_OBJID FROM PRODUCT_MNG P WHERE P.OBJID = B.PROD_OBJID)) AS PRODUCT_GROUP_OBJID
|
|
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = B.PROD_OBJID) AS PROD_NAME
|
|
, B.ESTIMATE_NO
|
|
, B.ESTIMATE_REQ_DATE AS ESTIMATE_REQ_DATE_ORG
|
|
, TO_CHAR(B.ESTIMATE_REQ_DATE, 'YYYY-MM-DD') AS ESTIMATE_REQ_DATE
|
|
, B.ESTIMATE_SUBMIT_DATE AS ESTIMATE_SUBMIT_DATE_ORG
|
|
, TO_CHAR(B.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
|
|
, B.YEARLY_AVG_PRODUCTION_CNT
|
|
, B.TOTAL_PRODUCTION_CNT
|
|
, B.BIDDING_RESULT
|
|
, DECODE(B.BIDDING_RESULT, 'Y', '수주성공', 'N', '수주실패', B.BIDDING_RESULT) AS BIDDING_RESULT_NAME
|
|
, B.IS_DEL AS CONCEPT_PROD_IS_DEL_ORG
|
|
, DECODE(B.IS_DEL, 0, '삭제됨', 1, '활성화', B.IS_DEL) AS 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
|
|
, DECODE(B.STATUS, 'create', '진행중', 'complete', '완료', 'B.STATUS') AS STATUS
|
|
, B.STATUS AS STATUS_ORG
|
|
FROM PMS_PJT_CONCEPT_INFO A, PMS_REL_PJT_CONCEPT_PROD 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}
|
|
</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 B.PROD_OBJID = #{search_productType}
|
|
</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 B.BIDDING_RESULT =#{search_bidding}
|
|
</if>
|
|
AND A.OBJID = B.TARGET_OBJID
|
|
AND A.IS_DEL = 1
|
|
AND B.IS_DEL = 1
|
|
ORDER BY B.REGDATE DESC
|
|
) PMS_PJT_CONCEPT_INFO
|
|
WHERE 1=1
|
|
<if test="search_productGroup != null and search_productGroup !=''">
|
|
AND PRODUCT_GROUP_OBJID = #{search_productGroup}
|
|
</if>
|
|
<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>
|
|
)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
|
|
, DECODE(A.FOREIGN_TYPE, 'D', '국내', 'F', '해외', A.FOREIGN_TYPE) 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
|
|
, DECODE(A.PJT_TYPE, 'new', '신차', 'derivative', '파생차', 'sample', '시작차', A.PJT_TYPE) AS PJT_TYPE
|
|
, A.OEM_FACTORY
|
|
, A.IS_DEL AS CONCEPT_IS_DEL_ORG
|
|
, DECODE(A.IS_DEL, 0, '삭제됨', 1, '활성화', A.IS_DEL) 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
|
|
, B.OBJID AS CONCEPT_PROD_OBJID
|
|
, B.PROD_OBJID
|
|
, (SELECT PG.PRODUCT_GROUP_NAME FROM PRODUCT_GROUP_MNG PG WHERE PG.OBJID = (SELECT P.PRODUCT_GROUP_OBJID FROM PRODUCT_MNG P WHERE P.OBJID = B.PROD_OBJID)) AS PRODUCT_GROUP_NAME
|
|
, (SELECT PG.OBJID FROM PRODUCT_GROUP_MNG PG WHERE PG.OBJID = (SELECT P.PRODUCT_GROUP_OBJID FROM PRODUCT_MNG P WHERE P.OBJID = B.PROD_OBJID)) AS PRODUCT_GROUP_OBJID
|
|
, (SELECT PRODUCT_NAME FROM PRODUCT_MNG WHERE OBJID = B.PROD_OBJID) AS PROD_NAME
|
|
, B.ESTIMATE_NO
|
|
, B.ESTIMATE_REQ_DATE AS ESTIMATE_REQ_DATE_ORG
|
|
, TO_CHAR(B.ESTIMATE_REQ_DATE, 'YYYY-MM-DD') AS ESTIMATE_REQ_DATE
|
|
, B.ESTIMATE_SUBMIT_DATE AS ESTIMATE_SUBMIT_DATE_ORG
|
|
, TO_CHAR(B.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
|
|
, B.YEARLY_AVG_PRODUCTION_CNT
|
|
, B.TOTAL_PRODUCTION_CNT
|
|
, B.BIDDING_RESULT
|
|
, DECODE(B.BIDDING_RESULT, 'Y', '수주성공', 'N', '수주실패', B.BIDDING_RESULT) AS BIDDING_RESULT_NAME
|
|
, B.IS_DEL AS CONCEPT_PROD_IS_DEL_ORG
|
|
, DECODE(B.IS_DEL, 0, '삭제됨', 1, '활성화', B.IS_DEL) AS 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
|
|
, DECODE(B.STATUS, 'create', '진행중', 'complete', '확정', B.STATUS) AS STATUS
|
|
, B.STATUS AS STATUS_ORG
|
|
, B.REGDATE REGDATE_ORG
|
|
, (SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = B.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 = B.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 = B.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 = B.OBJID AND DOC_TYPE='PJT_CONCEPT_FINAL_ATTACH' AND UPPER(STATUS) = 'ACTIVE') AS FINAL_FILE_CNT
|
|
FROM PMS_PJT_CONCEPT_INFO A, PMS_REL_PJT_CONCEPT_PROD 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}
|
|
</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 B.PROD_OBJID = #{search_productType}
|
|
</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 B.BIDDING_RESULT =#{search_bidding}
|
|
</if>
|
|
AND A.OBJID = B.TARGET_OBJID
|
|
AND A.IS_DEL = 1
|
|
AND B.IS_DEL = 1
|
|
) PMS_PJT_CONCEPT_INFO
|
|
WHERE 1=1
|
|
<if test="search_productGroup != null and search_productGroup !=''">
|
|
AND PRODUCT_GROUP_OBJID = #{search_productGroup}
|
|
</if>
|
|
<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
|
|
)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>
|
|
|
|
|
|
|
|
<!-- 수주관리 갯수구함 -->
|
|
<select id="getorderMgmtListCnt" parameterType="map" resultType="map">
|
|
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE}) MAX_PAGE_SIZE,
|
|
TOTAL_CNT
|
|
FROM (
|
|
SELECT COUNT(1) TOTAL_CNT
|
|
FROM(
|
|
SELECT ORDER_MGMT_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( (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 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
|
|
)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
|
|
, DECODE(A.FOREIGN_TYPE, 'D', '국내', 'F', '해외', A.FOREIGN_TYPE) 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
|
|
, DECODE(A.PJT_TYPE, 'new', '신차', 'derivative', '파생차', 'sample', '시작차', A.PJT_TYPE) 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
|
|
, DECODE(A.IS_DEL, 0, '삭제됨', 1, '활성화', A.IS_DEL) 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}
|
|
</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 TO_NUMBER(NVL(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}
|
|
AND UPPER(STATUS) = 'ACTIVE'
|
|
ORDER BY TO_NUMBER(NVL(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 PROD_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 PROD_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>
|
|
)WHERE 1=1
|
|
)
|
|
|
|
</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>
|
|
|
|
<!-- 영업저오 삭제 -->
|
|
<update id="deleteOrdermgmt" parameterType="map">
|
|
DELETE FROM ORDER_MGMT
|
|
WHERE order_mgmt_objid=#{objId}::integer
|
|
</update>
|
|
|
|
|
|
<!-- 작성중 part정보 프로젝트 번호로 모두 삭제를 -->
|
|
<delete id="deleteAllOrderMgmtEx" parameterType="map">
|
|
DELETE FROM ORDER_MGMT_EXAMPLE
|
|
WHERE order_mgmt_objid = #{orderobjId}::integer
|
|
</delete>
|
|
|
|
|
|
<insert id="insertOrderMgmtEx" parameterType="map">
|
|
INSERT INTO ORDER_MGMT_EXAMPLE
|
|
(
|
|
OBJID
|
|
,ORDER_MGMT_OBJID
|
|
,SORT
|
|
,NAME
|
|
,PRODUCT_NAME
|
|
,STANDARD
|
|
,LENGTH
|
|
,UNIT
|
|
,QTY
|
|
,UNIT_PRICE
|
|
,PRICE
|
|
,ORI_PRICE
|
|
,REGDATE
|
|
) VALUES (
|
|
#{OBJID}::integer
|
|
,#{ORDER_MGMT_OBJID}::integer
|
|
,#{SORT}
|
|
,#{NAME}
|
|
,#{PRODUCT_NAME}
|
|
,#{STANDARD}
|
|
,#{LENGTH}
|
|
,#{UNIT}
|
|
,REPLACE(#{QTY},',','')
|
|
,REPLACE(#{UNIT_PRICE},',','')
|
|
,REPLACE(#{PRICE},',','')
|
|
,REPLACE(#{ORI_PRICE},',','')
|
|
,now()
|
|
)
|
|
</insert>
|
|
|
|
|
|
<select id="getOrderexample" parameterType="map" resultType="map">
|
|
WITH MATER AS(SELECT
|
|
RM.RESOURCE_TITLE,
|
|
RM.PRODUCT_TITLE,
|
|
(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = RM.RESOURCE_TITLE AND O.PARENT_CODE_ID = #{RESOURCE_TITLE_CD}) AS RESOURCE_NAME,
|
|
(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = RM.PRODUCT_TITLE AND O.PARENT_CODE_ID = RM.RESOURCE_TITLE) AS PRODUCT_NAME,
|
|
RM.STANDARD
|
|
|
|
FROM
|
|
INVENTORY_MNG IM , RESOURCE_MNG RM , (SELECT (SELECT O.RESOURCE_TITLE FROM RESOURCE_MNG AS O WHERE O.OBJID = T1.RESOURCE_OBJID) AS RESOURCE_TITLE FROM MATERIAL_MASTER_MGMT AS T ,MATERIAL_DETAIL_MGMT T1
|
|
WHERE T.MATERIAL_MASTER_OBJID = T1.MATERIAL_MASTER_OBJID
|
|
AND T.STATUS_CD IN('PURSTCD00700','PURSTCD00800','PURSTCD00900')) AS MATER
|
|
WHERE RM.OBJID = IM.PARENT_OBJID
|
|
AND IM.IS_LAST = 'Y'
|
|
AND RM.RESOURCE_TITLE = MATER.RESOURCE_TITLE
|
|
GROUP BY
|
|
RM.RESOURCE_TITLE,
|
|
RM.PRODUCT_TITLE,
|
|
RM.STANDARD)
|
|
|
|
SELECT
|
|
OME.OBJID
|
|
,OME.ORDER_MGMT_OBJID
|
|
,OME.SORT
|
|
,OME.NAME
|
|
,OME.PRODUCT_NAME
|
|
,OME.STANDARD
|
|
,OME.LENGTH
|
|
,OME.UNIT
|
|
,OME.QTY
|
|
,OME.UNIT_PRICE
|
|
,OME.PRICE
|
|
,OME.ORI_PRICE
|
|
,IM.INVENTORY_QTY
|
|
,ROUND(IM.INVENTORY_QTY::float -(CASE WHEN OME.QTY='' THEN 0 ELSE OME.QTY::float END)) AS FORECAST_QTY
|
|
,CASE WHEN
|
|
(SELECT COUNT(1) FROM MATER AS O1 WHERE O1.RESOURCE_NAME = OME.NAME AND O1.PRODUCT_NAME = OME.PRODUCT_NAME) <![CDATA[ > ]]> 0
|
|
THEN '발주'
|
|
ELSE NULL END AS ORDER_YN
|
|
FROM ORDER_MGMT_EXAMPLE OME
|
|
LEFT OUTER JOIN (
|
|
SELECT
|
|
T.*
|
|
FROM(
|
|
SELECT
|
|
RM.RESOURCE_TITLE,
|
|
RM.PRODUCT_TITLE,
|
|
(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = RM.RESOURCE_TITLE AND O.PARENT_CODE_ID = #{RESOURCE_TITLE_CD}) AS RESOURCE_NAME,
|
|
(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = RM.PRODUCT_TITLE AND O.PARENT_CODE_ID = RM.RESOURCE_TITLE) AS PRODUCT_NAME,
|
|
RM.STANDARD,
|
|
SUM(IM.QTY) AS INVENTORY_QTY
|
|
FROM
|
|
INVENTORY_MNG IM
|
|
INNER JOIN
|
|
RESOURCE_MNG RM
|
|
ON RM.OBJID = IM.PARENT_OBJID
|
|
WHERE 1=1
|
|
AND IM.IS_LAST = 'Y'
|
|
GROUP BY
|
|
RM.RESOURCE_TITLE,
|
|
RM.PRODUCT_TITLE,
|
|
RM.STANDARD
|
|
) AS T
|
|
) IM ON OME.PRODUCT_NAME = IM.RESOURCE_NAME
|
|
--ON OME.PRODUCT_NAME = IM.PRODUCT_NAME
|
|
AND OME.STANDARD = IM.STANDARD
|
|
WHERE OME.ORDER_MGMT_OBJID=#{orderobjId}::INTEGER
|
|
|
|
<if test="costType == 'labor' ">
|
|
AND
|
|
<foreach collection="laborCostArr" item="item" open="(" close=")" separator=" or ">
|
|
REPLACE(OME.PRODUCT_NAME,' ','') = REPLACE(#{item},' ','')
|
|
</foreach>
|
|
|
|
AND REPLACE(OME.PRODUCT_NAME,' ','') != REPLACE('소계',' ','')
|
|
AND REPLACE(OME.PRODUCT_NAME,' ','') != REPLACE('합계',' ','')
|
|
</if>
|
|
|
|
<if test="costType == 'material' ">
|
|
<foreach collection="laborCostArr" item="item">
|
|
AND REPLACE(OME.PRODUCT_NAME,' ','') != REPLACE(#{item},' ','')
|
|
</foreach>
|
|
<foreach collection="exceptCostArr" item="item">
|
|
AND REPLACE(OME.PRODUCT_NAME,' ','') != REPLACE(#{item},' ','')
|
|
</foreach>
|
|
|
|
AND REPLACE(OME.PRODUCT_NAME,' ','') != REPLACE('소계',' ','')
|
|
AND REPLACE(OME.PRODUCT_NAME,' ','') != REPLACE('합계',' ','')
|
|
|
|
</if>
|
|
|
|
|
|
</select>
|
|
|
|
<!-- //dhchoi end -->
|
|
<!-- ********************************************************************************************************** -->
|
|
</mapper> |