- 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
2259 lines
70 KiB
XML
2259 lines
70 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">
|
|
<mapper namespace="inventoryMng">
|
|
|
|
<sql id="inventoryMngBase">
|
|
(
|
|
SELECT
|
|
OBJID,
|
|
RESOURCE_TITLE AS RESOURCE_TITLE_ORG,
|
|
PRODUCT_TITLE AS PRODUCT_TITLE_ORG,
|
|
STANDARD,
|
|
UNIT_TITLE,
|
|
UNIT,
|
|
WEIGHT,
|
|
REGDATE,
|
|
TO_CHAR(RM.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE,
|
|
TO_CHAR(RM.REGDATE,'YYYY') AS REGDATE_YEAR_TITLE,
|
|
WRITER,
|
|
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = RM.WRITER) AS WRITER_TITLE,
|
|
IM.QTY,
|
|
IM.REGDATE_TITLE,
|
|
IM.REMARK,
|
|
IM.LOCATION,
|
|
IM.REMARK,
|
|
IM.INVENTORY_OBJID
|
|
FROM
|
|
RESOURCE_MNG RM
|
|
LEFT OUTER JOIN
|
|
(
|
|
SELECT
|
|
OBJID AS INVENTORY_OBJID,
|
|
PARENT_OBJID,
|
|
QTY,
|
|
LOCATION,
|
|
REMARK,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE
|
|
FROM
|
|
INVENTORY_MNG
|
|
WHERE IS_LAST = 'Y'
|
|
) IM
|
|
ON RM.OBJID = IM.PARENT_OBJID
|
|
)
|
|
</sql>
|
|
|
|
<sql id="resourcePriceBase">
|
|
(
|
|
SELECT
|
|
OBJID,
|
|
PARENT_OBJID,
|
|
UNIT_PRICE,
|
|
REMARK,
|
|
REGDATE,
|
|
TO_CHAR(RP.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE,
|
|
TO_CHAR(RP.REGDATE,'YYYY') AS REGDATE_YEAR_TITLE,
|
|
WRITER,
|
|
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = RP.WRITER) AS WRITER_TITLE
|
|
FROM
|
|
RESOURCE_PRICE RP
|
|
)
|
|
</sql>
|
|
|
|
<!-- 재고관리 목록을 가져온다. -->
|
|
<select id="getInventoryMngList_old" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM(
|
|
SELECT
|
|
T.*,
|
|
ROW_NUMBER() OVER(ORDER BY REGDATE DESC) RNUM
|
|
FROM(
|
|
SELECT
|
|
T.*
|
|
FROM (
|
|
|
|
SELECT
|
|
OBJID,
|
|
PART_OBJID,
|
|
(SELECT PART_NO FROM PART_MNG WHERE OBJID::VARCHAR = PART_OBJID) AS PART_NO,
|
|
PART_NAME,
|
|
SPEC,
|
|
MATERIAL,
|
|
UNIT,
|
|
WEIGHT,
|
|
RM.THICKNESS ,
|
|
RM.WIDTH ,
|
|
RM.HEIGHT ,
|
|
RM.OUT_DIAMETER,
|
|
RM.IN_DIAMETER ,
|
|
RM.LENGTH ,
|
|
REGDATE,
|
|
TO_CHAR(RM.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE,
|
|
TO_CHAR(RM.REGDATE,'YYYY') AS REGDATE_YEAR_TITLE,
|
|
WRITER,
|
|
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = RM.WRITER) AS WRITER_TITLE
|
|
|
|
<foreach collection="inventoryLocationList" item="obj">
|
|
,(SELECT I.QTY FROM INVENTORY_MNG I WHERE I.IS_LAST = 'Y' AND RM.OBJID = I.PARENT_OBJID AND I.LOCATION = #{obj.CODE_ID}) AS COL_${obj.CODE_ID}
|
|
</foreach>
|
|
|
|
,(
|
|
SELECT
|
|
SUM(I.QTY)
|
|
FROM
|
|
INVENTORY_MNG I
|
|
WHERE I.IS_LAST = 'Y'
|
|
AND RM.OBJID = I.PARENT_OBJID
|
|
AND I.LOCATION IN
|
|
<foreach collection="inventoryLocationList" item="obj" index="index" separator="," open="(" close=")">
|
|
#{obj.CODE_ID}
|
|
</foreach>
|
|
) AS QTY_SUM,
|
|
(
|
|
SELECT
|
|
I.REMARK
|
|
FROM(
|
|
SELECT
|
|
ROW_NUMBER() OVER(ORDER BY REGDATE DESC) RNUM,
|
|
REMARK
|
|
FROM
|
|
INVENTORY_MNG I
|
|
WHERE I.IS_LAST = 'Y'
|
|
AND RM.OBJID = I.PARENT_OBJID
|
|
) I WHERE 1=1
|
|
AND I.RNUM = 1
|
|
) AS REMARK,
|
|
|
|
CASE WHEN CAD.SAVED_FILE_NAME IS NOT NULL
|
|
THEN 1
|
|
ELSE 0 END AS CU01_CNT,
|
|
|
|
CASE WHEN DRAWING.SAVED_FILE_NAME IS NOT NULL
|
|
THEN 1
|
|
ELSE 0 END AS CU02_CNT,
|
|
|
|
CASE WHEN PDF.SAVED_FILE_NAME IS NOT NULL
|
|
THEN 1
|
|
ELSE 0 END AS CU03_CNT,
|
|
AF.SAVED_FILE_NAME,
|
|
AF.REAL_FILE_NAME,
|
|
REPLACE(AF.FILE_PATH, '\', '\\') AS FILE_PATH
|
|
|
|
FROM
|
|
RESOURCE_MNG RM
|
|
|
|
LEFT OUTER JOIN
|
|
(
|
|
SELECT
|
|
TARGET_OBJID,
|
|
SAVED_FILE_NAME,
|
|
REAL_FILE_NAME,
|
|
FILE_PATH,
|
|
DOC_TYPE
|
|
FROM ATTACH_FILE_INFO
|
|
WHERE 1 = 1
|
|
AND DOC_TYPE IN ('3D_CAD')
|
|
AND STATUS = 'Active'
|
|
) CAD
|
|
ON RM.PART_OBJID = CAD.TARGET_OBJID::varchar
|
|
|
|
LEFT OUTER JOIN
|
|
(
|
|
SELECT
|
|
TARGET_OBJID,
|
|
SAVED_FILE_NAME,
|
|
REAL_FILE_NAME,
|
|
FILE_PATH,
|
|
DOC_TYPE
|
|
FROM ATTACH_FILE_INFO
|
|
WHERE 1 = 1
|
|
AND DOC_TYPE IN ('2D_DRAWING_CAD')
|
|
AND STATUS = 'Active'
|
|
) DRAWING
|
|
ON RM.PART_OBJID = DRAWING.TARGET_OBJID::varchar
|
|
|
|
LEFT OUTER JOIN
|
|
(
|
|
SELECT
|
|
TARGET_OBJID,
|
|
SAVED_FILE_NAME,
|
|
REAL_FILE_NAME,
|
|
FILE_PATH,
|
|
DOC_TYPE
|
|
FROM ATTACH_FILE_INFO
|
|
WHERE 1 = 1
|
|
AND DOC_TYPE IN ('2D_PDF_CAD')
|
|
AND STATUS = 'Active'
|
|
) PDF
|
|
ON RM.PART_OBJID = PDF.TARGET_OBJID::varchar
|
|
|
|
LEFT OUTER JOIN
|
|
(
|
|
SELECT
|
|
TARGET_OBJID,
|
|
SAVED_FILE_NAME,
|
|
REAL_FILE_NAME,
|
|
FILE_PATH,
|
|
DOC_TYPE
|
|
FROM ATTACH_FILE_INFO
|
|
WHERE 1 = 1
|
|
AND DOC_TYPE IN ('PART_SHAPE_IMG')
|
|
AND STATUS = 'Active'
|
|
) AF
|
|
ON RM.PART_OBJID = AF.TARGET_OBJID::varchar
|
|
|
|
|
|
) T
|
|
WHERE 1=1
|
|
<if test="search_year != null and search_year != ''">
|
|
AND T.REGDATE_YEAR_TITLE = #{search_year}
|
|
</if>
|
|
<if test="search_resource_title != null and search_resource_title != ''">
|
|
AND T.RESOURCE_TITLE_ORG = #{search_resource_title}
|
|
</if>
|
|
<if test="search_product_title != null and search_product_title != ''">
|
|
AND T.PRODUCT_TITLE_ORG = #{search_product_title}
|
|
</if>
|
|
) T
|
|
) A WHERE 1=1
|
|
AND <![CDATA[ RNUM::integer <= #{PAGE_END}::integer ]]>
|
|
AND <![CDATA[ RNUM::integer >= #{PAGE_START}::integer]]>
|
|
</select>
|
|
|
|
<select id="getInventoryMngListCnt_old" parameterType="map" resultType="map">
|
|
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
|
|
T.*
|
|
FROM (
|
|
|
|
SELECT
|
|
OBJID,
|
|
PART_OBJID,
|
|
PART_NAME,
|
|
SPEC,
|
|
MATERIAL,
|
|
UNIT,
|
|
WEIGHT,
|
|
REGDATE,
|
|
TO_CHAR(RM.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE,
|
|
TO_CHAR(RM.REGDATE,'YYYY') AS REGDATE_YEAR_TITLE,
|
|
WRITER,
|
|
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = RM.WRITER) AS WRITER_TITLE
|
|
|
|
<foreach collection="inventoryLocationList" item="obj">
|
|
,(SELECT I.QTY FROM INVENTORY_MNG I WHERE I.IS_LAST = 'Y' AND RM.OBJID = I.PARENT_OBJID AND I.LOCATION = #{obj.CODE_ID}) AS COL_${obj.CODE_ID}
|
|
</foreach>
|
|
|
|
,(
|
|
SELECT
|
|
SUM(I.QTY)
|
|
FROM
|
|
INVENTORY_MNG I
|
|
WHERE I.IS_LAST = 'Y'
|
|
AND RM.OBJID = I.PARENT_OBJID
|
|
AND I.LOCATION IN
|
|
<foreach collection="inventoryLocationList" item="obj" index="index" separator="," open="(" close=")">
|
|
#{obj.CODE_ID}
|
|
</foreach>
|
|
) AS QTY_SUM
|
|
|
|
FROM
|
|
RESOURCE_MNG RM
|
|
) T
|
|
) T
|
|
WHERE 1=1
|
|
<if test="search_year != null and search_year != ''">
|
|
AND T.REGDATE_YEAR_TITLE = #{search_year}
|
|
</if>
|
|
<if test="search_resource_title != null and search_resource_title != ''">
|
|
AND T.RESOURCE_TITLE_ORG = #{search_resource_title}
|
|
</if>
|
|
<if test="search_product_title != null and search_product_title != ''">
|
|
AND T.PRODUCT_TITLE_ORG = #{search_product_title}
|
|
</if>
|
|
)A WHERE 1=1
|
|
</select>
|
|
|
|
<!-- 등록된 재고 중 최신정보를 가져온다. -->
|
|
<select id="getFinalInventoryRegistInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
IM.*
|
|
FROM INVENTORY_MNG IM
|
|
WHERE 1=1
|
|
AND IM.IS_LAST = 'Y'
|
|
<if test="OBJID != null and OBJID != ''">
|
|
AND PARENT_OBJID = #{OBJID}::numeric
|
|
</if>
|
|
<if test="IS_LAST != null and IS_LAST != ''">
|
|
AND IS_LAST = #{IS_LAST}
|
|
</if>
|
|
<if test="LOCATION != null and LOCATION != ''">
|
|
AND LOCATION = #{LOCATION}
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 재고정보를 가져온다. -->
|
|
<select id="getInventoryRegistInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID,
|
|
STANDARD,
|
|
UNIT_TITLE,
|
|
UNIT,
|
|
WEIGHT,
|
|
REGDATE,
|
|
TO_CHAR(RM.REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE,
|
|
TO_CHAR(RM.REGDATE,'YYYY') AS REGDATE_YEAR_TITLE,
|
|
WRITER,
|
|
(SELECT DEPT_NAME||' '||USER_NAME FROM USER_INFO WHERE USER_ID = RM.WRITER) AS WRITER_TITLE,
|
|
IM.QTY,
|
|
IM.REGDATE_TITLE,
|
|
IM.REMARK,
|
|
IM.LOCATION,
|
|
IM.REMARK,
|
|
IM.INVENTORY_OBJID
|
|
FROM
|
|
RESOURCE_MNG RM
|
|
LEFT OUTER JOIN
|
|
(
|
|
SELECT
|
|
OBJID AS INVENTORY_OBJID,
|
|
PARENT_OBJID,
|
|
QTY,
|
|
LOCATION,
|
|
REMARK,
|
|
TO_CHAR(REGDATE,'YYYY-MM-DD') AS REGDATE_TITLE
|
|
FROM
|
|
INVENTORY_MNG
|
|
WHERE 1=1
|
|
<if test="IS_LAST != null and IS_LAST != ''">
|
|
AND IS_LAST = #{IS_LAST}
|
|
</if>
|
|
<if test="LOCATION != null and LOCATION != ''">
|
|
AND LOCATION = #{LOCATION}
|
|
</if>
|
|
) IM
|
|
ON RM.OBJID = IM.PARENT_OBJID
|
|
WHERE 1=1
|
|
<if test="OBJID != null and OBJID != ''">
|
|
AND RM.OBJID = #{OBJID}::numeric
|
|
</if>
|
|
</select>
|
|
|
|
<!-- 해당 자재마스터내 동일 위치 재고 변경 시 최종여부를 초기화 한다. -->
|
|
<update id="resetInventoryRegist" parameterType="map">
|
|
UPDATE
|
|
INVENTORY_MNG
|
|
SET
|
|
IS_LAST = 'N'
|
|
WHERE PARENT_OBJID = #{PARENT_OBJID}::numeric
|
|
AND LOCATION = #{LOCATION}
|
|
</update>
|
|
|
|
<!-- 재고관리 재고등록 -->
|
|
<update id="insertInventoryRegist" parameterType="map">
|
|
INSERT INTO INVENTORY_MNG
|
|
(
|
|
OBJID
|
|
,PARENT_OBJID
|
|
,QTY
|
|
,LOCATION
|
|
,REMARK
|
|
,REGDATE
|
|
,WRITER
|
|
,IS_LAST
|
|
)
|
|
VALUES
|
|
(
|
|
#{OBJID}::numeric
|
|
,#{PARENT_OBJID}::numeric
|
|
,#{QTY}::numeric
|
|
,#{LOCATION}
|
|
,#{REMARK}
|
|
,#{DELIVERY_DATE}::TIMESTAMP
|
|
,#{WRITER}
|
|
,'Y'
|
|
)
|
|
</update>
|
|
|
|
<!-- 재고관리 재고등록(발주서 입고) -->
|
|
<update id="insertDeliveryInventoryRegist" parameterType="map">
|
|
INSERT INTO INVENTORY_MNG
|
|
(
|
|
OBJID
|
|
,PARENT_OBJID
|
|
,PART_OBJID
|
|
,LD_PART_OBJID
|
|
,QTY
|
|
,LOCATION
|
|
,SUB_LOCATION
|
|
,REMARK
|
|
,REGDATE
|
|
,WRITER
|
|
,IS_LAST
|
|
)
|
|
VALUES
|
|
(
|
|
#{OBJID}::NUMERIC
|
|
,(SELECT OBJID FROM RESOURCE_MNG WHERE 1=1 AND PART_OBJID = #{PART_OBJID})
|
|
,#{PART_OBJID}
|
|
,#{LD_PART_OBJID}
|
|
,#{QTY}::NUMERIC
|
|
,#{LOCATION}
|
|
,#{SUB_LOCATION}
|
|
,#{REMARK}
|
|
,NOW()
|
|
,#{WRITER}
|
|
,'Y'
|
|
)
|
|
</update>
|
|
<update id="insertDeliveryInventoryRegistLD" parameterType="map">
|
|
INSERT INTO INVENTORY_MNG
|
|
(
|
|
OBJID
|
|
,PARENT_OBJID
|
|
,PART_OBJID
|
|
,LD_PART_OBJID
|
|
,QTY
|
|
,LOCATION
|
|
,SUB_LOCATION
|
|
,REMARK
|
|
,REGDATE
|
|
,WRITER
|
|
,IS_LAST
|
|
)
|
|
VALUES
|
|
(
|
|
#{OBJID}::NUMERIC
|
|
,(SELECT OBJID FROM RESOURCE_MNG WHERE 1=1 AND LD_PART_OBJID = #{LD_PART_OBJID})
|
|
,#{PART_OBJID}
|
|
,#{LD_PART_OBJID}
|
|
,#{QTY}::NUMERIC
|
|
,#{LOCATION}
|
|
,#{SUB_LOCATION}
|
|
,#{REMARK}
|
|
,NOW()
|
|
,#{WRITER}
|
|
,'Y'
|
|
)
|
|
</update>
|
|
|
|
<!-- 자재투입 등록 -->
|
|
<insert id="insertInputResource" parameterType="map">
|
|
INSERT INTO INPUT_RESOURCE
|
|
(
|
|
OBJID
|
|
,PARENT_OBJID
|
|
,TARGET_OBJID
|
|
,INPUT_QTY
|
|
,INPUT_DATE
|
|
,REGDATE
|
|
,WRITER
|
|
,USED
|
|
)
|
|
VALUES
|
|
(
|
|
#{OBJID}::numeric
|
|
,#{PARENT_OBJID}::numeric
|
|
,#{TARGET_OBJID}::numeric
|
|
,#{INPUT_QTY}::numeric
|
|
,#{INPUT_DATE}::TIMESTAMP
|
|
,NOW()
|
|
,#{WRITER}
|
|
,#{used}
|
|
)
|
|
</insert>
|
|
|
|
<delete id="deleteInventoryMng" parameterType="map">
|
|
DELETE FROM INVENTORY_MNG WHERE PARENT_OBJID = #{OBJID}::numeric
|
|
</delete>
|
|
|
|
<!-- 재고관리 이력목록을 가져온다. -->
|
|
<select id="getInventoryHistoryList" parameterType="map" resultType="map">
|
|
SELECT
|
|
T.*
|
|
FROM (
|
|
SELECT
|
|
ROW_NUMBER() OVER(ORDER BY IM.REGDATE) RNUM,
|
|
RM.OBJID,
|
|
(SELECT PART_NO FROM PART_MNG WHERE OBJID::VARCHAR = RM.PART_OBJID) AS PART_NO,
|
|
RM.PART_OBJID,
|
|
RM.PART_NAME,
|
|
RM.SPEC,
|
|
RM.MATERIAL,
|
|
RM.WEIGHT,
|
|
RM.THICKNESS ,
|
|
RM.WIDTH ,
|
|
RM.HEIGHT ,
|
|
RM.OUT_DIAMETER,
|
|
RM.IN_DIAMETER ,
|
|
RM.LENGTH ,
|
|
RM.UNIT,
|
|
IM.QTY,
|
|
IR.INPUT_QTY,
|
|
IR.USED,
|
|
TO_CHAR(IR.INPUT_DATE,'YYYY-MM-DD') AS INPUT_DATE_TITLE,
|
|
IM.REMARK,
|
|
MDM.WARE_QTY AS ARRIVAL_QTY,
|
|
MDM.WARE_DATE AS ARRIVAL_DATE
|
|
FROM
|
|
INVENTORY_MNG IM
|
|
INNER JOIN
|
|
RESOURCE_MNG RM
|
|
ON RM.OBJID = IM.PARENT_OBJID
|
|
LEFT OUTER JOIN
|
|
INPUT_RESOURCE IR
|
|
ON IM.OBJID = IR.PARENT_OBJID
|
|
LEFT OUTER JOIN
|
|
(
|
|
SELECT
|
|
T.*,
|
|
CODE_NAME(RESULT) AS RESULT_NAME
|
|
FROM MATERIAL_DETAIL_MGMT T
|
|
) MDM
|
|
ON IM.OBJID = MDM.INVENTORY_OBJID
|
|
AND UPPER(MDM.RESULT_NAME) = UPPER('OK')
|
|
WHERE 1=1
|
|
<if test="OBJID != null and OBJID != ''">
|
|
AND RM.OBJID = #{OBJID}::numeric
|
|
</if>
|
|
) T
|
|
WHERE 1=1
|
|
ORDER BY T.RNUM DESC
|
|
</select>
|
|
|
|
|
|
<select id="getInventoryMngInfoForOrder" parameterType="map" resultType="map">
|
|
|
|
WITH MATER AS(SELECT
|
|
RM.RESOURCE_TITLE,
|
|
RM.PRODUCT_TITLE,
|
|
(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = RM.RESOURCE_TITLE AND O.PARENT_CODE_ID = #{RESOURCE_TITLE_CD}) AS RESOURCE_NAME,
|
|
(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = RM.PRODUCT_TITLE AND O.PARENT_CODE_ID = RM.RESOURCE_TITLE) AS PRODUCT_NAME,
|
|
RM.STANDARD
|
|
|
|
FROM
|
|
INVENTORY_MNG IM , RESOURCE_MNG RM , (SELECT (SELECT O.RESOURCE_TITLE FROM RESOURCE_MNG AS O WHERE O.OBJID = T1.RESOURCE_OBJID) AS RESOURCE_TITLE FROM MATERIAL_MASTER_MGMT AS T ,MATERIAL_DETAIL_MGMT T1
|
|
WHERE T.MATERIAL_MASTER_OBJID = T1.MATERIAL_MASTER_OBJID
|
|
AND T.STATUS_CD IN('PURSTCD00700','PURSTCD00800','PURSTCD00900')) AS MATER
|
|
WHERE RM.OBJID = IM.PARENT_OBJID
|
|
AND IM.IS_LAST = 'Y'
|
|
AND RM.RESOURCE_TITLE = MATER.RESOURCE_TITLE
|
|
GROUP BY
|
|
RM.RESOURCE_TITLE,
|
|
RM.PRODUCT_TITLE,
|
|
RM.STANDARD)
|
|
|
|
SELECT
|
|
T.*
|
|
,CASE WHEN
|
|
(SELECT COUNT(1) FROM MATER AS O1 WHERE O1.PRODUCT_NAME = T.PRODUCT_NAME AND O1.STANDARD = T.STANDARD) <![CDATA[ > ]]> 0
|
|
THEN '발주'
|
|
ELSE NULL END AS ORDER_YN
|
|
FROM(
|
|
SELECT
|
|
RM.RESOURCE_TITLE,
|
|
RM.PRODUCT_TITLE,
|
|
(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = RM.RESOURCE_TITLE AND O.PARENT_CODE_ID = #{RESOURCE_TITLE_CD}) AS RESOURCE_NAME,
|
|
(SELECT O.CODE_NAME FROM COMM_CODE O WHERE O.CODE_ID = RM.PRODUCT_TITLE AND O.PARENT_CODE_ID = RM.RESOURCE_TITLE) AS PRODUCT_NAME,
|
|
RM.STANDARD,
|
|
SUM(IM.QTY) AS INVENTORY_QTY
|
|
FROM
|
|
INVENTORY_MNG IM
|
|
INNER JOIN
|
|
RESOURCE_MNG RM
|
|
ON RM.OBJID = IM.PARENT_OBJID
|
|
WHERE 1=1
|
|
AND IM.IS_LAST = 'Y'
|
|
GROUP BY
|
|
RM.RESOURCE_TITLE,
|
|
RM.PRODUCT_TITLE,
|
|
RM.STANDARD
|
|
) T
|
|
WHERE 1=1
|
|
<!-- <if test="RESOURCE_NAME != null and RESOURCE_NAME != ''">
|
|
AND T.RESOURCE_NAME = #{RESOURCE_NAME}
|
|
</if> -->
|
|
<if test="PRODUCT_NAME != null and PRODUCT_NAME != ''">
|
|
AND T.PRODUCT_NAME = #{PRODUCT_NAME}
|
|
</if>
|
|
<if test="STANDARD != null and STANDARD != ''">
|
|
AND T.STANDARD = #{STANDARD}
|
|
</if>
|
|
|
|
</select>
|
|
|
|
|
|
|
|
<!-- 재고관리 재고등록 -->
|
|
<insert id="saveinventoryForm" parameterType="map">
|
|
INSERT INTO INVENTORY_MGMT
|
|
(
|
|
OBJID
|
|
,CONTRACT_OBJID
|
|
,UNIT
|
|
,PART_OBJID
|
|
,CLS_CD
|
|
,CAU_CD
|
|
,QTY
|
|
,LOCATION
|
|
,REG_DATE
|
|
,PRICE
|
|
,WRITER
|
|
)
|
|
VALUES
|
|
(
|
|
|
|
#{objid}
|
|
,#{project_no}
|
|
,#{unit}
|
|
,#{part_no}
|
|
,#{cls_cd}
|
|
,#{cau_cd}
|
|
,#{qty}
|
|
,#{location}
|
|
,#{reg_date}
|
|
,#{price}
|
|
,#{writer}
|
|
)
|
|
</insert>
|
|
|
|
|
|
<!-- 재고관리 목록 Count를 가져온다. -->
|
|
<select id="getInventoryMngListCnt" 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
|
|
(SELECT PROJECT_NO FROM PROJECT_MGMT AS O WHERE O.OBJID = IM.CONTRACT_OBJID) AS PROJECT_NO
|
|
<!-- ,(SELECT CODE_NAME FROM COMM_CODE AS O WHERE O.CODE_ID = IM.UNIT) AS UNIT_NAME -->
|
|
,(SELECT TASK_NAME FROM PMS_WBS_TASK AS O WHERE O.OBJID = IM.UNIT) AS UNIT_NAME
|
|
,(SELECT PART_NO FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS PART_NO
|
|
,(SELECT PART_NAME FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS PART_NAME
|
|
,(SELECT SPEC FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS SPEC
|
|
,(SELECT MAKER FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS MAKER
|
|
,(SELECT CODE_NAME FROM COMM_CODE AS O WHERE O.CODE_ID = IM.CLS_CD) AS CLS_CD_NAME
|
|
,IM.CLS_CD
|
|
,(SELECT CODE_NAME FROM COMM_CODE AS O WHERE O.CODE_ID = IM.CAU_CD) AS CAU_CD_NAME
|
|
,IM.CAU_CD
|
|
,IM.QTY
|
|
,IM.LOCATION
|
|
,(SELECT CODE_NAME FROM COMM_CODE AS O WHERE O.CODE_ID = IM.LOCATION) AS LOCATION_NAME
|
|
,IM.REG_DATE
|
|
,IM.PRICE
|
|
,IM.WRITER
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = IM.WRITER) AS WRITER_NAME
|
|
,SUBSTR(REG_DATE,0,5) AS REGDATE
|
|
,CONTRACT_OBJID
|
|
,UNIT
|
|
FROM INVENTORY_MGMT AS IM
|
|
) TBL WHERE 1=1
|
|
<if test="Year != null and Year !=''">
|
|
AND REGDATE = #{Year}
|
|
</if>
|
|
|
|
<if test="project_no != null and project_no != ''">
|
|
AND CONTRACT_OBJID = #{project_no}
|
|
</if>
|
|
|
|
<if test="unit_code != null and unit_code != ''">
|
|
AND UNIT = #{unit_code}
|
|
</if>
|
|
|
|
<if test="part_no != null and part_no != ''">
|
|
AND UPPER(PART_NO) LIKE UPPER('%${part_no}%')
|
|
</if>
|
|
|
|
<if test="part_name != null and part_name != ''">
|
|
AND UPPER(PART_NAME) LIKE UPPER('%${part_name}%')
|
|
</if>
|
|
|
|
<if test="spec != null and spec != ''">
|
|
AND UPPER(SPEC) LIKE UPPER('%${spec}%')
|
|
</if>
|
|
|
|
<if test="cls_cd != null and cls_cd != ''">
|
|
AND CLS_CD = #{cls_cd}
|
|
</if>
|
|
|
|
<if test="cau_cd != null and cau_cd != ''">
|
|
AND CAU_CD = #{cau_cd}
|
|
</if>
|
|
|
|
<if test="location != null and location != ''">
|
|
AND LOCATION = #{location}
|
|
</if>
|
|
|
|
<if test="writer != null and writer != ''">
|
|
AND WRITER = #{writer}
|
|
</if>
|
|
|
|
) TBL WHERE 1=1
|
|
)A WHERE 1=1
|
|
</select>
|
|
|
|
<!-- 재고관리 목록을 가져온다. -->
|
|
<select id="getInventoryMngList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM(
|
|
SELECT TBL.*, ROW_NUMBER() OVER(ORDER BY REG_DATE DESC) RNUM
|
|
FROM(
|
|
SELECT TBL.*
|
|
FROM(
|
|
SELECT
|
|
OBJID
|
|
,(SELECT PROJECT_NO FROM PROJECT_MGMT AS O WHERE O.OBJID = IM.CONTRACT_OBJID) AS PROJECT_NO
|
|
<!-- ,(SELECT CODE_NAME FROM COMM_CODE AS O WHERE O.CODE_ID = IM.UNIT) AS UNIT_NAME -->
|
|
,(SELECT O.UNIT_NO || '-' || O.TASK_NAME FROM PMS_WBS_TASK AS O WHERE O.OBJID = IM.UNIT) AS UNIT_NAME
|
|
,(SELECT PART_NO FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS PART_NO
|
|
,(SELECT PART_NAME FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS PART_NAME
|
|
,(SELECT SPEC FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS SPEC
|
|
,(SELECT MAKER FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS MAKER
|
|
,(SELECT CODE_NAME FROM COMM_CODE AS O WHERE O.CODE_ID = IM.CLS_CD) AS CLS_CD_NAME
|
|
,IM.CLS_CD
|
|
,(SELECT CODE_NAME FROM COMM_CODE AS O WHERE O.CODE_ID = IM.CAU_CD) AS CAU_CD_NAME
|
|
,IM.CAU_CD
|
|
,IM.QTY
|
|
,IM.LOCATION
|
|
,(SELECT CODE_NAME FROM COMM_CODE AS O WHERE O.CODE_ID = IM.LOCATION) AS LOCATION_NAME
|
|
,IM.REG_DATE
|
|
,IM.PRICE
|
|
,IM.WRITER
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = IM.WRITER) AS WRITER_NAME
|
|
,SUBSTR(REG_DATE,0,5) AS REGDATE
|
|
,CONTRACT_OBJID
|
|
,UNIT
|
|
FROM INVENTORY_MGMT AS IM
|
|
) TBL
|
|
WHERE 1=1
|
|
|
|
<if test="Year != null and Year !=''">
|
|
AND REGDATE = #{Year}
|
|
</if>
|
|
|
|
<if test="project_no != null and project_no != ''">
|
|
AND CONTRACT_OBJID = #{project_no}
|
|
</if>
|
|
|
|
<if test="unit_code != null and unit_code != ''">
|
|
AND UNIT = #{unit_code}
|
|
</if>
|
|
|
|
<if test="part_no != null and part_no != ''">
|
|
AND UPPER(PART_NO) LIKE UPPER('%${part_no}%')
|
|
</if>
|
|
|
|
<if test="part_name != null and part_name != ''">
|
|
AND UPPER(PART_NAME) LIKE UPPER('%${part_name}%')
|
|
</if>
|
|
|
|
<if test="spec != null and spec != ''">
|
|
AND UPPER(SPEC) LIKE UPPER('%${spec}%')
|
|
</if>
|
|
|
|
<if test="cls_cd != null and cls_cd != ''">
|
|
AND CLS_CD = #{cls_cd}
|
|
</if>
|
|
|
|
<if test="cau_cd != null and cau_cd != ''">
|
|
AND CAU_CD = #{cau_cd}
|
|
</if>
|
|
|
|
<if test="location != null and location != ''">
|
|
AND LOCATION = #{location}
|
|
</if>
|
|
|
|
<if test="writer != null and writer != ''">
|
|
AND WRITER = #{writer}
|
|
</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="getInventoryMngGridList" parameterType="map" resultType="map">
|
|
SELECT
|
|
IM.*
|
|
,(SELECT PROJECT_NO FROM PROJECT_MGMT AS O WHERE O.OBJID = IM.CONTRACT_OBJID) AS PROJECT_NO
|
|
,(COALESCE((SELECT SUM(CASE WHEN (RECEIPT_QTY IS NULL OR RECEIPT_QTY ='')
|
|
THEN 0
|
|
ELSE (RECEIPT_QTY::numeric - coalesce(MOVE_QTY::numeric, 0)) END)
|
|
FROM INVENTORY_MGMT_IN AS O WHERE O.PARENT_OBJID = IM.OBJID
|
|
),0)
|
|
- COALESCE((SELECT SUM(CASE WHEN (REQUEST_QTY IS NULL OR REQUEST_QTY ='')
|
|
THEN 0
|
|
ELSE REQUEST_QTY::NUMERIC END)
|
|
<!-- SUM(CASE WHEN (OUT_QTY IS NULL OR OUT_QTY ='')
|
|
THEN 0
|
|
ELSE OUT_QTY::NUMERIC END) -->
|
|
FROM INVENTORY_MGMT_OUT AS O WHERE O.PARENT_OBJID = IM.OBJID
|
|
),0)) AS USE_CNT
|
|
,(COALESCE((SELECT SUM(CASE WHEN (RECEIPT_QTY IS NULL OR RECEIPT_QTY ='')
|
|
THEN 0
|
|
ELSE (RECEIPT_QTY::numeric - coalesce(MOVE_QTY::numeric, 0)) END)
|
|
FROM INVENTORY_MGMT_IN AS O
|
|
,INVENTORY_MGMT AS S_IM
|
|
WHERE S_IM.PART_OBJID = IM.PART_OBJID
|
|
AND O.PARENT_OBJID = S_IM.OBJID
|
|
),0)
|
|
- COALESCE((SELECT SUM(CASE WHEN (REQUEST_QTY IS NULL OR REQUEST_QTY ='')
|
|
THEN 0
|
|
ELSE REQUEST_QTY::NUMERIC END)
|
|
FROM INVENTORY_MGMT_OUT AS O
|
|
,INVENTORY_MGMT AS S_IM
|
|
WHERE S_IM.PART_OBJID = IM.PART_OBJID
|
|
AND O.PARENT_OBJID = S_IM.OBJID
|
|
),0)) AS USE_CNT_ALL
|
|
,COALESCE((SELECT SUM(CASE WHEN (OUT_QTY IS NULL OR OUT_QTY ='')
|
|
THEN 0
|
|
ELSE OUT_QTY::NUMERIC END)
|
|
FROM INVENTORY_MGMT_OUT AS O WHERE O.PARENT_OBJID = IM.OBJID
|
|
),0) AS REQUEST_QTY
|
|
,(SELECT O.UNIT_NO || '-' || O.TASK_NAME FROM PMS_WBS_TASK AS O WHERE O.OBJID = IM.UNIT) AS UNIT_NAME
|
|
<!-- ,(SELECT CODE_NAME FROM COMM_CODE AS O WHERE O.CODE_ID = IM.LOCATION) AS LOCATION_NAME -->
|
|
,(SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT CODE_NAME(LOCATION)), ',') FROM INVENTORY_MGMT_IN IMI WHERE IMI.PARENT_OBJID = IM.OBJID<!-- AND (IMI.RECEIPT_QTY::NUMERIC - NVL(IMI.MOVE_QTY,'0')::NUMERIC - NVL(IMI.OUT_QTY,'0')::NUMERIC) > 0 -->) AS LOCATION_NAME
|
|
,(SELECT MAX(O.REMARK) FROM INVENTORY_MGMT_OUT_MASTER AS O
|
|
WHERE O.OBJID IN (SELECT T1.INVENTORY_REQUEST_MASTER_OBJID FROM INVENTORY_MGMT_OUT AS T1 WHERE T1.PARENT_OBJID = IM.OBJID ORDER BY T1.REGDATE DESC LIMIT 1)
|
|
) AS REMARK
|
|
,(SELECT CODE_NAME FROM COMM_CODE AS O WHERE O.CODE_ID = IM.CLS_CD) AS CLS_CD_NAME
|
|
,(SELECT CODE_NAME FROM COMM_CODE AS O WHERE O.CODE_ID = IM.CAU_CD) AS CAU_CD_NAME
|
|
FROM(
|
|
SELECT
|
|
ROW_NUMBER() OVER() AS RNUM,
|
|
IM.OBJID
|
|
,IM.PART_OBJID
|
|
|
|
<!--
|
|
,(SELECT PART_NO FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS PART_NO
|
|
,(SELECT PART_NAME FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS PART_NAME
|
|
,(SELECT SPEC FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS SPEC
|
|
,(SELECT MAKER FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS MAKER
|
|
,(SELECT CODE_NAME(PART_TYPE) FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS PART_TYPE_NAME
|
|
,(SELECT PART_TYPE FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS PART_TYPE
|
|
,(SELECT MATERIAL FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS MATERIAL
|
|
-->
|
|
, P.PART_NO
|
|
, P.PART_NAME
|
|
, P.SPEC
|
|
, P.MAKER
|
|
, CODE_NAME(PART_TYPE) PART_TYPE_NAME
|
|
, P.PART_TYPE
|
|
, P.MATERIAL
|
|
|
|
,IM.CLS_CD
|
|
,IM.CAU_CD
|
|
,IM.QTY
|
|
,IM.LOCATION
|
|
,IM.REG_DATE
|
|
,IM.PRICE
|
|
,IM.WRITER
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = IM.WRITER) AS WRITER_NAME
|
|
,SUBSTR(IM.REG_DATE,0,5) AS REGDATE
|
|
,IM.CONTRACT_OBJID
|
|
,IM.UNIT
|
|
FROM
|
|
INVENTORY_MGMT AS IM
|
|
INNER JOIN PART_MNG P
|
|
ON P.OBJID::VARCHAR = IM.PART_OBJID
|
|
WHERE 1=1
|
|
<if test="Year != null and Year !=''">
|
|
AND IM.REGDATE = #{Year}
|
|
</if>
|
|
<!-- <if test="project_no != null and project_no != ''">
|
|
AND CONTRACT_OBJID = #{project_no}
|
|
</if> -->
|
|
<if test="project_nos != null and project_nos != ''">
|
|
AND IM.CONTRACT_OBJID IN
|
|
<foreach item="state" collection="project_nos.split(',')"
|
|
open="(" separator="," close=")">
|
|
#{state}
|
|
</foreach>
|
|
</if>
|
|
<if test="unit_code != null and unit_code != ''">
|
|
AND IM.UNIT = #{unit_code}
|
|
</if>
|
|
<if test="part_no != null and part_no != ''">
|
|
AND UPPER(P.PART_NO) LIKE UPPER('%${part_no}%')
|
|
</if>
|
|
<if test="part_name != null and part_name != ''">
|
|
AND UPPER(P.PART_NAME) LIKE UPPER('%${part_name}%')
|
|
</if>
|
|
<if test="spec != null and spec != ''">
|
|
AND UPPER(P.SPEC) LIKE UPPER('%${spec}%')
|
|
</if>
|
|
<if test="part_type != null and part_type != ''">
|
|
AND P.PART_TYPE = #{part_type}
|
|
</if>
|
|
<if test="cls_cd != null and cls_cd != ''">
|
|
AND IM.CLS_CD = #{cls_cd}
|
|
</if>
|
|
<if test="cau_cd != null and cau_cd != ''">
|
|
AND IM.CAU_CD = #{cau_cd}
|
|
</if>
|
|
<if test="location != null and location != ''">
|
|
AND IM.LOCATION = #{location}
|
|
</if>
|
|
<if test="writer != null and writer != ''">
|
|
AND IM.WRITER = #{writer}
|
|
</if>
|
|
) IM
|
|
WHERE 1=1
|
|
</select>
|
|
|
|
<delete id="deleteinventoryList" parameterType="map">
|
|
DELETE FROM INVENTORY_MGMT
|
|
WHERE OBJID IN
|
|
<foreach collection="checkArr" item="objkey" index="index" separator="," open="(" close=")">
|
|
#{objkey}
|
|
</foreach>
|
|
</delete>
|
|
|
|
<select id="inventoryMngDashList" parameterType="map" resultType="map">
|
|
SELECT
|
|
TO_CHAR(TO_DATE(REG_DATE,'YYYY-MM-DD'),'YYYY') AS YYYY
|
|
|
|
,COUNT(DISTINCT CASE WHEN CLS_CD = '0001205' THEN PART_OBJID ELSE NULL END) AS I_PART_CNT
|
|
,SUM(DISTINCT CASE WHEN CLS_CD = '0001205' THEN T.QTY::NUMERIC ELSE NULL END) AS I_QTY
|
|
,SUM(CASE WHEN CLS_CD = '0001205' THEN T.QTY::NUMERIC * T.PRICE::NUMERIC ELSE NULL END) AS I_PRICE
|
|
,SUM(DISTINCT CASE WHEN CLS_CD = '0001205' AND CAU_CD = '0001208' THEN T.QTY::NUMERIC ELSE NULL END) AS I_QTY_C1
|
|
,SUM(DISTINCT CASE WHEN CLS_CD = '0001205' AND CAU_CD = '0001211' THEN T.QTY::NUMERIC ELSE NULL END) AS I_QTY_C2
|
|
,SUM(DISTINCT CASE WHEN CLS_CD = '0001205' AND CAU_CD = '0001209' THEN T.QTY::NUMERIC ELSE NULL END) AS I_QTY_C3
|
|
|
|
,SUM(H_INPUT_QTY::NUMERIC) AS T_QTY
|
|
,SUM(H_INPUT_QTY::NUMERIC * T.PRICE::NUMERIC) AS T_PRICE
|
|
,SUM(CASE WHEN CLS_CD = '0001205' THEN (T.QTY::NUMERIC - COALESCE(H_INPUT_QTY::NUMERIC,0)) ELSE NULL END) AS T_REMAIN_QTY
|
|
,SUM(CASE WHEN CLS_CD = '0001205' THEN (QTY::NUMERIC - COALESCE(H_INPUT_QTY::NUMERIC,0)) * PRICE::NUMERIC ELSE NULL END) AS T_REMAIN_PRICE
|
|
|
|
,COUNT(DISTINCT CASE WHEN CLS_CD = '0001206' THEN PART_OBJID ELSE NULL END) AS D_PART_CNT
|
|
,SUM(CASE WHEN CLS_CD = '0001206' THEN QTY::NUMERIC ELSE NULL END) AS D_QTY
|
|
,SUM(CASE WHEN CLS_CD = '0001206' THEN QTY::NUMERIC * PRICE::NUMERIC ELSE NULL END) AS D_PRICE
|
|
,SUM(CASE WHEN CLS_CD = '0001206' AND CAU_CD = '0001209' THEN QTY::NUMERIC ELSE NULL END) AS D_QTY_C1
|
|
,SUM(CASE WHEN CLS_CD = '0001206' AND CAU_CD = '0001210' THEN QTY::NUMERIC ELSE NULL END) AS D_QTY_C2
|
|
|
|
FROM
|
|
(SELECT
|
|
T.*, H_INPUT_QTY
|
|
FROM
|
|
INVENTORY_MGMT T
|
|
LEFT JOIN (SELECT PARENT_OBJID, COALESCE(SUM(INPUT_QTY::NUMERIC),0) AS H_INPUT_QTY
|
|
FROM INVENTORY_MGMT_HISTORY
|
|
GROUP BY PARENT_OBJID )A
|
|
ON T.OBJID = A.PARENT_OBJID)T
|
|
WHERE 1=1
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(TO_DATE(REG_DATE,'YYYY-MM-DD'),'YYYY') = #{Year}
|
|
</if>
|
|
GROUP BY 1
|
|
</select>
|
|
|
|
|
|
|
|
<!-- 재고품 투입 목록 Count를 가져온다. -->
|
|
<select id="getInventoryMngInputListCnt" 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
|
|
(SELECT PROJECT_NO FROM PROJECT_MGMT AS O WHERE O.OBJID = IM.CONTRACT_OBJID) AS PROJECT_NO
|
|
<!-- ,(SELECT CODE_NAME FROM COMM_CODE AS O WHERE O.CODE_ID = IM.UNIT) AS UNIT_NAME -->
|
|
,(SELECT TASK_NAME FROM PMS_WBS_TASK AS O WHERE O.OBJID = IM.UNIT) AS UNIT_NAME
|
|
,(SELECT PART_NO FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS PART_NO
|
|
,(SELECT PART_NAME FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS PART_NAME
|
|
,(SELECT SPEC FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS SPEC
|
|
,(SELECT MAKER FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS MAKER
|
|
,(SELECT CODE_NAME FROM COMM_CODE AS O WHERE O.CODE_ID = IM.CLS_CD) AS CLS_CD_NAME
|
|
,IM.CLS_CD
|
|
,(SELECT CODE_NAME FROM COMM_CODE AS O WHERE O.CODE_ID = IM.CAU_CD) AS CAU_CD_NAME
|
|
,IM.CAU_CD
|
|
,IM.QTY
|
|
,IM.LOCATION
|
|
,(SELECT CODE_NAME FROM COMM_CODE AS O WHERE O.CODE_ID = IM.LOCATION) AS LOCATION_NAME
|
|
,IM.REG_DATE
|
|
,IM.PRICE
|
|
,IM.WRITER
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = IM.WRITER) AS WRITER_NAME
|
|
,SUBSTR(REG_DATE,0,5) AS REGDATE
|
|
,CONTRACT_OBJID
|
|
,UNIT
|
|
FROM INVENTORY_MGMT AS IM
|
|
) TBL WHERE 1=1
|
|
AND CLS_CD = '0001205'
|
|
<if test="Year != null and Year !=''">
|
|
AND REGDATE = #{Year}
|
|
</if>
|
|
|
|
<if test="project_no != null and project_no != ''">
|
|
AND CONTRACT_OBJID = #{project_no}
|
|
</if>
|
|
|
|
<if test="unit_code != null and unit_code != ''">
|
|
AND UNIT = #{unit_code}
|
|
</if>
|
|
|
|
<if test="part_no != null and part_no != ''">
|
|
AND UPPER(PART_NO) LIKE UPPER('%${part_no}%')
|
|
</if>
|
|
|
|
<if test="part_name != null and part_name != ''">
|
|
AND UPPER(PART_NAME) LIKE UPPER('%${part_name}%')
|
|
</if>
|
|
|
|
<if test="spec != null and spec != ''">
|
|
AND UPPER(SPEC) LIKE UPPER('%${spec}%')
|
|
</if>
|
|
|
|
<if test="cau_cd != null and cau_cd != ''">
|
|
AND CAU_CD = #{cau_cd}
|
|
</if>
|
|
|
|
<if test="location != null and location != ''">
|
|
AND LOCATION = #{location}
|
|
</if>
|
|
|
|
<if test="writer != null and writer != ''">
|
|
AND WRITER = #{writer}
|
|
</if>
|
|
|
|
) TBL WHERE 1=1
|
|
)A WHERE 1=1
|
|
</select>
|
|
|
|
<!-- 재고품 투입 목록을 가져온다. -->
|
|
<select id="getInventoryMngInputList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM(
|
|
SELECT TBL.*, ROW_NUMBER() OVER(ORDER BY REG_DATE DESC) RNUM
|
|
FROM(
|
|
SELECT TBL.*
|
|
FROM(
|
|
SELECT
|
|
OBJID
|
|
,(SELECT PROJECT_NO FROM PROJECT_MGMT AS O WHERE O.OBJID = IM.CONTRACT_OBJID) AS PROJECT_NO
|
|
<!-- ,(SELECT CODE_NAME FROM COMM_CODE AS O WHERE O.CODE_ID = IM.UNIT) AS UNIT_NAME -->
|
|
,(SELECT O.UNIT_NO || '-' || O.TASK_NAME FROM PMS_WBS_TASK AS O WHERE O.OBJID = IM.UNIT) AS UNIT_NAME
|
|
,(SELECT PART_NO FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS PART_NO
|
|
,(SELECT PART_NAME FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS PART_NAME
|
|
,(SELECT SPEC FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS SPEC
|
|
,(SELECT MAKER FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS MAKER
|
|
,(SELECT CODE_NAME FROM COMM_CODE AS O WHERE O.CODE_ID = IM.CLS_CD) AS CLS_CD_NAME
|
|
,IM.CLS_CD
|
|
,(SELECT CODE_NAME FROM COMM_CODE AS O WHERE O.CODE_ID = IM.CAU_CD) AS CAU_CD_NAME
|
|
,IM.CAU_CD
|
|
,IM.QTY
|
|
,IM.LOCATION
|
|
,(SELECT CODE_NAME FROM COMM_CODE AS O WHERE O.CODE_ID = IM.LOCATION) AS LOCATION_NAME
|
|
,IM.REG_DATE
|
|
,IM.PRICE
|
|
,IM.WRITER
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = IM.WRITER) AS WRITER_NAME
|
|
,SUBSTR(REG_DATE,0,5) AS REGDATE
|
|
,CONTRACT_OBJID
|
|
,UNIT
|
|
,input_contract_objid
|
|
,(SELECT PROJECT_NO FROM CONTRACT_MGMT AS O WHERE O.OBJID = IM.input_contract_objid) AS input_project_no
|
|
<!-- ,input_qty -->
|
|
,(SELECT COALESCE(SUM(O.INPUT_QTY::INTEGER),0) FROM INVENTORY_MGMT_HISTORY AS O WHERE O.PARENT_OBJID = IM.OBJID::VARCHAR) AS INPUT_QTY
|
|
--,input_date
|
|
,(SELECT MAX(input_date) FROM INVENTORY_MGMT_HISTORY AS O WHERE O.PARENT_OBJID = IM.OBJID::VARCHAR) AS INPUT_DATE
|
|
,assumption_user
|
|
,successor_user
|
|
<!-- ,(qty::numeric - input_qty::numeric) as remain_qty -->
|
|
,IM.QTY::INTEGER - (SELECT COALESCE(SUM(O.INPUT_QTY::INTEGER),0) FROM INVENTORY_MGMT_HISTORY AS O WHERE O.PARENT_OBJID = IM.OBJID::VARCHAR) AS remain_qty
|
|
FROM INVENTORY_MGMT AS IM
|
|
) TBL
|
|
WHERE 1=1
|
|
AND CLS_CD = '0001205'
|
|
<if test="Year != null and Year !=''">
|
|
AND REGDATE = #{Year}
|
|
</if>
|
|
|
|
<if test="project_no != null and project_no != ''">
|
|
AND CONTRACT_OBJID = #{project_no}
|
|
</if>
|
|
|
|
<if test="unit_code != null and unit_code != ''">
|
|
AND UNIT = #{unit_code}
|
|
</if>
|
|
|
|
<if test="part_no != null and part_no != ''">
|
|
AND UPPER(PART_NO) LIKE UPPER('%${part_no}%')
|
|
</if>
|
|
|
|
<if test="part_name != null and part_name != ''">
|
|
AND UPPER(PART_NAME) LIKE UPPER('%${part_name}%')
|
|
</if>
|
|
|
|
<if test="spec != null and spec != ''">
|
|
AND UPPER(SPEC) LIKE UPPER('%${spec}%')
|
|
</if>
|
|
|
|
<if test="cls_cd != null and cls_cd != ''">
|
|
AND CLS_CD = #{cls_cd}
|
|
</if>
|
|
|
|
<if test="cau_cd != null and cau_cd != ''">
|
|
AND CAU_CD = #{cau_cd}
|
|
</if>
|
|
|
|
<if test="location != null and location != ''">
|
|
AND LOCATION = #{location}
|
|
</if>
|
|
|
|
<if test="writer != null and writer != ''">
|
|
AND WRITER = #{writer}
|
|
</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="getInventoryMngInputGridList" parameterType="map" resultType="map">
|
|
SELECT
|
|
TBL.*
|
|
FROM(
|
|
SELECT
|
|
OBJID
|
|
,(SELECT PROJECT_NO FROM PROJECT_MGMT AS O WHERE O.OBJID = IM.CONTRACT_OBJID) AS PROJECT_NO
|
|
<!-- ,(SELECT CODE_NAME FROM COMM_CODE AS O WHERE O.CODE_ID = IM.UNIT) AS UNIT_NAME -->
|
|
,(SELECT O.UNIT_NO || '-' || O.TASK_NAME FROM PMS_WBS_TASK AS O WHERE O.OBJID = IM.UNIT) AS UNIT_NAME
|
|
,(SELECT PART_NO FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS PART_NO
|
|
,(SELECT PART_NAME FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS PART_NAME
|
|
,(SELECT SPEC FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS SPEC
|
|
,(SELECT MAKER FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS MAKER
|
|
,(SELECT CODE_NAME FROM COMM_CODE AS O WHERE O.CODE_ID = IM.CLS_CD) AS CLS_CD_NAME
|
|
,IM.CLS_CD
|
|
,(SELECT CODE_NAME FROM COMM_CODE AS O WHERE O.CODE_ID = IM.CAU_CD) AS CAU_CD_NAME
|
|
,IM.CAU_CD
|
|
,IM.QTY
|
|
,IM.LOCATION
|
|
,(SELECT CODE_NAME FROM COMM_CODE AS O WHERE O.CODE_ID = IM.LOCATION) AS LOCATION_NAME
|
|
,IM.REG_DATE
|
|
,IM.PRICE
|
|
,IM.WRITER
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = IM.WRITER) AS WRITER_NAME
|
|
,SUBSTR(REG_DATE,0,5) AS REGDATE
|
|
,CONTRACT_OBJID
|
|
,UNIT
|
|
,input_contract_objid
|
|
,(SELECT PROJECT_NO FROM CONTRACT_MGMT AS O WHERE O.OBJID = IM.input_contract_objid) AS input_project_no
|
|
<!-- ,input_qty -->
|
|
,(SELECT COALESCE(SUM(O.INPUT_QTY::INTEGER),0) FROM INVENTORY_MGMT_HISTORY AS O WHERE O.PARENT_OBJID = IM.OBJID::VARCHAR) AS INPUT_QTY
|
|
--,input_date
|
|
,(SELECT MAX(input_date) FROM INVENTORY_MGMT_HISTORY AS O WHERE O.PARENT_OBJID = IM.OBJID::VARCHAR) AS INPUT_DATE
|
|
,assumption_user
|
|
,successor_user
|
|
<!-- ,(qty::numeric - input_qty::numeric) as remain_qty -->
|
|
,IM.QTY::INTEGER - (SELECT COALESCE(SUM(O.INPUT_QTY::INTEGER),0) FROM INVENTORY_MGMT_HISTORY AS O WHERE O.PARENT_OBJID = IM.OBJID::VARCHAR) AS remain_qty
|
|
FROM
|
|
INVENTORY_MGMT AS IM
|
|
) TBL
|
|
WHERE 1=1
|
|
AND CLS_CD = '0001205'
|
|
<if test="Year != null and Year !=''">
|
|
AND REGDATE = #{Year}
|
|
</if>
|
|
|
|
<if test="project_no != null and project_no != ''">
|
|
AND CONTRACT_OBJID = #{project_no}
|
|
</if>
|
|
|
|
<if test="unit_code != null and unit_code != ''">
|
|
AND UNIT = #{unit_code}
|
|
</if>
|
|
|
|
<if test="part_no != null and part_no != ''">
|
|
AND UPPER(PART_NO) LIKE UPPER('%${part_no}%')
|
|
</if>
|
|
|
|
<if test="part_name != null and part_name != ''">
|
|
AND UPPER(PART_NAME) LIKE UPPER('%${part_name}%')
|
|
</if>
|
|
|
|
<if test="spec != null and spec != ''">
|
|
AND UPPER(SPEC) LIKE UPPER('%${spec}%')
|
|
</if>
|
|
|
|
<if test="cls_cd != null and cls_cd != ''">
|
|
AND CLS_CD = #{cls_cd}
|
|
</if>
|
|
|
|
<if test="cau_cd != null and cau_cd != ''">
|
|
AND CAU_CD = #{cau_cd}
|
|
</if>
|
|
|
|
<if test="location != null and location != ''">
|
|
AND LOCATION = #{location}
|
|
</if>
|
|
|
|
<if test="writer != null and writer != ''">
|
|
AND WRITER = #{writer}
|
|
</if>
|
|
</select>
|
|
|
|
<select id="inventory_mgmt" parameterType="map" resultType="map">
|
|
SELECT T.*
|
|
,T.QTY::INTEGER - (SELECT COALESCE(SUM(O.INPUT_QTY::INTEGER),0) FROM INVENTORY_MGMT_HISTORY AS O WHERE O.PARENT_OBJID = T.OBJID::VARCHAR) AS DETAIL_QTY
|
|
FROM INVENTORY_MGMT AS T
|
|
WHERE T.OBJID = #{OBJID}
|
|
</select>
|
|
|
|
<insert id="saveInventoryInputFormPopUp" parameterType="map">
|
|
INSERT INTO INVENTORY_MGMT_HISTORY
|
|
(
|
|
OBJID
|
|
,PARENT_OBJID
|
|
,CONTRACT_OBJID
|
|
,REG_DATE
|
|
,INPUT_QTY
|
|
,INPUT_DATE
|
|
,ASSUMPTION_USER
|
|
,SUCCESSOR_USER
|
|
)
|
|
VALUES
|
|
(
|
|
#{HISOBJID}
|
|
,#{OBJID}
|
|
,#{input_contract_objid}
|
|
,now()
|
|
,#{input_qty }
|
|
,#{input_date }
|
|
,#{assumption_user }
|
|
,#{successor_user }
|
|
)
|
|
</insert>
|
|
|
|
|
|
<select id="getInventoryMngHistoryListCnt" 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
|
|
(SELECT PROJECT_NO FROM PROJECT_MGMT AS O WHERE O.OBJID = IM.CONTRACT_OBJID) AS PROJECT_NO
|
|
,IM.INPUT_QTY
|
|
,IM.INPUT_DATE
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = IM.ASSUMPTION_USER) AS ASSUMPTION_USER_NAME
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = IM.SUCCESSOR_USER) AS SUCCESSOR_USER_NAME
|
|
,SUBSTR(REG_DATE,0,5) AS REGDATE
|
|
,CONTRACT_OBJID
|
|
FROM INVENTORY_MGMT_HISTORY AS IM
|
|
WHERE PARENT_OBJID = #{OBJID}
|
|
) TBL WHERE 1=1
|
|
) TBL WHERE 1=1
|
|
)A WHERE 1=1
|
|
</select>
|
|
|
|
<!-- 재고관리 목록을 가져온다. -->
|
|
<select id="getInventoryMngHistoryList" parameterType="map" resultType="map">
|
|
SELECT *
|
|
FROM(
|
|
SELECT TBL.*, ROW_NUMBER() OVER(ORDER BY INPUT_DATE DESC) RNUM
|
|
FROM(
|
|
SELECT TBL.*
|
|
FROM(
|
|
SELECT
|
|
OBJID
|
|
,(SELECT PROJECT_NO FROM PROJECT_MGMT AS O WHERE O.OBJID = IM.CONTRACT_OBJID) AS PROJECT_NO
|
|
,IM.INPUT_QTY
|
|
,IM.INPUT_DATE
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = IM.ASSUMPTION_USER) AS ASSUMPTION_USER_NAME
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = IM.SUCCESSOR_USER) AS SUCCESSOR_USER_NAME
|
|
,SUBSTR(REG_DATE,0,5) AS REGDATE
|
|
,CONTRACT_OBJID
|
|
FROM INVENTORY_MGMT_HISTORY AS IM
|
|
WHERE PARENT_OBJID = #{OBJID}
|
|
) TBL
|
|
)TBL WHERE 1=1
|
|
) A WHERE 1=1
|
|
AND <![CDATA[ RNUM::integer <= #{PAGE_END}::integer ]]>
|
|
AND <![CDATA[ RNUM::integer >= #{PAGE_START}::integer]]>
|
|
</select>
|
|
|
|
<update id="deleteinventoryHistoryList" parameterType="map">
|
|
DELETE FROM INVENTORY_MGMT_HISTORY WHERE OBJID = #{OBJID}
|
|
</update>
|
|
|
|
|
|
<!-- 자재관리 마스터 정보 O -->
|
|
<select id="getInventoryInfo" parameterType="map" resultType="com.pms.common.UpperKeyMap">
|
|
|
|
SELECT
|
|
OBJID
|
|
FROM INVENTORY_MGMT
|
|
WHERE CONTRACT_OBJID = #{CONTRACT_OBJID}
|
|
AND UNIT = #{UNIT}
|
|
AND PART_OBJID = #{PART_OBJID}
|
|
</select>
|
|
|
|
<select id="getSameInventoryInQTYInfo" parameterType="map" resultType="com.pms.common.UpperKeyMap">
|
|
SELECT
|
|
SUM(CASE WHEN (RECEIPT_QTY IS NULL OR RECEIPT_QTY ='') THEN 0 ELSE RECEIPT_QTY::NUMERIC END) AS INVENTORY_QTY
|
|
FROM
|
|
INVENTORY_MGMT_IN IMI
|
|
WHERE 1=1
|
|
AND PURCHASE_ORDER_MASTER_OBJID = #{MULTI_MASTER_OBJID}
|
|
AND CONTRACT_MGMT_OBJID = #{CONTRACT_MGMT_OBJID}
|
|
AND PARENT_OBJID = #{PARENT_OBJID}
|
|
</select>
|
|
|
|
|
|
<update id="insertInventory" parameterType="map">
|
|
INSERT INTO INVENTORY_MGMT
|
|
(
|
|
OBJID
|
|
,CONTRACT_OBJID
|
|
, UNIT
|
|
, PART_OBJID
|
|
, CLS_CD
|
|
, CAU_CD
|
|
, QTY
|
|
, LOCATION
|
|
, SUB_LOCATION
|
|
, REG_DATE
|
|
, PRICE
|
|
, WRITER
|
|
, INPUT_CONTRACT_OBJID
|
|
, INPUT_QTY
|
|
, INPUT_DATE
|
|
, ASSUMPTION_USER
|
|
, SUCCESSOR_USER
|
|
)
|
|
VALUES
|
|
(
|
|
#{OBJID}
|
|
, #{CONTRACT_OBJID}
|
|
, #{UNIT}
|
|
, #{PART_OBJID}
|
|
, '0001205'
|
|
, #{CAU_CD}
|
|
, #{RECEIPT_QTY}
|
|
, #{LOCATION}
|
|
, #{SUB_LOCATION}
|
|
, to_char(now(),'yyyy-mm-dd')
|
|
, (SELECT PARTNER_PRICE FROM PURCHASE_ORDER_PART AS O WHERE O.PURCHASE_ORDER_MASTER_OBJID =#{ORDER_OBJID} AND PART_OBJID = #{PART_OBJID})
|
|
, #{WRITER}
|
|
, #{INPUT_CONTRACT_OBJID}
|
|
, #{INPUT_QTY}
|
|
, #{INPUT_DATE}
|
|
, #{ASSUMPTION_USER}
|
|
, #{SUCCESSOR_USER}
|
|
) ON CONFLICT (CONTRACT_OBJID,UNIT,PART_OBJID) DO
|
|
UPDATE
|
|
SET REG_DATE = #{REG_DATE}
|
|
</update>
|
|
|
|
|
|
<update id="insertInventoryIn" parameterType="map">
|
|
INSERT INTO INVENTORY_MGMT_IN
|
|
(
|
|
OBJID
|
|
, PARENT_OBJID
|
|
, RECEIPT_QTY
|
|
, LOCATION
|
|
, SUB_LOCATION
|
|
, WRITER
|
|
, REGDATE
|
|
, CONTRACT_MGMT_OBJID
|
|
, PURCHASE_ORDER_MASTER_OBJID
|
|
, PURCHASE_ORDER_SUB_OBJID
|
|
)
|
|
VALUES
|
|
(
|
|
#{OBJID}
|
|
, #{PARENT_OBJID}
|
|
, #{RECEIPT_QTY}
|
|
, #{LOCATION}
|
|
, #{SUB_LOCATION}
|
|
, #{WRITER}
|
|
, now()
|
|
, #{CONTRACT_MGMT_OBJID}
|
|
, #{PURCHASE_ORDER_MASTER_OBJID}
|
|
, #{PURCHASE_ORDER_SUB_OBJID}
|
|
)
|
|
</update>
|
|
|
|
<select id="inventoryMngDashGridList" parameterType="map" resultType="map">
|
|
WITH RECURSIVE VIEW_BOM(
|
|
BOM_REPORT_OBJID,
|
|
OBJID,
|
|
PARENT_OBJID,
|
|
CHILD_OBJID,
|
|
PARENT_PART_NO,
|
|
PART_NO,
|
|
QTY,
|
|
REGDATE,
|
|
SEQ,
|
|
LEV,
|
|
PATH,
|
|
CYCLE
|
|
) AS (
|
|
SELECT
|
|
A.BOM_REPORT_OBJID,
|
|
A.OBJID,
|
|
A.PARENT_OBJID,
|
|
A.CHILD_OBJID,
|
|
A.PARENT_PART_NO,
|
|
A.PART_NO,
|
|
A.QTY,
|
|
A.REGDATE,
|
|
A.SEQ,
|
|
1,
|
|
ARRAY [A.CHILD_OBJID::TEXT],
|
|
FALSE
|
|
FROM
|
|
BOM_PART_QTY A
|
|
WHERE 1=1
|
|
AND (A.PARENT_OBJID IS NULL OR A.PARENT_OBJID = '')
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
B.BOM_REPORT_OBJID,
|
|
B.OBJID,
|
|
B.PARENT_OBJID,
|
|
B.CHILD_OBJID,
|
|
B.PARENT_PART_NO,
|
|
B.PART_NO,
|
|
B.QTY,
|
|
B.REGDATE,
|
|
B.SEQ,
|
|
LEV + 1,
|
|
PATH||B.CHILD_OBJID::TEXT,
|
|
B.PARENT_OBJID = ANY(PATH)
|
|
FROM
|
|
BOM_PART_QTY B
|
|
JOIN
|
|
VIEW_BOM
|
|
ON B.PARENT_OBJID = VIEW_BOM.CHILD_OBJID
|
|
AND VIEW_BOM.BOM_REPORT_OBJID = B.BOM_REPORT_OBJID
|
|
),REF_BOM_INFO AS(
|
|
SELECT
|
|
V.BOM_REPORT_OBJID AS PARENT_OBJID
|
|
,V.PART_NO AS PART_OBJID
|
|
,PM.PART_NO
|
|
,PM.PART_NAME
|
|
,V.LEV
|
|
,V.QTY
|
|
,(SELECT MAX(LEV) FROM VIEW_BOM) AS MAX_LEV
|
|
,SP.OBJID
|
|
,SP.SUPPLY_OBJID
|
|
,SP.PRICE
|
|
,SP.SUPPLY_OBJID1
|
|
,SP.PRICE1
|
|
,SP.SUPPLY_OBJID2
|
|
,SP.PRICE2
|
|
,SP.SUPPLY_OBJID3
|
|
,SP.PRICE3
|
|
,SP.SUPPLY_OBJID4
|
|
,SP.PRICE4
|
|
,SP.PRICE_SUM
|
|
,PM.SPEC
|
|
,PM.MAKER
|
|
,PM.PART_TYPE
|
|
,(SELECT CODE_NAME FROM COMM_CODE WHERE CODE_ID = PM.PART_TYPE) AS PART_TYPE_NAME
|
|
,PBR.CONTRACT_OBJID
|
|
FROM
|
|
VIEW_BOM AS V
|
|
LEFT OUTER JOIN
|
|
SALES_BOM_REPORT_PART AS SP
|
|
ON V.PART_NO = SP.PART_OBJID
|
|
AND SP.PARENT_OBJID::VARCHAR = V.BOM_REPORT_OBJID::VARCHAR
|
|
|
|
LEFT OUTER JOIN
|
|
PART_MNG PM
|
|
ON V.PART_NO = PM.OBJID::VARCHAR
|
|
|
|
LEFT OUTER JOIN
|
|
PART_BOM_REPORT PBR
|
|
ON PBR.OBJID::VARCHAR = V.BOM_REPORT_OBJID::VARCHAR
|
|
|
|
WHERE 1=1
|
|
ORDER BY V.SEQ
|
|
)
|
|
|
|
SELECT
|
|
T.*
|
|
,(TOTAL_BOM_PART_CNT - TOTAL_PO_PART_CNT) AS NON_PO_PART_CNT /*미발주품수*/
|
|
FROM (
|
|
SELECT
|
|
CM.OBJID
|
|
,TO_CHAR(CM.REGDATE, 'YYYY') AS CM_YEAR
|
|
,(SELECT SUPPLY_NAME FROM SUPPLY_MNG AS O WHERE O.OBJID::VARCHAR = CM.CUSTOMER_OBJID) AS CUSTOMER_NAME
|
|
,CM.CUSTOMER_PROJECT_NAME
|
|
,CM.PROJECT_NO
|
|
,SBR.OBJID AS SALES_OBJID
|
|
,PBR.OBJID AS BOM_REPORT_OBJID
|
|
,(
|
|
SELECT
|
|
COUNT(DISTINCT CASE WHEN PM.PART_TYPE IN (SELECT CODE_ID FROM COMM_CODE WHERE PARENT_CODE_ID = '0000062') THEN BPQ.PART_NO ELSE NULL END)
|
|
FROM
|
|
BOM_PART_QTY BPQ
|
|
,PART_MNG PM
|
|
WHERE BPQ.PART_NO = PM.OBJID::VARCHAR
|
|
AND BPQ.BOM_REPORT_OBJID = PBR.OBJID
|
|
) AS TOTAL_BOM_PART_CNT /*BOM부품개수*/
|
|
|
|
,(
|
|
SELECT
|
|
COUNT(DISTINCT RBI.PART_OBJID)
|
|
FROM
|
|
REF_BOM_INFO RBI
|
|
,PURCHASE_ORDER_PART PO
|
|
,PURCHASE_ORDER_MASTER POM
|
|
WHERE RBI.PARENT_OBJID = PBR.OBJID
|
|
AND RBI.PART_OBJID = PO.PART_OBJID
|
|
AND POM.STATUS = 'approvalComplete'
|
|
AND POM.OBJID = PO.PURCHASE_ORDER_MASTER_OBJID
|
|
AND RBI.PART_TYPE IS NOT NULL
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(POM.REGDATE,'YYYY') = #{Year}
|
|
</if>
|
|
AND RBI.PART_TYPE != ''
|
|
) AS TOTAL_PO_PART_CNT /*발주품개수*/
|
|
|
|
,(
|
|
SELECT
|
|
SUM(POP.ORDER_QTY::NUMERIC)
|
|
FROM
|
|
PURCHASE_ORDER_MASTER POM
|
|
,PURCHASE_ORDER_PART POP
|
|
WHERE POM.OBJID = POP.PURCHASE_ORDER_MASTER_OBJID
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(POM.REGDATE,'YYYY') = #{Year}
|
|
</if>
|
|
AND POM.BOM_REPORT_OBJID = PBR.OBJID
|
|
) AS TOTAL_PO_QTY /*발주수량*/
|
|
,COALESCE(S1.TOTAL_SUPPLY_UNIT_PRICE, 0) TOTAL_SUPPLY_UNIT_PRICE
|
|
,COALESCE(S1.PRICE_PT_1, 0) PRICE_PT_1
|
|
,COALESCE(S1.PRICE_PT_2, 0) PRICE_PT_2
|
|
,COALESCE(S1.PRICE_PT_ETC, 0) PRICE_PT_ETC
|
|
|
|
,CASE
|
|
WHEN COALESCE(S1.PRICE_PT_1, 0) = 0 THEN 0
|
|
ELSE ROUND(COALESCE(S1.PRICE_PT_1, 0) / S1.TOTAL_SUPPLY_UNIT_PRICE * 100, 1)
|
|
END AS RATE_PRICE_PT_1
|
|
|
|
,CASE
|
|
WHEN COALESCE(S1.PRICE_PT_2, 0) = 0 THEN 0
|
|
ELSE ROUND(COALESCE(S1.PRICE_PT_2, 0) / S1.TOTAL_SUPPLY_UNIT_PRICE * 100, 1)
|
|
END AS RATE_PRICE_PT_2
|
|
|
|
,CASE
|
|
WHEN COALESCE(S1.PRICE_PT_ETC, 0) = 0 THEN 0
|
|
ELSE ROUND(COALESCE(S1.PRICE_PT_ETC, 0) / S1.TOTAL_SUPPLY_UNIT_PRICE * 100, 1)
|
|
END AS RATE_PRICE_PT_ETC
|
|
|
|
|
|
<!-- ,ROUND(COALESCE(S1.PRICE_PT_1, 0) / S1.TOTAL_SUPPLY_UNIT_PRICE * 100, 1) AS RATE_PRICE_PT_1
|
|
,ROUND(COALESCE(S1.PRICE_PT_2, 0) / S1.TOTAL_SUPPLY_UNIT_PRICE * 100, 1) AS RATE_PRICE_PT_2
|
|
,ROUND(COALESCE(S1.PRICE_PT_ETC, 0) / S1.TOTAL_SUPPLY_UNIT_PRICE * 100, 1) AS RATE_PRICE_PT_ETC -->
|
|
|
|
,COALESCE(S2.TOTAL_SUPPLY_UNIT_PRICE, 0) RE_TOTAL_SUPPLY_UNIT_PRICE
|
|
,(
|
|
SELECT
|
|
COUNT(1)
|
|
FROM
|
|
PURCHASE_ORDER_MASTER POM
|
|
WHERE POM.STATUS = 'approvalComplete'
|
|
AND POM.BOM_REPORT_OBJID = PBR.OBJID
|
|
AND POM.ORDER_TYPE_CD = '0001408'
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(POM.REGDATE,'YYYY') = #{Year}
|
|
</if>
|
|
) RE_COUNT,
|
|
|
|
(SELECT ARRAY_TO_STRING(ARRAY_AGG(RBI.PART_NAME), ',') FROM REF_BOM_INFO RBI WHERE 1 = 1 AND PBR.OBJID = RBI.PARENT_OBJID AND RBI.LEV = '2') AS UNIT_PART_NAME
|
|
|
|
FROM
|
|
SALES_BOM_REPORT SBR
|
|
,PART_BOM_REPORT PBR
|
|
|
|
LEFT OUTER JOIN(
|
|
SELECT
|
|
POM.BOM_REPORT_OBJID
|
|
,SUM(POP.SUPPLY_UNIT_PRICE::NUMERIC) AS TOTAL_SUPPLY_UNIT_PRICE
|
|
,SUM(CASE WHEN PM.PART_TYPE IN ('0000063') THEN POP.SUPPLY_UNIT_PRICE::NUMERIC ELSE NULL END) AS PRICE_PT_1
|
|
,SUM(CASE WHEN PM.PART_TYPE IN ('0000064') THEN POP.SUPPLY_UNIT_PRICE::NUMERIC ELSE NULL END) AS PRICE_PT_2
|
|
,SUM(CASE WHEN PM.PART_TYPE IN ('0000063','0000064') THEN NULL ELSE POP.SUPPLY_UNIT_PRICE::NUMERIC END) AS PRICE_PT_ETC
|
|
FROM
|
|
PURCHASE_ORDER_MASTER POM
|
|
,PURCHASE_ORDER_PART POP
|
|
|
|
LEFT OUTER JOIN
|
|
PART_MNG PM
|
|
ON POP.PART_OBJID = PM.OBJID::VARCHAR
|
|
|
|
WHERE POM.STATUS = 'approvalComplete'
|
|
AND POM.OBJID = POP.PURCHASE_ORDER_MASTER_OBJID
|
|
AND POM.ORDER_TYPE_CD = '0001407'
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(POM.REGDATE,'YYYY') = #{Year}
|
|
</if>
|
|
GROUP BY POM.BOM_REPORT_OBJID
|
|
) AS S1
|
|
ON PBR.OBJID::VARCHAR = S1.BOM_REPORT_OBJID
|
|
|
|
LEFT OUTER JOIN(
|
|
SELECT
|
|
POM.BOM_REPORT_OBJID
|
|
,SUM(POP.SUPPLY_UNIT_PRICE::NUMERIC) AS TOTAL_SUPPLY_UNIT_PRICE
|
|
,SUM(CASE WHEN PM.PART_TYPE IN ('0000063') THEN POP.SUPPLY_UNIT_PRICE::NUMERIC ELSE NULL END) AS PRICE_PT_1
|
|
,SUM(CASE WHEN PM.PART_TYPE IN ('0000064') THEN POP.SUPPLY_UNIT_PRICE::NUMERIC ELSE NULL END) AS PRICE_PT_2
|
|
<!--
|
|
,SUM(CASE WHEN PM.PART_TYPE IN ('0000063','0000064') THEN NULL ELSE POP.SUPPLY_UNIT_PRICE::NUMERIC END) AS PRICE_PT_ETC
|
|
-->
|
|
FROM
|
|
PURCHASE_ORDER_MASTER POM
|
|
,PURCHASE_ORDER_PART POP
|
|
|
|
LEFT OUTER JOIN
|
|
PART_MNG PM
|
|
ON POP.PART_OBJID = PM.OBJID::VARCHAR
|
|
WHERE POM.STATUS = 'approvalComplete'
|
|
AND POM.OBJID = POP.PURCHASE_ORDER_MASTER_OBJID
|
|
AND POM.ORDER_TYPE_CD = '0001408'
|
|
<if test="Year !=null and Year != '' ">
|
|
AND TO_CHAR(POM.REGDATE,'YYYY') = #{Year}
|
|
</if>
|
|
|
|
GROUP BY POM.BOM_REPORT_OBJID
|
|
) AS S2
|
|
ON PBR.OBJID::VARCHAR = S2.BOM_REPORT_OBJID
|
|
,PROJECT_MGMT CM
|
|
WHERE 1=1
|
|
AND SBR.PARENT_OBJID = PBR.OBJID
|
|
AND PBR.CONTRACT_OBJID = CM.OBJID
|
|
<if test="project_no !=null and project_no != '' ">
|
|
AND CM.OBJID = #{project_no}
|
|
</if>
|
|
) AS T
|
|
ORDER BY PROJECT_NO DESC
|
|
</select>
|
|
|
|
<!-- 재고관리 목록을 가져온다. -->
|
|
<select id="getInventoryMngRequestList" parameterType="map" resultType="map">
|
|
SELECT
|
|
TBL.*
|
|
,DESIGN_QTY1 * QTY1 <!-- * QTY2 --> * nvl(QTY3, '1')::numeric as DESIGN_QTY
|
|
FROM(
|
|
SELECT
|
|
IM.OBJID
|
|
,IM.PART_OBJID
|
|
,(SELECT PROJECT_NO FROM PROJECT_MGMT AS O WHERE O.OBJID = IM.CONTRACT_OBJID) AS PROJECT_NO
|
|
,(IMI.RECEIPT_QTY::NUMERIC - COALESCE(IMI.OUT_QTY::NUMERIC,0) - COALESCE(IMI.MOVE_QTY::NUMERIC,0)) AS USE_CNT
|
|
<!-- ,(COALESCE((SELECT SUM(CASE WHEN (RECEIPT_QTY IS NULL OR RECEIPT_QTY ='') THEN 0 ELSE RECEIPT_QTY::NUMERIC END)
|
|
FROM INVENTORY_MGMT_IN AS O WHERE O.PARENT_OBJID = IM.OBJID ),0)
|
|
- COALESCE((SELECT SUM(CASE WHEN (REQUEST_QTY IS NULL OR REQUEST_QTY ='') THEN 0 ELSE REQUEST_QTY::NUMERIC END)
|
|
FROM INVENTORY_MGMT_OUT AS O WHERE O.PARENT_OBJID = IM.OBJID),0)) AS USE_CNT -->
|
|
,(SELECT SUM(CASE WHEN (RECEIPT_QTY IS NULL OR RECEIPT_QTY ='') THEN 0 ELSE RECEIPT_QTY::NUMERIC END)
|
|
FROM INVENTORY_MGMT_IN AS O WHERE O.PARENT_OBJID = IM.OBJID ) AS QTY
|
|
,(SELECT O.UNIT_NO || '-' || O.TASK_NAME FROM PMS_WBS_TASK AS O WHERE O.OBJID = IM.UNIT) AS UNIT_NAME
|
|
,(SELECT PART_NO FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS PART_NO
|
|
,(SELECT PART_NAME FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS PART_NAME
|
|
,(SELECT SPEC FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS SPEC
|
|
,(SELECT MAKER FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS MAKER
|
|
,(SELECT CODE_NAME(PART_TYPE) FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS PART_TYPE_NAME
|
|
,(SELECT PART_TYPE FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS PART_TYPE
|
|
,(SELECT CODE_NAME FROM COMM_CODE AS O WHERE O.CODE_ID = IM.CLS_CD) AS CLS_CD_NAME
|
|
,IM.CLS_CD
|
|
,(SELECT CODE_NAME FROM COMM_CODE AS O WHERE O.CODE_ID = IM.CAU_CD) AS CAU_CD_NAME
|
|
,(SELECT MATERIAL FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS MATERIAL
|
|
,IM.CAU_CD
|
|
<!-- ,IM.QTY -->
|
|
,IMI.LOCATION
|
|
,(SELECT CODE_NAME FROM COMM_CODE AS O WHERE O.CODE_ID = IMI.LOCATION) AS LOCATION_NAME
|
|
,IMI.SUB_LOCATION
|
|
,(SELECT CODE_NAME FROM COMM_CODE AS O WHERE O.CODE_ID = IMI.SUB_LOCATION) AS SUB_LOCATION_NAME
|
|
,IM.REG_DATE
|
|
,IM.PRICE
|
|
<!-- ,IM.WRITER -->
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = IM.WRITER) AS WRITER_NAME
|
|
,SUBSTR(REG_DATE,0,5) AS REGDATE
|
|
,IM.CONTRACT_OBJID
|
|
,IM.UNIT
|
|
,IMI.OBJID AS IN_OBJID
|
|
,PBR.OBJID AS BOM_REPORT_OBJID
|
|
,(SELECT sum(NVL(QTY, '0')::NUMERIC) FROM BOM_PART_QTY BPQ WHERE BPQ.BOM_REPORT_OBJID = PBR.OBJID AND BPQ.LAST_PART_OBJID = IM.PART_OBJID AND BPQ.STATUS IN ('beforeEdit', 'editing','deleting', 'deploy') ) AS DESIGN_QTY1
|
|
,(SELECT MAX(NVL(BPQ.QTY, '0')::NUMERIC) AS QTY FROM BOM_PART_QTY BPQ WHERE BPQ.BOM_REPORT_OBJID = PBR.OBJID AND NVL(PARENT_PART_NO, '') = '' AND BPQ.STATUS IN ('beforeEdit', 'editing','deleting', 'deploy') ) QTY1
|
|
<!-- ,(SELECT SUM(NVL(BPQ2.QTY, '0')::NUMERIC) AS QTY FROM BOM_PART_QTY BPQ2 WHERE BPQ2.BOM_REPORT_OBJID = PBR.OBJID
|
|
AND BPQ2.PARENT_OBJID = (SELECT MAX(BPQ.CHILD_OBJID) FROM BOM_PART_QTY BPQ WHERE BPQ.BOM_REPORT_OBJID = PBR.OBJID AND NVL(PARENT_PART_NO, '') = '' AND BPQ.STATUS IN ('beforeEdit', 'editing','deleting', 'deploy') ) ) QTY2 -->
|
|
,(SELECT SUM(NVL(BPQ3.QTY, '0')::NUMERIC) AS QTY FROM BOM_PART_QTY BPQ3 WHERE BPQ3.BOM_REPORT_OBJID = PBR.OBJID
|
|
AND BPQ3.CHILD_OBJID = (SELECT PARENT_OBJID FROM BOM_PART_QTY BPQ WHERE BPQ.BOM_REPORT_OBJID = PBR.OBJID AND BPQ.LAST_PART_OBJID = IM.PART_OBJID AND BPQ.STATUS IN ('beforeEdit', 'editing','deleting', 'deploy') ) )::text QTY3
|
|
,(SELECT sum(NVL(PRE_BOOKING_QTY, '0')::NUMERIC) FROM SALES_BOM_REPORT_PART SBRP WHERE SBRP.PARENT_OBJID = PBR.OBJID AND SBRP.PART_OBJID = IM.PART_OBJID) AS PRE_BOOKING_QTY
|
|
,IMI.OUT_QTY
|
|
<!-- ,IMO.REQUEST_QTY
|
|
,IMO.OUT_QTY
|
|
,IMO.OUT_DATE
|
|
,IMO.ACQ_USER
|
|
,IMO.INVENTORY_REQUEST_MASTER_OBJID -->
|
|
FROM
|
|
INVENTORY_MGMT AS IM
|
|
LEFT OUTER JOIN INVENTORY_MGMT_IN IMI
|
|
ON IMI.PARENT_OBJID = IM.OBJID
|
|
<!-- AND IMI.RECEIPT_QTY != '0' -->
|
|
LEFT OUTER JOIN PART_BOM_REPORT PBR
|
|
ON PBR.CONTRACT_OBJID = IM.CONTRACT_OBJID
|
|
AND PBR.UNIT_CODE = IM.UNIT
|
|
) TBL
|
|
WHERE 1=1
|
|
AND OBJID IN
|
|
<foreach collection="checkArr" item="objkey" index="index" separator="," open="(" close=")">
|
|
#{objkey}
|
|
</foreach>
|
|
AND (COALESCE(USE_CNT, 0) != 0)
|
|
ORDER BY PART_NO
|
|
|
|
</select>
|
|
|
|
<select id="getPartQTYInfoList" parameterType="map" resultType="map">
|
|
SELECT
|
|
T.*
|
|
,DESIGN_QTY1::numeric * QTY1 <!-- * QTY2 --> * nvl(QTY3, '1')::numeric AS DESIGN_QTY
|
|
FROM
|
|
(SELECT
|
|
BPQ.BOM_REPORT_OBJID
|
|
,BPQ.QTY AS DESIGN_QTY1
|
|
,(SELECT MAX(NVL(BPQ.QTY, '0')::NUMERIC) AS QTY FROM BOM_PART_QTY BPQ WHERE BPQ.BOM_REPORT_OBJID = PBR.OBJID AND NVL(PARENT_PART_NO, '') = '') QTY1
|
|
<!-- ,(SELECT SUM(NVL(BPQ2.QTY, '0')::NUMERIC) AS QTY FROM BOM_PART_QTY BPQ2 WHERE BPQ2.BOM_REPORT_OBJID = PBR.OBJID
|
|
AND BPQ2.PARENT_OBJID = (SELECT MAX(BPQ.CHILD_OBJID) FROM BOM_PART_QTY BPQ WHERE BPQ.BOM_REPORT_OBJID = PBR.OBJID AND NVL(PARENT_PART_NO, '') = '') ) QTY2 -->
|
|
,(SELECT SUM(NVL(BPQ3.QTY, '0')::NUMERIC) AS QTY FROM BOM_PART_QTY BPQ3 WHERE BPQ3.BOM_REPORT_OBJID = PBR.OBJID
|
|
AND BPQ3.CHILD_OBJID = BPQ.PARENT_OBJID)::text QTY3
|
|
,PM.OBJID AS PART_OBJID
|
|
,PM.PART_NO
|
|
,PM.PART_NAME
|
|
,PBR.CONTRACT_OBJID
|
|
,(SELECT PROJECT_NO FROM PROJECT_MGMT P WHERE P.OBJID = PBR.CONTRACT_OBJID )
|
|
,(SELECT REQ_DEL_DATE FROM PROJECT_MGMT P WHERE P.OBJID = PBR.CONTRACT_OBJID )
|
|
,PBR.UNIT_CODE
|
|
,(SELECT O.UNIT_NO || '-' || O.TASK_NAME FROM PMS_WBS_TASK AS O WHERE O.OBJID = PBR.UNIT_CODE) AS UNIT_NAME
|
|
,COALESCE((SELECT SUM(CASE WHEN (OUT_QTY IS NULL OR OUT_QTY ='') THEN 0
|
|
ELSE OUT_QTY::NUMERIC END)
|
|
FROM INVENTORY_MGMT_OUT AS O
|
|
,INVENTORY_MGMT AS S_IM
|
|
WHERE S_IM.PART_OBJID = PM.OBJID
|
|
AND O.PARENT_OBJID = S_IM.OBJID
|
|
AND O.CONTRACT_MGMT_OBJID = PBR.CONTRACT_OBJID
|
|
AND O.UNIT = PBR.UNIT_CODE
|
|
),0) as OUT_QTY
|
|
FROM
|
|
BOM_PART_QTY BPQ
|
|
LEFT OUTER JOIN PART_MNG PM
|
|
ON PM.OBJID = BPQ.PART_NO
|
|
LEFT OUTER JOIN PART_BOM_REPORT PBR
|
|
ON PBR.OBJID = BPQ.BOM_REPORT_OBJID
|
|
WHERE BPQ.LAST_PART_OBJID = #{PART_OBJID}
|
|
AND PBR.CONTRACT_OBJID = #{PROJECT_OBJID}
|
|
AND PBR.UNIT_CODE = #{UNIT_CODE}
|
|
AND BPQ.STATUS = 'deploy') T
|
|
</select>
|
|
|
|
<update id="saveInventoryRequest" parameterType="map">
|
|
INSERT INTO INVENTORY_MGMT_OUT
|
|
(
|
|
OBJID
|
|
,PARENT_OBJID
|
|
,REQUEST_QTY
|
|
<!-- ,OUT_QTY
|
|
,OUT_DATE -->
|
|
,WRITER
|
|
<!-- ,ACQ_USER -->
|
|
,REGDATE
|
|
,INVENTORY_REQUEST_MASTER_OBJID
|
|
,SIGN
|
|
,CONTRACT_MGMT_OBJID
|
|
,UNIT
|
|
)
|
|
VALUES
|
|
(
|
|
#{OBJID }
|
|
,#{PARENT_OBJID }
|
|
,#{REQUEST_QTY }
|
|
<!-- ,#{OUT_QTY }
|
|
,#{OUT_DATE } -->
|
|
,#{WRITER }
|
|
<!-- ,#{ACQ_USER } -->
|
|
,NOW()
|
|
,#{INVENTORY_REQUEST_MASTER_OBJID}
|
|
,#{SIGN}
|
|
,#{CONTRACT_MGMT_OBJID}
|
|
,#{UNIT}
|
|
|
|
) ON CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET
|
|
REQUEST_QTY = #{REQUEST_QTY}
|
|
,OUT_QTY = #{OUT_QTY}
|
|
,OUT_DATE = #{OUT_DATE}
|
|
,ACQ_USER = #{ACQ_USER}
|
|
,CONTRACT_MGMT_OBJID = #{CONTRACT_MGMT_OBJID}
|
|
,UNIT = #{UNIT}
|
|
</update>
|
|
|
|
<update id="mergeInventoryInInfo" parameterType="map">
|
|
UPDATE
|
|
INVENTORY_MGMT_IN
|
|
SET
|
|
OUT_OBJID = CASE WHEN OUT_OBJID IS NULL THEN #{OBJID}
|
|
ELSE OUT_OBJID || ',' || #{OBJID}
|
|
END,
|
|
REQUEST_QTY = CASE
|
|
WHEN REQUEST_QTY IS NULL OR REQUEST_QTY = '' THEN #{REQUEST_QTY}
|
|
ELSE (TRIM(REQUEST_QTY)::numeric + #{REQUEST_QTY}::numeric)::text
|
|
END
|
|
WHERE OBJID = #{IN_OBJID}
|
|
</update>
|
|
|
|
<update id="mergeInventoryInOutQtyInfo" parameterType="map">
|
|
UPDATE
|
|
INVENTORY_MGMT_IN
|
|
SET
|
|
OUT_QTY = CASE
|
|
WHEN OUT_QTY IS NULL OR OUT_QTY = '' THEN #{OUT_QTY}
|
|
ELSE (TRIM(OUT_QTY)::numeric + #{OUT_QTY}::numeric)::text
|
|
END
|
|
WHERE OBJID = #{IN_OBJID}
|
|
</update>
|
|
|
|
<update id="saveInventoryTransfer" parameterType="map">
|
|
INSERT INTO INVENTORY_MGMT_OUT
|
|
(
|
|
OBJID
|
|
,PARENT_OBJID
|
|
,REQUEST_QTY
|
|
<!-- ,OUT_QTY
|
|
,OUT_DATE -->
|
|
,WRITER
|
|
<!-- ,ACQ_USER -->
|
|
,REGDATE
|
|
,INVENTORY_REQUEST_MASTER_OBJID
|
|
,SIGN
|
|
)
|
|
VALUES
|
|
(
|
|
#{OBJID }
|
|
,#{PARENT_OBJID }
|
|
,#{REQUEST_QTY }
|
|
<!-- ,#{OUT_QTY }
|
|
,#{OUT_DATE } -->
|
|
,#{WRITER }
|
|
<!-- ,#{ACQ_USER } -->
|
|
,NOW()
|
|
,#{INVENTORY_REQUEST_MASTER_OBJID}
|
|
,#{SIGN}
|
|
) ON CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET
|
|
OUT_QTY = #{OUT_QTY}
|
|
,OUT_DATE = #{OUT_DATE}
|
|
,ACQ_USER = #{ACQ_USER}
|
|
,WRITER = #{WRITER}
|
|
</update>
|
|
|
|
<update id="savesignInventoryTransfer" parameterType="map">
|
|
INSERT INTO INVENTORY_MGMT_OUT
|
|
(
|
|
OBJID
|
|
,ACQ_USER
|
|
,SIGN
|
|
)
|
|
VALUES
|
|
(
|
|
#{OBJID}
|
|
,#{ACQ_USER}
|
|
,#{SIGN}
|
|
) ON CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET
|
|
ACQ_USER = #{ACQ_USER}
|
|
,SIGN = #{SIGN}
|
|
</update>
|
|
|
|
<update id="mergeInventoryRequestMasterInfo" parameterType="map">
|
|
INSERT INTO INVENTORY_MGMT_OUT_MASTER
|
|
(
|
|
OBJID
|
|
,PARENT_OBJID
|
|
,INVENTORY_OUT_NO
|
|
,REQUEST_DATE
|
|
,REQUEST_ID
|
|
<!-- ,RECEPTION_STATUS
|
|
,RECEPTION_ID
|
|
,RECEPTION_DATE
|
|
,OUTSTATUS -->
|
|
,WRITER
|
|
,REGDATE
|
|
,REMARK
|
|
,CONTRACT_MGMT_OBJID
|
|
)
|
|
VALUES
|
|
(
|
|
#{INVENTORY_REQUEST_MASTER_OBJID}
|
|
,#{PARENT_OBJID }
|
|
,(SELECT 'Rfw-'||TO_CHAR(NOW(),'YYYY')||'-'||(coalesce(MAX(case when SPLIT_PART( INVENTORY_OUT_NO, '-', 3) = '' or INVENTORY_OUT_NO is null then '0' else SPLIT_PART( INVENTORY_OUT_NO, '-', 3) end ::numeric ))::INTEGER + 1)::TEXT FROM INVENTORY_MGMT_OUT_MASTER)
|
|
<!-- ,(SELECT 'Rfw-'||TO_CHAR(NOW(),'YYYY')||'-'||LPAD((COALESCE(MAX(SUBSTR(INVENTORY_OUT_NO,10,12)),'0')::INTEGER+1)::TEXT,3,'0') FROM INVENTORY_MGMT_OUT_MASTER) -->
|
|
,#{REQUEST_DATE }
|
|
,#{WRITER }
|
|
<!-- ,#{RECEPTION_STATUS }
|
|
,#{RECEPTION_ID }
|
|
,#{RECEPTION_DATE }
|
|
,#{OUTSTATUS } -->
|
|
,#{WRITER }
|
|
,NOW()
|
|
,#{REMARK }
|
|
,#{CONTRACT_MGMT_OBJID }
|
|
) ON CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET
|
|
REMARK = #{REMARK }
|
|
</update>
|
|
|
|
<!-- 불출의뢰서 저장 시 저장된 파트 정보를 초기화 -->
|
|
<delete id="initInventoryRequestPart" parameterType="map">
|
|
DELETE FROM INVENTORY_MGMT_OUT WHERE INVENTORY_REQUEST_MASTER_OBJID = #{INVENTORY_REQUEST_MASTER_OBJID}
|
|
</delete>
|
|
|
|
<select id="getInventoryRequestMasterInfo" parameterType="map" resultType="map">
|
|
SELECT
|
|
*
|
|
,(SELECT PROJECT_NO FROM PROJECT_MGMT P WHERE P.OBJID = IM.CONTRACT_MGMT_OBJID )
|
|
FROM
|
|
INVENTORY_MGMT_OUT_MASTER IM
|
|
WHERE 1=1
|
|
AND OBJID = #{INVENTORY_REQUEST_MASTER_OBJID}
|
|
</select>
|
|
|
|
<!-- 자재불출의뢰서 목록을 가져온다. -->
|
|
<select id="materialRequesrGridtList" parameterType="map" resultType="map">
|
|
SELECT
|
|
IM.*
|
|
FROM(
|
|
SELECT
|
|
ROW_NUMBER() OVER(ORDER BY INVENTORY_OUT_NO DESC) AS RNUM,
|
|
OBJID
|
|
,(SELECT STRING_AGG(PART_NO,',') FROM PART_MNG AS O WHERE O.OBJID IN (SELECT PART_OBJID FROM INVENTORY_MGMT AS O1 WHERE O1.OBJID IN (SELECT PARENT_OBJID FROM INVENTORY_MGMT_OUT AS O WHERE O.INVENTORY_REQUEST_MASTER_OBJID= IM.OBJID))) AS PART_NO_ARR
|
|
,(SELECT STRING_AGG(PART_NAME,',') FROM PART_MNG AS O WHERE O.OBJID IN (SELECT PART_OBJID FROM INVENTORY_MGMT AS O1 WHERE O1.OBJID IN (SELECT PARENT_OBJID FROM INVENTORY_MGMT_OUT AS O WHERE O.INVENTORY_REQUEST_MASTER_OBJID= IM.OBJID))) AS PART_NAME_ARR
|
|
,PARENT_OBJID
|
|
,INVENTORY_OUT_NO
|
|
,REQUEST_DATE
|
|
,REQUEST_ID
|
|
,RECEPTION_STATUS
|
|
,CASE WHEN RECEPTION_STATUS = 'reception' THEN '접수'
|
|
ELSE '미접수'
|
|
END RECEPTION_STATUS_TITLE
|
|
,RECEPTION_ID
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = IM.RECEPTION_ID) AS RECEPTION_USER_NAME
|
|
,RECEPTION_DATE
|
|
,OUTSTATUS
|
|
,CASE WHEN OUTSTATUS = 'complete' THEN '완료'
|
|
ELSE '미완료'
|
|
END OUTSTATUS_TITLE
|
|
,WRITER
|
|
,(SELECT USER_NAME FROM USER_INFO AS O WHERE O.USER_ID = IM.WRITER) AS REQUEST_USER_NAME
|
|
,REGDATE
|
|
,TO_CHAR(IM.REGDATE,'YYYY-MM-DD') AS REG_DATE
|
|
,IMO.REQUEST_QTY
|
|
,IMO.OUT_QTY
|
|
,IMO.INVENTORY_REQUEST_MASTER_OBJID
|
|
FROM
|
|
INVENTORY_MGMT_OUT_MASTER AS IM
|
|
LEFT OUTER JOIN (
|
|
SELECT
|
|
INVENTORY_REQUEST_MASTER_OBJID
|
|
,SUM(coalesce(REQUEST_QTY::NUMERIC, 0)) AS REQUEST_QTY
|
|
,SUM(coalesce(OUT_QTY::NUMERIC, 0)) AS OUT_QTY
|
|
FROM
|
|
INVENTORY_MGMT_OUT
|
|
GROUP BY INVENTORY_REQUEST_MASTER_OBJID
|
|
) AS IMO
|
|
ON IMO.INVENTORY_REQUEST_MASTER_OBJID = IM.OBJID
|
|
|
|
WHERE 1=1
|
|
<if test="Year != null and Year !=''">
|
|
AND IM.REGDATE = #{Year}
|
|
</if>
|
|
<if test="project_no != null and project_no != ''">
|
|
AND IM.CONTRACT_OBJID = #{project_no}
|
|
</if>
|
|
<if test="unit_code != null and unit_code != ''">
|
|
AND IM.UNIT = #{unit_code}
|
|
</if>
|
|
<!--
|
|
<if test="part_no != null and part_no != ''">
|
|
AND UPPER(P.PART_NO) LIKE UPPER('%${part_no}%')
|
|
</if>
|
|
<if test="part_name != null and part_name != ''">
|
|
AND UPPER(P.PART_NAME) LIKE UPPER('%${part_name}%')
|
|
</if>
|
|
-->
|
|
<if test="spec != null and spec != ''">
|
|
AND UPPER(P.SPEC) LIKE UPPER('%${spec}%')
|
|
</if>
|
|
|
|
<if test="cls_cd != null and cls_cd != ''">
|
|
AND IM.CLS_CD = #{cls_cd}
|
|
</if>
|
|
<if test="cau_cd != null and cau_cd != ''">
|
|
AND IM.CAU_CD = #{cau_cd}
|
|
</if>
|
|
<if test="location != null and location != ''">
|
|
AND IM.LOCATION = #{location}
|
|
</if>
|
|
<if test="writer != null and writer != ''">
|
|
AND IM.WRITER = #{writer}
|
|
</if>
|
|
|
|
<if test="request_user != null and request_user != ''">
|
|
AND IM.WRITER = #{request_user}
|
|
</if>
|
|
<if test="reception_user != null and reception_user != ''">
|
|
AND IM.RECEPTION_ID = #{reception_user}
|
|
</if>
|
|
<if test="reception_status != null and reception_status != ''">
|
|
AND IM.RECEPTION_STATUS = #{reception_status}
|
|
</if>
|
|
<if test="out_status != null and out_status != ''">
|
|
AND (CASE WHEN OUTSTATUS = 'complete' THEN 'complete' ELSE 'NG' END) = #{out_status}
|
|
<!-- AND OUTSTATUS = #{out_status} -->
|
|
</if>
|
|
<if test="request_start_date !=null and request_start_date != '' ">
|
|
AND TO_DATE(IM.REQUEST_DATE ,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{request_start_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="request_end_date !=null and request_end_date != '' ">
|
|
AND TO_DATE(IM.REQUEST_DATE ,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{request_end_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
|
|
<if test="reception_start_date !=null and reception_start_date != '' ">
|
|
AND TO_DATE(IM.RECEPTION_DATE ,'YYYY-MM-DD') <![CDATA[ >= ]]> TO_DATE(#{reception_start_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
<if test="reception_end_date !=null and reception_end_date != '' ">
|
|
AND TO_DATE(IM.RECEPTION_DATE ,'YYYY-MM-DD') <![CDATA[ <= ]]> TO_DATE(#{reception_end_date}, 'YYYY-MM-DD')
|
|
</if>
|
|
) IM
|
|
WHERE 1=1
|
|
<if test="part_no != null and part_no != ''">
|
|
AND UPPER(PART_NO_ARR) LIKE '%'||TRIM(UPPER(#{part_no}))||'%'
|
|
</if>
|
|
<if test="part_name != null and part_name != ''">
|
|
AND UPPER(PART_NAME_ARR) LIKE '%'||TRIM(UPPER(#{part_name}))||'%'
|
|
</if>
|
|
ORDER BY REGDATE DESC
|
|
</select>
|
|
|
|
<update id="mergeReceiptInventoryRequestInfo" parameterType="map">
|
|
UPDATE
|
|
INVENTORY_MGMT_OUT_MASTER
|
|
SET
|
|
RECEPTION_STATUS = #{RECEPTION_STATUS}
|
|
,RECEPTION_DATE = #{RECEPTION_DATE}
|
|
,RECEPTION_ID = #{RECEPTION_ID}
|
|
WHERE OBJID = #{OBJID}
|
|
</update>
|
|
<select id="materialRequestDetailPopUpsign" parameterType="map" resultType="map">
|
|
SELECT
|
|
OBJID
|
|
,ACQ_USER
|
|
,SIGN
|
|
FROM
|
|
INVENTORY_MGMT_OUT
|
|
WHERE OBJID = #{OBJID}
|
|
|
|
</select>
|
|
|
|
<update id="materialRequestDetailPopUpsigndelete" parameterType="map">
|
|
INSERT INTO INVENTORY_MGMT_OUT
|
|
(
|
|
OBJID
|
|
,SIGN
|
|
)
|
|
VALUES
|
|
(
|
|
#{OBJID}
|
|
,#{SIGN}
|
|
|
|
) ON CONFLICT (OBJID) DO
|
|
UPDATE
|
|
SET
|
|
SIGN = #{SIGN}
|
|
</update>
|
|
<!-- 재고관리 목록을 가져온다. -->
|
|
<select id="getInventoryMngRequestDetailList" parameterType="map" resultType="map">
|
|
SELECT
|
|
*
|
|
,(SELECT PROJECT_NO FROM PROJECT_MGMT PM WHERE PM.OBJID = IMO.CONTRACT_MGMT_OBJID) PROJECT_NO
|
|
,(SELECT O.UNIT_NO || '-' || O.TASK_NAME FROM PMS_WBS_TASK AS O WHERE O.OBJID = IMO.UNIT) AS UNIT_NAME
|
|
,(SELECT PART_NO FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS PART_NO
|
|
,(SELECT PART_NAME FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS PART_NAME
|
|
,(SELECT SPEC FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS SPEC
|
|
,(SELECT MAKER FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS MAKER
|
|
,(SELECT CODE_NAME(PART_TYPE) FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS PART_TYPE_NAME
|
|
,(SELECT PART_TYPE FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS PART_TYPE
|
|
,(SELECT CODE_NAME FROM COMM_CODE AS O WHERE O.CODE_ID = COALESCE(NULLIF(IMI.LOCATION, ''), IM.LOCATION)) AS LOCATION_NAME
|
|
,(SELECT CODE_NAME FROM COMM_CODE AS O WHERE O.CODE_ID = COALESCE(NULLIF(IMI.SUB_LOCATION, ''), IM.SUB_LOCATION)) AS SUB_LOCATION_NAME
|
|
,(SELECT MATERIAL FROM PART_MNG AS O WHERE O.OBJID::VARCHAR = IM.PART_OBJID) AS MATERIAL
|
|
<!-- , IMO.SIGN -->
|
|
,(SELECT SIGN FROM INVENTORY_MGMT_OUT_MASTER AS O WHERE O.OBJID = IMO.INVENTORY_REQUEST_MASTER_OBJID) AS SIGN
|
|
,(SELECT USER_NAME(WRITER) FROM INVENTORY_MGMT_IN IMI WHERE IMI.PARENT_OBJID = IMO.PARENT_OBJID ORDER BY REGDATE DESC LIMIT 1) AS RECEIVER_NAME
|
|
,IMO.CONTRACT_MGMT_OBJID
|
|
,USER_NAME(IMO.ACQ_user) AS ACQ_USER_NAME
|
|
<!-- ,USER_NAME(IM.WRITER) AS RECEIVER_NAME -->
|
|
,IMI.OBJID AS IN_OBJID
|
|
FROM
|
|
INVENTORY_MGMT_OUT IMO
|
|
LEFT OUTER JOIN INVENTORY_MGMT IM
|
|
ON IM.OBJID = IMO.PARENT_OBJID
|
|
LEFT OUTER JOIN INVENTORY_MGMT_IN IMI
|
|
<!-- ON IMI.OUT_OBJID = IMO.OBJID -->
|
|
ON IMO.OBJID = ANY(STRING_TO_ARRAY(IMI.OUT_OBJID, ','))
|
|
WHERE IMO.INVENTORY_REQUEST_MASTER_OBJID = #{INVENTORY_REQUEST_MASTER_OBJID}
|
|
</select>
|
|
|
|
<!-- 불출이력을 가져온다 -->
|
|
<select id="getInventoryRequestHistoryList" parameterType="map" resultType="map">
|
|
|
|
SELECT
|
|
(SELECT MAX(PARENT_OBJID) FROM ARRIVAL_PLAN AS O WHERE O.PART_OBJID = (SELECT PART_OBJID FROM INVENTORY_MGMT AS O1 WHERE O1.OBJID = T.PARENT_OBJID)) AS OBJID
|
|
,(SELECT PART_NO FROM PART_MNG AS O WHERE O.OBJID = (SELECT PART_OBJID FROM INVENTORY_MGMT AS O1 WHERE O1.OBJID = T.PARENT_OBJID)) AS PART_NO
|
|
,(SELECT PART_NAME FROM PART_MNG AS O WHERE O.OBJID = (SELECT PART_OBJID FROM INVENTORY_MGMT AS O1 WHERE O1.OBJID = T.PARENT_OBJID)) AS PART_NAME
|
|
,'입고' AS GUBUN
|
|
,T.RECEIPT_QTY
|
|
,CODE_NAME(LOCATION) LOCATION_NAME
|
|
,CODE_NAME(SUB_LOCATION) SUB_LOCATION_NAME
|
|
,(SELECT PROJECT_NO FROM PROJECT_MGMT PM WHERE PM.OBJID = T.CONTRACT_MGMT_OBJID) PROJECT_NO
|
|
FROM INVENTORY_MGMT_IN T
|
|
WHERE T.PARENT_OBJID=#{objId}
|
|
AND MOVE_DATE IS NULL OR MOVE_DATE = ''
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
T2.OBJID
|
|
,(SELECT PART_NO FROM PART_MNG AS O WHERE O.OBJID = (SELECT PART_OBJID FROM INVENTORY_MGMT AS O1 WHERE O1.OBJID = T.PARENT_OBJID)) AS PART_NO
|
|
,(SELECT PART_NAME FROM PART_MNG AS O WHERE O.OBJID = (SELECT PART_OBJID FROM INVENTORY_MGMT AS O1 WHERE O1.OBJID = T.PARENT_OBJID)) AS PART_NAME
|
|
,'출고' AS GUBUN
|
|
,T.OUT_QTY
|
|
,CODE_NAME(T1.LOCATION) LOCATION_NAME
|
|
,CODE_NAME(T1.SUB_LOCATION) SUB_LOCATION_NAME
|
|
,(SELECT PROJECT_NO FROM PROJECT_MGMT PM WHERE PM.OBJID = T.CONTRACT_MGMT_OBJID) PROJECT_NO
|
|
FROM INVENTORY_MGMT_OUT AS T
|
|
LEFT JOIN INVENTORY_MGMT AS T1
|
|
ON T.PARENT_OBJID = T1.OBJID
|
|
LEFT JOIN INVENTORY_MGMT_OUT_MASTER AS T2
|
|
ON T.INVENTORY_REQUEST_MASTER_OBJID = T2.OBJID
|
|
WHERE T.PARENT_OBJID=#{objId}
|
|
|
|
UNION ALL
|
|
|
|
SELECT
|
|
(SELECT MAX(PARENT_OBJID) FROM ARRIVAL_PLAN AS O WHERE O.PART_OBJID = (SELECT PART_OBJID FROM INVENTORY_MGMT AS O1 WHERE O1.OBJID = T.PARENT_OBJID)) AS OBJID
|
|
,(SELECT PART_NO FROM PART_MNG AS O WHERE O.OBJID = (SELECT PART_OBJID FROM INVENTORY_MGMT AS O1 WHERE O1.OBJID = T.PARENT_OBJID)) AS PART_NO
|
|
,(SELECT PART_NAME FROM PART_MNG AS O WHERE O.OBJID = (SELECT PART_OBJID FROM INVENTORY_MGMT AS O1 WHERE O1.OBJID = T.PARENT_OBJID)) AS PART_NAME
|
|
,'이동' AS GUBUN
|
|
,T.RECEIPT_QTY
|
|
,CODE_NAME(LOCATION) LOCATION_NAME
|
|
,CODE_NAME(SUB_LOCATION) SUB_LOCATION_NAME
|
|
,(SELECT PROJECT_NO FROM PROJECT_MGMT PM WHERE PM.OBJID = T.CONTRACT_MGMT_OBJID) PROJECT_NO
|
|
FROM INVENTORY_MGMT_IN T
|
|
WHERE T.PARENT_OBJID=#{objId}
|
|
AND MOVE_DATE IS NOT NULL AND MOVE_DATE != ''
|
|
</select>
|
|
|
|
<update id="mergeAcceptInventoryRequestInfo" parameterType="map">
|
|
UPDATE
|
|
INVENTORY_MGMT_OUT_MASTER
|
|
SET
|
|
OUTSTATUS = #{OUTSTATUS}
|
|
,REQUEST_DATE = #{REQUEST_DATE}
|
|
WHERE OBJID = #{OBJID}
|
|
</update>
|
|
|
|
<update id="mergeAcceptInventoryRequestPartInfo" parameterType="map">
|
|
UPDATE
|
|
INVENTORY_MGMT_OUT
|
|
SET
|
|
OUT_DATE = #{REQUEST_DATE}
|
|
WHERE INVENTORY_REQUEST_MASTER_OBJID = #{OBJID}
|
|
</update>
|
|
|
|
<update id="mergeInventoryMoveInfo" parameterType="map">
|
|
UPDATE
|
|
INVENTORY_MGMT_IN
|
|
SET
|
|
MOVE_OBJID = #{OBJID}
|
|
,MOVE_QTY = #{SUM_MOVE_QTY}
|
|
WHERE OBJID = #{MOVE_OBJID}
|
|
</update>
|
|
|
|
<update id="saveInventoryMoveInInfo" parameterType="map">
|
|
INSERT INTO INVENTORY_MGMT_IN (
|
|
OBJID
|
|
,PARENT_OBJID
|
|
,RECEIPT_QTY
|
|
,LOCATION
|
|
,SUB_LOCATION
|
|
,WRITER
|
|
,REGDATE
|
|
,PURCHASE_ORDER_MASTER_OBJID
|
|
,CONTRACT_MGMT_OBJID
|
|
,PURCHASE_ORDER_SUB_OBJID
|
|
,MOVE_DATE
|
|
,MOVE_USER
|
|
)
|
|
(
|
|
SELECT
|
|
#{OBJID}
|
|
,PARENT_OBJID
|
|
,#{MOVE_QTY}
|
|
,#{LOCATION}
|
|
,#{SUB_LOCATION}
|
|
,#{WRITER}
|
|
,now()
|
|
,PURCHASE_ORDER_MASTER_OBJID
|
|
,CONTRACT_MGMT_OBJID
|
|
,PURCHASE_ORDER_SUB_OBJID
|
|
,#{MOVE_DATE}
|
|
,#{MOVE_USER}
|
|
FROM INVENTORY_MGMT_IN
|
|
WHERE MOVE_OBJID = #{OBJID}
|
|
)
|
|
</update>
|
|
|
|
<select id="getInventoryMoveInfo" parameterType="map" resultType="com.pms.common.UpperKeyMap">
|
|
SELECT
|
|
OBJID,
|
|
MOVE_QTY
|
|
FROM INVENTORY_MGMT_IN
|
|
WHERE OBJID = #{MOVE_OBJID}
|
|
</select>
|
|
|
|
</mapper> |