From af03f7f33e5cf151b686ff70775f057694c1796f Mon Sep 17 00:00:00 2001 From: Daseul Kim Date: Mon, 13 Jan 2025 10:40:35 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20PCS=20=EC=8B=9C=EB=A6=AC=EC=A6=88=20?= =?UTF-8?q?=EC=95=84=EC=9D=B4=ED=85=9C=20=EB=AA=A9=EB=A1=9D=20=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=20api=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../qcast/biz/master/MasterController.java | 8 ++ .../qcast/biz/master/MasterService.java | 114 ++++++++++-------- .../ApiPcsSeriesItemListModuleRequest.java | 18 +++ .../ApiPcsSeriesItemListPcsCodeRequest.java | 15 +++ .../dto/ApiPcsSeriesItemListRequest.java | 24 ++++ .../dto/ApiPcsSeriesItemListResponse.java | 55 +++++++++ .../biz/master/dto/ApiResultResponse.java | 2 + 7 files changed, 183 insertions(+), 53 deletions(-) create mode 100644 src/main/java/com/interplug/qcast/biz/master/dto/ApiPcsSeriesItemListModuleRequest.java create mode 100644 src/main/java/com/interplug/qcast/biz/master/dto/ApiPcsSeriesItemListPcsCodeRequest.java create mode 100644 src/main/java/com/interplug/qcast/biz/master/dto/ApiPcsSeriesItemListRequest.java create mode 100644 src/main/java/com/interplug/qcast/biz/master/dto/ApiPcsSeriesItemListResponse.java diff --git a/src/main/java/com/interplug/qcast/biz/master/MasterController.java b/src/main/java/com/interplug/qcast/biz/master/MasterController.java index dc3529de..7a724777 100644 --- a/src/main/java/com/interplug/qcast/biz/master/MasterController.java +++ b/src/main/java/com/interplug/qcast/biz/master/MasterController.java @@ -245,6 +245,14 @@ public class MasterController { return masterService.getPcsMakerList(pcsMkrCd, mixMatlNo); } + @Operation(description = "PCS 시리즈 아이템 목록을 조회한다.") + @PostMapping("/getPcsSeriesItemList") + public ApiResponse getPcsSeriesItemList( + @RequestBody ApiPcsSeriesItemListRequest pcsSeriesItemListRequest) { + return masterService.getPcsSeriesItemList(pcsSeriesItemListRequest); + } + + /** remote api group : quotation */ @Operation(description = "견적서 아이템을 조회한다.") @PostMapping("/getQuotationItem") public ApiResponse getQuotationItem( diff --git a/src/main/java/com/interplug/qcast/biz/master/MasterService.java b/src/main/java/com/interplug/qcast/biz/master/MasterService.java index 1651d6f3..bf1774be 100644 --- a/src/main/java/com/interplug/qcast/biz/master/MasterService.java +++ b/src/main/java/com/interplug/qcast/biz/master/MasterService.java @@ -1,70 +1,78 @@ package com.interplug.qcast.biz.master; import com.interplug.qcast.biz.master.dto.*; +import com.interplug.qcast.config.openfeign.OpenFeignConfig; +import java.util.List; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; -import java.util.List; - // @FeignClient(name = "master", url = "${feign.master.url}") @FeignClient(name = "master", url = "${qsp.url}/api/master") public interface MasterService { - // 지붕재 목록 조회 - @GetMapping("/roofMaterialList") - public ApiResponse getRoofMaterialList(); + // 지붕재 목록 조회 + @GetMapping("/roofMaterialList") + public ApiResponse getRoofMaterialList(); - // 모듈 타입별 아이템 목록 조회 - @GetMapping("/moduleTypeItemList") - public ApiResponse getModuleTypeItemList( - @RequestParam("arrRoofMatlCd") List roofMaterialCd); + // 모듈 타입별 아이템 목록 조회 + @GetMapping("/moduleTypeItemList") + public ApiResponse getModuleTypeItemList( + @RequestParam("arrRoofMatlCd") List roofMaterialCd); - // 가대 목록 조회 - @GetMapping("/trestle") - public ApiResponse getTrestleList( - @RequestParam(required = false) String moduleTpCd, - @RequestParam(required = false) String roofMatlCd, - @RequestParam(required = false) String raftBaseCd, - @RequestParam(required = false) String trestleMkrCd, - @RequestParam(required = false) String constMthdCd, - @RequestParam(required = false) String roofBaseCd); + // 가대 목록 조회 + @GetMapping("/trestle") + public ApiResponse getTrestleList( + @RequestParam(required = false) String moduleTpCd, + @RequestParam(required = false) String roofMatlCd, + @RequestParam(required = false) String raftBaseCd, + @RequestParam(required = false) String trestleMkrCd, + @RequestParam(required = false) String constMthdCd, + @RequestParam(required = false) String roofBaseCd); - // 시공법 목록 조회 - @GetMapping("/construction") - public ApiResponse getConstructionList( - @RequestParam String moduleTpCd, - @RequestParam String roofMatlCd, - @RequestParam String trestleMkrCd, - @RequestParam String constMthdCd, - @RequestParam String roofBaseCd, - @RequestParam String illuminationTp, - @RequestParam String instHt, - @RequestParam String stdWindSpeed, - @RequestParam String stdSnowLd, - @RequestParam String inclCd, - @RequestParam(required = false) String raftBaseCd, - @RequestParam(required = false) Integer roofPitch); + // 시공법 목록 조회 + @GetMapping("/construction") + public ApiResponse getConstructionList( + @RequestParam String moduleTpCd, + @RequestParam String roofMatlCd, + @RequestParam String trestleMkrCd, + @RequestParam String constMthdCd, + @RequestParam String roofBaseCd, + @RequestParam String illuminationTp, + @RequestParam String instHt, + @RequestParam String stdWindSpeed, + @RequestParam String stdSnowLd, + @RequestParam String inclCd, + @RequestParam(required = false) String raftBaseCd, + @RequestParam(required = false) Integer roofPitch); - // 가대 상세 조회 - @GetMapping(value = "/trestle/detail", consumes = "application/json") - public ApiResponse getTrestleDetailList( - @RequestParam String moduleTpCd, - @RequestParam String roofMatlCd, - @RequestParam String trestleMkrCd, - @RequestParam String constMthdCd, - @RequestParam String roofBaseCd, - @RequestParam String illuminationTp, - @RequestParam String instHt, - @RequestParam String stdWindSpeed, - @RequestParam String stdSnowLd, - @RequestParam String inclCd, - @RequestParam String constTp, - @RequestParam(required = false) Integer mixMatlNo, - @RequestParam(required = false) Integer roofPitch); + // 가대 상세 조회 + @GetMapping(value = "/trestle/detail", consumes = "application/json") + public ApiResponse getTrestleDetailList( + @RequestParam String moduleTpCd, + @RequestParam String roofMatlCd, + @RequestParam String trestleMkrCd, + @RequestParam String constMthdCd, + @RequestParam String roofBaseCd, + @RequestParam String illuminationTp, + @RequestParam String instHt, + @RequestParam String stdWindSpeed, + @RequestParam String stdSnowLd, + @RequestParam String inclCd, + @RequestParam String constTp, + @RequestParam(required = false) Integer mixMatlNo, + @RequestParam(required = false) Integer roofPitch); - // PCS Maker, 시리즈 목록 조회 - @GetMapping("/pcsMakerList") - public ApiResponse getPcsMakerList(@RequestParam(required = false) String pcsMkrCd, - @RequestParam(required = false) String mixMatlNo); + // PCS Maker, 시리즈 목록 조회 + @GetMapping("/pcsMakerList") + public ApiResponse getPcsMakerList( + @RequestParam(required = false) String pcsMkrCd, + @RequestParam(required = false) String mixMatlNo); + + // PCS 시리즈 아이템 목록 조회 + @PostMapping("/pcsSeriesItemList") + public ApiResponse getPcsSeriesItemList( + @RequestBody ApiPcsSeriesItemListRequest req); } diff --git a/src/main/java/com/interplug/qcast/biz/master/dto/ApiPcsSeriesItemListModuleRequest.java b/src/main/java/com/interplug/qcast/biz/master/dto/ApiPcsSeriesItemListModuleRequest.java new file mode 100644 index 00000000..1c549202 --- /dev/null +++ b/src/main/java/com/interplug/qcast/biz/master/dto/ApiPcsSeriesItemListModuleRequest.java @@ -0,0 +1,18 @@ +package com.interplug.qcast.biz.master.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@Schema(description = "PCS 시리즈 아이템 목록 조회 요청 객체 모듈아이템") +public class ApiPcsSeriesItemListModuleRequest { + @Schema(description = "제품ID", maxLength = 20) + @NotNull + public String itemId; + + @Schema(description = "혼합모듈번호", maxLength = 10) + public Integer mixMatlNo; +} diff --git a/src/main/java/com/interplug/qcast/biz/master/dto/ApiPcsSeriesItemListPcsCodeRequest.java b/src/main/java/com/interplug/qcast/biz/master/dto/ApiPcsSeriesItemListPcsCodeRequest.java new file mode 100644 index 00000000..6eb48add --- /dev/null +++ b/src/main/java/com/interplug/qcast/biz/master/dto/ApiPcsSeriesItemListPcsCodeRequest.java @@ -0,0 +1,15 @@ +package com.interplug.qcast.biz.master.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@Schema(description = "PCS 시리즈 아이템 목록 조회 요청 객체 PCS시리즈코드") +public class ApiPcsSeriesItemListPcsCodeRequest { + @Schema(description = "PCS시리즈코드", maxLength = 10) + @NotNull + public String pcsSerCd; +} diff --git a/src/main/java/com/interplug/qcast/biz/master/dto/ApiPcsSeriesItemListRequest.java b/src/main/java/com/interplug/qcast/biz/master/dto/ApiPcsSeriesItemListRequest.java new file mode 100644 index 00000000..e3d27769 --- /dev/null +++ b/src/main/java/com/interplug/qcast/biz/master/dto/ApiPcsSeriesItemListRequest.java @@ -0,0 +1,24 @@ +package com.interplug.qcast.biz.master.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import java.util.List; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@Schema(description = "PCS 시리즈 아이템 목록 조회 요청 객체") +public class ApiPcsSeriesItemListRequest { + @Schema(description = "PCS메이커코드") + @NotNull + public String pcsMkrCd; + + @Schema(description = "PCS시리즈코드 목록") + @NotNull + public List pcsSerList; + + @Schema(description = "Module Item ID") + @NotNull + public List moduleItemList; +} diff --git a/src/main/java/com/interplug/qcast/biz/master/dto/ApiPcsSeriesItemListResponse.java b/src/main/java/com/interplug/qcast/biz/master/dto/ApiPcsSeriesItemListResponse.java new file mode 100644 index 00000000..bf452520 --- /dev/null +++ b/src/main/java/com/interplug/qcast/biz/master/dto/ApiPcsSeriesItemListResponse.java @@ -0,0 +1,55 @@ +package com.interplug.qcast.biz.master.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@Schema(description = "PCS 시리즈 아이템 목록 조회 응답 객체") +public class ApiPcsSeriesItemListResponse { + @Schema(description = "PCS메이커코드") + public String pcsMkrCd; + + @Schema(description = "PCS메이커코드명") + public String pcsMkrNm; + + @Schema(description = "PCS메이커코드명(일본)") + public String pcsMkrNmJp; + + @Schema(description = "PCS시리즈멀티선택타입(멀티:MULTI, 단독:SINGLE, 단독(병설):SINGLE-P)") + public String pcsMkrMultiType; + + @Schema(description = "PCS시리즈코드") + public String pcsSerCd; + + @Schema(description = "PCS시리즈코드명") + public String pcsSerNm; + + @Schema(description = "PCS시리즈코드명(일본)") + public String pcsSerNmJp; + + @Schema(description = "PCS시리즈 병설 여부") + public String pcsSerParallelYn; + + @Schema(description = "제품ID") + public String itemId; + + @Schema(description = "제품명") + public String itemNm; + + @Schema(description = "제품명(Basic Material)") + public String goodsNo; + + @Schema(description = "정격출력(kw)") + public Integer ratedCapa; + + @Schema(description = "회로수(최대병렬수)") + public Integer paralMax; + + @Schema(description = "표준매수(모듈표준매수)") + public String moduleStdQty; + + @Schema(description = "최대매수(모듈최대매수)") + public String moduleMaxQty; +} diff --git a/src/main/java/com/interplug/qcast/biz/master/dto/ApiResultResponse.java b/src/main/java/com/interplug/qcast/biz/master/dto/ApiResultResponse.java index 801bc567..c5467a8a 100644 --- a/src/main/java/com/interplug/qcast/biz/master/dto/ApiResultResponse.java +++ b/src/main/java/com/interplug/qcast/biz/master/dto/ApiResultResponse.java @@ -1,5 +1,6 @@ package com.interplug.qcast.biz.master.dto; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Getter; import lombok.Setter; @@ -7,6 +8,7 @@ import lombok.Setter; @Getter @Setter @Schema(description = "API 결과 데이터") +@JsonIgnoreProperties(ignoreUnknown = true) public class ApiResultResponse { @Schema(description = "결과 코드") private Integer code;