From aaf6ddcb1329a7abf377209afcbe3b49a8f7fd63 Mon Sep 17 00:00:00 2001 From: "LAPTOP-L3VE7KK2\\USER" Date: Thu, 27 Feb 2025 17:51:39 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B2=AC=EC=A0=81=EC=84=9C=20=EB=B3=B5?= =?UTF-8?q?=EC=82=AC=20=EC=97=90=EB=9F=AC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../biz/canvasStatus/CanvasStatusService.java | 52 ++++++++++++++++++- .../qcast/biz/estimate/EstimateService.java | 2 +- .../qcast/biz/object/ObjectService.java | 2 +- 3 files changed, 53 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/interplug/qcast/biz/canvasStatus/CanvasStatusService.java b/src/main/java/com/interplug/qcast/biz/canvasStatus/CanvasStatusService.java index 313c836f..99e2ba64 100644 --- a/src/main/java/com/interplug/qcast/biz/canvasStatus/CanvasStatusService.java +++ b/src/main/java/com/interplug/qcast/biz/canvasStatus/CanvasStatusService.java @@ -1,5 +1,9 @@ package com.interplug.qcast.biz.canvasStatus; +import com.interplug.qcast.biz.canvasBasicSetting.CanvasBasicSettingMapper; +import com.interplug.qcast.biz.canvasBasicSetting.dto.CanvasBasicSettingInfo; +import com.interplug.qcast.biz.canvasBasicSetting.dto.CanvasBasicSettingResponse; +import com.interplug.qcast.biz.canvasBasicSetting.dto.RoofMaterialsAddInfo; import com.interplug.qcast.biz.canvasStatus.dto.CanvasStatus; import com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusCopyRequest; import com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusResponse; @@ -14,6 +18,7 @@ import org.springframework.transaction.annotation.Transactional; @RequiredArgsConstructor public class CanvasStatusService { private final CanvasStatusMapper canvasStatusMapper; + private final CanvasBasicSettingMapper canvasBasicSettingMapper; // 사용자(userId)에 해당하는 전체 캔버스 조회 public List selectAllCanvasStatus(String userId) throws QcastException { @@ -148,9 +153,54 @@ public class CanvasStatusService { // 캔버스 복사 후 등록 @Transactional - public int copyCanvasStatus(CanvasStatusCopyRequest cs) throws QcastException { + public int copyCanvasStatus(CanvasStatusCopyRequest cs, Boolean flag) throws QcastException { try { + + if (flag) { + // 배치면 초기설정 정보 조회 + List selData = + canvasBasicSettingMapper.selectCanvasBasicSetting( + cs.getOriginObjectNo(), Integer.parseInt(cs.getOriginPlanNo())); + + if (!selData.isEmpty()) { + // 첫 번째 데이터만 CanvasBasicSettingInfo로 변환하여 insert 실행 + CanvasBasicSettingResponse firstData = selData.get(0); + + // CanvasBasicSettingResponse → CanvasBasicSettingInfo 변환 + CanvasBasicSettingInfo basicSettingInfo = new CanvasBasicSettingInfo(); + basicSettingInfo.setObjectNo(cs.getObjectNo()); + basicSettingInfo.setPlanNo(Integer.parseInt(cs.getPlanNo())); + basicSettingInfo.setRoofSizeSet(firstData.getRoofSizeSet()); + basicSettingInfo.setRoofAngleSet(firstData.getRoofAngleSet()); + + // 도면/치수/각도 정보 insert (한 번만 실행) + canvasBasicSettingMapper.insertCanvasBasicSetting(basicSettingInfo); + + // 나머지 RoofMaterialsAddInfo 처리 + for (CanvasBasicSettingResponse data : selData) { + // CanvasBasicSettingResponse → RoofMaterialsAddInfo 변환 + RoofMaterialsAddInfo roofMaterials = new RoofMaterialsAddInfo(); + roofMaterials.setObjectNo(cs.getObjectNo()); + roofMaterials.setPlanNo(Integer.parseInt(cs.getPlanNo())); + roofMaterials.setRoofApply(data.isRoofApply()); + roofMaterials.setRoofSeq(data.getRoofSeq()); + roofMaterials.setRoofMatlCd(data.getRoofMatlCd()); + roofMaterials.setRoofWidth(data.getRoofWidth()); + roofMaterials.setRoofHeight(data.getRoofHeight()); + roofMaterials.setRoofHajebichi(data.getRoofHajebichi()); + roofMaterials.setRoofGap(data.getRoofGap()); + roofMaterials.setRoofLayout(data.getRoofLayout()); + roofMaterials.setRoofPitch(data.getRoofPitch()); + roofMaterials.setRoofAngle(data.getRoofAngle()); + + // 지붕재 추가 Setting insert (여러 개 가능) + canvasBasicSettingMapper.insertRoofMaterialsAdd(roofMaterials); + } + } + } + canvasStatusMapper.copyCanvasStatus(cs); + return cs.getId(); } catch (Exception e) { throw new QcastException(ErrorCode.INTERNAL_SERVER_ERROR, "캔버스 복사 중 오류 발생"); diff --git a/src/main/java/com/interplug/qcast/biz/estimate/EstimateService.java b/src/main/java/com/interplug/qcast/biz/estimate/EstimateService.java index 27b5dd57..56d2c06a 100644 --- a/src/main/java/com/interplug/qcast/biz/estimate/EstimateService.java +++ b/src/main/java/com/interplug/qcast/biz/estimate/EstimateService.java @@ -908,7 +908,7 @@ public class EstimateService { cs.setObjectNo(estimateCopyRequest.getCopyObjectNo()); cs.setPlanNo(estimateCopyRequest.getCopyPlanNo()); cs.setUserId(estimateCopyRequest.getUserId()); - canvasStatusService.copyCanvasStatus(cs); + canvasStatusService.copyCanvasStatus(cs, true); // [8]. QSP Q.CAST SEND API /* diff --git a/src/main/java/com/interplug/qcast/biz/object/ObjectService.java b/src/main/java/com/interplug/qcast/biz/object/ObjectService.java index 8d792925..e4b2bd29 100644 --- a/src/main/java/com/interplug/qcast/biz/object/ObjectService.java +++ b/src/main/java/com/interplug/qcast/biz/object/ObjectService.java @@ -698,7 +698,7 @@ public class ObjectService { cs.setObjectNo(planRequest.getObjectNo()); cs.setPlanNo(copyPlanNo); cs.setUserId(planRequest.getUserId()); - Integer canvasId = canvasStatusService.copyCanvasStatus(cs); + Integer canvasId = canvasStatusService.copyCanvasStatus(cs, false); planResponse.setObjectNo(planRequest.getObjectNo()); planResponse.setPlanNo(copyPlanNo);