Files
wace_plm/WebContent/WEB-INF/classes/com/pms/salesmgmt/mapper/dealerMgmt.xml
chpark da06c4684c Initial commit: WACE PLM with database initialization features
- Add Docker Compose configurations for dev, prod, and standalone environments
- Add database initialization scripts (init-db.sh, init-db-docker.sh)
- Add enhanced start-docker-linux.sh with DB init support
- Add comprehensive database initialization guide
- Support for automatic dbexport.pgsql import on first run
- Include safety checks for production environment
2025-08-29 15:46:08 +09:00

310 lines
11 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--
/**
* 딜러관리
* @since 2021.11.02
* @author min
* @version 1.0
*
* << 개정 이력 >>
*
* 수정일 수정자 수정내용
* **************** ********************** ********************************************************
* 2021.11.02 민상익 최초작성
**/
-->
<mapper namespace="dealerMgmt">
<!--
/**
* 딜러관리 목록 조회
* @since 2021.11.02
* @author min
* @version 1.0
*
* << 개정 이력 >>
*
* 수정일 수정자 수정내용
* **************** ********************** ********************************************************
* 2021.11.02 민상익 최초작성
**/
-->
<select id="getDealerMgmtList" parameterType="map" resultType="map">
/* dealerMgmt.getDealerMgmtList */
SELECT *
FROM (
SELECT ROW_NUMBER() OVER (ORDER BY CRET_DATE) AS RNUM
,CustCd /* 딜러코드 */
,CustGB /* 딜러구분 */
,CustArea /* 딜러지역 */
,(SELECT CdNm FROM SWSA050A_TBL WHERE MajorCd = 'AR' AND MinorCd = A.CustArea) AS CustAreaNm /* 딜러지역명 */
,CustSer /* 일련번호 */
,CustNm /* 딜러명 */
,TaxNo1 /* 사업자번호 */
,TaxNo2 /* 법인/주민번호 */
,CustBoss /* 대표자명 */
,CustType /* 업태 */
,CustKind /* 종목 */
,Adrs /* 주소 */
,PostNo /* 우편번호 */
,Tel /* 전화번호 */
,Fax /* 팩스번호 */
,DeptCd /* 관리부서 */
, (SELECT BDeptNm FROM SWSB012A_TBL WHERE BDeptCd = A.DeptCd) AS DeptNm /* 관리부서명 */
,Salesman /* 관리담당자 */
,(SELECT NameHan FROM SWHD010A_TBL WHERE EmpNo = A.Salesman) AS SalesmanNm /* 관리담당자명 */
,RegDate /* 적용일자 */
,SaleLocate /* 영업지역 */
,(SELECT CdNm FROM SWSA050A_TBL WHERE MajorCd = 'AR' AND MinorCd = A.SaleLocate) AS SaleLocateNm /* 영업지역명 */
,CRET_DATE /* 생성일시 */
,CretEmpNo /* 생성자 */
,EDIT_DATE /* 수정일시 */
,EditEmpNo /* 수정자 */
FROM SWSB010A_TBL A
WHERE 1 = 1
<if test="condCustGb != null and condCustGb != '' ">
AND CustGB = #{condCustGb} /* 딜러구분 */
</if>
<if test="condCustArea != null and condCustArea != '' ">
AND CustArea = #{condCustArea} /* 딜러지역 */
</if>
<if test="condNm != null and condNm != '' ">
AND ( CustNm LIKE CONCAT('%', #{condNm}, '%') OR CustBoss LIKE CONCAT('%', #{condNm}, '%') ) /* 딜러명/대표자 */
</if>
<if test="condTaxNo != null and condTaxNo != '' ">
AND ( TaxNo1 LIKE CONCAT('%', #{condTaxNo}, '%') OR TaxNo2 LIKE CONCAT('%', #{condTaxNo}, '%') ) /* 사업자/법인/주민 */
</if>
<if test="condAdrs != null and condAdrs != '' ">
AND Adrs LIKE CONCAT('%', #{condAdrs}, '%') /* 주소 like 헤애힘? */
</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.11.02
* @author min
* @version 1.0
*
* << 개정 이력 >>
*
* 수정일 수정자 수정내용
* **************** ********************** ********************************************************
* 2021.11.02 민상익 최초작성
**/
-->
<select id="getDealerMgmtListCnt" parameterType="map" resultType="map">
/* dealerMgmt.getDealerMgmtListCnt */
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 SWSB010A_TBL
WHERE 1 = 1
<if test="condCustGb != null and condCustGb != '' ">
AND CustGB = #{condCustGb} /* 딜러구분 */
</if>
<if test="condAcntUnit != null and condAcntUnit != '' ">
AND CustArea = #{condCustArea} /* 딜러지역 */
</if>
<if test="condNm != null and condNm != '' ">
AND ( CustNm LIKE CONCAT('%', #{condNm}, '%') OR CustBoss LIKE CONCAT('%', #{condNm}, '%') ) /* 딜러명/대표자 */
</if>
<if test="condTaxNo != null and condTaxNo != '' ">
AND ( TaxNo1 LIKE CONCAT('%', #{condTaxNo}, '%') OR TaxNo2 LIKE CONCAT('%', #{condTaxNo}, '%') ) /* 사업자/법인/주민 */
</if>
<if test="condAdrs != null and condAdrs != '' ">
AND Adrs LIKE CONCAT('%', #{condAdrs}, '%') /* 주소 like 헤애힘? */
</if>
) T
) T
</select>
<!--
/**
* 딜러관리 조회
* @since 2021.11.02
* @author min
* @version 1.0
*
* << 개정 이력 >>
*
* 수정일 수정자 수정내용
* **************** ********************** ********************************************************
* 2021.11.02 민상익 최초작성
**/
-->
<select id="getDealerMgmt" parameterType="map" resultType="map">
/* dealerMgmt.getDealerMgmt */
SELECT *
FROM SWSB010A_TBL
WHERE CustCd = #{custCd} /* 딜러코드 */
</select>
<!--
/**
* 딜러관리 일련번호 조회
* @since 2021.11.02
* @author min
* @version 1.0
*
* << 개정 이력 >>
*
* 수정일 수정자 수정내용
* **************** ********************** ********************************************************
* 2021.11.02 민상익 최초작성
**/
-->
<select id="getDealerMgmtCustSer" parameterType="map" resultType="int">
/* dealerMgmt.getDealerMgmtCustSer */
SELECT COALESCE(MAX(custSer)::INTEGER, 0) + 1
FROM SWSB010A_TBL
WHERE CustArea = #{custArea} /* 고객지역 */
</select>
<!--
/**
* 딜러관리 삭제 가능 여부 조회
* @since 2021.11.15
* @author min
* @version 1.0
*
* << 개정 이력 >>
*
* 수정일 수정자 수정내용
* **************** ********************** ********************************************************
* 2021.11.15 김효일 최초작성
**/
-->
<select id="getDealerMgmtRelationCount" parameterType="map" resultType="map">
/* dealerMgmt.getDealerMgmtRelationCount */
SELECT (SELECT COUNT(*) FROM SWSC110A_TBL WHERE salesMan = #{custCd}) AS swsc110ACnt /* 계약 */
, (SELECT COUNT(*) FROM SWSD010A_TBL WHERE salesMan = #{custCd}) AS swsd010ACnt /* 매출 */
, (SELECT COUNT(*) FROM SWSE010A_TBL WHERE salesMan = #{custCd}) AS swse010ACnt /* 수금 */
</select>
<!--
/**
* 딜러관리 저장
* @since 2021.11.02
* @author min
* @version 1.0
*
* << 개정 이력 >>
*
* 수정일 수정자 수정내용
* **************** ********************** ********************************************************
* 2021.11.02 민상익 최초작성
**/
-->
<update id="insertDealerMgmt" parameterType="map">
/* dealerMgmt.insertDealerMgmt */
INSERT INTO SWSB010A_TBL (
CustCd /* 딜러코드 */
,CustGB /* 딜러구분 */
,CustArea /* 딜러지역 */
,CustSer /* 일련번호 */
,CustNm /* 딜러명 */
,TaxNo1 /* 사업자번호 */
,TaxNo2 /* 법인/주민번호 */
,CustBoss /* 대표자명 */
,CustType /* 업태 */
,CustKind /* 종목 */
,Adrs /* 주소 */
,PostNo /* 우편번호 */
,Tel /* 전화번호 */
,Fax /* 팩스번호 */
,DeptCd /* 영업부서 */
,Salesman /* 영업담당자 */
,RegDate /* 적용일자 */
,SaleLocate /* - */
,CRET_DATE /* 생성일시 */
,CretEmpNo /* 생성자 */
,EDIT_DATE /* 수정일시 */
,EditEmpNo /* 수정자 */
,HandPhone /* 핸드폰 */
) VALUES (
#{custCd} /* 딜러코드 */
,#{custGb} /* 딜러구분 */
,#{custArea} /* 딜러지역 */
,#{custSer} /* 일련번호 */
,#{custNm} /* 딜러명 */
,#{taxNo1} /* 사업자번호 */
,#{taxNo2} /* 법인/주민번호 */
,#{custBoss} /* 대표자명 */
,#{custType} /* 업태 */
,#{custKind} /* 종목 */
,#{adrs} /* 주소 */
,#{postNo} /* 우편번호 */
,#{tel} /* 전화번호 */
,#{fax} /* 팩스번호 */
,#{deptCd} /* 영업부서 */
,#{salesman} /* 영업담당자 */
,#{regDate} /* 적용일자 */
,#{saleLocate} /* 영업지역 */
,now() /* 생성일시 */
,#{cretEmpNo} /* 생성자 */
,now() /* 수정일시 */
,#{cretEmpNo} /* 수정자 */
,#{handPhone} /* 핸드폰 */
) ON
CONFLICT (custCd) DO
UPDATE SET
CustGB = #{custGb} /* 딜러구분 */
,CustArea = #{custArea} /* 딜러지역 */
,CustNm = #{custNm} /* 딜러명 */
,TaxNo1 = #{taxNo1} /* 사업자번호 */
,TaxNo2 = #{taxNo2} /* 법인/주민번호 */
,CustBoss = #{custBoss} /* 대표자명 */
,CustType = #{custType} /* 업태 */
,CustKind = #{custKind} /* 종목 */
,Adrs = #{adrs} /* 주소 */
,PostNo = #{postNo} /* 우편번호 */
,Tel = #{tel} /* 전화번호 */
,Fax = #{fax} /* 팩스번호 */
,DeptCd = #{deptCd} /* 영업부서 */
,Salesman = #{salesman} /* 영업담당자 */
,RegDate = #{regDate} /* 적용일자 */
,SaleLocate = #{saleLocate} /* 영업지역 */
,EDIT_DATE = now() /* 수정일시 */
,EditEmpNo = #{cretEmpNo} /* 수정자 */
,HandPhone = #{handPhone} /* 핸드폰 */
</update>
<!--
/**
* 딜러관리 삭제
* @since 2021.11.02
* @author min
* @version 1.0
*
* << 개정 이력 >>
*
* 수정일 수정자 수정내용
* **************** ********************** ********************************************************
* 2021.11.02 민상익 최초작성
**/
-->
<delete id="deleteDealerMgmt" parameterType="map">
/* dealerMgmt.deleteDealerMgmt */
Delete FROM SWSB010A_TBL
WHERE CustCd = #{custCd} /* 딜러코드 */
</delete>
</mapper>