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}
)