Files
wace_plm/WebContent/WEB-INF/classes/com/pms/salesmgmt/mapper/customerMgmt.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

331 lines
12 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="customerMgmt">
<!--
/**
* 고객관리 목록 조회
* @since 2021.11.02
* @author min
* @version 1.0
*
* << 개정 이력 >>
*
* 수정일 수정자 수정내용
* **************** ********************** ********************************************************
* 2021.11.02 민상익 최초작성
**/
-->
<select id="getCustomerMgmtList" parameterType="map" resultType="map">
/* customerMgmt.getCustomerMgmtList */
SELECT *
FROM (
SELECT ROW_NUMBER() OVER (ORDER BY CRET_DATE) AS RNUM
,CustCd /* 고객코드 */
,CustArea /* 고객지역 */
, (SELECT CdNm FROM SWSA050A_TBL WHERE MajorCd = 'AR'
AND MinorCd = A.CustArea) AS CustAreaNm /* 고객지역명 */
,CustSer /* 일련번호 */
,CustNm /* 고객명 */
,TaxNo1 /* 사업자번호 */
,TaxNo2 /* 법인/주민번호 */
,CustBoss /* 대표자명 */
,CustUse /* 실사용자 */
,CustType /* 업태 */
,CustKind /* 종목 */
,Adrs /* 주소 */
,PostNo /* 우편번호 */
,Tel /* 전화번호 */
,Fax /* 팩스번호 */
,DeptCd /* 영업부서 */
, (SELECT dept_name FROM DEPT_INFO WHERE dept_code = A.DeptCd) AS DeptNm /* 영업부서명 */
,Salesman /* 영업담당자 */
, (SELECT user_name FROM USER_INFO WHERE user_id = A.Salesman) AS SalesmanNm /* 영업담당자명 */
,RegDate /* 적용일자 */
,Mark /* - */
,CRET_DATE /* 생성일시 */
,CretEmpNo /* 생성자 */
,EDIT_DATE /* 수정일시 */
,EditEmpNo /* 수정자 */
,HandPhone /* 핸드폰번호 */
FROM SWSB210A_TBL A
WHERE 1 = 1
<if test="condCustArea != null and condCustArea != '' ">
AND CustArea = #{condCustArea} /* 고객지역 */
</if>
<if test="condNm != null and condNm != '' ">
AND ( CustNm = #{condNm} OR CustBoss = #{condNm} ) /* 고객명/대표자 */
</if>
<if test="condTaxNo != null and condTaxNo != '' ">
AND ( TaxNo1 = #{condTaxNo} OR TaxNo2 = #{condTaxNo} ) /* 사업자/법인/주민 */
</if>
<if test="condAdrs != null and condAdrs != '' ">
AND Adrs = #{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.01
* @author min
* @version 1.0
*
* << 개정 이력 >>
*
* 수정일 수정자 수정내용
* **************** ********************** ********************************************************
* 2021.11.02 민상익 최초작성
**/
-->
<select id="getCustomerMgmtListCnt" parameterType="map" resultType="map">
/* customerMgmt.getCustomerMgmtListCnt */
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 SWSB210A_TBL
WHERE 1 = 1
<if test="condAcntUnit != null and condAcntUnit != '' ">
AND CustArea = #{condCustArea} /* 고객지역 */
</if>
<if test="condNm != null and condNm != '' ">
AND ( CustNm = #{condNm} OR CustBoss = #{condNm} ) /* 고객명/대표자 */
</if>
<if test="condTaxNo != null and condTaxNo != '' ">
AND ( TaxNo1 = #{condTaxNo} OR TaxNo2 = #{condTaxNo} ) /* 사업자/법인/주민 */
</if>
<if test="condAdrs != null and condAdrs != '' ">
AND Adrs = #{condAdrs} /* 주소 like 헤애힘? */
</if>
) T
) T
</select>
<!--
/**
* 고객관리 조회
* @since 2021.11.02
* @author min
* @version 1.0
*
* << 개정 이력 >>
*
* 수정일 수정자 수정내용
* **************** ********************** ********************************************************
* 2021.11.02 민상익 최초작성
**/
-->
<select id="getCustomerMgmt" parameterType="map" resultType="map">
/* customerMgmt.getCustomerMgmt */
SELECT *
FROM SWSB210A_TBL
WHERE CustCd = #{custCd} /* 고객코드 */
</select>
<!--
/**
* 고객관리 일련번호 조회
* @since 2021.11.02
* @author min
* @version 1.0
*
* << 개정 이력 >>
*
* 수정일 수정자 수정내용
* **************** ********************** ********************************************************
* 2021.11.02 민상익 최초작성
**/
select lpad(cnt::text ,3,'0')
from(
SELECT COUNT(*) +1 as cnt /*자리수 맞춰야 한다면 LPAD 함수 써서 하자 */
FROM SWSB210A_TBL
WHERE CustArea = '1'
) a
-->
<select id="getCustomerMgmtCustSer" parameterType="map" resultType="int">
/* customerMgmt.getCustomerMgmtCustSer */
SELECT COALESCE(MAX(custSer)::INTEGER, 0) + 1 /*자리수 맞춰야 한다면 LPAD 함수 써서 하자 */
FROM SWSB210A_TBL
WHERE CustArea = #{custArea} /* 고객지역 */
</select>
<!--
/**
* 사업자 번호 중복 확인
* @since 2021.11.15
* @author kim
* @version 1.0
*
* << 개정 이력 >>
*
* 수정일 수정자 수정내용
* **************** ********************** ********************************************************
* 2021.11.15 김효일 최초작성
**/
-->
<select id="getCustomerMgmtCountByTaxNo1" parameterType="map" resultType="int">
/* customerMgmt.getCustomerMgmtCountByTaxNo1 */
SELECT COUNT(*)
FROM SWSB210A_TBL
WHERE taxNo1 = #{taxNo1} /* 사업자번호 */
AND custCd <![CDATA[ <> ]]> #{custCd} /* 고객코드 */
</select>
<!--
/**
* 법인/주민번호 중복 확인
* @since 2021.11.15
* @author kim
* @version 1.0
*
* << 개정 이력 >>
*
* 수정일 수정자 수정내용
* **************** ********************** ********************************************************
* 2021.11.15 김효일 최초작성
**/
-->
<select id="getCustomerMgmtCountByTaxNo2" parameterType="map" resultType="int">
/* customerMgmt.getCustomerMgmtCountByTaxNo2 */
SELECT COUNT(*)
FROM SWSB210A_TBL
WHERE taxNo2 = #{taxNo2} /* 사업자번호 */
AND custCd <![CDATA[ <> ]]> #{custCd} /* 고객코드 */
</select>
<!--
/**
* 계약관리 저장
* @since 2021.11.02
* @author kim
* @version 1.0
*
* << 개정 이력 >>
*
* 수정일 수정자 수정내용
* **************** ********************** ********************************************************
* 2021.11.02 민상익 최초작성
**/
-->
<update id="insertCustomerMgmt" parameterType="map">
/* customerMgmt.insertCustomerMgmt */
INSERT INTO SWSB210A_TBL (
CustCd /* 고객코드 */
,CustArea /* 고객지역 */
,CustSer /* 일련번호 */
,CustNm /* 고객명 */
,TaxNo1 /* 사업자번호 */
,TaxNo2 /* 법인/주민번호 */
,CustBoss /* 대표자명 */
,CustUse /* 실사용자 */
,CustType /* 업태 */
,CustKind /* 종목 */
,Adrs /* 주소 */
,PostNo /* 우편번호 */
,Tel /* 전화번호 */
,Fax /* 팩스번호 */
,DeptCd /* 영업부서 */
,Salesman /* 영업담당자 */
,RegDate /* 적용일자 */
,Mark /* - */
,CRET_DATE /* 생성일시 */
,CretEmpNo /* 생성자 */
,EDIT_DATE /* 수정일시 */
,EditEmpNo /* 수정자 */
,HandPhone /* 핸드폰번호 */
) VALUES (
#{custCd} /* 고객코드 */
,#{custArea} /* 고객지역 */
,#{custSer} /* 일련번호 */
,#{custNm} /* 고객명 */
,#{taxNo1} /* 사업자번호 */
,#{taxNo2} /* 법인/주민번호 */
,#{custBoss} /* 대표자명 */
,#{custUse} /* 실사용자 */
,#{custType} /* 업태 */
,#{custKind} /* 종목 */
,#{adrs} /* 주소 */
,#{postNo} /* 우편번호 */
,#{tel} /* 전화번호 */
,#{fax} /* 팩스번호 */
,#{deptCd} /* 영업부서 */
,#{salesman} /* 영업담당자 */
,#{regDate} /* 적용일자 */
,#{mark} /* - */
,now() /* 생성일시 */
,#{cretEmpNo} /* 생성자 */
,now() /* 수정일시 */
,#{cretEmpNo} /* 수정자 */
,#{handPhone} /* 핸드폰번호 */
) ON CONFLICT (custCd) DO /* 고객코드 */
UPDATE SET
CustArea = #{custArea} /* 고객지역 */
,CustNm = #{custNm} /* 고객명 */
,TaxNo1 = #{taxNo1} /* 사업자번호 */
,TaxNo2 = #{taxNo2} /* 법인/주민번호 */
,CustBoss = #{custBoss} /* 대표자명 */
,CustUse = #{custUse} /* 실사용자 */
,CustType = #{custType} /* 업태 */
,CustKind = #{custKind} /* 종목 */
,Adrs = #{adrs} /* 주소 */
,PostNo = #{postNo} /* 우편번호 */
,Tel = #{tel} /* 전화번호 */
,Fax = #{fax} /* 팩스번호 */
,DeptCd = #{deptCd} /* 영업부서 */
,Salesman = #{salesman} /* 영업담당자 */
,RegDate = #{regDate} /* 적용일자 */
,Mark = #{mark} /* - */
,EDIT_DATE = now() /* 수정일시 */
,EditEmpNo = #{cretEmpNo} /* 수정자 */
,HandPhone = #{handPhone} /* 핸드폰번호 */
</update>
<!--
/**
* 계약관리 삭제
* @since 2021.11.02
* @author min
* @version 1.0
*
* << 개정 이력 >>
*
* 수정일 수정자 수정내용
* **************** ********************** ********************************************************
* 2021.11.02 민상익 최초작성
**/
-->
<delete id="deleteCustomerMgmt" parameterType="map">
/* customerMgmt.deleteCustomerMgmt */
DELETE FROM SWSB210A_TBL
WHERE CustCd = #{custCd} /* 고객코드 */
</delete>
</mapper>