- 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
275 lines
9.0 KiB
XML
275 lines
9.0 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="releaseMgmt">
|
|
<sql id="releaseMgmtBase">
|
|
(
|
|
SELECT
|
|
CM.*
|
|
|
|
,RM.OBJID AS RELEASE_OBJID
|
|
,RM.PARENT_OBJID
|
|
,RM.RELEASE_CAR_NO
|
|
,RM.RELEASE_DATE
|
|
,RM.TASK_OVER_USER_ID
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = RM.TASK_OVER_USER_ID) AS TASK_OVER_USER_NAME
|
|
,RM.TASK_OVER_DATE
|
|
,RM.TASK_OVER_COMMENT
|
|
,RM.REGDATE AS RELEASE_REGDATE
|
|
,RM.WRITER AS RELEASE_WRITER
|
|
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID::VARCHAR = RM.OBJID AND DOC_TYPE='RELEASE_CHECK' AND UPPER(STATUS) = 'ACTIVE') AS RELEASE_CHECK_CNT
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID::VARCHAR = RM.OBJID AND DOC_TYPE='RELEASE_ORDER' AND UPPER(STATUS) = 'ACTIVE') AS RELEASE_ORDER_CNT
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID::VARCHAR = RM.OBJID AND DOC_TYPE='RELEASE_TAKING_OVER' AND UPPER(STATUS) = 'ACTIVE') AS RELEASE_TAKING_OVER_CNT
|
|
|
|
,CASE
|
|
WHEN (COALESCE(TRIM(RM.RELEASE_DATE),'') !='') THEN '출고완료'
|
|
WHEN TO_CHAR(NOW(),'YYYYMMDD') <![CDATA[ <= ]]> TO_CHAR(TO_DATE(CM.CONTRACT_COST_RESULT_DATE,'YYYY-MM-DD'),'YYYYMMDD') THEN '취소'
|
|
WHEN (COALESCE(TRIM(CM.CONTRACT_COST_RESULT_DATE),'') !='') THEN '수주'
|
|
WHEN TO_CHAR(NOW(),'YYYYMMDD') >= TO_CHAR(TO_DATE(CM.DUE_DATE,'YYYY-MM-DD'),'YYYYMMDD') THEN '지연'
|
|
ELSE '계약'
|
|
END RELEASE_STATUS_TITLE
|
|
|
|
,RM.INSTALL_COMPLETE_DATE
|
|
,RM.INSTALL_RESULT
|
|
FROM
|
|
<include refid="fundMgmt.fundMgmtBase"/> CM
|
|
LEFT OUTER JOIN
|
|
RELEASE_MGMT RM
|
|
ON CM.OBJID::VARCHAR = RM.PARENT_OBJID
|
|
<!-- AND CM.PRODUCT_GROUP = RM.PRODUCT_GROUP -->
|
|
AND CM.PRODUCT = RM.PRODUCT
|
|
)
|
|
</sql>
|
|
|
|
<sql id="releaseMgmtBase2">
|
|
(
|
|
SELECT
|
|
CM.*
|
|
|
|
,CM.CATEGORY_CD AS CM_CATEGORY_CD
|
|
,CM.CATEGORY_CD_NAME AS CM_CATEGORY_CD_NAME
|
|
,CM.PRODUCT AS CM_PRODUCT
|
|
,CM.PRODUCT_NAME AS CM_PRODUCT_NAME
|
|
,'1' AS PRODUCT_SEQ
|
|
|
|
,RM.OBJID AS RELEASE_OBJID
|
|
,RM.PARENT_OBJID
|
|
,RM.RELEASE_CAR_NO
|
|
,RM.RELEASE_DATE
|
|
,RM.TASK_OVER_USER_ID
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = RM.TASK_OVER_USER_ID) AS TASK_OVER_USER_NAME
|
|
,RM.TASK_OVER_DATE
|
|
,RM.TASK_OVER_COMMENT
|
|
,RM.REGDATE AS RELEASE_REGDATE
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = RM.WRITER) AS RELEASE_WRITER
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID::VARCHAR = RM.OBJID AND DOC_TYPE='RELEASE_CHECK' AND UPPER(STATUS) = 'ACTIVE') AS RELEASE_CHECK_CNT
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID::VARCHAR = RM.OBJID AND DOC_TYPE='RELEASE_ORDER' AND UPPER(STATUS) = 'ACTIVE') AS RELEASE_ORDER_CNT
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID::VARCHAR = RM.OBJID AND DOC_TYPE='RELEASE_TAKING_OVER' AND UPPER(STATUS) = 'ACTIVE') AS RELEASE_TAKING_OVER_CNT
|
|
|
|
,CASE
|
|
WHEN (COALESCE(TRIM(RM.RELEASE_DATE),'') !='') THEN '출고완료'
|
|
WHEN TO_CHAR(NOW(),'YYYYMMDD') <![CDATA[ <= ]]> TO_CHAR(TO_DATE(CM.CONTRACT_COST_RESULT_DATE,'YYYY-MM-DD'),'YYYYMMDD') THEN '취소'
|
|
WHEN (COALESCE(TRIM(CM.CONTRACT_COST_RESULT_DATE),'') !='') THEN '수주'
|
|
WHEN (COALESCE(TRIM(CM.CONTRACT_COST_RESULT_DATE),'') ='') THEN '지연'
|
|
ELSE '계약'
|
|
END RELEASE_STATUS_TITLE
|
|
|
|
,RM.INSTALL_COMPLETE_DATE
|
|
,RM.INSTALL_RESULT
|
|
FROM
|
|
<include refid="fundMgmt.fundMgmtBase2"/> CM
|
|
LEFT OUTER JOIN
|
|
RELEASE_MGMT RM
|
|
ON CM.OBJID::VARCHAR = RM.PARENT_OBJID
|
|
<!-- AND CM.PRODUCT_GROUP = RM.PRODUCT_GROUP -->
|
|
AND CM.PRODUCT = RM.PRODUCT
|
|
WHERE 1=1
|
|
<!-- AND CM.PRODUCT_GROUP IS NOT NULL -->
|
|
AND CM.PRODUCT IS NOT NULL
|
|
)
|
|
</sql>
|
|
|
|
<!-- //자금관리 리스트 -->
|
|
<select id="getReleaseMgmtList" parameterType="map" resultType="map">
|
|
SELECT
|
|
T.*
|
|
,ROW_NUMBER() OVER (PARTITION BY CONTRACT_NO ORDER BY CONTRACT_NO DESC) AS RSEQ
|
|
FROM
|
|
<include refid="releaseMgmtBase"/> T
|
|
WHERE 1=1
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(REGDATE,'YYYY') = #{Year}
|
|
</if>
|
|
|
|
<if test="project_no !=null and project_no != '' ">
|
|
AND OBJID = #{project_no}
|
|
</if>
|
|
|
|
<if test="category_cd !=null and category_cd != '' ">
|
|
AND category_cd = #{category_cd}
|
|
</if>
|
|
|
|
<if test="customer_objid !=null and customer_objid != '' ">
|
|
AND customer_objid = #{customer_objid}
|
|
</if>
|
|
|
|
<if test="product != null and product !='' ">
|
|
AND product = #{product}
|
|
</if>
|
|
|
|
<if test="status_cd !=null and status_cd !=''">
|
|
AND status_cd = #{status_cd}
|
|
</if>
|
|
|
|
<if test="release_start_date != null and !''.equals(release_start_date)">
|
|
AND TO_DATE(RELEASE_DATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{release_start_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="release_end_date != null and !''.equals(release_end_date)">
|
|
AND TO_DATE(RELEASE_DATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{release_end_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
<if test="release_status !=null and release_status !=''">
|
|
AND RELEASE_STATUS_TITLE = #{release_status}
|
|
</if>
|
|
|
|
<if test="install_result !=null and install_result !=''">
|
|
AND INSTALL_RESULT = #{install_result}
|
|
</if>
|
|
|
|
<if test="contract_mgmt_objid !=null and contract_mgmt_objid !=''">
|
|
AND CONTRACT_OBJID = #{contract_mgmt_objid}
|
|
</if>
|
|
</select>
|
|
|
|
<!-- //자금관리 리스트 -->
|
|
<select id="getReleaseMgmtGridList" parameterType="map" resultType="map">
|
|
SELECT
|
|
T.*
|
|
,ROW_NUMBER() OVER (PARTITION BY CONTRACT_NO ORDER BY CONTRACT_NO DESC) AS RSEQ
|
|
FROM
|
|
<include refid="releaseMgmtBase"/> T
|
|
WHERE 1=1
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(REGDATE,'YYYY') = #{Year}
|
|
</if>
|
|
|
|
<!-- <if test="project_no !=null and project_no != '' ">
|
|
AND OBJID = #{project_no}
|
|
</if> -->
|
|
|
|
<if test="project_nos != null and project_nos != ''">
|
|
AND OBJID IN
|
|
<foreach item="state" collection="project_nos.split(',')"
|
|
open="(" separator="," close=")">
|
|
#{state}
|
|
</foreach>
|
|
</if>
|
|
|
|
<if test="category_cd !=null and category_cd != '' ">
|
|
AND category_cd = #{category_cd}
|
|
</if>
|
|
|
|
<if test="customer_objid !=null and customer_objid != '' ">
|
|
AND customer_objid = #{customer_objid}
|
|
</if>
|
|
|
|
<if test="product != null and product !='' ">
|
|
AND product = #{product}
|
|
</if>
|
|
|
|
<if test="status_cd !=null and status_cd !=''">
|
|
AND status_cd = #{status_cd}
|
|
</if>
|
|
|
|
<if test="release_start_date != null and !''.equals(release_start_date)">
|
|
AND TO_DATE(RELEASE_DATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{release_start_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="release_end_date != null and !''.equals(release_end_date)">
|
|
AND TO_DATE(RELEASE_DATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{release_end_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
<if test="release_status !=null and release_status !=''">
|
|
AND RELEASE_STATUS_TITLE = #{release_status}
|
|
</if>
|
|
|
|
<if test="install_result !=null and install_result !=''">
|
|
AND INSTALL_RESULT = #{install_result}
|
|
</if>
|
|
|
|
<if test="contract_mgmt_objid !=null and contract_mgmt_objid !=''">
|
|
AND CONTRACT_OBJID = #{contract_mgmt_objid}
|
|
</if>
|
|
ORDER BY SUBSTRING(PROJECT_NO,POSITION('-' IN PROJECT_NO)+1) DESC
|
|
</select>
|
|
|
|
<select id="getReleaseMgmtInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
RMB.*
|
|
FROM
|
|
<include refid="releaseMgmtBase2"/> RMB
|
|
WHERE 1=1
|
|
AND RMB.OBJID::VARCHAR = #{PARENT_OBJID}
|
|
<!-- AND RMB.CM_PRODUCT_GROUP = #{PRODUCT_GROUP} -->
|
|
AND RMB.CM_PRODUCT = #{PRODUCT}
|
|
</select>
|
|
|
|
<update id="saveReleaseMgmtInfo" parameterType="map">
|
|
INSERT INTO
|
|
RELEASE_MGMT
|
|
(
|
|
OBJID
|
|
,PARENT_OBJID
|
|
,RELEASE_CAR_NO
|
|
,RELEASE_DATE
|
|
,TASK_OVER_USER_ID
|
|
,TASK_OVER_DATE
|
|
,TASK_OVER_COMMENT
|
|
,STATUS
|
|
,REGDATE
|
|
,WRITER
|
|
,PRODUCT_GROUP
|
|
,PRODUCT
|
|
,INSTALL_COMPLETE_DATE
|
|
,INSTALL_RESULT
|
|
)VALUES(
|
|
#{RELEASE_OBJID}
|
|
,#{PARENT_OBJID}
|
|
,#{RELEASE_CAR_NO}
|
|
,#{RELEASE_DATE}
|
|
,#{TASK_OVER_USER_ID}
|
|
,#{TASK_OVER_DATE}
|
|
,#{TASK_OVER_COMMENT}
|
|
,#{STATUS}
|
|
,NOW()
|
|
,#{WRITER}
|
|
,#{PRODUCT_GROUP}
|
|
,#{PRODUCT}
|
|
,#{INSTALL_COMPLETE_DATE}
|
|
,#{INSTALL_RESULT}
|
|
)ON CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET
|
|
PARENT_OBJID = #{PARENT_OBJID}
|
|
,RELEASE_CAR_NO = #{RELEASE_CAR_NO}
|
|
,RELEASE_DATE = #{RELEASE_DATE}
|
|
,WRITER = #{WRITER}
|
|
,TASK_OVER_USER_ID = #{TASK_OVER_USER_ID}
|
|
,TASK_OVER_DATE = #{TASK_OVER_DATE}
|
|
,TASK_OVER_COMMENT = #{TASK_OVER_COMMENT}
|
|
,STATUS = #{STATUS}
|
|
,PRODUCT_GROUP = #{PRODUCT_GROUP}
|
|
,PRODUCT = #{PRODUCT}
|
|
,INSTALL_COMPLETE_DATE= #{INSTALL_COMPLETE_DATE}
|
|
,INSTALL_RESULT = #{INSTALL_RESULT}
|
|
</update>
|
|
|
|
<delete id="deleteReleaseMgmtInfo" parameterType="map">
|
|
DELETE FROM RELEASE_MGMT WHERE 1=1
|
|
<if test="checkArr != null and checkArr !=''">
|
|
<![CDATA[ AND 0 < POSITION(OBJID::TEXT || ',' IN #{checkArr}||',') ]]>
|
|
</if>
|
|
</delete>
|
|
|
|
</mapper>
|
|
|