구매리스트 가공 추가, 품의서 생성도 소재, 가공 분리

This commit is contained in:
2026-01-16 16:04:26 +09:00
parent d64039e283
commit e8d9f273e0
5 changed files with 712 additions and 234 deletions

View File

@@ -3114,7 +3114,11 @@ UPDATE SET
COALESCE(SRP.VENDOR_PM, SRP.PARTNER_OBJID) AS VENDOR_PM,
COALESCE(SRP.UNIT_PRICE, NULLIF(SRP.PARTNER_PRICE, '')::numeric, 0) AS UNIT_PRICE,
COALESCE(SRP.TOTAL_PRICE, 0) AS TOTAL_PRICE,
COALESCE(SRP.PROCESSING_UNIT_PRICE, 0) AS PROCESSING_UNIT_PRICE,
COALESCE(SRP.PROCESSING_TOTAL_PRICE, 0) AS PROCESSING_TOTAL_PRICE,
COALESCE(SRP.GRAND_TOTAL_PRICE, 0) AS GRAND_TOTAL_PRICE,
SRP.PROPOSAL_DATE,
SRP.PROCESSING_PROPOSAL_DATE,
'SRP' AS DATA_SOURCE -- 데이터 소스 구분용
FROM
SALES_REQUEST_PART SRP
@@ -3173,7 +3177,11 @@ WITH RECURSIVE VIEW_BOM(
USE_YN,
NET_QTY,
PO_QTY,
PROPOSAL_DATE
PROPOSAL_DATE,
PROCESSING_PROPOSAL_DATE,
PROCESSING_UNIT_PRICE,
PROCESSING_TOTAL_PRICE,
GRAND_TOTAL_PRICE
) AS (
SELECT
A.MBOM_HEADER_OBJID,
@@ -3221,7 +3229,11 @@ WITH RECURSIVE VIEW_BOM(
COALESCE(A.USE_YN, 'Y'),
COALESCE(A.NET_QTY, 0),
COALESCE(A.PO_QTY, 0),
A.PROPOSAL_DATE
A.PROPOSAL_DATE,
A.PROCESSING_PROPOSAL_DATE,
COALESCE(A.PROCESSING_UNIT_PRICE, 0),
COALESCE(A.PROCESSING_TOTAL_PRICE, 0),
COALESCE(A.GRAND_TOTAL_PRICE, 0)
FROM
MBOM_DETAIL A
INNER JOIN MBOM_HEADER MH ON MH.OBJID = A.MBOM_HEADER_OBJID
@@ -3281,7 +3293,11 @@ WITH RECURSIVE VIEW_BOM(
COALESCE(B.USE_YN, 'Y'),
COALESCE(B.NET_QTY, 0),
COALESCE(B.PO_QTY, 0),
B.PROPOSAL_DATE
B.PROPOSAL_DATE,
B.PROCESSING_PROPOSAL_DATE,
COALESCE(B.PROCESSING_UNIT_PRICE, 0),
COALESCE(B.PROCESSING_TOTAL_PRICE, 0),
COALESCE(B.GRAND_TOTAL_PRICE, 0)
FROM
MBOM_DETAIL B
JOIN
@@ -3369,6 +3385,10 @@ SELECT
V.NET_QTY,
V.PO_QTY,
V.PROPOSAL_DATE,
V.PROCESSING_PROPOSAL_DATE,
V.PROCESSING_UNIT_PRICE,
V.PROCESSING_TOTAL_PRICE,
V.GRAND_TOTAL_PRICE,
'MBOM' AS DATA_SOURCE -- 데이터 소스 구분용
FROM VIEW_BOM V
LEFT JOIN PART_MNG P ON P.OBJID::VARCHAR = V.PART_OBJID::VARCHAR
@@ -3400,6 +3420,9 @@ ORDER BY V.PATH2
PROCESSING_VENDOR = #{PROCESSING_VENDOR},
UNIT_PRICE = COALESCE(NULLIF(TRIM(#{UNIT_PRICE}::TEXT), '')::NUMERIC, 0),
TOTAL_PRICE = COALESCE(NULLIF(TRIM(#{TOTAL_PRICE}::TEXT), '')::NUMERIC, 0),
PROCESSING_UNIT_PRICE = COALESCE(NULLIF(TRIM(#{PROCESSING_UNIT_PRICE}::TEXT), '')::NUMERIC, 0),
PROCESSING_TOTAL_PRICE = COALESCE(NULLIF(TRIM(#{PROCESSING_TOTAL_PRICE}::TEXT), '')::NUMERIC, 0),
GRAND_TOTAL_PRICE = COALESCE(NULLIF(TRIM(#{GRAND_TOTAL_PRICE}::TEXT), '')::NUMERIC, 0),
EDITER = #{EDITER},
EDIT_DATE = NOW()
WHERE OBJID::VARCHAR = #{OBJID}
@@ -3415,6 +3438,9 @@ ORDER BY V.PATH2
PROCESSING_VENDOR = #{PROCESSING_VENDOR},
UNIT_PRICE = COALESCE(NULLIF(TRIM(#{UNIT_PRICE}::TEXT), '')::NUMERIC, 0),
TOTAL_PRICE = COALESCE(NULLIF(TRIM(#{TOTAL_PRICE}::TEXT), '')::NUMERIC, 0),
PROCESSING_UNIT_PRICE = COALESCE(NULLIF(TRIM(#{PROCESSING_UNIT_PRICE}::TEXT), '')::NUMERIC, 0),
PROCESSING_TOTAL_PRICE = COALESCE(NULLIF(TRIM(#{PROCESSING_TOTAL_PRICE}::TEXT), '')::NUMERIC, 0),
GRAND_TOTAL_PRICE = COALESCE(NULLIF(TRIM(#{GRAND_TOTAL_PRICE}::TEXT), '')::NUMERIC, 0),
WRITER = #{EDITER}
WHERE OBJID::VARCHAR = #{OBJID}
</update>
@@ -3477,7 +3503,7 @@ ORDER BY V.PATH2
<!-- ==================== 품의서 관리 ==================== -->
<!-- 품의서 대상 품목 조회 - M-BOM 기반 (MBOM_DETAIL에서 조회) -->
<!-- 품의서 대상 품목 조회 - M-BOM 기반 (MBOM_DETAIL에서 조회) - 소재단가 기준 -->
<select id="getProposalTargetPartsFromMBom" parameterType="map" resultType="com.pms.common.UpperKeyMap">
SELECT
MD.OBJID,
@@ -3488,27 +3514,62 @@ ORDER BY V.PATH2
MD.UNIT_PRICE,
MD.TOTAL_PRICE,
MD.VENDOR AS VENDOR_PM,
(SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE OBJID::VARCHAR = MD.VENDOR) AS VENDOR_NAME,
(SELECT CLIENT_NM FROM CLIENT_MNG WHERE OBJID::VARCHAR = MD.VENDOR) AS VENDOR_NAME,
MD.NET_QTY,
MD.PO_QTY,
'MBOM' AS DATA_SOURCE
MD.PRODUCTION_QTY,
'MBOM' AS DATA_SOURCE,
'MATERIAL' AS PROPOSAL_TYPE
FROM
MBOM_DETAIL MD
LEFT JOIN PART_MNG PM ON MD.PART_OBJID::VARCHAR = PM.OBJID::VARCHAR
WHERE
MD.MBOM_HEADER_OBJID = #{MBOM_HEADER_OBJID}
-- 단가가 입력되어 있고
-- 소재단가가 입력되어 있고
AND MD.UNIT_PRICE IS NOT NULL
AND MD.UNIT_PRICE > 0
-- 공급업체가 입력되어 있고
AND MD.VENDOR IS NOT NULL
AND MD.VENDOR != ''
-- 품의서가 생성되지 않은 품목만
-- 소재 품의서가 생성되지 않은 품목만
AND MD.PROPOSAL_DATE IS NULL
ORDER BY MD.REGDATE
</select>
<!-- 품의서 대상 제외 품목 조회 - M-BOM 기반 (단가O, 공급업체X) -->
<!-- 품의서 대상 품목 조회 - M-BOM 기반 (MBOM_DETAIL에서 조회) - 가공단가 기준 -->
<select id="getProposalTargetPartsFromMBomProcessing" parameterType="map" resultType="com.pms.common.UpperKeyMap">
SELECT
MD.OBJID,
MD.PART_OBJID,
PM.PART_NO,
PM.PART_NAME,
MD.QTY,
MD.PROCESSING_UNIT_PRICE AS UNIT_PRICE,
MD.PROCESSING_TOTAL_PRICE AS TOTAL_PRICE,
MD.PROCESSING_VENDOR AS VENDOR_PM,
(SELECT CLIENT_NM FROM CLIENT_MNG WHERE OBJID::VARCHAR = MD.PROCESSING_VENDOR) AS VENDOR_NAME,
MD.NET_QTY,
MD.PO_QTY,
MD.PRODUCTION_QTY,
'MBOM' AS DATA_SOURCE,
'PROCESSING' AS PROPOSAL_TYPE
FROM
MBOM_DETAIL MD
LEFT JOIN PART_MNG PM ON MD.PART_OBJID::VARCHAR = PM.OBJID::VARCHAR
WHERE
MD.MBOM_HEADER_OBJID = #{MBOM_HEADER_OBJID}
-- 가공단가가 입력되어 있고
AND MD.PROCESSING_UNIT_PRICE IS NOT NULL
AND MD.PROCESSING_UNIT_PRICE > 0
-- 가공업체가 입력되어 있고
AND MD.PROCESSING_VENDOR IS NOT NULL
AND MD.PROCESSING_VENDOR != ''
-- 가공 품의서가 생성되지 않은 품목만
AND MD.PROCESSING_PROPOSAL_DATE IS NULL
ORDER BY MD.REGDATE
</select>
<!-- 품의서 대상 제외 품목 조회 - M-BOM 기반 (소재단가O, 공급업체X) -->
<select id="getProposalExcludedPartsFromMBom" parameterType="map" resultType="com.pms.common.UpperKeyMap">
SELECT
MD.OBJID,
@@ -3518,23 +3579,51 @@ ORDER BY V.PATH2
MD.QTY,
MD.UNIT_PRICE,
MD.TOTAL_PRICE,
'MBOM' AS DATA_SOURCE
'MBOM' AS DATA_SOURCE,
'MATERIAL' AS PROPOSAL_TYPE
FROM
MBOM_DETAIL MD
LEFT JOIN PART_MNG PM ON MD.PART_OBJID::VARCHAR = PM.OBJID::VARCHAR
WHERE
MD.MBOM_HEADER_OBJID = #{MBOM_HEADER_OBJID}
-- 단가가 입력되어 있고
-- 소재단가가 입력되어 있고
AND MD.UNIT_PRICE IS NOT NULL
AND MD.UNIT_PRICE > 0
-- 공급업체가 미입력
AND (MD.VENDOR IS NULL OR MD.VENDOR = '')
-- 품의서가 생성되지 않은 품목만
-- 소재 품의서가 생성되지 않은 품목만
AND MD.PROPOSAL_DATE IS NULL
ORDER BY MD.REGDATE
</select>
<!-- 품의서 대상 품목 조회 - 수동 작성 (SALES_REQUEST_PART에서 조회) -->
<!-- 품의서 대상 제외 품목 조회 - M-BOM 기반 (가공단가O, 가공업체X) -->
<select id="getProposalExcludedPartsFromMBomProcessing" parameterType="map" resultType="com.pms.common.UpperKeyMap">
SELECT
MD.OBJID,
MD.PART_OBJID,
PM.PART_NO,
PM.PART_NAME,
MD.QTY,
MD.PROCESSING_UNIT_PRICE AS UNIT_PRICE,
MD.PROCESSING_TOTAL_PRICE AS TOTAL_PRICE,
'MBOM' AS DATA_SOURCE,
'PROCESSING' AS PROPOSAL_TYPE
FROM
MBOM_DETAIL MD
LEFT JOIN PART_MNG PM ON MD.PART_OBJID::VARCHAR = PM.OBJID::VARCHAR
WHERE
MD.MBOM_HEADER_OBJID = #{MBOM_HEADER_OBJID}
-- 가공단가가 입력되어 있고
AND MD.PROCESSING_UNIT_PRICE IS NOT NULL
AND MD.PROCESSING_UNIT_PRICE > 0
-- 가공업체가 미입력
AND (MD.PROCESSING_VENDOR IS NULL OR MD.PROCESSING_VENDOR = '')
-- 가공 품의서가 생성되지 않은 품목만
AND MD.PROCESSING_PROPOSAL_DATE IS NULL
ORDER BY MD.REGDATE
</select>
<!-- 품의서 대상 품목 조회 - 수동 작성 (SALES_REQUEST_PART에서 조회) - 소재단가 기준 -->
<select id="getProposalTargetPartsFromManual" parameterType="map" resultType="com.pms.common.UpperKeyMap">
SELECT
SRP.OBJID,
@@ -3545,27 +3634,62 @@ ORDER BY V.PATH2
SRP.UNIT_PRICE,
SRP.TOTAL_PRICE,
SRP.VENDOR_PM,
(SELECT SUPPLY_NAME FROM ADMIN_SUPPLY_MNG WHERE OBJID::VARCHAR = SRP.VENDOR_PM) AS VENDOR_NAME,
(SELECT CLIENT_NM FROM CLIENT_MNG WHERE OBJID::VARCHAR = SRP.VENDOR_PM) AS VENDOR_NAME,
SRP.NET_QTY,
SRP.PO_QTY,
'MANUAL' AS DATA_SOURCE
SRP.PRODUCTION_QTY,
'MANUAL' AS DATA_SOURCE,
'MATERIAL' AS PROPOSAL_TYPE
FROM
SALES_REQUEST_PART SRP
LEFT JOIN PART_MNG PM ON SRP.PART_OBJID::VARCHAR = PM.OBJID::VARCHAR
WHERE
SRP.SALES_REQUEST_MASTER_OBJID = #{SALES_REQUEST_MASTER_OBJID}
-- 단가가 입력되어 있고
-- 소재단가가 입력되어 있고
AND SRP.UNIT_PRICE IS NOT NULL
AND SRP.UNIT_PRICE > 0
-- 공급업체가 입력되어 있고
AND SRP.VENDOR_PM IS NOT NULL
AND SRP.VENDOR_PM != ''
-- 품의서가 생성되지 않은 품목만
-- 소재 품의서가 생성되지 않은 품목만
AND SRP.PROPOSAL_DATE IS NULL
ORDER BY SRP.REGDATE
</select>
<!-- 품의서 대상 제외 품목 조회 - 수동 작성 (단가O, 공급업체X) -->
<!-- 품의서 대상 품목 조회 - 수동 작성 (SALES_REQUEST_PART에서 조회) - 가공단가 기준 -->
<select id="getProposalTargetPartsFromManualProcessing" parameterType="map" resultType="com.pms.common.UpperKeyMap">
SELECT
SRP.OBJID,
SRP.PART_OBJID,
PM.PART_NO,
PM.PART_NAME,
SRP.QTY,
SRP.PROCESSING_UNIT_PRICE AS UNIT_PRICE,
SRP.PROCESSING_TOTAL_PRICE AS TOTAL_PRICE,
SRP.PROCESSING_VENDOR AS VENDOR_PM,
(SELECT CLIENT_NM FROM CLIENT_MNG WHERE OBJID::VARCHAR = SRP.PROCESSING_VENDOR) AS VENDOR_NAME,
SRP.NET_QTY,
SRP.PO_QTY,
SRP.PRODUCTION_QTY,
'MANUAL' AS DATA_SOURCE,
'PROCESSING' AS PROPOSAL_TYPE
FROM
SALES_REQUEST_PART SRP
LEFT JOIN PART_MNG PM ON SRP.PART_OBJID::VARCHAR = PM.OBJID::VARCHAR
WHERE
SRP.SALES_REQUEST_MASTER_OBJID = #{SALES_REQUEST_MASTER_OBJID}
-- 가공단가가 입력되어 있고
AND SRP.PROCESSING_UNIT_PRICE IS NOT NULL
AND SRP.PROCESSING_UNIT_PRICE > 0
-- 가공업체가 입력되어 있고
AND SRP.PROCESSING_VENDOR IS NOT NULL
AND SRP.PROCESSING_VENDOR != ''
-- 가공 품의서가 생성되지 않은 품목만
AND SRP.PROCESSING_PROPOSAL_DATE IS NULL
ORDER BY SRP.REGDATE
</select>
<!-- 품의서 대상 제외 품목 조회 - 수동 작성 (소재단가O, 공급업체X) -->
<select id="getProposalExcludedPartsFromManual" parameterType="map" resultType="com.pms.common.UpperKeyMap">
SELECT
SRP.OBJID,
@@ -3575,22 +3699,50 @@ ORDER BY V.PATH2
SRP.QTY,
SRP.UNIT_PRICE,
SRP.TOTAL_PRICE,
'MANUAL' AS DATA_SOURCE
'MANUAL' AS DATA_SOURCE,
'MATERIAL' AS PROPOSAL_TYPE
FROM
SALES_REQUEST_PART SRP
LEFT JOIN PART_MNG PM ON SRP.PART_OBJID::VARCHAR = PM.OBJID::VARCHAR
WHERE
SRP.SALES_REQUEST_MASTER_OBJID = #{SALES_REQUEST_MASTER_OBJID}
-- 단가가 입력되어 있고
-- 소재단가가 입력되어 있고
AND SRP.UNIT_PRICE IS NOT NULL
AND SRP.UNIT_PRICE > 0
-- 공급업체가 미입력
AND (SRP.VENDOR_PM IS NULL OR SRP.VENDOR_PM = '')
-- 품의서가 생성되지 않은 품목만
-- 소재 품의서가 생성되지 않은 품목만
AND SRP.PROPOSAL_DATE IS NULL
ORDER BY SRP.REGDATE
</select>
<!-- 품의서 대상 제외 품목 조회 - 수동 작성 (가공단가O, 가공업체X) -->
<select id="getProposalExcludedPartsFromManualProcessing" parameterType="map" resultType="com.pms.common.UpperKeyMap">
SELECT
SRP.OBJID,
SRP.PART_OBJID,
PM.PART_NO,
PM.PART_NAME,
SRP.QTY,
SRP.PROCESSING_UNIT_PRICE AS UNIT_PRICE,
SRP.PROCESSING_TOTAL_PRICE AS TOTAL_PRICE,
'MANUAL' AS DATA_SOURCE,
'PROCESSING' AS PROPOSAL_TYPE
FROM
SALES_REQUEST_PART SRP
LEFT JOIN PART_MNG PM ON SRP.PART_OBJID::VARCHAR = PM.OBJID::VARCHAR
WHERE
SRP.SALES_REQUEST_MASTER_OBJID = #{SALES_REQUEST_MASTER_OBJID}
-- 가공단가가 입력되어 있고
AND SRP.PROCESSING_UNIT_PRICE IS NOT NULL
AND SRP.PROCESSING_UNIT_PRICE > 0
-- 가공업체가 미입력
AND (SRP.PROCESSING_VENDOR IS NULL OR SRP.PROCESSING_VENDOR = '')
-- 가공 품의서가 생성되지 않은 품목만
AND SRP.PROCESSING_PROPOSAL_DATE IS NULL
ORDER BY SRP.REGDATE
</select>
<!-- 품의서 생성 (SALES_REQUEST_MASTER에 INSERT) -->
<insert id="insertProposal" parameterType="map">
INSERT INTO SALES_REQUEST_MASTER (
@@ -3628,7 +3780,7 @@ ORDER BY V.PATH2
)
</insert>
<!-- 품의서용 SALES_REQUEST_PART 생성 (M-BOM 기반 품목 복사) -->
<!-- 품의서용 SALES_REQUEST_PART 생성 (M-BOM 기반 품목 복사) - 소재 -->
<insert id="insertProposalPartFromMBom" parameterType="map">
INSERT INTO SALES_REQUEST_PART (
OBJID,
@@ -3663,7 +3815,42 @@ ORDER BY V.PATH2
WHERE OBJID = #{SOURCE_OBJID}
</insert>
<!-- 품의서용 SALES_REQUEST_PART 생성 (수동 작성 품목 복사) -->
<!-- 품의서용 SALES_REQUEST_PART 생성 (M-BOM 기반 품목 복사) - 가공 -->
<insert id="insertProposalPartFromMBomProcessing" parameterType="map">
INSERT INTO SALES_REQUEST_PART (
OBJID,
SALES_REQUEST_MASTER_OBJID,
PART_OBJID,
QTY,
UNIT_PRICE,
TOTAL_PRICE,
VENDOR_PM,
NET_QTY,
PO_QTY,
USE_YN,
PROPOSAL_DATE,
WRITER,
REGDATE
)
SELECT
#{NEW_OBJID},
#{PROPOSAL_MASTER_OBJID},
PART_OBJID,
PRODUCTION_QTY AS QTY,
PROCESSING_UNIT_PRICE AS UNIT_PRICE,
PROCESSING_TOTAL_PRICE AS TOTAL_PRICE,
PROCESSING_VENDOR AS VENDOR_PM,
NET_QTY,
PO_QTY,
USE_YN,
NOW() AS PROPOSAL_DATE,
#{WRITER},
NOW()
FROM MBOM_DETAIL
WHERE OBJID = #{SOURCE_OBJID}
</insert>
<!-- 품의서용 SALES_REQUEST_PART 생성 (수동 작성 품목 복사) - 소재 -->
<insert id="insertProposalPartFromManual" parameterType="map">
INSERT INTO SALES_REQUEST_PART (
OBJID,
@@ -3698,7 +3885,42 @@ ORDER BY V.PATH2
WHERE OBJID = #{SOURCE_OBJID}
</insert>
<!-- 품의서 생성 후 PROPOSAL_DATE 업데이트 (수동 작성 - SALES_REQUEST_PART) -->
<!-- 품의서용 SALES_REQUEST_PART 생성 (수동 작성 품목 복사) - 가공 -->
<insert id="insertProposalPartFromManualProcessing" parameterType="map">
INSERT INTO SALES_REQUEST_PART (
OBJID,
SALES_REQUEST_MASTER_OBJID,
PART_OBJID,
QTY,
UNIT_PRICE,
TOTAL_PRICE,
VENDOR_PM,
NET_QTY,
PO_QTY,
USE_YN,
PROPOSAL_DATE,
WRITER,
REGDATE
)
SELECT
#{NEW_OBJID},
#{PROPOSAL_MASTER_OBJID},
PART_OBJID,
PRODUCTION_QTY AS QTY,
PROCESSING_UNIT_PRICE AS UNIT_PRICE,
PROCESSING_TOTAL_PRICE AS TOTAL_PRICE,
PROCESSING_VENDOR AS VENDOR_PM,
NET_QTY,
PO_QTY,
USE_YN,
NOW() AS PROPOSAL_DATE,
#{WRITER},
NOW()
FROM SALES_REQUEST_PART
WHERE OBJID = #{SOURCE_OBJID}
</insert>
<!-- 품의서 생성 후 PROPOSAL_DATE 업데이트 (수동 작성 - SALES_REQUEST_PART) - 소재 -->
<update id="updateProposalDateForManualParts" parameterType="map">
UPDATE SALES_REQUEST_PART
SET PROPOSAL_DATE = NOW()
@@ -3708,7 +3930,17 @@ ORDER BY V.PATH2
</foreach>
</update>
<!-- 품의서 생성 후 PROPOSAL_DATE 업데이트 (M-BOM - MBOM_DETAIL) -->
<!-- 품의서 생성 후 PROCESSING_PROPOSAL_DATE 업데이트 (수동 작성 - SALES_REQUEST_PART) - 가공 -->
<update id="updateProcessingProposalDateForManualParts" parameterType="map">
UPDATE SALES_REQUEST_PART
SET PROCESSING_PROPOSAL_DATE = NOW()
WHERE OBJID IN
<foreach collection="PART_OBJIDS" item="objid" open="(" separator="," close=")">
#{objid}
</foreach>
</update>
<!-- 품의서 생성 후 PROPOSAL_DATE 업데이트 (M-BOM - MBOM_DETAIL) - 소재 -->
<update id="updateProposalDateForMBomParts" parameterType="map">
UPDATE MBOM_DETAIL
SET PROPOSAL_DATE = NOW()
@@ -3718,6 +3950,16 @@ ORDER BY V.PATH2
</foreach>
</update>
<!-- 품의서 생성 후 PROCESSING_PROPOSAL_DATE 업데이트 (M-BOM - MBOM_DETAIL) - 가공 -->
<update id="updateProcessingProposalDateForMBomParts" parameterType="map">
UPDATE MBOM_DETAIL
SET PROCESSING_PROPOSAL_DATE = NOW()
WHERE OBJID IN
<foreach collection="PART_OBJIDS" item="objid" open="(" separator="," close=")">
#{objid}
</foreach>
</update>
<!-- 품의서 목록 조회 -->
<select id="getProposalMngGridList" parameterType="map" resultType="map">
SELECT