From c888b564be83cff32f510cd645fa58b0a02a8b46 Mon Sep 17 00:00:00 2001 From: "DESKTOP-6E8S9S5\\LEE" Date: Fri, 12 Jun 2026 13:55:54 +0900 Subject: [PATCH 1/5] =?UTF-8?q?=EA=B2=AC=EC=A0=81=EC=84=9C=20=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=20API=20=EA=B2=80=EC=83=89=20=EC=A1=B0=EA=B1=B4=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../qcast/biz/estimate/EstimateService.java | 4 ---- .../mappers/estimate/estimateMapper.xml | 19 ++++++------------- 2 files changed, 6 insertions(+), 17 deletions(-) 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 253d7556..0773d437 100644 --- a/src/main/java/com/interplug/qcast/biz/estimate/EstimateService.java +++ b/src/main/java/com/interplug/qcast/biz/estimate/EstimateService.java @@ -3199,10 +3199,6 @@ public class EstimateService { SimulationEstimateListResponse response = new SimulationEstimateListResponse(); - if (!"T01".equals(objectRequest.getSaleStoreId())) { - objectRequest.setSchSelSaleStoreId(""); - } - // 견적서 목록 조회 List objectList = estimateMapper.selectSimulationEstimateList(objectRequest); diff --git a/src/main/resources/mappers/estimate/estimateMapper.xml b/src/main/resources/mappers/estimate/estimateMapper.xml index e8d80aa4..a21600c8 100644 --- a/src/main/resources/mappers/estimate/estimateMapper.xml +++ b/src/main/resources/mappers/estimate/estimateMapper.xml @@ -1549,7 +1549,7 @@ + + AND B.ESTIMATE_DETAIL_CREATE_DATE =]]> #{sch_startDt} + ' 00:00:00' AND B.ESTIMATE_DETAIL_CREATE_DATE #{sch_endDt} + ' 23:59:59' @@ -190,6 +198,22 @@ AND G.BUSINESS_CHARGER_CD = #{sch_businessChargerCd} + + + + /* sqlid : selectQuotItemExclDownDataByObjectNos (견적엑셀다운로드 품목단위 데이터 조회 - 페이징용) */ + SELECT + C.OBJECT_NO + , B.PLAN_NO + , C.OBJECT_NAME + , H.SALE_STORE_NAME AS SOLD_SALE_STORE_NAME + , D.SALE_STORE_NAME + , I.PREF_NAME + , K.BUSINESS_TEAM + , C.SALE_STORE_ID + , C.ESTIMATE_DETAIL_CREATE_DATE + , A.ITEM_NO + , A.ITEM_NAME + , A.AMOUNT + , ( + SELECT TOP 1 T.SALE_PRICE + FROM M_SALE_STORE_PRICE T + WHERE T.SALE_STORE_ID = D.SALE_STORE_ID + AND T.ITEM_ID = A.ITEM_ID + ) AS SALE_PRICE + FROM T_OBJECT C + LEFT OUTER JOIN T_OBJECT_INFO OI + ON OI.OBJECT_NO = C.OBJECT_NO + LEFT OUTER JOIN M_SALES_STORE D + ON C.SALE_STORE_ID = D.SALE_STORE_ID + LEFT OUTER JOIN T_PLAN B + ON C.OBJECT_NO = B.OBJECT_NO + LEFT OUTER JOIN T_PART_ESTIMATE A + ON A.OBJECT_NO = B.OBJECT_NO + AND A.PLAN_NO = B.PLAN_NO + LEFT OUTER JOIN M_SALES_STORE H + ON D.FIRST_AGENT_ID = H.SALE_STORE_ID + AND H.DEL_FLG = 0 + LEFT OUTER JOIN T_SIMULATION_PREFECTURE I + ON C.PREF_ID = I.PREF_ID + LEFT OUTER JOIN M_BUSINESS_CHARGER J + ON D.BUSINESS_CHARGER_CD = J.BUSINESS_CHARGER_CD + AND J.DEL_FLG = 0 + LEFT OUTER JOIN M_BUSINESS_TEAM K + ON J.BUSINESS_TEAM_CD = K.BUSINESS_TEAM_CD + AND K.DEL_FLG = 0 + WHERE (C.DEL_FLG = 0 OR (OI.SOURCE_ORIGIN = 'QCAST_III' AND OI.ORG_DEL_FLG = '0')) + AND D.DEL_FLG = 0 + AND B.DEL_FLG = 0 + AND C.OBJECT_NO IN + + #{objectNo} + + + /* sqlid : com.interplug.qcast.api.excelDown.selectQuotPlanExclDownData (견적엑셀다운로드 플랜정보 데이터 조회) */ - SELECT - B.OBJECT_NO /* 물건번호 物件番号 */ - , A.PLAN_NO /* 플랜 案件番号 */ - , CONVERT(varchar, A.LAST_EDIT_DATETIME, 120) AS LAST_EDIT_DATETIME /* 플랜정보 최신 갱신일시 プラン情報最新更新日時 */ - , G.SALE_STORE_NAME /* 판매대리점 販売代理店 */ - , Y.SALE_STORE_NAME AS SOLD_SALE_STORE_NAME /* 1차대리점명 一次代理店名 */ - , Y.SALE_STORE_ID AS SOLD_SALE_STORE_ID /* 1차대리점ID 一次代理店ID */ - , B.OBJECT_NAME /* 물건명 物件名 */ - , CASE WHEN A.NORTH_ARRANGEMENT = 1 THEN '有' ELSE '無' END AS NORTH_ARRANGEMENT /* 북면배치 北面配置 */ - , CAST(D.WORK_NO AS varchar) + ' ' + D.WORK_PROGRESS_STATUS_NAME AS WORK_PROGRESS_STATUS_NAME /* 수주예상 受注見込 */ - , B.ZIP_NO /* 우편번호 郵便番号 */ - , E.PREF_NAME /* 도도부현 都道府県 */ - , B.ADDRESS /* 주소 住所 */ - , A.WEATHER_POINT /* 가상지점 気象地点 */ - , CAST(A.CAPACITY AS varchar) + 'kw' AS CAPACITY /* 용량 容量 */ - , B.REMARKS /* 비고 備考 */ - , CONVERT(varchar, B.ESTIMATE_DETAIL_CREATE_DATE, 120) AS ESTIMATE_DETAIL_CREATE_DATE /* 견적 작성일 見積作成日 */ - , CONVERT(varchar, B.SPECIFICATION_CONFIRM_DATE, 120) AS SPECIFICATION_CONFIRM_DATE /* 사양 확인일 仕様確認日 */ - , COALESCE(L.BUSINESS_CHARGER, '') AS BUSINESS_CHARGER /* 영업 담당자(판매점 등록) 営業担当者_販売店登録 */ - , COALESCE(M.BUSINESS_TEAM, '') AS BUSINESS_TEAM /* 영업팀(판매점 등록) 営業チーム_販売店登録 */ - , (CASE WHEN UPPER(#{langCd}) = 'JA' THEN C1.CODE_JP - ELSE C1.CODE_NM - END) AS OBJECT_STATUS /* 주택구분 住宅区分 */ - , CONVERT(varchar, B.MANAGER_LAST_EDIT_DATETIME, 120) AS MANAGER_LAST_EDIT_DATETIME /* 관리자 최종 갱신일시管理者最終更新日時 */ - , X.SALE_STORE_ID /* 최종갱신판매점ID 最終更新販売店ID */ - , A.LAST_EDIT_USER /* 최종갱신자 最終更新者 */ - , (CASE WHEN UPPER(#{langCd}) = 'JA' THEN C2.CODE_JP - ELSE C2.CODE_NM - END) AS ROF_TYP /* 지붕종류 屋根種類 */ - , CASE WHEN A.DIFF_ROOF_ENABLED = 1 THEN A.ROOF_MATERIAL_ID_MULTI ELSE COALESCE((CASE WHEN UPPER(#{langCd}) = 'JA' THEN C3.CODE_JP - ELSE C3.CODE_NM - END), '') END AS ROOF_MATERIAL_NM /* 지붕재 屋根材 */ - , CASE WHEN A.DIFF_ROOF_ENABLED = 1 THEN A.SUPPORT_MEAKER_MULTI ELSE A.SUPPORT_MEAKER END AS SUPPORT_MEAKER_NM /* 가대메이커 架台メーカ */ - , CASE WHEN A.DIFF_ROOF_ENABLED = 1 THEN A.SUPPORT_METHOD_ID_MULTI ELSE COALESCE(P.NAME, '') END AS SUPPORT_METHOD_NM /* 지지금구 支持金具 */ - , A.SNOWFALL /* 적설수준 積雪レベル */ - , (CASE WHEN UPPER(#{langCd}) = 'JA' THEN C4.CODE_JP - ELSE C4.CODE_NM - END) AS CNS_LVL /* 시공레벨 施工レベル */ - , U.HEIGHT /* 설치높이 設置高さ */ - , W.MENSODO AS CTND_CLSF /* 면조도구분 面粗度区分 */ - , V.CAPACITY AS ATH_CPC /* 인정용량 認定容量 */ - , (CASE - WHEN G.FIRST_AGENT_FLG = '1' THEN '1' - WHEN G.SECOND_AGENT_FLG = '1' THEN '2' - ELSE '' END ) + '次店' AS SALE_STORE_LEVEL /* 판매점모녀관계 販売店親子関係 */ - , H.DIRECTION /* 방위 方位 */ - , H.MODULE_TYPE /* 모듈종류 モジュール種類 */ - , H.MODULE_NUM /* 설치매수 設置枚数 */ - , H.ROOF_ANGLE /* 지붕경사 屋根勾配 */ - , H.PC_TYPE /* 파워콘종류 パワコン種類 */ - , H.PC_NUM /* 파워콘대수 パワコン台数 */ - , H.BOX_TYPE /* 접속상자종류 接続箱種類 */ - , H.BOX_NUM /* 접속상자수 接続箱数 */ - , H.CABLE_TYPE /* 케이블종류 ケーブル種類 */ - , H.CABLE_NUM /* 케이블개수 ケーブル本数 */ - , H.BOOST_TYPE /* 승압회로종류 昇圧回路種類 */ - , H.BOOST_NUM /* 승압회로대수 昇圧回路台数 */ - , H.DISPLAY_TYPE /* 표시유닛종류 表示ユニット種類 */ - , H.DISPLAY_NUM /* 표시유닛대수 表示ユニット数 */ - , H.COST_ALL /* 재료구입가격(kW단가) 材料仕入価格 */ - , H.COST_MODULE /* 모듈구입가격(kW단가) モジュール仕入価格 */ - , H.COST_OTHER /* 주변기기구입가격 周辺機器仕入価格 */ - , H.COST_STAND /* 가대구입가격(kW단가)架台仕入価格 */ - , H.SALE_ALL /* 판매단가(kW단가)販売単価 */ - , H.SALE_MODULE /* 모듈판매가격(kW단가) モジュール販売価格 */ - , H.SALE_OTHER /* 주변기기 판매가격(kW단가) 周辺機器販売価格 */ - , H.SALE_STAND /* 가대판매가격 架台販売価格 */ - - FROM T_OBJECT B - LEFT OUTER JOIN T_OBJECT_INFO OI - ON OI.OBJECT_NO = B.OBJECT_NO - LEFT OUTER JOIN T_PLAN A - ON A.OBJECT_NO = B.OBJECT_NO - LEFT OUTER JOIN M_COMM_L C1 - ON C1.CODE = B.OBJECT_STATUS_ID - AND C1.HEAD_CD = '201700' - LEFT OUTER JOIN M_WORK_PROGRESS D - ON B.WORK_NO = D.WORK_NO - LEFT OUTER JOIN T_SIMULATION_PREFECTURE E - ON B.PREF_ID = E.PREF_ID - - LEFT OUTER JOIN M_SALES_STORE G - ON B.SALE_STORE_ID = G.SALE_STORE_ID /*본인정보*/ - LEFT OUTER JOIN T_STATISTICS H - ON A.OBJECT_NO = H.OBJECT_NO - and A.PLAN_NO = H.PLAN_NO - - - - LEFT OUTER JOIN M_BUSINESS_CHARGER L - ON G.BUSINESS_CHARGER_CD = L.BUSINESS_CHARGER_CD - LEFT OUTER JOIN M_BUSINESS_TEAM M - ON L.BUSINESS_TEAM_CD = M.BUSINESS_TEAM_CD - LEFT OUTER JOIN M_COMM_L C2 - ON C2.CODE = A.ROOF_KIND_ID - AND C2.HEAD_CD = '201800' - LEFT OUTER JOIN M_COMM_L C3 - ON C3.CODE = A.ROOF_MATERIAL_ID - AND C3.HEAD_CD = '201900' - LEFT OUTER JOIN M_SUPPORT_METHOD P - ON A.SUPPORT_METHOD_ID = P.SUPPORT_METHOD_ID - LEFT OUTER JOIN M_COMM_L C4 - ON C4.CODE = A.CONSTRUCT_SPECIFICATION - AND C4.HEAD_CD = '201300' - - - - LEFT OUTER JOIN T_ROOF_INSTALLED_HEIGHT U - ON A.OBJECT_NO = U.OBJECT_NO - LEFT OUTER JOIN T_APPROVAL_CAPATICY V - ON A.OBJECT_NO = V.OBJECT_NO - AND A.PLAN_NO = V.PLAN_NO - LEFT OUTER JOIN T_MENSODO W - ON A.OBJECT_NO = W.OBJECT_NO - LEFT OUTER JOIN M_USER X - ON A.LAST_EDIT_USER = X.USER_ID - LEFT OUTER JOIN M_SALES_STORE Y - ON G.FIRST_AGENT_ID = Y.SALE_STORE_ID /*1차점정보*/ - WHERE A.DEL_FLG = 0 - AND (B.DEL_FLG = 0 OR (OI.SOURCE_ORIGIN = 'QCAST_III' AND OI.ORG_DEL_FLG = '0')) - + SELECT * FROM ( + SELECT + ROW_NUMBER() OVER (ORDER BY B.OBJECT_NO, A.PLAN_NO) AS RN + , B.OBJECT_NO /* 물건번호 物件番号 */ + , A.PLAN_NO /* 플랜 案件番号 */ + , CONVERT(varchar, A.LAST_EDIT_DATETIME, 120) AS LAST_EDIT_DATETIME /* 플랜정보 최신 갱신일시 プラン情報最新更新日時 */ + , G.SALE_STORE_NAME /* 판매대리점 販売代理店 */ + , Y.SALE_STORE_NAME AS SOLD_SALE_STORE_NAME /* 1차대리점명 一次代理店名 */ + , Y.SALE_STORE_ID AS SOLD_SALE_STORE_ID /* 1차대리점ID 一次代理店ID */ + , B.OBJECT_NAME /* 물건명 物件名 */ + , CASE WHEN A.NORTH_ARRANGEMENT = 1 THEN '有' ELSE '無' END AS NORTH_ARRANGEMENT /* 북면배치 北面配置 */ + , CAST(D.WORK_NO AS varchar) + ' ' + D.WORK_PROGRESS_STATUS_NAME AS WORK_PROGRESS_STATUS_NAME /* 수주예상 受注見込 */ + , B.ZIP_NO /* 우편번호 郵便番号 */ + , E.PREF_NAME /* 도도부현 都道府県 */ + , B.ADDRESS /* 주소 住所 */ + , A.WEATHER_POINT /* 가상지점 気象地点 */ + , CAST(A.CAPACITY AS varchar) + 'kw' AS CAPACITY /* 용량 容量 */ + , B.REMARKS /* 비고 備考 */ + , CONVERT(varchar, B.ESTIMATE_DETAIL_CREATE_DATE, 120) AS ESTIMATE_DETAIL_CREATE_DATE /* 견적 작성일 見積作成日 */ + , CONVERT(varchar, B.SPECIFICATION_CONFIRM_DATE, 120) AS SPECIFICATION_CONFIRM_DATE /* 사양 확인일 仕様確認日 */ + , COALESCE(L.BUSINESS_CHARGER, '') AS BUSINESS_CHARGER /* 영업 담당자(판매점 등록) 営業担当者_販売店登録 */ + , COALESCE(M.BUSINESS_TEAM, '') AS BUSINESS_TEAM /* 영업팀(판매점 등록) 営業チーム_販売店登録 */ + , (CASE WHEN UPPER(#{langCd}) = 'JA' THEN C1.CODE_JP + ELSE C1.CODE_NM + END) AS OBJECT_STATUS /* 주택구분 住宅区分 */ + , CONVERT(varchar, B.MANAGER_LAST_EDIT_DATETIME, 120) AS MANAGER_LAST_EDIT_DATETIME /* 관리자 최종 갱신일시管理者最終更新日時 */ + , X.SALE_STORE_ID /* 최종갱신판매점ID 最終更新販売店ID */ + , A.LAST_EDIT_USER /* 최종갱신자 最終更新者 */ + , (CASE WHEN UPPER(#{langCd}) = 'JA' THEN C2.CODE_JP + ELSE C2.CODE_NM + END) AS ROF_TYP /* 지붕종류 屋根種類 */ + , CASE WHEN A.DIFF_ROOF_ENABLED = 1 THEN A.ROOF_MATERIAL_ID_MULTI ELSE COALESCE((CASE WHEN UPPER(#{langCd}) = 'JA' THEN C3.CODE_JP + ELSE C3.CODE_NM + END), '') END AS ROOF_MATERIAL_NM /* 지붕재 屋根材 */ + , CASE WHEN A.DIFF_ROOF_ENABLED = 1 THEN A.SUPPORT_MEAKER_MULTI ELSE A.SUPPORT_MEAKER END AS SUPPORT_MEAKER_NM /* 가대메이커 架台メーカ */ + , CASE WHEN A.DIFF_ROOF_ENABLED = 1 THEN A.SUPPORT_METHOD_ID_MULTI ELSE COALESCE(P.NAME, '') END AS SUPPORT_METHOD_NM /* 지지금구 支持金具 */ + , A.SNOWFALL /* 적설수준 積雪レベル */ + , (CASE WHEN UPPER(#{langCd}) = 'JA' THEN C4.CODE_JP + ELSE C4.CODE_NM + END) AS CNS_LVL /* 시공레벨 施工レベル */ + , U.HEIGHT /* 설치높이 設置高さ */ + , W.MENSODO AS CTND_CLSF /* 면조도구분 面粗度区分 */ + , V.CAPACITY AS ATH_CPC /* 인정용량 認定容量 */ + , (CASE + WHEN G.FIRST_AGENT_FLG = '1' THEN '1' + WHEN G.SECOND_AGENT_FLG = '1' THEN '2' + ELSE '' END ) + '次店' AS SALE_STORE_LEVEL /* 판매점모녀관계 販売店親子関係 */ + , H.DIRECTION /* 방위 方位 */ + , H.MODULE_TYPE /* 모듈종류 モジュール種類 */ + , H.MODULE_NUM /* 설치매수 設置枚数 */ + , H.ROOF_ANGLE /* 지붕경사 屋根勾配 */ + , H.PC_TYPE /* 파워콘종류 パワコン種類 */ + , H.PC_NUM /* 파워콘대수 パワコン台数 */ + , H.BOX_TYPE /* 접속상자종류 接続箱種類 */ + , H.BOX_NUM /* 접속상자수 接続箱数 */ + , H.CABLE_TYPE /* 케이블종류 ケーブル種類 */ + , H.CABLE_NUM /* 케이블개수 ケーブル本数 */ + , H.BOOST_TYPE /* 승압회로종류 昇圧回路種類 */ + , H.BOOST_NUM /* 승압회로대수 昇圧回路台数 */ + , H.DISPLAY_TYPE /* 표시유닛종류 表示ユニット種類 */ + , H.DISPLAY_NUM /* 표시유닛대수 表示ユニット数 */ + , H.COST_ALL /* 재료구입가격(kW단가) 材料仕入価格 */ + , H.COST_MODULE /* 모듈구입가격(kW단가) モジュール仕入価格 */ + , H.COST_OTHER /* 주변기기구입가격 周辺機器仕入価格 */ + , H.COST_STAND /* 가대구입가격(kW단가)架台仕入価格 */ + , H.SALE_ALL /* 판매단가(kW단가)販売単価 */ + , H.SALE_MODULE /* 모듈판매가격(kW단가) モジュール販売価格 */ + , H.SALE_OTHER /* 주변기기 판매가격(kW단가) 周辺機器販売価格 */ + , H.SALE_STAND /* 가대판매가격 架台販売価格 */ + + FROM T_OBJECT B + LEFT OUTER JOIN T_OBJECT_INFO OI + ON OI.OBJECT_NO = B.OBJECT_NO + LEFT OUTER JOIN T_PLAN A + ON A.OBJECT_NO = B.OBJECT_NO + LEFT OUTER JOIN M_COMM_L C1 + ON C1.CODE = B.OBJECT_STATUS_ID + AND C1.HEAD_CD = '201700' + LEFT OUTER JOIN M_WORK_PROGRESS D + ON B.WORK_NO = D.WORK_NO + LEFT OUTER JOIN T_SIMULATION_PREFECTURE E + ON B.PREF_ID = E.PREF_ID + + LEFT OUTER JOIN M_SALES_STORE G + ON B.SALE_STORE_ID = G.SALE_STORE_ID /*본인정보*/ + LEFT OUTER JOIN T_STATISTICS H + ON A.OBJECT_NO = H.OBJECT_NO + and A.PLAN_NO = H.PLAN_NO + + + + LEFT OUTER JOIN M_BUSINESS_CHARGER L + ON G.BUSINESS_CHARGER_CD = L.BUSINESS_CHARGER_CD + LEFT OUTER JOIN M_BUSINESS_TEAM M + ON L.BUSINESS_TEAM_CD = M.BUSINESS_TEAM_CD + LEFT OUTER JOIN M_COMM_L C2 + ON C2.CODE = A.ROOF_KIND_ID + AND C2.HEAD_CD = '201800' + LEFT OUTER JOIN M_COMM_L C3 + ON C3.CODE = A.ROOF_MATERIAL_ID + AND C3.HEAD_CD = '201900' + LEFT OUTER JOIN M_SUPPORT_METHOD P + ON A.SUPPORT_METHOD_ID = P.SUPPORT_METHOD_ID + LEFT OUTER JOIN M_COMM_L C4 + ON C4.CODE = A.CONSTRUCT_SPECIFICATION + AND C4.HEAD_CD = '201300' + + + + LEFT OUTER JOIN T_ROOF_INSTALLED_HEIGHT U + ON A.OBJECT_NO = U.OBJECT_NO + LEFT OUTER JOIN T_APPROVAL_CAPATICY V + ON A.OBJECT_NO = V.OBJECT_NO + AND A.PLAN_NO = V.PLAN_NO + LEFT OUTER JOIN T_MENSODO W + ON A.OBJECT_NO = W.OBJECT_NO + LEFT OUTER JOIN M_USER X + ON A.LAST_EDIT_USER = X.USER_ID + LEFT OUTER JOIN M_SALES_STORE Y + ON G.FIRST_AGENT_ID = Y.SALE_STORE_ID /*1차점정보*/ + WHERE A.DEL_FLG = 0 + AND (B.DEL_FLG = 0 OR (OI.SOURCE_ORIGIN = 'QCAST_III' AND OI.ORG_DEL_FLG = '0')) + + ) AS PAGED - ORDER BY B.OBJECT_NO, A.PLAN_NO - OFFSET #{offset} ROWS FETCH NEXT #{pageSize} ROWS ONLY + WHERE RN BETWEEN (#{pageNo} - 1) * #{pageSize} + 1 AND #{pageNo} * #{pageSize} @@ -200,22 +202,6 @@ - - - -