- 견적등록 유/무상 select 박스에 selected 속성 추가 - 주문서 목록 페이지 업데이트 - 수주 관련 컬럼 추가 SQL 스크립트 추가 (add_order_columns.sql) - estimate_template_tables.sql 업데이트 - contractMgmt.xml 쿼리 개선
4193 lines
127 KiB
XML
4193 lines
127 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">
|
|
|
|
<!--
|
|
/**
|
|
* 계약관리
|
|
* @since 2021.10.01
|
|
* @author kim
|
|
* @version 1.0
|
|
*
|
|
* << 개정 이력 >>
|
|
*
|
|
* 수정일 수정자 수정내용
|
|
* **************** ********************** ********************************************************
|
|
* 2021.10.01 김효일 최초작성
|
|
**/
|
|
-->
|
|
<mapper namespace="contractMgmt">
|
|
|
|
<!--
|
|
/**
|
|
* 계약관리 목록 조회
|
|
* @since 2021.10.01
|
|
* @author kim
|
|
* @version 1.0
|
|
*
|
|
* << 개정 이력 >>
|
|
*
|
|
* 수정일 수정자 수정내용
|
|
* **************** ********************** ********************************************************
|
|
* 2021.10.01 김효일 최초작성
|
|
* 2021.10.07 민상익 사업부필드와 국가필드 , 계약년월, 일련번호,추가 조회
|
|
**/
|
|
-->
|
|
<select id="getContractMgmtList" parameterType="map" resultType="map">
|
|
/* contractMgmt.getContractMgmtList */
|
|
SELECT *
|
|
FROM (
|
|
SELECT ROW_NUMBER() OVER (ORDER BY CRET_DATE) AS RNUM
|
|
, orderNo /* 계약번호 */
|
|
, orderUnit /* 시장구분 */
|
|
, saleGB /* 판매구분 */
|
|
, saleType /* 판매유형 */
|
|
, custCd /* 고객코드 */
|
|
, goodsCd /* 제품코드 */
|
|
, orderDate /* 계약일자 */
|
|
, goodsGuarantee /* 보증기간 */
|
|
, goodsQty /* 계약수량 */
|
|
, saleQty /* 출하수량 */
|
|
, saleQty1 /* 출고수량 */
|
|
, supplyQty /* 매출수량 */
|
|
, salePrice /* 단가 */
|
|
, saleAmt /* 금액 */
|
|
, vatAmt /* 부가세 */
|
|
, (SaleAmt+VatAmt) AS totSaleAmt /* 합계 */
|
|
, supplyAmt /* 매출액 */
|
|
, rcptAmt /* 수금액 */
|
|
, cretEmpNo /* 입력자 */
|
|
, acntUnit /* 사업부 */
|
|
, nationGB /* 국가 */
|
|
, orderYm /* 계약년월 */
|
|
, orderSer /* 일련번호 */
|
|
, chulhaYN /* 출하대상 */
|
|
, (SELECT CdNm FROM SWSA050A_TBL WHERE MajorCd = 'SE' AND MinorCd = A.OrderUnit) AS orderUnitNm /* 시장구분명 */
|
|
, (CASE A.SaleGB WHEN '0' THEN '일반' WHEN '1' THEN '대리점' END) AS saleGBNm /* 판매구분명 */
|
|
, (SELECT CdNm FROM SWSA050A_TBL WHERE MajorCd = 'GE' AND MinorCd = A.SaleType) AS saleTypeNm /* 판매유형명 */
|
|
, (SELECT CustNm FROM SWSB210A_TBL WHERE CustCd = A.CustCd) AS custNm /* 고객명 */
|
|
, (SELECT GoodsNm FROM SWSB110A_TBL WHERE GoodsCd = A.GoodsCd) AS goodsNm /* 제품명 */
|
|
FROM SWSC110A_TBL A
|
|
WHERE 1 = 1
|
|
<if test='condAcntUnit != null and condAcntUnit != ""'>
|
|
AND AcntUnit = #{condAcntUnit} /* 사업부 */
|
|
</if>
|
|
<if test='Year != null and Year != ""'>
|
|
AND orderYm = CONCAT(#{Year}, #{Month}) /* 계약년월 */
|
|
</if>
|
|
) T
|
|
WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END != ''">
|
|
<![CDATA[ AND RNUM <= #{PAGE_END}::integer ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_START != ''">
|
|
<![CDATA[ AND RNUM >= #{PAGE_START}::integer ]]>
|
|
</if>
|
|
</select>
|
|
|
|
<!--
|
|
/**
|
|
* 계약관리 로우카운트 조회
|
|
* @since 2021.10.01
|
|
* @author kim
|
|
* @version 1.0
|
|
*
|
|
* << 개정 이력 >>
|
|
*
|
|
* 수정일 수정자 수정내용
|
|
* **************** ********************** ********************************************************
|
|
* 2021.10.01 김효일 최초작성
|
|
**/
|
|
-->
|
|
<select id="getContractMgmtListCnt" parameterType="map" resultType="map">
|
|
/* contractMgmt.getContractMgmtListCnt */
|
|
SELECT CEIL(TOTAL_CNT/#{COUNT_PER_PAGE})::numeric::integer AS MAX_PAGE_SIZE
|
|
, TOTAL_CNT::integer
|
|
FROM (
|
|
SELECT COUNT(1)::float TOTAL_CNT
|
|
FROM (
|
|
SELECT *
|
|
FROM SWSC110A_TBL
|
|
WHERE 1 = 1
|
|
<if test="condAcntUnit != null and condAcntUnit != '' ">
|
|
AND AcntUnit = #{condAcntUnit} /* 사업부 */
|
|
</if>
|
|
<if test="Year != null and Year != '' ">
|
|
AND orderYm =CONCAT(#{Year},#{Month}) /* 계약년월 */
|
|
</if>
|
|
) T
|
|
) T
|
|
</select>
|
|
|
|
<!--
|
|
/**
|
|
* 고객, 딜러, 제품를 선택한 계약관리 목록 조회
|
|
* @since 2021.10.01
|
|
* @author kim
|
|
* @version 1.0
|
|
*
|
|
* << 개정 이력 >>
|
|
*
|
|
* 수정일 수정자 수정내용
|
|
* **************** ********************** ********************************************************
|
|
* 2021.10.01 김효일 최초작성
|
|
**/
|
|
-->
|
|
<select id="getContractMgmtListRelation" parameterType="map" resultType="map">
|
|
/* contractMgmt.getContractMgmtListRelation */
|
|
SELECT OrderNo /* 계약번호 */
|
|
, OrderUnit /* 시장구분 */
|
|
, SaleGB /* 판매구분 */
|
|
, SaleType /* 판매유형 */
|
|
, CustCd /* 고객코드 */
|
|
, GoodsCd /* 제품코드 */
|
|
, OrderDate /* 계약일자 */
|
|
, GoodsGuarantee /* 보증기간 */
|
|
, GoodsQty /* 계약수량 */
|
|
, SaleQty /* 출하수량 */
|
|
, SaleQty1 /* 출고수량 */
|
|
, SupplyQty /* 매출수량 */
|
|
, SalePrice /* 단가 */
|
|
, SaleAmt /* 금액 */
|
|
, VatAmt /* 부가세 */
|
|
, (SaleAmt+VatAmt) AS TotSaleAmt /* 합계 */
|
|
, SupplyAmt /* 매출액 */
|
|
, RcptAmt /* 수금액 */
|
|
, CretEmpNo /* 입력자 */
|
|
, AcntUnit /* 사업부 */
|
|
, NationGB /* 국가 */
|
|
, orderYm /* 계약년월 */
|
|
, orderSer /* 일련번호 */
|
|
, (SELECT CdNm FROM SWSA050A_TBL WHERE MajorCd = 'SE' AND MinorCd = A.OrderUnit) AS OrderUnitNm /* 시장구분명 */
|
|
, (CASE A.SaleGB WHEN '0' THEN '일반' WHEN '1' THEN '대리점' END) AS SaleGBNm /* 판매구분명 */
|
|
, (SELECT CdNm FROM SWSA050A_TBL WHERE MajorCd = 'GE' AND MinorCd = A.SaleType) AS SaleTypeNm /* 판매유형명 */
|
|
, (SELECT CustNm FROM SWSB210A_TBL WHERE CustCd = A.CustCd) AS CustNm /* 고객명 */
|
|
, (SELECT GoodsNm FROM SWSB110A_TBL WHERE GoodsCd = A.GoodsCd) AS GoodsNm /* 제품명 */
|
|
FROM SWSC110A_TBL A
|
|
WHERE 1 = 1
|
|
<if test='condSearchType == "customer"'>
|
|
AND custCd = #{condCustCd} /* 고객코드 */
|
|
</if>
|
|
<if test='condSearchType == "dealer"'>
|
|
AND salesMan = #{condSalesMan} /* 딜러코드 */
|
|
</if>
|
|
<if test='condSearchType == "goods"'>
|
|
AND goodsCd = #{goodsCd} /* 제품코드 */
|
|
</if>
|
|
ORDER BY CRET_DATE ASC
|
|
</select>
|
|
|
|
<!--
|
|
/**
|
|
* 계약관리 조회
|
|
* @since 2021.10.01
|
|
* @author kim
|
|
* @version 1.0
|
|
*
|
|
* << 개정 이력 >>
|
|
*
|
|
* 수정일 수정자 수정내용
|
|
* **************** ********************** ********************************************************
|
|
* 2021.10.01 김효일 최초작성
|
|
**/
|
|
-->
|
|
<select id="getContractMgmt" parameterType="map" resultType="map">
|
|
/* contractMgmt.getContractMgmt */
|
|
SELECT A.*
|
|
, (SELECT CdNm FROM SWSA050A_TBL WHERE MajorCd = 'SE' AND MinorCd = A.OrderUnit) AS OrderUnitNm /* 시장구분명 */
|
|
, (CASE A.SaleGB WHEN '0' THEN '일반' WHEN '1' THEN '대리점' END) AS SaleGBNm /* 판매구분명 */
|
|
, (SELECT CdNm FROM SWSA050A_TBL WHERE MajorCd = 'GE' AND MinorCd = A.SaleType) AS SaleTypeNm /* 판매유형명 */
|
|
, (SELECT dept_name FROM DEPT_INFO WHERE dept_code = A.DEPTCD) AS deptnm /* 계약부서명 */
|
|
, (SELECT user_name FROM USER_INFO WHERE user_id = A.SALESMAN) AS salesmanNm /* 계약자명 */
|
|
, B.CustNm /* 고객명 */
|
|
, B.CustBoss /* 대표자명 */
|
|
, B.TaxNo1 /* 사업자번호 */
|
|
, B.TaxNo2 /* 법인/주민번호 */
|
|
, C.goodsNm /* 제품명 */
|
|
, C.goodsSpec /* 제품규격 */
|
|
, C.c_class /* 제품그룹 */
|
|
, CASE WHEN C.c_class IS NOT NULL then
|
|
CONCAT(
|
|
(SELECT ltrim(rtrim(DTL_NM)) from SWSA999A_TBL where COMM_CD = 'S110' AND SUBSTRING(DTL_CD,1,1) = SUBSTRING(C.c_class,1,1)),
|
|
'-',
|
|
(SELECT ltrim(rtrim(DTL_NM)) from SWSA999A_TBL where COMM_CD = 'S120' AND SUBSTRING(DTL_CD,1,3) = SUBSTRING(C.c_class,1,3)),
|
|
'-',
|
|
(SELECT ltrim(rtrim(DTL_NM)) from SWSA999A_TBL where COMM_CD = 'S130' AND DTL_CD = C.c_class )
|
|
)
|
|
ELSE '' END AS c_classNm /* 제품그룹명 */
|
|
FROM SWSC110A_TBL A
|
|
LEFT OUTER JOIN SWSB210A_TBL B
|
|
ON A.CustCd = B.CustCd /* 고객코드 */
|
|
LEFT OUTER JOIN SWSB110A_TBL C
|
|
ON A.goodsCd = C.goodsCd /* 제품코드 */
|
|
WHERE A.OrderNo = #{orderNo} /* 계약번호 */
|
|
</select>
|
|
|
|
<!--
|
|
/**
|
|
* 계약관리 일련번호 조회
|
|
* @since 2021.10.01
|
|
* @author kim
|
|
* @version 1.0
|
|
*
|
|
* << 개정 이력 >>
|
|
*
|
|
* 수정일 수정자 수정내용
|
|
* **************** ********************** ********************************************************
|
|
* 2021.10.01 김효일 최초작성
|
|
**/
|
|
-->
|
|
<select id="getContractMgmtOrderSer" parameterType="map" resultType="int">
|
|
/* contractMgmt.getContractMgmtOrderSer */
|
|
SELECT COALESCE(MAX(orderSer)::INTEGER, 0) + 1
|
|
FROM SWSC110A_TBL
|
|
WHERE AcntUnit = #{acntUnit} /* 사업부 */
|
|
AND OrderYm = #{orderYm} /* 계약년월 */
|
|
</select>
|
|
|
|
<!--
|
|
/**
|
|
* 계약관리 저장
|
|
* @since 2021.10.01
|
|
* @author kim
|
|
* @version 1.0
|
|
*
|
|
* << 개정 이력 >>
|
|
*
|
|
* 수정일 수정자 수정내용
|
|
* **************** ********************** ********************************************************
|
|
* 2021.10.01 김효일 최초작성
|
|
**/
|
|
-->
|
|
<update id="insertContractMgmt" parameterType="map">
|
|
/* contractMgmt.insertContractMgmt */
|
|
INSERT INTO SWSC110A_TBL (
|
|
OrderNo /* 계약번호 */
|
|
,AcntUnit /* 사업부 */
|
|
,OrderYm /* 계약년월 */
|
|
,OrderSer /* 일련번호 */
|
|
,OrderUnit /* 시장구분 */
|
|
,SaleGB /* 판매구분 */
|
|
,SaleType /* 판매유형 */
|
|
,ChulhaYN /* 출하대상 */
|
|
,CustCd /* 고객코드 */
|
|
,DeptCd /* 계약부서 */
|
|
,Salesman /* 계약자 */
|
|
,BDeptCd /* 관리부서 */
|
|
,BEmpNo /* 관리담당자 */
|
|
,OrderDate /* 계약일자 */
|
|
,FinishDate /* 최종납기일자 */
|
|
,GoodsCd /* 제품코드 */
|
|
,GoodsGuarantee /* 보증기간 */
|
|
,GoodsQty /* 계약수량 */
|
|
,SalePrice /* 계약단가 */
|
|
,SaleAmt /* 계약금액 */
|
|
,VatAmt /* 부가세 */
|
|
,BiGo /* 비고 */
|
|
,WorkMan /* 입력자 */
|
|
,CancelFlag /* 계약취소 */
|
|
,CRET_DATE /* 생성일시 */
|
|
,CretEmpNo /* 생성자 */
|
|
,EDIT_DATE /* 수정일시 */
|
|
,EditEmpNo /* 수정자 */
|
|
,GoodsYN /* 제품구분 */
|
|
) VALUES (
|
|
#{orderNo} /* 계약번호 */
|
|
,#{acntUnit} /* 사업부 */
|
|
,#{orderYm} /* 계약년월 */
|
|
,#{orderSer} /* 일련번호 */
|
|
,#{orderUnit} /* 시장구분 */
|
|
,#{saleGB} /* 판매구분 */
|
|
,#{saleType} /* 판매유형 */
|
|
,#{chulhaYN} /* 출하대상 */
|
|
,#{custCd} /* 고객코드 */
|
|
,#{deptCd} /* 계약부서 */
|
|
,#{salesman} /* 계약자 */
|
|
,#{bDeptCd} /* 관리부서 */
|
|
,#{bEmpNo} /* 관리담당자 */
|
|
,#{orderDate} /* 계약일자 */
|
|
,#{finishDate} /* 최종납기일자 */
|
|
,#{goodsCd} /* 제품코드 */
|
|
,#{goodsGuarantee}::numeric /* 보증기간 */
|
|
,#{goodsQty}::numeric /* 계약수량 */
|
|
,#{salePrice}::numeric /* 계약단가 */
|
|
,#{saleAmt}::numeric /* 계약금액 */
|
|
,#{vatAmt}::numeric /* 부가세 */
|
|
,#{biGo} /* 비고 */
|
|
,#{cretEmpNo} /* 이볅자 */
|
|
,#{cancelFlag} /* 계약취소 */
|
|
,now() /* 생성일시 */
|
|
,#{cretEmpNo} /* 생성자 */
|
|
,now() /* 수정일시 */
|
|
,#{cretEmpNo} /* 수정자 */
|
|
,#{goodsYN} /* 제품구분 */
|
|
) ON
|
|
CONFLICT (OrderNo) DO
|
|
UPDATE SET
|
|
OrderUnit = #{orderUnit} /* 시장구분 */
|
|
,SaleGB = #{saleGB} /* 판매구분 */
|
|
,SaleType = #{saleType} /* 판매유형 */
|
|
,ChulhaYN = #{chulhaYN} /* 출하대상 */
|
|
,CustCd = #{custCd} /* 고객코드 */
|
|
,DeptCd = #{deptCd} /* 계약부서 */
|
|
,Salesman = #{salesman} /* 계약자 */
|
|
,BDeptCd = #{bDeptCd} /* 관리부서 */
|
|
,BEmpNo = #{bEmpNo} /* 관리담당자 */
|
|
,OrderDate = #{orderDate} /* 계약일자 */
|
|
,FinishDate = #{finishDate} /* 최종납기일자 */
|
|
,GoodsCd = #{goodsCd} /* 제품코드 */
|
|
,GoodsGuarantee = #{goodsGuarantee}::numeric /* 보증기간 */
|
|
,GoodsQty = #{goodsQty}::numeric /* 계약수량 */
|
|
,SalePrice = #{salePrice}::numeric /* 계약단가 */
|
|
,SaleAmt = #{saleAmt}::numeric /* 계약금액 */
|
|
,VatAmt = #{vatAmt}::numeric /* 부가세 */
|
|
,BiGo = #{biGo} /* 비고 */
|
|
,EDIT_DATE = now() /* 수정일시 */
|
|
,EditEmpNo = #{cretEmpNo} /* 수정자 */
|
|
,GoodsYN = #{goodsYN} /* 제품구분 */
|
|
,CancelFlag = #{cancelFlag} /* 계약취소 */
|
|
,CancelWorkMan = #{cancelWorkMan} /* 취소자 */
|
|
,CancelBiGo = #{cancelBigo} /* 취소사유 */
|
|
</update>
|
|
|
|
<!--
|
|
/**
|
|
* 계약관리 삭제
|
|
* @since 2021.10.01
|
|
* @author kim
|
|
* @version 1.0
|
|
*
|
|
* << 개정 이력 >>
|
|
*
|
|
* 수정일 수정자 수정내용
|
|
* **************** ********************** ********************************************************
|
|
* 2021.10.01 김효일 최초작성
|
|
**/
|
|
-->
|
|
<delete id="deleteContractMgmt" parameterType="map">
|
|
/* contractMgmt.deleteContractMgmt */
|
|
UPDATE SWSC110A_TBL SET
|
|
CancelFlag = 'Y' /* 계약취소 */
|
|
,CancelWorkMan = #{cancelWorkMan} /* 취소자 */
|
|
,CancelBiGo = #{cancelBigo} /* 취소사유 */
|
|
WHERE OrderNo = #{orderNo} /* 계약번호 */
|
|
</delete>
|
|
|
|
|
|
<!-- 계약관리 -->
|
|
<select id="contractListCnt" parameterType="map" resultType="map">
|
|
SELECT
|
|
CEIL(TOTAL_CNT::numeric/#{COUNT_PER_PAGE}::numeric) as MAX_PAGE_SIZE,
|
|
T.TOTAL_CNT::integer
|
|
FROM (
|
|
SELECT
|
|
COUNT(1)::float TOTAL_CNT
|
|
FROM (
|
|
SELECT
|
|
T.*
|
|
FROM
|
|
<include refid="contractBase"/> T
|
|
WHERE 1=1
|
|
|
|
<if test="Year !=null and Year != '' ">
|
|
AND SUBSTR(CONTRACT_DATE,0,5) = #{Year}
|
|
</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="pm_user_id !=null and pm_user_id !=''">
|
|
AND pm_user_id = #{pm_user_id}
|
|
</if>
|
|
) AS T
|
|
) AS T
|
|
WHERE 1=1
|
|
</select>
|
|
|
|
<sql id="contractBase">
|
|
(
|
|
SELECT
|
|
OBJID
|
|
,CATEGORY_CD
|
|
,CODE_NAME(CATEGORY_CD) AS CATEGORY_NAME
|
|
,CUSTOMER_OBJID
|
|
,(SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID = T.CUSTOMER_OBJID::NUMERIC) AS CUSTOMER_NAME
|
|
,PRODUCT
|
|
,CODE_NAME(PRODUCT) AS PRODUCT_NAME
|
|
,CUSTOMER_PROJECT_NAME
|
|
,STATUS_CD
|
|
,CODE_NAME(STATUS_CD) AS STATUS_NAME
|
|
,DUE_DATE
|
|
,LOCATION
|
|
,SETUP
|
|
,FACILITY
|
|
,CODE_NAME(FACILITY) AS FACILITY_NAME
|
|
,FACILITY_QTY
|
|
,FACILITY_TYPE
|
|
,FACILITY_DEPTH
|
|
,PRODUCTION_NO
|
|
,BUS_CAL_CD
|
|
,CODE_NAME(BUS_CAL_CD) AS BUS_CAL_NAME
|
|
,CATEGORY1_CD
|
|
,CODE_NAME(CATEGORY1_CD) AS CATEGORY1_NAME
|
|
,CHG_USER_ID
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = T.CHG_USER_ID ) AS CHG_USER_NAME
|
|
,PLAN_DATE
|
|
,COMPLETE_DATE
|
|
,RESULT_CD
|
|
,CODE_NAME(RESULT_CD) AS RESULT_NAME
|
|
,PROJECT_NO
|
|
,PM_USER_ID
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = T.PM_USER_ID ) AS PM_USER_NAME
|
|
,CONTRACT_PRICE
|
|
,CONTRACT_PRICE_CURRENCY
|
|
,CONTRACT_CURRENCY
|
|
,CODE_NAME(CONTRACT_CURRENCY) AS CONTRACT_CURRENCY_NAME
|
|
,REGDATE
|
|
,TO_CHAR(REGDATE,'YYYY-MM-DD') AS REG_DATE
|
|
,WRITER
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = T.WRITER ) AS WRITER_NAME
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.OBJID AND DOC_TYPE='contractMgmt01' AND UPPER(STATUS) = 'ACTIVE') AS CU01_CNT
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.OBJID AND DOC_TYPE='contractMgmt02' AND UPPER(STATUS) = 'ACTIVE') AS CU02_CNT
|
|
,(CASE WHEN (RESULT_CD is null or RESULT_CD ='') and (SPEC_RESULT_CD is null or RESULT_CD ='') and (EST_RESULT_CD is null or RESULT_CD ='') then '0'
|
|
ELSE 1
|
|
END
|
|
) AS CU03_CNT
|
|
,CONTRACT_NO
|
|
,CUSTOMER_EQUIP_NAME
|
|
,REQ_DEL_DATE
|
|
,CONTRACT_DEL_DATE
|
|
,CONTRACT_COMPANY
|
|
,CODE_NAME(CONTRACT_COMPANY) AS CONTRACT_COMPANY_NAME
|
|
,CONTRACT_DATE
|
|
,PO_NO
|
|
,MANUFACTURE_PLANT
|
|
,CODE_NAME(MANUFACTURE_PLANT) AS MANUFACTURE_PLANT_NAME
|
|
,CONTRACT_RESULT
|
|
,CODE_NAME(CONTRACT_RESULT) AS CONTRACT_RESULT_NAME
|
|
,PROJECT_NAME
|
|
,AREA_CD
|
|
,CODE_NAME(AREA_CD) AS AREA_NAME
|
|
,MECHANICAL_TYPE
|
|
,OVERHAUL_ORDER
|
|
,CASE
|
|
WHEN PAID_TYPE = 'paid' THEN '유상'
|
|
WHEN PAID_TYPE = 'free' THEN '무상'
|
|
ELSE PAID_TYPE
|
|
END AS PAID_TYPE
|
|
,RECEIPT_DATE
|
|
,PART_NO
|
|
,PART_NAME
|
|
,SERIAL_NO
|
|
,QUANTITY
|
|
,CUSTOMER_REQUEST
|
|
,EXCHANGE_RATE
|
|
,EST_PRICE
|
|
,EST_SUPPLY_PRICE
|
|
,ORDER_DATE
|
|
,ORDER_UNIT_PRICE
|
|
,ORDER_SUPPLY_PRICE
|
|
,ORDER_VAT
|
|
,ORDER_TOTAL_AMOUNT
|
|
,(SELECT COUNT(1) FROM ESTIMATE_TEMPLATE WHERE CONTRACT_OBJID = T.OBJID) AS EST_STATUS
|
|
,(
|
|
SELECT IS_SEND
|
|
FROM MAIL_LOG
|
|
WHERE MAIL_TYPE = 'CONTRACT_ESTIMATE'
|
|
AND TITLE LIKE '%[OBJID:' || T.OBJID || ']%'
|
|
ORDER BY LOG_TIME DESC
|
|
LIMIT 1
|
|
) AS MAIL_SEND_STATUS
|
|
,(
|
|
SELECT TO_CHAR(LOG_TIME, 'YYYY-MM-DD HH24:MI')
|
|
FROM MAIL_LOG
|
|
WHERE MAIL_TYPE = 'CONTRACT_ESTIMATE'
|
|
AND TITLE LIKE '%[OBJID:' || T.OBJID || ']%'
|
|
ORDER BY LOG_TIME DESC
|
|
LIMIT 1
|
|
) AS MAIL_SEND_DATE
|
|
,A.APPR_STATUS
|
|
,A.APPROVAL_OBJID
|
|
,A.ROUTE_OBJID
|
|
FROM
|
|
CONTRACT_MGMT AS T
|
|
LEFT OUTER JOIN
|
|
(
|
|
SELECT
|
|
B.OBJID AS ROUTE_OBJID,
|
|
CASE B.STATUS
|
|
WHEN 'inProcess' THEN '결재중'
|
|
WHEN 'complete' THEN '결재완료'
|
|
WHEN 'reject' THEN '반려'
|
|
ELSE ''
|
|
END APPR_STATUS,
|
|
A.OBJID AS APPROVAL_OBJID,
|
|
A.TARGET_OBJID,
|
|
B.ROUTE_SEQ
|
|
FROM
|
|
APPROVAL A,
|
|
(
|
|
select
|
|
T1.*
|
|
from
|
|
(
|
|
select
|
|
TARGET_OBJID,
|
|
max(T.ROUTE_SEQ) as ROUTE_SEQ
|
|
from
|
|
ROUTE T
|
|
group by
|
|
T.TARGET_OBJID
|
|
) T,
|
|
ROUTE T1
|
|
where
|
|
T.TARGET_OBJID = T1.TARGET_OBJID
|
|
and T.ROUTE_SEQ = T1.ROUTE_SEQ
|
|
) B
|
|
WHERE
|
|
A.OBJID = B.APPROVAL_OBJID
|
|
AND TARGET_TYPE IN ('CONTRACT_ESTIMATE')
|
|
) A
|
|
ON T.OBJID::numeric = A.TARGET_OBJID
|
|
)
|
|
</sql>
|
|
|
|
<!-- //계약관리 리스트 -->
|
|
<select id="contractList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM(
|
|
SELECT
|
|
T.*,
|
|
ROW_NUMBER() OVER (ORDER BY CONTRACT_NO DESC) AS RNUM
|
|
FROM (
|
|
SELECT
|
|
T.*
|
|
FROM
|
|
<include refid="contractBase"/> T
|
|
WHERE 1=1
|
|
<if test="Year !=null and Year != '' ">
|
|
AND SUBSTR(CONTRACT_DATE,0,5) = #{Year}
|
|
</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="receipt_start_date != null and !''.equals(receipt_start_date)">
|
|
AND TO_DATE(RECEIPT_DATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{receipt_start_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="receipt_end_date != null and !''.equals(receipt_end_date)">
|
|
AND TO_DATE(RECEIPT_DATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{receipt_end_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
<if test="due_start_date != null and !''.equals(due_start_date)">
|
|
AND TO_DATE(RECEIPT_DATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{due_start_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="due_end_date != null and !''.equals(due_end_date)">
|
|
AND TO_DATE(DUE_DATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{due_end_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
<if test="pm_user_id !=null and pm_user_id !=''">
|
|
AND pm_user_id = #{pm_user_id}
|
|
</if>
|
|
<if test="contract_month != null and !''.equals(contract_month)">
|
|
AND TO_DATE(TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYY-MM-DD'),'YYYY-MM-DD'),'YYYY-MM') <![CDATA[ = ]]> TO_DATE(SUBSTRING(#{contract_month} FROM 1 FOR 4) || '-' || SUBSTRING(#{contract_month} FROM 5 FOR 2), 'YYYY-MM')
|
|
</if>
|
|
)AS T
|
|
) AS T
|
|
WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END !='' and actionType != 'excel' ">
|
|
<![CDATA[ AND T.RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_STRART!='' and actionType != 'excel' ">
|
|
<![CDATA[ AND T.RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
</select>
|
|
|
|
<!-- //계약관리 리스트 -->
|
|
<select id="contractGridList" parameterType="map" resultType="map">
|
|
SELECT
|
|
T.*
|
|
FROM
|
|
<include refid="contractBase"/> T
|
|
WHERE 1=1
|
|
<if test="Year !=null and Year != '' ">
|
|
AND SUBSTR(CONTRACT_DATE,0,5) = #{Year}
|
|
</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_result !=null and contract_result !=''">
|
|
AND contract_result = #{contract_result}
|
|
</if>
|
|
|
|
<if test="contract_start_date != null and !''.equals(contract_start_date)">
|
|
AND TO_DATE(CONTRACT_DATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{contract_start_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="contract_end_date != null and !''.equals(contract_end_date)">
|
|
AND TO_DATE(CONTRACT_DATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{contract_end_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
<if test="pm_user_id !=null and pm_user_id !=''">
|
|
AND pm_user_id = #{pm_user_id}
|
|
</if>
|
|
<if test="contract_month != null and !''.equals(contract_month)">
|
|
AND TO_DATE(TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYY-MM-DD'),'YYYY-MM-DD'),'YYYY-MM') <![CDATA[ = ]]> TO_DATE(SUBSTRING(#{contract_month} FROM 1 FOR 4) || '-' || SUBSTRING(#{contract_month} FROM 5 FOR 2), 'YYYY-MM')
|
|
</if>
|
|
|
|
<!-- 견적관리 추가 검색조건 -->
|
|
<if test="appr_status !=null and appr_status != '' ">
|
|
AND APPR_STATUS = #{appr_status}
|
|
</if>
|
|
|
|
<if test="area_cd != null and area_cd !='' ">
|
|
AND AREA_CD = #{area_cd}
|
|
</if>
|
|
|
|
<if test="paid_type != null and paid_type !='' ">
|
|
AND PAID_TYPE = #{paid_type}
|
|
</if>
|
|
|
|
<if test="search_partNo != null and search_partNo != ''">
|
|
AND UPPER(PART_NO) LIKE UPPER('%${search_partNo}%')
|
|
</if>
|
|
|
|
<if test="search_partName != null and search_partName != ''">
|
|
AND UPPER(PART_NAME) LIKE UPPER('%${search_partName}%')
|
|
</if>
|
|
|
|
<if test="search_serialNo != null and search_serialNo != ''">
|
|
AND UPPER(SERIAL_NO) LIKE UPPER('%${search_serialNo}%')
|
|
</if>
|
|
|
|
<if test="receipt_start_date != null and !''.equals(receipt_start_date)">
|
|
AND TO_DATE(RECEIPT_DATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{receipt_start_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="receipt_end_date != null and !''.equals(receipt_end_date)">
|
|
AND TO_DATE(RECEIPT_DATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{receipt_end_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
<if test="due_start_date != null and !''.equals(due_start_date)">
|
|
AND TO_DATE(RECEIPT_DATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{due_start_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="due_end_date != null and !''.equals(due_end_date)">
|
|
AND TO_DATE(DUE_DATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{due_end_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
<if test="order_start_date != null and !''.equals(order_start_date)">
|
|
AND TO_DATE(RECEIPT_DATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{order_start_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="due_end_date != null and !''.equals(due_end_date)">
|
|
AND TO_DATE(ORDER_DATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{due_end_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
ORDER BY REGDATE DESC
|
|
</select>
|
|
|
|
<select id="contractList_bak" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM (
|
|
SELECT CONTRACT_MGMT.*,ROW_NUMBER() OVER (ORDER BY CONTRACT_NO DESC) AS RNUM
|
|
FROM(
|
|
SELECT T.OBJID::VARCHAR
|
|
,CONTRACT_NO --계약번호
|
|
,(SELECT CODE_NAME(SUPPLY_CODE) FROM SUPPLY_MNG AS O WHERE O.OBJID = T.CUSTOMER_OBJID::NUMERIC) AS SUPPLY_CODE --구분
|
|
,(SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID = T.CUSTOMER_OBJID::NUMERIC) AS SUPPLY_NAME --고객명
|
|
|
|
,(SELECT CODE_NAME(AREA_CD) FROM SUPPLY_MNG AS O WHERE O.OBJID = T.CUSTOMER_OBJID::NUMERIC) AS AREA_CD --지역
|
|
,(SELECT CHARGE_USER_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID = T.CUSTOMER_OBJID::NUMERIC) AS CHARGE_USER_NAME --대표자명
|
|
,(SELECT REG_ID FROM SUPPLY_MNG AS O WHERE O.OBJID = T.CUSTOMER_OBJID::NUMERIC) AS REG_ID --실사용자명
|
|
,(SELECT BUS_REG_NO FROM SUPPLY_MNG AS O WHERE O.OBJID = T.CUSTOMER_OBJID::NUMERIC) AS BUS_REG_NO --사업자등록번호
|
|
,(SELECT REG_NO FROM SUPPLY_MNG AS O WHERE O.OBJID = T.CUSTOMER_OBJID::NUMERIC) AS REG_NO --법인/주민번호
|
|
,CODE_NAME(PRODUCT_GROUP) AS PRODUCT_GROUP_NAME
|
|
,(SELECT PRODUCT_CODE FROM PRODUCT_MGMT AS O WHERE O.OBJID::VARCHAR = T.PRODUCT) AS PRODUCT_NAME
|
|
,QTY
|
|
|
|
,CODE_NAME(PRODUCT_GROUP1) AS PRODUCT_GROUP_NAME1
|
|
,(SELECT PRODUCT_CODE FROM PRODUCT_MGMT AS O WHERE O.OBJID::VARCHAR = T.PRODUCT1) AS PRODUCT_NAME1
|
|
,QTY1
|
|
|
|
,CODE_NAME(PRODUCT_GROUP2) AS PRODUCT_GROUP_NAME2
|
|
,(SELECT PRODUCT_CODE FROM PRODUCT_MGMT AS O WHERE O.OBJID::VARCHAR = T.PRODUCT2) AS PRODUCT_NAME2
|
|
,QTY2
|
|
,(SELECT COUNT(1) from CONTRACT_MGMT_OPTION O WHERE O.CONTRACT_OBJID = T.OBJID) AS OPTIONCNT
|
|
,WARRANTY
|
|
,WARRANTY_KM
|
|
,WARRANTY1
|
|
,WARRANTY_KM1
|
|
,WARRANTY2
|
|
,WARRANTY_KM2
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = T.CONTRACT_USER_ID ) AS CONTRACT_USER_NAME
|
|
,EST_RELEASE_DATE
|
|
,EST_RELEASE_DATE1
|
|
,EST_RELEASE_DATE2
|
|
,CONTRACT_DATE
|
|
,TOTAL_PRICE
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.OBJID AND DOC_TYPE='contractMgmt01' AND UPPER(STATUS) = 'ACTIVE') AS CU01_CNT
|
|
,COALESCE((SELECT CASE WHEN
|
|
COALESCE((CONTRACT_COST::NUMERIC+ MID_PAY_COST1::NUMERIC + MID_PAY_COST2::NUMERIC + BALANCE_COST::NUMERIC),0) = 0
|
|
THEN 0
|
|
ELSE 1 END AS COST
|
|
FROM FUND_MGMT
|
|
WHERE PARENT_OBJID = T.OBJID::VARCHAR
|
|
),0)::VARCHAR AS STATUS
|
|
FROM
|
|
CONTRACT_MGMT AS T,
|
|
SUPPLY_MNG T1
|
|
WHERE T.CUSTOMER_OBJID::NUMERIC = T1.OBJID
|
|
|
|
<if test="PRODUCT_CATEGORY !=null and PRODUCT_CATEGORY != '' ">
|
|
AND
|
|
(
|
|
(T.PRODUCT_GROUP = #{PRODUCT_CATEGORY}) OR
|
|
(T.PRODUCT_GROUP1 = #{PRODUCT_CATEGORY}) OR
|
|
(T.PRODUCT_GROUP2 = #{PRODUCT_CATEGORY})
|
|
)
|
|
</if>
|
|
|
|
<if test="PRODUCT !=null and PRODUCT != '' ">
|
|
AND
|
|
(
|
|
(T.PRODUCT = #{PRODUCT}) OR
|
|
(T.PRODUCT1 = #{PRODUCT}) OR
|
|
(T.PRODUCT2 = #{PRODUCT})
|
|
)
|
|
</if>
|
|
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(T.REGDATE,'YYYY') = #{Year}
|
|
</if>
|
|
|
|
<if test="type_cd !=null and type_cd != '' ">
|
|
AND T1.SUPPLY_CODE = #{type_cd}
|
|
</if>
|
|
<if test="customer_cd != null and customer_cd !='' ">
|
|
AND T1.OBJID = #{customer_cd}::NUMERIC
|
|
</if>
|
|
|
|
<if test="area_cd !=null and area_cd !=''">
|
|
AND T1.AREA_CD = #{area_cd}
|
|
</if>
|
|
|
|
<if test="product_cd !=null and product_cd !=''">
|
|
AND T.CATEGORY_CD = #{product_cd}
|
|
</if>
|
|
|
|
<if test="contract_start_date != null and !''.equals(contract_start_date)">
|
|
AND TO_DATE(TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYYMMDD'),'YYYY-MM-DD'),'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(TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYYMMDD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{contract_end_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
)AS CONTRACT_MGMT
|
|
WHERE 1=1
|
|
<choose>
|
|
<when test="status_cd != null and '0000203'.equals(status_cd)">
|
|
AND CONTRACT_MGMT.STATUS = '0'
|
|
</when>
|
|
<when test="status_cd != null and '0000204'.equals(status_cd)">
|
|
AND CONTRACT_MGMT.STATUS = '1'
|
|
</when>
|
|
<otherwise>
|
|
AND 1=1
|
|
</otherwise>
|
|
</choose>
|
|
)AS T
|
|
WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END !='' and actionType != 'excel' ">
|
|
<![CDATA[ AND T.RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_STRART!='' and actionType != 'excel' ">
|
|
<![CDATA[ AND T.RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
</select>
|
|
|
|
<update id="saveContractMgmtInfo" parameterType="map">
|
|
INSERT INTO CONTRACT_MGMT
|
|
(
|
|
OBJID
|
|
,CATEGORY_CD
|
|
,CUSTOMER_OBJID
|
|
,PRODUCT
|
|
,CUSTOMER_PROJECT_NAME
|
|
,STATUS_CD
|
|
,DUE_DATE
|
|
,LOCATION
|
|
,SETUP
|
|
,FACILITY
|
|
,FACILITY_QTY
|
|
,FACILITY_TYPE
|
|
,FACILITY_DEPTH
|
|
,PRODUCTION_NO
|
|
,BUS_CAL_CD
|
|
,CATEGORY1_CD
|
|
,CHG_USER_ID
|
|
,PLAN_DATE
|
|
,COMPLETE_DATE
|
|
,RESULT_CD
|
|
,PROJECT_NO
|
|
,PM_USER_ID
|
|
,CONTRACT_PRICE
|
|
,CONTRACT_PRICE_CURRENCY
|
|
,CONTRACT_CURRENCY
|
|
,REGDATE
|
|
,WRITER
|
|
,CONTRACT_NO
|
|
,CUSTOMER_EQUIP_NAME
|
|
,REQ_DEL_DATE
|
|
,CONTRACT_DEL_DATE
|
|
,CONTRACT_COMPANY
|
|
,CONTRACT_DATE
|
|
,MANUFACTURE_PLANT
|
|
,PROJECT_NAME
|
|
,SPEC_USER_ID
|
|
,SPEC_PLAN_DATE
|
|
,SPEC_COMP_DATE
|
|
,SPEC_RESULT_CD
|
|
,EST_USER_ID
|
|
,EST_PLAN_DATE
|
|
,EST_COMP_DATE
|
|
,EST_RESULT_CD
|
|
,AREA_CD
|
|
,TARGET_PROJECT_NO
|
|
,TARGET_PROJECT_NO_DIRECT
|
|
,CUSTOMER_PRODUCTION_NO
|
|
,MECHANICAL_TYPE
|
|
,OVERHAUL_ORDER
|
|
,PAID_TYPE
|
|
,RECEIPT_DATE
|
|
,PART_NO
|
|
,PART_NAME
|
|
,SERIAL_NO
|
|
,CUSTOMER_REQUEST
|
|
,EXCHANGE_RATE
|
|
)
|
|
VALUES
|
|
(
|
|
#{objId}
|
|
,#{category_cd}
|
|
,#{customer_objid}
|
|
,#{product}
|
|
,#{customer_project_name}
|
|
,#{status_cd}
|
|
,#{due_date}
|
|
,#{location}
|
|
,#{setup}
|
|
,#{facility}
|
|
,#{facility_qty}
|
|
,#{facility_type}
|
|
,#{facility_depth}
|
|
,#{production_no}
|
|
,#{bus_cal_cd}
|
|
,#{category1_cd}
|
|
,#{chg_user_id}
|
|
,#{plan_date}
|
|
,#{complete_date}
|
|
,#{result_cd}
|
|
,#{project_no}
|
|
,#{pm_user_id}
|
|
,#{contract_price}
|
|
,#{contract_price_currency}
|
|
,#{contract_currency}
|
|
,NOW()
|
|
,#{writer}
|
|
,(SELECT TO_CHAR(NOW(),'yy')::VARCHAR ||'C-'||LPAD((SELECT NEXTVAL('contract_mgmt_seq'))::VARCHAR ,4,'0'))
|
|
,#{customer_equip_name}
|
|
,#{req_del_date}
|
|
,#{contract_del_date}
|
|
,#{contract_company}
|
|
,#{contract_date}
|
|
,#{manufacture_plant}
|
|
,#{project_name}
|
|
,#{spec_user_id}
|
|
,#{spec_plan_date}
|
|
,#{spec_comp_date}
|
|
,#{spec_result_cd}
|
|
,#{est_user_id}
|
|
,#{est_plan_date}
|
|
,#{est_comp_date}
|
|
,#{est_result_cd}
|
|
,#{area_cd}
|
|
,#{target_project_no}
|
|
,#{target_project_no_direct}
|
|
,#{customer_production_no}
|
|
,#{mechanical_type}
|
|
,#{overhaul_order}
|
|
,#{paid_type}
|
|
,#{receipt_date}
|
|
,#{part_no}
|
|
,#{part_name}
|
|
,#{serial_no}
|
|
,#{customer_request}
|
|
,#{exchange_rate}
|
|
)
|
|
ON CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET
|
|
CATEGORY_CD = #{category_cd}
|
|
,CUSTOMER_OBJID = #{customer_objid}
|
|
,PRODUCT = #{product}
|
|
,CUSTOMER_PROJECT_NAME = #{customer_project_name}
|
|
,STATUS_CD = #{status_cd}
|
|
,DUE_DATE = #{due_date}
|
|
,LOCATION = #{location}
|
|
,SETUP = #{setup}
|
|
,FACILITY = #{facility}
|
|
,FACILITY_QTY = #{facility_qty}
|
|
,FACILITY_TYPE = #{facility_type}
|
|
,FACILITY_DEPTH = #{facility_depth}
|
|
,PRODUCTION_NO = #{production_no}
|
|
,BUS_CAL_CD = #{bus_cal_cd}
|
|
,CATEGORY1_CD = #{category1_cd}
|
|
,CHG_USER_ID = #{chg_user_id}
|
|
,PLAN_DATE = #{plan_date}
|
|
,COMPLETE_DATE = #{complete_date}
|
|
,RESULT_CD = #{result_cd}
|
|
,PROJECT_NO = #{project_no}
|
|
,PM_USER_ID = #{pm_user_id}
|
|
,CONTRACT_PRICE = #{contract_price}
|
|
,CONTRACT_PRICE_CURRENCY = #{contract_price_currency}
|
|
,CONTRACT_CURRENCY = #{contract_currency}
|
|
,CUSTOMER_EQUIP_NAME = #{customer_equip_name}
|
|
,REQ_DEL_DATE = #{req_del_date}
|
|
,CONTRACT_DEL_DATE = #{contract_del_date}
|
|
,CONTRACT_COMPANY = #{contract_company}
|
|
,CONTRACT_DATE = #{contract_date}
|
|
,MANUFACTURE_PLANT = #{manufacture_plant}
|
|
,PROJECT_NAME = #{project_name}
|
|
,SPEC_USER_ID = #{spec_user_id}
|
|
,SPEC_PLAN_DATE = #{spec_plan_date}
|
|
,SPEC_COMP_DATE = #{spec_comp_date}
|
|
,SPEC_RESULT_CD = #{spec_result_cd}
|
|
,EST_USER_ID = #{est_user_id}
|
|
,EST_PLAN_DATE = #{est_plan_date}
|
|
,EST_COMP_DATE = #{est_comp_date}
|
|
,EST_RESULT_CD = #{est_result_cd}
|
|
,AREA_CD = #{area_cd}
|
|
,TARGET_PROJECT_NO = #{target_project_no}
|
|
,TARGET_PROJECT_NO_DIRECT= #{target_project_no_direct}
|
|
,CUSTOMER_PRODUCTION_NO = #{customer_production_no}
|
|
,MECHANICAL_TYPE = #{mechanical_type}
|
|
,OVERHAUL_ORDER = #{overhaul_order}
|
|
,PAID_TYPE = #{paid_type}
|
|
,RECEIPT_DATE = #{receipt_date}
|
|
,PART_NO = #{part_no}
|
|
,PART_NAME = #{part_name}
|
|
,SERIAL_NO = #{serial_no}
|
|
,CUSTOMER_REQUEST = #{customer_request}
|
|
,EXCHANGE_RATE = #{exchange_rate}
|
|
</update>
|
|
|
|
<update id="saveContractMgmtInfo_old" parameterType="map">
|
|
INSERT INTO CONTRACT_MGMT
|
|
(
|
|
OBJID
|
|
,CATEGORY_CD
|
|
,CUSTOMER_OBJID
|
|
,PRODUCT
|
|
,CUSTOMER_PROJECT_NAME
|
|
,STATUS_CD
|
|
,DUE_DATE
|
|
,LOCATION
|
|
,SETUP
|
|
,FACILITY
|
|
,FACILITY_QTY
|
|
,FACILITY_TYPE
|
|
,FACILITY_DEPTH
|
|
,PRODUCTION_NO
|
|
,BUS_CAL_CD
|
|
,CATEGORY1_CD
|
|
,CHG_USER_ID
|
|
,PLAN_DATE
|
|
,COMPLETE_DATE
|
|
,RESULT_CD
|
|
,PROJECT_NO
|
|
,PM_USER_ID
|
|
,CONTRACT_PRICE
|
|
,CONTRACT_PRICE_CURRENCY
|
|
,CONTRACT_CURRENCY
|
|
,REGDATE
|
|
,WRITER
|
|
,CONTRACT_NO
|
|
,CUSTOMER_EQUIP_NAME
|
|
,REQ_DEL_DATE
|
|
,CONTRACT_DEL_DATE
|
|
,CONTRACT_COMPANY
|
|
,CONTRACT_DATE
|
|
,PO_NO
|
|
,MANUFACTURE_PLANT
|
|
,CONTRACT_RESULT
|
|
,PROJECT_NAME
|
|
,SPEC_USER_ID
|
|
,SPEC_PLAN_DATE
|
|
,SPEC_COMP_DATE
|
|
,SPEC_RESULT_CD
|
|
,EST_USER_ID
|
|
,EST_PLAN_DATE
|
|
,EST_COMP_DATE
|
|
,EST_RESULT_CD
|
|
,AREA_CD
|
|
,TARGET_PROJECT_NO
|
|
,TARGET_PROJECT_NO_DIRECT
|
|
,CUSTOMER_PRODUCTION_NO
|
|
,MECHANICAL_TYPE
|
|
,OVERHAUL_ORDER
|
|
)
|
|
VALUES
|
|
(
|
|
#{objId}
|
|
,#{category_cd}
|
|
,#{customer_objid}
|
|
,#{product}
|
|
,#{customer_project_name}
|
|
,#{status_cd}
|
|
,#{due_date}
|
|
,#{location}
|
|
,#{setup}
|
|
,#{facility}
|
|
,#{facility_qty}
|
|
,#{facility_type}
|
|
,#{facility_depth}
|
|
,#{production_no}
|
|
,#{bus_cal_cd}
|
|
,#{category1_cd}
|
|
,#{chg_user_id}
|
|
,#{plan_date}
|
|
,#{complete_date}
|
|
,#{result_cd}
|
|
,#{project_no}
|
|
,#{pm_user_id}
|
|
,#{contract_price}
|
|
,#{contract_price_currency}
|
|
,#{contract_currency}
|
|
,NOW()
|
|
,#{writer}
|
|
,(SELECT TO_CHAR(NOW(),'yy')::VARCHAR ||'C-'||LPAD((SELECT NEXTVAL('contract_mgmt_seq'))::VARCHAR ,4,'0'))
|
|
,#{customer_equip_name}
|
|
,#{req_del_date}
|
|
,#{contract_del_date}
|
|
,#{contract_company}
|
|
,#{contract_date}
|
|
,#{po_no}
|
|
,#{manufacture_plant}
|
|
,#{contract_result}
|
|
,#{project_name}
|
|
,#{spec_user_id}
|
|
,#{spec_plan_date}
|
|
,#{spec_comp_date}
|
|
,#{spec_result_cd}
|
|
,#{est_user_id}
|
|
,#{est_plan_date}
|
|
,#{est_comp_date}
|
|
,#{est_result_cd}
|
|
,#{area_cd}
|
|
,#{target_project_no}
|
|
,#{target_project_no_direct}
|
|
,#{customer_production_no}
|
|
,#{mechanical_type}
|
|
,#{overhaul_order}
|
|
)
|
|
ON CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET
|
|
CATEGORY_CD = #{category_cd}
|
|
,CUSTOMER_OBJID = #{customer_objid}
|
|
,PRODUCT = #{product}
|
|
,CUSTOMER_PROJECT_NAME = #{customer_project_name}
|
|
,STATUS_CD = #{status_cd}
|
|
,DUE_DATE = #{due_date}
|
|
,LOCATION = #{location}
|
|
,SETUP = #{setup}
|
|
,FACILITY = #{facility}
|
|
,FACILITY_QTY = #{facility_qty}
|
|
,FACILITY_TYPE = #{facility_type}
|
|
,FACILITY_DEPTH = #{facility_depth}
|
|
,PRODUCTION_NO = #{production_no}
|
|
,BUS_CAL_CD = #{bus_cal_cd}
|
|
,CATEGORY1_CD = #{category1_cd}
|
|
,CHG_USER_ID = #{chg_user_id}
|
|
,PLAN_DATE = #{plan_date}
|
|
,COMPLETE_DATE = #{complete_date}
|
|
,RESULT_CD = #{result_cd}
|
|
,PROJECT_NO = #{project_no}
|
|
,PM_USER_ID = #{pm_user_id}
|
|
,CONTRACT_PRICE = #{contract_price}
|
|
,CONTRACT_PRICE_CURRENCY = #{contract_price_currency}
|
|
,CONTRACT_CURRENCY = #{contract_currency}
|
|
,CUSTOMER_EQUIP_NAME = #{customer_equip_name}
|
|
,REQ_DEL_DATE = #{req_del_date}
|
|
,CONTRACT_DEL_DATE = #{contract_del_date}
|
|
,CONTRACT_COMPANY = #{contract_company}
|
|
,CONTRACT_DATE = #{contract_date}
|
|
,PO_NO = #{po_no}
|
|
,MANUFACTURE_PLANT = #{manufacture_plant}
|
|
,CONTRACT_RESULT = #{contract_result}
|
|
,PROJECT_NAME = #{project_name}
|
|
,SPEC_USER_ID = #{spec_user_id}
|
|
,SPEC_PLAN_DATE = #{spec_plan_date}
|
|
,SPEC_COMP_DATE = #{spec_comp_date}
|
|
,SPEC_RESULT_CD = #{spec_result_cd}
|
|
,EST_USER_ID = #{est_user_id}
|
|
,EST_PLAN_DATE = #{est_plan_date}
|
|
,EST_COMP_DATE = #{est_comp_date}
|
|
,EST_RESULT_CD = #{est_result_cd}
|
|
,AREA_CD = #{area_cd}
|
|
,TARGET_PROJECT_NO = #{target_project_no}
|
|
,TARGET_PROJECT_NO_DIRECT= #{target_project_no_direct}
|
|
,CUSTOMER_PRODUCTION_NO = #{customer_production_no}
|
|
,MECHANICAL_TYPE = #{mechanical_type}
|
|
,OVERHAUL_ORDER = #{overhaul_order}
|
|
</update>
|
|
|
|
<update id="saveContractMgmtReviewInfo" parameterType="map">
|
|
INSERT INTO CONTRACT_MGMT
|
|
(
|
|
OBJID
|
|
|
|
,CHG_USER_ID
|
|
,PLAN_DATE
|
|
,COMPLETE_DATE
|
|
,RESULT_CD
|
|
|
|
,SPEC_USER_ID
|
|
,SPEC_PLAN_DATE
|
|
,SPEC_COMP_DATE
|
|
,SPEC_RESULT_CD
|
|
|
|
,EST_USER_ID
|
|
,EST_PLAN_DATE
|
|
,EST_COMP_DATE
|
|
,EST_RESULT_CD
|
|
|
|
<!-- ,CATEGORY_CD
|
|
,CUSTOMER_OBJID
|
|
,PRODUCT
|
|
,CUSTOMER_PROJECT_NAME
|
|
,STATUS_CD
|
|
,DUE_DATE
|
|
,LOCATION
|
|
,SETUP
|
|
,FACILITY
|
|
,FACILITY_QTY
|
|
,FACILITY_TYPE
|
|
,FACILITY_DEPTH
|
|
,PRODUCTION_NO
|
|
,BUS_CAL_CD
|
|
,CATEGORY1_CD
|
|
,PROJECT_NO
|
|
,PM_USER_ID
|
|
,CONTRACT_PRICE
|
|
,CONTRACT_PRICE_CURRENCY
|
|
,CONTRACT_CURRENCY
|
|
,REGDATE
|
|
,WRITER
|
|
,CONTRACT_NO
|
|
,CUSTOMER_EQUIP_NAME
|
|
,REQ_DEL_DATE
|
|
,CONTRACT_DEL_DATE
|
|
,CONTRACT_COMPANY
|
|
,CONTRACT_DATE
|
|
,PO_NO
|
|
,MANUFACTURE_PLANT
|
|
,CONTRACT_RESULT
|
|
,PROJECT_NAME
|
|
,AREA_CD -->
|
|
)
|
|
VALUES
|
|
(
|
|
#{objId}
|
|
|
|
,#{chg_user_id}
|
|
,#{plan_date}
|
|
,#{complete_date}
|
|
,#{result_cd}
|
|
|
|
,#{spec_user_id}
|
|
,#{spec_plan_date}
|
|
,#{spec_comp_date}
|
|
,#{spec_result_cd}
|
|
|
|
,#{est_user_id}
|
|
,#{est_plan_date}
|
|
,#{est_comp_date}
|
|
,#{est_result_cd}
|
|
|
|
<!-- ,#{category_cd}
|
|
,#{customer_objid}
|
|
,#{product}
|
|
,#{customer_project_name}
|
|
,#{status_cd}
|
|
,#{due_date}
|
|
,#{location}
|
|
,#{setup}
|
|
,#{facility}
|
|
,#{facility_qty}
|
|
,#{facility_type}
|
|
,#{facility_depth}
|
|
,#{production_no}
|
|
,#{bus_cal_cd}
|
|
,#{category1_cd}
|
|
,#{project_no}
|
|
,#{pm_user_id}
|
|
,#{contract_price}
|
|
,#{contract_price_currency}
|
|
,#{contract_currency}
|
|
,NOW()
|
|
,#{writer}
|
|
,(SELECT TO_CHAR(NOW(),'yy')::VARCHAR ||'C-'||LPAD((SELECT NEXTVAL('contract_mgmt_seq'))::VARCHAR ,4,'0'))
|
|
,#{customer_equip_name}
|
|
,#{req_del_date}
|
|
,#{contract_del_date}
|
|
,#{contract_company}
|
|
,#{contract_date}
|
|
,#{po_no}
|
|
,#{manufacture_plant}
|
|
,#{contract_result}
|
|
,#{project_name}
|
|
,#{area_cd} -->
|
|
)
|
|
ON CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET
|
|
CHG_USER_ID = #{chg_user_id}
|
|
,PLAN_DATE = #{plan_date}
|
|
,COMPLETE_DATE = #{complete_date}
|
|
,RESULT_CD = #{result_cd}
|
|
|
|
,SPEC_USER_ID = #{spec_user_id}
|
|
,SPEC_PLAN_DATE = #{spec_plan_date}
|
|
,SPEC_COMP_DATE = #{spec_comp_date}
|
|
,SPEC_RESULT_CD = #{spec_result_cd}
|
|
|
|
,EST_USER_ID = #{est_user_id}
|
|
,EST_PLAN_DATE = #{est_plan_date}
|
|
,EST_COMP_DATE = #{est_comp_date}
|
|
,EST_RESULT_CD = #{est_result_cd}
|
|
|
|
<!-- CATEGORY_CD = #{category_cd}
|
|
,CUSTOMER_OBJID = #{customer_objid}
|
|
,PRODUCT = #{product}
|
|
,CUSTOMER_PROJECT_NAME = #{customer_project_name}
|
|
,STATUS_CD = #{status_cd}
|
|
,DUE_DATE = #{due_date}
|
|
,LOCATION = #{location}
|
|
,SETUP = #{setup}
|
|
,FACILITY = #{facility}
|
|
,FACILITY_QTY = #{facility_qty}
|
|
,FACILITY_TYPE = #{facility_type}
|
|
,FACILITY_DEPTH = #{facility_depth}
|
|
,PRODUCTION_NO = #{production_no}
|
|
,BUS_CAL_CD = #{bus_cal_cd}
|
|
,CATEGORY1_CD = #{category1_cd}
|
|
,PROJECT_NO = #{project_no}
|
|
,PM_USER_ID = #{pm_user_id}
|
|
,CONTRACT_PRICE = #{contract_price}
|
|
,CONTRACT_PRICE_CURRENCY = #{contract_price_currency}
|
|
,CONTRACT_CURRENCY = #{contract_currency}
|
|
,CUSTOMER_EQUIP_NAME = #{customer_equip_name}
|
|
,REQ_DEL_DATE = #{req_del_date}
|
|
,CONTRACT_DEL_DATE = #{contract_del_date}
|
|
,CONTRACT_COMPANY = #{contract_company}
|
|
,CONTRACT_DATE = #{contract_date}
|
|
,PO_NO = #{po_no}
|
|
,MANUFACTURE_PLANT = #{manufacture_plant}
|
|
,CONTRACT_RESULT = #{contract_result}
|
|
,PROJECT_NAME = #{project_name}
|
|
,AREA_CD = #{area_cd} -->
|
|
</update>
|
|
|
|
<select id="getContractMgmtInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID
|
|
,CATEGORY_CD
|
|
,CUSTOMER_OBJID
|
|
,PRODUCT
|
|
,CUSTOMER_PROJECT_NAME
|
|
,STATUS_CD
|
|
,DUE_DATE
|
|
,LOCATION
|
|
,SETUP
|
|
,FACILITY
|
|
,FACILITY_QTY
|
|
,FACILITY_TYPE
|
|
,FACILITY_DEPTH
|
|
,PRODUCTION_NO
|
|
,BUS_CAL_CD
|
|
,CATEGORY1_CD
|
|
,CHG_USER_ID
|
|
,PLAN_DATE
|
|
,COMPLETE_DATE
|
|
,RESULT_CD
|
|
,PROJECT_NO
|
|
,PM_USER_ID
|
|
,CONTRACT_PRICE
|
|
,CONTRACT_PRICE_CURRENCY
|
|
,CONTRACT_CURRENCY
|
|
,REGDATE
|
|
,WRITER
|
|
,CONTRACT_NO
|
|
,CUSTOMER_EQUIP_NAME
|
|
,REQ_DEL_DATE
|
|
,CONTRACT_DEL_DATE
|
|
,CONTRACT_COMPANY
|
|
,CONTRACT_DATE
|
|
,PO_NO
|
|
,MANUFACTURE_PLANT
|
|
,CONTRACT_RESULT
|
|
,PROJECT_NAME
|
|
,SPEC_USER_ID
|
|
,SPEC_PLAN_DATE
|
|
,SPEC_COMP_DATE
|
|
,SPEC_RESULT_CD
|
|
,EST_USER_ID
|
|
,EST_PLAN_DATE
|
|
,EST_COMP_DATE
|
|
,EST_RESULT_CD
|
|
,AREA_CD
|
|
,TARGET_PROJECT_NO
|
|
,TARGET_PROJECT_NO_DIRECT
|
|
,CUSTOMER_PRODUCTION_NO
|
|
,MECHANICAL_TYPE
|
|
,OVERHAUL_ORDER
|
|
,PAID_TYPE
|
|
,RECEIPT_DATE
|
|
,PART_NO
|
|
,PART_NAME
|
|
,SERIAL_NO
|
|
,QUANTITY
|
|
,CUSTOMER_REQUEST
|
|
,EXCHANGE_RATE
|
|
,ORDER_DATE
|
|
,ORDER_UNIT_PRICE
|
|
,ORDER_SUPPLY_PRICE
|
|
,ORDER_VAT
|
|
,ORDER_TOTAL_AMOUNT
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID::VARCHAR = A.OBJID AND DOC_TYPE='contractMgmt01' AND UPPER(STATUS) = 'ACTIVE') AS FILE_CNT1
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID::VARCHAR = A.OBJID AND DOC_TYPE='contractMgmt02' AND UPPER(STATUS) = 'ACTIVE') AS FILE_CNT2
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID::VARCHAR = A.OBJID AND DOC_TYPE='contractMgmt03' AND UPPER(STATUS) = 'ACTIVE') AS FILE_CNT3
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID::VARCHAR = A.OBJID AND DOC_TYPE='contractMgmt04' AND UPPER(STATUS) = 'ACTIVE') AS FILE_CNT4
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID::VARCHAR = A.OBJID AND DOC_TYPE='contractMgmt05' AND UPPER(STATUS) = 'ACTIVE') AS FILE_CNT5
|
|
,(SELECT SUM(FILE_SIZE) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID::VARCHAR = A.OBJID AND DOC_TYPE='contractMgmt01' AND UPPER(STATUS) = 'ACTIVE') AS FILE_SIZE1
|
|
,(SELECT SUM(FILE_SIZE) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID::VARCHAR = A.OBJID AND DOC_TYPE='contractMgmt02' AND UPPER(STATUS) = 'ACTIVE') AS FILE_SIZE2
|
|
,(SELECT TO_CHAR(REGDATE, 'YYYY-MM-DD' ) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID::VARCHAR = A.OBJID AND DOC_TYPE='contractMgmt03' AND UPPER(STATUS) = 'ACTIVE' ORDER BY REGDATE desc LIMIT 1) AS FILE_DATE3
|
|
,(SELECT TO_CHAR(REGDATE, 'YYYY-MM-DD' ) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID::VARCHAR = A.OBJID AND DOC_TYPE='contractMgmt04' AND UPPER(STATUS) = 'ACTIVE' ORDER BY REGDATE desc LIMIT 1) AS FILE_DATE4
|
|
,(SELECT TO_CHAR(REGDATE, 'YYYY-MM-DD' ) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID::VARCHAR = A.OBJID AND DOC_TYPE='contractMgmt05' AND UPPER(STATUS) = 'ACTIVE' ORDER BY REGDATE desc LIMIT 1) AS FILE_DATE5
|
|
FROM CONTRACT_MGMT A
|
|
WHERE A.OBJID = #{objId}
|
|
</select>
|
|
|
|
<delete id="deleteContractOption" parameterType="map">
|
|
DELETE FROM CONTRACT_MGMT_OPTION
|
|
WHERE CONTRACT_OBJID = #{objId}::NUMERIC
|
|
</delete>
|
|
|
|
|
|
|
|
<insert id="saveContractOption" parameterType="map">
|
|
INSERT INTO CONTRACT_MGMT_OPTION
|
|
(
|
|
OBJID
|
|
,CONTRACT_OBJID
|
|
,OPTION_OBJID
|
|
|
|
<if test="option_qty !=null and option_qty != '' ">
|
|
, OPTION_QTY
|
|
</if>
|
|
|
|
<if test="price !=null and price != '' ">
|
|
, PRICE
|
|
</if>
|
|
,note
|
|
)
|
|
VALUES
|
|
(
|
|
#{objid}::NUMERIC
|
|
, #{contract_objid}::NUMERIC
|
|
, #{option_objid}::NUMERIC
|
|
<if test="option_qty !=null and option_qty != '' ">
|
|
, #{option_qty}::NUMERIC
|
|
</if>
|
|
|
|
<if test="price !=null and price != '' ">
|
|
, #{price}::NUMERIC
|
|
</if>
|
|
, #{note}
|
|
|
|
)
|
|
</insert>
|
|
|
|
<select id="getContractDashBoard_bak" parameterType="map" resultType="map">
|
|
WITH RECURSIVE VIEW_CC(
|
|
OBJID
|
|
,CODE_ID
|
|
,PARENT_CODE_ID
|
|
,CODE_NAME
|
|
,LEV
|
|
,PATH
|
|
,CYCLE
|
|
) AS (
|
|
SELECT
|
|
OBJID
|
|
,CODE_ID
|
|
,PARENT_CODE_ID
|
|
,CODE_NAME
|
|
,1
|
|
,ARRAY [CC.CODE_ID ::TEXT]
|
|
,FALSE
|
|
FROM
|
|
COMM_CODE CC
|
|
WHERE 1=1
|
|
AND PARENT_CODE_ID = '0000001'
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
CC.OBJID
|
|
,CC.CODE_ID
|
|
,CC.PARENT_CODE_ID
|
|
,CC.CODE_NAME
|
|
,LEV + 1
|
|
,PATH||CC.CODE_ID::TEXT
|
|
,CC.PARENT_CODE_ID = ANY(PATH)
|
|
FROM
|
|
COMM_CODE CC
|
|
INNER JOIN VIEW_CC VC
|
|
ON CC.PARENT_CODE_ID = VC.CODE_ID
|
|
),CONTRACT_BASE AS (
|
|
SELECT
|
|
T.OBJID,
|
|
T.PRODUCT_GROUP,
|
|
T.PRODUCT,
|
|
T.PRODUCT_GROUP1,
|
|
T.PRODUCT1,
|
|
T.PRODUCT_GROUP2,
|
|
T.PRODUCT2,
|
|
TO_CHAR(TO_DATE(T.CONTRACT_DATE,'YYYYMMDD'),'MM') AS CONTRACT_MONTH,
|
|
TO_CHAR(TO_DATE(T.CONTRACT_DATE,'YYYYMMDD'),'YYYY') AS CONTRACT_YEAR,
|
|
T.QTY,
|
|
T.QTY1,
|
|
T.QTY2
|
|
FROM
|
|
CONTRACT_MGMT T,
|
|
SUPPLY_MNG T1
|
|
WHERE T.CUSTOMER_OBJID::NUMERIC = T1.OBJID
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(T.REGDATE,'YYYY') = #{Year}
|
|
</if>
|
|
|
|
<if test="type_cd !=null and type_cd != '' ">
|
|
AND T1.SUPPLY_CODE = #{type_cd}
|
|
</if>
|
|
<if test="customer_cd != null and customer_cd !='' ">
|
|
AND T1.OBJID = #{customer_cd}::NUMERIC
|
|
</if>
|
|
|
|
<if test="area_cd !=null and area_cd !=''">
|
|
AND T1.AREA_CD = #{area_cd}
|
|
</if>
|
|
|
|
<if test="product_cd !=null and product_cd !=''">
|
|
AND T.CATEGORY_CD = #{product_cd}
|
|
</if>
|
|
|
|
<if test="contract_start_date != null and !''.equals(contract_start_date)">
|
|
AND TO_DATE(TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYYMMDD'),'YYYY-MM-DD'),'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(TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYYMMDD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{contract_end_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
),CONTRACT_PRODUCT AS (
|
|
SELECT
|
|
ROW_NUMBER() OVER (PARTITION BY VC.PARENT_CODE_ID ORDER BY VC.PATH,PM.PRODUCT_CODE) AS RNUM
|
|
,VC.*
|
|
,PM.PRODUCT_CODE
|
|
,PM.OBJID AS PRODUCT_OBJID
|
|
FROM
|
|
VIEW_CC VC
|
|
LEFT OUTER JOIN PRODUCT_MGMT PM
|
|
ON VC.PARENT_CODE_ID = PM.PRODUCT_CATEGORY
|
|
AND VC.CODE_ID = PM.PRODUCT_TYPE
|
|
WHERE VC.LEV != '1'
|
|
ORDER BY
|
|
VC.PATH
|
|
,PM.PRODUCT_CODE
|
|
),CONTRACT_BASE_DATA as(
|
|
SELECT
|
|
T.OBJID,
|
|
T.PRODUCT_GROUP,
|
|
T.PRODUCT,
|
|
T.CONTRACT_MONTH,
|
|
T.CONTRACT_YEAR,
|
|
T.QTY
|
|
FROM
|
|
CONTRACT_BASE T
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
T.OBJID,
|
|
T.PRODUCT_GROUP1,
|
|
T.PRODUCT1,
|
|
T.CONTRACT_MONTH,
|
|
T.CONTRACT_YEAR,
|
|
T.QTY1
|
|
FROM
|
|
CONTRACT_BASE T
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
T.OBJID,
|
|
T.PRODUCT_GROUP2,
|
|
T.PRODUCT2,
|
|
T.CONTRACT_MONTH,
|
|
T.CONTRACT_YEAR,
|
|
T.QTY2
|
|
FROM
|
|
CONTRACT_BASE T
|
|
|
|
),CONTRACT_DATA AS(
|
|
SELECT
|
|
PRODUCT_GROUP
|
|
,PRODUCT
|
|
,CONTRACT_YEAR
|
|
,CONTRACT_MONTH
|
|
,COUNT(1) AS CONTRACT_CNT
|
|
FROM CONTRACT_BASE_DATA
|
|
GROUP BY
|
|
PRODUCT_GROUP
|
|
,PRODUCT
|
|
,CONTRACT_YEAR
|
|
,CONTRACT_MONTH
|
|
),RELEASE_BASE_DATA as(
|
|
SELECT
|
|
RM.PRODUCT_GROUP
|
|
,RM.PRODUCT
|
|
,TO_CHAR(TO_DATE(RELEASE_DATE,'YYYY-MM-DD'),'MM') AS RELEASE_MONTH
|
|
,TO_CHAR(TO_DATE(RELEASE_DATE,'YYYY-MM-DD'),'YYYY') AS RELEASE_YEAR
|
|
FROM
|
|
RELEASE_MGMT RM
|
|
INNER JOIN CONTRACT_BASE CM
|
|
ON RM.PRODUCT_GROUP = CM.PRODUCT_GROUP::VARCHAR
|
|
AND RM.PRODUCT = CM.PRODUCT::VARCHAR
|
|
WHERE 1=1
|
|
AND RELEASE_DATE IS NOT NULL
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
RM.PRODUCT_GROUP
|
|
,RM.PRODUCT
|
|
,TO_CHAR(TO_DATE(RELEASE_DATE,'YYYY-MM-DD'),'MM') AS RELEASE_MONTH
|
|
,TO_CHAR(TO_DATE(RELEASE_DATE,'YYYY-MM-DD'),'YYYY') AS RELEASE_YEAR
|
|
FROM
|
|
RELEASE_MGMT RM
|
|
INNER JOIN CONTRACT_BASE CM
|
|
ON RM.PRODUCT_GROUP = CM.PRODUCT_GROUP1::VARCHAR
|
|
AND RM.PRODUCT = CM.PRODUCT1::VARCHAR
|
|
WHERE 1=1
|
|
AND RELEASE_DATE IS NOT NULL
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
RM.PRODUCT_GROUP
|
|
,RM.PRODUCT
|
|
,TO_CHAR(TO_DATE(RELEASE_DATE,'YYYY-MM-DD'),'MM') AS RELEASE_MONTH
|
|
,TO_CHAR(TO_DATE(RELEASE_DATE,'YYYY-MM-DD'),'YYYY') AS RELEASE_YEAR
|
|
FROM
|
|
RELEASE_MGMT RM
|
|
INNER JOIN CONTRACT_BASE CM
|
|
ON RM.PRODUCT_GROUP = CM.PRODUCT_GROUP2::VARCHAR
|
|
AND RM.PRODUCT = CM.PRODUCT2::VARCHAR
|
|
WHERE 1=1
|
|
AND RELEASE_DATE IS NOT NULL
|
|
|
|
),RELEASE_DATA AS(
|
|
SELECT
|
|
PRODUCT_GROUP
|
|
,PRODUCT
|
|
,RELEASE_MONTH
|
|
,RELEASE_YEAR
|
|
,COUNT(1) AS RELEASE_CNT
|
|
FROM RELEASE_BASE_DATA
|
|
GROUP BY
|
|
PRODUCT_GROUP
|
|
,PRODUCT
|
|
,RELEASE_YEAR
|
|
,RELEASE_MONTH
|
|
)
|
|
|
|
SELECT
|
|
(SELECT CODE_NAME FROM COMM_CODE WHERE 1=1 AND CODE_ID = CP.PARENT_CODE_ID) AS PARENT_CODE_NAME
|
|
,CP.*
|
|
<foreach collection="monthList" item="obj">
|
|
,(
|
|
SELECT
|
|
SUM(CONTRACT_CNT)
|
|
FROM
|
|
CONTRACT_DATA CD
|
|
WHERE CP.PARENT_CODE_ID = CD.PRODUCT_GROUP
|
|
AND CP.PRODUCT_OBJID::VARCHAR = CD.PRODUCT
|
|
AND CONTRACT_MONTH = #{obj.MONTH}
|
|
<if test="SEARCH_YEAR != null and '' != SEARCH_YEAR">
|
|
AND CONTRACT_YEAR = #{SEARCH_YEAR}
|
|
</if>
|
|
) AS CONTRACT_CNT_MONTH_${obj.MONTH}
|
|
,(
|
|
SELECT
|
|
SUM(RELEASE_CNT)
|
|
FROM
|
|
RELEASE_DATA RD
|
|
WHERE CP.PRODUCT_OBJID::VARCHAR = RD.PRODUCT
|
|
AND RELEASE_MONTH = #{obj.MONTH}
|
|
<if test="SEARCH_YEAR != null and '' != SEARCH_YEAR">
|
|
AND RELEASE_YEAR = #{SEARCH_YEAR}
|
|
</if>
|
|
) AS RELEASE_CNT_MONTH_${obj.MONTH}
|
|
|
|
</foreach>
|
|
|
|
,(
|
|
SELECT
|
|
SUM(CONTRACT_CNT)
|
|
FROM
|
|
CONTRACT_DATA CD
|
|
WHERE CP.PARENT_CODE_ID = CD.PRODUCT_GROUP
|
|
AND CP.PRODUCT_OBJID::VARCHAR = CD.PRODUCT
|
|
<if test="SEARCH_YEAR != null and '' != SEARCH_YEAR">
|
|
AND CONTRACT_YEAR = #{SEARCH_YEAR}
|
|
</if>
|
|
) AS CONTRACT_CNT_YEAR
|
|
,(
|
|
SELECT
|
|
SUM(RELEASE_CNT)
|
|
FROM
|
|
RELEASE_DATA RD
|
|
WHERE CP.PRODUCT_OBJID::VARCHAR = RD.PRODUCT
|
|
<if test="SEARCH_YEAR != null and '' != SEARCH_YEAR">
|
|
AND RELEASE_YEAR = #{SEARCH_YEAR}
|
|
</if>
|
|
) AS RELEASE_CNT__YEAR
|
|
FROM
|
|
CONTRACT_PRODUCT CP
|
|
WHERE 1=1
|
|
</select>
|
|
|
|
<select id="getContractDashBoard_back2" parameterType="map" resultType="map">
|
|
WITH TARGET_PRODUCT AS(
|
|
SELECT
|
|
ROW_NUMBER() OVER (PARTITION BY CC.CODE_ID ORDER BY CC.CODE_ID,PM.PRODUCT_CODE) AS RNUM
|
|
,CC.OBJID
|
|
,CC.CODE_ID AS PRODUCT_GROUP
|
|
,CC.CODE_NAME
|
|
,PM.PRODUCT_CODE
|
|
,PM.OBJID AS PRODUCT
|
|
FROM
|
|
COMM_CODE CC
|
|
LEFT OUTER JOIN
|
|
PRODUCT_MGMT PM
|
|
ON CC.CODE_ID = PM.PRODUCT_CATEGORY
|
|
WHERE 1=1
|
|
AND CC.PARENT_CODE_ID = '0000001'
|
|
),CONTRACT_BASE AS (
|
|
SELECT
|
|
T.OBJID,
|
|
T.PRODUCT_GROUP,
|
|
T.PRODUCT,
|
|
T.PRODUCT_GROUP1,
|
|
T.PRODUCT1,
|
|
T.PRODUCT_GROUP2,
|
|
T.PRODUCT2,
|
|
TO_CHAR(TO_DATE(T.CONTRACT_DATE,'YYYYMMDD'),'MM') AS CONTRACT_MONTH,
|
|
TO_CHAR(TO_DATE(T.CONTRACT_DATE,'YYYYMMDD'),'YYYY') AS CONTRACT_YEAR,
|
|
T.QTY,
|
|
T.QTY1,
|
|
T.QTY2,
|
|
|
|
CASE REPLACE(FM.CONTRACT_COST,' ','')
|
|
WHEN '' THEN '0'
|
|
ELSE FM.CONTRACT_COST
|
|
END::INTEGER CONTRACT_COST,
|
|
|
|
CASE REPLACE(FM.MID_PAY_COST1,' ','')
|
|
WHEN '' THEN '0'
|
|
ELSE FM.MID_PAY_COST1
|
|
END::INTEGER MID_PAY_COST1,
|
|
|
|
CASE REPLACE(FM.MID_PAY_COST2,' ','')
|
|
WHEN '' THEN '0'
|
|
ELSE FM.MID_PAY_COST2
|
|
END::INTEGER MID_PAY_COST2,
|
|
|
|
CASE REPLACE(FM.BALANCE_COST,' ','')
|
|
WHEN '' THEN '0'
|
|
ELSE FM.BALANCE_COST
|
|
END::INTEGER BALANCE_COST
|
|
|
|
FROM
|
|
CONTRACT_MGMT T
|
|
INNER JOIN SUPPLY_MNG T1
|
|
ON T.CUSTOMER_OBJID::NUMERIC = T1.OBJID
|
|
LEFT OUTER JOIN
|
|
FUND_MGMT FM
|
|
ON T.OBJID::VARCHAR = FM.PARENT_OBJID
|
|
WHERE 1=1
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(T.REGDATE,'YYYY') = #{Year}
|
|
</if>
|
|
|
|
<if test="type_cd !=null and type_cd != '' ">
|
|
AND T1.SUPPLY_CODE = #{type_cd}
|
|
</if>
|
|
<if test="customer_cd != null and customer_cd !='' ">
|
|
AND T1.OBJID = #{customer_cd}::NUMERIC
|
|
</if>
|
|
|
|
<if test="area_cd !=null and area_cd !=''">
|
|
AND T1.AREA_CD = #{area_cd}
|
|
</if>
|
|
|
|
<if test="product_cd !=null and product_cd !=''">
|
|
AND T.CATEGORY_CD = #{product_cd}
|
|
</if>
|
|
|
|
<if test="contract_start_date != null and !''.equals(contract_start_date)">
|
|
AND TO_DATE(TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYYMMDD'),'YYYY-MM-DD'),'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(TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYYMMDD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{contract_end_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
),CONTRACT_BASE_DATA as(
|
|
SELECT
|
|
T.OBJID,
|
|
T.PRODUCT_GROUP,
|
|
T.PRODUCT,
|
|
T.CONTRACT_MONTH,
|
|
T.CONTRACT_YEAR,
|
|
CASE
|
|
WHEN T.QTY IS NULL OR T.QTY = '' THEN '0'
|
|
ELSE T.QTY
|
|
END QTY,
|
|
(T.CONTRACT_COST+T.MID_PAY_COST1+T.MID_PAY_COST2+T.BALANCE_COST) AS CONTRACT_COST
|
|
FROM
|
|
CONTRACT_BASE T
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
T.OBJID,
|
|
T.PRODUCT_GROUP1,
|
|
T.PRODUCT1,
|
|
T.CONTRACT_MONTH,
|
|
T.CONTRACT_YEAR,
|
|
CASE
|
|
WHEN T.QTY1 IS NULL OR T.QTY1 = '' THEN '0'
|
|
ELSE T.QTY1
|
|
END QTY,
|
|
0 AS CONTRACT_COST
|
|
FROM
|
|
CONTRACT_BASE T
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
T.OBJID,
|
|
T.PRODUCT_GROUP2,
|
|
T.PRODUCT2,
|
|
T.CONTRACT_MONTH,
|
|
T.CONTRACT_YEAR,
|
|
CASE
|
|
WHEN T.QTY2 IS NULL OR T.QTY2 = '' THEN '0'
|
|
ELSE T.QTY2
|
|
END QTY,
|
|
0 AS CONTRACT_COST
|
|
FROM
|
|
CONTRACT_BASE T
|
|
|
|
),CONTRACT_DATA AS(
|
|
SELECT
|
|
PRODUCT_GROUP
|
|
,PRODUCT
|
|
,CONTRACT_YEAR
|
|
,CONTRACT_MONTH
|
|
,SUM(QTY::INTEGER) AS CONTRACT_CNT
|
|
,SUM(CONTRACT_COST) AS CONTRACT_COST
|
|
FROM CONTRACT_BASE_DATA
|
|
GROUP BY
|
|
PRODUCT_GROUP
|
|
,PRODUCT
|
|
,CONTRACT_YEAR
|
|
,CONTRACT_MONTH
|
|
),RELEASE_BASE_DATA AS(
|
|
SELECT
|
|
RM.PRODUCT_GROUP
|
|
,RM.PRODUCT
|
|
,TO_CHAR(TO_DATE(RELEASE_DATE,'YYYY-MM-DD'),'MM') AS RELEASE_MONTH
|
|
,TO_CHAR(TO_DATE(RELEASE_DATE,'YYYY-MM-DD'),'YYYY') AS RELEASE_YEAR
|
|
FROM
|
|
RELEASE_MGMT RM
|
|
INNER JOIN CONTRACT_BASE_DATA CMD
|
|
ON RM.PARENT_OBJID = CMD.OBJID::VARCHAR
|
|
AND RM.PRODUCT_GROUP = CMD.PRODUCT_GROUP::VARCHAR
|
|
AND RM.PRODUCT = CMD.PRODUCT::VARCHAR
|
|
WHERE 1=1
|
|
AND RM.RELEASE_DATE IS NOT NULL
|
|
),RELEASE_DATA AS(
|
|
SELECT
|
|
PRODUCT_GROUP
|
|
,PRODUCT
|
|
,RELEASE_MONTH
|
|
,RELEASE_YEAR
|
|
,COUNT(1) AS RELEASE_CNT
|
|
FROM RELEASE_BASE_DATA
|
|
GROUP BY
|
|
PRODUCT_GROUP
|
|
,PRODUCT
|
|
,RELEASE_YEAR
|
|
,RELEASE_MONTH
|
|
),FINAL_DATA AS(
|
|
SELECT
|
|
CP.PRODUCT_GROUP
|
|
,CP.PRODUCT
|
|
<foreach collection="monthList" item="obj">
|
|
,(
|
|
SELECT
|
|
SUM(CONTRACT_CNT)
|
|
FROM
|
|
CONTRACT_DATA CD
|
|
WHERE CP.PRODUCT_GROUP = CD.PRODUCT_GROUP
|
|
AND CP.PRODUCT::VARCHAR = CD.PRODUCT
|
|
AND CONTRACT_MONTH = #{obj.MONTH}
|
|
<if test="Year != null and '' != Year">
|
|
AND CONTRACT_YEAR = #{Year}
|
|
</if>
|
|
) AS CONTRACT_CNT_MONTH_${obj.MONTH}
|
|
,(
|
|
SELECT
|
|
SUM(CONTRACT_COST)
|
|
FROM
|
|
CONTRACT_DATA CD
|
|
WHERE CP.PRODUCT_GROUP = CD.PRODUCT_GROUP
|
|
AND CP.PRODUCT::VARCHAR = CD.PRODUCT
|
|
AND CONTRACT_MONTH = #{obj.MONTH}
|
|
<if test="Year != null and '' != Year">
|
|
AND CONTRACT_YEAR = #{Year}
|
|
</if>
|
|
) AS CONTRACT_COST_MONTH_${obj.MONTH}
|
|
,(
|
|
SELECT
|
|
SUM(RELEASE_CNT)
|
|
FROM
|
|
RELEASE_DATA RD
|
|
WHERE CP.PRODUCT::VARCHAR = RD.PRODUCT
|
|
AND RELEASE_MONTH = #{obj.MONTH}
|
|
<if test="Year != null and '' != Year">
|
|
AND RELEASE_YEAR = #{Year}
|
|
</if>
|
|
) AS RELEASE_CNT_MONTH_${obj.MONTH}
|
|
</foreach>
|
|
|
|
,(
|
|
SELECT
|
|
SUM(CONTRACT_CNT)
|
|
FROM
|
|
CONTRACT_DATA CD
|
|
WHERE CP.PRODUCT_GROUP = CD.PRODUCT_GROUP
|
|
AND CP.PRODUCT::VARCHAR = CD.PRODUCT
|
|
<if test="Year != null and '' != Year">
|
|
AND CONTRACT_YEAR = #{Year}
|
|
</if>
|
|
) AS CONTRACT_CNT_YEAR
|
|
|
|
,(
|
|
SELECT
|
|
SUM(CONTRACT_COST)
|
|
FROM
|
|
CONTRACT_DATA CD
|
|
WHERE CP.PRODUCT_GROUP = CD.PRODUCT_GROUP
|
|
AND CP.PRODUCT::VARCHAR = CD.PRODUCT
|
|
<if test="Year != null and '' != Year">
|
|
AND CONTRACT_YEAR = #{Year}
|
|
</if>
|
|
) AS CONTRACT_COST_YEAR
|
|
|
|
,(
|
|
SELECT
|
|
SUM(RELEASE_CNT)
|
|
FROM
|
|
RELEASE_DATA RD
|
|
WHERE CP.PRODUCT::VARCHAR = RD.PRODUCT
|
|
<if test="Year != null and '' != Year">
|
|
AND RELEASE_YEAR = #{Year}
|
|
</if>
|
|
) AS RELEASE_CNT_YEAR
|
|
FROM
|
|
TARGET_PRODUCT CP
|
|
WHERE 1=1
|
|
)
|
|
|
|
SELECT
|
|
A.*,
|
|
ROW_NUMBER() OVER (PARTITION BY PRODUCT_GROUP ORDER BY PRODUCT_GROUP,PRODUCT_CODE) AS RNUM
|
|
FROM(
|
|
SELECT
|
|
FD.PRODUCT_GROUP
|
|
,FD.PRODUCT
|
|
,(SELECT CODE_NAME FROM COMM_CODE CC WHERE CODE_ID = FD.PRODUCT_GROUP) AS CODE_NAME
|
|
,(SELECT PRODUCT_CODE FROM TARGET_PRODUCT TP WHERE TP.PRODUCT_GROUP = FD.PRODUCT_GROUP AND TP.PRODUCT = FD.PRODUCT) AS PRODUCT_CODE
|
|
|
|
<foreach collection="monthList" item="obj">
|
|
,SUM(FD.CONTRACT_CNT_MONTH_${obj.MONTH}) AS CONTRACT_CNT_MONTH_${obj.MONTH}
|
|
,SUM(FD.CONTRACT_COST_MONTH_${obj.MONTH}) AS CONTRACT_COST_MONTH_${obj.MONTH}
|
|
,SUM(FD.RELEASE_CNT_MONTH_${obj.MONTH}) AS RELEASE_CNT_MONTH_${obj.MONTH}
|
|
|
|
,CAST(DATE_TRUNC('MONTH', TO_DATE('${Year}-${obj.MONTH}','YYYY-MM')) AS DATE) AS MONTH_FIRST_DAY_${obj.MONTH}
|
|
,(DATE_TRUNC('MONTH', TO_DATE('${Year}-${obj.MONTH}','YYYY-MM')) + INTERVAL '1 MONTH - 1 DAY')::DATE AS MONTH_LAST_DAY_${obj.MONTH}
|
|
</foreach>
|
|
|
|
,SUM(FD.CONTRACT_CNT_YEAR) AS CONTRACT_CNT_YEAR
|
|
,SUM(FD.CONTRACT_COST_YEAR) AS CONTRACT_COST_YEAR
|
|
,SUM(FD.RELEASE_CNT_YEAR) AS RELEASE_CNT_YEAR
|
|
|
|
,#{Year} AS TARGET_YEAR
|
|
|
|
FROM FINAL_DATA FD
|
|
GROUP BY ROLLUP (
|
|
(
|
|
FD.PRODUCT_GROUP
|
|
,FD.PRODUCT
|
|
)
|
|
)
|
|
) A
|
|
|
|
WHERE 1=1
|
|
AND A.contract_cnt_year IS NOT NULL OR A.release_cnt_year IS NOT NULL
|
|
</select>
|
|
|
|
<update id="deleteContractMngInfo" parameterType="map">
|
|
DELETE FROM CONTRACT_MGMT WHERE OBJID = #{objId}
|
|
</update>
|
|
<update id="deletesupplyMngInfo" parameterType="map">
|
|
DELETE FROM SUPPLY_MNG WHERE OBJID = #{objId}::NUMERIC
|
|
</update>
|
|
|
|
<select id="getContractOptionList" parameterType="map" resultType="map">
|
|
SELECT
|
|
OPTION_OBJID::VARCHAR
|
|
,OPTION_QTY::VARCHAR
|
|
,PRICE::VARCHAR
|
|
,NOTE
|
|
,T1.HIGH_CD
|
|
,T1.MID_CD
|
|
,T1.LOW_CD
|
|
FROM contract_mgmt_option AS CMO LEFT OUTER JOIN (SELECT
|
|
OBJID --OBJID
|
|
,OPTION_NO --옵션번호(자동)
|
|
,OPTION_NAME --옵션이름
|
|
,OPTION_NAME_ENG --옵션이름 영문
|
|
,STD_CODE --표준코드
|
|
,OPTION_TYPE --옵셥타입
|
|
|
|
,CASE WHEN CATEGORY='mid'
|
|
THEN (SELECT OPTION_NAME FROM option_mng AS O WHERE O.OBJID::VARCHAR = T.PARENT_OBJID)
|
|
WHEN CATEGORY='low'
|
|
THEN (SELECT OPTION_NAME FROM option_mng AS O WHERE O.OBJID::VARCHAR = (SELECT PARENT_OBJID FROM option_mng AS O WHERE O.OBJID::VARCHAR = T.PARENT_OBJID))
|
|
WHEN CATEGORY='high'
|
|
THEN OPTION_NAME
|
|
ELSE '' END AS HIGH_NAME
|
|
|
|
,CASE WHEN CATEGORY='mid'
|
|
THEN (SELECT OBJID::varchar FROM option_mng AS O WHERE O.OBJID::VARCHAR = T.PARENT_OBJID)
|
|
WHEN CATEGORY='low'
|
|
THEN (SELECT OBJID::varchar FROM option_mng AS O WHERE O.OBJID::VARCHAR = (SELECT PARENT_OBJID FROM option_mng AS O WHERE O.OBJID::VARCHAR = T.PARENT_OBJID))
|
|
WHEN CATEGORY='high'
|
|
THEN OBJID::varchar
|
|
ELSE '' END AS HIGH_CD
|
|
|
|
|
|
,CASE WHEN CATEGORY='low'
|
|
THEN (SELECT OPTION_NAME FROM option_mng AS O WHERE O.OBJID::VARCHAR = T.PARENT_OBJID)
|
|
WHEN CATEGORY='mid'
|
|
THEN OPTION_NAME
|
|
ELSE '' END AS MID_NAME
|
|
|
|
,CASE WHEN CATEGORY='low'
|
|
THEN (SELECT OBJID::VARCHAR FROM option_mng AS O WHERE O.OBJID::VARCHAR = T.PARENT_OBJID)
|
|
WHEN CATEGORY='mid'
|
|
THEN OBJID::VARCHAR
|
|
ELSE '' END AS MID_CD
|
|
|
|
,CASE WHEN CATEGORY='low'
|
|
THEN OPTION_NAME
|
|
ELSE '' END AS LOW_NAME
|
|
|
|
,CASE WHEN CATEGORY='low'
|
|
THEN OBJID::VARCHAR
|
|
ELSE '' END AS LOW_CD
|
|
|
|
FROM option_mng AS T) AS T1
|
|
ON CMO.OPTION_OBJID::NUMERIC = T1.OBJID::NUMERIC
|
|
WHERE CONTRACT_OBJID::NUMERIC = #{objId}::NUMERIC
|
|
</select>
|
|
|
|
|
|
<!-- 공급업체에 해당하는 정보 목록 Count를 가져온다. -->
|
|
<select id="getSUPPLYInfoListCnt" parameterType="map" resultType="map">
|
|
SELECT
|
|
CEIL(TOTAL_CNT/#{COUNT_PER_PAGE})::numeric::integer AS MAX_PAGE_SIZE,
|
|
TOTAL_CNT::numeric
|
|
FROM (
|
|
SELECT
|
|
COUNT(1)::float TOTAL_CNT
|
|
FROM(
|
|
SELECT TBL.*
|
|
FROM(
|
|
SELECT
|
|
OBJID
|
|
,SUPPLY_CODE
|
|
,CODE_NAME(SUPPLY_CODE) AS SUPPLY_CODE_NAME
|
|
,CODE_NAME(AREA_CD) AS AREA_CD_NAME
|
|
,AREA_CD
|
|
,BUS_REG_NO
|
|
,OFFICE_NO
|
|
,EMAIL
|
|
,SUPPLY_NAME
|
|
,REG_NO
|
|
,SUPPLY_ADDRESS
|
|
,SUPPLY_BUSNAME
|
|
,SUPPLY_STOCKNAME
|
|
,SUPPLY_TEL_NO
|
|
,(SELECT USER_NAME FROM USER_INFO WHERE USER_ID = REG_ID) WRITER_NAME
|
|
,(SELECT DEPT_NAME FROM USER_INFO WHERE USER_ID = REG_ID) WRITER_DEPT
|
|
,REG_ID
|
|
,TO_CHAR(REG_DATE,'YYYY-MM-DD') REGDATE
|
|
,STATUS
|
|
,case UPPER(STATUS)
|
|
when 'ACTIVE' then '활성화'
|
|
when 'INACTIVE' then '비활성화'
|
|
else STATUS
|
|
end STATUS_STR
|
|
FROM SUPPLY_MNG
|
|
WHERE 1=1
|
|
) TBL WHERE 1=1
|
|
<if test="supply_name != null and supply_name != ''">
|
|
AND UPPER(SUPPLY_NAME) LIKE UPPER('%${supply_name}%')
|
|
</if>
|
|
<if test="searchStatus != null and searchStatus != ''">
|
|
AND UPPER(STATUS) LIKE UPPER('%${searchStatus}%')
|
|
</if>
|
|
|
|
<if test="area_cd != null and area_cd != ''">
|
|
AND AREA_CD =#{area_cd}
|
|
</if>
|
|
<if test="supply_code != null and supply_code != ''">
|
|
AND SUPPLY_CODE =#{supply_code}
|
|
</if>
|
|
) TBL WHERE 1=1
|
|
)A WHERE 1=1
|
|
</select>
|
|
|
|
|
|
<!-- 공급업체에 해당하는 정보 목록을 가져온다. -->
|
|
<select id="getSUPPLYInfoList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM(
|
|
SELECT TBL.*, ROW_NUMBER() OVER(ORDER BY CUS_NO DESC) RNUM
|
|
FROM(
|
|
SELECT TBL.*
|
|
FROM(
|
|
SELECT
|
|
OBJID
|
|
,SUPPLY_CODE
|
|
,CODE_NAME(SUPPLY_CODE) AS SUPPLY_CODE_NAME
|
|
,CODE_NAME(AREA_CD) AS AREA_CD_NAME
|
|
,AREA_CD
|
|
,BUS_REG_NO
|
|
,OFFICE_NO
|
|
,EMAIL
|
|
,SUPPLY_NAME
|
|
,REG_NO
|
|
,REGEXP_REPLACE(REG_NO, '([0-9]{7})', '*******') AS REG_NO2
|
|
,SUPPLY_ADDRESS
|
|
,SUPPLY_BUSNAME
|
|
,SUPPLY_STOCKNAME
|
|
,SUPPLY_TEL_NO
|
|
,REG_ID
|
|
,TO_CHAR(REG_DATE,'YYYY-MM-DD') REGDATE
|
|
,STATUS
|
|
,CHARGE_USER_NAME
|
|
,case UPPER(STATUS)
|
|
when 'ACTIVE' then '활성화'
|
|
when 'INACTIVE' then '비활성화'
|
|
else STATUS
|
|
end STATUS_STR
|
|
,CUS_NO
|
|
FROM SUPPLY_MNG
|
|
WHERE 1=1
|
|
) TBL WHERE 1=1
|
|
<if test="supply_name != null and supply_name != ''">
|
|
AND UPPER(SUPPLY_NAME) LIKE UPPER('%${supply_name}%')
|
|
</if>
|
|
<if test="searchStatus != null and searchStatus != ''">
|
|
AND UPPER(STATUS) LIKE UPPER('%${searchStatus}%')
|
|
</if>
|
|
<if test="area_cd != null and area_cd != ''">
|
|
AND AREA_CD =#{area_cd}
|
|
</if>
|
|
<if test="supply_code != null and supply_code != ''">
|
|
AND SUPPLY_CODE =#{supply_code}
|
|
</if>
|
|
|
|
|
|
|
|
)TBL WHERE 1=1
|
|
) A WHERE 1=1
|
|
AND <![CDATA[ RNUM::integer <= #{PAGE_END}::integer ]]>
|
|
AND <![CDATA[ RNUM::integer >= #{PAGE_START}::integer]]>
|
|
</select>
|
|
|
|
<!-- 공급업체에 해당하는 정보 목록을 가져온다. -->
|
|
<select id="supplyMngGridPagingList" parameterType="map" resultType="map">
|
|
SELECT TBL.*
|
|
FROM(
|
|
SELECT
|
|
OBJID
|
|
,SUPPLY_CODE
|
|
,CODE_NAME(SUPPLY_CODE) AS SUPPLY_CODE_NAME
|
|
,CODE_NAME(AREA_CD) AS AREA_CD_NAME
|
|
,AREA_CD
|
|
,BUS_REG_NO
|
|
,OFFICE_NO
|
|
,EMAIL
|
|
,SUPPLY_NAME
|
|
,REG_NO
|
|
,REGEXP_REPLACE(REG_NO, '([0-9]{7})', '*******') AS REG_NO2
|
|
,SUPPLY_ADDRESS
|
|
,SUPPLY_BUSNAME
|
|
,SUPPLY_STOCKNAME
|
|
,SUPPLY_TEL_NO
|
|
,REG_ID
|
|
,TO_CHAR(REG_DATE,'YYYY-MM-DD') REGDATE
|
|
,STATUS
|
|
,CHARGE_USER_NAME
|
|
,case UPPER(STATUS)
|
|
when 'ACTIVE' then '활성화'
|
|
when 'INACTIVE' then '비활성화'
|
|
else STATUS
|
|
end STATUS_STR
|
|
,CUS_NO
|
|
FROM SUPPLY_MNG
|
|
WHERE 1=1
|
|
) TBL WHERE 1=1
|
|
<if test="supply_name != null and supply_name != ''">
|
|
AND UPPER(SUPPLY_NAME) LIKE UPPER('%${supply_name}%')
|
|
</if>
|
|
<if test="searchStatus != null and searchStatus != ''">
|
|
AND UPPER(STATUS) LIKE UPPER('%${searchStatus}%')
|
|
</if>
|
|
<if test="area_cd != null and area_cd != ''">
|
|
AND AREA_CD =#{area_cd}
|
|
</if>
|
|
<if test="supply_code != null and supply_code != ''">
|
|
AND SUPPLY_CODE =#{supply_code}
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 공급업체 단건 정보를 가져온다. -->
|
|
<select id="getSupMngInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID
|
|
,SUPPLY_CODE
|
|
,SUPPLY_NAME
|
|
,REG_NO
|
|
,REGEXP_REPLACE(REG_NO, '([0-9]{7})', '*******') AS REG_NO2
|
|
,SUPPLY_ADDRESS
|
|
,SUPPLY_BUSNAME
|
|
,SUPPLY_STOCKNAME
|
|
,SUPPLY_TEL_NO
|
|
,SUPPLY_FAX_NO
|
|
,CHARGE_USER_NAME
|
|
,PAYMENT_METHOD
|
|
,REG_ID
|
|
,REG_DATE
|
|
,STATUS
|
|
,AREA_CD
|
|
,BUS_REG_NO
|
|
,OFFICE_NO
|
|
,EMAIL
|
|
FROM SUPPLY_MNG
|
|
WHERE OBJID = #{objid}::numeric
|
|
</select>
|
|
|
|
|
|
|
|
<!-- //공급업체 등록 및 저장 -->
|
|
<update id="mergeSupMgmtInfo" parameterType="map">
|
|
INSERT INTO SUPPLY_MNG
|
|
(
|
|
OBJID
|
|
,SUPPLY_CODE
|
|
,SUPPLY_NAME
|
|
,REG_NO
|
|
,SUPPLY_ADDRESS
|
|
,SUPPLY_BUSNAME
|
|
,SUPPLY_STOCKNAME
|
|
,SUPPLY_TEL_NO
|
|
,SUPPLY_FAX_NO
|
|
,CHARGE_USER_NAME
|
|
,PAYMENT_METHOD
|
|
,REG_ID
|
|
,REG_DATE
|
|
,STATUS
|
|
,AREA_CD
|
|
,BUS_REG_NO
|
|
,OFFICE_NO
|
|
,EMAIL
|
|
,CUS_NO
|
|
)
|
|
VALUES
|
|
(
|
|
#{objid }::NUMERIC
|
|
,#{supply_code}
|
|
,#{supply_name }
|
|
,#{reg_no }
|
|
,#{supply_address }
|
|
,#{supply_busname }
|
|
,#{supply_stockname }
|
|
,#{supply_tel_no }
|
|
,#{supply_fax_no }
|
|
,#{charge_user_name }
|
|
,#{payment_method }
|
|
,#{reg_id }
|
|
,now()
|
|
,'active'
|
|
,#{area_cd }
|
|
,#{bus_reg_no }
|
|
,#{office_no }
|
|
,#{email }
|
|
,(SELECT 'CUS-' || LPAD((SELECT MAX(SUBSTR(CUS_NO,5,8))::INTEGER+1 FROM SUPPLY_MNG)::VARCHAR,4,'0'))
|
|
)
|
|
ON CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET
|
|
SUPPLY_CODE =#{supply_code }
|
|
,SUPPLY_NAME =#{supply_name }
|
|
,REG_NO =#{reg_no }
|
|
,SUPPLY_ADDRESS =#{supply_address }
|
|
,SUPPLY_BUSNAME =#{supply_busname }
|
|
,SUPPLY_STOCKNAME =#{supply_stockname }
|
|
,SUPPLY_TEL_NO =#{supply_tel_no }
|
|
,SUPPLY_FAX_NO =#{supply_fax_no }
|
|
,CHARGE_USER_NAME =#{charge_user_name }
|
|
,PAYMENT_METHOD =#{payment_method }
|
|
,REG_ID =#{reg_id }
|
|
,AREA_CD =#{area_cd }
|
|
,BUS_REG_NO =#{bus_reg_no }
|
|
,OFFICE_NO =#{office_no }
|
|
,EMAIL =#{email }
|
|
</update>
|
|
|
|
|
|
|
|
<!-- 상담내역 리스트 -->
|
|
<select id="counselingListCnt" 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 COUNSELINGMGMT T
|
|
WHERE 1=1
|
|
|
|
<if test="grade !=null and grade !=''">
|
|
AND grade = #{grade}
|
|
</if>
|
|
|
|
<if test="counseling_area1 !=null and counseling_area1 !=''">
|
|
AND counseling_area1 = #{counseling_area1}
|
|
</if>
|
|
|
|
<if test="contract_start_date != null and !''.equals(contract_start_date)">
|
|
AND TO_DATE(TO_CHAR(TO_DATE(REG_DATE,'YYYY-MM-DD'),'YYYY-MM-DD'),'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(TO_CHAR(TO_DATE(REG_DATE,'YYYY-MM-DD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{contract_end_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="industry != null and !''.equals(industry)">
|
|
AND industry = #{industry}
|
|
</if>
|
|
|
|
<if test="counsel_user_id != null and !''.equals(counsel_user_id)">
|
|
AND reg_user = #{counsel_user_id}
|
|
</if>
|
|
<if test="client_name != null and !''.equals(client_name)">
|
|
AND client_name LIKE UPPER('%${client_name}%')
|
|
</if>
|
|
) AS T
|
|
WHERE 1=1
|
|
</select>
|
|
|
|
|
|
<!-- //상담내역 리스트 -->
|
|
<select id="counselingList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM(
|
|
SELECT
|
|
ROW_NUMBER() OVER (ORDER BY REG_DATE DESC) AS RNUM
|
|
,OBJID
|
|
,REG_DATE
|
|
,CODE_NAME(TRANS_TYPE) AS TRANS_TYPE_NAME
|
|
,TRANS_TYPE
|
|
,COUNSELING_CATEGORY
|
|
,CODE_NAME(COUNSELING_CATEGORY) AS COUNSELING_CATEGORY_NAME
|
|
,COUNSELING_TYPE
|
|
,CODE_NAME(COUNSELING_TYPE) AS COUNSELING_TYPE_NAME
|
|
,COUNSELING_AREA1
|
|
,CODE_NAME(COUNSELING_AREA1) AS COUNSELING_AREA1_NAME
|
|
,COUNSELING_AREA2
|
|
,CODE_NAME(COUNSELING_AREA2) AS COUNSELING_AREA2_NAME
|
|
,ZIPCODE
|
|
,ADDRESS
|
|
,CLIENT_NAME
|
|
,PHONE
|
|
,CUSTOMER_NAME
|
|
,GRADE
|
|
,CODE_NAME(GRADE) AS GRADE_NAME
|
|
,INDUSTRY
|
|
,CODE_NAME(INDUSTRY) AS INDUSTRY_NAME
|
|
,EQUIPMENT_YN
|
|
,QTY
|
|
,REP_MODEL
|
|
,NOTE
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = REG_USER) AS REG_USER_NAME
|
|
,REG_USER
|
|
,COUNT
|
|
FROM COUNSELINGMGMT
|
|
WHERE 1=1
|
|
<if test="grade !=null and grade !=''">
|
|
AND grade = #{grade}
|
|
</if>
|
|
|
|
<if test="counseling_area1 !=null and counseling_area1 !=''">
|
|
AND counseling_area1 = #{counseling_area1}
|
|
</if>
|
|
|
|
<if test="contract_start_date != null and !''.equals(contract_start_date)">
|
|
AND TO_DATE(TO_CHAR(TO_DATE(REG_DATE,'YYYY-MM-DD'),'YYYY-MM-DD'),'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(TO_CHAR(TO_DATE(REG_DATE,'YYYY-MM-DD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{contract_end_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="industry != null and !''.equals(industry)">
|
|
AND industry = #{industry}
|
|
</if>
|
|
|
|
<if test="counsel_user_id != null and !''.equals(counsel_user_id)">
|
|
AND reg_user = #{counsel_user_id}
|
|
</if>
|
|
<if test="client_name != null and !''.equals(client_name)">
|
|
AND client_name LIKE UPPER('%${client_name}%')
|
|
</if>
|
|
)AS T
|
|
WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END !='' and actionType != 'excel' ">
|
|
<![CDATA[ AND T.RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_STRART!='' and actionType != 'excel' ">
|
|
<![CDATA[ AND T.RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
</select>
|
|
|
|
<select id="getcounselingMgmtInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
REG_DATE
|
|
,TRANS_TYPE
|
|
,COUNSELING_CATEGORY
|
|
,COUNSELING_TYPE
|
|
,COUNSELING_AREA1
|
|
,COUNSELING_AREA2
|
|
,ZIPCODE
|
|
,ADDRESS
|
|
,CLIENT_NAME
|
|
,PHONE
|
|
,CUSTOMER_NAME
|
|
,GRADE
|
|
,INDUSTRY
|
|
,EQUIPMENT_YN
|
|
,QTY
|
|
,REP_MODEL
|
|
,NOTE
|
|
,REG_USER
|
|
,COUNT
|
|
,PARENT_SEQ
|
|
FROM COUNSELINGMGMT A
|
|
WHERE A.OBJID = #{OBJID}
|
|
</select>
|
|
|
|
|
|
<insert id="savecounselingInfo" parameterType="map">
|
|
INSERT INTO COUNSELINGMGMT
|
|
(
|
|
OBJID
|
|
,REG_DATE
|
|
,TRANS_TYPE
|
|
,COUNSELING_CATEGORY
|
|
,COUNSELING_TYPE
|
|
,COUNSELING_AREA1
|
|
,COUNSELING_AREA2
|
|
,ZIPCODE
|
|
,ADDRESS
|
|
,CLIENT_NAME
|
|
,PHONE
|
|
,CUSTOMER_NAME
|
|
,GRADE
|
|
,INDUSTRY
|
|
,EQUIPMENT_YN
|
|
,QTY
|
|
,REP_MODEL
|
|
,NOTE
|
|
,REG_USER
|
|
,COUNT
|
|
,PARENT_SEQ
|
|
)
|
|
VALUES
|
|
(
|
|
#{OBJID}
|
|
,#{reg_date}
|
|
,#{trans_type}
|
|
,#{counseling_category}
|
|
,#{counseling_type}
|
|
,#{counseling_area1}
|
|
,#{counseling_area2}
|
|
,#{zipcode}
|
|
,#{address}
|
|
,#{client_name}
|
|
,#{phone}
|
|
,#{customer_name}
|
|
,#{grade}
|
|
,#{industry}
|
|
,#{equipment_yn}
|
|
,#{qty}
|
|
,#{rep_model}
|
|
,#{note}
|
|
,#{userId}
|
|
,#{count}
|
|
,#{parent_seq}
|
|
)
|
|
ON CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET
|
|
REG_DATE = #{reg_date}
|
|
,TRANS_TYPE = #{trans_type}
|
|
,COUNSELING_CATEGORY = #{counseling_category}
|
|
,COUNSELING_TYPE = #{counseling_type}
|
|
,COUNSELING_AREA1 = #{counseling_area1}
|
|
,COUNSELING_AREA2 = #{counseling_area2}
|
|
,ZIPCODE = #{zipcode}
|
|
,ADDRESS = #{address}
|
|
,CLIENT_NAME = #{client_name}
|
|
,PHONE = #{phone}
|
|
,CUSTOMER_NAME = #{customer_name}
|
|
,GRADE = #{grade}
|
|
,INDUSTRY = #{industry}
|
|
,EQUIPMENT_YN = #{equipment_yn}
|
|
,QTY = #{qty}
|
|
,REP_MODEL = #{rep_model}
|
|
,NOTE = #{note}
|
|
</insert>
|
|
|
|
|
|
<!-- 계약관리 -->
|
|
<select id="estimateListCnt" parameterType="map" resultType="map">
|
|
SELECT
|
|
CEIL(CAST(TOTAL_CNT AS FLOAT)/#{COUNT_PER_PAGE})::numeric::integer as MAX_PAGE_SIZE
|
|
,TOTAL_CNT::integer
|
|
FROM (
|
|
SELECT COUNT(1)::float TOTAL_CNT
|
|
FROM
|
|
( SELECT
|
|
OBJID::VARCHAR
|
|
,CUSTOMER_OBJID
|
|
,CATEGORY_CD
|
|
,PRODUCT_GROUP
|
|
,PRODUCT
|
|
,PRODUCT_STD
|
|
,QTY
|
|
,WARRANTY
|
|
,PRODUCT_PRICE
|
|
,OTHER_PRICE
|
|
,TOTAL_PRICE
|
|
,CONTRACT_USER_ID
|
|
,CONTRACT_DATE
|
|
,CONTRACT_PHONE
|
|
,CONTRACT_EMAIL
|
|
,CONTRACT_OFFICE_NO
|
|
,CONTRACT_FAX_NO
|
|
,EST_RELEASE_DATE
|
|
,REGDATE
|
|
,WRITER
|
|
,ESTIMATE_NO
|
|
,CONTRACT_PRODUCT_PRICE
|
|
,SALE
|
|
,FINAL_TOTAL_PRICE
|
|
,CONTRACT_TYPE
|
|
,NOTE
|
|
,CUS_REQUEST_DATE
|
|
,DELIVERY_PLACE
|
|
,PRODUCT_CODE
|
|
FROM ESTIMATE_MGMT ) AS T
|
|
WHERE 1=1
|
|
<if test="PRODUCT_CATEGORY !=null and PRODUCT_CATEGORY != '' ">
|
|
AND PRODUCT_GROUP = #{PRODUCT_CATEGORY}
|
|
</if>
|
|
|
|
<if test="PRODUCT !=null and PRODUCT != '' ">
|
|
AND PRODUCT = #{PRODUCT}
|
|
</if>
|
|
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(REGDATE,'YYYY') = #{Year}
|
|
</if>
|
|
|
|
<if test="type_cd !=null and type_cd != '' ">
|
|
AND SUPPLY_CODE = #{type_cd}
|
|
</if>
|
|
<if test="customer_cd != null and customer_cd !='' ">
|
|
AND CUSTOMER_OBJID = #{customer_cd}
|
|
</if>
|
|
|
|
<if test="area_cd !=null and area_cd !=''">
|
|
AND AREA_CD = #{area_cd}
|
|
</if>
|
|
|
|
<if test="product_cd !=null and product_cd !=''">
|
|
AND CATEGORY_CD = #{product_cd}
|
|
</if>
|
|
|
|
<if test="contract_start_date != null and !''.equals(contract_start_date)">
|
|
AND TO_DATE(TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYYMMDD'),'YYYY-MM-DD'),'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(TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYYMMDD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{contract_end_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="status_cd != null and !''.equals(status_cd)">
|
|
AND CONTRACT_STATUS_CODE = #{status_cd}
|
|
</if>
|
|
|
|
<if test="product_code != null and !''.equals(product_code)">
|
|
AND PRODUCT = #{product_code}
|
|
</if>
|
|
) AS T
|
|
WHERE 1=1
|
|
</select>
|
|
|
|
<!-- //계약관리 리스트 -->
|
|
<select id="estimateList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM(
|
|
SELECT
|
|
CONTRACT_MGMT.*
|
|
,TO_DATE(TO_CHAR(TO_DATE(CONTRACT_MGMT.EST_RELEASE_DATE ,'YYYYMMDD'),'YYYY-MM-DD'),'YYYY-MM-DD') AS TO_DATE_EST_RELEASE_DATE
|
|
,TO_DATE(TO_CHAR(TO_DATE(CONTRACT_MGMT.CONTRACT_DATE ,'YYYYMMDD'),'YYYY-MM-DD'),'YYYY-MM-DD') AS TO_DATE_CONTRACT_DATE
|
|
,ROW_NUMBER() OVER (ORDER BY ESTIMATE_NO DESC) AS RNUM
|
|
FROM
|
|
( SELECT T.OBJID::VARCHAR
|
|
,T.CUSTOMER_OBJID
|
|
,ESTIMATE_NO
|
|
,(SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID = T.CUSTOMER_OBJID::NUMERIC) AS SUPPLY_NAME
|
|
,(SELECT CODE_NAME(AREA_CD) FROM SUPPLY_MNG AS O WHERE O.OBJID = T.CUSTOMER_OBJID::NUMERIC) AS AREA_CD_NAME
|
|
,(SELECT CHARGE_USER_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID = T.CUSTOMER_OBJID::NUMERIC) AS CHARGE_USER_NAME
|
|
,(SELECT REG_ID FROM SUPPLY_MNG AS O WHERE O.OBJID = T.CUSTOMER_OBJID::NUMERIC) AS REG_ID
|
|
,(SELECT BUS_REG_NO FROM SUPPLY_MNG AS O WHERE O.OBJID = T.CUSTOMER_OBJID::NUMERIC) AS BUS_REG_NO
|
|
,(SELECT REG_NO FROM SUPPLY_MNG AS O WHERE O.OBJID = T.CUSTOMER_OBJID::NUMERIC) AS REG_NO
|
|
,T.CATEGORY_CD
|
|
,T.PRODUCT_GROUP AS PRODUCT_GROUP
|
|
,T.PRODUCT AS PRODUCT
|
|
,CODE_NAME(PRODUCT_GROUP) AS PRODUCT_GROUP_NAME
|
|
,(SELECT PRODUCT_NAME FROM PRODUCT_MGMT AS O WHERE O.OBJID::VARCHAR = T.PRODUCT) AS PRODUCT_NAME
|
|
,QTY
|
|
,WARRANTY
|
|
,CONTRACT_PRODUCT_PRICE AS CONTRACT_PRODUCT_PRICE
|
|
,EST_RELEASE_DATE AS EST_RELEASE_DATE
|
|
,TOTAL_PRICE
|
|
,FINAL_TOTAL_PRICE
|
|
,CONTRACT_DATE
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = T.CONTRACT_USER_ID ) AS CONTRACT_USER_NAME
|
|
,(SELECT COUNT(1) FROM ATTACH_FILE_INFO WHERE TARGET_OBJID = T.OBJID AND DOC_TYPE='estimate01' AND UPPER(STATUS) = 'ACTIVE') AS CU01_CNT
|
|
,T.REGDATE
|
|
,PRODUCT_CODE
|
|
,(SELECT CODE_NAME FROM COMM_CODE AS O WHERE O.CODE_ID = T.STATUS) AS STATUS_NAME
|
|
,STATUS
|
|
FROM ESTIMATE_MGMT AS T) AS CONTRACT_MGMT
|
|
WHERE 1=1
|
|
<if test="PRODUCT_CATEGORY !=null and PRODUCT_CATEGORY != '' ">
|
|
AND PRODUCT_GROUP = #{PRODUCT_CATEGORY}
|
|
</if>
|
|
|
|
<if test="PRODUCT !=null and PRODUCT != '' ">
|
|
AND PRODUCT = #{PRODUCT}
|
|
</if>
|
|
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(REGDATE,'YYYY') = #{Year}
|
|
</if>
|
|
|
|
<if test="type_cd !=null and type_cd != '' ">
|
|
AND SUPPLY_CODE = #{type_cd}
|
|
</if>
|
|
<if test="customer_cd != null and customer_cd !='' ">
|
|
AND CUSTOMER_OBJID = #{customer_cd}
|
|
</if>
|
|
|
|
<if test="area_cd !=null and area_cd !=''">
|
|
AND AREA_CD = #{area_cd}
|
|
</if>
|
|
|
|
<if test="product_cd !=null and product_cd !=''">
|
|
AND CATEGORY_CD = #{product_cd}
|
|
</if>
|
|
|
|
<if test="contract_start_date != null and !''.equals(contract_start_date)">
|
|
AND TO_DATE(TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYYMMDD'),'YYYY-MM-DD'),'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(TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYYMMDD'),'YYYY-MM-DD'),'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{contract_end_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="status_cd != null and !''.equals(status_cd)">
|
|
AND STATUS = #{status_cd}
|
|
</if>
|
|
|
|
<if test="product_code != null and !''.equals(product_code)">
|
|
AND PRODUCT = #{product_code}
|
|
</if>
|
|
)AS T
|
|
WHERE 1=1
|
|
<if test="PAGE_END != null and PAGE_END !='' and actionType != 'excel' ">
|
|
<![CDATA[ AND T.RNUM <= #{PAGE_END} ]]>
|
|
</if>
|
|
<if test="PAGE_START != null and PAGE_STRART!='' and actionType != 'excel' ">
|
|
<![CDATA[ AND T.RNUM >= #{PAGE_START} ]]>
|
|
</if>
|
|
</select>
|
|
|
|
|
|
<select id="getEstimateMgmtInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID::NUMERIC
|
|
,CUSTOMER_OBJID
|
|
,CATEGORY_CD
|
|
,PRODUCT_GROUP
|
|
,PRODUCT
|
|
,PRODUCT_STD
|
|
,QTY
|
|
,WARRANTY
|
|
,PRODUCT_PRICE
|
|
,OTHER_PRICE
|
|
,TOTAL_PRICE
|
|
,CONTRACT_USER_ID
|
|
,CASE WHEN CONTRACT_DATE IS NOT NULL
|
|
THEN TO_CHAR(TO_DATE(CONTRACT_DATE, 'YYYYMMDD'),'YYYY-MM-DD')
|
|
ELSE NULL
|
|
END AS CONTRACT_DATE
|
|
,CONTRACT_PHONE
|
|
,CONTRACT_EMAIL
|
|
,CONTRACT_OFFICE_NO
|
|
,CONTRACT_FAX_NO
|
|
,CASE WHEN EST_RELEASE_DATE IS NOT NULL
|
|
THEN TO_CHAR(TO_DATE(EST_RELEASE_DATE, 'YYYYMMDD'),'YYYY-MM-DD')
|
|
ELSE NULL
|
|
END AS EST_RELEASE_DATE
|
|
,REGDATE
|
|
,WRITER
|
|
,ESTIMATE_NO
|
|
,CONTRACT_PRODUCT_PRICE
|
|
,SALE
|
|
,FINAL_TOTAL_PRICE
|
|
,CONTRACT_TYPE
|
|
,NOTE
|
|
,CASE WHEN CUS_REQUEST_DATE IS NOT NULL
|
|
THEN TO_CHAR(TO_DATE(CUS_REQUEST_DATE, 'YYYYMMDD'),'YYYY-MM-DD')
|
|
ELSE NULL
|
|
END AS CUS_REQUEST_DATE
|
|
,DELIVERY_PLACE
|
|
,PRODUCT_CODE
|
|
FROM ESTIMATE_MGMT A
|
|
WHERE A.OBJID = #{objId}::NUMERIC
|
|
</select>
|
|
|
|
|
|
<update id="saveEstimateMgmtInfo" parameterType="map">
|
|
INSERT INTO ESTIMATE_MGMT
|
|
(
|
|
OBJID
|
|
,CUSTOMER_OBJID
|
|
,CATEGORY_CD
|
|
,PRODUCT_GROUP
|
|
,PRODUCT
|
|
,PRODUCT_STD
|
|
,QTY
|
|
,WARRANTY
|
|
<if test="product_price != null and !''.equals(product_price)">
|
|
,PRODUCT_PRICE
|
|
</if>
|
|
<if test="other_price != null and !''.equals(other_price)">
|
|
,OTHER_PRICE
|
|
</if>
|
|
<if test="total_price != null and !''.equals(total_price)">
|
|
,TOTAL_PRICE
|
|
</if>
|
|
,CONTRACT_USER_ID
|
|
,CONTRACT_DATE
|
|
,CONTRACT_PHONE
|
|
,CONTRACT_EMAIL
|
|
,CONTRACT_OFFICE_NO
|
|
,CONTRACT_FAX_NO
|
|
<if test="est_release_date != null and !''.equals(est_release_date)">
|
|
,EST_RELEASE_DATE
|
|
</if>
|
|
,REGDATE
|
|
,WRITER
|
|
,ESTIMATE_NO
|
|
<if test="contract_product_price != null and !''.equals(contract_product_price)">
|
|
,CONTRACT_PRODUCT_PRICE
|
|
</if>
|
|
,SALE
|
|
,FINAL_TOTAL_PRICE
|
|
,CONTRACT_TYPE
|
|
,NOTE
|
|
<if test="cus_request_date != null and !''.equals(cus_request_date)">
|
|
,CUS_REQUEST_DATE
|
|
</if>
|
|
,DELIVERY_PLACE
|
|
,PRODUCT_CODE
|
|
,STATUS
|
|
)
|
|
VALUES
|
|
(
|
|
#{objId }::NUMERIC
|
|
, #{customer_objid }
|
|
, #{category_cd }
|
|
, #{product_group }
|
|
, #{product }
|
|
, #{product_std }
|
|
, #{qty }
|
|
, #{warranty }
|
|
<if test="product_price != null and !''.equals(product_price)">
|
|
, #{product_price }::NUMERIC
|
|
</if>
|
|
<if test="other_price != null and !''.equals(other_price)">
|
|
, #{other_price }::NUMERIC
|
|
</if>
|
|
<if test="total_price != null and !''.equals(total_price)">
|
|
, #{total_price }::NUMERIC
|
|
</if>
|
|
, #{contract_user_id }
|
|
, #{contract_date }
|
|
, #{contract_phone }
|
|
, #{contract_email }
|
|
, #{contract_office_no}
|
|
, #{contract_fax_no }
|
|
<if test="est_release_date != null and !''.equals(est_release_date)">
|
|
,#{est_release_date}
|
|
</if>
|
|
, NOW()
|
|
, #{userId}
|
|
,(SELECT TO_CHAR(NOW(),'yy')::VARCHAR ||'E-'||LPAD((SELECT NEXTVAL('estimate_mgmt_seq'))::VARCHAR ,4,'0'))
|
|
<if test="contract_product_price != null and !''.equals(contract_product_price)">
|
|
,#{contract_product_price}::NUMERIC
|
|
</if>
|
|
,#{sale}
|
|
,#{final_total_price}::NUMERIC
|
|
,#{contract_type}
|
|
,#{note}
|
|
<if test="cus_request_date != null and !''.equals(cus_request_date)">
|
|
,#{cus_request_date}
|
|
</if>
|
|
,#{delivery_place}
|
|
,#{product_code}
|
|
,'0000922'
|
|
)
|
|
ON CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET
|
|
CUSTOMER_OBJID = #{customer_objid }
|
|
,CATEGORY_CD = #{category_cd }
|
|
,PRODUCT_GROUP = #{product_group }
|
|
,PRODUCT = #{product }
|
|
,PRODUCT_STD = #{product_std }
|
|
,QTY = #{qty }
|
|
,WARRANTY = #{warranty }
|
|
<if test="product_price != null and !''.equals(product_price)">
|
|
,PRODUCT_PRICE = #{product_price }::NUMERIC
|
|
</if>
|
|
<if test="option_price != null and !''.equals(option_price)">
|
|
,OPTION_PRICE = #{option_price }::NUMERIC
|
|
</if>
|
|
<if test="other_price != null and !''.equals(other_price)">
|
|
,OTHER_PRICE = #{other_price }::NUMERIC
|
|
</if>
|
|
<if test="total_price != null and !''.equals(total_price)">
|
|
,TOTAL_PRICE = #{total_price }::NUMERIC
|
|
</if>
|
|
,CONTRACT_USER_ID = #{contract_user_id }
|
|
,CONTRACT_DATE = #{contract_date }
|
|
,CONTRACT_PHONE = #{contract_phone }
|
|
,CONTRACT_EMAIL = #{contract_email }
|
|
,CONTRACT_OFFICE_NO = #{contract_office_no}
|
|
,CONTRACT_FAX_NO = #{contract_fax_no }
|
|
<if test="est_release_date != null and !''.equals(est_release_date)">
|
|
,EST_RELEASE_DATE = #{est_release_date}
|
|
</if>
|
|
<if test="contract_product_price != null and !''.equals(contract_product_price)">
|
|
,CONTRACT_PRODUCT_PRICE = #{contract_product_price}::NUMERIC
|
|
</if>
|
|
,SALE = #{sale}
|
|
,FINAL_TOTAL_PRICE = #{final_total_price}::NUMERIC
|
|
,CONTRACT_TYPE = #{contract_type}
|
|
,NOTE = #{note}
|
|
<if test="cus_request_date != null and !''.equals(cus_request_date)">
|
|
,CUS_REQUEST_DATE = #{cus_request_date}
|
|
</if>
|
|
,DELIVERY_PLACE = #{delivery_place}
|
|
,PRODUCT_CODE = #{product_code}
|
|
</update>
|
|
|
|
|
|
<delete id="deleteEstimateMgmtInfo" parameterType="map">
|
|
DELETE FROM ESTIMATE_MGMT WHERE OBJID = #{objId}::NUMERIC
|
|
</delete>
|
|
|
|
<update id="updateEstimateMgmtInfo" parameterType="map">
|
|
UPDATE ESTIMATE_MGMT
|
|
SET STATUS = '0000923'
|
|
WHERE OBJID = #{objId}::NUMERIC
|
|
</update>
|
|
|
|
|
|
<insert id="createEstimateMgmtInfo" parameterType="map">
|
|
INSERT INTO CONTRACT_MGMT
|
|
(
|
|
OBJID
|
|
,CUSTOMER_OBJID
|
|
,CATEGORY_CD
|
|
,PRODUCT_GROUP
|
|
,PRODUCT
|
|
,PRODUCT_STD
|
|
,QTY
|
|
,WARRANTY
|
|
,PRODUCT_PRICE
|
|
,OTHER_PRICE
|
|
,TOTAL_PRICE
|
|
,CONTRACT_USER_ID
|
|
,CONTRACT_DATE
|
|
,CONTRACT_PHONE
|
|
,CONTRACT_EMAIL
|
|
,CONTRACT_OFFICE_NO
|
|
,CONTRACT_FAX_NO
|
|
,EST_RELEASE_DATE
|
|
,REGDATE
|
|
,WRITER
|
|
,CONTRACT_NO
|
|
,CONTRACT_PRODUCT_PRICE
|
|
,SALE
|
|
,FINAL_TOTAL_PRICE
|
|
,CONTRACT_TYPE
|
|
,NOTE
|
|
,CUS_REQUEST_DATE
|
|
,DELIVERY_PLACE
|
|
,PRODUCT_CODE
|
|
)
|
|
(
|
|
SELECT
|
|
#{contractobjid}::NUMERIC
|
|
,CUSTOMER_OBJID
|
|
,CATEGORY_CD
|
|
,PRODUCT_GROUP
|
|
,PRODUCT
|
|
,PRODUCT_STD
|
|
,QTY
|
|
,WARRANTY
|
|
,PRODUCT_PRICE
|
|
,OTHER_PRICE
|
|
,TOTAL_PRICE
|
|
,CONTRACT_USER_ID
|
|
,CONTRACT_DATE
|
|
,CONTRACT_PHONE
|
|
,CONTRACT_EMAIL
|
|
,CONTRACT_OFFICE_NO
|
|
,CONTRACT_FAX_NO
|
|
,EST_RELEASE_DATE
|
|
,REGDATE
|
|
,WRITER
|
|
,(SELECT TO_CHAR(NOW(),'yy')::VARCHAR ||'C-'||LPAD((SELECT NEXTVAL('contract_mgmt_seq'))::VARCHAR ,4,'0'))
|
|
,CONTRACT_PRODUCT_PRICE
|
|
,SALE
|
|
,FINAL_TOTAL_PRICE
|
|
,CONTRACT_TYPE
|
|
,NOTE
|
|
,CUS_REQUEST_DATE
|
|
,DELIVERY_PLACE
|
|
,PRODUCT_CODE
|
|
FROM ESTIMATE_MGMT
|
|
WHERE OBJID = #{objId}::NUMERIC
|
|
)
|
|
</insert>
|
|
|
|
|
|
|
|
<select id="getProjectCnt" parameterType="map" resultType="map">
|
|
SELECT CONTRACT_OBJID
|
|
FROM PMS_WBS_TASK
|
|
WHERE CONTRACT_OBJID = #{objId}
|
|
LIMIT 1
|
|
</select>
|
|
|
|
|
|
<!-- //계약정보를 받아 프로젝트 최초저장 -->
|
|
<insert id="insertProjectTask" parameterType="map">
|
|
INSERT INTO
|
|
PMS_WBS_TASK (
|
|
OBJID
|
|
,CONTRACT_OBJID
|
|
,TASK_NAME
|
|
,TASK_SEQ
|
|
,UNIT_NO
|
|
,WRITER
|
|
)
|
|
(SELECT HASHTEXT(REPLACE(GEN_RANDOM_UUID()::VARCHAR,'-',''))::VARCHAR
|
|
,#{OBJID}
|
|
,T.TASK_NAME
|
|
,T.TASK_SEQ
|
|
,T.UNIT_NO
|
|
,#{writer}
|
|
FROM PMS_WBS_TASK_STANDARD AS T LEFT JOIN PMS_WBS_TEMPLATE AS T1
|
|
ON T.PARENT_OBJID = T1.OBJID
|
|
WHERE T1.TITLE=#{mechanical_type}
|
|
<!-- WHERE T1.OBJID=#{mechanical_type} -->
|
|
<!-- WHERE T1.PRODUCT_OBJID=#{product} -->
|
|
)
|
|
</insert>
|
|
|
|
<!-- //프로젝트 생성시 setupwbs 최초생성 -->
|
|
<insert id="insertProjectSetupTask" parameterType="map">
|
|
INSERT INTO
|
|
SETUP_WBS_TASK
|
|
(
|
|
OBJID
|
|
,CONTRACT_OBJID
|
|
,PARENT_OBJID
|
|
,TASK_CATEGORY
|
|
,TASK_NAME
|
|
,STANDARD_OBJID
|
|
,TASK_SEQ
|
|
,PROJ_STEP
|
|
)
|
|
(SELECT
|
|
HASHTEXT(REPLACE(GEN_RANDOM_UUID()::VARCHAR,'-',''))::VARCHAR
|
|
,#{OBJID}
|
|
,T.PARENT_OBJID
|
|
,T.TASK_CATEGORY
|
|
,T.TASK_NAME
|
|
,T.OBJID
|
|
,T.TASK_SEQ
|
|
,T.PROJ_STEP
|
|
FROM
|
|
SETUP_WBS_TASK_STANDARD AS T
|
|
)
|
|
</insert>
|
|
|
|
<select id="getContractDashBoard_new" parameterType="map" resultType="map">
|
|
SELECT (CASE WHEN GROUPING(cc.code_id) = 1 THEN '소계' ELSE cc.CODE_ID END) AS CODE_ID
|
|
,CC.CODE_NAME
|
|
,SUM(CM.PRICE::NUMERIC) AS TOTAL_PRICE
|
|
,SUM(CM.QTY ::NUMERIC) AS TOTAL_CM
|
|
,SUM(CASE WHEN CM.MM = '01' THEN CM.PRICE::NUMERIC ELSE NULL END) AS M01_PRICE
|
|
,SUM(CASE WHEN CM.MM = '01' THEN CM.QTY ::NUMERIC ELSE NULL END) AS M01_CM
|
|
,SUM(CASE WHEN RM.MM = '01' THEN RM.QTY ::NUMERIC ELSE NULL END) AS M01_RM
|
|
,SUM(CASE WHEN CM.MM = '02' THEN CM.PRICE::NUMERIC ELSE NULL END) AS M02_PRICE
|
|
,SUM(CASE WHEN CM.MM = '02' THEN CM.QTY ::NUMERIC ELSE NULL END) AS M02_CM
|
|
,SUM(CASE WHEN RM.MM = '02' THEN RM.QTY ::NUMERIC ELSE NULL END) AS M02_RM
|
|
,SUM(CASE WHEN CM.MM = '03' THEN CM.PRICE::NUMERIC ELSE NULL END) AS M03_PRICE
|
|
,SUM(CASE WHEN CM.MM = '03' THEN CM.QTY ::NUMERIC ELSE NULL END) AS M03_CM
|
|
,SUM(CASE WHEN RM.MM = '03' THEN RM.QTY ::NUMERIC ELSE NULL END) AS M03_RM
|
|
,SUM(CASE WHEN CM.MM = '04' THEN CM.PRICE::NUMERIC ELSE NULL END) AS M04_PRICE
|
|
,SUM(CASE WHEN CM.MM = '04' THEN CM.QTY ::NUMERIC ELSE NULL END) AS M04_CM
|
|
,SUM(CASE WHEN RM.MM = '04' THEN RM.QTY ::NUMERIC ELSE NULL END) AS M04_RM
|
|
,SUM(CASE WHEN CM.MM = '05' THEN CM.PRICE::NUMERIC ELSE NULL END) AS M05_PRICE
|
|
,SUM(CASE WHEN CM.MM = '05' THEN CM.QTY ::NUMERIC ELSE NULL END) AS M05_CM
|
|
,SUM(CASE WHEN RM.MM = '05' THEN RM.QTY ::NUMERIC ELSE NULL END) AS M05_RM
|
|
,SUM(CASE WHEN CM.MM = '06' THEN CM.PRICE::NUMERIC ELSE NULL END) AS M06_PRICE
|
|
,SUM(CASE WHEN CM.MM = '06' THEN CM.QTY ::NUMERIC ELSE NULL END) AS M06_CM
|
|
,SUM(CASE WHEN RM.MM = '06' THEN RM.QTY ::NUMERIC ELSE NULL END) AS M06_RM
|
|
,SUM(CASE WHEN CM.MM = '07' THEN CM.PRICE::NUMERIC ELSE NULL END) AS M07_PRICE
|
|
,SUM(CASE WHEN CM.MM = '07' THEN CM.QTY ::NUMERIC ELSE NULL END) AS M07_CM
|
|
,SUM(CASE WHEN RM.MM = '07' THEN RM.QTY ::NUMERIC ELSE NULL END) AS M07_RM
|
|
,SUM(CASE WHEN CM.MM = '08' THEN CM.PRICE::NUMERIC ELSE NULL END) AS M08_PRICE
|
|
,SUM(CASE WHEN CM.MM = '08' THEN CM.QTY ::NUMERIC ELSE NULL END) AS M08_CM
|
|
,SUM(CASE WHEN RM.MM = '08' THEN RM.QTY ::NUMERIC ELSE NULL END) AS M08_RM
|
|
,SUM(CASE WHEN CM.MM = '09' THEN CM.PRICE::NUMERIC ELSE NULL END) AS M09_PRICE
|
|
,SUM(CASE WHEN CM.MM = '09' THEN CM.QTY ::NUMERIC ELSE NULL END) AS M09_CM
|
|
,SUM(CASE WHEN RM.MM = '09' THEN RM.QTY ::NUMERIC ELSE NULL END) AS M09_RM
|
|
,SUM(CASE WHEN CM.MM = '10' THEN CM.PRICE::NUMERIC ELSE NULL END) AS M10_PRICE
|
|
,SUM(CASE WHEN CM.MM = '10' THEN CM.QTY ::NUMERIC ELSE NULL END) AS M10_CM
|
|
,SUM(CASE WHEN RM.MM = '10' THEN RM.QTY ::NUMERIC ELSE NULL END) AS M10_RM
|
|
,SUM(CASE WHEN CM.MM = '11' THEN CM.PRICE::NUMERIC ELSE NULL END) AS M11_PRICE
|
|
,SUM(CASE WHEN CM.MM = '11' THEN CM.QTY ::NUMERIC ELSE NULL END) AS M11_CM
|
|
,SUM(CASE WHEN RM.MM = '11' THEN RM.QTY ::NUMERIC ELSE NULL END) AS M11_RM
|
|
,SUM(CASE WHEN CM.MM = '12' THEN CM.PRICE::NUMERIC ELSE NULL END) AS M12_PRICE
|
|
,SUM(CASE WHEN CM.MM = '12' THEN CM.QTY ::NUMERIC ELSE NULL END) AS M12_CM
|
|
,SUM(CASE WHEN RM.MM = '12' THEN RM.QTY ::NUMERIC ELSE NULL END) AS M12_RM
|
|
FROM COMM_CODE CC
|
|
LEFT OUTER JOIN ( SELECT PRODUCT
|
|
,TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYY-MM-DD'),'MM') AS MM
|
|
<!-- ,FACILITY_QTY AS QTY -->
|
|
,1 AS QTY
|
|
,CONTRACT_PRICE AS PRICE
|
|
FROM CONTRACT_MGMT T
|
|
WHERE 1=1
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYY-MM-DD'),'YYYY') = #{Year}
|
|
</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>
|
|
) AS CM
|
|
ON CC.CODE_ID = CM.PRODUCT
|
|
LEFT OUTER JOIN ( SELECT RM1.PRODUCT
|
|
,TO_CHAR(TO_DATE(RM1.RELEASE_DATE,'YYYY-MM-DD'),'MM') AS MM
|
|
<!-- ,CM1.FACILITY_QTY AS QTY -->
|
|
,1 AS QTY
|
|
<!-- FROM CONTRACT_MGMT CM1, RELEASE_MGMT RM1 -->
|
|
|
|
FROM CONTRACT_MGMT CM1,(SELECT RM.*,PM.CONTRACT_OBJID FROM PROJECT_MGMT AS PM RIGHT JOIN RELEASE_MGMT AS RM
|
|
ON PM.OBJID = RM.PARENT_OBJID) AS RM1
|
|
|
|
WHERE CM1.OBJID = RM1.CONTRACT_OBJID
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(TO_DATE(RM1.RELEASE_DATE,'YYYY-MM-DD'),'YYYY') = #{Year}
|
|
</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>
|
|
) AS RM
|
|
ON CC.CODE_ID = RM.PRODUCT
|
|
WHERE CC.PARENT_CODE_ID = '0000001'
|
|
AND (CM.PRODUCT IS NOT NULL OR RM.PRODUCT IS NOT NULL)
|
|
<if test="product !=null and product != '' ">
|
|
AND CC.CODE_ID = #{product}
|
|
</if>
|
|
GROUP BY ROLLUP ( (CC.CODE_ID, CC.CODE_NAME) )
|
|
</select>
|
|
|
|
<select id="getContractDashBoard" parameterType="map" resultType="map">
|
|
WITH WITH_BASE_DATA AS (
|
|
SELECT *
|
|
, CAST(DATE_TRUNC('MONTH', TO_DATE(CD.YEAR_MONTH2, 'YYYY-MM')) AS DATE) AS MONTH_FIRST_DAY
|
|
, (DATE_TRUNC('MONTH', TO_DATE(CD.YEAR_MONTH2, 'YYYY-MM')) + INTERVAL '1 MONTH - 1 DAY')::DATE AS MONTH_LAST_DAY
|
|
FROM
|
|
(
|
|
(SELECT
|
|
OBJID
|
|
, CODE_ID
|
|
, CODE_NAME
|
|
FROM COMM_CODE CC
|
|
WHERE PARENT_CODE_ID = '0000001'
|
|
|
|
) CD
|
|
INNER JOIN (SELECT #{Year}|| RIGHT('0' || LINE_VALUE, 2) YEAR_MONTH
|
|
,#{Year}|| '-'||RIGHT('0' || LINE_VALUE, 2) YEAR_MONTH2
|
|
,LINE_VALUE MM
|
|
FROM GENERATE_SERIES(1,12) AS TBL(LINE_VALUE)) YEAR_MONTH
|
|
ON 1=1
|
|
) CD
|
|
LEFT OUTER JOIN(
|
|
SELECT
|
|
CM.PRODUCT
|
|
,TO_CHAR(TO_DATE(CM.CONTRACT_DATE,'YYYY-MM-DD'),'YYYYMM') AS CONTRACT_YEAR_MONTH
|
|
,SUM(COALESCE(CM.CONTRACT_PRICE::FLOAT,0)) CONTRACT_COST
|
|
,COUNT(1) CONTRACT_CNT
|
|
,SUM(CM.QTY) QTY
|
|
FROM
|
|
(SELECT CM.PRODUCT
|
|
,CM.CONTRACT_DATE
|
|
,(CASE WHEN NVL(CM.CONTRACT_PRICE, '0') != '0' THEN NVL(CM.CONTRACT_PRICE, '0')
|
|
WHEN CONTRACT_CURRENCY = '0001566' AND NVL(CM.CONTRACT_PRICE_CURRENCY, '0') != '0' THEN NVL(CM.CONTRACT_PRICE_CURRENCY, '0')
|
|
ELSE NVL(CM.CONTRACT_PRICE, '0')
|
|
END) CONTRACT_PRICE
|
|
,( SELECT COUNT(1) QTY
|
|
FROM PROJECT_MGMT AS PM
|
|
RIGHT JOIN RELEASE_MGMT AS RM
|
|
ON PM.OBJID = RM.PARENT_OBJID
|
|
WHERE CM.OBJID = PM.CONTRACT_OBJID
|
|
) QTY
|
|
FROM CONTRACT_MGMT CM
|
|
LEFT OUTER JOIN SUPPLY_MNG SM
|
|
ON CM.CUSTOMER_OBJID = SM.OBJID::VARCHAR
|
|
WHERE CM.CONTRACT_DATE IS NOT NULL
|
|
AND CM.CONTRACT_RESULT = '0000964'
|
|
<if test="Year !=null and Year != '' ">
|
|
<!-- AND TO_CHAR(CM.REGDATE,'YYYY') = #{Year} -->
|
|
AND TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYY-MM-DD'),'YYYY') = #{Year}
|
|
</if>
|
|
<if test="customer_objid !=null and customer_objid != '' ">
|
|
AND UPPER(CUSTOMER_OBJID) LIKE UPPER('%${customer_objid}%')
|
|
</if>
|
|
<if test="producer_cd != null and producer_cd !='' ">
|
|
AND PRODUCER_CD = #{producer_cd}
|
|
</if>
|
|
<if test="category_cd !=null and category_cd != '' ">
|
|
AND CATEGORY_CD = #{category_cd}
|
|
</if>
|
|
<if test="product !=null and product != '' ">
|
|
AND CM.PRODUCT = #{product}
|
|
</if>
|
|
) CM
|
|
GROUP BY CM.PRODUCT
|
|
,TO_CHAR(TO_DATE(CM.CONTRACT_DATE,'YYYY-MM-DD'),'YYYYMM')
|
|
) CT
|
|
ON CD.CODE_ID = CT.PRODUCT
|
|
AND CD.YEAR_MONTH = CT.CONTRACT_YEAR_MONTH
|
|
<!-- 240822 아래쿼리는 문제 있어서 위 서브쿼리로 이동(QTY 출고수량)
|
|
LEFT OUTER JOIN(
|
|
SELECT RM1.PRODUCT
|
|
,TO_CHAR(TO_DATE(RM1.RELEASE_DATE,'YYYY-MM-DD'),'MM') AS RELEASE_YEAR_MONTH
|
|
,1 AS QTY
|
|
FROM CONTRACT_MGMT CM1,(SELECT RM.*,PM.CONTRACT_OBJID FROM PROJECT_MGMT AS PM RIGHT JOIN RELEASE_MGMT AS RM
|
|
ON PM.OBJID = RM.PARENT_OBJID) AS RM1
|
|
WHERE CM1.OBJID = RM1.CONTRACT_OBJID
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(TO_DATE(RM1.RELEASE_DATE,'YYYY-MM-DD'),'YYYY') = #{Year}
|
|
</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 RM1.PRODUCT = #{product}
|
|
</if>
|
|
) AS RM
|
|
ON CD.CODE_ID = RM.PRODUCT
|
|
AND CD.YEAR_MONTH = RM.RELEASE_YEAR_MONTH
|
|
-->
|
|
)
|
|
SELECT
|
|
'1' ORDER_NO
|
|
,YEAR_MONTH
|
|
,MM
|
|
,SUM(COALESCE(CONTRACT_CNT, 0)) CONTRACT_CNT_YEAR
|
|
,SUM(COALESCE(CONTRACT_COST, 0)) CONTRACT_COST_YEAR_ORG
|
|
,SUM(COALESCE(CONTRACT_COST, 0))/100000000 CONTRACT_COST_YEAR
|
|
,SUM(COALESCE(QTY, 0)) RELEASE_CNT_YEAR
|
|
<foreach collection="moldKindCdList" item="obj">
|
|
,SUM(CASE WHEN CODE_ID = '${obj.CODE}' THEN CONTRACT_CNT ELSE 0 END) CONTRACT_CNT_MONTH_${obj.CODE}
|
|
,SUM(CASE WHEN CODE_ID = '${obj.CODE}' THEN CONTRACT_COST ELSE 0 END) CONTRACT_COST_MONTH_${obj.CODE}
|
|
</foreach>
|
|
,#{Year} AS TARGET_YEAR
|
|
FROM WITH_BASE_DATA
|
|
GROUP BY ROLLUP (
|
|
(YEAR_MONTH, MM) )
|
|
ORDER BY YEAR_MONTH
|
|
</select>
|
|
|
|
<select id="batbat_barChart" parameterType="map" resultType="map">
|
|
SELECT country, gdp
|
|
FROM test_chart
|
|
WHERE chart_type = 'bar'
|
|
ORDER BY country
|
|
</select>
|
|
<select id="batbat_lineChart" parameterType="map" resultType="map">
|
|
SELECT year, annual, five
|
|
FROM test_chart
|
|
WHERE chart_type = 'line'
|
|
ORDER BY year
|
|
</select>
|
|
|
|
<!-- 영업목표 -->
|
|
<select id="getYearGoalInfo" parameterType="map" resultType="map">
|
|
WITH W_CM AS (
|
|
SELECT
|
|
AREA_CD,
|
|
<!-- (SUM(COALESCE( -->
|
|
(CASE WHEN NVL(CM.CONTRACT_PRICE, '0') != '0' THEN NVL(CM.CONTRACT_PRICE, '0')
|
|
WHEN CONTRACT_CURRENCY = '0001566' AND NVL(CM.CONTRACT_PRICE_CURRENCY, '0') != '0' THEN NVL(CM.CONTRACT_PRICE_CURRENCY, '0')
|
|
ELSE NVL(CM.CONTRACT_PRICE, '0')
|
|
END) CONTRACT_PRICE
|
|
<!-- ::FLOAT, 0))) CONTRACT_PRICE -->
|
|
FROM CONTRACT_MGMT CM
|
|
WHERE CM.CONTRACT_RESULT = '0000964'
|
|
AND TO_CHAR(TO_DATE(CONTRACT_DATE, 'YYYY-MM-DD'), 'YYYY') = #{Year}
|
|
)
|
|
SELECT
|
|
*
|
|
,CASE WHEN CONTRACT_CNT_YEAR_ALL IS NULL OR CONTRACT_CNT_YEAR_ALL = 0 THEN NULL
|
|
ELSE CONTRACT_CNT_YEAR / CONTRACT_CNT_YEAR_ALL * 100 END AS CONTRACT_CNT_YEAR_RATE
|
|
FROM(
|
|
SELECT
|
|
OBJID YEAR_GOAL_OBJID
|
|
,YEAR
|
|
,PRICE::integer
|
|
,WRITER
|
|
,REGDATE
|
|
,(SELECT count(1) FROM CONTRACT_MGMT WHERE TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYY-MM-DD'),'YYYY') = #{Year} ) AS CONTRACT_CNT_YEAR_ALL
|
|
,(SELECT count(1) FROM W_CM CM ) AS CONTRACT_CNT_YEAR
|
|
,(SELECT count(1) FROM W_CM CM WHERE AREA_CD = '0001220' ) AS CONTRACT_CNT_YEAR_IN
|
|
,(SELECT count(1) FROM W_CM CM WHERE AREA_CD = '0001221' ) AS CONTRACT_CNT_YEAR_OUT
|
|
,coalesce((SELECT (SUM(coalesce(NVL(CM.CONTRACT_PRICE, '0')::FLOAT, 0)))/100000000 FROM W_CM CM )::integer,0) AS CONTRACT_COST_YEAR
|
|
<!-- ,(SELECT ROUND(SUM(CASE WHEN CONTRACT_PRICE IS NULL OR CONTRACT_PRICE = '' THEN '0' ELSE CONTRACT_PRICE::INTEGER END) / 100000000.0, 1) FROM CONTRACT_MGMT WHERE TO_CHAR(CONTRACT_DATE::DATE, 'YYYY') = #{Year}) AS CONTRACT_COST_YEAR-->
|
|
,CASE
|
|
WHEN PRICE IS NULL OR PRICE::integer = 0
|
|
THEN 0
|
|
ELSE coalesce((((select (SUM(coalesce(NVL(CM.CONTRACT_PRICE, '0')::FLOAT, 0)))/100000000 FROM W_CM CM) / price::integer) * 100),0)
|
|
END AS GOAL_RATE
|
|
FROM
|
|
PMS_PJT_YEAR_GOAL FMB
|
|
WHERE 1=1
|
|
<!--
|
|
AND OBJID = #{OBJID}
|
|
-->
|
|
<if test="YEAR_GOAL_OBJID != null and !''.equals(YEAR_GOAL_OBJID)">
|
|
AND OBJID = #{YEAR_GOAL_OBJID}
|
|
</if>
|
|
<if test="Year != null and !''.equals(Year)">
|
|
AND YEAR = #{Year}
|
|
</if>
|
|
<if test="operation_division_code != null and !''.equals(operation_division_code)">
|
|
AND OPERATION_DIVISION_CODE = #{operation_division_code}
|
|
</if>
|
|
) T
|
|
</select>
|
|
|
|
<update id="saveYearGoalInfo" parameterType="map">
|
|
INSERT INTO
|
|
PMS_PJT_YEAR_GOAL
|
|
(
|
|
OBJID
|
|
,YEAR
|
|
,OPERATION_DIVISION_CODE
|
|
,PRICE
|
|
,WRITER
|
|
,REGDATE
|
|
)VALUES(
|
|
#{YEAR_GOAL_OBJID}
|
|
,#{Year}
|
|
,#{operation_division_code}
|
|
,#{PRICE}
|
|
,#{WRITER}
|
|
,NOW()
|
|
)ON CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET
|
|
<!--
|
|
YEAR = #{year}
|
|
,OPERATION_DIVISION_CODE = #{operation_division_code}
|
|
-->
|
|
PRICE = #{PRICE}
|
|
</update>
|
|
|
|
<delete id="deleteYearGoalInfo" parameterType="map">
|
|
DELETE FROM PMS_PJT_YEAR_GOAL WHERE 1=1
|
|
<if test="checkArr != null and checkArr !=''">
|
|
<![CDATA[ AND 0 < POSITION(PARENT_OBJID::TEXT || ',' IN #{checkArr}||',') ]]>
|
|
</if>
|
|
</delete>
|
|
|
|
<select id="getContractCNTBySupply" parameterType="map" resultType="map">
|
|
SELECT
|
|
ASM.OBJID
|
|
,ASM.SUPPLY_NAME
|
|
,S1.*
|
|
FROM
|
|
SUPPLY_MNG ASM
|
|
,(
|
|
SELECT
|
|
CM.CUSTOMER_OBJID
|
|
,CODE_NAME(CM.CUSTOMER_OBJID)
|
|
,count(1) AS TOTAL_SUPPLY_UNIT_CNT
|
|
FROM
|
|
CONTRACT_MGMT CM
|
|
WHERE CM.CONTRACT_RESULT = '0000964'
|
|
AND TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYY-MM-DD'),'YYYY') = #{Year}
|
|
GROUP BY CM.CUSTOMER_OBJID
|
|
) AS S1
|
|
WHERE 1=1
|
|
AND ASM.OBJID::VARCHAR = S1.CUSTOMER_OBJID
|
|
ORDER BY ASM.SUPPLY_NAME
|
|
</select>
|
|
|
|
|
|
<select id="getProjectListBycontractObjid" parameterType="map" resultType="map">
|
|
SELECT
|
|
PROJECT_NAME
|
|
FROM
|
|
PROJECT_MGMT
|
|
WHERE CONTRACT_OBJID = #{objId}
|
|
limit 1
|
|
</select>
|
|
|
|
<select id="overlapOrder" parameterType="map" resultType="map">
|
|
SELECT
|
|
T.*
|
|
FROM
|
|
PROJECT_MGMT T
|
|
WHERE 1=1
|
|
AND PROJECT_NO LIKE UPPER('${target_project_no_direct}%')
|
|
AND OVERHAUL_ORDER = #{overhaul_order}
|
|
</select>
|
|
|
|
<select id="projectCount" parameterType="map" resultType="map">
|
|
WITH W_BASE AS (
|
|
SELECT PM.*
|
|
,(SELECT CASE
|
|
WHEN COUNT(CASE WHEN PARENT_OBJID IS NOT NULL AND PARENT_OBJID != '' THEN 1 END) = 0 THEN 0
|
|
ELSE ROUND((
|
|
COUNT(CASE WHEN SETUP_ACT_END != '' AND SETUP_ACT_END IS NOT NULL AND PARENT_OBJID IS NOT NULL AND PARENT_OBJID != '' THEN 1 END)::FLOAT
|
|
/
|
|
COUNT(CASE WHEN PARENT_OBJID IS NOT NULL AND PARENT_OBJID != '' THEN 1 END)
|
|
* 100
|
|
)::numeric, 1)
|
|
END AS SETUP_RATETOTAL
|
|
FROM SETUP_WBS_TASK T
|
|
WHERE T.CONTRACT_OBJID = PM.OBJID
|
|
) SETUP_RATETOTAL
|
|
FROM PROJECT_MGMT PM
|
|
LEFT OUTER JOIN CONTRACT_MGMT CM
|
|
ON CM.OBJID = PM.CONTRACT_OBJID
|
|
WHERE 1=1
|
|
<!--
|
|
AND TO_CHAR(CM.REGDATE, 'YYYY') = TO_CHAR(CURRENT_DATE, 'YYYY')
|
|
WHERE TO_CHAR(REGDATE, 'YYYY') = #{Year}
|
|
-->
|
|
<if test="SEARCH_PROJECT_YEAR != null and SEARCH_PROJECT_YEAR !=''">
|
|
<!--
|
|
AND TO_CHAR(TO_DATE(CM.CONTRACT_DATE, 'YYYY'), 'YYYY') = #{SEARCH_PROJECT_YEAR}
|
|
-->
|
|
AND #{SEARCH_PROJECT_YEAR} BETWEEN
|
|
(SELECT <!-- COALESCE( -->
|
|
LEAST(
|
|
MIN(TO_CHAR(TO_DATE(NULLIF(PURCHASE_PLAN_START, ''), 'YYYY'), 'YYYY')),
|
|
MIN(TO_CHAR(TO_DATE(NULLIF(PRODUCE_PLAN_START , ''), 'YYYY'), 'YYYY')),
|
|
MIN(TO_CHAR(TO_DATE(NULLIF(DESIGN_PLAN_START , ''), 'YYYY'), 'YYYY')),
|
|
(SELECT
|
|
MIN(TO_CHAR(TO_DATE(NULLIF(SETUP_PLAN_START , ''), 'YYYY'), 'YYYY'))
|
|
FROM SETUP_WBS_TASK AS S WHERE S.CONTRACT_OBJID=PM.OBJID)
|
|
)<!-- , TO_CHAR(TO_DATE(CM.CONTRACT_DATE, 'YYYY'), 'YYYY')) -->
|
|
FROM PMS_WBS_TASK O
|
|
WHERE O.CONTRACT_OBJID=PM.OBJID)
|
|
AND (SELECT <!-- COALESCE( -->
|
|
GREATEST(
|
|
MAX(TO_CHAR(TO_DATE(NULLIF(PURCHASE_PLAN_END, ''), 'YYYY'), 'YYYY')),
|
|
MAX(TO_CHAR(TO_DATE(NULLIF(PRODUCE_PLAN_END , ''), 'YYYY'), 'YYYY')),
|
|
MAX(TO_CHAR(TO_DATE(NULLIF(DESIGN_PLAN_END , ''), 'YYYY'), 'YYYY')),
|
|
(SELECT
|
|
MAX(TO_CHAR(TO_DATE(NULLIF(SETUP_PLAN_END , ''), 'YYYY'), 'YYYY'))
|
|
FROM SETUP_WBS_TASK AS S WHERE S.CONTRACT_OBJID=PM.OBJID)
|
|
)<!-- , TO_CHAR(TO_DATE(CM.DUE_DATE, 'YYYY'), 'YYYY')) -->
|
|
FROM PMS_WBS_TASK O
|
|
WHERE O.CONTRACT_OBJID=PM.OBJID)
|
|
</if>
|
|
AND CM.CONTRACT_RESULT = '0000964'
|
|
),
|
|
NOPLAN_COUNT AS (
|
|
SELECT COUNT(*) AS NOPLAN_CNT
|
|
,STRING_AGG(PM.OBJID::TEXT,',') AS END_OBJIDS
|
|
FROM W_BASE PM
|
|
WHERE 1=1
|
|
AND (NOT EXISTS(
|
|
SELECT 'E'
|
|
FROM PMS_WBS_TASK AS O
|
|
WHERE O.CONTRACT_OBJID=PM.OBJID)
|
|
AND NOT EXISTS(
|
|
SELECT 'E'
|
|
FROM SETUP_WBS_TASK AS O
|
|
WHERE O.CONTRACT_OBJID=PM.OBJID)
|
|
OR (NOT EXISTS(
|
|
SELECT 'E'
|
|
FROM PMS_WBS_TASK AS O
|
|
WHERE O.CONTRACT_OBJID=PM.OBJID
|
|
AND
|
|
(
|
|
( O.DESIGN_PLAN_START IS NOT NULL
|
|
AND O.DESIGN_PLAN_START!=''
|
|
AND O.DESIGN_PLAN_END IS NOT NULL
|
|
AND O.DESIGN_PLAN_END!=''
|
|
)
|
|
OR ( O.PURCHASE_PLAN_START IS NOT NULL
|
|
AND O.PURCHASE_PLAN_START!=''
|
|
AND O.PURCHASE_PLAN_END IS NOT NULL
|
|
AND O.PURCHASE_PLAN_END!=''
|
|
)
|
|
OR ( O.PRODUCE_PLAN_START IS NOT NULL
|
|
AND O.PRODUCE_PLAN_START!=''
|
|
AND O.PRODUCE_PLAN_END IS NOT NULL
|
|
AND O.PRODUCE_PLAN_END!=''
|
|
)
|
|
)
|
|
)
|
|
AND NOT EXISTS(
|
|
SELECT 'E'
|
|
FROM SETUP_WBS_TASK AS O
|
|
WHERE O.CONTRACT_OBJID=PM.OBJID
|
|
AND ( O.SETUP_PLAN_START IS NOT NULL
|
|
AND O.SETUP_PLAN_START!=''
|
|
AND O.SETUP_PLAN_END IS NOT NULL
|
|
AND O.SETUP_PLAN_END!=''
|
|
)
|
|
)
|
|
)
|
|
)
|
|
),
|
|
END_COUNT AS (
|
|
SELECT COUNT(*) AS END_CNT
|
|
,STRING_AGG(PM.OBJID::TEXT,',') AS END_OBJIDS
|
|
FROM W_BASE PM
|
|
WHERE 1=1
|
|
<!--
|
|
AND SETUP_ACT_END = #{Year}
|
|
AND SETUP_ACT_END = TO_CHAR(CURRENT_DATE, 'YYYY')
|
|
-->
|
|
AND SETUP_RATETOTAL >= 100
|
|
),
|
|
PROJECT_STATS AS (
|
|
SELECT COUNT(*) AS TOTAL_ORDERS
|
|
,STRING_AGG(PM.OBJID::TEXT,',') AS STATUS_OBJIDS
|
|
FROM W_BASE PM
|
|
WHERE 1=1
|
|
<!--
|
|
WHERE TO_CHAR(TO_DATE(CONTRACT_DATE, 'YYYY'), 'YYYY') = TO_CHAR(CURRENT_DATE, 'YYYY')
|
|
WHERE TO_CHAR(REGDATE, 'YYYY') = #{Year}
|
|
-->
|
|
),
|
|
ING_COUNT AS (
|
|
SELECT COUNT(*) AS ING_CNT
|
|
,STRING_AGG(PM.OBJID::TEXT,',') AS ING_OBJIDS
|
|
FROM W_BASE PM
|
|
LEFT OUTER JOIN (
|
|
SELECT
|
|
CONTRACT_OBJID
|
|
,COUNT(CASE WHEN DESIGN_ACT_START IS NOT NULL AND DESIGN_ACT_START!='' THEN 1 END) AS DESIGN_START_COUNT
|
|
,MIN(DESIGN_ACT_START) DESIGN_ACT_START_MIN
|
|
FROM
|
|
PMS_WBS_TASK
|
|
GROUP BY
|
|
CONTRACT_OBJID
|
|
) WT ON WT.CONTRACT_OBJID = PM.OBJID
|
|
WHERE 1=1
|
|
AND SETUP_RATETOTAL < '100'
|
|
<!--
|
|
AND WT.DESIGN_START_COUNT > 0
|
|
AND WT.DESIGN_ACT_START_MIN <= TO_CHAR(NOW(), 'YYYY-MM-DD')
|
|
-->
|
|
AND NOT EXISTS(
|
|
SELECT 'E'
|
|
FROM PMS_WBS_TASK AS O
|
|
WHERE O.CONTRACT_OBJID=PM.OBJID
|
|
<!--
|
|
AND TO_DATE(O.DESIGN_PLAN_START,'YYYY-MM-DD') <![CDATA[ > ]]> TO_DATE(TO_CHAR(NOW(),'YYYY-MM-DD'),'YYYY-MM-DD')
|
|
-->
|
|
AND
|
|
(
|
|
( TO_DATE(O.DESIGN_PLAN_END,'YYYY-MM-DD') <![CDATA[ < ]]> TO_DATE(TO_CHAR(NOW(),'YYYY-MM-DD'),'YYYY-MM-DD')
|
|
AND (O.DESIGN_ACT_END='' OR O.DESIGN_ACT_END IS NULL)
|
|
AND O.DESIGN_PLAN_END IS NOT NULL
|
|
AND O.DESIGN_PLAN_END!=''
|
|
)
|
|
OR ( TO_DATE(O.PURCHASE_PLAN_END,'YYYY-MM-DD') <![CDATA[ < ]]> TO_DATE(TO_CHAR(NOW(),'YYYY-MM-DD'),'YYYY-MM-DD')
|
|
AND (O.PURCHASE_ACT_END='' OR O.PURCHASE_ACT_END IS NULL)
|
|
AND O.PURCHASE_PLAN_END IS NOT NULL
|
|
AND O.PURCHASE_PLAN_END!=''
|
|
)
|
|
OR ( TO_DATE(O.PRODUCE_PLAN_END,'YYYY-MM-DD') <![CDATA[ < ]]> TO_DATE(TO_CHAR(NOW(),'YYYY-MM-DD'),'YYYY-MM-DD')
|
|
AND (O.PRODUCE_ACT_END='' OR O.PRODUCE_ACT_END IS NULL)
|
|
AND O.PRODUCE_PLAN_END IS NOT NULL
|
|
AND O.PRODUCE_PLAN_END!=''
|
|
)
|
|
)
|
|
)
|
|
AND NOT EXISTS(
|
|
SELECT 'E'
|
|
FROM SETUP_WBS_TASK AS O
|
|
WHERE O.CONTRACT_OBJID=PM.OBJID
|
|
AND ( TO_DATE(O.SETUP_PLAN_END,'YYYY-MM-DD') <![CDATA[ < ]]> TO_DATE(TO_CHAR(NOW(),'YYYY-MM-DD'),'YYYY-MM-DD')
|
|
AND (O.SETUP_ACT_END='' OR O.SETUP_ACT_END IS NULL)
|
|
AND O.SETUP_PLAN_END IS NOT NULL
|
|
AND O.SETUP_PLAN_END!=''
|
|
)
|
|
)
|
|
),
|
|
DELAY_COUNT AS (
|
|
SELECT COUNT(*) AS DELAY_CNT
|
|
,STRING_AGG(PM.OBJID::TEXT,',') AS DELAY_OBJIDS
|
|
FROM W_BASE PM
|
|
WHERE 1=1
|
|
AND SETUP_RATETOTAL != '100'
|
|
AND EXISTS (SELECT COUNT(1) FROM PMS_WBS_TASK AS O
|
|
WHERE O.CONTRACT_OBJID=PM.OBJID
|
|
AND(( O.DESIGN_PLAN_START IS NOT NULL
|
|
AND O.DESIGN_PLAN_START!=''
|
|
AND O.DESIGN_PLAN_END IS NOT NULL
|
|
AND O.DESIGN_PLAN_END!=''
|
|
)
|
|
OR ( O.PURCHASE_PLAN_START IS NOT NULL
|
|
AND O.PURCHASE_PLAN_START!=''
|
|
AND O.PURCHASE_PLAN_END IS NOT NULL
|
|
AND O.PURCHASE_PLAN_END!=''
|
|
)
|
|
OR ( O.PRODUCE_PLAN_START IS NOT NULL
|
|
AND O.PRODUCE_PLAN_START!=''
|
|
AND O.PRODUCE_PLAN_END IS NOT NULL
|
|
AND O.PRODUCE_PLAN_END!=''
|
|
)
|
|
)
|
|
)
|
|
AND EXISTS (SELECT COUNT(1) FROM SETUP_WBS_TASK AS O
|
|
WHERE O.CONTRACT_OBJID=PM.OBJID
|
|
AND ( O.SETUP_PLAN_START IS NOT NULL
|
|
AND O.SETUP_PLAN_START!=''
|
|
AND O.SETUP_PLAN_END IS NOT NULL
|
|
AND O.SETUP_PLAN_END!=''
|
|
)
|
|
)
|
|
AND (EXISTS(
|
|
SELECT 'E'
|
|
FROM PMS_WBS_TASK AS O
|
|
WHERE O.CONTRACT_OBJID=PM.OBJID
|
|
<!--
|
|
AND TO_DATE(O.DESIGN_PLAN_START,'YYYY-MM-DD') <![CDATA[ > ]]> TO_DATE(TO_CHAR(NOW(),'YYYY-MM-DD'),'YYYY-MM-DD')
|
|
-->
|
|
AND
|
|
(
|
|
( TO_DATE(O.DESIGN_PLAN_END,'YYYY-MM-DD') <![CDATA[ < ]]> TO_DATE(TO_CHAR(NOW(),'YYYY-MM-DD'),'YYYY-MM-DD')
|
|
AND (O.DESIGN_ACT_END='' OR O.DESIGN_ACT_END IS NULL)
|
|
AND O.DESIGN_PLAN_END IS NOT NULL
|
|
AND O.DESIGN_PLAN_END!=''
|
|
)
|
|
OR ( TO_DATE(O.PURCHASE_PLAN_END,'YYYY-MM-DD') <![CDATA[ < ]]> TO_DATE(TO_CHAR(NOW(),'YYYY-MM-DD'),'YYYY-MM-DD')
|
|
AND (O.PURCHASE_ACT_END='' OR O.PURCHASE_ACT_END IS NULL)
|
|
AND O.PURCHASE_PLAN_END IS NOT NULL
|
|
AND O.PURCHASE_PLAN_END!=''
|
|
)
|
|
OR ( TO_DATE(O.PRODUCE_PLAN_END,'YYYY-MM-DD') <![CDATA[ < ]]> TO_DATE(TO_CHAR(NOW(),'YYYY-MM-DD'),'YYYY-MM-DD')
|
|
AND (O.PRODUCE_ACT_END='' OR O.PRODUCE_ACT_END IS NULL)
|
|
AND O.PRODUCE_PLAN_END IS NOT NULL
|
|
AND O.PRODUCE_PLAN_END!=''
|
|
)
|
|
)
|
|
)
|
|
OR
|
|
EXISTS(
|
|
SELECT 'E'
|
|
FROM SETUP_WBS_TASK AS O
|
|
WHERE O.CONTRACT_OBJID=PM.OBJID
|
|
AND ( TO_DATE(O.SETUP_PLAN_END,'YYYY-MM-DD') <![CDATA[ < ]]> TO_DATE(TO_CHAR(NOW(),'YYYY-MM-DD'),'YYYY-MM-DD')
|
|
AND (O.SETUP_ACT_END='' OR O.SETUP_ACT_END IS NULL)
|
|
AND O.SETUP_PLAN_END IS NOT NULL
|
|
AND O.SETUP_PLAN_END!=''
|
|
)
|
|
)
|
|
)
|
|
|
|
),
|
|
HOLD_COUNT AS (
|
|
SELECT COUNT(*) AS HOLD_CNT
|
|
,STRING_AGG(PM.OBJID::TEXT,',') AS HOLD_OBJIDS
|
|
FROM W_BASE PM
|
|
LEFT OUTER JOIN (
|
|
SELECT
|
|
CONTRACT_OBJID,
|
|
COUNT(CASE WHEN DESIGN_ACT_START IS NOT NULL AND DESIGN_ACT_START!='' THEN 1 END) AS DESIGN_START_COUNT,
|
|
MIN(CASE WHEN DESIGN_ACT_START IS NOT NULL AND DESIGN_ACT_START != '' THEN DESIGN_ACT_START END) AS DESIGN_START_MIN
|
|
FROM
|
|
PMS_WBS_TASK
|
|
GROUP BY
|
|
CONTRACT_OBJID
|
|
) WT ON WT.CONTRACT_OBJID = PM.OBJID
|
|
WHERE 1=1
|
|
AND (
|
|
COALESCE(WT.DESIGN_START_COUNT, 0) = 0
|
|
OR TO_DATE(WT.DESIGN_START_MIN,'YYYY-MM_DD') > CURRENT_DATE
|
|
OR WT.DESIGN_START_MIN IS NULL
|
|
)
|
|
)
|
|
SELECT
|
|
E.END_CNT AS CNT_END
|
|
,P.TOTAL_ORDERS AS CNT_ORDER
|
|
,I.ING_CNT - N.NOPLAN_CNT AS CNT_ING
|
|
,H.HOLD_CNT AS CNT_HOLD
|
|
,N.NOPLAN_CNT CNT_NOPLAN
|
|
,D.DELAY_CNT AS CNT_DELAY
|
|
<!--
|
|
,E.END_OBJIDS
|
|
,P.STATUS_OBJIDS
|
|
,I.ING_OBJIDS
|
|
,H.HOLD_OBJIDS
|
|
,D.DELAY_OBJIDS
|
|
-->
|
|
FROM END_COUNT E, PROJECT_STATS P, ING_COUNT I, DELAY_COUNT D, HOLD_COUNT H, NOPLAN_COUNT N
|
|
</select>
|
|
|
|
<!-- 견적서 템플릿 관련 쿼리 -->
|
|
|
|
<!-- 견적서 기본 정보 조회 -->
|
|
<select id="getEstimateTemplateInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID,
|
|
CATEGORY_CD,
|
|
CODE_NAME(CATEGORY_CD) AS CATEGORY_NAME,
|
|
CUSTOMER_OBJID,
|
|
(SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID = T.CUSTOMER_OBJID::NUMERIC) AS CUSTOMER_NAME,
|
|
PRODUCT,
|
|
CODE_NAME(PRODUCT) AS PRODUCT_NAME,
|
|
CUSTOMER_PROJECT_NAME,
|
|
AREA_CD,
|
|
CODE_NAME(AREA_CD) AS AREA_NAME,
|
|
CASE
|
|
WHEN PAID_TYPE = 'paid' THEN '유상'
|
|
WHEN PAID_TYPE = 'free' THEN '무상'
|
|
ELSE PAID_TYPE
|
|
END AS PAID_TYPE,
|
|
RECEIPT_DATE,
|
|
PART_NO,
|
|
PART_NAME,
|
|
SERIAL_NO,
|
|
QUANTITY,
|
|
CUSTOMER_REQUEST,
|
|
CONTRACT_CURRENCY,
|
|
CODE_NAME(CONTRACT_CURRENCY) AS CONTRACT_CURRENCY_NAME,
|
|
EXCHANGE_RATE,
|
|
DUE_DATE,
|
|
WRITER,
|
|
(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = T.WRITER) AS WRITER_NAME,
|
|
REGDATE,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') AS REG_DATE
|
|
FROM
|
|
CONTRACT_MGMT AS T
|
|
WHERE
|
|
OBJID::VARCHAR = #{objId}
|
|
</select>
|
|
|
|
<!-- 견적서 템플릿 목록 조회 (CONTRACT_OBJID 기준) -->
|
|
<select id="getEstimateTemplateList" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID AS "OBJID",
|
|
CONTRACT_OBJID AS "CONTRACT_OBJID",
|
|
TEMPLATE_TYPE AS "TEMPLATE_TYPE",
|
|
CASE
|
|
WHEN TEMPLATE_TYPE = '1' THEN '일반 견적서'
|
|
WHEN TEMPLATE_TYPE = '2' THEN '장비 견적서'
|
|
ELSE TEMPLATE_TYPE
|
|
END AS "TEMPLATE_TYPE_NAME",
|
|
ESTIMATE_NO AS "ESTIMATE_NO",
|
|
WRITER AS "WRITER",
|
|
TO_CHAR(REGDATE, 'YYYY-MM-DD HH24:MI') AS "REGDATE",
|
|
CHG_USER_ID AS "CHG_USER_ID",
|
|
TO_CHAR(CHGDATE, 'YYYY-MM-DD HH24:MI') AS "CHGDATE",
|
|
ROW_NUMBER() OVER (PARTITION BY TEMPLATE_TYPE ORDER BY REGDATE) AS "REVISION"
|
|
FROM
|
|
ESTIMATE_TEMPLATE
|
|
WHERE
|
|
CONTRACT_OBJID = #{objId}
|
|
ORDER BY TEMPLATE_TYPE, REGDATE DESC
|
|
</select>
|
|
|
|
<!-- 견적서 템플릿 데이터 조회 (ESTIMATE_TEMPLATE 테이블) -->
|
|
<select id="getEstimateTemplateData" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID,
|
|
CONTRACT_OBJID,
|
|
TEMPLATE_TYPE,
|
|
EXECUTOR,
|
|
RECIPIENT,
|
|
ESTIMATE_NO,
|
|
CONTACT_PERSON,
|
|
GREETING_TEXT,
|
|
MODEL_NAME,
|
|
MODEL_CODE,
|
|
EXECUTOR_DATE,
|
|
NOTE1,
|
|
NOTE2,
|
|
NOTE3,
|
|
NOTE4,
|
|
WRITER,
|
|
REGDATE,
|
|
CHG_USER_ID,
|
|
CHGDATE
|
|
FROM
|
|
ESTIMATE_TEMPLATE
|
|
WHERE
|
|
CONTRACT_OBJID = #{objId}
|
|
<if test="template_type != null and template_type != ''">
|
|
AND TEMPLATE_TYPE = #{template_type}
|
|
</if>
|
|
ORDER BY REGDATE DESC
|
|
LIMIT 1
|
|
</select>
|
|
|
|
<!-- 견적서 템플릿 데이터 조회 (OBJID 기준) -->
|
|
<select id="getEstimateTemplateByObjId" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID,
|
|
CONTRACT_OBJID,
|
|
TEMPLATE_TYPE,
|
|
EXECUTOR,
|
|
RECIPIENT,
|
|
ESTIMATE_NO,
|
|
CONTACT_PERSON,
|
|
GREETING_TEXT,
|
|
MODEL_NAME,
|
|
MODEL_CODE,
|
|
EXECUTOR_DATE,
|
|
NOTE1,
|
|
NOTE2,
|
|
NOTE3,
|
|
NOTE4,
|
|
WRITER,
|
|
TO_CHAR(REGDATE, 'YYYY-MM-DD HH24:MI') AS REGDATE,
|
|
CHG_USER_ID,
|
|
TO_CHAR(CHGDATE, 'YYYY-MM-DD HH24:MI') AS CHGDATE
|
|
FROM
|
|
ESTIMATE_TEMPLATE
|
|
WHERE
|
|
OBJID = #{templateObjId}
|
|
</select>
|
|
|
|
<!-- 견적서 템플릿 품목 조회 (TEMPLATE_OBJID 기준) -->
|
|
<select id="getEstimateTemplateItemsByTemplateObjId" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID,
|
|
TEMPLATE_OBJID,
|
|
SEQ,
|
|
CATEGORY,
|
|
DESCRIPTION,
|
|
SPECIFICATION,
|
|
QUANTITY,
|
|
UNIT,
|
|
UNIT_PRICE,
|
|
AMOUNT,
|
|
NOTE,
|
|
REMARK
|
|
FROM
|
|
ESTIMATE_TEMPLATE_ITEM
|
|
WHERE
|
|
TEMPLATE_OBJID = #{templateObjId}
|
|
ORDER BY SEQ
|
|
</select>
|
|
|
|
<!-- 견적서 템플릿 품목 조회 -->
|
|
<select id="getEstimateTemplateItems" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID,
|
|
TEMPLATE_OBJID,
|
|
SEQ,
|
|
CATEGORY,
|
|
DESCRIPTION,
|
|
SPECIFICATION,
|
|
QUANTITY,
|
|
UNIT,
|
|
UNIT_PRICE,
|
|
AMOUNT,
|
|
NOTE,
|
|
REMARK
|
|
FROM
|
|
ESTIMATE_TEMPLATE_ITEM
|
|
WHERE
|
|
TEMPLATE_OBJID IN (
|
|
SELECT OBJID
|
|
FROM ESTIMATE_TEMPLATE
|
|
WHERE CONTRACT_OBJID = #{objId}
|
|
)
|
|
ORDER BY SEQ
|
|
</select>
|
|
|
|
<!-- 견적서 템플릿 저장 -->
|
|
<insert id="insertEstimateTemplate" parameterType="map">
|
|
INSERT INTO ESTIMATE_TEMPLATE (
|
|
OBJID,
|
|
CONTRACT_OBJID,
|
|
TEMPLATE_TYPE,
|
|
EXECUTOR,
|
|
RECIPIENT,
|
|
ESTIMATE_NO,
|
|
CONTACT_PERSON,
|
|
GREETING_TEXT,
|
|
MODEL_NAME,
|
|
MODEL_CODE,
|
|
EXECUTOR_DATE,
|
|
NOTE1,
|
|
NOTE2,
|
|
NOTE3,
|
|
NOTE4,
|
|
WRITER,
|
|
REGDATE,
|
|
CHG_USER_ID,
|
|
CHGDATE
|
|
) VALUES (
|
|
#{template_objid},
|
|
#{objId},
|
|
#{template_type},
|
|
#{executor},
|
|
#{recipient},
|
|
#{estimate_no},
|
|
#{contact_person},
|
|
#{greeting_text},
|
|
#{model_name},
|
|
#{model_code},
|
|
#{executor_date},
|
|
#{note1},
|
|
#{note2},
|
|
#{note3},
|
|
#{note4},
|
|
#{writer},
|
|
NOW(),
|
|
#{chg_user_id},
|
|
NOW()
|
|
)
|
|
</insert>
|
|
|
|
<!-- 견적서 템플릿 수정 -->
|
|
<update id="updateEstimateTemplate" parameterType="map">
|
|
UPDATE ESTIMATE_TEMPLATE
|
|
SET
|
|
EXECUTOR = #{executor},
|
|
RECIPIENT = #{recipient},
|
|
ESTIMATE_NO = #{estimate_no},
|
|
CONTACT_PERSON = #{contact_person},
|
|
GREETING_TEXT = #{greeting_text},
|
|
MODEL_NAME = #{model_name},
|
|
MODEL_CODE = #{model_code},
|
|
EXECUTOR_DATE = #{executor_date},
|
|
NOTE1 = #{note1},
|
|
NOTE2 = #{note2},
|
|
NOTE3 = #{note3},
|
|
NOTE4 = #{note4},
|
|
CHG_USER_ID = #{chg_user_id},
|
|
CHGDATE = NOW()
|
|
WHERE
|
|
OBJID = #{template_objid}
|
|
</update>
|
|
|
|
<!-- 견적서 템플릿 품목 삭제 -->
|
|
<delete id="deleteEstimateTemplateItems" parameterType="map">
|
|
DELETE FROM ESTIMATE_TEMPLATE_ITEM
|
|
WHERE
|
|
TEMPLATE_OBJID = #{template_objid}
|
|
</delete>
|
|
|
|
<!-- 견적서 템플릿 품목 저장 -->
|
|
<insert id="insertEstimateTemplateItems" parameterType="map">
|
|
INSERT INTO ESTIMATE_TEMPLATE_ITEM (
|
|
TEMPLATE_OBJID,
|
|
SEQ,
|
|
CATEGORY,
|
|
DESCRIPTION,
|
|
SPECIFICATION,
|
|
QUANTITY,
|
|
UNIT,
|
|
UNIT_PRICE,
|
|
AMOUNT,
|
|
NOTE,
|
|
REMARK
|
|
)
|
|
SELECT
|
|
#{template_objid},
|
|
(item->>'seq')::INTEGER,
|
|
item->>'category',
|
|
item->>'description',
|
|
item->>'specification',
|
|
item->>'quantity',
|
|
item->>'unit',
|
|
CASE
|
|
WHEN item->>'unit_price' = '' THEN NULL
|
|
ELSE (item->>'unit_price')::NUMERIC
|
|
END,
|
|
CASE
|
|
WHEN item->>'amount' = '' THEN NULL
|
|
ELSE (item->>'amount')::NUMERIC
|
|
END,
|
|
item->>'note',
|
|
item->>'remark'
|
|
FROM json_array_elements(#{items_json}::json) AS item
|
|
WHERE COALESCE(item->>'description', '') != ''
|
|
</insert>
|
|
|
|
<!-- 견적서 템플릿 카테고리 업데이트 (장비 견적서용) -->
|
|
<update id="updateEstimateTemplateCategories" parameterType="map">
|
|
UPDATE ESTIMATE_TEMPLATE
|
|
SET
|
|
CATEGORIES_JSON = #{categories_json},
|
|
CHG_USER_ID = #{chg_user_id},
|
|
CHGDATE = NOW()
|
|
WHERE
|
|
OBJID = #{template_objid}
|
|
</update>
|
|
|
|
<!-- 최종 차수 견적서 조회 (메일 발송용) -->
|
|
<select id="getLatestEstimateTemplate" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID AS "OBJID",
|
|
CONTRACT_OBJID AS "CONTRACT_OBJID",
|
|
TEMPLATE_TYPE AS "TEMPLATE_TYPE",
|
|
EXECUTOR AS "EXECUTOR",
|
|
RECIPIENT AS "RECIPIENT",
|
|
ESTIMATE_NO AS "ESTIMATE_NO",
|
|
CONTACT_PERSON AS "CONTACT_PERSON",
|
|
GREETING_TEXT AS "GREETING_TEXT",
|
|
MODEL_NAME AS "MODEL_NAME",
|
|
MODEL_CODE AS "MODEL_CODE",
|
|
EXECUTOR_DATE AS "EXECUTOR_DATE",
|
|
NOTE1 AS "NOTE1",
|
|
NOTE2 AS "NOTE2",
|
|
NOTE3 AS "NOTE3",
|
|
NOTE4 AS "NOTE4",
|
|
WRITER AS "WRITER",
|
|
TO_CHAR(REGDATE, 'YYYY-MM-DD HH24:MI') AS "REGDATE",
|
|
CHG_USER_ID AS "CHG_USER_ID",
|
|
TO_CHAR(CHGDATE, 'YYYY-MM-DD HH24:MI') AS "CHGDATE",
|
|
CATEGORIES_JSON AS "CATEGORIES_JSON"
|
|
FROM
|
|
ESTIMATE_TEMPLATE
|
|
WHERE
|
|
CONTRACT_OBJID = #{objId}
|
|
ORDER BY
|
|
TEMPLATE_TYPE,
|
|
REGDATE DESC
|
|
LIMIT 1
|
|
</select>
|
|
|
|
<!-- 계약 정보 조회 (메일 발송용) -->
|
|
<select id="getContractInfoForMail" parameterType="map" resultType="map">
|
|
SELECT
|
|
T.OBJID,
|
|
T.CUSTOMER_OBJID,
|
|
(SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID = T.CUSTOMER_OBJID::NUMERIC) AS CUSTOMER_NAME,
|
|
(SELECT EMAIL FROM SUPPLY_MNG AS O WHERE O.OBJID = T.CUSTOMER_OBJID::NUMERIC) AS CUSTOMER_EMAIL,
|
|
T.CUSTOMER_PROJECT_NAME,
|
|
T.CONTRACT_NO,
|
|
T.PRODUCT,
|
|
CODE_NAME(T.PRODUCT) AS PRODUCT_NAME,
|
|
T.WRITER,
|
|
(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = T.WRITER) AS WRITER_NAME,
|
|
(SELECT EMAIL FROM USER_INFO AS O WHERE O.USER_ID = T.WRITER) AS WRITER_EMAIL,
|
|
TO_CHAR(T.REGDATE, 'YYYY-MM-DD') AS REGDATE
|
|
FROM
|
|
CONTRACT_MGMT AS T
|
|
WHERE
|
|
OBJID::VARCHAR = #{objId}
|
|
</select>
|
|
|
|
<!-- //주문서관리 리스트 -->
|
|
<select id="orderMgmtGrodList" parameterType="map" resultType="map">
|
|
SELECT
|
|
T.*
|
|
FROM
|
|
<include refid="contractBase"/> T
|
|
WHERE 1=1
|
|
<if test="Year !=null and Year != '' ">
|
|
AND SUBSTR(CONTRACT_DATE,0,5) = #{Year}
|
|
</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_result !=null and contract_result !=''">
|
|
AND contract_result = #{contract_result}
|
|
</if>
|
|
|
|
<if test="contract_start_date != null and !''.equals(contract_start_date)">
|
|
AND TO_DATE(CONTRACT_DATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{contract_start_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="contract_end_date != null and !''.equals(contract_end_date)">
|
|
AND TO_DATE(CONTRACT_DATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{contract_end_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
<if test="pm_user_id !=null and pm_user_id !=''">
|
|
AND pm_user_id = #{pm_user_id}
|
|
</if>
|
|
<if test="contract_month != null and !''.equals(contract_month)">
|
|
AND TO_DATE(TO_CHAR(TO_DATE(CONTRACT_DATE,'YYYY-MM-DD'),'YYYY-MM-DD'),'YYYY-MM') <![CDATA[ = ]]> TO_DATE(SUBSTRING(#{contract_month} FROM 1 FOR 4) || '-' || SUBSTRING(#{contract_month} FROM 5 FOR 2), 'YYYY-MM')
|
|
</if>
|
|
|
|
<!-- 견적관리 추가 검색조건 -->
|
|
<if test="appr_status !=null and appr_status != '' ">
|
|
AND APPR_STATUS = #{appr_status}
|
|
</if>
|
|
|
|
<if test="area_cd != null and area_cd !='' ">
|
|
AND AREA_CD = #{area_cd}
|
|
</if>
|
|
|
|
<if test="paid_type != null and paid_type !='' ">
|
|
AND PAID_TYPE = #{paid_type}
|
|
</if>
|
|
|
|
<if test="search_partNo != null and search_partNo != ''">
|
|
AND UPPER(PART_NO) LIKE UPPER('%${search_partNo}%')
|
|
</if>
|
|
|
|
<if test="search_partName != null and search_partName != ''">
|
|
AND UPPER(PART_NAME) LIKE UPPER('%${search_partName}%')
|
|
</if>
|
|
|
|
<if test="search_serialNo != null and search_serialNo != ''">
|
|
AND UPPER(SERIAL_NO) LIKE UPPER('%${search_serialNo}%')
|
|
</if>
|
|
|
|
<if test="receipt_start_date != null and !''.equals(receipt_start_date)">
|
|
AND TO_DATE(RECEIPT_DATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{receipt_start_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="receipt_end_date != null and !''.equals(receipt_end_date)">
|
|
AND TO_DATE(RECEIPT_DATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{receipt_end_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
<if test="due_start_date != null and !''.equals(due_start_date)">
|
|
AND TO_DATE(RECEIPT_DATE,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{due_start_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="due_end_date != null and !''.equals(due_end_date)">
|
|
AND TO_DATE(DUE_DATE,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{due_end_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
ORDER BY REGDATE DESC
|
|
</select>
|
|
|
|
<!-- 영업정보 조회 (수주등록용) -->
|
|
<select id="getContractInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID,
|
|
CONTRACT_NO,
|
|
CONTRACT_CURRENCY,
|
|
(SELECT CODE_NAME FROM TB_CODE WHERE CODE_ID = CONTRACT_CURRENCY) AS CONTRACT_CURRENCY_NAME,
|
|
EXCHANGE_RATE,
|
|
QUANTITY,
|
|
PART_NO,
|
|
PART_NAME,
|
|
-- 수주정보 (기존 컬럼 활용)
|
|
CONTRACT_RESULT,
|
|
PO_NO,
|
|
ORDER_DATE,
|
|
ORDER_UNIT_PRICE,
|
|
ORDER_SUPPLY_PRICE,
|
|
ORDER_VAT,
|
|
ORDER_TOTAL_AMOUNT
|
|
FROM CONTRACT_MGMT
|
|
WHERE OBJID = #{objId}
|
|
</select>
|
|
|
|
<!-- 수주정보 조회 -->
|
|
<select id="getOrderInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID,
|
|
CONTRACT_NO,
|
|
CONTRACT_RESULT,
|
|
PO_NO,
|
|
ORDER_DATE,
|
|
QUANTITY,
|
|
ORDER_UNIT_PRICE AS UNIT_PRICE,
|
|
ORDER_SUPPLY_PRICE AS SUPPLY_PRICE,
|
|
ORDER_VAT AS VAT,
|
|
ORDER_TOTAL_AMOUNT AS TOTAL_AMOUNT,
|
|
CONTRACT_CURRENCY AS CURRENCY,
|
|
EXCHANGE_RATE
|
|
FROM CONTRACT_MGMT
|
|
WHERE OBJID = #{objId}
|
|
</select>
|
|
|
|
<!-- 수주정보 업데이트 -->
|
|
<update id="updateOrderInfo" parameterType="map">
|
|
UPDATE CONTRACT_MGMT
|
|
SET
|
|
CONTRACT_RESULT = #{contract_result},
|
|
PO_NO = #{po_no},
|
|
ORDER_DATE = #{order_date},
|
|
QUANTITY = #{quantity},
|
|
ORDER_UNIT_PRICE = #{unit_price},
|
|
ORDER_SUPPLY_PRICE = #{supply_price},
|
|
ORDER_VAT = #{vat},
|
|
ORDER_TOTAL_AMOUNT = #{total_amount},
|
|
CONTRACT_CURRENCY = #{contract_currency},
|
|
EXCHANGE_RATE = #{exchange_rate}
|
|
WHERE OBJID = #{contractObjId}
|
|
</update>
|
|
</mapper> |