- 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
369 lines
14 KiB
XML
369 lines
14 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.25
|
|
* @author min
|
|
* @version 1.0
|
|
*
|
|
* << 개정 이력 >>
|
|
*
|
|
* 수정일 수정자 수정내용
|
|
* **************** ********************** ********************************************************
|
|
* 2021.11.25 민상익 최초작성
|
|
**/
|
|
-->
|
|
<mapper namespace="tradingStatement">
|
|
|
|
<!--
|
|
/**
|
|
* TEMP 테이블 삭제
|
|
* @since 2021.11.25
|
|
* @author min
|
|
* @version 1.0
|
|
*
|
|
* << 개정 이력 >>
|
|
*
|
|
* 수정일 수정자 수정내용
|
|
* **************** ********************** ********************************************************
|
|
* 2021.11.25 민상익 최초작성
|
|
**/
|
|
-->
|
|
|
|
<delete id="deleteTemp1" parameterType="map">
|
|
/* tradingStatement.deleteTemp1 */
|
|
DELETE FROM TEMP1
|
|
|
|
</delete>
|
|
|
|
<!--
|
|
/**
|
|
* TEMP 테이블 인써트
|
|
* 미착재고테이블의 잔량이 0 이상인 데이터
|
|
*
|
|
* @since 2021.11.25
|
|
* @author min
|
|
* @version 1.0
|
|
*
|
|
* << 개정 이력 >>
|
|
*
|
|
* 수정일 수정자 수정내용
|
|
* **************** ********************** ********************************************************
|
|
* 2021.11.25 민상익 최초작성
|
|
**/
|
|
-->
|
|
|
|
<update id="insertTemp1" parameterType="map">
|
|
/* tradingStatement.insertTemp1 */
|
|
INSERT INTO TEMP1
|
|
(
|
|
SELECT A.OdOrderNo, /* 발주번호*/
|
|
A.ImItemId, /* 품번 */
|
|
RmDueDt, /* 납기예정일자 */
|
|
RmOrderQty, /* 발주수량*/
|
|
RmRcptQty, /* 입고수량*/
|
|
RmRemQty, /* 잔량 */
|
|
SuVndCd, /* 업체코드*/
|
|
'', /* 기종코드*/
|
|
RcArrvDt, /* 입고예정일*/
|
|
RcArrvDt1, /* 입고예정일*/
|
|
RcArrvDt2, /* 입고예정일*/
|
|
RcArrvDt3 /* 입고예정일*/
|
|
FROM SWPC400A_TBL A
|
|
WHERE 1=1
|
|
and RmRemQty > 0
|
|
<if test="condSuVndCd != null and condSuVndCd != '' ">
|
|
AND SuVndCd = #{condSuVndCd} /* 업체코드*/
|
|
</if>
|
|
<if test="condDivision != null and condDivision != '' ">
|
|
AND substring(A.OdOrderNo,2,2) = #{condDivision} /* 사업부 */
|
|
</if>
|
|
)
|
|
|
|
</update>
|
|
|
|
<!--
|
|
/**
|
|
* TEMP 조회
|
|
* @since 2021.11.25
|
|
* @author min
|
|
* @version 1.0
|
|
*
|
|
* << 개정 이력 >>
|
|
*
|
|
* 수정일 수정자 수정내용
|
|
* **************** ********************** ********************************************************
|
|
* 2021.11.25 민상익 최초작성
|
|
**/
|
|
-->
|
|
|
|
<select id="selectTemp1" parameterType="map" resultType="map">
|
|
/* tradingStatement.selectTemp1 */
|
|
SELECT * FROM TEMP1
|
|
</select>
|
|
|
|
<!--
|
|
/**
|
|
* TEMP 조회 한것을 한건씩 구매의뢰 테이블에서 PuLotNo의 prodCd 가져옴
|
|
* @since 2021.11.25
|
|
* @author min
|
|
* @version 1.0
|
|
*
|
|
* << 개정 이력 >>
|
|
*
|
|
* 수정일 수정자 수정내용
|
|
* **************** ********************** ********************************************************
|
|
* 2021.11.25 민상익 최초작성
|
|
**/
|
|
-->
|
|
|
|
<select id="getProdCd" parameterType="map" resultType="map">
|
|
/* tradingStatement.getProdCd */
|
|
SELECT substring(PuLotNo,4,8) AS prodCd /* 기종코드 */
|
|
FROM SWPB630A_TBL
|
|
WHERE PuReqstNo in ( SELECT A.PuReqstNo
|
|
FROM SWPB631A_TBL A, ( SELECT PuReqstNo, /* 구매의뢰번호 */
|
|
ImItemId /* 품번 */
|
|
FROM SWPC361A_TBL
|
|
WHERE OdOrderNo = #{t_odOrderNo} /* 발주번호 */
|
|
AND ImItemId = #{t_imItemId}) B /* 품번 */
|
|
WHERE A.PuReqstNo = B.PuReqstNo
|
|
AND A.ImItemId = B.ImItemId )
|
|
|
|
</select>
|
|
|
|
<!--
|
|
/**
|
|
* TEMP1 업데이트
|
|
* @since 2021.11.25
|
|
* @author min
|
|
* @version 1.0
|
|
*
|
|
* << 개정 이력 >>
|
|
*
|
|
* 수정일 수정자 수정내용
|
|
* **************** ********************** ********************************************************
|
|
* 2021.11.25 민상익 최초작성
|
|
**/
|
|
-->
|
|
|
|
<update id="updateTemp1" parameterType="map">
|
|
/* tradingStatement.updateTemp1 */
|
|
UPDATE TEMP1 SET
|
|
T_ProdCd = #{t_prodCd} /* 기종코드 */
|
|
WHERE T_OdOrderNo = #{t_odOrderNo} /* 발주번호 */
|
|
AND T_ImItemId = #{t_imItemId} /* 품번 */
|
|
|
|
</update>
|
|
|
|
<!--
|
|
/**
|
|
* 완성된 TEMP1 조회
|
|
* @since 2021.11.25
|
|
* @author min
|
|
* @version 1.0
|
|
*
|
|
* << 개정 이력 >>
|
|
*
|
|
* 수정일 수정자 수정내용
|
|
* **************** ********************** ********************************************************
|
|
* 2021.11.25 민상익 최초작성
|
|
**/
|
|
-->
|
|
<select id="getTemp1List" parameterType="map" resultType="map">
|
|
/* tradingStatement.getTemp1List */
|
|
SELECT A.T_ProdCd ProdCd,
|
|
(SELECT ImItemNm FROM SWPA100A_TBL WHERE ImItemId = A.T_ProdCd) ProdNm, /* 기종 */
|
|
A.T_odOrderNo odOrderNo, /* 발주번호 */
|
|
A.T_ImItemId ImItemId, /* 품번 */
|
|
(SELECT ImItemNo FROM SWPA100A_TBL WHERE ImItemId = A.T_ImItemId) ImItemNo,
|
|
(SELECT ImItemNm FROM SWPA100A_TBL WHERE ImItemId = A.T_ImItemId) ImItemNm, /* 품명 */
|
|
(SELECT ImItemSpec FROM SWPA100A_TBL WHERE ImItemId = A.T_ImItemId) ImItemSpec, /* 규격 */
|
|
(SELECT ImMaterial FROM SWPA100A_TBL WHERE ImItemId = A.T_ImItemId) ImMaterial, /* ㅈㅐ질 */
|
|
(SELECT ImUnit FROM SWPA100A_TBL WHERE ImItemId = A.T_ImItemId) ImUnit, /* 단위 */
|
|
A.T_RmDueDt RmDueDt, /* 납기예정일자 */
|
|
A.T_RmOrderQty RmOrderQty, /* 발주수량 */
|
|
A.T_RmRcptQty RmRcptQty, /* 입고수량 */
|
|
A.T_RmRemQty RmRemQty, /* 잔량 */
|
|
(B.IsQty) As IsQty, /* 발행수량 */
|
|
(B.PoorQty) As PoorQty, /* 불량수량 */
|
|
(B.LackQty) As LackQty, /* 부족수량 */
|
|
CAST(NULL AS smallint) OiDeliveryQty, /* 납품수량 */
|
|
/* master.dbo.FnPrice(A.T_SuVndCd,A.T_ImItemId,'99999999') FnPrice, 단가 */
|
|
A.T_RcArrvDt IsDt, /* 납기일자 */
|
|
A.T_RcArrvDt1 As RcArrvDt1, /* 입고예정일*/
|
|
A.T_RcArrvDt2 As RcArrvDt2, /* 입고예정일*/
|
|
A.T_RcArrvDt3 As RcArrvDt3 /* 입고예정일*/
|
|
|
|
FROM TEMP1 A
|
|
LEFT OUTER JOIN (SELECT OdOrderNo, ImItemId, SUM(IsQty) IsQty, SUM(PoorQty) PoorQty, SUM(LackQty) LackQty FROM NSWOS100_TBL C
|
|
WHERE 1=1
|
|
<if test="condSuVndCd != null and condSuVndCd != '' ">
|
|
AND C.SuVndCd = #{condSuVndCd} /* 업체코드*/
|
|
</if>
|
|
<if test="condDivision != null and condDivision != '' ">
|
|
AND substring(C.OdOrderNo,2,2) = #{condDivision} /* 사업부 */
|
|
</if>
|
|
GROUP BY OdOrderNo, ImItemId) As B
|
|
ON SUBSTRING(A.T_OdOrderNo,2,14) = B.OdOrderNo AND A.T_ImItemId = B.ImItemId
|
|
ORDER BY OdOrderNo, RmDueDt, ImItemId
|
|
|
|
</select>
|
|
|
|
<!--
|
|
/**
|
|
* 거래명세서관리 테이블에 저장
|
|
* @since 2021.11.01
|
|
* @author min
|
|
* @version 1.0
|
|
*
|
|
* << 개정 이력 >>
|
|
*
|
|
* 수정일 수정자 수정내용
|
|
* **************** ********************** ********************************************************
|
|
* 2021.11.26 민상익 최초작성
|
|
**/
|
|
-->
|
|
|
|
<update id="saveTradingState" parameterType="map">
|
|
/* tradingStatement.saveTradingState */
|
|
INSERT INTO NSWOS100_TBL (
|
|
SuVndCd /* 업체코드 */
|
|
,IssueDt /* 작성일자 */
|
|
,IssueNo /* 거래명세서번호 */
|
|
,IsNo /* 순번 */
|
|
,ProdCd /* 기종코드 */
|
|
,OdOrderNo /* 발주번호 */
|
|
,ImItemId /* 품번 */
|
|
,RmDueDt /* 납기일자 */
|
|
,RmOrderQty /* 발주수량 */
|
|
,RmRcptQty /* 입고처리수량 */
|
|
,RmRemQty /* 잔량 */
|
|
,IsDt /* 납기일자 */
|
|
,IsQty /* 납품수량 */
|
|
,IsPrice /* 납품단가 */
|
|
,IsAmount /* 납품금액 */
|
|
,RcRcptNo /* */
|
|
,RiSeqNo /* */
|
|
,PoorQty /* 불량수량 */
|
|
,LackQty /* 부족수량 */
|
|
,RiRcptQty /* */
|
|
,GuBun /* */
|
|
,FgPrice /* */
|
|
,FgAmount /* */
|
|
,FgCost /* */
|
|
,FgOrderNo /* */
|
|
,FgCurrency /* */
|
|
,InGB /* */
|
|
) VALUES (
|
|
#{suVndCd} /* 업체코드 */
|
|
,#{issueDt} /* 작성일자 */
|
|
,#{issueNo}::integer /* 거래명세서번호 */
|
|
,#{isNo}::integer /* 순번 */
|
|
,#{prodCd} /* 기종코드 */
|
|
,#{odOrderNo} /* 발주번호 */
|
|
,#{imItemId} /* 품번 */
|
|
,#{rmDueDt} /* 납기일자 */
|
|
,#{rmOrderQty}::integer /* 발주수량 */
|
|
,#{rmRcptQty}::integer /* 입고처리수량 */
|
|
,#{rmRemQty}::integer /* 잔량 */
|
|
,#{isDt} /* 납기일자 */
|
|
,#{isQty}::integer /* 납품수량 */
|
|
,#{isPrice}::numeric /* 납품단가 */
|
|
,#{isAmount}::numeric /* 납품금액 */
|
|
,#{rcRcptNo} /* */
|
|
,#{riSeqNo} /* */
|
|
,#{poorQty}::integer /* 불량수량 */
|
|
,#{lackQty}::integer /* 부족수량 */
|
|
,#{riRcptQty}::integer /* */
|
|
,#{guBun} /* */
|
|
,#{fgPrice}::numeric /* */
|
|
,#{fgAmount}::numeric /* */
|
|
,#{fgCost}::numeric /* */
|
|
,#{fgOrderNo} /* */
|
|
,#{fgCurrency} /* */
|
|
,#{inGB} /* */
|
|
) ON CONFLICT (SuVndCd,IssueDt,IssueNo,IsNo ) DO /* 업체코드,작성일자,거래명세서번호,순번 */
|
|
UPDATE SET
|
|
ProdCd = #{prodCd} /* 기종코드 */
|
|
,OdOrderNo = #{odOrderNo} /* 발주번호 */
|
|
,ImItemId = #{imItemId} /* 품번 */
|
|
,RmDueDt = #{rmDueDt} /* 납기일자 */
|
|
,RmOrderQty = #{rmOrderQty}::integer /* 발주수량 */
|
|
,RmRcptQty = #{rmRcptQty}::integer /* 입고처리수량 */
|
|
,RmRemQty = #{rmRemQty}::integer /* 잔량 */
|
|
,IsDt = #{isDt} /* 납기일자 */
|
|
,IsQty = #{isQty}::integer /* 납품수량 */
|
|
,IsPrice = #{isPrice}::numeric /* 납품단가 */
|
|
,IsAmount = #{isAmount}::numeric /* 납품금액 */
|
|
,RcRcptNo = #{rcRcptNo} /* */
|
|
,RiSeqNo = #{riSeqNo} /* */
|
|
,PoorQty = #{poorQty}::integer /* 불량수량 */
|
|
,LackQty = #{lackQty}::integer /* 부족수량 */
|
|
,RiRcptQty = #{riRcptQty}::integer /* */
|
|
,GuBun = #{guBun} /* */
|
|
,FgPrice = #{fgPrice}::numeric /* */
|
|
,FgAmount = #{fgAmount}::numeric /* */
|
|
,FgCost = #{fgCost}::numeric /* */
|
|
,FgOrderNo = #{fgOrderNo} /* */
|
|
,FgCurrency = #{fgCurrency} /* */
|
|
,InGB = #{inGB} /* */
|
|
|
|
</update>
|
|
|
|
|
|
|
|
<!--
|
|
/**
|
|
* 거래명세서번호 IssueNo 생성
|
|
* @since 2021.11.26
|
|
* @author min
|
|
* @version 1.0
|
|
*
|
|
* << 개정 이력 >>
|
|
*
|
|
* 수정일 수정자 수정내용
|
|
* **************** ********************** ********************************************************
|
|
* 2021.11.26 민상익 최초작성
|
|
**/
|
|
-->
|
|
<select id="getIssueNo" parameterType="map" resultType="int">
|
|
/* tradingStatement.getIssueNo */
|
|
SELECT COALESCE(MAX(IssueNo)::INTEGER, 0) + 1
|
|
FROM NSWOS100_TBL
|
|
WHERE SuVndCd = #{suVndCd} /* 업체코드 */
|
|
and IssueDt = #{issueDt} /* 발행일 */
|
|
</select>
|
|
|
|
<!--
|
|
/**
|
|
* 순번 IsNo 생성
|
|
* @since 2021.11.26
|
|
* @author min
|
|
* @version 1.0
|
|
*
|
|
* << 개정 이력 >>
|
|
*
|
|
* 수정일 수정자 수정내용
|
|
* **************** ********************** ********************************************************
|
|
* 2021.11.26 민상익 최초작성
|
|
**/
|
|
-->
|
|
<select id="getIsNo" parameterType="map" resultType="int">
|
|
/* tradingStatement.getIsNo */
|
|
|
|
SELECT COALESCE(MAX(IsNo)::INTEGER, 0) + 1
|
|
FROM NSWOS100_TBL
|
|
WHERE 0=0
|
|
AND SuVndCd = #{suVndCd} /* 업체코드 */
|
|
AND IssueDt = #{issueDt} /* 발행일 */
|
|
AND IssueNo = #{issueNo} /* 거래명세서번호*/
|
|
</select>
|
|
|
|
|
|
|
|
</mapper>
|
|
|