644 lines
25 KiB
XML
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>
|
|
|
|
|