INSERT INTO diagram_table(
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}
INSERT INTO node_table(
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}
INSERT INTO edge_table(
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}
INSERT INTO diagram_log_table(
log_id,
operation_date,
total_node_count,
fail_node_count,
fail_node_name,
state_info,
diagram_id,
user_id
) VALUES(
#{log_id},
NOW(),
#{total_node_count},
#{fail_node_count},
#{fail_node_name},
#{state_info},
#{diagram_id},
#{user_id}
)
UPDATE diagram_log_table
SET
operation_date = NOW(),
total_node_count = #{total_node_count},
fail_node_count = #{fail_node_count},
fail_node_name = #{fail_node_name},
state_info = #{state_info},
user_id = #{user_id}
WHERE
log_id = #{log_id}
INSERT INTO detail_log_table(
detail_log_id
, operation_success_date
, node_name
, log_category
, log_message
, log_id
, operation_date
, sj
, creat_id
) VALUES(
#{detail_log_id}
, now()
, #{node_name}
, #{log_category}
, #{log_message}
, #{log_id}
, #{operation_date}
, #{sj}
, #{creat_id}
)
DELETE FROM node_table
WHERE diagram_id = #{diagram_id}
DELETE FROM node_table
WHERE node_id = #{node_id}
DELETE FROM edge_table
WHERE diagram_id = #{diagram_id}
DELETE FROM edge_table
WHERE edge_id = #{edge_id}
DELETE FROM diagram_table
WHERE diagram_id = #{group_id}
DELETE FROM diagram_log_table
WHERE diagram_id = #{diagram_id}
DELETE FROM detail_log_table
WHERE log_id = #{log_id}
AND #{item.value}::timestamp dt.${item.key}::timestamp
AND dt.${item.key2}::timestamp #{item.value2}::timestamp + INTERVAL '1' DAY
AND sch.${item.key} = #{item.value}
AND sch.sj LIKE CONCAT('%', #{item.value}, '%')
AND dt.creat_id LIKE CONCAT('%', #{item.value}, '%')
AND (sch.sj LIKE '%' || #{item.value} || '%' OR dt.creat_id LIKE '%' || #{item.value} || '%')