INSERT INTO SCREEN_DEFINITIONS (
SCREEN_NAME
, SCREEN_CODE
, TABLE_NAME
, COMPANY_CODE
, DESCRIPTION
, CREATED_BY
, DB_SOURCE_TYPE
, DB_CONNECTION_ID
, DATA_SOURCE_TYPE
, REST_API_CONNECTION_ID
, REST_API_ENDPOINT
, REST_API_JSON_PATH
) VALUES (
#{screenName}
, #{screenCode}
, #{tableName}
, #{companyCode}
, #{description}
, #{createdBy}
, #{dbSourceType}
, #{dbConnectionId}
, #{dataSourceType}
, #{restApiConnectionId}
, #{restApiEndpoint}
, #{restApiJsonPath}
)
RETURNING
SCREEN_ID
, SCREEN_NAME
, SCREEN_CODE
, TABLE_NAME
, COMPANY_CODE
, DESCRIPTION
, IS_ACTIVE
, CREATED_DATE
, CREATED_BY
, UPDATED_DATE
, UPDATED_BY
, DB_SOURCE_TYPE
, DB_CONNECTION_ID
, DATA_SOURCE_TYPE
, REST_API_CONNECTION_ID
, REST_API_ENDPOINT
, REST_API_JSON_PATH
UPDATE SCREEN_DEFINITIONS
SET
SCREEN_NAME = #{screenName}
, DESCRIPTION = #{description}
, IS_ACTIVE = #{isActive}
, UPDATED_BY = #{updatedBy}
, UPDATED_DATE = NOW()
WHERE SCREEN_ID = #{screenId}
UPDATE SCREEN_DEFINITIONS
SET
SCREEN_NAME = #{screenName}
, TABLE_NAME = #{tableName}
, DESCRIPTION = #{description}
, IS_ACTIVE = #{isActive}
, UPDATED_DATE = NOW()
, DATA_SOURCE_TYPE = #{dataSourceType}
, DB_SOURCE_TYPE = #{dbSourceType}
, DB_CONNECTION_ID = #{dbConnectionId}
, REST_API_CONNECTION_ID = #{restApiConnectionId}
, REST_API_ENDPOINT = #{restApiEndpoint}
, REST_API_JSON_PATH = #{restApiJsonPath}
WHERE SCREEN_ID = #{screenId}
UPDATE SCREEN_DEFINITIONS
SET
TABLE_NAME = #{tableName}
, UPDATED_DATE = NOW()
WHERE SCREEN_ID = #{screenId}
UPDATE SCREEN_DEFINITIONS
SET
IS_ACTIVE = 'D'
, DELETED_DATE = NOW()
, DELETED_BY = #{deletedBy}
, DELETE_REASON = #{deleteReason}
, UPDATED_DATE = NOW()
, UPDATED_BY = #{deletedBy}
WHERE SCREEN_ID = #{screenId}
DELETE FROM SCREEN_GROUP_SCREENS
WHERE SCREEN_ID = #{screenId}
UPDATE SCREEN_DEFINITIONS
SET
IS_ACTIVE = 'Y'
, DELETED_DATE = NULL
, DELETED_BY = NULL
, DELETE_REASON = NULL
, UPDATED_DATE = NOW()
, UPDATED_BY = #{restoredBy}
WHERE SCREEN_ID = #{screenId}
DELETE FROM SCREEN_LAYOUTS
WHERE SCREEN_ID = #{screenId}
DELETE FROM SCREEN_DEFINITIONS
WHERE SCREEN_ID = #{screenId}
DELETE FROM SCREEN_LAYOUTS
WHERE SCREEN_ID = #{screenId}
INSERT INTO SCREEN_LAYOUTS (
SCREEN_ID
, COMPONENT_TYPE
, COMPONENT_ID
, PARENT_ID
, POSITION_X
, POSITION_Y
, WIDTH
, HEIGHT
, PROPERTIES
, DISPLAY_ORDER
) VALUES (
#{screenId}
, #{componentType}
, #{componentId}
, #{parentId}
, #{positionX}
, #{positionY}
, #{width}
, #{height}
, #{properties}::jsonb
, #{displayOrder}
)
INSERT INTO SCREEN_LAYOUTS_V2 (
SCREEN_ID
, COMPANY_CODE
, LAYER_ID
, LAYER_NAME
, LAYOUT_DATA
, CREATED_AT
, UPDATED_AT
) VALUES (
#{screenId}
, #{companyCode}
, #{layerId}
, #{layerName}
, #{layoutData}::jsonb
, NOW()
, NOW()
)
ON CONFLICT (SCREEN_ID, COMPANY_CODE, LAYER_ID) DO UPDATE SET
LAYOUT_DATA = EXCLUDED.LAYOUT_DATA
, LAYER_NAME = EXCLUDED.LAYER_NAME
, UPDATED_AT = NOW()
INSERT INTO SCREEN_LAYOUTS_V2 (
SCREEN_ID
, COMPANY_CODE
, LAYER_ID
, LAYER_NAME
, CONDITION_CONFIG
, LAYOUT_DATA
, CREATED_AT
, UPDATED_AT
) VALUES (
#{screenId}
, #{companyCode}
, #{layerId}
, #{layerName}
, #{conditionConfig}::jsonb
, #{layoutData}::jsonb
, NOW()
, NOW()
)
ON CONFLICT (SCREEN_ID, COMPANY_CODE, LAYER_ID) DO UPDATE SET
LAYOUT_DATA = EXCLUDED.LAYOUT_DATA
, LAYER_NAME = EXCLUDED.LAYER_NAME
, CONDITION_CONFIG = EXCLUDED.CONDITION_CONFIG
, UPDATED_AT = NOW()
UPDATE SCREEN_DEFINITIONS
SET
TABLE_NAME = #{tableName}
, UPDATED_DATE = NOW()
WHERE SCREEN_ID = #{screenId}
INSERT INTO SCREEN_LAYOUTS_V2 (
SCREEN_ID
, COMPANY_CODE
, LAYER_ID
, LAYER_NAME
, LAYOUT_DATA
, CREATED_AT
, UPDATED_AT
) VALUES (
#{screenId}
, #{companyCode}
, 1
, '기본 레이어'
, #{layoutData}::jsonb
, NOW()
, NOW()
)
ON CONFLICT (SCREEN_ID, COMPANY_CODE, LAYER_ID) DO NOTHING
DELETE FROM SCREEN_LAYOUTS_V2
WHERE SCREEN_ID = #{screenId}
AND (COMPANY_CODE = #{companyCode} OR COMPANY_CODE = '*')
AND LAYER_ID = #{layerId}
UPDATE SCREEN_LAYOUTS_V2
CONDITION_CONFIG = #{conditionConfig}::jsonb,
UPDATED_AT = NOW()
, LAYER_NAME = #{layerName}
WHERE SCREEN_ID = #{screenId}
AND (COMPANY_CODE = #{companyCode} OR COMPANY_CODE = '*')
AND LAYER_ID = #{layerId}
INSERT INTO SCREEN_LAYOUTS_V2 (
SCREEN_ID
, COMPANY_CODE
, LAYOUT_DATA
, LAYER_ID
, LAYER_NAME
, CONDITION_CONFIG
) VALUES (
#{screenId}
, #{companyCode}
, #{layoutData}::jsonb
, #{layerId}
, #{layerName}
, #{conditionConfig}::jsonb
)
ON CONFLICT (SCREEN_ID, COMPANY_CODE, LAYER_ID) DO UPDATE SET
LAYOUT_DATA = EXCLUDED.LAYOUT_DATA
, LAYER_NAME = EXCLUDED.LAYER_NAME
, CONDITION_CONFIG = EXCLUDED.CONDITION_CONFIG
, UPDATED_AT = NOW()
INSERT INTO SCREEN_CONDITIONAL_ZONES (
SCREEN_ID
, COMPANY_CODE
, ZONE_NAME
, X
, Y
, WIDTH
, HEIGHT
, TRIGGER_COMPONENT_ID
, TRIGGER_OPERATOR
) VALUES (
#{screenId}
, #{companyCode}
, #{zoneName}
, #{x}
, #{y}
, #{width}
, #{height}
, #{triggerComponentId}
, #{triggerOperator}
)
RETURNING *
UPDATE SCREEN_CONDITIONAL_ZONES
UPDATED_AT = NOW()
, ZONE_NAME = #{zoneName}
, X = #{x}
, Y = #{y}
, WIDTH = #{width}
, HEIGHT = #{height}
, TRIGGER_COMPONENT_ID = #{triggerComponentId}
, TRIGGER_OPERATOR = #{triggerOperator}
WHERE ZONE_ID = #{zoneId}
AND (COMPANY_CODE = #{companyCode} OR COMPANY_CODE = '*')
DELETE FROM SCREEN_CONDITIONAL_ZONES
WHERE ZONE_ID = #{zoneId}
AND (COMPANY_CODE = #{companyCode} OR COMPANY_CODE = '*')
UPDATE SCREEN_LAYOUTS_V2
SET
CONDITION_CONFIG = NULL
, UPDATED_AT = NOW()
WHERE (COMPANY_CODE = #{companyCode} OR COMPANY_CODE = '*')
AND CONDITION_CONFIG->>'zone_id' = #{zoneIdStr}
INSERT INTO SCREEN_LAYOUTS_POP (
SCREEN_ID
, COMPANY_CODE
, LAYOUT_DATA
, CREATED_AT
, UPDATED_AT
, CREATED_BY
, UPDATED_BY
) VALUES (
#{screenId}
, #{companyCode}
, #{layoutData}::jsonb
, NOW()
, NOW()
, #{userId}
, #{userId}
)
ON CONFLICT (SCREEN_ID, COMPANY_CODE) DO UPDATE SET
LAYOUT_DATA = EXCLUDED.LAYOUT_DATA
, UPDATED_AT = NOW()
, UPDATED_BY = EXCLUDED.UPDATED_BY
DELETE FROM SCREEN_LAYOUTS_POP
WHERE SCREEN_ID = #{screenId}
AND (COMPANY_CODE = #{companyCode} OR COMPANY_CODE = '*')
INSERT INTO SCREEN_DEFINITIONS (
SCREEN_NAME
, SCREEN_CODE
, TABLE_NAME
, COMPANY_CODE
, DESCRIPTION
, CREATED_BY
, DB_SOURCE_TYPE
, DB_CONNECTION_ID
, DATA_SOURCE_TYPE
, REST_API_CONNECTION_ID
, REST_API_ENDPOINT
, REST_API_JSON_PATH
) VALUES (
#{screenName}
, #{screenCode}
, #{tableName}
, #{companyCode}
, #{description}
, #{createdBy}
, #{dbSourceType}
, #{dbConnectionId}
, #{dataSourceType}
, #{restApiConnectionId}
, #{restApiEndpoint}
, #{restApiJsonPath}
)
RETURNING
SCREEN_ID
, SCREEN_NAME
, SCREEN_CODE
, TABLE_NAME
, COMPANY_CODE
, DESCRIPTION
, IS_ACTIVE
, CREATED_DATE
, CREATED_BY
, DB_SOURCE_TYPE
, DB_CONNECTION_ID
, DATA_SOURCE_TYPE
, REST_API_CONNECTION_ID
, REST_API_ENDPOINT
, REST_API_JSON_PATH
INSERT INTO SCREEN_LAYOUTS (
SCREEN_ID
, COMPONENT_TYPE
, COMPONENT_ID
, PARENT_ID
, POSITION_X
, POSITION_Y
, WIDTH
, HEIGHT
, PROPERTIES
, DISPLAY_ORDER
) VALUES (
#{screenId}
, #{componentType}
, #{componentId}
, #{parentId}
, #{positionX}
, #{positionY}
, #{width}
, #{height}
, #{properties}::jsonb
, #{displayOrder}
)
INSERT INTO SCREEN_LAYOUTS_V2 (
SCREEN_ID
, COMPANY_CODE
, LAYER_ID
, LAYER_NAME
, CONDITION_CONFIG
, LAYOUT_DATA
, CREATED_AT
, UPDATED_AT
) VALUES (
#{screenId}
, #{companyCode}
, #{layerId}
, #{layerName}
, #{conditionConfig}::jsonb
, #{layoutData}::jsonb
, NOW()
, NOW()
)
ON CONFLICT (SCREEN_ID, COMPANY_CODE, LAYER_ID) DO UPDATE SET
LAYOUT_DATA = EXCLUDED.LAYOUT_DATA
, UPDATED_AT = NOW()
UPDATE SCREEN_LAYOUTS
SET
PROPERTIES = #{properties}::jsonb
WHERE LAYOUT_ID = #{layoutId}
UPDATE SCREEN_LAYOUTS_V2
SET
LAYOUT_DATA = #{layoutData}::jsonb
, UPDATED_AT = NOW()
WHERE SCREEN_ID = #{screenId}
AND LAYER_ID = #{layerId}
AND (COMPANY_CODE = #{companyCode} OR COMPANY_CODE = '*')
DELETE FROM FLOW_STEP_CONNECTION
WHERE FLOW_DEFINITION_ID = #{flowId}
DELETE FROM FLOW_STEP
WHERE FLOW_DEFINITION_ID = #{flowId}
DELETE FROM FLOW_DEFINITION
WHERE ID = #{flowId}
AND (COMPANY_CODE = #{companyCode} OR COMPANY_CODE = '*')
DELETE FROM NODE_FLOWS
WHERE FLOW_ID = #{flowId}
AND (COMPANY_CODE = #{companyCode} OR COMPANY_CODE = '*')
INSERT INTO CODE_CATEGORY (
CATEGORY_CODE
, CATEGORY_NAME
, COMPANY_CODE
, DESCRIPTION
) VALUES (
#{categoryCode}
, #{categoryName}
, #{targetCompanyCode}
, #{description}
)
ON CONFLICT (CATEGORY_CODE, COMPANY_CODE) DO UPDATE SET
CATEGORY_NAME = EXCLUDED.CATEGORY_NAME
, DESCRIPTION = EXCLUDED.DESCRIPTION
INSERT INTO CODE_INFO (
CODE_CATEGORY
, CODE_VALUE
, CODE_NAME
, COMPANY_CODE
, SORT_ORDER
, IS_ACTIVE
) VALUES (
#{codeCategory}
, #{codeValue}
, #{codeName}
, #{targetCompanyCode}
, #{sortOrder}
, #{isActive}
)
ON CONFLICT (CODE_CATEGORY, CODE_VALUE, COMPANY_CODE) DO UPDATE SET
CODE_NAME = EXCLUDED.CODE_NAME
, SORT_ORDER = EXCLUDED.SORT_ORDER
, IS_ACTIVE = EXCLUDED.IS_ACTIVE
INSERT INTO CATEGORY_TREE (
CATEGORY_CODE
, CATEGORY_NAME
, PARENT_CODE
, COMPANY_CODE
, SORT_ORDER
) VALUES (
#{categoryCode}
, #{categoryName}
, #{parentCode}
, #{targetCompanyCode}
, #{sortOrder}
)
ON CONFLICT (CATEGORY_CODE, COMPANY_CODE) DO UPDATE SET
CATEGORY_NAME = EXCLUDED.CATEGORY_NAME
, PARENT_CODE = EXCLUDED.PARENT_CODE
, SORT_ORDER = EXCLUDED.SORT_ORDER
INSERT INTO CATEGORY_VALUE (
CATEGORY_CODE
, VALUE_CODE
, VALUE_NAME
, COMPANY_CODE
, SORT_ORDER
) VALUES (
#{categoryCode}
, #{valueCode}
, #{valueName}
, #{targetCompanyCode}
, #{sortOrder}
)
ON CONFLICT (CATEGORY_CODE, VALUE_CODE, COMPANY_CODE) DO UPDATE SET
VALUE_NAME = EXCLUDED.VALUE_NAME
, SORT_ORDER = EXCLUDED.SORT_ORDER
INSERT INTO TABLE_TYPE_COLUMNS (
TABLE_NAME
, COLUMN_NAME
, COLUMN_LABEL
, INPUT_TYPE
, COMPANY_CODE
, IS_VISIBLE
, DISPLAY_ORDER
, IS_NULLABLE
) VALUES (
#{tableName}
, #{columnName}
, #{columnLabel}
, #{inputType}
, #{targetCompanyCode}
, #{isVisible}
, #{displayOrder}
, #{isNullable}
)
ON CONFLICT (TABLE_NAME, COLUMN_NAME, COMPANY_CODE) DO UPDATE SET
COLUMN_LABEL = EXCLUDED.COLUMN_LABEL
, INPUT_TYPE = EXCLUDED.INPUT_TYPE
, IS_VISIBLE = EXCLUDED.IS_VISIBLE
, DISPLAY_ORDER = EXCLUDED.DISPLAY_ORDER
INSERT INTO CASCADING_RELATION (
PARENT_TABLE
, PARENT_COLUMN
, CHILD_TABLE
, CHILD_COLUMN
, COMPANY_CODE
) VALUES (
#{parentTable}
, #{parentColumn}
, #{childTable}
, #{childColumn}
, #{targetCompanyCode}
)
ON CONFLICT (PARENT_TABLE, PARENT_COLUMN, CHILD_TABLE, CHILD_COLUMN, COMPANY_CODE)
DO NOTHING
INSERT INTO SCREEN_DEFINITIONS (
SCREEN_NAME
, SCREEN_CODE
, TABLE_NAME
, COMPANY_CODE
, DESCRIPTION
, CREATED_BY
, DB_SOURCE_TYPE
, DATA_SOURCE_TYPE
) VALUES (
#{screenName}
, #{screenCode}
, #{tableName}
, #{companyCode}
, #{description}
, #{createdBy}
, #{dbSourceType}
, #{dataSourceType}
)
RETURNING
SCREEN_ID
, SCREEN_NAME
, SCREEN_CODE
, COMPANY_CODE
INSERT INTO SCREEN_LAYOUTS_POP (
SCREEN_ID
, COMPANY_CODE
, LAYOUT_DATA
, CREATED_AT
, UPDATED_AT
, CREATED_BY
, UPDATED_BY
) VALUES (
#{screenId}
, #{companyCode}
, #{layoutData}::jsonb
, NOW()
, NOW()
, #{userId}
, #{userId}
)
ON CONFLICT (SCREEN_ID, COMPANY_CODE) DO UPDATE SET
LAYOUT_DATA = EXCLUDED.LAYOUT_DATA
, UPDATED_AT = NOW()
, UPDATED_BY = EXCLUDED.UPDATED_BY