itsm_ysm/bin/main/mapper/primarydb/sqlmap/itms/srm/SvcDeskMapper.xml
2025-08-11 18:00:07 +09:00

644 lines
25 KiB
XML

<?xml version="1.0" encoding="UTF-8"?><!--Converted at: Wed May 11 15:49:39 KST 2016-->
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.urpsys.itmsapi.srm.dao.SvcDeskDao">
<sql id="paging">
<if test="recordCountPerPage != null and firstIndex != null">
LIMIT #{recordCountPerPage} OFFSET #{firstIndex}
</if>
</sql>
<sql id="sharing">
<if test="reqUser != null and reqUser != '' ">
AND (
A.IN_INCIDENT_SEQ IN ( SELECT IN_TARGET_SEQ
FROM CM_SHARING_MEMBER
WHERE IN_TYPE=2
AND IN_USER_GROUP_SEQ IN (#{groups})
)
OR A.IN_INCIDENT_SEQ NOT IN (SELECT IN_TARGET_SEQ
FROM CM_SHARING_MEMBER
WHERE IN_TYPE=2
)
)
</if>
</sql>
<sql id="searchFilter">
<if test="complete != null and complete!=''"> AND A.IN_COMPLETED IN (${complete})</if>
<if test="status != null and status!=''"> AND A.IN_INCIDENT_STATUS IN (${status})</if>
<if test="incidentNum != null and incidentNum!=''"> AND A.VC_INCIDENT_NUM LIKE "%${incidentNum}%"</if>
<if test="incidentTitle != null and incidentTitle!=''"> AND A.VC_INCIDENT_TITLE LIKE "%${incidentTitle}%"</if>
<if test="regUser != null and regUser!=''"> AND A.VC_REG_USER LIKE "%${regUser}%"</if>
<if test="requestUser != null and requestUser!=''"> AND A.VC_REQUEST_USER LIKE "%${reqUserName}%"</if>
<if test="chargeUser != null and chargeUser!=0"> AND A.IN_CHARGE_USER = ${chargeUser}</if>
<if test="devUser != null and devUser!=0"> AND A.IN_DEV_USER = ${devUser}</if>
<if test="devUserName != null and devUserName!=''"> AND A.VC_DEV_USER LIKE "%${devUserName}%"</if>
<if test="serviceCode != null and serviceCode!=0"> AND A.IN_SERVICE_CODE = ${serviceCode}</if>
<if test="sdate != null and sdate!=''"><![CDATA[ AND A.IN_RECEIPT_TIMESTAMP >= UNIX_TIMESTAMP("${sdate}")]]></if>
<if test="edate != null and edate!=''"><![CDATA[ AND A.IN_RECEIPT_TIMESTAMP <= UNIX_TIMESTAMP("${edate}")]]></if>
</sql>
<resultMap type="java.util.LinkedHashMap" id="incident">
<result property="inIncidentSeq" column="IN_INCIDENT_SEQ"/>
<result property="inIncidentStatus" column="IN_INCIDENT_STATUS"/>
<result property="vcIncidentNum" column="VC_INCIDENT_NUM"/>
<result property="inServiceCode" column="IN_SERVICE_CODE"/>
<result property="vcServiceName" column="VC_SERVICE_NAME"/>
<result property="inChargeUser" column="IN_CHARGE_USER"/>
<result property="vcChargeUser" column="VC_CHARGE_USER"/>
<result property="inDevUser" column="IN_DEV_USER"/>
<result property="vcDevUser" column="VC_DEV_USER"/>
<result property="dtReceiptDatetime" column="DT_RECEIPT_DATETIME"/>
<result property="dtReqDatetime" column="DT_REQ_DATETIME"/>
<result property="dtCompleteDatetime" column="DT_COMPLETE_DATETIME"/>
<result property="vcIncidentTitle" column="VC_INCIDENT_TITLE"/>
<result property="txIncidentBody" column="TX_INCIDENT_BODY"/>
<result property="vcIncidentStatus" column="VC_INCIDENT_STATUS"/>
<result property="inRegUser" column="IN_REG_USER"/>
<result property="vcRegUser" column="VC_REG_USER"/>
<result property="inReqApprovalUser" column="IN_REQ_APPROVAL_USER"/>
<result property="vcReqApprovalUser" column="VC_REQ_APPROVAL_USER"/>
<result property="dtReqApprovalDatetime" column="DT_REQ_APPROVAL_DATETIME"/>
<result property="txReqApprovalComment" column="TX_REQ_APPROVAL_COMMENT"/>
<result property="vcCompleted" column="VC_COMPLETED"/>
<result property="inCompleted" column="IN_COMPLETED"/>
<result property="txCompletedComment" column="TX_COMPLETED_COMMENT"/>
<result property="inDifficulty" column="IN_DIFFICULTY"/>
<result property="inSatisfaction" column="IN_SATISFACTION"/>
<result property="vcServiceTarget" column="VC_SERVICE_TARGET"/>
<result property="vcRequestDept" column="VC_REQUEST_DEPT"/>
<result property="vcRequestUser" column="VC_REQUEST_USER"/>
<result property="dtServiceStartDatetime" column="DT_SERVICE_START_DATETIME"/>
<result property="atchFileId" column="ATCH_FILE_ID"/>
</resultMap>
<resultMap type="java.util.LinkedHashMap" id="selectVo">
<result column="VALUE" property="value"/>
<result column="LABEL" property="label"/>
<result column="SELECTED" property="selected"/>
</resultMap>
<resultMap type="java.util.LinkedHashMap" id="groupVo">
<result property="inUserGroupSeq" column="IN_USER_GROUP_SEQ"/>
<result property="vcUserGroup" column="VC_USER_GROUP"/>
<result property="vcUserGroupDesc" column="VC_USER_GROUP_DESC"/>
<result property="inCount" column="IN_COUNT"/>
</resultMap>
<resultMap type="java.util.LinkedHashMap" id="reportVo">
<result property="inReportSeq" column="IN_REPORT_SEQ"/>
<result property="inReportStatus" column="IN_REPORT_STATUS"/>
<result property="vcReportId" column="VC_REPORT_ID"/>
<result property="inIncidentSeq" column="IN_INCIDENT_SEQ"/>
<result property="inServiceCode" column="IN_SERVICE_CODE"/>
<result property="vcServiceName" column="VC_SERVICE_NAME"/>
<result property="dtStartDatetime" column="DT_START_DATETIME"/>
<result property="dtFinishDatetime" column="DT_FINISH_DATETIME"/>
<result property="inTaskUser" column="IN_TASK_USER"/>
<result property="vcTaskUser" column="VC_TASK_USER"/>
<result property="inRegUser" column="IN_REG_USER"/>
<result property="vcRegUser" column="VC_REG_USER"/>
<result property="dtLastUpdate" column="DT_LAST_UPDATE"/>
<result property="inTask" column="IN_TASK"/>
<result property="inDowntime" column="IN_DOWNTIME"/>
<result property="dtDownstartDatetime" column="DT_DOWNSTART_DATETIME"/>
<result property="dtDownfinishDatetime" column="DT_DOWNFINISH_DATETIME"/>
<result property="vcReportTitle" column="VC_REPORT_TITLE"/>
<result property="vcReportStatus" column="VC_REPORT_STATUS"/>
<result property="vcTask" column="VC_TASK"/>
</resultMap>
<resultMap type="java.util.LinkedHashMap" id="approval">
<result property="vcUserName" column="VC_USER_NAME"/>
<result property="vcStatus" column="VC_STATUS"/>
<result property="txComment" column="TX_COMMENT"/>
<result property="inUserSeq" column="IN_USER_SEQ"/>
<result property="inOrder" column="IN_ORDER"/>
<result property="inStatus" column="IN_STATUS"/>
<result property="dtApprovalDatetime" column="DT_APPROVAL_DATETIME"/>
</resultMap>
<select id="searchIncident" parameterType="java.util.HashMap" resultMap="incident">
/* SvcDeskDao.searchIncident */
SELECT A.IN_INCIDENT_SEQ
, A.VC_INCIDENT_NUM
, A.IN_SERVICE_CODE
, A.IN_CHARGE_USER
, A.VC_CHARGE_USER
, A.IN_DEV_USER
, A.VC_DEV_USER
, A.VC_SERVICE_TARGET
, A.VC_REQUEST_DEPT
, A.VC_REQUEST_USER
, DATE_FORMAT(A.DT_SERVICE_START_DATETIME, '%Y-%m-%d %H:%i') AS DT_SERVICE_START_DATETIME
, DATE_FORMAT(A.DT_RECEIPT_DATETIME, '%Y-%m-%d %H:%i') AS DT_RECEIPT_DATETIME
, DATE_FORMAT(A.DT_REQ_DATETIME, '%Y-%m-%d %H:%i') AS DT_REQ_DATETIME
, DATE_FORMAT(A.DT_COMPLETE_DATETIME, '%Y-%m-%d %H:%i') AS DT_COMPLETE_DATETIME
, A.VC_INCIDENT_TITLE
, A.TX_INCIDENT_BODY
, A.IN_REG_USER
, A.VC_REG_USER
, IF( A.IN_INCIDENT_STATUS=0, "접수"
, IF(A.IN_INCIDENT_STATUS=1, "승인중"
, IF(A.IN_INCIDENT_STATUS=2, "반려"
, "승인완료"))) AS VC_INCIDENT_STATUS
, B.VC_SERVICE_NAME
, A.IN_COMPLETED
, IFNULL(A.TX_COMPLETED_COMMENT, "") AS TX_COMPLETED_COMMENT
, IF(A.IN_COMPLETED=0, '처리중', '처리완료') AS VC_COMPLETED
, IFNULL(A.IN_REQ_APPROVAL_USER, 0) AS IN_REQ_APPROVAL_USER
, A.DT_REQ_APPROVAL_DATETIME
, A.TX_REQ_APPROVAL_COMMENT
, A.VC_REQ_APPROVAL_USER
, A.IN_DIFFICULTY
, A.IN_SATISFACTION
FROM CM_INCIDENT A
, CM_SERVICE B
WHERE A.IN_SERVICE_CODE=B.IN_SERVICE_CODE
<include refid="sharing"/>
<include refid="searchFilter"/>
<if test="sortField != null and sortField !=''">
<if test="sortField == 'vcIncidentNum'"> ORDER BY A.VC_INCIDENT_NUM</if>
<if test="sortField == 'vcServiceName'"> ORDER BY B.VC_SERVICE_NAME</if>
<if test="sortField == 'vcChargeUser'"> ORDER BY A.VC_CHARGE_USER</if>
<if test="sortField == 'vcDevUser'"> ORDER BY A.VC_DEV_USER</if>
<if test="sortField == 'vcRegUser'"> ORDER BY A.VC_REG_USER</if>
<if test="sortField == 'dtReceiptDatetime'"> ORDER BY DT_RECEIPT_DATETIME</if>
<if test="sortField == 'dtReqDatetime'"> ORDER BY DT_REQ_DATETIME</if>
<if test="sortField == 'dtCompleteDatetime'"> ORDER BY DT_COMPLETE_DATETIME</if>
<if test="sortField == 'vcIncidentStatus'"> ORDER BY VC_INCIDENT_STATUS</if>
<if test="sortField == 'vcCompleted'"> ORDER BY VC_COMPLETED</if>
<if test="sortField == 'vcIncidentTitle'"> ORDER BY A.VC_INCIDENT_TITLE</if>
<if test="sortField == 'txIncidentBody'"> ORDER BY A.TX_INCIDENT_BODY</if>
<if test="sortField == 'txCompletedComment'"> ORDER BY A.TX_COMPLETED_COMMENT</if>
<if test="sortField == 'vcServiceTarget'"> ORDER BY A.VC_SERVICE_TARGET</if>
<if test="sortField == 'vcRequestDept'"> ORDER BY A.VC_REQUEST_DEPT</if>
<if test="sortField == 'vcRequestUser'"> ORDER BY A.VC_REQUEST_USER</if>
<if test="sortField == 'dtServiceStartDatetime'"> ORDER BY A.DT_SERVICE_START_DATETIME</if>
<if test="sortOrder != null and sortOrder =='asc'"> ASC</if>
<if test="sortOrder != null and sortOrder =='desc'"> DESC</if>
</if>
<if test="sortField == null or sortField ==''">
ORDER BY IN_INCIDENT_SEQ DESC
</if>
<include refid="paging"/>
</select>
<select id="searchIncidentCount" parameterType="java.util.HashMap" resultType="int">
SELECT COUNT(A.IN_INCIDENT_SEQ)
FROM CM_INCIDENT A
, CM_SERVICE B
WHERE A.IN_SERVICE_CODE=B.IN_SERVICE_CODE
<include refid="sharing"/>
<include refid="searchFilter"/>
</select>
<select id="getServiceCombo" parameterType="int" resultMap="selectVo">
SELECT A.IN_SERVICE_CODE AS VALUE
, A.VC_SERVICE_NAME AS LABEL
, @I:=@I+1
,
<if test="value1 != 0 ">
IF(A.IN_SERVICE_CODE = #{value}, 1, 0) AS SELECTED
</if>
<if test="value1 == null or value1 == 0">
IF(@I=0, 1, 0) AS SELECTED
</if>
FROM CM_SERVICE A
, (SELECT @I:=0) AS DM
ORDER BY A.IN_SERVICE_CODE
</select>
<select id="getinIncidentSeq" parameterType="java.util.HashMap" resultType="int">
SELECT A.IN_INCIDENT_SEQ AS inIncidentSeq
FROM CM_INCIDENT A
WHERE VC_INCIDENT_NUM = #{vcIncidentNum}
</select>
<select id="getIncidentBySeq" parameterType="int" resultMap="incident">
SELECT A.IN_INCIDENT_SEQ
, A.VC_INCIDENT_NUM
, A.IN_SERVICE_CODE
, A.IN_CHARGE_USER
, A.VC_CHARGE_USER
, A.IN_DEV_USER
, A.VC_DEV_USER
, DATE_FORMAT(A.DT_RECEIPT_DATETIME, '%Y-%m-%d %H:%i') AS DT_RECEIPT_DATETIME
, DATE_FORMAT(A.DT_REQ_DATETIME, '%Y-%m-%d %H:%i') AS DT_REQ_DATETIME
, DATE_FORMAT(A.DT_COMPLETE_DATETIME, '%Y-%m-%d %H:%i') AS DT_COMPLETE_DATETIME
, A.VC_INCIDENT_TITLE
, A.TX_INCIDENT_BODY
, A.IN_REG_USER
, A.VC_REG_USER
, IF(A.IN_INCIDENT_STATUS=0, "접수",
IF(A.IN_INCIDENT_STATUS=1, "승인중",
IF(A.IN_INCIDENT_STATUS=2, "반려", "승인완료"))) AS VC_INCIDENT_STATUS
, A.IN_INCIDENT_STATUS
, B.VC_SERVICE_NAME
, A.VC_SERVICE_TARGET
, A.VC_REQUEST_DEPT
, A.VC_REQUEST_USER
, A.DT_SERVICE_START_DATETIME
, A.IN_COMPLETED
, IFNULL(A.TX_COMPLETED_COMMENT, "") AS TX_COMPLETED_COMMENT
, IF(A.IN_COMPLETED=0, '처리중', '처리완료') AS VC_COMPLETED
, IFNULL(A.IN_REQ_APPROVAL_USER, 0) AS IN_REQ_APPROVAL_USER
, DATE_FORMAT(A.DT_REQ_APPROVAL_DATETIME, '%Y-%m-%d %H:%i') AS DT_REQ_APPROVAL_DATETIME
, A.TX_REQ_APPROVAL_COMMENT
, A.VC_REQ_APPROVAL_USER
, A.IN_DIFFICULTY
, A.IN_SATISFACTION
, A.ATCH_FILE_ID
FROM CM_INCIDENT A
, CM_SERVICE B
WHERE A.IN_SERVICE_CODE=B.IN_SERVICE_CODE
AND A.IN_INCIDENT_SEQ=#{value}
</select>
<select id="getIncidentSharing" parameterType="int" resultMap="groupVo">
SELECT A.IN_USER_GROUP_SEQ
, A.VC_USER_GROUP
, A.VC_USER_GROUP_DESC
, (SELECT COUNT(IN_USER_SEQ)
FROM CM_USER_GROUP_MAP
WHERE IN_USER_GROUP_SEQ=A.IN_USER_GROUP_SEQ) AS IN_COUNT
FROM CM_USER_GROUP A
, CM_SHARING_MEMBER B
WHERE A.IN_USER_GROUP_SEQ=B.IN_USER_GROUP_SEQ
AND B.IN_USER_SEQ=0
AND B.IN_TYPE=2
AND B.IN_TARGET_SEQ=#{value}
</select>
<select id="getReportByIncident" parameterType="int" resultMap="reportVo">
SELECT A.IN_REPORT_SEQ
, A.IN_REPORT_STATUS
, A.VC_REPORT_ID
, A.IN_INCIDENT_SEQ
, A.DT_START_DATETIME
, A.DT_FINISH_DATETIME
, A.IN_TASK_USER
, A.VC_TASK_USER
, A.IN_REG_USER
, A.VC_REG_USER
, A.DT_LAST_UPDATE
, A.IN_TASK
, A.IN_DOWNTIME
, A.VC_REPORT_TITLE
, A.DT_DOWNSTART_DATETIME
, A.DT_DOWNFINISH_DATETIME
, A.IN_SERVICE_CODE
, B.CD_NM AS VC_TASK
, D.VC_SERVICE_NAME
, IF(A.IN_REPORT_STATUS=3, "승인완료",
IF(A.IN_REPORT_STATUS=2, "반려",
IF(A.IN_REPORT_STATUS=1, "승인중", "접수"))) AS VC_REPORT_STATUS
FROM CM_REPORT A
LEFT OUTER JOIN TB_CMM_DTL_CD_INFO B ON A.IN_TASK=B.CD
AND B.CD_ID ='SM_002'
LEFT OUTER JOIN CM_SERVICE D ON A.IN_SERVICE_CODE=D.IN_SERVICE_CODE
WHERE A.IN_INCIDENT_SEQ=#{value}
ORDER BY A.DT_LAST_UPDATE DESC
</select>
<select id="getApproval" parameterType="int" resultMap="approval">
SELECT VC_USER_NAME
, TX_COMMENT
, IN_USER_SEQ
, IN_ORDER
, IN_STATUS
, DATE_FORMAT(DT_APPROVAL_DATETIME, '%Y-%m-%d %H:%i') AS DT_APPROVAL_DATETIME
, IF( IN_STATUS=3, "승인완료",
IF(IN_STATUS=2, "반려",
IF(IN_STATUS=1, "승인중", "대기"))) AS VC_STATUS
FROM CM_INCIDENT_APPROVAL
WHERE IN_INCIDENT_SEQ=#{value}
ORDER BY IN_ORDER
</select>
<select id="getTransgerInfo" parameterType="int" resultType="java.util.HashMap">
SELECT IN_INDEX
, IN_PRIV_USER_SEQ
, VC_PRIV_USER_NAME
, IN_USER_SEQ
, VC_USER_NAME
, DT_DATETIME
, VC_MESSAGE
FROM CM_INCIDENT_TRANSFER
WHERE IN_INCIDENT_SEQ=#{value}
ORDER BY IN_INDEX
</select>
<insert id="addIncident" parameterType="java.util.HashMap" useGeneratedKeys="true" keyProperty="inIncidentSeq">
INSERT INTO CM_INCIDENT
(
VC_INCIDENT_NUM
, IN_SERVICE_CODE
, IN_CHARGE_USER
, VC_CHARGE_USER
, IN_DEV_USER
, VC_DEV_USER
,
<if test="dtReceiptDatetime !=null and dtReceiptDatetime !=''">DT_RECEIPT_DATETIME, IN_RECEIPT_TIMESTAMP, </if>
<if test="dtReqDatetime !=null and dtReqDatetime !=''">DT_REQ_DATETIME, </if>
<if test="inDifficulty != null">IN_DIFFICULTY, </if>
<if test="vcServiceTarget !=null">VC_SERVICE_TARGET, </if>
<if test="vcRequestDept !=null">VC_REQUEST_DEPT, </if>
<if test="vcRequestUser !=null">VC_REQUEST_USER, </if>
<if test="dtServiceStartDatetime !=null and dtServiceStartDatetime !=''">DT_SERVICE_START_DATETIME, </if>
VC_INCIDENT_TITLE
, TX_INCIDENT_BODY
, IN_REG_USER
, VC_REG_USER
, ATCH_FILE_ID
)
VALUES
(
"${vcIncidentNum}"
, #{inServiceCode}
, #{inChargeUser}
, "${vcChargeUser}"
, #{inDevUser}
, "${vcDevUser}"
,
<if test="dtReceiptDatetime !=null and dtReceiptDatetime !=''">"${dtReceiptDatetime}", unix_timestamp("${dtReceiptDatetime}"),</if>
<if test="dtReqDatetime !=null and dtReqDatetime !=''">"${dtReqDatetime}",</if>
<if test="inDifficulty != null">#{inDifficulty},</if>
<if test="vcServiceTarget !=null">"${vcServiceTarget}",</if>
<if test="vcRequestDept !=null">"${vcRequestDept}",</if>
<if test="vcRequestUser !=null">"${vcRequestUser}",</if>
<if test="dtServiceStartDatetime !=null and dtServiceStartDatetime !=''">"${dtServiceStartDatetime}",</if>
"${vcIncidentTitle}"
, "${txIncidentBody}"
, #{inRegUser}
, "${vcRegUser}"
, #{atchFileId}
)
</insert>
<update id="updateIncidentApprovalInit" parameterType="int">
UPDATE CM_INCIDENT
SET IN_INCIDENT_STATUS = 0
, DT_REQ_APPROVAL_DATETIME = NULL
, TX_REQ_APPROVAL_COMMENT = ''
WHERE IN_INCIDENT_SEQ=#{value}
</update>
<update id="updateIncident" parameterType="java.util.HashMap">
UPDATE CM_INCIDENT
SET IN_SERVICE_CODE = #{inServiceCode}
, IN_CHARGE_USER = #{inChargeUser}
, VC_CHARGE_USER = "${vcChargeUser}"
, IN_DEV_USER = #{inDevUser}
, VC_DEV_USER = "${vcDevUser}"
,
<if test="dtReceiptDatetime !=null and dtReceiptDatetime !=''">
DT_RECEIPT_DATETIME="${dtReceiptDatetime}",
IN_RECEIPT_TIMESTAMP=unix_timestamp('${dtReceiptDatetime}'),
</if>
<if test="dtReqDatetime !=null and dtReqDatetime !=''">DT_REQ_DATETIME="${dtReqDatetime}",</if>
<if test="inDifficulty != null">IN_DIFFICULTY=#{inDifficulty},</if>
<if test="vcServiceTarget !=null and vcServiceTarget !=''">VC_SERVICE_TARGET="${vcServiceTarget}",</if>
<if test="vcRequestDept !=null and vcRequestDept !=''">VC_REQUEST_DEPT="${vcRequestDept}",</if>
<if test="vcRequestUser !=null and vcRequestUser !=''">VC_REQUEST_USER="${vcRequestUser}",</if>
<if test="dtServiceStartDatetime !=null and dtServiceStartDatetime !=''">DT_SERVICE_START_DATETIME="${dtServiceStartDatetime}",</if>
VC_INCIDENT_TITLE = "${vcIncidentTitle}"
, TX_INCIDENT_BODY = "${txIncidentBody}"
, IN_REG_USER = #{inRegUser}
, VC_REG_USER = "${vcRegUser}"
, ATCH_FILE_ID = #{atchFileId}
WHERE IN_INCIDENT_SEQ=#{inIncidentSeq}
</update>
<insert id="addApproval" parameterType="java.util.HashMap">
INSERT INTO CM_INCIDENT_APPROVAL
(
IN_INCIDENT_SEQ
, IN_ORDER
, IN_USER_SEQ
, VC_USER_NAME
, IN_STATUS
, TX_COMMENT
, DT_APPROVAL_DATETIME
)
VALUES
(
#{inIncidentSeq}
, #{idx}
, #{inUserSeq}
, "${vcUserName}"
, 0
, ""
, NULL
)
</insert>
<delete id="deleteApproval" parameterType="int">
DELETE FROM CM_INCIDENT_APPROVAL
WHERE IN_INCIDENT_SEQ=#{inIncidentSeq}
</delete>
<delete id="deleteSharing" parameterType="int">
DELETE FROM CM_SHARING_MEMBER
WHERE IN_TYPE=2
AND IN_TARGET_SEQ=#{value}
</delete>
<insert id="addIncidentSharing" parameterType="java.util.HashMap">
INSERT INTO CM_SHARING_MEMBER
(
IN_TYPE
, IN_TARGET_SEQ
, IN_USER_SEQ
, IN_USER_GROUP_SEQ
)
VALUES
(
2
, #{inIncidentSeq}
, 0
, #{sharing.inUserGroupSeq}
)
</insert>
<update id="procApprovalIncident" parameterType="java.util.Map" statementType="CALLABLE">
{ call PROC_REQ_APPROVAL( 2
, #{inIncidentSeq}
, #{inUserSeq}
, "${txComment}")
}
</update>
<!-- 2025.04.17 나혁제 2.0 조치자 처리 -->
<update id="completedIncident" parameterType="java.util.Map">
/* SvcDeskDao.completedIncident */
UPDATE CM_INCIDENT
SET IN_COMPLETED=1
, DT_COMPLETE_DATETIME = "${dtCompleteDatetime}"
, <if test="dtServiceStartDatetime !=null and dtServiceStartDatetime !=''">DT_SERVICE_START_DATETIME="${dtServiceStartDatetime}", </if>
TX_COMPLETED_COMMENT = "${txComment}"
, IN_DIFFICULTY = #{inDifficulty}
, IN_SATISFACTION = #{inSatisfaction}
, IN_DEV_USER = #{inDevUser}
, VC_DEV_USER = #{vcDevUser}
WHERE IN_INCIDENT_SEQ=#{inIncidentSeq}
</update>
<delete id="deleteIncident" parameterType="int">
DELETE FROM CM_INCIDENT
WHERE IN_INCIDENT_SEQ=#{value}
</delete>
<delete id="deleteIncidentApproval" parameterType="int">
DELETE FROM CM_INCIDENT_APPROVAL
WHERE IN_INCIDENT_SEQ=#{value}
</delete>
<update id="updateReportIncidentSeq" parameterType="int">
UPDATE CM_REPORT
SET IN_INCIDENT_SEQ=0
WHERE IN_INCIDENT_SEQ=#{value}
</update>
<update id="procApproval" parameterType="java.util.Map" statementType="CALLABLE">
{ call PROC_APPROVAL( 2
, #{inIncidentSeq}
, #{inUserSeq}
, "${txComment}"
)
}
</update>
<update id="rejectIncident" parameterType="java.util.Map" statementType="CALLABLE">
{ call PROC_REJECT( 2
, #{inIncidentSeq}
, #{inUserSeq}
, "${txComment}"
)
}
</update>
<select id="getIncidentBySeqWithBody" parameterType="int" resultMap="incident">
SELECT A.IN_INCIDENT_SEQ
, A.VC_INCIDENT_NUM
, A.IN_SERVICE_CODE
, A.IN_CHARGE_USER
, A.VC_CHARGE_USER
, A.IN_DEV_USER
, A.VC_DEV_USER
, A.DT_RECEIPT_DATETIME
, A.DT_REQ_DATETIME, DATE_FORMAT(A.DT_COMPLETE_DATETIME, '%Y-%m-%d %H:%i') AS DT_COMPLETE_DATETIME
, A.VC_INCIDENT_TITLE
, A.TX_INCIDENT_BODY
, A.IN_REG_USER
, A.VC_REG_USER
, IF( A.IN_INCIDENT_STATUS=0 , "접수"
, IF(A.IN_INCIDENT_STATUS=1, "승인중"
, IF(A.IN_INCIDENT_STATUS=2, "반려", "승인완료"))) AS VC_INCIDENT_STATUS
, A.IN_INCIDENT_STATUS
, B.VC_SERVICE_NAME
, A.IN_COMPLETED
, IFNULL(A.TX_COMPLETED_COMMENT, "") AS TX_COMPLETED_COMMENT
, IF(A.IN_COMPLETED=0, '처리중', '처리완료') AS VC_COMPLETED
, IFNULL(A.IN_REQ_APPROVAL_USER, 0) AS IN_REQ_APPROVAL_USER
, A.DT_REQ_APPROVAL_DATETIME
, A.TX_REQ_APPROVAL_COMMENT
, A.VC_REQ_APPROVAL_USER
, A.IN_DIFFICULTY
, A.IN_SATISFACTION
FROM CM_INCIDENT A
, CM_SERVICE B
WHERE A.IN_SERVICE_CODE = B.IN_SERVICE_CODE
AND A.IN_INCIDENT_SEQ = #{value}
</select>
<!--
* 1. 인시던트 접수 : 조치담당자,접수자
* 2. 수정 : 조치담당자
* 3. 승인요청 : 다음 결재라인
* 4. 승인완료 : 조치담당자
* 5. 반려 : 결재요청자, 하위 결재라인
* 6. 조치완료 : 접수자, 조치담당자
-->
<!-- 2025.07.04 나혁제
메일이 없는경우 에도 메세제 처리는 해야됨
AND U.EML_ADDR IS NOT NULL
AND U.EML_ADDR != ""
-->
<select id="getIncidentMailReciever" parameterType="java.util.LinkedHashMap" resultType="java.util.LinkedHashMap">
SELECT U.ESNTL_ID AS IN_USER_SEQ
, U.TASK_USER_ID AS VC_USER_ID
, U.USER_NM AS VC_USER_NAME
, U.EML_ADDR AS VC_USER_EMAIL
, U.MOVE_TELNO AS VC_USER_PHONE
, U.KATALK_ALAM_YN AS KATALK_ALAM_YN
, U.MAIL_ALAM_YN AS MAIL_ALAM_YN
FROM TB_TASK_USER_INFO U
, CM_INCIDENT C
WHERE C.IN_INCIDENT_SEQ=#{IN_INCIDENT_SEQ} AND
(
<if test="type == 1"> <!-- 등록 : 조치담당자, 접수자 -->
U.ESNTL_ID = C.IN_REG_USER
OR U.ESNTL_ID = C.IN_CHARGE_USER
</if>
<if test="type == 2"> <!-- 수정 : 조치담당자 -->
U.ESNTL_ID = C.IN_CHARGE_USER
</if>
<if test="type == 3"> <!-- 승인요청 -->
U.ESNTL_ID = (SELECT IN_USER_SEQ
FROM CM_INCIDENT_APPROVAL
WHERE IN_INCIDENT_SEQ = #{IN_INCIDENT_SEQ}
AND IN_STATUS=1)
</if>
<if test="type == 4"> <!-- 승인완료 -->
U.ESNTL_ID = C.IN_CHARGE_USER
OR C.IN_REQ_APPROVAL_USER = U.ESNTL_ID
</if>
<if test="type == 5"> <!-- 반려 -->
U.ESNTL_ID = C.IN_CHARGE_USER
OR C.IN_REQ_APPROVAL_USER = U.ESNTL_ID
OR
<!-- 반려시 하위 승인자 포함 -->
U.ESNTL_ID IN (SELECT IN_USER_SEQ
FROM CM_INCIDENT_APPROVAL
WHERE IN_INCIDENT_SEQ = #{IN_INCIDENT_SEQ}
AND IN_STATUS=3)
</if>
<if test="type == 6"> <!-- 조치완료 -->
U.ESNTL_ID = C.IN_REG_USER
OR U.ESNTL_ID = C.IN_CHARGE_USER
</if>
<if test="type == 7"> <!-- 이관 -->
U.ESNTL_ID = C.IN_DEV_USER
</if>
)
GROUP BY U.ESNTL_ID
</select>
</mapper>