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 f6a23fa4..72cf152a 100644 --- a/src/main/java/com/interplug/qcast/biz/estimate/EstimateMapper.java +++ b/src/main/java/com/interplug/qcast/biz/estimate/EstimateMapper.java @@ -18,6 +18,9 @@ public interface EstimateMapper { // 견적서 API 실패 목록 조회 public List selectEstimateApiFailList(); + // 견적서 도면 아이템 목록 조회 + public List selectEstimateDrawingItemList(EstimateRequest estimateRequest); + // 견적서 아이템 목록 조회 public List selectEstimateItemList(EstimateRequest estimateRequest); @@ -72,6 +75,9 @@ public interface EstimateMapper { // 견적서 지붕재 아이템 등록 public int insertEstimateRoofItem(ItemRequest itemRequest); + // 견적서 도면 아이템 등록 + public int insertEstimateDrawingItem(ItemRequest itemRequest); + // 견적서 아이템 등록 public int insertEstimateItem(ItemRequest itemRequest); @@ -84,6 +90,9 @@ public interface EstimateMapper { // 견적서 지붕재 아이템 목록 삭제(물리 삭제) public int deleteEstimateRoofItemList(EstimateRequest estimateRequest); + // 견적서 도면 아이템 목록 삭제(물리 삭제) + public int deleteEstimateDrawingItemList(EstimateRequest estimateRequest); + // 견적서 아이템 목록 삭제(물리 삭제) public int deleteEstimateItemList(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 3ae17c54..74d19b65 100644 --- a/src/main/java/com/interplug/qcast/biz/estimate/EstimateService.java +++ b/src/main/java/com/interplug/qcast/biz/estimate/EstimateService.java @@ -401,7 +401,6 @@ public class EstimateService { itemRequest.setItemCtgGr(itemResponse.getItemCtgGr()); itemRequest.setPartAdd("0"); itemRequest.setDelFlg("0"); - itemRequest.setDrawingItemFlg("1"); break; } } @@ -436,7 +435,6 @@ public class EstimateService { bomItem.setItemCtgGr(itemResponse.getItemCtgGr()); bomItem.setPartAdd("0"); bomItem.setDelFlg("0"); - bomItem.setDrawingItemFlg("1"); estimateBomList.add(bomItem); } @@ -582,7 +580,7 @@ public class EstimateService { : "UNIT_PRICE"); estimateMapper.updateEstimate(estimateRequest); - // 도면 작성일 경우에만 지붕재 데이터 초기화 후 저장 + // 도면 작성일 경우에만 지붕재, 도면 아이템 데이터 초기화 후 저장 if ("1".equals(estimateRequest.getDrawingFlg())) { // 견적서 지붕면/아이템 제거 estimateMapper.deleteEstimateRoofList(estimateRequest); @@ -605,6 +603,22 @@ public class EstimateService { estimateMapper.insertEstimateRoofItem(itemRequest); } } + + // 견적서 도면 아이템 제거 + estimateMapper.deleteEstimateDrawingItemList(estimateRequest); + // 견적서 도면 아이템 등록 + for (ItemRequest itemRequest : itemList) { + itemRequest.setObjectNo(estimateRequest.getObjectNo()); + itemRequest.setPlanNo(estimateRequest.getPlanNo()); + itemRequest.setAmount( + !StringUtils.isEmpty(itemRequest.getAmount()) ? itemRequest.getAmount() : "0"); + itemRequest.setUserId(estimateRequest.getUserId()); + + // BOM 컴포넌트는 제외하고 등록 + if (StringUtils.isEmpty(itemRequest.getPaDispOrder())) { + estimateMapper.insertEstimateDrawingItem(itemRequest); + } + } } // 견적서 모든 아이템 제거 @@ -908,10 +922,9 @@ public class EstimateService { estimateRequest.setCharger(objectResponse.getReceiveUser()); } - // [2] 도면에서 저장된 아이템 목록 조회 (BOM 컴포넌트 제외) - estimateRequest.setSchBomNotExist("1"); - estimateRequest.setSchDrawingFlg("1"); - List estimateItemList = estimateMapper.selectEstimateItemList(estimateRequest); + // [2] 도면에서 저장된 아이템 목록 조회 + List estimateItemList = + estimateMapper.selectEstimateDrawingItemList(estimateRequest); List itemList = new ArrayList(); for (ItemResponse itemResponse : estimateItemList) { ItemRequest itemRequest = new ItemRequest(); @@ -956,7 +969,6 @@ public class EstimateService { itemRequest.setItemCtgGr(itemResponse.getItemCtgGr()); itemRequest.setPartAdd("0"); itemRequest.setDelFlg("0"); - itemRequest.setDrawingItemFlg("1"); break; } } @@ -991,7 +1003,6 @@ public class EstimateService { bomItem.setItemCtgGr(itemResponse.getItemCtgGr()); bomItem.setPartAdd("0"); bomItem.setDelFlg("0"); - bomItem.setDrawingItemFlg("1"); estimateBomList.add(bomItem); } 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 13aeab39..b5bae654 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 @@ -188,9 +188,6 @@ public class EstimateRequest { @Schema(description = "검색 - 아이템 BOM 제외여부") private String schBomNotExist; - @Schema(description = "검색 - 도면 아이템여부") - private String schDrawingItemFlg; - // 데이터 목록 관련 정보 @Schema(description = "지붕재 목록") List roofList; 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 d2c5c7bf..55dd700f 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 @@ -89,9 +89,6 @@ public class ItemRequest { @Schema(description = "히스토리 번호") private String hisNo; - @Schema(description = "도면 아이템여부") - private String drawingItemFlg; - @Schema(description = "삭제여부") private String delFlg; diff --git a/src/main/resources/mappers/estimate/estimateMapper.xml b/src/main/resources/mappers/estimate/estimateMapper.xml index d165566a..0c151183 100644 --- a/src/main/resources/mappers/estimate/estimateMapper.xml +++ b/src/main/resources/mappers/estimate/estimateMapper.xml @@ -211,6 +211,23 @@ AND P.PLAN_NO = #{planNo} + + @@ -669,6 +683,28 @@ AND PLAN_NO = #{planNo} + + /* sqlid : com.interplug.qcast.biz.estimate.insertEstimateDrawingItem */ + INSERT INTO T_PART_DRAWING_ESTIMATE + ( + OBJECT_NO + , PLAN_NO + , DISP_ORDER + , ITEM_ID + , AMOUNT + , LAST_EDIT_DATETIME + , LAST_EDIT_USER + ) VALUES ( + #{objectNo} + , #{planNo} + , #{dispOrder} + , #{itemId} + , #{amount} + , GETDATE() + , #{userId} + ) + + /* sqlid : com.interplug.qcast.biz.estimate.insertEstimateItem */ INSERT INTO T_PART_ESTIMATE @@ -701,9 +737,6 @@ , PKG_MATERIAL_FLG , OPEN_FLG , ITEM_CHANGE_FLG - - , DRAWING_ITEM_FLG - ) VALUES ( #{objectNo} , #{planNo} @@ -733,9 +766,6 @@ , #{pkgMaterialFlg} , #{openFlg} , #{itemChangeFlg} - - , #{drawingItemFlg} - ) @@ -893,6 +923,13 @@ AND PLAN_NO = #{planNo} + + /* sqlid : com.interplug.qcast.biz.estimate.deleteEstimateDrawingItemList */ + DELETE FROM T_PART_DRAWING_ESTIMATE + WHERE OBJECT_NO = #{objectNo} + AND PLAN_NO = #{planNo} + + /* sqlid : com.interplug.qcast.biz.estimate.deleteEstimateItemList */ DELETE FROM T_PART_ESTIMATE