Files
wace_plm/WebContent/WEB-INF/classes/com/pms/salesmgmt/mapper/fundMgmt.xml
chpark da06c4684c Initial commit: WACE PLM with database initialization features
- 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
2025-08-29 15:46:08 +09:00

327 lines
11 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="fundMgmt">
<sql id="fundMgmtBase">
(
SELECT
CM.*
,FM.OBJID AS FUND_OBJID
,FM.PARENT_OBJID
,FM.CONTRACT_COST
,FM.CONTRACT_COST_DUE_DATE
,FM.CONTRACT_COST_RESULT
,FM.CONTRACT_COST_RESULT_DATE
,FM.MID_PAY_COST1
,FM.MID_PAY_COST1_DUE_DATE
,FM.MID_PAY_COST1_RESULT
,FM.MID_PAY_COST1_RESULT_DATE
,FM.MID_PAY_COST2
,FM.MID_PAY_COST2_DUE_DATE
,FM.MID_PAY_COST2_RESULT
,FM.MID_PAY_COST2_RESULT_DATE
,FM.BALANCE_COST
,FM.BALANCE_COST_DUE_DATE
,FM.BALANCE_COST_RESULT
,FM.BALANCE_COST_RESULT_DATE
,FM.STATUS AS FUND_STATUS
,(SELECT CODE_NAME FROM COMM_CODE WHERE 1=1 AND CODE_ID = FM.STATUS) AS FUND_STATUS_NAME
,FM.REGDATE AS FUND_REGDATE
,FM.WRITER AS FUND_WRITER
,CASE
WHEN FM.BALANCE_COST_RESULT_DATE IS NOT NULL AND FM.BALANCE_COST_RESULT_DATE != '' THEN '잔금입금'
WHEN FM.MID_PAY_COST2_RESULT_DATE IS NOT NULL AND FM.MID_PAY_COST2_RESULT_DATE != '' THEN '중도금(2차)입금'
WHEN FM.MID_PAY_COST1_RESULT_DATE IS NOT NULL AND FM.MID_PAY_COST1_RESULT_DATE != '' THEN '중도금(1차)입금'
WHEN FM.CONTRACT_COST_RESULT_DATE IS NOT NULL AND FM.CONTRACT_COST_RESULT_DATE != '' THEN '계약금입금'
WHEN FM.CONTRACT_COST_RESULT_DATE IS NULL OR FM.CONTRACT_COST_RESULT_DATE = '' THEN '미입금'
ELSE '미입금'
END FUND_STATUS_TITLE
FROM (
SELECT
OBJID
,CONTRACT_OBJID
,CATEGORY_CD
,CODE_NAME(CATEGORY_CD) AS CATEGORY_NAME
,CUSTOMER_OBJID
,(SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID = T.CUSTOMER_OBJID::NUMERIC) AS CUSTOMER_NAME
,PRODUCT
,CODE_NAME(PRODUCT) AS PRODUCT_NAME
,(SELECT O.CUSTOMER_PROJECT_NAME FROM CONTRACT_MGMT AS O WHERE O.OBJID = CONTRACT_OBJID) AS CUSTOMER_PROJECT_NAME
,STATUS_CD
,CODE_NAME(STATUS_CD) AS STATUS_NAME
,(SELECT O.DUE_DATE FROM CONTRACT_MGMT AS O WHERE O.OBJID = CONTRACT_OBJID) AS DUE_DATE
,LOCATION
,SETUP
,FACILITY
,CODE_NAME(FACILITY) AS FACILITY_NAME
,FACILITY_QTY
,FACILITY_TYPE
,FACILITY_DEPTH
,PRODUCTION_NO
,BUS_CAL_CD
,CODE_NAME(BUS_CAL_CD) AS BUS_CAL_NAME
,CATEGORY1_CD
,CODE_NAME(CATEGORY1_CD) AS CATEGORY1_NAME
,CHG_USER_ID
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = T.CHG_USER_ID ) AS CHG_USER_NAME
,PLAN_DATE
,COMPLETE_DATE
,RESULT_CD
,CODE_NAME(RESULT_CD) AS RESULT_NAME
,PROJECT_NO
,PM_USER_ID
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = T.PM_USER_ID ) AS PM_USER_NAME
,CONTRACT_PRICE
,CONTRACT_CURRENCY
,CODE_NAME(CONTRACT_CURRENCY) AS CONTRACT_CURRENCY_NAME
,CONTRACT_PRICE_CURRENCY
,REGDATE
,TO_CHAR(REGDATE,'YYYY-MM-DD') AS REG_DATE
,WRITER
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = T.WRITER ) AS WRITER_NAME
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.OBJID AND DOC_TYPE='contractMgmt01' AND UPPER(STATUS) = 'ACTIVE') AS CU01_CNT
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.OBJID AND DOC_TYPE='contractMgmt02' AND UPPER(STATUS) = 'ACTIVE') AS CU02_CNT
,CONTRACT_NO
,CUSTOMER_EQUIP_NAME
,(SELECT O.REQ_DEL_DATE FROM CONTRACT_MGMT AS O WHERE O.OBJID = CONTRACT_OBJID) AS REQ_DEL_DATE
,CONTRACT_DEL_DATE
,CONTRACT_COMPANY
,CODE_NAME(CONTRACT_COMPANY) AS CONTRACT_COMPANY_NAME
,(SELECT O.CONTRACT_DATE FROM CONTRACT_MGMT AS O WHERE O.OBJID = CONTRACT_OBJID) AS CONTRACT_DATE
,PO_NO
,MANUFACTURE_PLANT
,CODE_NAME(MANUFACTURE_PLANT) AS MANUFACTURE_PLANT_NAME
,CONTRACT_RESULT
,CODE_NAME(CONTRACT_RESULT) AS CONTRACT_RESULT_NAME
,CODE_NAME(AREA_CD) AS AREA_NAME
,PROJECT_NAME
,MECHANICAL_TYPE
,OVERHAUL_ORDER
FROM PROJECT_MGMT AS T
) CM
LEFT OUTER JOIN FUND_MGMT FM
ON CM.OBJID::VARCHAR = FM.PARENT_OBJID
WHERE 1=1
)
</sql>
<sql id="fundMgmtBase2">
(
SELECT
CM.OBJID
,CM.CONTRACT_NO
,CM.CUSTOMER_OBJID
,(SELECT SUPPLY_CODE FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS SUPPLY_CODE
,(SELECT CODE_NAME(SUPPLY_CODE) FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS SUPPLY_CODE_NAME
,(SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS SUPPLY_NAME
,(SELECT AREA_CD FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS AREA_CD
,(SELECT CODE_NAME(AREA_CD) FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS AREA_CD_NAME
,(SELECT CHARGE_USER_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS CHARGE_USER_NAME
,(SELECT REG_ID FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS REG_ID
,(SELECT BUS_REG_NO FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS BUS_REG_NO
,(SELECT REG_NO FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS REG_NO
,(SELECT SUPPLY_BUSNAME FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS SUPPLY_BUSNAME
,(SELECT SUPPLY_STOCKNAME FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS SUPPLY_STOCKNAME
,(SELECT SUPPLY_ADDRESS FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS SUPPLY_ADDRESS
,(SELECT SUPPLY_TEL_NO FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS SUPPLY_TEL_NO
,(SELECT EMAIL FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS EMAIL
,(SELECT OFFICE_NO FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS OFFICE_NO
,(SELECT SUPPLY_FAX_NO FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS SUPPLY_FAX_NO
,CM.CATEGORY_CD
,CODE_NAME(CM.CATEGORY_CD) AS CATEGORY_CD_NAME
,CM.PRODUCT
,(SELECT PRODUCT_CODE FROM PRODUCT_MGMT AS O WHERE O.OBJID::VARCHAR = CM.PRODUCT) AS PRODUCT_CODE
,(SELECT PRODUCT_NAME FROM PRODUCT_MGMT AS O WHERE O.OBJID::VARCHAR = CM.PRODUCT) AS PRODUCT_NAME
,FM.OBJID AS FUND_OBJID
,FM.PARENT_OBJID
,FM.CONTRACT_COST
,FM.CONTRACT_COST_DUE_DATE
,FM.CONTRACT_COST_RESULT
,FM.CONTRACT_COST_RESULT_DATE
,FM.MID_PAY_COST1
,FM.MID_PAY_COST1_DUE_DATE
,FM.MID_PAY_COST1_RESULT
,FM.MID_PAY_COST1_RESULT_DATE
,FM.MID_PAY_COST2
,FM.MID_PAY_COST2_DUE_DATE
,FM.MID_PAY_COST2_RESULT
,FM.MID_PAY_COST2_RESULT_DATE
,FM.BALANCE_COST
,FM.BALANCE_COST_DUE_DATE
,FM.BALANCE_COST_RESULT
,FM.BALANCE_COST_RESULT_DATE
,FM.STATUS AS FUND_STATUS
,(SELECT CODE_NAME FROM COMM_CODE WHERE 1=1 AND CODE_ID = FM.STATUS) AS FUND_STATUS_NAME
,FM.REGDATE
,FM.WRITER AS FUND_WRITER
,CASE
WHEN BALANCE_COST_RESULT_DATE IS NOT NULL THEN '잔금입금'
WHEN MID_PAY_COST2_RESULT_DATE IS NOT NULL THEN '중도금(2차)입금'
WHEN MID_PAY_COST1_RESULT_DATE IS NOT NULL THEN '중도금(1차)입금'
WHEN CONTRACT_COST_RESULT_DATE IS NOT NULL THEN '계약금입금'
ELSE '미입금'
END FUND_STATUS_TITLE
FROM PROJECT_MGMT CM
LEFT OUTER JOIN FUND_MGMT FM
ON CM.OBJID::VARCHAR = FM.PARENT_OBJID
WHERE 1=1
)
</sql>
<!-- //자금관리 리스트 -->
<select id="getFundMgmtList" parameterType="map" resultType="map">
SELECT
T.*
,ROW_NUMBER() OVER (PARTITION BY CONTRACT_NO ORDER BY CONTRACT_NO DESC) AS RSEQ
FROM
<include refid="fundMgmtBase"/> T
WHERE 1=1
<if test="Year !=null and Year != '' ">
AND TO_CHAR(REGDATE,'YYYY') = #{Year}
</if>
<if test="project_no !=null and project_no != '' ">
AND OBJID = #{project_no}
</if>
<if test="category_cd !=null and category_cd != '' ">
AND category_cd = #{category_cd}
</if>
<if test="customer_objid !=null and customer_objid != '' ">
AND customer_objid = #{customer_objid}
</if>
<if test="product != null and product !='' ">
AND product = #{product}
</if>
<if test="status_cd !=null and status_cd !=''">
AND status_cd = #{status_cd}
</if>
<if test="result_cd !=null and result_cd !=''">
AND result_cd = #{result_cd}
</if>
<if test="contract_start_date != null and !''.equals(contract_start_date)">
AND TO_DATE(CONTRACT_DATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{contract_start_date}, 'YYYY-MM-DD')
</if>
<if test="contract_end_date != null and !''.equals(contract_end_date)">
AND TO_DATE(CONTRACT_DATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{contract_end_date}, 'YYYY-MM-DD')
</if>
<if test="fund_status !=null and fund_status !=''">
AND fund_status = #{fund_status}
</if>
</select>
<select id="getFundMgmtInfo" parameterType="map" resultType="map">
SELECT
*
FROM
<include refid="fundMgmtBase2"/> FMB
WHERE 1=1
AND OBJID::VARCHAR = #{PARENT_OBJID}
</select>
<update id="saveFundMgmtInfo" parameterType="map">
INSERT INTO
FUND_MGMT
(
OBJID
,PARENT_OBJID
,CONTRACT_COST
,CONTRACT_COST_DUE_DATE
,CONTRACT_COST_RESULT
,CONTRACT_COST_RESULT_DATE
,MID_PAY_COST1
,MID_PAY_COST1_DUE_DATE
,MID_PAY_COST1_RESULT
,MID_PAY_COST1_RESULT_DATE
,MID_PAY_COST2
,MID_PAY_COST2_DUE_DATE
,MID_PAY_COST2_RESULT
,MID_PAY_COST2_RESULT_DATE
,BALANCE_COST
,BALANCE_COST_DUE_DATE
,BALANCE_COST_RESULT
,BALANCE_COST_RESULT_DATE
,STATUS
,REGDATE
,WRITER
)VALUES(
#{FUND_OBJID}
,#{PARENT_OBJID}
,#{CONTRACT_COST}
,#{CONTRACT_COST_DUE_DATE}
,#{CONTRACT_COST_RESULT}
,#{CONTRACT_COST_RESULT_DATE}
,#{MID_PAY_COST1}
,#{MID_PAY_COST1_DUE_DATE}
,#{MID_PAY_COST1_RESULT}
,#{MID_PAY_COST1_RESULT_DATE}
,#{MID_PAY_COST2}
,#{MID_PAY_COST2_DUE_DATE}
,#{MID_PAY_COST2_RESULT}
,#{MID_PAY_COST2_RESULT_DATE}
,#{BALANCE_COST}
,#{BALANCE_COST_DUE_DATE}
,#{BALANCE_COST_RESULT}
,#{BALANCE_COST_RESULT_DATE}
,#{STATUS}
,NOW()
,#{WRITER}
)ON CONFLICT (OBJID) DO
UPDATE
SET
PARENT_OBJID = #{PARENT_OBJID}
,CONTRACT_COST = #{CONTRACT_COST}
,CONTRACT_COST_DUE_DATE = #{CONTRACT_COST_DUE_DATE}
,CONTRACT_COST_RESULT = #{CONTRACT_COST_RESULT}
,CONTRACT_COST_RESULT_DATE = #{CONTRACT_COST_RESULT_DATE}
,MID_PAY_COST1 = #{MID_PAY_COST1}
,MID_PAY_COST1_DUE_DATE = #{MID_PAY_COST1_DUE_DATE}
,MID_PAY_COST1_RESULT = #{MID_PAY_COST1_RESULT}
,MID_PAY_COST1_RESULT_DATE = #{MID_PAY_COST1_RESULT_DATE}
,MID_PAY_COST2 = #{MID_PAY_COST2}
,MID_PAY_COST2_DUE_DATE = #{MID_PAY_COST2_DUE_DATE}
,MID_PAY_COST2_RESULT = #{MID_PAY_COST2_RESULT}
,MID_PAY_COST2_RESULT_DATE = #{MID_PAY_COST2_RESULT_DATE}
,BALANCE_COST = #{BALANCE_COST}
,BALANCE_COST_DUE_DATE = #{BALANCE_COST_DUE_DATE}
,BALANCE_COST_RESULT = #{BALANCE_COST_RESULT}
,BALANCE_COST_RESULT_DATE = #{BALANCE_COST_RESULT_DATE}
,STATUS = #{STATUS}
</update>
<delete id="deleteFundMgmtInfo" parameterType="map">
DELETE FROM FUND_MGMT WHERE 1=1
<if test="checkArr != null and checkArr !=''">
<![CDATA[ AND 0 < POSITION(PARENT_OBJID::TEXT || ',' IN #{checkArr}||',') ]]>
</if>
</delete>
</mapper>