From 5efa39fe64929aa116fcae4e8e2fe71dfafea1e0 Mon Sep 17 00:00:00 2001 From: "LAPTOP-L3VE7KK2\\USER" Date: Mon, 13 Jan 2025 15:01:27 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B2=AC=EC=A0=81=EC=84=9C=20API=20=EC=88=98?= =?UTF-8?q?=EC=A0=95(=ED=9A=8C=EB=A1=9C=EA=B5=AC=EC=84=B1=EB=8F=84=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20=EA=B0=9C=EB=B0=9C)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../qcast/batch/JobLauncherController.java | 6 +- .../biz/estimate/EstimateController.java | 2 +- .../qcast/biz/estimate/EstimateMapper.java | 8 +- .../qcast/biz/estimate/EstimateService.java | 47 +++++--- .../biz/estimate/dto/EstimateRequest.java | 3 + .../qcast/biz/estimate/dto/ItemRequest.java | 10 +- .../qcast/biz/estimate/dto/ItemResponse.java | 3 + .../biz/estimate/dto/RoofInfoResponse.java | 4 +- .../qcast/biz/estimate/dto/RoofResponse.java | 6 - .../mappers/estimate/estimateMapper.xml | 105 ++++++++++-------- .../pwrGnrSimulation/pwrGnrSimMapper.xml | 6 +- ...el_download_quotation_detail_template.xlsx | Bin 46648 -> 46602 bytes 12 files changed, 123 insertions(+), 77 deletions(-) diff --git a/src/main/java/com/interplug/qcast/batch/JobLauncherController.java b/src/main/java/com/interplug/qcast/batch/JobLauncherController.java index a17f74ce..15b3e862 100644 --- a/src/main/java/com/interplug/qcast/batch/JobLauncherController.java +++ b/src/main/java/com/interplug/qcast/batch/JobLauncherController.java @@ -3,6 +3,7 @@ package com.interplug.qcast.batch; import java.util.Date; import java.util.HashMap; import java.util.Map; +import lombok.RequiredArgsConstructor; import org.springframework.batch.core.BatchStatus; import org.springframework.batch.core.ExitStatus; import org.springframework.batch.core.Job; @@ -19,7 +20,6 @@ import org.springframework.scheduling.annotation.Scheduled; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; -import lombok.RequiredArgsConstructor; @RestController @RequiredArgsConstructor @@ -310,7 +310,7 @@ public class JobLauncherController { * @throws JobParametersInvalidException * @throws JobRestartException */ - @Scheduled(cron = "1 0 0 * * *") + @Scheduled(cron = "0 05 04 * * *") public String planConfirmJob() throws JobInstanceAlreadyCompleteException, JobExecutionAlreadyRunningException, JobParametersInvalidException, JobRestartException { @@ -339,7 +339,7 @@ public class JobLauncherController { * @throws JobParametersInvalidException * @throws JobRestartException */ - @Scheduled(cron = "1 20 0 * * *") + @Scheduled(cron = "0 20 04 * * *") public String estimateSyncJob() throws JobInstanceAlreadyCompleteException, JobExecutionAlreadyRunningException, JobParametersInvalidException, JobRestartException { diff --git a/src/main/java/com/interplug/qcast/biz/estimate/EstimateController.java b/src/main/java/com/interplug/qcast/biz/estimate/EstimateController.java index 65fa6884..95e81f8a 100644 --- a/src/main/java/com/interplug/qcast/biz/estimate/EstimateController.java +++ b/src/main/java/com/interplug/qcast/biz/estimate/EstimateController.java @@ -79,7 +79,7 @@ public class EstimateController { return estimateService.updateEstimateReset(estimateRequest); } - @Operation(description = "견적서를 잠금여부를 저장한다.") + @Operation(description = "견적서 잠금여부를 저장한다.") @PostMapping("/save-estimate-lock") @ResponseStatus(HttpStatus.CREATED) public void updateEstimateLock(@RequestBody EstimateRequest estimateRequest) throws Exception { 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 57d0ed80..fc7acf1a 100644 --- a/src/main/java/com/interplug/qcast/biz/estimate/EstimateMapper.java +++ b/src/main/java/com/interplug/qcast/biz/estimate/EstimateMapper.java @@ -40,7 +40,7 @@ public interface EstimateMapper { public List selectEstimateRoofItemList(EstimateRequest estimateRequest); // 견적서 지붕재 PC 목록 조회 - public List selectEstimateRoofPcList(EstimateRequest estimateRequest); + public List selectEstimateCircuitItemList(EstimateRequest estimateRequest); // 견적서 지붕재 용량 목록 조회 public List selectEstimateRoofVolList(EstimateRequest estimateRequest); @@ -78,6 +78,9 @@ public interface EstimateMapper { // 견적서 지붕재 아이템 등록 public int insertEstimateRoofItem(ItemRequest itemRequest); + // 견적서 지붕재 회로구성 아이템 등록 + public int insertEstimateCircuitItem(ItemRequest itemRequest); + // 견적서 도면 아이템 등록 public int insertEstimateDrawingItem(ItemRequest itemRequest); @@ -93,6 +96,9 @@ public interface EstimateMapper { // 견적서 지붕재 아이템 목록 삭제(물리 삭제) public int deleteEstimateRoofItemList(EstimateRequest estimateRequest); + // 견적서 회로구성 아이템 목록 삭제(물리 삭제) + public int deleteEstimateCircuitItemList(EstimateRequest estimateRequest); + // 견적서 도면 아이템 목록 삭제(물리 삭제) public int deleteEstimateDrawingItemList(EstimateRequest estimateRequest); 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 3a0a1ceb..ef343f3f 100644 --- a/src/main/java/com/interplug/qcast/biz/estimate/EstimateService.java +++ b/src/main/java/com/interplug/qcast/biz/estimate/EstimateService.java @@ -272,14 +272,10 @@ public class EstimateService { ErrorCode.INVALID_INPUT_VALUE, message.getMessage("common.message.required.data", "Sale Store ID")); } - if (StringUtils.isEmpty(estimateRequest.getSapSalesStoreCd())) { - throw new QcastException( - ErrorCode.INVALID_INPUT_VALUE, - message.getMessage("common.message.required.data", "Sap Sale Store Code")); - } String splitStr = "、"; List roofList = new ArrayList(); + List circuitItemList = estimateRequest.getCircuitItemList(); List itemList = estimateRequest.getItemList(); estimateRequest.setTempFlg("0"); @@ -582,9 +578,10 @@ public class EstimateService { // 도면 작성일 경우에만 지붕재, 도면 아이템 데이터 초기화 후 저장 if ("1".equals(estimateRequest.getDrawingFlg())) { - // 견적서 지붕면/아이템 제거 + // 견적서 지붕면/아이템 및 PC 회로구성도 제거 estimateMapper.deleteEstimateRoofList(estimateRequest); estimateMapper.deleteEstimateRoofItemList(estimateRequest); + estimateMapper.deleteEstimateCircuitItemList(estimateRequest); // 견적서 지붕면/아이템 신규 추가 for (RoofRequest roofRequest : roofList) { @@ -604,6 +601,16 @@ public class EstimateService { } } + // 견적서 회로구성 아이템 신규 추가 + for (ItemRequest circuitItemRequest : circuitItemList) { + circuitItemRequest.setObjectNo(estimateRequest.getObjectNo()); + circuitItemRequest.setPlanNo(estimateRequest.getPlanNo()); + circuitItemRequest.setItemId(circuitItemRequest.getItemId()); + circuitItemRequest.setCircuitCfg(circuitItemRequest.getCircuitCfg()); + + estimateMapper.insertEstimateCircuitItem(circuitItemRequest); + } + // 견적서 도면 아이템 제거 estimateMapper.deleteEstimateDrawingItemList(estimateRequest); // 견적서 도면 아이템 등록 @@ -806,6 +813,8 @@ public class EstimateService { // [6]. 견적서 지붕재 복사 List roofList = estimateMapper.selectEstimateRoofList(estimateRequest); List roofItemList = estimateMapper.selectEstimateRoofItemList(estimateRequest); + List circuitItemList = + estimateMapper.selectEstimateCircuitItemList(estimateRequest); for (RoofResponse roofResponse : roofList) { List roofItemList2 = new ArrayList(); @@ -848,6 +857,17 @@ public class EstimateService { } } + 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); + } + // [7]. 견적서 도면 복사 (추후 개발 필요) // [8]. QSP Q.CAST SEND API @@ -1273,7 +1293,8 @@ public class EstimateService { // 지붕재 목록 조회 RoofInfoResponse roofInfoResponse = new RoofInfoResponse(); List roofList = estimateMapper.selectEstimateRoofList(estimateRequest); - List roofPcList = estimateMapper.selectEstimateRoofPcList(estimateRequest); + List circuitItemList = + estimateMapper.selectEstimateCircuitItemList(estimateRequest); estimateRequest.setSchItemGroup("MODULE_"); List roofVolList = estimateMapper.selectEstimateRoofVolList(estimateRequest); @@ -1300,7 +1321,7 @@ public class EstimateService { roofInfoResponse.setModuleTotVolKw(String.valueOf(moduleTotVolKw)); roofInfoResponse.setRoofList(roofList); - roofInfoResponse.setRoofPcList(roofPcList); + roofInfoResponse.setCircuitItemList(circuitItemList); roofInfoResponse.setRoofVolList(roofVolList); // 인증용량 구하기 (지붕면마다 모듈과 PCS의 총 용량을 서로 비교해 낮은쪽 용량으로 합산) @@ -1885,17 +1906,17 @@ public class EstimateService { elm = doc.getElementById("notStandItemList_detail"); elm.append(sb.toString()); - if (data.getRoofInfo().getRoofPcList() != null) { + if (data.getRoofInfo().getCircuitItemList() != null) { no = 1; sb = new StringBuilder(); - for (RoofResponse roofResponse : data.getRoofInfo().getRoofPcList()) { + for (ItemResponse itemResponse : data.getRoofInfo().getCircuitItemList()) { sb.append(""); sb.append("" + (no++) + ""); sb.append( "" - + StringUtils.defaultString(roofResponse.getItemNo()) - + "[" - + roofResponse.getPcModuleAmount() + + StringUtils.defaultString(itemResponse.getItemNo()) + + " [" + + itemResponse.getCircuitCfg() + "]" + ""); sb.append(""); 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 76a74134..c384a1b2 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 @@ -195,6 +195,9 @@ public class EstimateRequest { @Schema(description = "지붕재 목록") List roofList; + @Schema(description = "지붕재 목록") + List circuitItemList; + @Schema(description = "아이템 목록") List itemList; 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 55dd700f..44c948e1 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 @@ -14,6 +14,9 @@ public class ItemRequest { @Schema(description = "플랜번호") private String planNo; + @Schema(description = "지붕재 아이템 번호") + private String roofItemNo; + @Schema(description = "지붕재 번호") private String roofNo; @@ -74,8 +77,11 @@ public class ItemRequest { @Schema(description = "PC 아이템 ID") private String pcItemId; - @Schema(description = "회로") - private String circuit; + @Schema(description = "회로번호") + private String circuitNo; + + @Schema(description = "회로구성도") + private String circuitCfg; @Schema(description = "W") private String pnowW; diff --git a/src/main/java/com/interplug/qcast/biz/estimate/dto/ItemResponse.java b/src/main/java/com/interplug/qcast/biz/estimate/dto/ItemResponse.java index 7244fb32..9b4d95e3 100644 --- a/src/main/java/com/interplug/qcast/biz/estimate/dto/ItemResponse.java +++ b/src/main/java/com/interplug/qcast/biz/estimate/dto/ItemResponse.java @@ -79,4 +79,7 @@ public class ItemResponse { @Schema(description = "모듈여부") private String moduleFlg; + + @Schema(description = "회로구성도") + private String circuitCfg; } diff --git a/src/main/java/com/interplug/qcast/biz/estimate/dto/RoofInfoResponse.java b/src/main/java/com/interplug/qcast/biz/estimate/dto/RoofInfoResponse.java index 4c035da5..6e12bb64 100644 --- a/src/main/java/com/interplug/qcast/biz/estimate/dto/RoofInfoResponse.java +++ b/src/main/java/com/interplug/qcast/biz/estimate/dto/RoofInfoResponse.java @@ -21,8 +21,8 @@ public class RoofInfoResponse { @Schema(description = "지붕면 목록") private List roofList; - @Schema(description = "지붕면 파워컨디셔너 목록") - private List roofPcList; + @Schema(description = "파워컨디셔너 목록") + private List circuitItemList; @Schema(description = "지붕면 용량 목록") private List roofVolList; 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 927a570a..4337db13 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 @@ -91,10 +91,4 @@ public class RoofResponse { @Schema(description = "PC 아이템 ID") private String pcItemId; - - @Schema(description = "회로") - private String circuit; - - @Schema(description = "Pc 모듈 매수") - private String pcModuleAmount; } diff --git a/src/main/resources/mappers/estimate/estimateMapper.xml b/src/main/resources/mappers/estimate/estimateMapper.xml index 6a9dc141..aa26bcbe 100644 --- a/src/main/resources/mappers/estimate/estimateMapper.xml +++ b/src/main/resources/mappers/estimate/estimateMapper.xml @@ -327,7 +327,7 @@ , ISNULL(( SELECT SUM((AMOUNT * CAST(ISNULL(SPECIFICATION, 0) AS FLOAT) / 1000)) - FROM T_ROOF_ITEM_ESTIMATE (NOLOCK) + FROM T_PART_ROOF_ITEM_ESTIMATE (NOLOCK) WHERE OBJECT_NO = PE.OBJECT_NO AND PLAN_NO = PE.PLAN_NO AND PC_ITEM_ID = PE.ITEM_ID @@ -364,7 +364,7 @@ , ISNULL(C2.CODE_NM, '') AS SUPPORT_METHOD_NAME , ISNULL(C3.CODE_NM, '') AS CONSTRUCT_SPECIFICATION_NAME FROM T_PLAN P WITH (NOLOCK) - INNER JOIN T_ROOF_ESTIMATE RE WITH (NOLOCK) + INNER JOIN T_PART_ROOF_ESTIMATE RE WITH (NOLOCK) ON P.OBJECT_NO = RE.OBJECT_NO AND P.PLAN_NO = RE.PLAN_NO LEFT OUTER JOIN M_COMM_L C1 WITH (NOLOCK) @@ -392,48 +392,26 @@ , ISNULL(PIE.SPECIFICATION, '') AS SPECIFICATION , PIE.AMOUNT , PIE.PC_ITEM_ID - FROM T_ROOF_ITEM_ESTIMATE PIE WITH (NOLOCK) + FROM T_PART_ROOF_ITEM_ESTIMATE PIE WITH (NOLOCK) WHERE PIE.OBJECT_NO = #{objectNo} AND PIE.PLAN_NO = #{planNo} ORDER BY PIE.ROOF_NO - + /* sqlid : com.interplug.qcast.biz.estimate.selectEstimateCircuitItemList */ SELECT - T.ITEM_ID - , T.ITEM_NO - , SUM(T.AMOUNT) AS AMOUNT - , SUM(T.PC_AMOUNT) AS PC_MODULE_AMOUNT - FROM - ( - SELECT - P.OBJECT_NO - , P.PLAN_NO - , RE.ROOF_NO - , RE.ROOF_SURFACE - , ROUND(CAST(RE.SLOPE AS FLOAT), 2) AS SLOPE - , RIE.AMOUNT - , CAST(RIE.SPECIFICATION AS FLOAT) SPECIFICATION - , I.ITEM_ID - , I.ITEM_NO - , I.ITEM_GROUP - , (SELECT SUM(AMOUNT) FROM T_ROOF_ITEM_ESTIMATE WHERE ROOF_NO = RIE.ROOF_NO AND OBJECT_NO = RIE.OBJECT_NO AND PLAN_NO = RIE.PLAN_NO AND PC_ITEM_ID = RIE.ITEM_ID) AS PC_AMOUNT - FROM T_PLAN P WITH (NOLOCK) - INNER JOIN T_ROOF_ESTIMATE RE WITH (NOLOCK) - ON P.OBJECT_NO = RE.OBJECT_NO - AND P.PLAN_NO = RE.PLAN_NO - INNER JOIN T_ROOF_ITEM_ESTIMATE RIE WITH (NOLOCK) - ON RE.ROOF_NO = RIE.ROOF_NO - AND RE.OBJECT_NO = RE.OBJECT_NO - AND RE.PLAN_NO = RE.PLAN_NO - INNER JOIN M_ITEM I WITH (NOLOCK) - ON RIE.ITEM_ID = I.ITEM_ID - WHERE P.OBJECT_NO = #{objectNo} - AND P.PLAN_NO = #{planNo} - AND I.ITEM_GROUP = 'PC_' - ) T - GROUP BY T.ITEM_ID, T.ITEM_NO + PE.ITEM_ID + , PE.ITEM_NO + , PE.ITEM_NAME + , PCIE.CIRCUIT_CFG + FROM T_PART_ESTIMATE PE WITH (NOLOCK) + INNER JOIN T_PART_CIRCUIT_ITEM_ESTIMATE PCIE WITH (NOLOCK) + ON PE.OBJECT_NO = PCIE.OBJECT_NO + AND PE.PLAN_NO = PCIE.PLAN_NO + AND PE.ITEM_ID = PCIE.ITEM_ID + WHERE PE.OBJECT_NO = #{objectNo} + AND PE.PLAN_NO = #{planNo} @@ -85,8 +85,8 @@ , A.CLASS_TYPE , A.AZIMUTH , (CASE WHEN A.CLASS_TYPE = 0 THEN A.SLOPE ELSE A.ANGLE END) AS SLOPE_ANGLE - FROM T_ROOF_ESTIMATE A WITH (NOLOCK) - INNER JOIN T_ROOF_ITEM_ESTIMATE B WITH (NOLOCK) + FROM T_PART_ROOF_ESTIMATE A WITH (NOLOCK) + INNER JOIN T_PART_ROOF_ITEM_ESTIMATE B WITH (NOLOCK) ON A.OBJECT_NO = B.OBJECT_NO AND A.PLAN_NO = B.PLAN_NO AND A.ROOF_NO = B.ROOF_NO diff --git a/src/main/resources/template/excel/excel_download_quotation_detail_template.xlsx b/src/main/resources/template/excel/excel_download_quotation_detail_template.xlsx index e3f701872fe21d7666ba519b1b5a95726df9f97a..0ae1185bade9ea3ae571091d3ebad7c3bbcf1db2 100644 GIT binary patch delta 19518 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 Y6;MSZkPR?cuLK$dphSKMvi!*Yzg%>shyVZp delta 19695 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