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} UPDATE SCREEN_MENU_ASSIGNMENTS SET IS_ACTIVE = 'N' WHERE SCREEN_ID = #{screenId} AND IS_ACTIVE = 'Y' 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} UPDATE SCREEN_MENU_ASSIGNMENTS SET IS_ACTIVE = 'Y' WHERE SCREEN_ID = #{screenId} AND IS_ACTIVE = 'N' DELETE FROM SCREEN_LAYOUTS WHERE SCREEN_ID = #{screenId} DELETE FROM SCREEN_MENU_ASSIGNMENTS 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_MENU_ASSIGNMENTS ( SCREEN_ID , MENU_OBJID , COMPANY_CODE , DISPLAY_ORDER , CREATED_BY ) VALUES ( #{screenId} , #{menuObjid} , #{companyCode} , #{displayOrder} , #{createdBy} ) UPDATE MENU_INFO SET MENU_URL = #{menuUrl} , SCREEN_CODE = #{screenCode} WHERE OBJID = #{menuObjid} DELETE FROM SCREEN_MENU_ASSIGNMENTS WHERE SCREEN_ID = #{screenId} AND MENU_OBJID = #{menuObjid} AND (COMPANY_CODE = #{companyCode} OR COMPANY_CODE = '*') UPDATE MENU_INFO SET MENU_URL = NULL , SCREEN_CODE = NULL WHERE OBJID = #{menuObjid} UPDATE SCREEN_MENU_ASSIGNMENTS SET IS_ACTIVE = 'N' WHERE SCREEN_ID IN ( SELECT SCREEN_ID FROM SCREEN_DEFINITIONS WHERE IS_ACTIVE = 'D' ) AND IS_ACTIVE = 'Y' 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 SCREEN_MENU_ASSIGNMENTS ( SCREEN_ID , MENU_OBJID , COMPANY_CODE , DISPLAY_ORDER , CREATED_BY ) VALUES ( #{screenId} , #{menuObjid} , #{companyCode} , #{displayOrder} , #{createdBy} ) ON CONFLICT DO NOTHING 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