diff --git a/src/main/java/com/interplug/qcast/biz/canvasSetting/CanvasSettingController.java b/src/main/java/com/interplug/qcast/biz/canvasSetting/CanvasSettingController.java index aa3a4037..741bd9c8 100644 --- a/src/main/java/com/interplug/qcast/biz/canvasSetting/CanvasSettingController.java +++ b/src/main/java/com/interplug/qcast/biz/canvasSetting/CanvasSettingController.java @@ -1,6 +1,7 @@ package com.interplug.qcast.biz.canvasSetting; import com.interplug.qcast.biz.canvasSetting.dto.CanvasSettingInfo; +import com.interplug.qcast.config.Exception.QcastException; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -32,7 +33,7 @@ public class CanvasSettingController { @Operation(description = "Canvas Setting 정보를 등록 한다.") @PostMapping("/canvas-settings") @ResponseStatus(HttpStatus.CREATED) - public Map insertCanvasSetting(@RequestBody CanvasSettingInfo csi) { + public Map insertCanvasSetting(@RequestBody CanvasSettingInfo csi) throws QcastException { log.debug("Setting 등록 ::::: " + csi.getObjectNo()); diff --git a/src/main/java/com/interplug/qcast/biz/canvasSetting/CanvasSettingService.java b/src/main/java/com/interplug/qcast/biz/canvasSetting/CanvasSettingService.java index eaa18b4e..6154b86c 100644 --- a/src/main/java/com/interplug/qcast/biz/canvasSetting/CanvasSettingService.java +++ b/src/main/java/com/interplug/qcast/biz/canvasSetting/CanvasSettingService.java @@ -1,10 +1,14 @@ package com.interplug.qcast.biz.canvasSetting; import com.interplug.qcast.biz.canvasSetting.dto.CanvasSettingInfo; +import com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusResponse; +import com.interplug.qcast.config.Exception.ErrorCode; +import com.interplug.qcast.config.Exception.QcastException; import lombok.RequiredArgsConstructor; import java.util.HashMap; +import java.util.List; import java.util.Map; import org.springframework.stereotype.Service; @@ -20,15 +24,31 @@ public class CanvasSettingService { } // Canvas Setting 등록 - public Map insertCanvasSetting(CanvasSettingInfo csi) { + public Map insertCanvasSetting(CanvasSettingInfo csi) throws QcastException { Map response = new HashMap<>(); - - try { - canvasSettingMapper.insertCanvasSetting(csi); - - response.put("objectNo", csi.getObjectNo()); - response.put("returnMessage", "common.message.confirm.mark"); + + if (csi.getObjectNo() == null) { + throw new QcastException (ErrorCode.INVALID_INPUT_VALUE ,"올바르지 않은 입력값입니다."); + } + + try { + + // 먼저 데이터가 존재하는지 확인 + CanvasSettingInfo existingSetting = canvasSettingMapper.selectCanvasSetting(csi.getObjectNo()); + + // 데이터가 존재하지 않으면 insert + if (existingSetting.getObjectNo() == null) { + canvasSettingMapper.insertCanvasSetting(csi); + + response.put("objectNo", csi.getObjectNo()); + response.put("returnMessage", "common.message.confirm.mark"); + } else { + canvasSettingMapper.updateCanvasSetting(csi); + + response.put("objectNo", csi.getObjectNo()); + response.put("returnMessage", "common.message.confirm.mark"); + } } catch (Exception e) { response.put("objectNo", csi.getObjectNo()); diff --git a/src/main/resources/mappers/canvasSetting/canvasSettingMapper.xml b/src/main/resources/mappers/canvasSetting/canvasSettingMapper.xml index 7de7419a..bd30950f 100644 --- a/src/main/resources/mappers/canvasSetting/canvasSettingMapper.xml +++ b/src/main/resources/mappers/canvasSetting/canvasSettingMapper.xml @@ -68,68 +68,7 @@ /* sqlid : com.interplug.qcast.canvasSetting.insertCanvasSetting Canvas Setting 등록 */ - MERGE TB_CANVAS_SETTING AS target - USING (SELECT #{objectNo} AS object_no) AS source - ON (target.object_no = source.object_no) - WHEN MATCHED THEN - UPDATE - SET alloc_display = #{allocDisplay} - , outline_display = #{outlineDisplay} - , grid_display = #{gridDisplay} - , line_display = #{lineDisplay} - , word_display = #{wordDisplay} - , circuit_num_display = #{circuitNumDisplay} - , flow_display = #{flowDisplay} - , trestle_display = #{trestleDisplay} - , image_display = #{imageDisplay} - , total_display = #{totalDisplay} - , corridor_dimension = #{corridorDimension} - , real_dimension = #{realDimension} - , none_dimension = #{noneDimension} - , only_border = #{onlyBorder} - , line_hatch = #{lineHatch} - , all_painted = #{allPainted} - , adsorp_range_small = #{adsorpRangeSmall} - , adsorp_range_small_semi = #{adsorpRangeSmallSemi} - , adsorp_range_medium = #{adsorpRangeMedium} - , adsorp_range_large = #{adsorpRangeLarge} - , adsorp_point = #{adsorpPoint} - , dot_grid_display = #{dotGridDisplay} - , line_grid_display = #{lineGridDisplay} - , grid_type = #{gridType} - , grid_horizon = #{gridHorizon} - , grid_vertical = #{gridVertical} - , grid_ratio = #{gridRatio} - , grid_dimen = #{gridDimen} - , grid_color = #{gridColor} - , word_font = #{wordFont} - , word_font_style = #{wordFontStyle} - , word_font_size = #{wordFontSize} - , word_font_color = #{wordFontColor} - , flow_font = #{flowFont} - , flow_font_style = #{flowFontStyle} - , flow_font_size = #{flowFontSize} - , flow_font_color = #{flowFontColor} - , dimensio_font = #{dimensioFont} - , dimensio_font_style = #{dimensioFontStyle} - , dimensio_font_size = #{dimensioFontSize} - , dimensio_font_color = #{dimensioFontColor} - , circuit_num_font = #{circuitNumFont} - , circuit_num_font_style = #{circuitNumFontStyle} - , circuit_num_font_size = #{circuitNumFontSize} - , circuit_num_font_color = #{circuitNumFontColor} - , length_font = #{lengthFont} - , length_font_style = #{lengthFontStyle} - , length_font_size = #{lengthFontSize} - , length_font_color = #{lengthFontColor} - , origin_pixel = #{originPixel} - , origin_color = #{originColor} - , origin_horizon = #{originHorizon} - , origin_vertical = #{originVertical} - , last_edit_datetime = GETDATE() - - WHEN NOT MATCHED THEN - INSERT + INSERT INTO TB_CANVAS_SETTING ( object_no , alloc_display @@ -186,8 +125,7 @@ , origin_horizon , origin_vertical , regist_datetime - ) - VALUES ( + ) VALUES ( #{objectNo} , #{allocDisplay} , #{outlineDisplay}