Files
wace_plm/WebContent/WEB-INF/classes/com/pms/mapper/procurStandMgmt.xml
chpark da06c4684c Initial commit: WACE PLM with database initialization features
- Add Docker Compose configurations for dev, prod, and standalone environments
- Add database initialization scripts (init-db.sh, init-db-docker.sh)
- Add enhanced start-docker-linux.sh with DB init support
- Add comprehensive database initialization guide
- Support for automatic dbexport.pgsql import on first run
- Include safety checks for production environment
2025-08-29 15:46:08 +09:00

358 lines
9.4 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="procurStandMgmt">
<!-- //구매품표준관리 대분류 조회 -->
<select id="mainCategoryGridList" parameterType="map" resultType="map">
SELECT
OBJID
,CODE_NAME
,CODE_ID
,DETAIL
,CATEGORY
,REGDATE
,TO_CHAR(REGDATE, 'YYYY-MM-DD') AS REG_DATE
,WRITER
,USER_NAME(WRITER) AS WRITER_NAME
,STATUS
FROM
PROCUREMENT_STANDARD
WHERE 1=1
<if test="search_category !=null and search_category !=''">
AND CATEGORY = #{search_category}
</if>
<if test="code_name !=null and code_name !=''">
AND OBJID = #{code_name}
</if>
<if test="code_id !=null and code_id !=''">
AND OBJID = #{code_id}
</if>
ORDER BY CODE_ID
</select>
<update id="saveCODE1Info" parameterType="map">
INSERT INTO
PROCUREMENT_STANDARD
(
OBJID
,CODE_NAME
,CODE_ID
,DETAIL
,CATEGORY
,REGDATE
,WRITER
,STATUS
)VALUES(
#{OBJID}
,#{CODE_NAME}
,#{CODE_ID}
,#{DETAIL}
,#{CATEGORY}
,NOW()
,#{WRITER}
,#{STATUS}
)ON CONFLICT (OBJID) DO
UPDATE
SET
CODE_NAME = #{CODE_NAME }
,CODE_ID = #{CODE_ID }
,DETAIL = #{DETAIL }
,CATEGORY = #{CATEGORY }
<!-- ,REGDATE = NOW()
,WRITER = #{WRITER } -->
,STATUS = #{STATUS }
,EDITDATE = NOW()
,EDIT_USER = #{WRITER }
</update>
<!-- 구매품 표준 단건 정보를 가져온다. -->
<select id="getCodeInfo" parameterType="map" resultType="map">
SELECT
OBJID
,CODE_NAME
,CODE_ID
,DETAIL
,CATEGORY
,REGDATE
,WRITER
,STATUS
FROM PROCUREMENT_STANDARD
WHERE OBJID = #{OBJID}
</select>
<delete id="deleteCODE1Info" parameterType="map">
DELETE FROM PROCUREMENT_STANDARD
WHERE OBJID IN
<foreach collection="checkArr" item="objkey" index="index" separator="," open="(" close=")">
#{objkey}
</foreach>
</delete>
<select id="overlapStandardMng" parameterType="map" resultType="map">
SELECT
T.*
FROM PROCUREMENT_STANDARD T
WHERE 1=1
AND T.OBJID != #{OBJID}
AND (REPLACE(TRIM(UPPER(T.CODE_NAME)), ' ', '') = REPLACE(TRIM(UPPER(#{CODE_NAME})), ' ', '')
OR REPLACE(TRIM(UPPER(T.CODE_ID)), ' ', '') = replace(TRIM(UPPER(#{CODE_ID})), ' ', ''))
<!-- OR TRIM(UPPER(T.CODE_ID)) = TRIM(UPPER(#{CODE_ID}))) -->
</select>
<select id="materialCodeGridList" parameterType="map" resultType="map">
SELECT
T.*
,(SELECT CODE_ID FROM PROCUREMENT_STANDARD PS WHERE PS.OBJID = T.CODE1) AS CODE_ID1
,(SELECT CODE_NAME FROM PROCUREMENT_STANDARD PS WHERE PS.OBJID = T.CODE1) AS CODE_NAME1
,(SELECT CODE_ID FROM PROCUREMENT_STANDARD PS WHERE PS.OBJID = T.CODE2) AS CODE_ID2
,(SELECT CODE_NAME FROM PROCUREMENT_STANDARD PS WHERE PS.OBJID = T.CODE2) AS CODE_NAME2
,(SELECT CODE_ID FROM PROCUREMENT_STANDARD PS WHERE PS.OBJID = T.CODE3) AS CODE_ID3
,(SELECT CODE_NAME FROM PROCUREMENT_STANDARD PS WHERE PS.OBJID = T.CODE3) AS CODE_NAME3
,(SELECT CODE_ID FROM PROCUREMENT_STANDARD PS WHERE PS.OBJID = T.CODE4) AS CODE_ID4
,(SELECT CODE_NAME FROM PROCUREMENT_STANDARD PS WHERE PS.OBJID = T.CODE4) AS CODE_NAME4
,(SELECT CODE_ID FROM PROCUREMENT_STANDARD PS WHERE PS.OBJID = T.CODE5) AS CODE_ID5
,(SELECT CODE_NAME FROM PROCUREMENT_STANDARD PS WHERE PS.OBJID = T.CODE5) AS CODE_NAME5
FROM PART_MNG T
WHERE 1=1
AND IS_NEW = '1'
<!-- AND IS_LONGD = '1' -->
<if test="SEARCH_PART_NO != null and SEARCH_PART_NO != ''">
AND UPPER(T.PART_NO) LIKE UPPER('%${SEARCH_PART_NO}%')
</if>
<if test="SEARCH_MAJ_CAT != null and SEARCH_MAJ_CAT != ''">
AND UPPER(T.MAJOR_CATEGORY) LIKE UPPER('%${SEARCH_MAJ_CAT}%')
</if>
<if test="SEARCH_SUB_CAT != null and SEARCH_SUB_CAT != ''">
AND UPPER(T.SUB_CATEGORY) LIKE UPPER('%${SEARCH_SUB_CAT}%')
</if>
<if test="SEARCH_MAKER != null and SEARCH_MAKER != ''">
AND UPPER(T.MAKER) LIKE UPPER('%${SEARCH_MAKER}%')
</if>
<if test="SEARCH_PART_NAME != null and SEARCH_PART_NAME != ''">
AND UPPER(T.PART_NAME) LIKE UPPER('%${SEARCH_PART_NAME}%')
</if>
<if test="SEARCH_SPEC != null and SEARCH_SPEC != ''">
AND UPPER(T.SPEC) LIKE UPPER('%${SEARCH_SPEC}%')
</if>
ORDER BY REG_DATE desc
</select>
<select id="overlapMaterialCode" parameterType="map" resultType="map">
SELECT
T.*
FROM PART_MNG T
WHERE 1=1
AND T.OBJID != #{OBJID}
<!-- AND IS_LONGD = '1' -->
AND REPLACE(TRIM(UPPER(T.PART_NO)), ' ', '') = REPLACE(TRIM(UPPER(#{MATERIAL_CODE})), ' ', '')
</select>
<!-- 자재코드 등록 -->
<update id="mergeMaterialCode" parameterType="map">
INSERT INTO PART_MNG
(
OBJID,
PRODUCT_MGMT_OBJID,
UPG_NO,
PART_NO,
PART_NAME,
UNIT,
QTY,
SPEC,
MATERIAL,
WEIGHT,
PART_TYPE,
REMARK,
ES_SPEC,
MS_SPEC,
CHANGE_TYPE,
CHANGE_OPTION,
DESIGN_APPLY_POINT,
MANAGEMENT_FLAG,
REVISION,
STATUS,
REG_DATE,
WRITER,
IS_LAST,
PARENT_PART_NO,
SUB_MATERIAL,
EO_DATE,
DESIGN_DATE,
THICKNESS,
WIDTH,
HEIGHT,
OUT_DIAMETER,
IN_DIAMETER,
LENGTH,
SUPPLY_CODE,
MAKER,
POST_PROCESSING,
MAJOR_CATEGORY,
SUB_CATEGORY,
IS_NEW,
IS_LONGD,
CODE1,
CODE2,
CODE3,
CODE4,
CODE5,
EO_NO
) VALUES (
#{OBJID}::NUMERIC,
#{PRODUCT_MGMT_OBJID},
#{UPG_NO},
#{MATERIAL_CODE},
#{CODENAME4},
#{UNIT},
#{QTY},
#{CODENAME5},
#{MATERIAL},
#{WEIGHT},
'0001788',
#{REMARK},
#{ES_SPEC},
#{MS_SPEC},
#{CHANGE_TYPE},
#{CHANGE_OPTION},
#{DESIGN_APPLY_POINT},
#{MANAGEMENT_FLAG},
'RE',
'release',
NOW(),
#{WRITER},
'1',
#{PARENT_PART_NO},
#{SUB_MATERIAL},
TO_CHAR(NOW(),'YYYY-MM-DD'),
#{DESIGN_DATE},
#{THICKNESS},
#{WIDTH},
#{HEIGHT},
#{OUT_DIAMETER},
#{IN_DIAMETER},
#{LENGTH},
#{SUPPLY_CODE},
#{CODENAME3},
#{POST_PROCESSING},
#{CODENAME1},
#{CODENAME2},
'1',
'1',
<!-- #{IS_LONGD}, -->
#{CODE1},
#{CODE2},
#{CODE3},
#{CODE4},
#{CODE5},
(
SELECT 'EOB'||TO_CHAR(NOW(),'yy')::VARCHAR ||'-'||
LPAD((
SELECT COALESCE(SUBSTR(MAX(EO_NO),7,8)::INTEGER+1,1)::VARCHAR
FROM PART_MNG SP
WHERE SP.EO_NO IS NOT NULL
AND SP.EO_NO LIKE 'EOB%'
)::VARCHAR, 4, '0')
)
) ON
CONFLICT (OBJID) DO
UPDATE
SET
PRODUCT_MGMT_OBJID = #{PRODUCT_MGMT_OBJID},
UPG_NO = #{UPG_NO},
PART_NO = #{PART_NO},
PART_NAME = #{CODENAME4},
UNIT = #{UNIT},
QTY = #{QTY},
SPEC = #{CODENAME5},
MATERIAL = #{MATERIAL},
WEIGHT = #{WEIGHT},
PART_TYPE = '0001788',
REMARK = #{REMARK},
ES_SPEC = #{ES_SPEC},
MS_SPEC = #{MS_SPEC},
CHANGE_TYPE = #{CHANGE_TYPE},
CHANGE_OPTION = #{CHANGE_OPTION},
DESIGN_APPLY_POINT = #{DESIGN_APPLY_POINT},
MANAGEMENT_FLAG = #{MANAGEMENT_FLAG},
REVISION = #{REVISION},
STATUS = #{STATUS},
EDIT_DATE = NOW(),
WRITER = #{WRITER},
PARENT_PART_NO = #{PARENT_PART_NO},
SUB_MATERIAL = #{SUB_MATERIAL},
EO_DATE = #{EO_DATE},
DESIGN_DATE = #{DESIGN_DATE},
THICKNESS = #{THICKNESS},
WIDTH = #{WIDTH},
HEIGHT = #{HEIGHT},
OUT_DIAMETER = #{OUT_DIAMETER},
IN_DIAMETER = #{IN_DIAMETER},
LENGTH = #{LENGTH},
SUPPLY_CODE = #{SUPPLY_CODE},
MAKER = #{CODENAME3},
POST_PROCESSING = #{POST_PROCESSING},
MAJOR_CATEGORY = #{CODENAME1},
SUB_CATEGORY = #{CODENAME2},
CODE1 = #{CODE1},
CODE2 = #{CODE2},
CODE3 = #{CODE3},
CODE4 = #{CODE4},
CODE5 = #{CODE5}
<!-- CODE1 = #{MAJOR_CATEGORY},
CODE2 = #{SUB_CATEGORY},
CODE3 = #{MAKER},
CODE4 = #{PART_NAME},
CODE5 = #{SPEC} -->
</update>
<select id="getMaterialCodeInfo" parameterType="map" resultType="map">
SELECT
T.OBJID
,T.PART_NO
,'('||T.PART_NO||')' as PART_NO_CODE
,T.MAJOR_CATEGORY
,T.SUB_CATEGORY
,T.MAKER
,T.PART_NAME
,T.SPEC
,T.CODE1
,T.CODE2
,T.CODE3
,T.CODE4
,T.CODE5
,(SELECT PS.OBJID FROM PROCUREMENT_STANDARD PS WHERE PS.CODE_ID = T.CODE1) AS CODE_ID1
,(SELECT PS.OBJID FROM PROCUREMENT_STANDARD PS WHERE PS.CODE_ID = T.CODE2) AS CODE_ID2
,(SELECT PS.OBJID FROM PROCUREMENT_STANDARD PS WHERE PS.CODE_ID = T.CODE3) AS CODE_ID3
,(SELECT PS.OBJID FROM PROCUREMENT_STANDARD PS WHERE PS.CODE_ID = T.CODE4) AS CODE_ID4
,(SELECT PS.OBJID FROM PROCUREMENT_STANDARD PS WHERE PS.CODE_ID = T.CODE5) AS CODE_ID5
,T.IS_LONGD
FROM PART_MNG T
WHERE OBJID = #{OBJID}
</select>
<delete id="deleteMaterialCode" parameterType="map">
DELETE FROM PART_MNG
WHERE OBJID IN
<foreach collection="checkArr" item="objkey" index="index" separator="," open="(" close=")">
#{objkey}
</foreach>
</delete>
<select id="sameStdCodeList" parameterType="map" resultType="map">
SELECT
T.*
FROM PART_MNG T
WHERE 1=1
<!-- AND T.OBJID != #{OBJID} -->
AND IS_LAST = '1'
AND (T.CODE1 = #{CODE_ID} OR T.CODE2 = #{CODE_ID} OR T.CODE3 = #{CODE_ID} OR T.CODE4 = #{CODE_ID} OR T.CODE5 = #{CODE_ID})
</select>
<update id="updateCodeName" parameterType="map">
UPDATE PROCUREMENT_STANDARD
SET CODE_NAME = #{CODE_NAME}
WHERE CODE_ID = #{CODE_ID}
</update>
</mapper>