From f35a0ea5ca66b12df85a65a3998f46804e33cbcd Mon Sep 17 00:00:00 2001 From: "LAPTOP-L3VE7KK2\\USER" Date: Wed, 5 Mar 2025 09:32:15 +0900 Subject: [PATCH] =?UTF-8?q?=EB=AC=BC=EA=B1=B4/=EA=B2=AC=EC=A0=81=EC=84=9C?= =?UTF-8?q?=20=ED=85=8C=EC=9D=B4=EB=B8=94=20=EB=B6=84=EB=A6=AC=20=EC=9E=91?= =?UTF-8?q?=EC=97=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../biz/estimate/EstimateController.java | 2 +- .../qcast/biz/estimate/EstimateMapper.java | 21 + .../qcast/biz/estimate/EstimateService.java | 61 ++- .../qcast/biz/object/ObjectController.java | 19 - .../qcast/biz/object/ObjectMapper.java | 21 + .../qcast/biz/object/ObjectService.java | 113 ++--- .../mappers/estimate/estimateMapper.xml | 412 +++++++++++------- .../resources/mappers/object/objectMapper.xml | 355 +++++++++------ 8 files changed, 589 insertions(+), 415 deletions(-) diff --git a/src/main/java/com/interplug/qcast/biz/estimate/EstimateController.java b/src/main/java/com/interplug/qcast/biz/estimate/EstimateController.java index 95e81f8a..50ed0ca9 100644 --- a/src/main/java/com/interplug/qcast/biz/estimate/EstimateController.java +++ b/src/main/java/com/interplug/qcast/biz/estimate/EstimateController.java @@ -51,7 +51,7 @@ public class EstimateController { @Operation(description = "견적서 상세를 조회한다.") @GetMapping("/{objectNo}/{planNo}/detail") @ResponseStatus(HttpStatus.OK) - public EstimateResponse selectObjectDetail( + public EstimateResponse selectEstimateDetail( @PathVariable String objectNo, @PathVariable String planNo) throws Exception { return estimateService.selectEstimateDetail(objectNo, planNo); } 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 2097c5b2..6057e7ee 100644 --- a/src/main/java/com/interplug/qcast/biz/estimate/EstimateMapper.java +++ b/src/main/java/com/interplug/qcast/biz/estimate/EstimateMapper.java @@ -60,12 +60,21 @@ public interface EstimateMapper { // 물건정보 수정 public int updateObject(EstimateRequest estimateRequest); + // 물건정보 상세 수정 + public int updateObjectInfo(EstimateRequest estimateRequest); + // 견적서 정보 수정 public int updateEstimate(EstimateRequest estimateRequest); + // 견적서 상세 정보 수정 + public int updateEstimateInfo(EstimateRequest estimateRequest); + // 견적서 정보 초기화 public int updateEstimateReset(EstimateRequest estimateRequest); + // 견적서 상세 정보 초기화 + public int updateEstimateInfoReset(EstimateRequest estimateRequest); + // 견적서 잠금 수정 public int updateEstimateLock(EstimateRequest estimateRequest); @@ -87,6 +96,9 @@ public interface EstimateMapper { // 견적서 아이템 등록 public int insertEstimateItem(ItemRequest itemRequest); + // 견적서 아이템 상세 등록 + public int insertEstimateInfoItem(ItemRequest itemRequest); + // 견적서 아이템 히스토리 등록 public int insertEstimateItemHis(ItemRequest itemRequest); @@ -105,9 +117,15 @@ public interface EstimateMapper { // 견적서 아이템 목록 삭제(물리 삭제) public int deleteEstimateItemList(EstimateRequest estimateRequest); + // 견적서 아이템 상세 목록 삭제(물리 삭제) + public int deleteEstimateInfoItemList(EstimateRequest estimateRequest); + // 견적서 복사 public int insertEstimateCopy(EstimateCopyRequest estimateCopyRequest); + // 견적서 상세 복사 + public int insertEstimateInfoCopy(EstimateCopyRequest estimateCopyRequest); + // 견적서 지붕면 복사 public int insertEstimateRoofCopy(EstimateCopyRequest estimateCopyRequest); @@ -125,4 +143,7 @@ public interface EstimateMapper { // 견적서 Q.ORDER 연동 시공타입 조회 public String selectEstimateConstructSpecification(EstimateRequest estimateRequest); + + // 견적서 수정일 변경 + public int updateEstimateLastEditDate(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 fe1048ab..bc0b8fc3 100644 --- a/src/main/java/com/interplug/qcast/biz/estimate/EstimateService.java +++ b/src/main/java/com/interplug/qcast/biz/estimate/EstimateService.java @@ -317,6 +317,11 @@ public class EstimateService { ErrorCode.INVALID_INPUT_VALUE, message.getMessage("common.message.required.data", "Sale Store ID")); } + if (StringUtils.isEmpty(estimateRequest.getUserId())) { + throw new QcastException( + ErrorCode.INVALID_INPUT_VALUE, + message.getMessage("common.message.required.data", "User ID")); + } String splitStr = "、"; List orgRoofList = new ArrayList(); @@ -612,12 +617,14 @@ public class EstimateService { // 물건정보 수정 if (!StringUtils.isEmpty(estimateRequest.getObjectName()) - || !StringUtils.isEmpty(estimateRequest.getObjectNameOmit()) - || !StringUtils.isEmpty(estimateRequest.getSurfaceType()) + || !StringUtils.isEmpty(estimateRequest.getObjectNameOmit())) { + estimateMapper.updateObject(estimateRequest); + } + if (!StringUtils.isEmpty(estimateRequest.getSurfaceType()) || !StringUtils.isEmpty(estimateRequest.getSetupHeight()) || !StringUtils.isEmpty(estimateRequest.getStandardWindSpeedId()) || !StringUtils.isEmpty(estimateRequest.getSnowfall())) { - estimateMapper.updateObject(estimateRequest); + estimateMapper.updateObjectInfo(estimateRequest); } // 견적서 정보 수정 @@ -626,6 +633,7 @@ public class EstimateService { ? estimateRequest.getPriceCd() : "UNIT_PRICE"); estimateMapper.updateEstimate(estimateRequest); + estimateMapper.updateEstimateInfo(estimateRequest); // 도면 작성일 경우에만 지붕면, 도면 아이템 데이터 초기화 후 저장 if ("1".equals(estimateRequest.getDrawingFlg())) { @@ -707,6 +715,7 @@ public class EstimateService { // 견적서 모든 아이템 제거 estimateMapper.deleteEstimateItemList(estimateRequest); + estimateMapper.deleteEstimateInfoItemList(estimateRequest); // 견적서 아이템 신규 추가 String hisNo = estimateMapper.selectEstimateItemHisNo(estimateRequest); // 아이템 히스토리 번호 조회 @@ -734,6 +743,7 @@ public class EstimateService { if (!"1".equals(itemRequest.getDelFlg())) { estimateMapper.insertEstimateItem(itemRequest); + estimateMapper.insertEstimateInfoItem(itemRequest); } } @@ -795,6 +805,12 @@ public class EstimateService { ErrorCode.INVALID_INPUT_VALUE, message.getMessage("common.message.required.data", "Plan No")); } + if (StringUtils.isEmpty(estimateCopyRequest.getUserId())) { + throw new QcastException( + ErrorCode.INVALID_INPUT_VALUE, + message.getMessage("common.message.required.data", "User ID")); + } + // 응답 객체 EstimateResponse response = new EstimateResponse(); @@ -818,6 +834,7 @@ public class EstimateService { // [2]. 물건정보 복사 objectRequest.setContentsPath(baseDirPath + "\\\\" + objectRequest.getCopyObjectNo()); objectMapper.insertObjectCopy(objectRequest); + objectMapper.insertObjectInfoCopy(objectRequest); objectRequest.setObjectNo(objectRequest.getCopyObjectNo()); objectMapper.updateObjectDelivery(objectRequest); @@ -876,6 +893,7 @@ public class EstimateService { estimateCopyRequest.setCopyObjectNo(objectRequest.getObjectNo()); estimateCopyRequest.setCopyPlanNo("1"); estimateMapper.insertEstimateCopy(estimateCopyRequest); + estimateMapper.insertEstimateInfoCopy(estimateCopyRequest); // [5]. 견적서 아이템 복사 for (ItemRequest itemRequest : itemList) { @@ -890,6 +908,7 @@ public class EstimateService { itemRequest.setUserId(estimateCopyRequest.getUserId()); estimateMapper.insertEstimateItem(itemRequest); + estimateMapper.insertEstimateInfoItem(itemRequest); } // [6]. 견적서 지붕면 및 도면 초기 데이터 복사 @@ -911,24 +930,6 @@ public class EstimateService { cs.setUserId(estimateCopyRequest.getUserId()); canvasStatusService.copyCanvasStatus(cs, true); - // [8]. QSP Q.CAST SEND API - /* - List resultList = new ArrayList(); - estimateRequest.setObjectNo(estimateCopyRequest.getCopyObjectNo()); - estimateRequest.setPlanNo(estimateCopyRequest.getCopyPlanNo()); - resultList = this.sendEstimateApi(estimateRequest); - // API에서 받은 문서번호 업데이트 - for (EstimateSendResponse result : resultList) { - estimateRequest.setObjectNo(result.getObjectNo()); - estimateRequest.setPlanNo(result.getPlanNo()); - estimateRequest.setDocNo(result.getDocNo()); - estimateRequest.setSyncFlg(result.getSyncFlg()); - estimateRequest.setUserId(estimateCopyRequest.getUserId()); - - estimateMapper.updateEstimateApi(estimateRequest); - } - */ - } catch (Exception e) { throw new QcastException(ErrorCode.INTERNAL_SERVER_ERROR); } @@ -958,6 +959,11 @@ public class EstimateService { ErrorCode.INVALID_INPUT_VALUE, message.getMessage("common.message.required.data", "Plan No")); } + if (StringUtils.isEmpty(estimateRequest.getUserId())) { + throw new QcastException( + ErrorCode.INVALID_INPUT_VALUE, + message.getMessage("common.message.required.data", "User ID")); + } // 견적서 상세 조회 EstimateResponse estimateResponse = estimateMapper.selectEstimateDetail(estimateRequest); @@ -1192,8 +1198,11 @@ public class EstimateService { // 견적서 정보 초기화 estimateMapper.updateEstimateReset(estimateRequest); + estimateMapper.updateEstimateInfoReset(estimateRequest); // 견적서 모든 아이템 제거 estimateMapper.deleteEstimateItemList(estimateRequest); + estimateMapper.deleteEstimateInfoItemList(estimateRequest); + // 견적서 아이템 신규 추가 String hisNo = estimateMapper.selectEstimateItemHisNo(estimateRequest); // 아이템 히스토리 번호 조회 for (ItemRequest itemRequest : itemList) { @@ -1220,6 +1229,7 @@ public class EstimateService { if (!"1".equals(itemRequest.getDelFlg())) { estimateMapper.insertEstimateItem(itemRequest); + estimateMapper.insertEstimateInfoItem(itemRequest); } } @@ -1272,9 +1282,15 @@ public class EstimateService { ErrorCode.INVALID_INPUT_VALUE, message.getMessage("common.message.required.data", "Lock Flag")); } + if (StringUtils.isEmpty(estimateRequest.getUserId())) { + throw new QcastException( + ErrorCode.INVALID_INPUT_VALUE, + message.getMessage("common.message.required.data", "User ID")); + } try { estimateMapper.updateEstimateLock(estimateRequest); + estimateMapper.updateEstimateLastEditDate(estimateRequest); } catch (Exception e) { throw new QcastException(ErrorCode.INTERNAL_SERVER_ERROR); } @@ -1326,9 +1342,10 @@ public class EstimateService { estimateResponse.setCustOmit("様邸"); } - // 견적서 잠금 처리 + // 견적서 잠금 처리 (최종 수정일 업데이트) estimateRequest.setLockFlg("1"); estimateMapper.updateEstimateLock(estimateRequest); + estimateMapper.updateEstimateLastEditDate(estimateRequest); // 견적서 특이사항 조회 List noteList = new ArrayList(); diff --git a/src/main/java/com/interplug/qcast/biz/object/ObjectController.java b/src/main/java/com/interplug/qcast/biz/object/ObjectController.java index d08f0d94..bf12d0ac 100644 --- a/src/main/java/com/interplug/qcast/biz/object/ObjectController.java +++ b/src/main/java/com/interplug/qcast/biz/object/ObjectController.java @@ -3,8 +3,6 @@ package com.interplug.qcast.biz.object; import com.interplug.qcast.biz.object.dto.*; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; -import jakarta.servlet.http.HttpServletRequest; -import jakarta.servlet.http.HttpServletResponse; import java.util.List; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -135,21 +133,4 @@ public class ObjectController { public PlanReqResponse selectPlanReqList(PlanReqRequest planReqRequest) throws Exception { return objectService.selectPlanReqList(planReqRequest); } - - @Operation(description = "견적서 파일을 다운로드한다.") - @PostMapping("/file/{objectNo}/{no}") - @ResponseStatus(HttpStatus.OK) - public void fileDownload( - HttpServletRequest request, - HttpServletResponse response, - @PathVariable String objectNo, - @PathVariable String no) - throws Exception { - - UploadRequest uploadRequest = new UploadRequest(); - uploadRequest.setObjectNo(objectNo); - uploadRequest.setNo(no); - - objectService.fileDownload(request, response, uploadRequest); - } } diff --git a/src/main/java/com/interplug/qcast/biz/object/ObjectMapper.java b/src/main/java/com/interplug/qcast/biz/object/ObjectMapper.java index c035c8f8..2a090b77 100644 --- a/src/main/java/com/interplug/qcast/biz/object/ObjectMapper.java +++ b/src/main/java/com/interplug/qcast/biz/object/ObjectMapper.java @@ -46,30 +46,51 @@ public interface ObjectMapper { // 물건정보 등록 public int insertObject(ObjectRequest objectRequest); + // 물건정보 상세 등록 + public int insertObjectInfo(ObjectRequest objectRequest); + // 물건정보 복사 public int insertObjectCopy(ObjectRequest objectRequest); + // 물건정보 상세 복사 + public int insertObjectInfoCopy(ObjectRequest objectRequest); + // 물건정보 수정 public int updateObject(ObjectRequest objectRequest); + // 물건정보 상세 수정 + public int updateObjectInfo(ObjectRequest objectRequest); + // 물건정보 갱신일 수정 public int updateObjectLastEditDate(ObjectRequest objectRequest); + // 물건정보 상세 수정 + public int updateObjectInfoLastEditDate(ObjectRequest objectRequest); + // 물건정보 삭제 public int deleteObject(ObjectRequest objectRequest); + // 물건정보 상세 삭제 + public int deleteObjectInfo(ObjectRequest objectRequest); + // 물건정보 > 배송정보 수정 public int updateObjectDelivery(ObjectRequest objectRequest); // 플랜정보 등록 public int insertPlan(PlanRequest planRequest); + // 플랜정보 상세 등록 + public int insertPlanInfo(PlanRequest planRequest); + // 플랜정보 삭제(물리 삭제) public int deletePlan(PlanRequest planRequest); // 물건정보 물건번호 변경 public int updateObjectNoChange(ObjectRequest objectRequest); + // 물건정보 상세 물건번호 변경 + public int updateObjectInfoNoChange(ObjectRequest objectRequest); + // 플랜정보 물건번호 변경 public int updatePlanObjectNoChange(ObjectRequest objectRequest); diff --git a/src/main/java/com/interplug/qcast/biz/object/ObjectService.java b/src/main/java/com/interplug/qcast/biz/object/ObjectService.java index e4b2bd29..f4606c78 100644 --- a/src/main/java/com/interplug/qcast/biz/object/ObjectService.java +++ b/src/main/java/com/interplug/qcast/biz/object/ObjectService.java @@ -14,8 +14,6 @@ import com.interplug.qcast.biz.object.dto.PlanRequest; import com.interplug.qcast.biz.object.dto.PlanResponse; import com.interplug.qcast.biz.object.dto.PrefResponse; import com.interplug.qcast.biz.object.dto.SaleStoreResponse; -import com.interplug.qcast.biz.object.dto.UploadRequest; -import com.interplug.qcast.biz.object.dto.UploadResponse; import com.interplug.qcast.biz.object.dto.WindSpeedResponse; import com.interplug.qcast.biz.storeFavorite.StoreFavoriteService; import com.interplug.qcast.config.Exception.ErrorCode; @@ -23,13 +21,6 @@ import com.interplug.qcast.config.Exception.QcastException; import com.interplug.qcast.config.message.Messages; import com.interplug.qcast.util.InterfaceQsp; import io.micrometer.common.util.StringUtils; -import jakarta.servlet.http.HttpServletRequest; -import jakarta.servlet.http.HttpServletResponse; -import java.io.BufferedInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.InputStream; -import java.net.URLConnection; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.text.SimpleDateFormat; @@ -41,7 +32,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpMethod; import org.springframework.stereotype.Service; -import org.springframework.util.FileCopyUtils; import org.springframework.web.util.UriComponentsBuilder; @Slf4j @@ -305,6 +295,11 @@ public class ObjectService { ErrorCode.INVALID_INPUT_VALUE, message.getMessage("common.message.required.data", "Sale Store Level")); } + if (StringUtils.isEmpty(objectRequest.getUserId())) { + throw new QcastException( + ErrorCode.INVALID_INPUT_VALUE, + message.getMessage("common.message.required.data", "User ID")); + } objectRequest.setSourceOrigin("QCAST_III"); @@ -342,6 +337,7 @@ public class ObjectService { objectRequest.setAddresseeCompanyNameOmit(objectRequest.getObjectNameOmit()); objectRequest.setContentsPath(baseDirPath + "\\\\" + objectRequest.getObjectNo()); result += objectMapper.insertObject(objectRequest); + result += objectMapper.insertObjectInfo(objectRequest); result += objectMapper.updateObjectDelivery(objectRequest); // 디폴트 Plan 등록 @@ -360,7 +356,7 @@ public class ObjectService { result += objectMapper.insertPlan(planRequest); */ - // 플랜번호 존재 시 물건번호 업데이트 + // 설계의뢰번호 존재 시 물건번호 업데이트 if ("0".equals(objectRequest.getTempFlg()) && !StringUtils.isEmpty(objectRequest.getPlanReqNo())) { PlanReqResponse response = null; @@ -416,6 +412,11 @@ public class ObjectService { ErrorCode.INVALID_INPUT_VALUE, message.getMessage("common.message.required.data", "Sale Store Level")); } + if (StringUtils.isEmpty(objectRequest.getUserId())) { + throw new QcastException( + ErrorCode.INVALID_INPUT_VALUE, + message.getMessage("common.message.required.data", "User ID")); + } // object 상세 정보 조회 ObjectResponse objectResponse = objectMapper.selectObjectDetail(objectRequest.getObjectNo()); @@ -440,13 +441,15 @@ public class ObjectService { + "\\\\" + (tempChgFlg ? objectRequest.getNewObjectNo() : objectRequest.getObjectNo())); result += objectMapper.updateObject(objectRequest); + result += objectMapper.updateObjectInfo(objectRequest); // 임시저장에서 저장상태로 돌리기 if (tempChgFlg) { objectMapper.updateObjectNoChange(objectRequest); + objectMapper.updateObjectInfoNoChange(objectRequest); objectMapper.updatePlanObjectNoChange(objectRequest); - // 플랜번호 존재 시 물건번호 업데이트 + // 설계의뢰번호 존재 시 물건번호 업데이트 if (!StringUtils.isEmpty(objectRequest.getPlanReqNo())) { PlanReqResponse response = null; @@ -495,10 +498,16 @@ public class ObjectService { ErrorCode.INVALID_INPUT_VALUE, message.getMessage("common.message.required.data", "Object No")); } + if (StringUtils.isEmpty(objectRequest.getUserId())) { + throw new QcastException( + ErrorCode.INVALID_INPUT_VALUE, + message.getMessage("common.message.required.data", "User ID")); + } try { - // object 갱신일 수정 + // object 갱신일 및 상세정보 수정 objectMapper.updateObjectLastEditDate(objectRequest); + objectMapper.updateObjectInfoLastEditDate(objectRequest); } catch (Exception e) { throw new QcastException(ErrorCode.INTERNAL_SERVER_ERROR); } @@ -555,6 +564,7 @@ public class ObjectService { // 물건정보 삭제 result = objectMapper.deleteObject(objectRequest); + result = objectMapper.deleteObjectInfo(objectRequest); } return result; @@ -577,6 +587,11 @@ public class ObjectService { ErrorCode.INVALID_INPUT_VALUE, message.getMessage("common.message.required.data", "Object No")); } + if (StringUtils.isEmpty(planRequest.getUserId())) { + throw new QcastException( + ErrorCode.INVALID_INPUT_VALUE, + message.getMessage("common.message.required.data", "User ID")); + } if ("1".equals(planRequest.getCopyFlg()) && StringUtils.isEmpty(planRequest.getPlanNo())) { throw new QcastException( @@ -661,6 +676,7 @@ public class ObjectService { estimateCopyRequest.setCopyPlanNo(copyPlanNo); estimateCopyRequest.setUserId(planRequest.getUserId()); estimateMapper.insertEstimateCopy(estimateCopyRequest); + estimateMapper.insertEstimateInfoCopy(estimateCopyRequest); if (estimateResponse != null && !StringUtils.isEmpty(estimateResponse.getEstimateDate())) { // [4]. 견적서 아이템 복사 @@ -678,6 +694,7 @@ public class ObjectService { itemRequest.setUserId(estimateCopyRequest.getUserId()); estimateMapper.insertEstimateItem(itemRequest); + estimateMapper.insertEstimateInfoItem(itemRequest); } // [5]. 견적서 지붕면 및 도면 초기 데이터 복사 @@ -714,6 +731,7 @@ public class ObjectService { planRequest.setOrderFlg("0"); planRequest.setTempFlg("1"); objectMapper.insertPlan(planRequest); + objectMapper.insertPlanInfo(planRequest); // 도면 기본정보 등록 CanvasStatus cs = new CanvasStatus(); @@ -753,6 +771,11 @@ public class ObjectService { ErrorCode.INVALID_INPUT_VALUE, message.getMessage("common.message.required.data", "Plan No")); } + if (StringUtils.isEmpty(planRequest.getUserId())) { + throw new QcastException( + ErrorCode.INVALID_INPUT_VALUE, + message.getMessage("common.message.required.data", "User ID")); + } // Plan 삭제 가능 체크 List planList = objectMapper.selectPlanList(planRequest); @@ -855,68 +878,4 @@ public class ObjectService { return response; } - - /** - * 물건정보 첨부파일 다운로드 - * - * @param request Request - * @param response Response - * @param uploadRequest 첨부파일 요청 정보 - * @throws Exception - */ - public void fileDownload( - HttpServletRequest request, HttpServletResponse response, UploadRequest uploadRequest) - throws Exception { - - InputStream inputStream = null; - - try { - // 첨부파일 조회 - UploadResponse uploadResponse = objectMapper.selectUpload(uploadRequest); - - if (uploadResponse != null) { - // 첨부파일 물리적 경로 - String filePath = - baseDirPath - + File.separator - + uploadResponse.getObjectNo() - + File.separator - + uploadResponse.getFaileName(); - File file = new File(filePath); - - if (file.exists()) { - // 파일 변환 타입 - String mimeType = URLConnection.guessContentTypeFromName(file.getName()); - if (mimeType == null) { - mimeType = "application/octet-stream"; - } - - // 소스 파일 명 - String srcFileName = uploadResponse.getFaileName(); - srcFileName = URLEncoder.encode(srcFileName, "UTF-8").replaceAll("\\+", "%20"); - - response.setHeader("Content-Transfer-Encoding", "binary;"); - response.setHeader("Pragma", "no-cache;"); - response.setHeader("Expires", "-1;"); - response.setHeader("Content-Disposition", "attachment; filename=\"" + srcFileName + "\""); - response.setContentType(mimeType); - response.setContentLength((int) file.length()); - - inputStream = new BufferedInputStream(new FileInputStream(file)); - - FileCopyUtils.copy(inputStream, response.getOutputStream()); - } else { - throw new QcastException(ErrorCode.INTERNAL_SERVER_ERROR); - } - } else { - throw new QcastException(ErrorCode.INTERNAL_SERVER_ERROR); - } - } catch (Exception e) { - throw new QcastException(ErrorCode.INTERNAL_SERVER_ERROR); - } finally { - if (inputStream != null) { - inputStream.close(); - } - } - } } diff --git a/src/main/resources/mappers/estimate/estimateMapper.xml b/src/main/resources/mappers/estimate/estimateMapper.xml index 1d085688..7a92a84b 100644 --- a/src/main/resources/mappers/estimate/estimateMapper.xml +++ b/src/main/resources/mappers/estimate/estimateMapper.xml @@ -35,38 +35,46 @@ , P.STATUS , P.PC_TYPE_NO , P.NORTH_ARRANGEMENT - , P.CONSTRUCT_SPECIFICATION_MULTI , P.ROOF_MATERIAL_ID_MULTI , P.SUPPORT_METHOD_ID_MULTI , P.SUPPORT_MEAKER_MULTI , P.DIFF_ROOF_ENABLED - , P.ORDER_FLG - , P.ESTIMATE_DATE - , P.DOC_NO - , P.ESTIMATE_TYPE - , P.FILE_FLG - , P.ESTIMATE_OPTION - , P.PKG_ASP - , P.PRICE_CD - , P.REMARKS - , P.LOCK_FLG - , P.TEMP_FLG , P.LAST_EDIT_DATETIME - , P.CREATE_DATETIME - , P.CREATE_USER + , PI.CONSTRUCT_SPECIFICATION_MULTI + , PI.ANGLE + , PI.SURFACE_TYPE + , PI.ORDER_FLG + , PI.ESTIMATE_DATE + , PI.ESTIMATE_TYPE + , PI.FILE_FLG + , PI.ESTIMATE_OPTION + , PI.PKG_ASP + , PI.DOC_NO + , PI.PRICE_CD + , PI.REMARKS + , PI.TEMP_FLG + , PI.LOCK_FLG + , PI.SYNC_FLG + , PI.CREATE_DATETIME + , PI.CREATE_USER , O.OBJECT_NAME , O.OBJECT_NAME_OMIT , O.REMARKS AS OBJECT_REMARKS , O.SALE_STORE_ID - , ISNULL(O.COLD_REGION_FLG, '0') AS COLD_REGION_FLG - , ISNULL(O.SALT_AREA_FLG, '0') AS SALT_AREA_FLG + , ISNULL(OI.COLD_REGION_FLG, '0') AS COLD_REGION_FLG + , ISNULL(OI.SALT_AREA_FLG, '0') AS SALT_AREA_FLG , 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_PLAN_INFO PI WITH (NOLOCK) + ON P.OBJECT_NO = PI.OBJECT_NO + AND P.PLAN_NO = PI.PLAN_NO INNER JOIN T_OBJECT O WITH (NOLOCK) ON P.OBJECT_NO = O.OBJECT_NO + INNER JOIN T_OBJECT_INFO OI WITH (NOLOCK) + ON O.OBJECT_NO = OI.OBJECT_NO INNER JOIN M_SALES_STORE SS WITH(NOLOCK) ON O.SALE_STORE_ID = SS.SALE_STORE_ID WHERE P.OBJECT_NO = #{objectNo} @@ -84,7 +92,7 @@ , CASE WHEN SS2.DISP_ADDRESS IS NOT NULL THEN SS2.DISP_ADDRESS ELSE SS2.ADDRESS END AS ADDRESS , CASE WHEN SS2.DISP_TEL IS NOT NULL THEN SS2.DISP_TEL ELSE SS2.TEL END AS TEL , CASE WHEN SS2.DISP_FAX IS NOT NULL THEN SS2.DISP_FAX ELSE SS2.FAX END AS FAX - , SS2.BIZ_NO + , SSI2.BIZ_NO FROM ( SELECT @@ -93,26 +101,31 @@ , CONVERT(VARCHAR(10), P.DRAWING_ESTIMATE_CREATE_DATE, 121) AS DRAWING_ESTIMATE_CREATE_DATE , P.ESTIMATE_VALIDITY_TERM , P.SNOWFALL - , P.ESTIMATE_TYPE - , P.ESTIMATE_OPTION - , P.PKG_ASP - , P.REMARKS , CONVERT(NVARCHAR(10), P.LAST_EDIT_DATETIME, 121) AS ESTIMATE_DATE + , PI.ESTIMATE_TYPE + , PI.ESTIMATE_OPTION + , PI.PKG_ASP + , PI.REMARKS , O.SALE_STORE_ID , O.OBJECT_NAME , O.OBJECT_NAME_OMIT - , (SELECT SALE_STORE_ID FROM M_USER WHERE USER_ID = O.CREATE_USER) AS CREATE_SALE_STORE_ID + , (SELECT SALE_STORE_ID FROM M_USER WHERE USER_ID = OI.CREATE_USER) AS CREATE_SALE_STORE_ID , ISNULL(MP.PREF_NAME, '') AS PREF_NAME , ISNULL(MPA.AREA_NAME, '') AS AREA_NAME , ISNULL(C1.CODE_NM, '') AS STANDARD_WIND_SPEED_NAME FROM T_PLAN P WITH (NOLOCK) + INNER JOIN T_PLAN_INFO PI WITH (NOLOCK) + ON P.OBJECT_NO = PI.OBJECT_NO + AND P.PLAN_NO = PI.PLAN_NO INNER JOIN T_OBJECT O WITH (NOLOCK) ON P.OBJECT_NO = O.OBJECT_NO + INNER JOIN T_OBJECT_INFO OI WITH (NOLOCK) + ON O.OBJECT_NO = OI.OBJECT_NO LEFT OUTER JOIN M_PREFECTURE MP WITH (NOLOCK) ON O.PREF_ID = MP.PREF_ID LEFT OUTER JOIN M_PREFECTURE_AREA MPA WITH (NOLOCK) ON O.PREF_ID = MPA.PREF_ID - AND O.AREA_ID = MPA.AREA_ID + AND OI.AREA_ID = MPA.AREA_ID LEFT OUTER JOIN M_COMM_L C1 WITH (NOLOCK) ON C1.HEAD_CD = '202000' AND P.STANDARD_WIND_SPEED_ID = C1.CODE @@ -123,6 +136,8 @@ ON T.SALE_STORE_ID = SS1.SALE_STORE_ID LEFT OUTER JOIN M_SALES_STORE SS2 WITH (NOLOCK) ON T.CREATE_SALE_STORE_ID = SS2.SALE_STORE_ID + LEFT OUTER JOIN M_SALES_STORE_INFO SSI2 WITH (NOLOCK) + ON T.CREATE_SALE_STORE_ID = SSI2.SALE_STORE_ID @@ -358,7 +384,7 @@ P.OBJECT_NO , P.PLAN_NO , CASE WHEN ISNUMERIC(P.SETUP_HEIGHT) = 1 THEN CAST(CONVERT(FLOAT, P.SETUP_HEIGHT) AS INT) ELSE 0 END AS SETUP_HEIGHT - , P.SURFACE_TYPE + , PI.SURFACE_TYPE , RE.ROOF_SURFACE_ID , RE.ROOF_SURFACE , RE.ROOF_MATERIAL_ID @@ -372,6 +398,9 @@ , ISNULL(C2.CODE_NM, '') AS SUPPORT_METHOD_NAME , ISNULL(C3.CODE_NM, '') AS CONSTRUCT_SPECIFICATION_NAME FROM T_PLAN P WITH (NOLOCK) + INNER JOIN T_PLAN_INFO PI WITH (NOLOCK) + ON P.OBJECT_NO = PI.OBJECT_NO + AND P.PLAN_NO = PI.PLAN_NO INNER JOIN T_PART_ROOF_ESTIMATE RE WITH (NOLOCK) ON P.OBJECT_NO = RE.OBJECT_NO AND P.PLAN_NO = RE.PLAN_NO @@ -409,17 +438,15 @@ + + /* sqlid : com.interplug.qcast.biz.estimate.updateEstimateLastEditDate */ + UPDATE T_PLAN + SET + LAST_EDIT_DATETIME = GETDATE() + , LAST_EDIT_USER = #{userId} + WHERE OBJECT_NO = #{objectNo} + AND PLAN_NO = #{planNo} + + \ No newline at end of file diff --git a/src/main/resources/mappers/object/objectMapper.xml b/src/main/resources/mappers/object/objectMapper.xml index 329218e7..5e4dfc16 100644 --- a/src/main/resources/mappers/object/objectMapper.xml +++ b/src/main/resources/mappers/object/objectMapper.xml @@ -174,19 +174,21 @@ , O.ZIP_NO , O.ADDRESS , O.RECEIVE_USER - , O.TEMP_FLG - , O.CREATE_DATETIME , O.LAST_EDIT_DATETIME + , OI.TEMP_FLG + , OI.CREATE_DATETIME , S.SALE_STORE_NAME FROM T_OBJECT O WITH (NOLOCK) + INNER JOIN T_OBJECT_INFO OI WITH (NOLOCK) + ON O.OBJECT_NO = OI.OBJECT_NO INNER JOIN M_SALES_STORE S WITH (NOLOCK) ON O.SALE_STORE_ID = S.SALE_STORE_ID INNER JOIN SALES_STORE_CTE T ON S.SALE_STORE_ID = T.SALE_STORE_ID - WHERE O.SOURCE_ORIGIN = 'QCAST_III' - AND (O.ORG_DEL_FLG = '0' OR (O.TEMP_FLG = '1' AND O.TEMP_DEL_FLG = '0')) + WHERE OI.SOURCE_ORIGIN = 'QCAST_III' + AND (OI.ORG_DEL_FLG = '0' OR (OI.TEMP_FLG = '1' AND OI.TEMP_DEL_FLG = '0')) ORDER BY O.LAST_EDIT_DATETIME DESC @@ -235,7 +237,7 @@ ORDER BY - O.CREATE_DATETIME DESC + OI.CREATE_DATETIME DESC O.LAST_EDIT_DATETIME DESC @@ -246,28 +248,30 @@ , O.OBJECT_NAME , O.SALE_STORE_ID , O.ZIP_NO + , O.PREF_ID , O.ADDRESS , O.RECEIVE_USER , O.SPECIFICATION_CONFIRM_DATE - , O.CREATE_DATETIME , O.LAST_EDIT_DATETIME - , O.AREA_ID - , O.PREF_ID - , O.STANDARD_WIND_SPEED_ID - , O.VERTICAL_SNOW_COVER - , O.SURFACE_TYPE - , O.INSTALL_HEIGHT - , O.CON_TYPE - , O.COLD_REGION_FLG - , O.SALT_AREA_FLG - , ISNULL(O.TEMP_FLG, '0') AS TEMP_FLG + , OI.AREA_ID + , OI.STANDARD_WIND_SPEED_ID + , OI.VERTICAL_SNOW_COVER + , OI.SURFACE_TYPE + , OI.INSTALL_HEIGHT + , OI.CON_TYPE + , OI.COLD_REGION_FLG + , OI.SALT_AREA_FLG + , ISNULL(OI.TEMP_FLG, '0') AS TEMP_FLG + , OI.CREATE_DATETIME , S.SALE_STORE_NAME , S.DISP_COMPANY_NAME , ISNULL(P.PREF_NAME, '') AS PREF_NAME - , (SELECT NAME FROM M_USER WHERE USER_ID = O.CREATE_USER) AS CREATE_USER_NAME , (SELECT NAME FROM M_USER WHERE USER_ID = O.LAST_EDIT_USER) AS LAST_EDIT_USER_NAME + , (SELECT NAME FROM M_USER WHERE USER_ID = OI.CREATE_USER) AS CREATE_USER_NAME , (SELECT COUNT(1) FROM T_PLAN WHERE OBJECT_NO = O.OBJECT_NO AND DEL_FLG = '0') AS PLAN_TOT_CNT FROM T_OBJECT O WITH (NOLOCK) + INNER JOIN T_OBJECT_INFO OI WITH (NOLOCK) + ON O.OBJECT_NO = OI.OBJECT_NO INNER JOIN M_SALES_STORE S WITH (NOLOCK) ON O.SALE_STORE_ID = S.SALE_STORE_ID @@ -276,11 +280,11 @@ LEFT OUTER JOIN M_PREFECTURE P ON O.PREF_ID = P.PREF_ID - WHERE O.SOURCE_ORIGIN = 'QCAST_III' - AND (O.ORG_DEL_FLG = '0' OR (O.TEMP_FLG = '1' AND O.TEMP_DEL_FLG = '0')) + WHERE OI.SOURCE_ORIGIN = 'QCAST_III' + AND (OI.ORG_DEL_FLG = '0' OR (OI.TEMP_FLG = '1' AND OI.TEMP_DEL_FLG = '0')) AND O.OBJECT_NO LIKE '%' + #{schObjectNo} + '%' - AND O.TEMP_FLG = '0' + AND OI.TEMP_FLG = '0' AND O.SALE_STORE_ID = #{schSaleStoreId} @@ -319,11 +323,11 @@ /* 등록일 시작일,종료일 검색조건 */ - AND O.CREATE_DATETIME BETWEEN CONVERT(DATETIME, CONVERT(VARCHAR(10), PARSE(#{schFromDt} AS DATE USING 'en-US')) + ' 00:00:00') AND CONVERT(DATETIME, CONVERT(VARCHAR(10), PARSE(#{schToDt} AS DATE USING 'en-US')) + ' 23:59:59') + AND OI.CREATE_DATETIME BETWEEN CONVERT(DATETIME, CONVERT(VARCHAR(10), PARSE(#{schFromDt} AS DATE USING 'en-US')) + ' 00:00:00') AND CONVERT(DATETIME, CONVERT(VARCHAR(10), PARSE(#{schToDt} AS DATE USING 'en-US')) + ' 23:59:59') - AND O.TEMP_FLG = #{schTempFlg} + AND OI.TEMP_FLG = #{schTempFlg} ) TT @@ -352,21 +356,21 @@ , O.RECEIVE_USER , O.SPECIFICATION_CONFIRM_DATE , O.CONTENTS_PATH - , O.AREA_ID - , O.STANDARD_WIND_SPEED_ID - , O.VERTICAL_SNOW_COVER - , O.SURFACE_TYPE - , CASE WHEN ISNUMERIC(O.INSTALL_HEIGHT) = 1 THEN CAST(CONVERT(FLOAT, O.INSTALL_HEIGHT) AS INT) ELSE 0 END AS INSTALL_HEIGHT - , O.CON_TYPE - , O.COLD_REGION_FLG - , O.SALT_AREA_FLG - , ISNULL(O.TEMP_FLG, '0') AS TEMP_FLG - , O.CREATE_DATETIME - , O.CREATE_USER + , OI.AREA_ID + , OI.STANDARD_WIND_SPEED_ID + , OI.VERTICAL_SNOW_COVER + , OI.SURFACE_TYPE + , CASE WHEN ISNUMERIC(OI.INSTALL_HEIGHT) = 1 THEN CAST(CONVERT(FLOAT, OI.INSTALL_HEIGHT) AS INT) ELSE 0 END AS INSTALL_HEIGHT + , OI.CON_TYPE + , OI.COLD_REGION_FLG + , OI.SALT_AREA_FLG + , ISNULL(OI.TEMP_FLG, '0') AS TEMP_FLG + , OI.CREATE_DATETIME + , OI.CREATE_USER , O.LAST_EDIT_DATETIME - , (SELECT SALE_STORE_ID FROM M_USER WHERE USER_ID = O.CREATE_USER) AS CREATE_SALE_STORE_ID - , (SELECT NAME FROM M_USER WHERE USER_ID = O.CREATE_USER) AS CREATE_USER_NAME , (SELECT NAME FROM M_USER WHERE USER_ID = O.LAST_EDIT_USER) AS LAST_EDIT_USER_NAME + , (SELECT SALE_STORE_ID FROM M_USER WHERE USER_ID = OI.CREATE_USER) AS CREATE_SALE_STORE_ID + , (SELECT NAME FROM M_USER WHERE USER_ID = OI.CREATE_USER) AS CREATE_USER_NAME , S.FIRST_AGENT_ID , S.SALE_STORE_LEVEL , ISNULL(P.PREF_NAME, '') AS PREF_NAME @@ -374,15 +378,17 @@ , (SELECT COUNT(1) FROM T_PLAN WHERE OBJECT_NO = O.OBJECT_NO AND DEL_FLG = '0' AND DRAWING_ESTIMATE_CREATE_DATE IS NOT NULL) AS ESTIMATE_TOT_CNT , (SELECT COUNT(1) FROM M_SALES_STORE_NORTH_MODULE WHERE SALE_STORE_ID = O.SALE_STORE_ID AND DEL_FLG = '0') AS SALE_STORE_NORTH_FLG FROM T_OBJECT O WITH (NOLOCK) + INNER JOIN T_OBJECT_INFO OI WITH (NOLOCK) + ON O.OBJECT_NO = OI.OBJECT_NO INNER JOIN M_SALES_STORE S WITH(NOLOCK) ON O.SALE_STORE_ID = S.SALE_STORE_ID LEFT OUTER JOIN M_PREFECTURE P ON O.PREF_ID = P.PREF_ID LEFT OUTER JOIN M_PREFECTURE_AREA PA - ON O.AREA_ID = PA.AREA_ID + ON OI.AREA_ID = PA.AREA_ID WHERE O.OBJECT_NO = #{objectNo} - AND O.SOURCE_ORIGIN = 'QCAST_III' - AND (O.ORG_DEL_FLG = '0' OR (O.TEMP_FLG = '1' AND O.TEMP_DEL_FLG = '0')) + AND OI.SOURCE_ORIGIN = 'QCAST_III' + AND (OI.ORG_DEL_FLG = '0' OR (OI.TEMP_FLG = '1' AND OI.TEMP_DEL_FLG = '0')) /* sqlid : com.interplug.qcast.biz.object.selectPlanList */ SELECT - T.OBJECT_NO - , T.PLAN_NO - , T.CONSTRUCT_SPECIFICATION - , T.SETUP_HEIGHT - , T.WEATHER_POINT - , T.ROOF_KIND_ID - , T.SLOPE - , T.ROOF_MATERIAL_CLASS_ID - , T.ROOF_MATERIAL_ID - , T.SUPPORT_METHOD_ID - , T.MODULE_MODEL - , T.CHARGER - , T.ESTIMATE_VALIDITY_TERM - , T.DECISION_PLAN - , T.NUMBER - , T.CAPACITY - , T.SNOWFALL - , T.STANDARD_WIND_SPEED_CHECK - , T.OPTION_COVER - , T.HANWFA_FLG - , T.STAND_KIND_ID - , T.STANDARD_WIND_SPEED_ID - , T.SUPPORT_MEAKER - , T.CONSUMPTION_TAX_ID - , T.STATUS - , T.PC_TYPE_NO - , T.NORTH_ARRANGEMENT - , T.ROOF_MATERIAL_ID_MULTI - , T.SUPPORT_METHOD_ID_MULTI - , T.SUPPORT_MEAKER_MULTI - , T.DIFF_ROOF_ENABLED - , T.ORDER_FLG - , T.ESTIMATE_DATE - , T.CONSTRUCT_SPECIFICATION_MULTI - , T.DOC_NO - , T.TEMP_FLG + P.OBJECT_NO + , P.PLAN_NO + , P.CONSTRUCT_SPECIFICATION + , P.SETUP_HEIGHT + , P.WEATHER_POINT + , P.ROOF_KIND_ID + , P.SLOPE + , P.ROOF_MATERIAL_CLASS_ID + , P.ROOF_MATERIAL_ID + , P.SUPPORT_METHOD_ID + , P.MODULE_MODEL + , P.CHARGER + , P.ESTIMATE_VALIDITY_TERM + , P.DECISION_PLAN + , P.NUMBER + , P.CAPACITY + , P.SNOWFALL + , P.STANDARD_WIND_SPEED_CHECK + , P.OPTION_COVER + , P.HANWFA_FLG + , P.STAND_KIND_ID + , P.STANDARD_WIND_SPEED_ID + , P.SUPPORT_MEAKER + , P.CONSUMPTION_TAX_ID + , P.STATUS + , P.PC_TYPE_NO + , P.NORTH_ARRANGEMENT + , P.ROOF_MATERIAL_ID_MULTI + , P.SUPPORT_METHOD_ID_MULTI + , P.SUPPORT_MEAKER_MULTI + , P.DIFF_ROOF_ENABLED + , PI.ORDER_FLG + , PI.ESTIMATE_DATE + , PI.CONSTRUCT_SPECIFICATION_MULTI + , PI.DOC_NO + , PI.TEMP_FLG , (SELECT SALE_STORE_ID FROM M_USER WHERE USER_ID = O.CREATE_USER) AS CREATE_SALE_STORE_ID - FROM T_PLAN T WITH (NOLOCK) + FROM T_PLAN P WITH (NOLOCK) + INNER JOIN T_PLAN_INFO PI WITH (NOLOCK) + ON P.OBJECT_NO = PI.OBJECT_NO + AND P.PLAN_NO = PI.PLAN_NO INNER JOIN T_OBJECT O WITH (NOLOCK) - ON T.OBJECT_NO = O.OBJECT_NO - WHERE T.OBJECT_NO = #{objectNo} - AND T.DEL_FLG = '0' + ON P.OBJECT_NO = O.OBJECT_NO + WHERE P.OBJECT_NO = #{objectNo} + AND P.DEL_FLG = '0' @@ -499,25 +508,10 @@ , FIRST_STORE_CHARGER , CONTENTS_PATH , DEL_FLG - , CREATE_DATETIME - , CREATE_USER , LAST_EDIT_DATETIME , LAST_EDIT_USER , EDIT_AGENCY , NORTH_ARRANGEMENT - , PLAN_REQ_NO - , AREA_ID - , STANDARD_WIND_SPEED_ID - , VERTICAL_SNOW_COVER - , SURFACE_TYPE - , INSTALL_HEIGHT - , CON_TYPE - , COLD_REGION_FLG - , SALT_AREA_FLG - , SOURCE_ORIGIN - , TEMP_FLG - , TEMP_DEL_FLG - , ORG_DEL_FLG ) VALUES ( #{objectNo} , #{saleStoreId} @@ -547,10 +541,33 @@ , #{delFlg} , GETDATE() , #{userId} - , GETDATE() - , #{userId} , '0' , '0' + ) + + + + /* sqlid : com.interplug.qcast.biz.object.insertObjectInfo */ + INSERT INTO T_OBJECT_INFO + ( + OBJECT_NO + , PLAN_REQ_NO + , AREA_ID + , STANDARD_WIND_SPEED_ID + , VERTICAL_SNOW_COVER + , SURFACE_TYPE + , INSTALL_HEIGHT + , CON_TYPE + , COLD_REGION_FLG + , SALT_AREA_FLG + , SOURCE_ORIGIN + , TEMP_FLG + , TEMP_DEL_FLG + , ORG_DEL_FLG + , CREATE_DATETIME + , CREATE_USER + ) VALUES ( + #{objectNo} , #{planReqNo} , #{areaId} , #{standardWindSpeedId} @@ -564,6 +581,8 @@ , #{tempFlg} , #{tempDelFlg} , #{orgDelFlg} + , GETDATE() + , #{userId} ) @@ -597,24 +616,10 @@ , FIRST_STORE_CHARGER , CONTENTS_PATH , DEL_FLG - , CREATE_DATETIME - , CREATE_USER , LAST_EDIT_DATETIME , LAST_EDIT_USER , EDIT_AGENCY , NORTH_ARRANGEMENT - , AREA_ID - , STANDARD_WIND_SPEED_ID - , VERTICAL_SNOW_COVER - , SURFACE_TYPE - , INSTALL_HEIGHT - , CON_TYPE - , COLD_REGION_FLG - , SALT_AREA_FLG - , TEMP_FLG - , TEMP_DEL_FLG - , SOURCE_ORIGIN - , ORG_DEL_FLG ) SELECT #{copyObjectNo} AS OBJECT_NO @@ -643,12 +648,19 @@ , #{receiveUser} AS FIRST_STORE_CHARGER , #{contentsPath} AS CONTENTS_PATH , #{delFlg} AS DEL_FLG - , GETDATE() AS CREATE_DATETIME - , #{userId} AS CREATE_USER , GETDATE() AS LAST_EDIT_DATETIME , #{userId} AS LAST_EDIT_USER , EDIT_AGENCY , NORTH_ARRANGEMENT + FROM T_OBJECT O WITH (NOLOCK) + WHERE O.OBJECT_NO = #{objectNo} + + + + /* sqlid : com.interplug.qcast.biz.object.insertObjectInfoCopy */ + INSERT INTO T_OBJECT_INFO + ( + OBJECT_NO , AREA_ID , STANDARD_WIND_SPEED_ID , VERTICAL_SNOW_COVER @@ -657,12 +669,31 @@ , CON_TYPE , COLD_REGION_FLG , SALT_AREA_FLG + , SOURCE_ORIGIN + , TEMP_FLG + , TEMP_DEL_FLG + , ORG_DEL_FLG + , CREATE_DATETIME + , CREATE_USER + ) + SELECT + #{copyObjectNo} AS OBJECT_NO + , AREA_ID + , STANDARD_WIND_SPEED_ID + , VERTICAL_SNOW_COVER + , SURFACE_TYPE + , INSTALL_HEIGHT + , CON_TYPE + , COLD_REGION_FLG + , SALT_AREA_FLG + , 'QCAST_III' AS SOURCE_ORIGIN , #{tempFlg} AS TEMP_FLG , #{tempDelFlg} AS TEMP_DEL_FLG - , 'QCAST_III' AS SOURCE_ORIGIN , #{orgDelFlg} AS ORG_DEL_FLG - FROM T_OBJECT O WITH (NOLOCK) - WHERE O.OBJECT_NO = #{objectNo} + , GETDATE() AS CREATE_DATETIME + , #{userId} AS CREATE_USER + FROM T_OBJECT_INFO OI WITH (NOLOCK) + WHERE OI.OBJECT_NO = #{objectNo} @@ -682,42 +713,57 @@ , REMARKS = #{remarks} , RECEIVE_USER = #{receiveUser} , CONTENTS_PATH = #{contentsPath} - , PLAN_REQ_NO = #{planReqNo} - , AREA_ID = #{areaId} - , STANDARD_WIND_SPEED_ID = #{standardWindSpeedId} - , VERTICAL_SNOW_COVER = #{verticalSnowCover} - , SURFACE_TYPE = #{surfaceType} - , INSTALL_HEIGHT = #{installHeight} - , CON_TYPE = #{conType} - , COLD_REGION_FLG = #{coldRegionFlg} - , SALT_AREA_FLG = #{saltAreaFlg} , LAST_EDIT_DATETIME = GETDATE() , LAST_EDIT_USER = #{userId} WHERE OBJECT_NO = #{objectNo} + + /* sqlid : com.interplug.qcast.biz.object.updateObjectInfo */ + UPDATE T_OBJECT_INFO + SET + PLAN_REQ_NO = #{planReqNo} + , AREA_ID = #{areaId} + , STANDARD_WIND_SPEED_ID = #{standardWindSpeedId} + , VERTICAL_SNOW_COVER = #{verticalSnowCover} + , SURFACE_TYPE = #{surfaceType} + , INSTALL_HEIGHT = #{installHeight} + , CON_TYPE = #{conType} + , COLD_REGION_FLG = #{coldRegionFlg} + , SALT_AREA_FLG = #{saltAreaFlg} + WHERE OBJECT_NO = #{objectNo} + + /* sqlid : com.interplug.qcast.biz.object.updateObjectLastEditDate */ UPDATE T_OBJECT SET OBJECT_NO = #{objectNo} - - , STANDARD_WIND_SPEED_ID = #{standardWindSpeedId} - - - , VERTICAL_SNOW_COVER = #{verticalSnowCover} - - - , SURFACE_TYPE = #{surfaceType} - - - , INSTALL_HEIGHT = #{installHeight} - , LAST_EDIT_DATETIME = GETDATE() , LAST_EDIT_USER = #{userId} WHERE OBJECT_NO = #{objectNo} + + /* sqlid : com.interplug.qcast.biz.object.updateObjectInfoLastEditDate */ + UPDATE T_OBJECT_INFO + SET + OBJECT_NO = #{objectNo} + + , STANDARD_WIND_SPEED_ID = #{standardWindSpeedId} + + + , VERTICAL_SNOW_COVER = #{verticalSnowCover} + + + , SURFACE_TYPE = #{surfaceType} + + + , INSTALL_HEIGHT = #{installHeight} + + WHERE OBJECT_NO = #{objectNo} + + /* sqlid : com.interplug.qcast.biz.object.updateObjectDelivery */ UPDATE A SET @@ -734,11 +780,18 @@ /* sqlid : com.interplug.qcast.biz.object.deleteObject */ UPDATE T_OBJECT + SET + LAST_EDIT_DATETIME = GETDATE() + , LAST_EDIT_USER = #{userId} + WHERE OBJECT_NO = #{objectNo} + + + + /* sqlid : com.interplug.qcast.biz.object.deleteObjectInfo */ + UPDATE T_OBJECT_INFO SET ORG_DEL_FLG = '1' , TEMP_DEL_FLG = '1' - , LAST_EDIT_DATETIME = GETDATE() - , LAST_EDIT_USER = #{userId} WHERE OBJECT_NO = #{objectNo} @@ -826,6 +879,26 @@ ) + + /* sqlid : com.interplug.qcast.biz.object.insertPlanInfo*/ + INSERT INTO T_PLAN_INFO + ( + OBJECT_NO + , PLAN_NO + , ORDER_FLG + , TEMP_FLG + , CREATE_DATETIME + , CREATE_USER + ) VALUES ( + #{objectNo} + , #{planNo} + , #{orderFlg} + , #{tempFlg} + , GETDATE() + , #{userId} + ) + + /* sqlid : com.interplug.qcast.biz.object.deletePlan */ UPDATE T_PLAN @@ -840,6 +913,14 @@ /* sqlid : com.interplug.qcast.biz.object.updateObjectChange */ UPDATE T_OBJECT + SET + OBJECT_NO = #{newObjectNo} + WHERE OBJECT_NO = #{objectNo} + + + + /* sqlid : com.interplug.qcast.biz.object.updateObjectInfoNoChange */ + UPDATE T_OBJECT_INFO SET OBJECT_NO = #{newObjectNo} , TEMP_FLG = '0'