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 2d1c14b0..433318ba 100644 --- a/src/main/java/com/interplug/qcast/biz/estimate/EstimateService.java +++ b/src/main/java/com/interplug/qcast/biz/estimate/EstimateService.java @@ -326,9 +326,9 @@ public class EstimateService { itemRequest.setSpecification(itemResponse.getPnowW()); itemRequest.setUnitPrice(itemResponse.getSalePrice()); itemRequest.setSalePrice(itemResponse.getSalePrice()); + itemRequest.setFileUploadFlg(itemResponse.getFileUploadFlg()); itemRequest.setPkgMaterialFlg(itemResponse.getPkgMaterialFlg()); itemRequest.setItemGroup(itemResponse.getItemGroup()); - break; } } @@ -378,11 +378,24 @@ public class EstimateService { } } for (NoteResponse noteResponse : noteItemList) { - estimateOptions += !StringUtils.isEmpty(estimateOptions) ? splitStr : ""; - estimateOptions += noteResponse.getCode(); + if (estimateOptions.indexOf(noteResponse.getCode()) < 0) { + estimateOptions += !StringUtils.isEmpty(estimateOptions) ? splitStr : ""; + estimateOptions += noteResponse.getCode(); + } } - estimateRequest.setEstimateOption(estimateOptions); + + // 아이템별 특이사항 코드 체크 + for (ItemRequest itemRequest : itemList) { + String specialNoteCd = ""; + for (NoteResponse noteResponse : noteItemList) { + if (itemRequest.getItemId().equals(noteResponse.getItemId())) { + specialNoteCd += !StringUtils.isEmpty(specialNoteCd) ? splitStr : ""; + specialNoteCd += noteResponse.getCode(); + } + } + itemRequest.setSpecialNoteCd(specialNoteCd); + } } // 아이템 목록 필수 값 체크 diff --git a/src/main/java/com/interplug/qcast/biz/estimate/dto/EstimateResponse.java b/src/main/java/com/interplug/qcast/biz/estimate/dto/EstimateResponse.java index 287f930a..8392d615 100644 --- a/src/main/java/com/interplug/qcast/biz/estimate/dto/EstimateResponse.java +++ b/src/main/java/com/interplug/qcast/biz/estimate/dto/EstimateResponse.java @@ -186,6 +186,12 @@ public class EstimateResponse { @Schema(description = "판매점 레벨") private String saleStoreLevel; + @Schema(description = "1차점 판매점명") + private String firstSaleStoreName; + + @Schema(description = "하위 판매점명") + private String agencySaleStoreName; + // 판매점 정보 @Schema(description = "고객 판매점명") private String custSaleStoreName; 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 5a1dc9f6..154ed112 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 @@ -50,9 +50,15 @@ public class ItemRequest { @Schema(description = "단가") private String salePrice; + @Schema(description = "파일첨부 필수여부") + private String fileUploadFlg; + @Schema(description = "PKG 제외상품 여부") private String pkgMaterialFlg; + @Schema(description = "아이템 특이사항 코드") + private String specialNoteCd; + @Schema(description = "아이템 변경 여부") private String itemChangeFlg; 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 300ef026..bc6df38e 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 @@ -47,9 +47,15 @@ public class ItemResponse { @Schema(description = "합산") private String saleTotPrice; + @Schema(description = "파일첨부 필수여부") + private String fileUploadFlg; + @Schema(description = "PKG 제외상품 여부") private String pkgMaterialFlg; + @Schema(description = "아이템 특이사항 코드") + private String specialNoteCd; + @Schema(description = "아이템 변경 여부") private String itemChangeFlg; @@ -59,9 +65,6 @@ public class ItemResponse { @Schema(description = "아이템 그룹코드") private String itemGroup; - @Schema(description = "파일첨부 필수여부") - private String fileUploadFlg; - @Schema(description = "모듈여부") private String moduleFlg; } diff --git a/src/main/java/com/interplug/qcast/biz/estimate/dto/NoteResponse.java b/src/main/java/com/interplug/qcast/biz/estimate/dto/NoteResponse.java index 5a752a38..49c931e6 100644 --- a/src/main/java/com/interplug/qcast/biz/estimate/dto/NoteResponse.java +++ b/src/main/java/com/interplug/qcast/biz/estimate/dto/NoteResponse.java @@ -11,6 +11,9 @@ public class NoteResponse { @Schema(description = "공통코드명") private String codeNm; + @Schema(description = "아이템 ID") + private String itemId; + @Schema(description = "견적특이사항") private String remarks; } diff --git a/src/main/resources/mappers/estimate/estimateMapper.xml b/src/main/resources/mappers/estimate/estimateMapper.xml index b5ab1c92..336a6bf3 100644 --- a/src/main/resources/mappers/estimate/estimateMapper.xml +++ b/src/main/resources/mappers/estimate/estimateMapper.xml @@ -56,6 +56,8 @@ , O.SALE_STORE_ID , SS.FIRST_AGENT_ID , SS.SALE_STORE_LEVEL + , CASE WHEN ISNULL(SS.FIRST_AGENT_ID, '') = '' THEN SS.SALE_STORE_NAME ELSE (SELECT SALE_STORE_NAME FROM M_SALES_STORE WHERE SALE_STORE_ID = SS.FIRST_AGENT_ID) END AS FIRST_SALE_STORE_NAME + , CASE WHEN ISNULL(SS.FIRST_AGENT_ID, '') = '' THEN NULL ELSE SS.SALE_STORE_NAME END AS AGENCY_SALE_STORE_NAME FROM T_PLAN P WITH (NOLOCK) INNER JOIN T_OBJECT O WITH (NOLOCK) ON P.OBJECT_NO = O.OBJECT_NO @@ -116,11 +118,13 @@ , PE.UNIT , PE.SPECIFICATION , PE.AMOUNT + , PE.UNIT_PRICE , PE.SALE_PRICE + , PE.FILE_UPLOAD_FLG , PE.PKG_MATERIAL_FLG + , PE.SPECIAL_NOTE_CD , PE.ITEM_CHANGE_FLG , I.PNOW_W - , I.FILE_UPLOAD_FLG , CASE WHEN I.ITEM_GROUP = 'MODULE_' THEN '1' ELSE '0' END AS MODULE_FLG FROM T_PART_ESTIMATE PE WITH (NOLOCK) INNER JOIN M_ITEM I WITH (NOLOCK) @@ -141,6 +145,7 @@ , I.PNOW_W , I.ITEM_GROUP , I.PKG_MATERIAL_FLG + , I.FILE_UPLOAD_FLG , ISNULL(PPM.SALE_PRICE, '0') AS SALE_PRICE FROM M_ITEM I WITH (NOLOCK) LEFT OUTER JOIN M_PRICE_PATTERN_MONEY PPM @@ -180,6 +185,7 @@ /* sqlid : com.interplug.qcast.biz.estimate.selectEstimateNoteItemList */ SELECT CL.CODE + , OSNI.ITEM_ID FROM M_COMM_L CL WITH (NOLOCK) INNER JOIN T_OBJECT_SPECIAL_NOTE OSN WITH (NOLOCK) ON CL.CODE = OSN.SPN_ATTR_CD @@ -296,7 +302,11 @@ , LAST_EDIT_USER , UNIT_PRICE , SALE_PRICE + , FILE_UPLOAD_FLG , PKG_MATERIAL_FLG + + , SPECIAL_NOTE_CD + , ITEM_CHANGE_FLG ) VALUES ( #{objectNo} @@ -316,7 +326,11 @@ , #{userId} , #{unitPrice} , #{salePrice} + , #{fileUploadFlg} , #{pkgMaterialFlg} + + , #{specialNoteCd} + , #{itemChangeFlg} )