From 2930910b520d98923b4cdc3a0d0352c3c7faea36 Mon Sep 17 00:00:00 2001 From: "LAPTOP-L3VE7KK2\\USER" Date: Thu, 16 Jan 2025 09:07:59 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B2=AC=EC=A0=81=EC=84=9C=20=EC=A0=80?= =?UTF-8?q?=EC=9E=A5=20API=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../qcast/biz/estimate/EstimateMapper.java | 15 ++- .../qcast/biz/estimate/EstimateService.java | 97 +++++---------- .../biz/estimate/dto/EstimateRequest.java | 4 +- .../qcast/biz/estimate/dto/ItemRequest.java | 5 +- .../qcast/biz/estimate/dto/RoofRequest.java | 6 +- .../qcast/biz/estimate/dto/RoofResponse.java | 4 +- .../pwrGnrSimulation/PwrGnrSimService.java | 4 +- .../dto/PwrGnrSimRoofResponse.java | 2 +- .../mappers/estimate/estimateMapper.xml | 117 +++++++++++++++--- .../pwrGnrSimulation/pwrGnrSimMapper.xml | 6 +- 10 files changed, 164 insertions(+), 96 deletions(-) diff --git a/src/main/java/com/interplug/qcast/biz/estimate/EstimateMapper.java b/src/main/java/com/interplug/qcast/biz/estimate/EstimateMapper.java index 407a594c..2d5c137c 100644 --- a/src/main/java/com/interplug/qcast/biz/estimate/EstimateMapper.java +++ b/src/main/java/com/interplug/qcast/biz/estimate/EstimateMapper.java @@ -72,13 +72,13 @@ public interface EstimateMapper { // 견적서 API 정보 수정 public int updateEstimateApi(EstimateRequest estimateRequest); - // 견적서 지붕재 등록 + // 견적서 지붕면 등록 public int insertEstimateRoof(RoofRequest roofRequest); - // 견적서 지붕재 아이템 등록 + // 견적서 지붕면 아이템 등록 public int insertEstimateRoofItem(ItemRequest itemRequest); - // 견적서 지붕재 회로구성 아이템 등록 + // 견적서 지붕면 회로구성 아이템 등록 public int insertEstimateCircuitItem(ItemRequest itemRequest); // 견적서 도면 아이템 등록 @@ -108,6 +108,15 @@ public interface EstimateMapper { // 견적서 복사 public int insertEstimateCopy(EstimateCopyRequest estimateCopyRequest); + // 견적서 지붕면 복사 + public int insertEstimateRoofCopy(EstimateCopyRequest estimateCopyRequest); + + // 견적서 지붕면 아이템 복사 + public int insertEstimateRoofItemCopy(EstimateCopyRequest estimateCopyRequest); + + // 견적서 지붕면 회로구성 아이템 복사 + public int insertEstimateCircuitItemCopy(EstimateCopyRequest estimateCopyRequest); + // 견적서 도면 아이템 복사 public int insertEstimateDrawingItemCopy(EstimateCopyRequest estimateCopyRequest); 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 fd576929..1e5d7383 100644 --- a/src/main/java/com/interplug/qcast/biz/estimate/EstimateService.java +++ b/src/main/java/com/interplug/qcast/biz/estimate/EstimateService.java @@ -300,7 +300,7 @@ public class EstimateService { } // [2]. 지붕재 관련 데이터 셋팅 - roofList = estimateRequest.getRoofList(); + roofList = estimateRequest.getRoofSurfaceList(); // 지붕재 시공사양 ID String constructSpecifications = ""; @@ -576,7 +576,7 @@ public class EstimateService { : "UNIT_PRICE"); estimateMapper.updateEstimate(estimateRequest); - // 도면 작성일 경우에만 지붕재, 도면 아이템 데이터 초기화 후 저장 + // 도면 작성일 경우에만 지붕면, 도면 아이템 데이터 초기화 후 저장 if ("1".equals(estimateRequest.getDrawingFlg())) { // 견적서 지붕면/아이템 및 PC 회로구성도 제거 estimateMapper.deleteEstimateRoofList(estimateRequest); @@ -591,11 +591,32 @@ public class EstimateService { estimateMapper.insertEstimateRoof(roofRequest); - List roofItemList = roofRequest.getRoofItemList(); + List moduleList = roofRequest.getModuleList(); + List roofItemList = new ArrayList(); + + // 동일 모듈, PCS 아이템 묶기 + for (ItemRequest itemRequest : moduleList) { + boolean overLap = false; + for (ItemRequest data : roofItemList) { + if (itemRequest.getItemId().equals(data.getItemId()) + && itemRequest.getPcItemId().equals(data.getPcItemId())) { + data.setAmount( + String.valueOf(Integer.parseInt(data.getAmount()) + 1)); // 데이터 존재하면 카운팅 + 1 + overLap = true; + break; + } + } + + if (!overLap) { + itemRequest.setAmount("1"); + roofItemList.add(itemRequest); + } + } + for (ItemRequest itemRequest : roofItemList) { + itemRequest.setRoofSurfaceId(roofRequest.getRoofSurfaceId()); itemRequest.setObjectNo(estimateRequest.getObjectNo()); itemRequest.setPlanNo(estimateRequest.getPlanNo()); - itemRequest.setRoofNo(roofRequest.getRoofNo()); estimateMapper.insertEstimateRoofItem(itemRequest); } @@ -692,6 +713,7 @@ public class EstimateService { } } catch (Exception e) { + e.printStackTrace(); throw new QcastException(ErrorCode.INTERNAL_SERVER_ERROR); } } @@ -811,71 +833,19 @@ public class EstimateService { estimateMapper.insertEstimateItem(itemRequest); } - // [6]. 견적서 지붕재 및 도면 초기 데이터 복사 - List roofList = estimateMapper.selectEstimateRoofList(estimateRequest); - List roofItemList = estimateMapper.selectEstimateRoofItemList(estimateRequest); - List circuitItemList = - estimateMapper.selectEstimateCircuitItemList(estimateRequest); - - for (RoofResponse roofResponse : roofList) { - List roofItemList2 = new ArrayList(); - - // 현재 매칭되는 지붕재 아이템 축출 - for (RoofResponse roofItemResponse : roofItemList) { - if (roofResponse.getRoofNo().equals(roofItemResponse.getRoofNo())) { - roofItemList2.add(roofItemResponse); - } - } - - RoofRequest roofRequest = new RoofRequest(); - roofRequest.setObjectNo(estimateCopyRequest.getCopyObjectNo()); - roofRequest.setPlanNo(estimateCopyRequest.getCopyPlanNo()); - roofRequest.setRoofSurface(roofResponse.getRoofSurface()); - roofRequest.setRoofMaterialId(roofResponse.getRoofMaterialId()); - roofRequest.setSupportMethodId(roofResponse.getSupportMethodId()); - roofRequest.setConstructSpecification(roofResponse.getConstructSpecification()); - roofRequest.setSlope(roofResponse.getSlope()); - roofRequest.setAngle(roofResponse.getAngle()); - roofRequest.setClassType(roofResponse.getClassType()); - roofRequest.setAzimuth(roofResponse.getAzimuth()); - roofRequest.setUserId(estimateCopyRequest.getUserId()); - - estimateMapper.insertEstimateRoof(roofRequest); - - for (RoofResponse roofItemResponse : roofItemList2) { - ItemRequest itemRequest = new ItemRequest(); - itemRequest.setRoofNo(roofRequest.getRoofNo()); - itemRequest.setObjectNo(estimateCopyRequest.getCopyObjectNo()); - itemRequest.setPlanNo(estimateCopyRequest.getCopyPlanNo()); - itemRequest.setItemId(roofItemResponse.getItemId()); - itemRequest.setItemNo(roofItemResponse.getItemNo()); - itemRequest.setItemName(roofItemResponse.getItemName()); - itemRequest.setSpecification(roofItemResponse.getSpecification()); - itemRequest.setAmount(roofItemResponse.getAmount()); - itemRequest.setPcItemId(roofItemResponse.getPcItemId()); - - estimateMapper.insertEstimateRoofItem(itemRequest); - } - } - - for (ItemResponse itemResponse : circuitItemList) { - ItemRequest circuitItemRequest = new ItemRequest(); - - circuitItemRequest.setObjectNo(estimateCopyRequest.getCopyObjectNo()); - circuitItemRequest.setPlanNo(estimateCopyRequest.getCopyPlanNo()); - circuitItemRequest.setItemId(itemResponse.getItemId()); - circuitItemRequest.setCircuitCfg(itemResponse.getCircuitCfg()); - - estimateMapper.insertEstimateCircuitItem(circuitItemRequest); - } - + // [6]. 견적서 지붕면 및 도면 초기 데이터 복사 + // 견적서 지붕면 복사 + estimateMapper.insertEstimateRoofCopy(estimateCopyRequest); + // 견적서 지붕면 아이템 복사 + estimateMapper.insertEstimateRoofItemCopy(estimateCopyRequest); + // 견적서 지붕면 회로구성 아이템 복사 + estimateMapper.insertEstimateCircuitItemCopy(estimateCopyRequest); // 도면 초기 데이타 복사(초기화 위해 필요) estimateMapper.insertEstimateDrawingItemCopy(estimateCopyRequest); // [7]. 견적서 도면 복사 (추후 개발 필요) // [8]. QSP Q.CAST SEND API - /* List resultList = new ArrayList(); estimateRequest.setObjectNo(estimateCopyRequest.getCopyObjectNo()); estimateRequest.setPlanNo(estimateCopyRequest.getCopyPlanNo()); @@ -890,7 +860,6 @@ public class EstimateService { estimateMapper.updateEstimateApi(estimateRequest); } - */ } catch (Exception e) { throw new QcastException(ErrorCode.INTERNAL_SERVER_ERROR); diff --git a/src/main/java/com/interplug/qcast/biz/estimate/dto/EstimateRequest.java b/src/main/java/com/interplug/qcast/biz/estimate/dto/EstimateRequest.java index c384a1b2..6f7e2a59 100644 --- a/src/main/java/com/interplug/qcast/biz/estimate/dto/EstimateRequest.java +++ b/src/main/java/com/interplug/qcast/biz/estimate/dto/EstimateRequest.java @@ -193,9 +193,9 @@ public class EstimateRequest { // 데이터 목록 관련 정보 @Schema(description = "지붕재 목록") - List roofList; + List roofSurfaceList; - @Schema(description = "지붕재 목록") + @Schema(description = "PC 회로구성도 목록") List circuitItemList; @Schema(description = "아이템 목록") diff --git a/src/main/java/com/interplug/qcast/biz/estimate/dto/ItemRequest.java b/src/main/java/com/interplug/qcast/biz/estimate/dto/ItemRequest.java index 44c948e1..054f7401 100644 --- a/src/main/java/com/interplug/qcast/biz/estimate/dto/ItemRequest.java +++ b/src/main/java/com/interplug/qcast/biz/estimate/dto/ItemRequest.java @@ -18,7 +18,7 @@ public class ItemRequest { private String roofItemNo; @Schema(description = "지붕재 번호") - private String roofNo; + private String roofSurfaceId; @Schema(description = "아이템 ID") private String itemId; @@ -80,6 +80,9 @@ public class ItemRequest { @Schema(description = "회로번호") private String circuitNo; + @Schema(description = "회로구성번호") + private String circuit; + @Schema(description = "회로구성도") private String circuitCfg; diff --git a/src/main/java/com/interplug/qcast/biz/estimate/dto/RoofRequest.java b/src/main/java/com/interplug/qcast/biz/estimate/dto/RoofRequest.java index 1a2aedcc..18288d5c 100644 --- a/src/main/java/com/interplug/qcast/biz/estimate/dto/RoofRequest.java +++ b/src/main/java/com/interplug/qcast/biz/estimate/dto/RoofRequest.java @@ -15,8 +15,8 @@ public class RoofRequest { @Schema(description = "플랜번호") private String planNo; - @Schema(description = "지붕재 번호") - private String roofNo; + @Schema(description = "지붕재 ID") + private String roofSurfaceId; @Schema(description = "지붕면") private String roofSurface; @@ -58,5 +58,5 @@ public class RoofRequest { private String userId; @Schema(description = "아이템 목록") - List roofItemList; + List moduleList; } diff --git a/src/main/java/com/interplug/qcast/biz/estimate/dto/RoofResponse.java b/src/main/java/com/interplug/qcast/biz/estimate/dto/RoofResponse.java index 4337db13..a1c9bd6f 100644 --- a/src/main/java/com/interplug/qcast/biz/estimate/dto/RoofResponse.java +++ b/src/main/java/com/interplug/qcast/biz/estimate/dto/RoofResponse.java @@ -14,8 +14,8 @@ public class RoofResponse { @Schema(description = "플랜번호") private String planNo; - @Schema(description = "지붕재 번호") - private String roofNo; + @Schema(description = "지붕면 ID") + private String roofSurfaceId; @Schema(description = "지붕면") private String roofSurface; diff --git a/src/main/java/com/interplug/qcast/biz/pwrGnrSimulation/PwrGnrSimService.java b/src/main/java/com/interplug/qcast/biz/pwrGnrSimulation/PwrGnrSimService.java index 48029e5e..290b2073 100644 --- a/src/main/java/com/interplug/qcast/biz/pwrGnrSimulation/PwrGnrSimService.java +++ b/src/main/java/com/interplug/qcast/biz/pwrGnrSimulation/PwrGnrSimService.java @@ -115,7 +115,7 @@ public class PwrGnrSimService { // 견적서의 지붕재 목록 조회 List roofList = pwrGnrSimMapper.selectRoofList(pwrGnrSimRequest); - int roofLength = roofList.size(); // Set의 크기 = 고유 roofNo 개수 + int roofLength = roofList.size(); // Set의 크기 = 고유 roofSurfaceId 개수 // 지붕재 정보가 없음. if (roofList == null || roofList.isEmpty()) { @@ -262,7 +262,7 @@ public class PwrGnrSimService { // 지붕별 모듈정보 셋팅 int j = 0; for (PwrGnrSimRoofResponse m : roofModuleList) { - if (data.getRoofNo().equals(m.getRoofNo())) { + if (data.getRoofSurfaceId().equals(m.getRoofSurfaceId())) { dSpecification += m.getTotSpecification(); if (j == 0) { dModuleInput1[i] = Integer.parseInt(m.getAmount()); diff --git a/src/main/java/com/interplug/qcast/biz/pwrGnrSimulation/dto/PwrGnrSimRoofResponse.java b/src/main/java/com/interplug/qcast/biz/pwrGnrSimulation/dto/PwrGnrSimRoofResponse.java index c7e2af8f..5fa61895 100644 --- a/src/main/java/com/interplug/qcast/biz/pwrGnrSimulation/dto/PwrGnrSimRoofResponse.java +++ b/src/main/java/com/interplug/qcast/biz/pwrGnrSimulation/dto/PwrGnrSimRoofResponse.java @@ -7,7 +7,7 @@ import lombok.Data; public class PwrGnrSimRoofResponse { @Schema(description = "지붕재") - private String roofNo; + private String roofSurfaceId; @Schema(description = "지붕명") private String roofSurface; diff --git a/src/main/resources/mappers/estimate/estimateMapper.xml b/src/main/resources/mappers/estimate/estimateMapper.xml index 7e7e8f84..1ef6efd6 100644 --- a/src/main/resources/mappers/estimate/estimateMapper.xml +++ b/src/main/resources/mappers/estimate/estimateMapper.xml @@ -351,7 +351,7 @@ , P.PLAN_NO , ROUND(CAST(P.SETUP_HEIGHT AS FLOAT), 2) AS SETUP_HEIGHT , P.SURFACE_TYPE - , RE.ROOF_NO + , RE.ROOF_SURFACE_ID , RE.ROOF_SURFACE , RE.ROOF_MATERIAL_ID , RE.SUPPORT_METHOD_ID @@ -383,7 +383,7 @@