230 lines
8.1 KiB
XML
230 lines
8.1 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="processWorkStandard">
|
|
|
|
<sql id="processWorkStandardItemSearchCondition">
|
|
<if test="keyword != null and keyword != ''">
|
|
AND (i.item_code ILIKE '%' || #{keyword} || '%' OR i.item_name ILIKE '%' || #{keyword} || '%')
|
|
</if>
|
|
<if test="itemType != null and itemType != ''">
|
|
AND i.item_type = #{itemType}
|
|
</if>
|
|
</sql>
|
|
|
|
<select id="getProcessWorkStandardItemList" parameterType="map" resultType="map">
|
|
SELECT
|
|
i.item_code, i.item_name, i.item_type, i.unit,
|
|
COUNT(pr.id) AS routing_count,
|
|
MAX(CASE WHEN pr.is_default THEN pr.version_no ELSE NULL END) AS default_version
|
|
|
|
FROM items i
|
|
|
|
LEFT JOIN process_routing pr ON i.item_code = pr.item_code
|
|
|
|
WHERE 1=1
|
|
<if test="companyCode != null and companyCode != "*"">
|
|
AND (i.company_code = #{companyCode} OR i.company_code = '*')
|
|
</if>
|
|
<include refid="processWorkStandardItemSearchCondition"/>
|
|
|
|
GROUP BY i.item_code, i.item_name, i.item_type, i.unit
|
|
<include refid="common.dynamicOrderBy"/>
|
|
<include refid="common.pagination"/>
|
|
</select>
|
|
|
|
<select id="getProcessWorkStandardItemListCnt" parameterType="map" resultType="int">
|
|
SELECT COUNT(*) FROM (
|
|
SELECT i.item_code
|
|
FROM items i
|
|
LEFT JOIN process_routing pr ON i.item_code = pr.item_code
|
|
WHERE 1=1
|
|
<if test="companyCode != null and companyCode != "*"">
|
|
AND (i.company_code = #{companyCode} OR i.company_code = '*')
|
|
</if>
|
|
<include refid="processWorkStandardItemSearchCondition"/>
|
|
GROUP BY i.item_code
|
|
) sub
|
|
</select>
|
|
|
|
<select id="getProcessWorkStandardRoutingList" parameterType="map" resultType="map">
|
|
SELECT
|
|
pr.*,
|
|
COUNT(prd.id) AS detail_count
|
|
|
|
FROM process_routing pr
|
|
|
|
LEFT JOIN process_routing_detail prd ON pr.id = prd.routing_id
|
|
|
|
WHERE pr.item_code = #{itemCode}
|
|
<if test="companyCode != null and companyCode != "*"">
|
|
AND (pr.company_code = #{companyCode} OR pr.company_code = '*')
|
|
</if>
|
|
|
|
GROUP BY pr.id
|
|
|
|
ORDER BY pr.version_no ASC
|
|
</select>
|
|
|
|
<update id="setProcessWorkStandardDefaultVersion" parameterType="map">
|
|
UPDATE process_routing
|
|
SET is_default = CASE WHEN id = #{versionId} THEN TRUE ELSE FALSE END
|
|
|
|
WHERE item_code = (SELECT item_code FROM process_routing WHERE id = #{versionId})
|
|
<if test="companyCode != null and companyCode != "*"">
|
|
AND (company_code = #{companyCode} OR company_code = '*')
|
|
</if>
|
|
</update>
|
|
|
|
<update id="unsetProcessWorkStandardDefaultVersion" parameterType="map">
|
|
UPDATE process_routing
|
|
SET is_default = FALSE
|
|
|
|
WHERE id = #{versionId}
|
|
<if test="companyCode != null and companyCode != "*"">
|
|
AND (company_code = #{companyCode} OR company_code = '*')
|
|
</if>
|
|
</update>
|
|
|
|
<select id="getProcessWorkStandardWorkItemList" parameterType="map" resultType="map">
|
|
SELECT
|
|
pwi.*,
|
|
prd.process_code, prd.process_name, prd.sequence_no AS routing_sequence_no
|
|
|
|
FROM process_work_item pwi
|
|
|
|
LEFT JOIN process_routing_detail prd ON pwi.routing_detail_id = prd.id
|
|
|
|
WHERE pwi.routing_detail_id = #{routingDetailId}
|
|
<if test="companyCode != null and companyCode != "*"">
|
|
AND (pwi.company_code = #{companyCode} OR pwi.company_code = '*')
|
|
</if>
|
|
|
|
ORDER BY pwi.sequence_no ASC
|
|
</select>
|
|
|
|
<insert id="insertProcessWorkStandardWorkItem" parameterType="map" useGeneratedKeys="true" keyProperty="id">
|
|
INSERT INTO process_work_item (
|
|
company_code, routing_detail_id, work_item_code, work_item_name,
|
|
sequence_no, work_time, description, CREATED_DATE, UPDATED_DATE
|
|
) VALUES (
|
|
#{companyCode}, #{routingDetailId}, #{workItemCode}, #{workItemName},
|
|
COALESCE(#{sequenceNo}, 0), COALESCE(#{workTime}, 0), #{description}, NOW(), NOW()
|
|
)
|
|
</insert>
|
|
|
|
<update id="updateProcessWorkStandardWorkItem" parameterType="map">
|
|
UPDATE process_work_item
|
|
<set>
|
|
<if test="workItemName != null">work_item_name = #{workItemName},</if>
|
|
<if test="sequenceNo != null">sequence_no = #{sequenceNo},</if>
|
|
<if test="workTime != null">work_time = #{workTime},</if>
|
|
<if test="description != null">description = #{description},</if>
|
|
UPDATED_DATE = NOW()
|
|
</set>
|
|
|
|
WHERE id = #{id}
|
|
<if test="companyCode != null and companyCode != "*"">
|
|
AND (company_code = #{companyCode} OR company_code = '*')
|
|
</if>
|
|
</update>
|
|
|
|
<delete id="deleteProcessWorkStandardWorkItem" parameterType="map">
|
|
DELETE FROM process_work_item
|
|
|
|
WHERE id = #{id}
|
|
<if test="companyCode != null and companyCode != "*"">
|
|
AND (company_code = #{companyCode} OR company_code = '*')
|
|
</if>
|
|
</delete>
|
|
|
|
<select id="getProcessWorkStandardWorkItemDetailList" parameterType="map" resultType="map">
|
|
SELECT * FROM process_work_item_detail
|
|
|
|
WHERE work_item_id = #{workItemId}
|
|
<if test="companyCode != null and companyCode != "*"">
|
|
AND (company_code = #{companyCode} OR company_code = '*')
|
|
</if>
|
|
|
|
ORDER BY detail_no ASC
|
|
</select>
|
|
|
|
<insert id="insertProcessWorkStandardWorkItemDetail" parameterType="map" useGeneratedKeys="true" keyProperty="id">
|
|
INSERT INTO process_work_item_detail (
|
|
company_code, work_item_id, detail_no, content,
|
|
standard_time, quality_point, safety_note, CREATED_DATE, UPDATED_DATE
|
|
) VALUES (
|
|
#{companyCode}, #{workItemId}, COALESCE(#{detailNo}, 1), #{content},
|
|
COALESCE(#{standardTime}, 0), #{qualityPoint}, #{safetyNote}, NOW(), NOW()
|
|
)
|
|
</insert>
|
|
|
|
<update id="updateProcessWorkStandardWorkItemDetail" parameterType="map">
|
|
UPDATE process_work_item_detail
|
|
<set>
|
|
<if test="detailNo != null">detail_no = #{detailNo},</if>
|
|
<if test="content != null">content = #{content},</if>
|
|
<if test="standardTime != null">standard_time = #{standardTime},</if>
|
|
<if test="qualityPoint != null">quality_point = #{qualityPoint},</if>
|
|
<if test="safetyNote != null">safety_note = #{safetyNote},</if>
|
|
UPDATED_DATE = NOW()
|
|
</set>
|
|
|
|
WHERE id = #{id}
|
|
<if test="companyCode != null and companyCode != "*"">
|
|
AND (company_code = #{companyCode} OR company_code = '*')
|
|
</if>
|
|
</update>
|
|
|
|
<delete id="deleteProcessWorkStandardWorkItemDetail" parameterType="map">
|
|
DELETE FROM process_work_item_detail
|
|
|
|
WHERE id = #{id}
|
|
<if test="companyCode != null and companyCode != "*"">
|
|
AND (company_code = #{companyCode} OR company_code = '*')
|
|
</if>
|
|
</delete>
|
|
|
|
<select id="getProcessWorkStandardRegisteredItemList" parameterType="map" resultType="map">
|
|
SELECT pri.*, i.item_name, i.item_type, i.unit
|
|
|
|
FROM process_registered_item pri
|
|
|
|
LEFT JOIN items i ON pri.item_code = i.item_code
|
|
|
|
WHERE pri.screen_code = #{screenCode}
|
|
<if test="companyCode != null and companyCode != "*"">
|
|
AND (pri.company_code = #{companyCode} OR pri.company_code = '*')
|
|
</if>
|
|
|
|
ORDER BY pri.id ASC
|
|
</select>
|
|
|
|
<insert id="insertProcessWorkStandardRegisteredItem" parameterType="map" useGeneratedKeys="true" keyProperty="id">
|
|
INSERT INTO process_registered_item (
|
|
company_code, screen_code, item_code, routing_id, CREATED_DATE, UPDATED_DATE
|
|
) VALUES (
|
|
#{companyCode}, #{screenCode}, #{itemCode}, #{routingId}, NOW(), NOW()
|
|
)
|
|
</insert>
|
|
|
|
<insert id="insertProcessWorkStandardRegisteredItemBatch" parameterType="map">
|
|
INSERT INTO process_registered_item (
|
|
company_code, screen_code, item_code, routing_id, CREATED_DATE, UPDATED_DATE
|
|
) VALUES
|
|
<foreach collection="items" item="item" separator=",">
|
|
(#{companyCode}, #{item.screenCode}, #{item.itemCode}, #{item.routingId}, NOW(), NOW())
|
|
</foreach>
|
|
</insert>
|
|
|
|
<delete id="deleteProcessWorkStandardRegisteredItem" parameterType="map">
|
|
DELETE FROM process_registered_item
|
|
|
|
WHERE id = #{id}
|
|
<if test="companyCode != null and companyCode != "*"">
|
|
AND (company_code = #{companyCode} OR company_code = '*')
|
|
</if>
|
|
</delete>
|
|
|
|
</mapper>
|