
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
<?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.takensoft.taken_bi_manager.schedule.dao.DiagramDAO">
<!-- 스케줄 resultMap -->
<resultMap id="DiagramResult" type="DiagramVO">
<result property="schdulId" column="schdul_id"/>
<result property="groupId" column="group_id"/>
<result property="schdulSj" column="schdul_sj"/>
<result property="schdulCn" column="schdul_cn"/>
<result property="cron" column="cron"/>
<result property="cronChrctr" column="cron_chrctr"/>
<result property="schdulSttus" column="schdul_sttus"/>
<result property="cycleAt" column="cycle_at"/>
<result property="useAt" column="use_at"/>
<result property="creatId" column="creat_id"/>
<result property="creatDt" column="creat_dt"/>
<result property="updtId" column="updt_id"/>
<result property="updtDt" column="updt_dt"/>
</resultMap>
<!-- 노드 목록 조회 -->
<select id="nodeList" parameterType="String" resultType="NodeVO">
SELECT DISTINCT
dt.diagram_id
, nt.node_name
, nt.node_type
, nt.itm_id
, nt.center_x
, nt.center_y
, nt.node_state
, nt.flag
, nt.id
, nt.label
, nt."type"
FROM diagram_info AS dt
LEFT JOIN diagram_node AS nt
ON dt.diagram_id = nt.diagram_id
WHERE dt.diagram_id = #{diagramId}
</select>
<select id="lineList" parameterType="String" resultType="EdgeVO">
SELECT edge_id
, source
, target
, diagram_id
FROM diagram_edge
WHERE diagram_id = #{diagramId}
</select>
<!--
작성자 : 하관우
작성일자 : 2024-02-01
내용 : 다이어그램 업설트
-->
<update id="diagramDataInsert" parameterType="DiagramVO" >
INSERT INTO diagram_info(
diagram_id,
creat_dt,
updt_dt,
creat_id,
updt_id
) VALUES(
#{diagram_id},
NOW(),
#{updt_dt},
#{creat_id},
#{updt_id}
)
ON CONFLICT(diagram_id)
DO UPDATE
SET
updt_dt = NOW()
, creat_id = #{creat_id}
, updt_id = #{updt_id}
</update>
<!--
작성자 : 하관우
작성일자 : 2024-02-01
내용 : 노드 업설트
-->
<update id="nodeDataInsert" parameterType="ScheduleVO" >
INSERT INTO diagram_node(
diagram_id,
node_id,
node_name,
node_type,
itm_id,
center_x,
center_y,
node_state,
flag,
id,
label,
"type"
) VALUES(
#{diagram_id},
#{node_id},
#{node_name},
#{node_type},
#{itm_id},
#{position.x}::DOUBLE PRECISION,
#{position.y}::DOUBLE PRECISION,
#{node_state},
#{flag},
#{id},
#{label},
#{type}
)
ON CONFLICT(node_id)
DO UPDATE
SET diagram_id = #{diagram_id}
, node_name = #{node_name}
, node_type = #{node_type}
, itm_id = #{itm_id}
, center_x = #{position.x}::DOUBLE PRECISION
, center_y = #{position.y}::DOUBLE PRECISION
, node_state = #{node_state}
, flag = #{flag}
, id = #{id}
, label = #{label}
, "type" = #{type}
</update>
<!--
작성자 : 하관우
작성일자 : 2024-02-01
내용 : 선 업설트
-->
<update id="lineDataInsert" parameterType="EdgeVO" >
INSERT INTO diagram_edge(
edge_id,
source,
target,
diagram_id
) VALUES(
#{edge_id},
#{source},
#{target},
#{diagram_id}
)
ON CONFLICT(edge_id)
DO UPDATE
SET source = #{source}
, target = #{target}
, diagram_id = #{diagram_id}
</update>
<!-- 다이어그램 ID로 노드 삭제-->
<delete id="nodeDelete" parameterType="String">
DELETE FROM diagram_node
WHERE diagram_id = #{diagram_id}
</delete>
<!-- 노드 ID로 노드 삭제-->
<delete id="nodeIdDelete" parameterType="String">
DELETE FROM diagram_node
WHERE node_id = #{node_id}
</delete>
<!-- 다이어그램 ID로 라인 삭제-->
<delete id="edgeDelete" parameterType="String">
DELETE FROM diagram_edge
WHERE diagram_id = #{diagram_id}
</delete>
<!-- 라인 ID로 라인 삭제-->
<delete id="edgeIdDelete" parameterType="String">
DELETE FROM diagram_edge
WHERE edge_id = #{edge_id}
</delete>
<!-- 다이어그램 ID로 다이어그램 삭제-->
<delete id="diagramDelete" parameterType="String">
DELETE FROM diagram_info
WHERE diagram_id = #{group_id}
</delete>
<!-- 다이어그램 ID로 노드 ID 찾기-->
<select id="nodeSelectId" parameterType="String" resultType="String">
SELECT node_id
FROM diagram_node
WHERE diagram_id = #{diagram_id}
</select>
<!-- 스케줄 ID로 그룹 ID 찾기-->
<select id="ScheduleIdToGroubId" parameterType="String" resultType="String">
SELECT group_id
FROM schdul_info
WHERE schdul_id = #{schdul_id}
</select>
<!-- 다이어그램 ID로 라인 ID 찾기-->
<select id="edgeSelectId" parameterType="String" resultType="String">
SELECT edge_id
FROM diagram_edge
WHERE diagram_id = #{diagram_id}
</select>
<!--노드 삭제를 위한 것(끝)-->
<sql id="listSearch">
<foreach item="item" index="index" collection="searchObjectList">
<choose>
<!-- 날짜 검색 -->
<when test="item.type == 'dates'">
AND #{item.value}::timestamp <![CDATA[<=]]> dt.${item.key}::timestamp
AND dt.${item.key2}::timestamp <![CDATA[<]]> #{item.value2}::timestamp + INTERVAL '1' DAY
</when>
<!-- 상태 검색 -->
<when test="item.type == 'string' and item.key == 'schdul_sttus' and item.value != null and item.value !=''">
AND sch.${item.key} = #{item.value}
</when>
<!-- 일반 검색 -->
<when test="item.type == 'string' and item.value != null and item.value !=''">
<choose>
<when test="item.key != null and item.value != ''">
<if test="item.key == 'sj'">
AND sch.sj LIKE CONCAT('%', #{item.value}, '%')
</if>
<if test="item.key == 'creat_id'">
AND dt.creat_id LIKE CONCAT('%', #{item.value}, '%')
</if>
</when>
<otherwise>
AND (sch.sj LIKE '%' || #{item.value} || '%' OR dt.creat_id LIKE '%' || #{item.value} || '%')
</otherwise>
</choose>
</when>
</choose>
</foreach>
</sql>
<!-- // SELECT SQL -->
<select id="diagramListRead" parameterType="SearchVO">
SELECT sch.schdul_id
, dt.diagram_id
, sch.sj AS diagram_nm
, dt.creat_id
, sch.cron_chrctr
, dt.creat_dt
, sch.schdul_sttus
FROM diagram_info AS dt
LEFT JOIN schdul_info AS sch
ON dt.diagram_id = sch.group_id
WHERE sch.use_at = true
<include refid="listSearch" />
ORDER BY creat_dt DESC
LIMIT #{perPage} OFFSET ((#{currentPage} - 1) * #{perPage})
</select>
<select id="diagramListCountRead" parameterType="SearchVO" resultType="Integer">
SELECT count(dt.diagram_id)
FROM diagram_info AS dt
LEFT JOIN schdul_info AS sch
ON dt.diagram_id = sch.group_id
WHERE sch.use_at = true
<include refid="listSearch" />
</select>
<select id="diagramDetailRead" parameterType="String" resultType="DiagramVO">
SELECT dt.diagram_id
, sch.sj AS diagram_nm
, dt.creat_dt
, dt.creat_id
, dt.updt_dt
, dt.updt_id
FROM diagram_info AS dt
LEFT JOIN schdul_info AS sch
ON dt.diagram_id = sch.group_id
WHERE diagram_id = #{diagramId}
</select>
</mapper>