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

322 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.04
* @author min
* @version 1.0
*
* << 개정 이력 >>
*
* 수정일 수정자 수정내용
* **************** ********************** ********************************************************
* 2021.11.04 민상익 최초작성
**/
-->
<mapper namespace="goodsMgmt">
<!--
/**
* 제품관리 목록 조회
* @since 2021.11.04
* @author min
* @version 1.0
*
* << 개정 이력 >>
*
* 수정일 수정자 수정내용
* **************** ********************** ********************************************************
* 2021.11.04 민상익 최초작성
**/
-->
<select id="getGoodsMgmtList" parameterType="map" resultType="map">
/* goodsMgmt.getGoodsMgmtList */
SELECT *
FROM (
SELECT ROW_NUMBER() OVER (ORDER BY CRET_DATE) AS RNUM
,A.goodsCd /* 제품코드 */
,A.goodsNm /* 제품명 */
,A.goodsHanNm /* 제품한글명 */
,A.goodsSpec /* 규격 */
,A.goodsUnit /* 단위 */
,(SELECT CdNm FROM SWSA050A_TBL WHERE MajorCd = 'AA' AND MinorCd = A.AcntUnit) AS AcntUnitNm
,A.AcntUnit /* 법인 */
,A.C_Class /* 제품그룹 */
, CASE WHEN A.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(A.c_class,1,1)),
'-',
(SELECT ltrim(rtrim(DTL_NM)) from SWSA999A_TBL where COMM_CD = 'S120' AND SUBSTRING(DTL_CD,1,3) = SUBSTRING(A.c_class,1,3)),
'-',
(SELECT ltrim(rtrim(DTL_NM)) from SWSA999A_TBL where COMM_CD = 'S130' AND DTL_CD = A.c_class )
)
ELSE '' END AS c_classNm /* 제품그룹명 */
,A.Class1 /* */
,(SELECT COALESCE(DTL_NM,'') FROM SWSA999A_TBL WHERE COMM_CD = 'S170' AND DTL_CD = A.Class1) AS Class1Nm
,A.Class2 /* */
,(SELECT COALESCE(DTL_NM,'') FROM SWSA999A_TBL WHERE COMM_CD = 'S171' AND DTL_CD = A.Class2) AS Class2Nm
,A.GoodsGuarantee /* 보증기간 */
,A.Cost_Amt /* 판매금액 */
,A.Sale_Amt /* */
,A.SaftyQty /* */
,A.Royalty /* */
,A.RegYmd /* 등록일자 */
,A.DelYmd /* 단종일자 */
,A.Remark /* 비고 */
,A.CommiYN /* 판매수수료_적용여부 */
,CASE WHEN A.CommiYN = '0' THEN '미적용'
WHEN A.CommiYN = '1' THEN '적용'
ELSE '' END AS CommiYN_NM /* 판매수수료_적용여부명 */
,A.CommiGB /* 방식/수식 */
,(SELECT CDNM FROM SWSA050A_TBL WHERE MajorCd = 'FB' and MINORCD = A.CommiGB) AS CommiGB_NM /* 방식/수식_명 */
,A.CommiGive /* */
,A.CCommiPer /* 크레인(%) */
,A.TCommiPer /* 특장(%) */
,A.CCommiAmt /* 크레인(금액) */
,A.TCommiAmt /* 특장(금액) */
,A.GB1 /* 영업소 */
,CASE WHEN A.GB1 = '0' THEN '비공개'
WHEN A.GB1 = '1' THEN '공개'
ELSE '' END AS GB1_NM /* 영업소명 */
,A.CRET_DATE /* 생성일시 */
,A.CretEmpNo /* 생성자 */
,A.EDIT_DATE /* 수정일시 */
,A.EditEmpNo /* 수정자 */
FROM SWSB110A_TBL A
WHERE 1 = 1
<if test="condGoodsCd != null and condGoodsCd != '' ">
AND A.goodsCd = #{condGoodsCd} /* 제품코드 */
</if>
<if test="condGoodsSpec != null and condGoodsSpec != '' ">
AND B.goodsSpec LIKE CONCAT('%', #{condGoodsSpec}, '%') /* 규격 */
</if>
<if test="condCClass != null and condCClass != '' ">
AND A.c_class = #{condCClass} /* 제품그룹 */
</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.04
* @author min
* @version 1.0
*
* << 개정 이력 >>
*
* 수정일 수정자 수정내용
* **************** ********************** ********************************************************
* 2021.11.04 민상익 최초작성
**/
-->
<select id="getGoodsMgmtListCnt" parameterType="map" resultType="map">
/* goodsMgmt.getGoodsMgmtListCnt */
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 SWSB110A_TBL A
WHERE 1 = 1
<if test="condGoodsCd != null and condGoodsCd != '' ">
AND A.goodsCd = #{condGoodsCd} /* 제품코드 */
</if>
<if test="condGoodsSpec != null and condGoodsSpec != '' ">
AND A.goodsSpec LIKE CONCAT('%', #{condGoodsSpec}, '%') /* 규격 */
</if>
<if test="condCClass != null and condCClass != '' ">
AND A.c_class = #{condCClass} /* 제품그룹 */
</if>
) T
) T
</select>
<!--
/**
* 제품관리 조회
* @since 2021.11.04
* @author min
* @version 1.0
*
* << 개정 이력 >>
*
* 수정일 수정자 수정내용
* **************** ********************** ********************************************************
* 2021.11.04 민상익 최초작성
**/
-->
<select id="getGoodsMgmt" parameterType="map" resultType="map">
/* goodsMgmt.getGoodsMgmt */
SELECT A.*
FROM SWSB110A_TBL A
WHERE A.goodsCd = #{goodsCd} /* 제품번호 */
</select>
<!--
/**
* 제품번호 중복 조회
* @since 2021.11.04
* @author min
* @version 1.0
*
* << 개정 이력 >>
*
* 수정일 수정자 수정내용
* **************** ********************** ********************************************************
* 2021.11.04 민상익 최초작성
**/
-->
<select id="getGoodsMgmtCountByGoodsCd" parameterType="map" resultType="int">
/* goodsMgmt.getGoodsMgmtCountByGoodsCd */
SELECT COUNT(*)
FROM SWSB110A_TBL A
WHERE A.goodsCd = #{goodsCd} /* 제품번호 */
</select>
<!--
/**
* 제품관리 저장
* @since 2021.11.04
* @author min
* @version 1.0
*
* << 개정 이력 >>
*
* 수정일 수정자 수정내용
* **************** ********************** ********************************************************
* 2021.11.04 민상익 최초작성
**/
-->
<update id="insertGoodsMgmt" parameterType="map">
/* goodsMgmt.insertGoodsMgmt */
INSERT INTO SWSB110A_TBL (
goodsCd /* 제품코드 */
,GoodsNm /* 제품명 */
,GoodsHanNm /* 제품한글명 */
,GoodsSpec /* 규격 */
,GoodsUnit /* 단위 */
,AcntUnit /* 법인 */
,C_Class /* 제품그룹 */
,Class1 /* */
,Class2 /* */
,GoodsGuarantee /* 보증기간 */
,Cost_Amt /* 판매금액 */
,Sale_Amt /* */
,SaftyQty /* */
,Royalty /* */
,RegYmd /* 등록일자 */
,DelYmd /* 단종일자 */
,Remark /* 비고 */
,CommiYN /* 판매수수료적용여부 */
,CommiGB /* 방식/수식 */
,CommiGive /* */
,CCommiPer /* 크레인(%) */
,TCommiPer /* 특장(%) */
,CCommiAmt /* 크레인(금액) */
,TCommiAmt /* 특장(금액) */
,GB1 /* 영업소 */
,CRET_DATE /* 생성일시 */
,CretEmpNo /* 생성자 */
,EDIT_DATE /* 수정일시 */
,EditEmpNo /* 수정자 */
,ObjId /* 양산제품ID */
,Master_objid /* 양산제품UPG ID */
) VALUES (
#{goodsCd} /* 제품코드 */
,#{goodsNm} /* 제품명 */
,#{goodsHanNm} /* 제품한글명 */
,#{goodsSpec} /* 규격 */
,#{goodsUnit} /* 단위 */
,#{acntUnit} /* 법인 */
,#{cClass} /* 제품그룹 */
,#{class1} /* */
,#{class2} /* */
,#{goodsGuarantee}:: INTEGER /* 보증기간 */
,#{costAmt}:: BIGINT /* 판매금액 */
,#{saleAmt}:: BIGINT /* */
,#{saftyQty}:: BIGINT /* */
,#{royalty}:: BIGINT /* */
,#{regYmd} /* 등록일자 */
,#{delYmd} /* 단종일자 */
,#{remark} /* 비고 */
,#{commiYn} /* 판매수수료적용여부 */
,#{commiGb} /* 방식/수식 */
,#{commiGive} /* */
,#{cCommiPer}:: BIGINT /* 크레인(%) */
,#{tCommiPer}:: BIGINT /* 특장(%) */
,#{cCommiAmt}:: BIGINT /* 크레인(금액) */
,#{tCommiAmt}:: BIGINT /* 특장(금액) */
,#{gb1} /* 영업소 */
,now() /* 생성일시 */
,#{cretEmpNo} /* 생성자 */
, now() /* 수정일시 */
,#{cretEmpNo} /* 수정자 */
,#{objId}:: NUMERIC /* 양산제품ID */
,#{masterObjId}:: NUMERIC /* 양산제품UPG ID */
) ON
CONFLICT (GoodsCd) DO
UPDATE SET
GoodsNm = #{goodsNm} /* 제품명 */
,GoodsHanNm = #{goodsHanNm} /* 제품한글명 */
,GoodsSpec = #{goodsSpec} /* 규격 */
,GoodsUnit = #{goodsUnit} /* 단위 */
,AcntUnit = #{acntUnit} /* 법인 */
,C_Class = #{cClass} /* 제품그룹 */
,Class1 = #{class1} /* */
,Class2 = #{class2} /* */
,GoodsGuarantee = #{goodsGuarantee}:: INTEGER /* 보증기간 */
,Cost_Amt = #{costAmt}:: BIGINT /* 판매금액 */
,Sale_Amt = #{saleAmt}:: BIGINT /* */
,SaftyQty = #{saftyQty}:: BIGINT /* */
,Royalty = #{royalty}:: BIGINT /* */
,RegYmd = #{regYmd} /* 등록일자 */
,DelYmd = #{delYmd} /* 단종일자 */
,Remark = #{remark} /* 비고 */
,CommiYN = #{commiYn} /* 판매수수료적용여부 */
,CommiGB = #{commiGb} /* 방식/수식 */
,CommiGive = #{commiGive} /* */
,CCommiPer = #{cCommiPer}:: BIGINT /* 크레인(%) */
,TCommiPer = #{tCommiPer}:: BIGINT /* 특장(%) */
,CCommiAmt = #{cCommiAmt}:: BIGINT /* 크레인(금액) */
,TCommiAmt = #{tCommiAmt}:: BIGINT /* 특장(금액) */
,GB1 = #{gb1} /* 영업소 */
,EDIT_DATE = now() /* 수정일시 */
,EditEmpNo = #{cretEmpNo} /* 수정자 */
,ObjId = #{objId}:: NUMERIC /* 양산제품ID */
,Master_objid = #{masterObjId}:: NUMERIC /* 양산제품UPG ID */
</update>
<!--
/**
* 제품관리 삭제
* @since 2021.11.04
* @author min
* @version 1.0
*
* << 개정 이력 >>
*
* 수정일 수정자 수정내용
* **************** ********************** ********************************************************
* 2021.11.04 민상익 최초작성
**/
-->
<delete id="deleteGoodsMgmt" parameterType="map">
/* goodsMgmt.deleteGoodsMgmt */
DELETE FROM SWSB110A_TBL
WHERE GoodsCd = #{goodsCd} /* 제품코드 */
</delete>
</mapper>