veve-batch-material/target/classes/mapper/MaterialMapper.xml

165 lines
6.5 KiB
XML
Raw Permalink Normal View History

2025-07-21 04:43:14 +00:00
<?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="com.veve_plus.root.mapper.MaterialMapper">
<select id="listMaterial" resultType="com.veve_plus.root.dto.material.MaterialDto">
SELECT
tkt.idx as id
, tkt.title
, tkt.chapter
, CASE WHEN tkt.language = 'DE' THEN 'de_DE'
WHEN tkt.language = 'US' THEN 'en_US'
WHEN tkt.language = 'ES' THEN 'es_ES'
WHEN tkt.language = 'FR' THEN 'fr_FR'
WHEN tkt.language = 'JP' THEN 'ja_JP'
WHEN tkt.language = 'KR' THEN 'ko_KR'
WHEN tkt.language = 'CN' THEN 'zh_CN'
WHEN tkt.language = 'TW' THEN 'zh_TW'
WHEN tkt.language = 'TH' THEN 'th_TH'
WHEN tkt.language = 'TR' THEN 'tr_TR'
WHEN tkt.language = 'AR' THEN 'ar_AR'
END AS language
, tkt.affected_delivery_date AS kstDl
, tkt.dki_delivery_date AS dkiDl
, tkt.download_status AS downloadStatus
, tkt.download_date AS downloadDate
, tkt.download_user AS downloadUser
, tkt.is_trans_review AS translateStatus
, tct.tr_confirm_time AS trConfirmTime
, tct.tr_confirm_by AS trConfirmBy
, tkt.editor_note AS editorNote
, tkt.qc_note AS qcNote
, tkt.kst_note AS kstNote
, tc.tms_id AS tmsId
, code.code_name AS typingStatus
, tkt.translation_download_status AS translationReady
, tkt.trans_type AS transType
, tkt.tms_chapter AS tmsChapter
FROM tb_kst_task tkt
LEFT JOIN tb_content tc
ON tc.content = tkt.title
LEFT JOIN tb_content_title tct
ON tc.idx = tct.content_id
AND tct.language_code = tkt.language
LEFT JOIN tb_code code
ON tkt.typing_status = code_id
AND code.group_id = 29
</select>
<update id="updateMaterial" parameterType="com.veve_plus.root.dto.material.MaterialDto">
UPDATE tb_kst_task
SET download_status = #{downloadStatus}
, download_date = #{downloadDate}
, download_user = #{downloadUser}
, is_trans_review = #{translateStatus}
, editor_note = #{editorNote}
, kst_note = #{kstNote}
, qc_note = #{qcNote}
, tms_chapter = #{tmsChapter}
WHERE idx = #{id}
</update>
<update id="updateTransType">
UPDATE tb_kst_task tkt
INNER JOIN (
SELECT tkt.idx
FROM tb_kst_task tkt
INNER JOIN tb_content tc
ON tc.content = tkt.title
AND tc.tms_id = #{tmsId}
WHERE tkt.language = CASE WHEN #{language} = 'de_DE' THEN 'DE'
WHEN #{language} = 'en_US' THEN 'US'
WHEN #{language} = 'es_ES' THEN 'ES'
WHEN #{language} = 'fr_FR' THEN 'FR'
WHEN #{language} = 'ja_JP' THEN 'JP'
WHEN #{language} = 'ko_KR' THEN 'KR'
WHEN #{language} = 'zh_CN' THEN 'CN'
WHEN #{language} = 'zh_TW' THEN 'TW'
WHEN #{language} = 'th_TH' THEN 'TH'
WHEN #{language} = 'tr_TR' THEN 'TR'
WHEN #{language} = 'ar_001' THEN 'AR'
END
AND tkt.chapter = #{chapter}
) target_task
ON tkt.idx = target_task.idx
SET tkt.trans_type = #{transType},
tkt.translation_download_status = '01'
</update>
<insert id="insertMaterial" parameterType="com.veve_plus.root.entity.GSheetData">
INSERT INTO tb_kst_task (
language
, title
, chapter
, tms_chapter
, affected_delivery_date
, dki_delivery_date
, is_trans_review
, is_urgent
, created_date
, created_by
, updated_date
, updated_by
) VALUES (
#{language}
, #{title}
, #{chapter}
, #{chapter}
, #{affectedDeliveryDate}
, #{dkiDeliveryDate}
, #{isTransReview}
, #{isUrgent}
, SYSDATE()
, 'SYSTEM'
, SYSDATE()
, 'SYSTEM'
)
ON DUPLICATE KEY UPDATE
language = #{language}
, title = #{title}
, chapter = #{chapter}
, affected_delivery_date = #{affectedDeliveryDate}
, dki_delivery_date = #{dkiDeliveryDate}
, is_trans_review = #{isTransReview}
, updated_date = SYSDATE()
, updated_by = 'SYSTEM'
</insert>
<update id="updateTypingStatus" parameterType="com.veve_plus.root.dto.material.MaterialTypingStatusDto">
UPDATE tb_kst_task
SET typing_status = #{typingStatus}
, type_complete_time = CASE WHEN #{typingStatus} = 2
THEN DATE_FORMAT(SYSDATE(), '%Y%m%d%H%i%s')
ELSE NULL
END
, updated_date = SYSDATE()
, updated_by = 'SYSTEM'
WHERE language = #{language}
AND chapter = #{chapter}
AND title = (select content from tb_content where tms_id = #{tmsId})
</update>
<update id="updateTooningTypingStatus" parameterType="com.veve_plus.root.dto.material.MaterialTypingStatusDto">
UPDATE tb_kst_task
SET typing_status = #{typingStatus}
, type_complete_time = CASE WHEN #{typingStatus} = 2
THEN DATE_FORMAT(SYSDATE(), '%Y%m%d%H%i%s')
ELSE NULL
END
, updated_date = SYSDATE()
, updated_by = 'SYSTEM'
WHERE language = #{language}
AND chapter = #{chapter}
AND title = (select content from tb_content where tooning_id = #{tmsId})
</update>
<select id="findMaterialCategory">
SELECT tkt.is_urgent
FROM tb_kst_task tkt
INNER JOIN tb_content tc
ON tkt.title = tc.content
WHERE tc.tms_id = #{tmsId}
AND tkt.chapter = #{chapter}
AND tkt.language = #{language}
</select>
</mapper>