견적서 초기화 API 수정

This commit is contained in:
LAPTOP-L3VE7KK2\USER 2025-01-10 16:39:59 +09:00
parent dd957f8399
commit ddfa00ea3a
5 changed files with 75 additions and 24 deletions

View File

@ -18,6 +18,9 @@ public interface EstimateMapper {
// 견적서 API 실패 목록 조회 // 견적서 API 실패 목록 조회
public List<EstimateSendResponse> selectEstimateApiFailList(); public List<EstimateSendResponse> selectEstimateApiFailList();
// 견적서 도면 아이템 목록 조회
public List<ItemResponse> selectEstimateDrawingItemList(EstimateRequest estimateRequest);
// 견적서 아이템 목록 조회 // 견적서 아이템 목록 조회
public List<ItemResponse> selectEstimateItemList(EstimateRequest estimateRequest); public List<ItemResponse> selectEstimateItemList(EstimateRequest estimateRequest);
@ -72,6 +75,9 @@ public interface EstimateMapper {
// 견적서 지붕재 아이템 등록 // 견적서 지붕재 아이템 등록
public int insertEstimateRoofItem(ItemRequest itemRequest); public int insertEstimateRoofItem(ItemRequest itemRequest);
// 견적서 도면 아이템 등록
public int insertEstimateDrawingItem(ItemRequest itemRequest);
// 견적서 아이템 등록 // 견적서 아이템 등록
public int insertEstimateItem(ItemRequest itemRequest); public int insertEstimateItem(ItemRequest itemRequest);
@ -84,6 +90,9 @@ public interface EstimateMapper {
// 견적서 지붕재 아이템 목록 삭제(물리 삭제) // 견적서 지붕재 아이템 목록 삭제(물리 삭제)
public int deleteEstimateRoofItemList(EstimateRequest estimateRequest); public int deleteEstimateRoofItemList(EstimateRequest estimateRequest);
// 견적서 도면 아이템 목록 삭제(물리 삭제)
public int deleteEstimateDrawingItemList(EstimateRequest estimateRequest);
// 견적서 아이템 목록 삭제(물리 삭제) // 견적서 아이템 목록 삭제(물리 삭제)
public int deleteEstimateItemList(EstimateRequest estimateRequest); public int deleteEstimateItemList(EstimateRequest estimateRequest);

View File

@ -401,7 +401,6 @@ public class EstimateService {
itemRequest.setItemCtgGr(itemResponse.getItemCtgGr()); itemRequest.setItemCtgGr(itemResponse.getItemCtgGr());
itemRequest.setPartAdd("0"); itemRequest.setPartAdd("0");
itemRequest.setDelFlg("0"); itemRequest.setDelFlg("0");
itemRequest.setDrawingItemFlg("1");
break; break;
} }
} }
@ -436,7 +435,6 @@ public class EstimateService {
bomItem.setItemCtgGr(itemResponse.getItemCtgGr()); bomItem.setItemCtgGr(itemResponse.getItemCtgGr());
bomItem.setPartAdd("0"); bomItem.setPartAdd("0");
bomItem.setDelFlg("0"); bomItem.setDelFlg("0");
bomItem.setDrawingItemFlg("1");
estimateBomList.add(bomItem); estimateBomList.add(bomItem);
} }
@ -582,7 +580,7 @@ public class EstimateService {
: "UNIT_PRICE"); : "UNIT_PRICE");
estimateMapper.updateEstimate(estimateRequest); estimateMapper.updateEstimate(estimateRequest);
// 도면 작성일 경우에만 지붕재 데이터 초기화 저장 // 도면 작성일 경우에만 지붕재, 도면 아이템 데이터 초기화 저장
if ("1".equals(estimateRequest.getDrawingFlg())) { if ("1".equals(estimateRequest.getDrawingFlg())) {
// 견적서 지붕면/아이템 제거 // 견적서 지붕면/아이템 제거
estimateMapper.deleteEstimateRoofList(estimateRequest); estimateMapper.deleteEstimateRoofList(estimateRequest);
@ -605,6 +603,22 @@ public class EstimateService {
estimateMapper.insertEstimateRoofItem(itemRequest); 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()); estimateRequest.setCharger(objectResponse.getReceiveUser());
} }
// [2] 도면에서 저장된 아이템 목록 조회 (BOM 컴포넌트 제외) // [2] 도면에서 저장된 아이템 목록 조회
estimateRequest.setSchBomNotExist("1"); List<ItemResponse> estimateItemList =
estimateRequest.setSchDrawingFlg("1"); estimateMapper.selectEstimateDrawingItemList(estimateRequest);
List<ItemResponse> estimateItemList = estimateMapper.selectEstimateItemList(estimateRequest);
List<ItemRequest> itemList = new ArrayList<ItemRequest>(); List<ItemRequest> itemList = new ArrayList<ItemRequest>();
for (ItemResponse itemResponse : estimateItemList) { for (ItemResponse itemResponse : estimateItemList) {
ItemRequest itemRequest = new ItemRequest(); ItemRequest itemRequest = new ItemRequest();
@ -956,7 +969,6 @@ public class EstimateService {
itemRequest.setItemCtgGr(itemResponse.getItemCtgGr()); itemRequest.setItemCtgGr(itemResponse.getItemCtgGr());
itemRequest.setPartAdd("0"); itemRequest.setPartAdd("0");
itemRequest.setDelFlg("0"); itemRequest.setDelFlg("0");
itemRequest.setDrawingItemFlg("1");
break; break;
} }
} }
@ -991,7 +1003,6 @@ public class EstimateService {
bomItem.setItemCtgGr(itemResponse.getItemCtgGr()); bomItem.setItemCtgGr(itemResponse.getItemCtgGr());
bomItem.setPartAdd("0"); bomItem.setPartAdd("0");
bomItem.setDelFlg("0"); bomItem.setDelFlg("0");
bomItem.setDrawingItemFlg("1");
estimateBomList.add(bomItem); estimateBomList.add(bomItem);
} }

View File

@ -188,9 +188,6 @@ public class EstimateRequest {
@Schema(description = "검색 - 아이템 BOM 제외여부") @Schema(description = "검색 - 아이템 BOM 제외여부")
private String schBomNotExist; private String schBomNotExist;
@Schema(description = "검색 - 도면 아이템여부")
private String schDrawingItemFlg;
// 데이터 목록 관련 정보 // 데이터 목록 관련 정보
@Schema(description = "지붕재 목록") @Schema(description = "지붕재 목록")
List<RoofRequest> roofList; List<RoofRequest> roofList;

View File

@ -89,9 +89,6 @@ public class ItemRequest {
@Schema(description = "히스토리 번호") @Schema(description = "히스토리 번호")
private String hisNo; private String hisNo;
@Schema(description = "도면 아이템여부")
private String drawingItemFlg;
@Schema(description = "삭제여부") @Schema(description = "삭제여부")
private String delFlg; private String delFlg;

View File

@ -211,6 +211,23 @@
AND P.PLAN_NO = #{planNo} AND P.PLAN_NO = #{planNo}
</select> </select>
<select id="selectEstimateDrawingItemList" parameterType="com.interplug.qcast.biz.estimate.dto.EstimateRequest" resultType="com.interplug.qcast.biz.estimate.dto.ItemResponse">
/* sqlid : com.interplug.qcast.biz.estimate.selectEstimateDrawingItemList */
SELECT
PDE.OBJECT_NO
, PDE.PLAN_NO
, PDE.DISP_ORDER
, PDE.ITEM_ID
, PDE.AMOUNT
FROM T_PART_DRAWING_ESTIMATE PDE WITH (NOLOCK)
INNER JOIN M_ITEM I WITH (NOLOCK)
ON PDE.ITEM_ID = I.ITEM_ID
WHERE PDE.OBJECT_NO = #{objectNo}
AND PDE.PLAN_NO = #{planNo}
ORDER BY
PDE.DISP_ORDER ASC
</select>
<select id="selectEstimateItemList" parameterType="com.interplug.qcast.biz.estimate.dto.EstimateRequest" resultType="com.interplug.qcast.biz.estimate.dto.ItemResponse"> <select id="selectEstimateItemList" parameterType="com.interplug.qcast.biz.estimate.dto.EstimateRequest" resultType="com.interplug.qcast.biz.estimate.dto.ItemResponse">
/* sqlid : com.interplug.qcast.biz.estimate.selectEstimateItemList */ /* sqlid : com.interplug.qcast.biz.estimate.selectEstimateItemList */
SELECT SELECT
@ -243,9 +260,6 @@
<if test='schBomNotExist != null and schBomNotExist == "1"'> <if test='schBomNotExist != null and schBomNotExist == "1"'>
AND (PE.PA_DISP_ORDER IS NULL OR PE.PA_DISP_ORDER = '') AND (PE.PA_DISP_ORDER IS NULL OR PE.PA_DISP_ORDER = '')
</if> </if>
<if test='schDrawingItemFlg != null and schDrawingItemFlg != ""'>
AND PE.DRAWING_ITEM_FLG = #{schDrawingItemFlg}
</if>
ORDER BY ORDER BY
PE.DISP_ORDER ASC PE.DISP_ORDER ASC
</select> </select>
@ -669,6 +683,28 @@
AND PLAN_NO = #{planNo} AND PLAN_NO = #{planNo}
</update> </update>
<insert id="insertEstimateDrawingItem" parameterType="com.interplug.qcast.biz.estimate.dto.ItemRequest">
/* 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}
)
</insert>
<insert id="insertEstimateItem" parameterType="com.interplug.qcast.biz.estimate.dto.ItemRequest"> <insert id="insertEstimateItem" parameterType="com.interplug.qcast.biz.estimate.dto.ItemRequest">
/* sqlid : com.interplug.qcast.biz.estimate.insertEstimateItem */ /* sqlid : com.interplug.qcast.biz.estimate.insertEstimateItem */
INSERT INTO T_PART_ESTIMATE INSERT INTO T_PART_ESTIMATE
@ -701,9 +737,6 @@
, PKG_MATERIAL_FLG , PKG_MATERIAL_FLG
, OPEN_FLG , OPEN_FLG
, ITEM_CHANGE_FLG , ITEM_CHANGE_FLG
<if test='drawingItemFlg != null and drawingItemFlg != ""'>
, DRAWING_ITEM_FLG
</if>
) VALUES ( ) VALUES (
#{objectNo} #{objectNo}
, #{planNo} , #{planNo}
@ -733,9 +766,6 @@
, #{pkgMaterialFlg} , #{pkgMaterialFlg}
, #{openFlg} , #{openFlg}
, #{itemChangeFlg} , #{itemChangeFlg}
<if test='drawingItemFlg != null and drawingItemFlg != ""'>
, #{drawingItemFlg}
</if>
) )
</insert> </insert>
@ -893,6 +923,13 @@
AND PLAN_NO = #{planNo} AND PLAN_NO = #{planNo}
</delete> </delete>
<delete id="deleteEstimateDrawingItemList" parameterType="com.interplug.qcast.biz.estimate.dto.EstimateRequest">
/* sqlid : com.interplug.qcast.biz.estimate.deleteEstimateDrawingItemList */
DELETE FROM T_PART_DRAWING_ESTIMATE
WHERE OBJECT_NO = #{objectNo}
AND PLAN_NO = #{planNo}
</delete>
<delete id="deleteEstimateItemList" parameterType="com.interplug.qcast.biz.estimate.dto.EstimateRequest"> <delete id="deleteEstimateItemList" parameterType="com.interplug.qcast.biz.estimate.dto.EstimateRequest">
/* sqlid : com.interplug.qcast.biz.estimate.deleteEstimateItemList */ /* sqlid : com.interplug.qcast.biz.estimate.deleteEstimateItemList */
DELETE FROM T_PART_ESTIMATE DELETE FROM T_PART_ESTIMATE