물건/견적서 테이블 분리 작업

This commit is contained in:
LAPTOP-L3VE7KK2\USER 2025-03-05 09:32:15 +09:00
parent 4e3884c32a
commit f35a0ea5ca
8 changed files with 589 additions and 415 deletions

View File

@ -51,7 +51,7 @@ public class EstimateController {
@Operation(description = "견적서 상세를 조회한다.") @Operation(description = "견적서 상세를 조회한다.")
@GetMapping("/{objectNo}/{planNo}/detail") @GetMapping("/{objectNo}/{planNo}/detail")
@ResponseStatus(HttpStatus.OK) @ResponseStatus(HttpStatus.OK)
public EstimateResponse selectObjectDetail( public EstimateResponse selectEstimateDetail(
@PathVariable String objectNo, @PathVariable String planNo) throws Exception { @PathVariable String objectNo, @PathVariable String planNo) throws Exception {
return estimateService.selectEstimateDetail(objectNo, planNo); return estimateService.selectEstimateDetail(objectNo, planNo);
} }

View File

@ -60,12 +60,21 @@ public interface EstimateMapper {
// 물건정보 수정 // 물건정보 수정
public int updateObject(EstimateRequest estimateRequest); public int updateObject(EstimateRequest estimateRequest);
// 물건정보 상세 수정
public int updateObjectInfo(EstimateRequest estimateRequest);
// 견적서 정보 수정 // 견적서 정보 수정
public int updateEstimate(EstimateRequest estimateRequest); public int updateEstimate(EstimateRequest estimateRequest);
// 견적서 상세 정보 수정
public int updateEstimateInfo(EstimateRequest estimateRequest);
// 견적서 정보 초기화 // 견적서 정보 초기화
public int updateEstimateReset(EstimateRequest estimateRequest); public int updateEstimateReset(EstimateRequest estimateRequest);
// 견적서 상세 정보 초기화
public int updateEstimateInfoReset(EstimateRequest estimateRequest);
// 견적서 잠금 수정 // 견적서 잠금 수정
public int updateEstimateLock(EstimateRequest estimateRequest); public int updateEstimateLock(EstimateRequest estimateRequest);
@ -87,6 +96,9 @@ public interface EstimateMapper {
// 견적서 아이템 등록 // 견적서 아이템 등록
public int insertEstimateItem(ItemRequest itemRequest); public int insertEstimateItem(ItemRequest itemRequest);
// 견적서 아이템 상세 등록
public int insertEstimateInfoItem(ItemRequest itemRequest);
// 견적서 아이템 히스토리 등록 // 견적서 아이템 히스토리 등록
public int insertEstimateItemHis(ItemRequest itemRequest); public int insertEstimateItemHis(ItemRequest itemRequest);
@ -105,9 +117,15 @@ public interface EstimateMapper {
// 견적서 아이템 목록 삭제(물리 삭제) // 견적서 아이템 목록 삭제(물리 삭제)
public int deleteEstimateItemList(EstimateRequest estimateRequest); public int deleteEstimateItemList(EstimateRequest estimateRequest);
// 견적서 아이템 상세 목록 삭제(물리 삭제)
public int deleteEstimateInfoItemList(EstimateRequest estimateRequest);
// 견적서 복사 // 견적서 복사
public int insertEstimateCopy(EstimateCopyRequest estimateCopyRequest); public int insertEstimateCopy(EstimateCopyRequest estimateCopyRequest);
// 견적서 상세 복사
public int insertEstimateInfoCopy(EstimateCopyRequest estimateCopyRequest);
// 견적서 지붕면 복사 // 견적서 지붕면 복사
public int insertEstimateRoofCopy(EstimateCopyRequest estimateCopyRequest); public int insertEstimateRoofCopy(EstimateCopyRequest estimateCopyRequest);
@ -125,4 +143,7 @@ public interface EstimateMapper {
// 견적서 Q.ORDER 연동 시공타입 조회 // 견적서 Q.ORDER 연동 시공타입 조회
public String selectEstimateConstructSpecification(EstimateRequest estimateRequest); public String selectEstimateConstructSpecification(EstimateRequest estimateRequest);
// 견적서 수정일 변경
public int updateEstimateLastEditDate(EstimateRequest estimateRequest);
} }

View File

@ -317,6 +317,11 @@ public class EstimateService {
ErrorCode.INVALID_INPUT_VALUE, ErrorCode.INVALID_INPUT_VALUE,
message.getMessage("common.message.required.data", "Sale Store ID")); 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 = ""; String splitStr = "";
List<RoofRequest> orgRoofList = new ArrayList<RoofRequest>(); List<RoofRequest> orgRoofList = new ArrayList<RoofRequest>();
@ -612,12 +617,14 @@ public class EstimateService {
// 물건정보 수정 // 물건정보 수정
if (!StringUtils.isEmpty(estimateRequest.getObjectName()) if (!StringUtils.isEmpty(estimateRequest.getObjectName())
|| !StringUtils.isEmpty(estimateRequest.getObjectNameOmit()) || !StringUtils.isEmpty(estimateRequest.getObjectNameOmit())) {
|| !StringUtils.isEmpty(estimateRequest.getSurfaceType()) estimateMapper.updateObject(estimateRequest);
}
if (!StringUtils.isEmpty(estimateRequest.getSurfaceType())
|| !StringUtils.isEmpty(estimateRequest.getSetupHeight()) || !StringUtils.isEmpty(estimateRequest.getSetupHeight())
|| !StringUtils.isEmpty(estimateRequest.getStandardWindSpeedId()) || !StringUtils.isEmpty(estimateRequest.getStandardWindSpeedId())
|| !StringUtils.isEmpty(estimateRequest.getSnowfall())) { || !StringUtils.isEmpty(estimateRequest.getSnowfall())) {
estimateMapper.updateObject(estimateRequest); estimateMapper.updateObjectInfo(estimateRequest);
} }
// 견적서 정보 수정 // 견적서 정보 수정
@ -626,6 +633,7 @@ public class EstimateService {
? estimateRequest.getPriceCd() ? estimateRequest.getPriceCd()
: "UNIT_PRICE"); : "UNIT_PRICE");
estimateMapper.updateEstimate(estimateRequest); estimateMapper.updateEstimate(estimateRequest);
estimateMapper.updateEstimateInfo(estimateRequest);
// 도면 작성일 경우에만 지붕면, 도면 아이템 데이터 초기화 저장 // 도면 작성일 경우에만 지붕면, 도면 아이템 데이터 초기화 저장
if ("1".equals(estimateRequest.getDrawingFlg())) { if ("1".equals(estimateRequest.getDrawingFlg())) {
@ -707,6 +715,7 @@ public class EstimateService {
// 견적서 모든 아이템 제거 // 견적서 모든 아이템 제거
estimateMapper.deleteEstimateItemList(estimateRequest); estimateMapper.deleteEstimateItemList(estimateRequest);
estimateMapper.deleteEstimateInfoItemList(estimateRequest);
// 견적서 아이템 신규 추가 // 견적서 아이템 신규 추가
String hisNo = estimateMapper.selectEstimateItemHisNo(estimateRequest); // 아이템 히스토리 번호 조회 String hisNo = estimateMapper.selectEstimateItemHisNo(estimateRequest); // 아이템 히스토리 번호 조회
@ -734,6 +743,7 @@ public class EstimateService {
if (!"1".equals(itemRequest.getDelFlg())) { if (!"1".equals(itemRequest.getDelFlg())) {
estimateMapper.insertEstimateItem(itemRequest); estimateMapper.insertEstimateItem(itemRequest);
estimateMapper.insertEstimateInfoItem(itemRequest);
} }
} }
@ -795,6 +805,12 @@ public class EstimateService {
ErrorCode.INVALID_INPUT_VALUE, ErrorCode.INVALID_INPUT_VALUE,
message.getMessage("common.message.required.data", "Plan No")); 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(); EstimateResponse response = new EstimateResponse();
@ -818,6 +834,7 @@ public class EstimateService {
// [2]. 물건정보 복사 // [2]. 물건정보 복사
objectRequest.setContentsPath(baseDirPath + "\\\\" + objectRequest.getCopyObjectNo()); objectRequest.setContentsPath(baseDirPath + "\\\\" + objectRequest.getCopyObjectNo());
objectMapper.insertObjectCopy(objectRequest); objectMapper.insertObjectCopy(objectRequest);
objectMapper.insertObjectInfoCopy(objectRequest);
objectRequest.setObjectNo(objectRequest.getCopyObjectNo()); objectRequest.setObjectNo(objectRequest.getCopyObjectNo());
objectMapper.updateObjectDelivery(objectRequest); objectMapper.updateObjectDelivery(objectRequest);
@ -876,6 +893,7 @@ public class EstimateService {
estimateCopyRequest.setCopyObjectNo(objectRequest.getObjectNo()); estimateCopyRequest.setCopyObjectNo(objectRequest.getObjectNo());
estimateCopyRequest.setCopyPlanNo("1"); estimateCopyRequest.setCopyPlanNo("1");
estimateMapper.insertEstimateCopy(estimateCopyRequest); estimateMapper.insertEstimateCopy(estimateCopyRequest);
estimateMapper.insertEstimateInfoCopy(estimateCopyRequest);
// [5]. 견적서 아이템 복사 // [5]. 견적서 아이템 복사
for (ItemRequest itemRequest : itemList) { for (ItemRequest itemRequest : itemList) {
@ -890,6 +908,7 @@ public class EstimateService {
itemRequest.setUserId(estimateCopyRequest.getUserId()); itemRequest.setUserId(estimateCopyRequest.getUserId());
estimateMapper.insertEstimateItem(itemRequest); estimateMapper.insertEstimateItem(itemRequest);
estimateMapper.insertEstimateInfoItem(itemRequest);
} }
// [6]. 견적서 지붕면 도면 초기 데이터 복사 // [6]. 견적서 지붕면 도면 초기 데이터 복사
@ -911,24 +930,6 @@ public class EstimateService {
cs.setUserId(estimateCopyRequest.getUserId()); cs.setUserId(estimateCopyRequest.getUserId());
canvasStatusService.copyCanvasStatus(cs, true); canvasStatusService.copyCanvasStatus(cs, true);
// [8]. QSP Q.CAST SEND API
/*
List<EstimateSendResponse> resultList = new ArrayList<EstimateSendResponse>();
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) { } catch (Exception e) {
throw new QcastException(ErrorCode.INTERNAL_SERVER_ERROR); throw new QcastException(ErrorCode.INTERNAL_SERVER_ERROR);
} }
@ -958,6 +959,11 @@ public class EstimateService {
ErrorCode.INVALID_INPUT_VALUE, ErrorCode.INVALID_INPUT_VALUE,
message.getMessage("common.message.required.data", "Plan No")); 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); EstimateResponse estimateResponse = estimateMapper.selectEstimateDetail(estimateRequest);
@ -1192,8 +1198,11 @@ public class EstimateService {
// 견적서 정보 초기화 // 견적서 정보 초기화
estimateMapper.updateEstimateReset(estimateRequest); estimateMapper.updateEstimateReset(estimateRequest);
estimateMapper.updateEstimateInfoReset(estimateRequest);
// 견적서 모든 아이템 제거 // 견적서 모든 아이템 제거
estimateMapper.deleteEstimateItemList(estimateRequest); estimateMapper.deleteEstimateItemList(estimateRequest);
estimateMapper.deleteEstimateInfoItemList(estimateRequest);
// 견적서 아이템 신규 추가 // 견적서 아이템 신규 추가
String hisNo = estimateMapper.selectEstimateItemHisNo(estimateRequest); // 아이템 히스토리 번호 조회 String hisNo = estimateMapper.selectEstimateItemHisNo(estimateRequest); // 아이템 히스토리 번호 조회
for (ItemRequest itemRequest : itemList) { for (ItemRequest itemRequest : itemList) {
@ -1220,6 +1229,7 @@ public class EstimateService {
if (!"1".equals(itemRequest.getDelFlg())) { if (!"1".equals(itemRequest.getDelFlg())) {
estimateMapper.insertEstimateItem(itemRequest); estimateMapper.insertEstimateItem(itemRequest);
estimateMapper.insertEstimateInfoItem(itemRequest);
} }
} }
@ -1272,9 +1282,15 @@ public class EstimateService {
ErrorCode.INVALID_INPUT_VALUE, ErrorCode.INVALID_INPUT_VALUE,
message.getMessage("common.message.required.data", "Lock Flag")); 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 { try {
estimateMapper.updateEstimateLock(estimateRequest); estimateMapper.updateEstimateLock(estimateRequest);
estimateMapper.updateEstimateLastEditDate(estimateRequest);
} catch (Exception e) { } catch (Exception e) {
throw new QcastException(ErrorCode.INTERNAL_SERVER_ERROR); throw new QcastException(ErrorCode.INTERNAL_SERVER_ERROR);
} }
@ -1326,9 +1342,10 @@ public class EstimateService {
estimateResponse.setCustOmit("様邸"); estimateResponse.setCustOmit("様邸");
} }
// 견적서 잠금 처리 // 견적서 잠금 처리 (최종 수정일 업데이트)
estimateRequest.setLockFlg("1"); estimateRequest.setLockFlg("1");
estimateMapper.updateEstimateLock(estimateRequest); estimateMapper.updateEstimateLock(estimateRequest);
estimateMapper.updateEstimateLastEditDate(estimateRequest);
// 견적서 특이사항 조회 // 견적서 특이사항 조회
List<NoteResponse> noteList = new ArrayList<NoteResponse>(); List<NoteResponse> noteList = new ArrayList<NoteResponse>();

View File

@ -3,8 +3,6 @@ package com.interplug.qcast.biz.object;
import com.interplug.qcast.biz.object.dto.*; import com.interplug.qcast.biz.object.dto.*;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -135,21 +133,4 @@ public class ObjectController {
public PlanReqResponse selectPlanReqList(PlanReqRequest planReqRequest) throws Exception { public PlanReqResponse selectPlanReqList(PlanReqRequest planReqRequest) throws Exception {
return objectService.selectPlanReqList(planReqRequest); 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);
}
} }

View File

@ -46,30 +46,51 @@ public interface ObjectMapper {
// 물건정보 등록 // 물건정보 등록
public int insertObject(ObjectRequest objectRequest); public int insertObject(ObjectRequest objectRequest);
// 물건정보 상세 등록
public int insertObjectInfo(ObjectRequest objectRequest);
// 물건정보 복사 // 물건정보 복사
public int insertObjectCopy(ObjectRequest objectRequest); public int insertObjectCopy(ObjectRequest objectRequest);
// 물건정보 상세 복사
public int insertObjectInfoCopy(ObjectRequest objectRequest);
// 물건정보 수정 // 물건정보 수정
public int updateObject(ObjectRequest objectRequest); public int updateObject(ObjectRequest objectRequest);
// 물건정보 상세 수정
public int updateObjectInfo(ObjectRequest objectRequest);
// 물건정보 갱신일 수정 // 물건정보 갱신일 수정
public int updateObjectLastEditDate(ObjectRequest objectRequest); public int updateObjectLastEditDate(ObjectRequest objectRequest);
// 물건정보 상세 수정
public int updateObjectInfoLastEditDate(ObjectRequest objectRequest);
// 물건정보 삭제 // 물건정보 삭제
public int deleteObject(ObjectRequest objectRequest); public int deleteObject(ObjectRequest objectRequest);
// 물건정보 상세 삭제
public int deleteObjectInfo(ObjectRequest objectRequest);
// 물건정보 > 배송정보 수정 // 물건정보 > 배송정보 수정
public int updateObjectDelivery(ObjectRequest objectRequest); public int updateObjectDelivery(ObjectRequest objectRequest);
// 플랜정보 등록 // 플랜정보 등록
public int insertPlan(PlanRequest planRequest); public int insertPlan(PlanRequest planRequest);
// 플랜정보 상세 등록
public int insertPlanInfo(PlanRequest planRequest);
// 플랜정보 삭제(물리 삭제) // 플랜정보 삭제(물리 삭제)
public int deletePlan(PlanRequest planRequest); public int deletePlan(PlanRequest planRequest);
// 물건정보 물건번호 변경 // 물건정보 물건번호 변경
public int updateObjectNoChange(ObjectRequest objectRequest); public int updateObjectNoChange(ObjectRequest objectRequest);
// 물건정보 상세 물건번호 변경
public int updateObjectInfoNoChange(ObjectRequest objectRequest);
// 플랜정보 물건번호 변경 // 플랜정보 물건번호 변경
public int updatePlanObjectNoChange(ObjectRequest objectRequest); public int updatePlanObjectNoChange(ObjectRequest objectRequest);

View File

@ -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.PlanResponse;
import com.interplug.qcast.biz.object.dto.PrefResponse; import com.interplug.qcast.biz.object.dto.PrefResponse;
import com.interplug.qcast.biz.object.dto.SaleStoreResponse; 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.object.dto.WindSpeedResponse;
import com.interplug.qcast.biz.storeFavorite.StoreFavoriteService; import com.interplug.qcast.biz.storeFavorite.StoreFavoriteService;
import com.interplug.qcast.config.Exception.ErrorCode; 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.config.message.Messages;
import com.interplug.qcast.util.InterfaceQsp; import com.interplug.qcast.util.InterfaceQsp;
import io.micrometer.common.util.StringUtils; 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.net.URLEncoder;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat; 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.beans.factory.annotation.Value;
import org.springframework.http.HttpMethod; import org.springframework.http.HttpMethod;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.FileCopyUtils;
import org.springframework.web.util.UriComponentsBuilder; import org.springframework.web.util.UriComponentsBuilder;
@Slf4j @Slf4j
@ -305,6 +295,11 @@ public class ObjectService {
ErrorCode.INVALID_INPUT_VALUE, ErrorCode.INVALID_INPUT_VALUE,
message.getMessage("common.message.required.data", "Sale Store Level")); 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"); objectRequest.setSourceOrigin("QCAST_III");
@ -342,6 +337,7 @@ public class ObjectService {
objectRequest.setAddresseeCompanyNameOmit(objectRequest.getObjectNameOmit()); objectRequest.setAddresseeCompanyNameOmit(objectRequest.getObjectNameOmit());
objectRequest.setContentsPath(baseDirPath + "\\\\" + objectRequest.getObjectNo()); objectRequest.setContentsPath(baseDirPath + "\\\\" + objectRequest.getObjectNo());
result += objectMapper.insertObject(objectRequest); result += objectMapper.insertObject(objectRequest);
result += objectMapper.insertObjectInfo(objectRequest);
result += objectMapper.updateObjectDelivery(objectRequest); result += objectMapper.updateObjectDelivery(objectRequest);
// 디폴트 Plan 등록 // 디폴트 Plan 등록
@ -360,7 +356,7 @@ public class ObjectService {
result += objectMapper.insertPlan(planRequest); result += objectMapper.insertPlan(planRequest);
*/ */
// 플랜번호 존재 물건번호 업데이트 // 설계의뢰번호 존재 물건번호 업데이트
if ("0".equals(objectRequest.getTempFlg()) if ("0".equals(objectRequest.getTempFlg())
&& !StringUtils.isEmpty(objectRequest.getPlanReqNo())) { && !StringUtils.isEmpty(objectRequest.getPlanReqNo())) {
PlanReqResponse response = null; PlanReqResponse response = null;
@ -416,6 +412,11 @@ public class ObjectService {
ErrorCode.INVALID_INPUT_VALUE, ErrorCode.INVALID_INPUT_VALUE,
message.getMessage("common.message.required.data", "Sale Store Level")); 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 상세 정보 조회 // object 상세 정보 조회
ObjectResponse objectResponse = objectMapper.selectObjectDetail(objectRequest.getObjectNo()); ObjectResponse objectResponse = objectMapper.selectObjectDetail(objectRequest.getObjectNo());
@ -440,13 +441,15 @@ public class ObjectService {
+ "\\\\" + "\\\\"
+ (tempChgFlg ? objectRequest.getNewObjectNo() : objectRequest.getObjectNo())); + (tempChgFlg ? objectRequest.getNewObjectNo() : objectRequest.getObjectNo()));
result += objectMapper.updateObject(objectRequest); result += objectMapper.updateObject(objectRequest);
result += objectMapper.updateObjectInfo(objectRequest);
// 임시저장에서 저장상태로 돌리기 // 임시저장에서 저장상태로 돌리기
if (tempChgFlg) { if (tempChgFlg) {
objectMapper.updateObjectNoChange(objectRequest); objectMapper.updateObjectNoChange(objectRequest);
objectMapper.updateObjectInfoNoChange(objectRequest);
objectMapper.updatePlanObjectNoChange(objectRequest); objectMapper.updatePlanObjectNoChange(objectRequest);
// 플랜번호 존재 물건번호 업데이트 // 설계의뢰번호 존재 물건번호 업데이트
if (!StringUtils.isEmpty(objectRequest.getPlanReqNo())) { if (!StringUtils.isEmpty(objectRequest.getPlanReqNo())) {
PlanReqResponse response = null; PlanReqResponse response = null;
@ -495,10 +498,16 @@ public class ObjectService {
ErrorCode.INVALID_INPUT_VALUE, ErrorCode.INVALID_INPUT_VALUE,
message.getMessage("common.message.required.data", "Object No")); 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 { try {
// object 갱신일 수정 // object 갱신일 상세정보 수정
objectMapper.updateObjectLastEditDate(objectRequest); objectMapper.updateObjectLastEditDate(objectRequest);
objectMapper.updateObjectInfoLastEditDate(objectRequest);
} catch (Exception e) { } catch (Exception e) {
throw new QcastException(ErrorCode.INTERNAL_SERVER_ERROR); throw new QcastException(ErrorCode.INTERNAL_SERVER_ERROR);
} }
@ -555,6 +564,7 @@ public class ObjectService {
// 물건정보 삭제 // 물건정보 삭제
result = objectMapper.deleteObject(objectRequest); result = objectMapper.deleteObject(objectRequest);
result = objectMapper.deleteObjectInfo(objectRequest);
} }
return result; return result;
@ -577,6 +587,11 @@ public class ObjectService {
ErrorCode.INVALID_INPUT_VALUE, ErrorCode.INVALID_INPUT_VALUE,
message.getMessage("common.message.required.data", "Object No")); 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())) { if ("1".equals(planRequest.getCopyFlg()) && StringUtils.isEmpty(planRequest.getPlanNo())) {
throw new QcastException( throw new QcastException(
@ -661,6 +676,7 @@ public class ObjectService {
estimateCopyRequest.setCopyPlanNo(copyPlanNo); estimateCopyRequest.setCopyPlanNo(copyPlanNo);
estimateCopyRequest.setUserId(planRequest.getUserId()); estimateCopyRequest.setUserId(planRequest.getUserId());
estimateMapper.insertEstimateCopy(estimateCopyRequest); estimateMapper.insertEstimateCopy(estimateCopyRequest);
estimateMapper.insertEstimateInfoCopy(estimateCopyRequest);
if (estimateResponse != null && !StringUtils.isEmpty(estimateResponse.getEstimateDate())) { if (estimateResponse != null && !StringUtils.isEmpty(estimateResponse.getEstimateDate())) {
// [4]. 견적서 아이템 복사 // [4]. 견적서 아이템 복사
@ -678,6 +694,7 @@ public class ObjectService {
itemRequest.setUserId(estimateCopyRequest.getUserId()); itemRequest.setUserId(estimateCopyRequest.getUserId());
estimateMapper.insertEstimateItem(itemRequest); estimateMapper.insertEstimateItem(itemRequest);
estimateMapper.insertEstimateInfoItem(itemRequest);
} }
// [5]. 견적서 지붕면 도면 초기 데이터 복사 // [5]. 견적서 지붕면 도면 초기 데이터 복사
@ -714,6 +731,7 @@ public class ObjectService {
planRequest.setOrderFlg("0"); planRequest.setOrderFlg("0");
planRequest.setTempFlg("1"); planRequest.setTempFlg("1");
objectMapper.insertPlan(planRequest); objectMapper.insertPlan(planRequest);
objectMapper.insertPlanInfo(planRequest);
// 도면 기본정보 등록 // 도면 기본정보 등록
CanvasStatus cs = new CanvasStatus(); CanvasStatus cs = new CanvasStatus();
@ -753,6 +771,11 @@ public class ObjectService {
ErrorCode.INVALID_INPUT_VALUE, ErrorCode.INVALID_INPUT_VALUE,
message.getMessage("common.message.required.data", "Plan No")); 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 삭제 가능 체크 // Plan 삭제 가능 체크
List<PlanResponse> planList = objectMapper.selectPlanList(planRequest); List<PlanResponse> planList = objectMapper.selectPlanList(planRequest);
@ -855,68 +878,4 @@ public class ObjectService {
return response; 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();
}
}
}
} }

View File

@ -35,38 +35,46 @@
, P.STATUS , P.STATUS
, P.PC_TYPE_NO , P.PC_TYPE_NO
, P.NORTH_ARRANGEMENT , P.NORTH_ARRANGEMENT
, P.CONSTRUCT_SPECIFICATION_MULTI
, P.ROOF_MATERIAL_ID_MULTI , P.ROOF_MATERIAL_ID_MULTI
, P.SUPPORT_METHOD_ID_MULTI , P.SUPPORT_METHOD_ID_MULTI
, P.SUPPORT_MEAKER_MULTI , P.SUPPORT_MEAKER_MULTI
, P.DIFF_ROOF_ENABLED , 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.LAST_EDIT_DATETIME
, P.CREATE_DATETIME , PI.CONSTRUCT_SPECIFICATION_MULTI
, P.CREATE_USER , 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
, O.OBJECT_NAME_OMIT , O.OBJECT_NAME_OMIT
, O.REMARKS AS OBJECT_REMARKS , O.REMARKS AS OBJECT_REMARKS
, O.SALE_STORE_ID , O.SALE_STORE_ID
, ISNULL(O.COLD_REGION_FLG, '0') AS COLD_REGION_FLG , ISNULL(OI.COLD_REGION_FLG, '0') AS COLD_REGION_FLG
, ISNULL(O.SALT_AREA_FLG, '0') AS SALT_AREA_FLG , ISNULL(OI.SALT_AREA_FLG, '0') AS SALT_AREA_FLG
, SS.FIRST_AGENT_ID , SS.FIRST_AGENT_ID
, SS.SALE_STORE_LEVEL , 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 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 , 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) 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) INNER JOIN T_OBJECT O WITH (NOLOCK)
ON P.OBJECT_NO = O.OBJECT_NO 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) INNER JOIN M_SALES_STORE SS WITH(NOLOCK)
ON O.SALE_STORE_ID = SS.SALE_STORE_ID ON O.SALE_STORE_ID = SS.SALE_STORE_ID
WHERE P.OBJECT_NO = #{objectNo} 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_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_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 , 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 FROM
( (
SELECT SELECT
@ -93,26 +101,31 @@
, CONVERT(VARCHAR(10), P.DRAWING_ESTIMATE_CREATE_DATE, 121) AS DRAWING_ESTIMATE_CREATE_DATE , CONVERT(VARCHAR(10), P.DRAWING_ESTIMATE_CREATE_DATE, 121) AS DRAWING_ESTIMATE_CREATE_DATE
, P.ESTIMATE_VALIDITY_TERM , P.ESTIMATE_VALIDITY_TERM
, P.SNOWFALL , P.SNOWFALL
, P.ESTIMATE_TYPE
, P.ESTIMATE_OPTION
, P.PKG_ASP
, P.REMARKS
, CONVERT(NVARCHAR(10), P.LAST_EDIT_DATETIME, 121) AS ESTIMATE_DATE , 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.SALE_STORE_ID
, O.OBJECT_NAME , O.OBJECT_NAME
, O.OBJECT_NAME_OMIT , 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(MP.PREF_NAME, '') AS PREF_NAME
, ISNULL(MPA.AREA_NAME, '') AS AREA_NAME , ISNULL(MPA.AREA_NAME, '') AS AREA_NAME
, ISNULL(C1.CODE_NM, '') AS STANDARD_WIND_SPEED_NAME , ISNULL(C1.CODE_NM, '') AS STANDARD_WIND_SPEED_NAME
FROM T_PLAN P 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) INNER JOIN T_OBJECT O WITH (NOLOCK)
ON P.OBJECT_NO = O.OBJECT_NO 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) LEFT OUTER JOIN M_PREFECTURE MP WITH (NOLOCK)
ON O.PREF_ID = MP.PREF_ID ON O.PREF_ID = MP.PREF_ID
LEFT OUTER JOIN M_PREFECTURE_AREA MPA WITH (NOLOCK) LEFT OUTER JOIN M_PREFECTURE_AREA MPA WITH (NOLOCK)
ON O.PREF_ID = MPA.PREF_ID 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) LEFT OUTER JOIN M_COMM_L C1 WITH (NOLOCK)
ON C1.HEAD_CD = '202000' ON C1.HEAD_CD = '202000'
AND P.STANDARD_WIND_SPEED_ID = C1.CODE AND P.STANDARD_WIND_SPEED_ID = C1.CODE
@ -123,6 +136,8 @@
ON T.SALE_STORE_ID = SS1.SALE_STORE_ID ON T.SALE_STORE_ID = SS1.SALE_STORE_ID
LEFT OUTER JOIN M_SALES_STORE SS2 WITH (NOLOCK) LEFT OUTER JOIN M_SALES_STORE SS2 WITH (NOLOCK)
ON T.CREATE_SALE_STORE_ID = SS2.SALE_STORE_ID 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
</select> </select>
<select id="selectEstimateApiFailList" resultType="com.interplug.qcast.biz.estimate.dto.EstimateSendResponse"> <select id="selectEstimateApiFailList" resultType="com.interplug.qcast.biz.estimate.dto.EstimateSendResponse">
@ -198,14 +213,17 @@
, P.PLAN_NO , P.PLAN_NO
, P.CONSTRUCT_SPECIFICATION , P.CONSTRUCT_SPECIFICATION
, P.NORTH_ARRANGEMENT , P.NORTH_ARRANGEMENT
, P.ESTIMATE_TYPE
, P.PKG_ASP
, P.DEL_FLG , P.DEL_FLG
, CONVERT(NVARCHAR(10), P.CREATE_DATETIME, 121) AS ESTIMATE_DETAIL_CREATE_DATE
, P.LAST_EDIT_DATETIME , P.LAST_EDIT_DATETIME
, P.LAST_EDIT_USER , P.LAST_EDIT_USER
, PI.ESTIMATE_TYPE
, PI.PKG_ASP
, CONVERT(NVARCHAR(10), PI.CREATE_DATETIME, 121) AS ESTIMATE_DETAIL_CREATE_DATE
, (SELECT CODE FROM M_COMM_L WHERE HEAD_CD = '200800' AND CODE_NM = O.OBJECT_NAME_OMIT) AS OBJECT_NAME_OMIT_CD , (SELECT CODE FROM M_COMM_L WHERE HEAD_CD = '200800' AND CODE_NM = O.OBJECT_NAME_OMIT) AS OBJECT_NAME_OMIT_CD
FROM T_PLAN P 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) INNER JOIN T_OBJECT O WITH (NOLOCK)
ON P.OBJECT_NO = O.OBJECT_NO ON P.OBJECT_NO = O.OBJECT_NO
INNER JOIN M_SALES_STORE SS WITH(NOLOCK) INNER JOIN M_SALES_STORE SS WITH(NOLOCK)
@ -237,33 +255,37 @@
PE.OBJECT_NO PE.OBJECT_NO
, PE.PLAN_NO , PE.PLAN_NO
, PE.DISP_ORDER , PE.DISP_ORDER
, PE.PA_DISP_ORDER
, PE.ITEM_ID , PE.ITEM_ID
, PE.ITEM_NO , PE.ITEM_NO
, PE.ITEM_NAME , PE.ITEM_NAME
, PE.UNIT , PE.UNIT
, PE.SPECIFICATION , PE.SPECIFICATION
, PE.AMOUNT , PE.AMOUNT
, PE.BOM_AMOUNT , PEI.UNIT_PRICE
, PE.UNIT_PRICE , PEI.SALE_PRICE
, PE.SALE_PRICE , PEI.BOM_AMOUNT
, PE.FILE_UPLOAD_FLG , PEI.PA_DISP_ORDER
, PE.PKG_MATERIAL_FLG , PEI.SPECIAL_NOTE_CD
, PE.SPECIAL_NOTE_CD , PEI.PKG_MATERIAL_FLG
, PE.OPEN_FLG , PEI.FILE_UPLOAD_FLG
, PE.ITEM_CHANGE_FLG , PEI.OPEN_FLG
, PEI.ITEM_CHANGE_FLG
, I.PNOW_W , I.PNOW_W
, CASE WHEN I.POWER_COM_FLG = '1' THEN 'PC_' , CASE WHEN I.POWER_COM_FLG = '1' THEN 'PC_'
WHEN I.ITEM_GROUP = 'PC_' AND I.POWER_COM_FLG = '0' THEN 'STORAGE_BATTERY' WHEN I.ITEM_GROUP = 'PC_' AND I.POWER_COM_FLG = '0' THEN 'STORAGE_BATTERY'
ELSE I.ITEM_GROUP END AS ITEM_GROUP ELSE I.ITEM_GROUP END AS ITEM_GROUP
, CASE WHEN I.ITEM_GROUP = 'MODULE_' THEN '1' ELSE '0' END AS MODULE_FLG , CASE WHEN I.ITEM_GROUP = 'MODULE_' THEN '1' ELSE '0' END AS MODULE_FLG
FROM T_PART_ESTIMATE PE WITH (NOLOCK) FROM T_PART_ESTIMATE PE WITH (NOLOCK)
INNER JOIN T_PART_ESTIMATE_INFO PEI WITH (NOLOCK)
ON PE.OBJECT_NO = PEI.OBJECT_NO
AND PE.PLAN_NO = PEI.PLAN_NO
AND PE.DISP_ORDER = PEI.DISP_ORDER
INNER JOIN M_ITEM I WITH (NOLOCK) INNER JOIN M_ITEM I WITH (NOLOCK)
ON PE.ITEM_ID = I.ITEM_ID ON PE.ITEM_ID = I.ITEM_ID
WHERE PE.OBJECT_NO = #{objectNo} WHERE PE.OBJECT_NO = #{objectNo}
AND PE.PLAN_NO = #{planNo} AND PE.PLAN_NO = #{planNo}
<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 (PEI.PA_DISP_ORDER IS NULL OR PEI.PA_DISP_ORDER = '')
</if> </if>
ORDER BY ORDER BY
PE.DISP_ORDER ASC PE.DISP_ORDER ASC
@ -280,12 +302,14 @@
, CASE WHEN I.POWER_COM_FLG = '1' THEN 'PC_' , CASE WHEN I.POWER_COM_FLG = '1' THEN 'PC_'
WHEN I.ITEM_GROUP = 'PC_' AND I.POWER_COM_FLG = '0' THEN 'STORAGE_BATTERY' WHEN I.ITEM_GROUP = 'PC_' AND I.POWER_COM_FLG = '0' THEN 'STORAGE_BATTERY'
ELSE I.ITEM_GROUP END AS ITEM_GROUP ELSE I.ITEM_GROUP END AS ITEM_GROUP
, I.PKG_MATERIAL_FLG , II.PKG_MATERIAL_FLG
, I.FILE_UPLOAD_FLG , II.FILE_UPLOAD_FLG
, I.ITEM_CTG_GR , II.ITEM_CTG_GR
, ISNULL(PPM.SALE_PRICE, '0') AS SALE_PRICE , ISNULL(PPM.SALE_PRICE, '0') AS SALE_PRICE
, CASE WHEN PPM.SALE_PRICE = 0 THEN '1' ELSE '0' END AS OPEN_FLG , CASE WHEN PPM.SALE_PRICE = 0 THEN '1' ELSE '0' END AS OPEN_FLG
FROM M_ITEM I WITH (NOLOCK) FROM M_ITEM I WITH (NOLOCK)
INNER JOIN M_ITEM_INFO II WITH (NOLOCK)
ON I.ITEM_ID = II.ITEM_ID
LEFT OUTER JOIN M_PRICE_PATTERN_MONEY PPM LEFT OUTER JOIN M_PRICE_PATTERN_MONEY PPM
ON PPM.PRICE_PATTERN = '510' ON PPM.PRICE_PATTERN = '510'
AND I.ITEM_ID = PPM.ITEM_ID AND I.ITEM_ID = PPM.ITEM_ID
@ -307,13 +331,15 @@
, CASE WHEN I.POWER_COM_FLG = '1' THEN 'PC_' , CASE WHEN I.POWER_COM_FLG = '1' THEN 'PC_'
WHEN I.ITEM_GROUP = 'PC_' AND I.POWER_COM_FLG = '0' THEN 'STORAGE_BATTERY' WHEN I.ITEM_GROUP = 'PC_' AND I.POWER_COM_FLG = '0' THEN 'STORAGE_BATTERY'
ELSE I.ITEM_GROUP END AS ITEM_GROUP ELSE I.ITEM_GROUP END AS ITEM_GROUP
, I.PKG_MATERIAL_FLG , II.PKG_MATERIAL_FLG
, I.FILE_UPLOAD_FLG , II.FILE_UPLOAD_FLG
, I.ITEM_CTG_GR , II.ITEM_CTG_GR
, '0' AS SALE_PRICE , '0' AS SALE_PRICE
FROM M_PACKAGE_ITEM PI WITH (NOLOCK) FROM M_PACKAGE_ITEM PI WITH (NOLOCK)
INNER JOIN M_ITEM I WITH (NOLOCK) INNER JOIN M_ITEM I WITH (NOLOCK)
ON PI.ITEM_ID = I.ITEM_ID ON PI.ITEM_ID = I.ITEM_ID
INNER JOIN M_ITEM_INFO II WITH (NOLOCK)
ON I.ITEM_ID = II.ITEM_ID
WHERE PI.PACKAGE_ITEM_ID = #{itemId} WHERE PI.PACKAGE_ITEM_ID = #{itemId}
AND I.DEL_FLG = 0 AND I.DEL_FLG = 0
</select> </select>
@ -358,7 +384,7 @@
P.OBJECT_NO P.OBJECT_NO
, P.PLAN_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 , 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_ID
, RE.ROOF_SURFACE , RE.ROOF_SURFACE
, RE.ROOF_MATERIAL_ID , RE.ROOF_MATERIAL_ID
@ -372,6 +398,9 @@
, ISNULL(C2.CODE_NM, '') AS SUPPORT_METHOD_NAME , ISNULL(C2.CODE_NM, '') AS SUPPORT_METHOD_NAME
, ISNULL(C3.CODE_NM, '') AS CONSTRUCT_SPECIFICATION_NAME , ISNULL(C3.CODE_NM, '') AS CONSTRUCT_SPECIFICATION_NAME
FROM T_PLAN P 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_PART_ROOF_ESTIMATE RE WITH (NOLOCK) INNER JOIN T_PART_ROOF_ESTIMATE RE WITH (NOLOCK)
ON P.OBJECT_NO = RE.OBJECT_NO ON P.OBJECT_NO = RE.OBJECT_NO
AND P.PLAN_NO = RE.PLAN_NO AND P.PLAN_NO = RE.PLAN_NO
@ -409,17 +438,15 @@
<select id="selectEstimateCircuitItemList" parameterType="com.interplug.qcast.biz.estimate.dto.EstimateRequest" resultType="com.interplug.qcast.biz.estimate.dto.ItemResponse"> <select id="selectEstimateCircuitItemList" parameterType="com.interplug.qcast.biz.estimate.dto.EstimateRequest" resultType="com.interplug.qcast.biz.estimate.dto.ItemResponse">
/* sqlid : com.interplug.qcast.biz.estimate.selectEstimateCircuitItemList */ /* sqlid : com.interplug.qcast.biz.estimate.selectEstimateCircuitItemList */
SELECT SELECT
PE.ITEM_ID PCIE.ITEM_ID
, PE.ITEM_NO
, PE.ITEM_NAME
, PCIE.CIRCUIT_CFG , PCIE.CIRCUIT_CFG
FROM T_PART_ESTIMATE PE WITH (NOLOCK) , I.ITEM_NO
INNER JOIN T_PART_CIRCUIT_ITEM_ESTIMATE PCIE WITH (NOLOCK) , I.ITEM_NAME
ON PE.OBJECT_NO = PCIE.OBJECT_NO FROM T_PART_CIRCUIT_ITEM_ESTIMATE PCIE WITH (NOLOCK)
AND PE.PLAN_NO = PCIE.PLAN_NO INNER JOIN M_ITEM I WITH (NOLOCK)
AND PE.ITEM_ID = PCIE.ITEM_ID ON PCIE.ITEM_ID = I.ITEM_ID
WHERE PE.OBJECT_NO = #{objectNo} WHERE PCIE.OBJECT_NO = #{objectNo}
AND PE.PLAN_NO = #{planNo} AND PCIE.PLAN_NO = #{planNo}
</select> </select>
<select id="selectEstimateRoofVolList" parameterType="com.interplug.qcast.biz.estimate.dto.EstimateRequest" resultType="com.interplug.qcast.biz.estimate.dto.RoofResponse"> <select id="selectEstimateRoofVolList" parameterType="com.interplug.qcast.biz.estimate.dto.EstimateRequest" resultType="com.interplug.qcast.biz.estimate.dto.RoofResponse">
@ -572,15 +599,21 @@
SET SET
LAST_EDIT_DATETIME = GETDATE() LAST_EDIT_DATETIME = GETDATE()
, LAST_EDIT_USER = #{userId} , LAST_EDIT_USER = #{userId}
<if test='objectName != null and objectName != "" and objectNameOmit != null and objectNameOmit != ""'>
, OBJECT_NAME = #{objectName} , OBJECT_NAME = #{objectName}
, OBJECT_NAME_OMIT = #{objectNameOmit} , OBJECT_NAME_OMIT = #{objectNameOmit}
, ADDRESSEE_COMPANY_NAME = #{objectName} + ' ' + #{objectNameOmit} , ADDRESSEE_COMPANY_NAME = #{objectName} + ' ' + ISNULL(#{objectNameOmit}, '')
, ADDRESSEE_COMPANY_NAME_OMIT = #{objectNameOmit} , ADDRESSEE_COMPANY_NAME_OMIT = #{objectNameOmit}
</if>
<if test='charger != null and charger != ""'> <if test='charger != null and charger != ""'>
, RECEIVE_USER = #{charger} , RECEIVE_USER = #{charger}
</if> </if>
WHERE OBJECT_NO = #{objectNo}
</update>
<update id="updateObjectInfo" parameterType="com.interplug.qcast.biz.estimate.dto.EstimateRequest">
/* sqlid : com.interplug.qcast.biz.estimate.updateObjectInfo */
UPDATE T_OBJECT_INFO
SET
OBJECT_NO = #{objectNo}
<if test='standardWindSpeedId != null and standardWindSpeedId != ""'> <if test='standardWindSpeedId != null and standardWindSpeedId != ""'>
, STANDARD_WIND_SPEED_ID = #{standardWindSpeedId} , STANDARD_WIND_SPEED_ID = #{standardWindSpeedId}
</if> </if>
@ -600,53 +633,65 @@
/* sqlid : com.interplug.qcast.biz.estimate.updateEstimate */ /* sqlid : com.interplug.qcast.biz.estimate.updateEstimate */
UPDATE T_PLAN UPDATE T_PLAN
SET SET
ESTIMATE_TYPE = #{estimateType} LAST_EDIT_DATETIME = GETDATE()
, LAST_EDIT_USER = #{userId}
<choose> <choose>
<when test='drawingFlg != null and drawingFlg == "1"'> <when test='drawingFlg != null and drawingFlg == "1"'>
, CONSTRUCT_SPECIFICATION = #{constructSpecification} , CONSTRUCT_SPECIFICATION = #{constructSpecification}
, SETUP_HEIGHT = #{setupHeight} , SETUP_HEIGHT = #{setupHeight}
, WEATHER_POINT = #{weatherPoint} , WEATHER_POINT = #{weatherPoint}
, SLOPE = #{slope} , SLOPE = #{slope}
, ANGLE = #{angle} , ROOF_MATERIAL_ID = #{roofMaterialId}
, ROOF_MATERIAL_ID = #{roofMaterialId} , SUPPORT_METHOD_ID = #{supportMethodId}
, SUPPORT_METHOD_ID = #{supportMethodId} , DRAWING_ESTIMATE_CREATE_DATE = GETDATE()
, DRAWING_ESTIMATE_CREATE_DATE = GETDATE() , ESTIMATE_VALIDITY_TERM = '発行日より1ヶ月'
, CHARGER = #{charger} , SNOWFALL = #{snowfall}
, ESTIMATE_VALIDITY_TERM = '発行日より1ヶ月' , STANDARD_WIND_SPEED_ID = #{standardWindSpeedId}
, SNOWFALL = #{snowfall} , SUPPORT_MEAKER = #{supportMeaker}
, STANDARD_WIND_SPEED_ID = #{standardWindSpeedId} , NORTH_ARRANGEMENT = #{northArrangement}
, SUPPORT_MEAKER = #{supportMeaker} , CONSTRUCT_SPECIFICATION_MULTI = #{constructSpecificationMulti}
, NORTH_ARRANGEMENT = #{northArrangement} , ROOF_MATERIAL_ID_MULTI = #{roofMaterialIdMulti}
, CONSTRUCT_SPECIFICATION_MULTI = #{constructSpecificationMulti} , SUPPORT_METHOD_ID_MULTI = #{supportMethodIdMulti}
, ROOF_MATERIAL_ID_MULTI = #{roofMaterialIdMulti} , SUPPORT_MEAKER_MULTI = #{supportMeaker}
, SUPPORT_METHOD_ID_MULTI = #{supportMethodIdMulti} </when>
, SUPPORT_MEAKER_MULTI = #{supportMeaker}
, ESTIMATE_DATE = CONVERT(NVARCHAR(10), GETDATE(), 121)
, FILE_FLG = '0'
, ESTIMATE_OPTION = #{estimateOption}
, PKG_ASP = NULL
, PRICE_CD = #{priceCd}
, SURFACE_TYPE = #{surfaceType}
, TEMP_FLG = CASE WHEN TEMP_FLG = '0' THEN '0' ELSE #{tempFlg} END
, CREATE_DATETIME = GETDATE()
, CREATE_USER = #{userId}
</when>
<otherwise>
, CHARGER = #{charger}
, ESTIMATE_DATE = #{estimateDate}
, FILE_FLG = #{fileFlg}
, ESTIMATE_OPTION = #{estimateOption}
, REMARKS = #{remarks}
, PKG_ASP = #{pkgAsp}
, PRICE_CD = #{priceCd}
, TEMP_FLG = '0'
</otherwise>
</choose> </choose>
, CHARGER = #{charger}
, CAPACITY = #{capacity} , CAPACITY = #{capacity}
, MODULE_MODEL = #{moduleModel} , MODULE_MODEL = #{moduleModel}
, PC_TYPE_NO = #{pcTypeNo} , PC_TYPE_NO = #{pcTypeNo}
, LAST_EDIT_DATETIME = GETDATE() WHERE OBJECT_NO = #{objectNo}
, LAST_EDIT_USER = #{userId} AND PLAN_NO = #{planNo}
</update>
<update id="updateEstimateInfo" parameterType="com.interplug.qcast.biz.estimate.dto.EstimateRequest">
/* sqlid : com.interplug.qcast.biz.estimate.updateEstimateInfo */
UPDATE T_PLAN_INFO
SET
ESTIMATE_TYPE = #{estimateType}
<choose>
<when test='drawingFlg != null and drawingFlg == "1"'>
, CONSTRUCT_SPECIFICATION_MULTI = #{constructSpecificationMulti}
, ANGLE = #{angle}
, SURFACE_TYPE = #{surfaceType}
, ESTIMATE_DATE = CONVERT(NVARCHAR(10), GETDATE(), 121)
, FILE_FLG = '0'
, ESTIMATE_OPTION = #{estimateOption}
, PKG_ASP = NULL
, PRICE_CD = #{priceCd}
, TEMP_FLG = CASE WHEN TEMP_FLG = '0' THEN '0' ELSE #{tempFlg} END
, CREATE_DATETIME = GETDATE()
, CREATE_USER = #{userId}
</when>
<otherwise>
, ESTIMATE_DATE = #{estimateDate}
, FILE_FLG = #{fileFlg}
, ESTIMATE_OPTION = #{estimateOption}
, REMARKS = #{remarks}
, PKG_ASP = #{pkgAsp}
, PRICE_CD = #{priceCd}
, TEMP_FLG = '0'
</otherwise>
</choose>
WHERE OBJECT_NO = #{objectNo} WHERE OBJECT_NO = #{objectNo}
AND PLAN_NO = #{planNo} AND PLAN_NO = #{planNo}
</update> </update>
@ -655,14 +700,7 @@
/* sqlid : com.interplug.qcast.biz.estimate.updateEstimate */ /* sqlid : com.interplug.qcast.biz.estimate.updateEstimate */
UPDATE T_PLAN UPDATE T_PLAN
SET SET
ESTIMATE_TYPE = #{estimateType} CAPACITY = #{capacity}
, FILE_FLG = '0'
, ESTIMATE_OPTION = #{estimateOption}
, REMARKS = NULL
, PKG_ASP = NULL
, PRICE_CD = #{priceCd}
, TEMP_FLG = CASE WHEN TEMP_FLG = '0' THEN '0' ELSE #{tempFlg} END
, CAPACITY = #{capacity}
, MODULE_MODEL = #{moduleModel} , MODULE_MODEL = #{moduleModel}
, PC_TYPE_NO = #{pcTypeNo} , PC_TYPE_NO = #{pcTypeNo}
, LAST_EDIT_DATETIME = GETDATE() , LAST_EDIT_DATETIME = GETDATE()
@ -671,25 +709,36 @@
AND PLAN_NO = #{planNo} AND PLAN_NO = #{planNo}
</update> </update>
<update id="updateEstimateInfoReset" parameterType="com.interplug.qcast.biz.estimate.dto.EstimateRequest">
/* sqlid : com.interplug.qcast.biz.estimate.updateEstimateInfoReset */
UPDATE T_PLAN_INFO
SET
ESTIMATE_TYPE = #{estimateType}
, FILE_FLG = '0'
, ESTIMATE_OPTION = #{estimateOption}
, REMARKS = NULL
, PKG_ASP = NULL
, PRICE_CD = #{priceCd}
, TEMP_FLG = CASE WHEN TEMP_FLG = '0' THEN '0' ELSE #{tempFlg} END
WHERE OBJECT_NO = #{objectNo}
AND PLAN_NO = #{planNo}
</update>
<update id="updateEstimateLock" parameterType="com.interplug.qcast.biz.estimate.dto.EstimateRequest"> <update id="updateEstimateLock" parameterType="com.interplug.qcast.biz.estimate.dto.EstimateRequest">
/* sqlid : com.interplug.qcast.biz.estimate.updateEstimateLock */ /* sqlid : com.interplug.qcast.biz.estimate.updateEstimateLock */
UPDATE T_PLAN UPDATE T_PLAN_INFO
SET SET
LOCK_FLG = #{lockFlg} LOCK_FLG = #{lockFlg}
, LAST_EDIT_DATETIME = GETDATE()
, LAST_EDIT_USER = #{userId}
WHERE OBJECT_NO = #{objectNo} WHERE OBJECT_NO = #{objectNo}
AND PLAN_NO = #{planNo} AND PLAN_NO = #{planNo}
</update> </update>
<update id="updateEstimateApi" parameterType="com.interplug.qcast.biz.estimate.dto.EstimateRequest"> <update id="updateEstimateApi" parameterType="com.interplug.qcast.biz.estimate.dto.EstimateRequest">
/* sqlid : com.interplug.qcast.biz.estimate.updateEstimateApi */ /* sqlid : com.interplug.qcast.biz.estimate.updateEstimateApi */
UPDATE T_PLAN UPDATE T_PLAN_INFO
SET SET
DOC_NO = #{docNo} DOC_NO = #{docNo}
, SYNC_FLG = #{syncFlg} , SYNC_FLG = #{syncFlg}
, LAST_EDIT_DATETIME = GETDATE()
, LAST_EDIT_USER = #{userId}
WHERE OBJECT_NO = #{objectNo} WHERE OBJECT_NO = #{objectNo}
AND PLAN_NO = #{planNo} AND PLAN_NO = #{planNo}
</update> </update>
@ -723,58 +772,72 @@
OBJECT_NO OBJECT_NO
, PLAN_NO , PLAN_NO
, DISP_ORDER , DISP_ORDER
<if test='paDispOrder != null and paDispOrder != ""'>
, PA_DISP_ORDER
</if>
, ITEM_ID , ITEM_ID
, ITEM_NO , ITEM_NO
, ITEM_NAME , ITEM_NAME
, UNIT , UNIT
, SPECIFICATION , SPECIFICATION
, AMOUNT , AMOUNT
, BOM_AMOUNT
<if test='amountChange != null and amountChange != ""'> <if test='amountChange != null and amountChange != ""'>
, AMOUNT_CHANGE , AMOUNT_CHANGE
</if> </if>
, PART_ADD , PART_ADD
, LAST_EDIT_DATETIME , LAST_EDIT_DATETIME
, LAST_EDIT_USER , LAST_EDIT_USER
, UNIT_PRICE
, SALE_PRICE
<if test='specialNoteCd != null and specialNoteCd != ""'>
, SPECIAL_NOTE_CD
</if>
, FILE_UPLOAD_FLG
, PKG_MATERIAL_FLG
, OPEN_FLG
, ITEM_CHANGE_FLG
) VALUES ( ) VALUES (
#{objectNo} #{objectNo}
, #{planNo} , #{planNo}
, #{dispOrder} , #{dispOrder}
<if test='paDispOrder != null and paDispOrder != ""'>
, #{paDispOrder}
</if>
, #{itemId} , #{itemId}
, #{itemNo} , #{itemNo}
, #{itemName} , #{itemName}
, #{unit} , #{unit}
, #{specification} , #{specification}
, #{amount} , #{amount}
, #{bomAmount}
<if test='amountChange != null and amountChange != ""'> <if test='amountChange != null and amountChange != ""'>
, #{amountChange} , #{amountChange}
</if> </if>
, #{partAdd} , #{partAdd}
, GETDATE() , GETDATE()
, #{userId} , #{userId}
)
</insert>
<insert id="insertEstimateInfoItem" parameterType="com.interplug.qcast.biz.estimate.dto.ItemRequest">
/* sqlid : com.interplug.qcast.biz.estimate.insertEstimateInfoItem */
INSERT INTO T_PART_ESTIMATE_INFO
(
OBJECT_NO
, PLAN_NO
, DISP_ORDER
, UNIT_PRICE
, SALE_PRICE
, BOM_AMOUNT
<if test='paDispOrder != null and paDispOrder != ""'>
, PA_DISP_ORDER
</if>
<if test='specialNoteCd != null and specialNoteCd != ""'>
, SPECIAL_NOTE_CD
</if>
, PKG_MATERIAL_FLG
, FILE_UPLOAD_FLG
, OPEN_FLG
, ITEM_CHANGE_FLG
) VALUES (
#{objectNo}
, #{planNo}
, #{dispOrder}
, #{unitPrice} , #{unitPrice}
, #{salePrice} , #{salePrice}
, #{bomAmount}
<if test='paDispOrder != null and paDispOrder != ""'>
, #{paDispOrder}
</if>
<if test='specialNoteCd != null and specialNoteCd != ""'> <if test='specialNoteCd != null and specialNoteCd != ""'>
, #{specialNoteCd} , #{specialNoteCd}
</if> </if>
, #{fileUploadFlg}
, #{pkgMaterialFlg} , #{pkgMaterialFlg}
, #{fileUploadFlg}
, #{openFlg} , #{openFlg}
, #{itemChangeFlg} , #{itemChangeFlg}
) )
@ -981,6 +1044,13 @@
AND PLAN_NO = #{planNo} AND PLAN_NO = #{planNo}
</delete> </delete>
<delete id="deleteEstimateInfoItemList" parameterType="com.interplug.qcast.biz.estimate.dto.EstimateRequest">
/* sqlid : com.interplug.qcast.biz.estimate.deleteEstimateInfoItemList */
DELETE FROM T_PART_ESTIMATE_INFO
WHERE OBJECT_NO = #{objectNo}
AND PLAN_NO = #{planNo}
</delete>
<insert id="insertEstimateCopy" parameterType="com.interplug.qcast.biz.estimate.dto.EstimateCopyRequest"> <insert id="insertEstimateCopy" parameterType="com.interplug.qcast.biz.estimate.dto.EstimateCopyRequest">
/* sqlid : com.interplug.qcast.biz.estimate.insertEstimateCopy */ /* sqlid : com.interplug.qcast.biz.estimate.insertEstimateCopy */
INSERT INTO T_PLAN INSERT INTO T_PLAN
@ -1020,22 +1090,6 @@
, SUPPORT_METHOD_ID_MULTI , SUPPORT_METHOD_ID_MULTI
, SUPPORT_MEAKER_MULTI , SUPPORT_MEAKER_MULTI
, DIFF_ROOF_ENABLED , DIFF_ROOF_ENABLED
, ORDER_FLG
, ESTIMATE_DATE
, ESTIMATE_TYPE
, FILE_FLG
, ESTIMATE_OPTION
, PKG_ASP
, PRICE_CD
, REMARKS
, CONSTRUCT_SPECIFICATION_MULTI
, SURFACE_TYPE
, ANGLE
, TEMP_FLG
, LOCK_FLG
, SYNC_FLG
, CREATE_DATETIME
, CREATE_USER
) )
SELECT SELECT
#{copyObjectNo} AS OBJECT_NO #{copyObjectNo} AS OBJECT_NO
@ -1073,26 +1127,56 @@
, P.SUPPORT_METHOD_ID_MULTI , P.SUPPORT_METHOD_ID_MULTI
, P.SUPPORT_MEAKER_MULTI , P.SUPPORT_MEAKER_MULTI
, P.DIFF_ROOF_ENABLED , P.DIFF_ROOF_ENABLED
FROM T_PLAN P WITH (NOLOCK)
WHERE P.OBJECT_NO = #{objectNo}
AND P.PLAN_NO = #{planNo}
</insert>
<insert id="insertEstimateInfoCopy" parameterType="com.interplug.qcast.biz.estimate.dto.EstimateCopyRequest">
/* sqlid : com.interplug.qcast.biz.estimate.insertEstimateInfoCopy */
INSERT INTO T_PLAN_INFO
(
OBJECT_NO
, PLAN_NO
, CONSTRUCT_SPECIFICATION_MULTI
, ANGLE
, SURFACE_TYPE
, ORDER_FLG
, ESTIMATE_DATE
, ESTIMATE_TYPE
, FILE_FLG
, ESTIMATE_OPTION
, PKG_ASP
, PRICE_CD
, REMARKS
, TEMP_FLG
, LOCK_FLG
, SYNC_FLG
, CREATE_DATETIME
, CREATE_USER
)
SELECT
#{copyObjectNo} AS OBJECT_NO
, #{copyPlanNo} AS PLAN_NO
, PI.CONSTRUCT_SPECIFICATION_MULTI
, PI.ANGLE
, PI.SURFACE_TYPE
, '0' AS ORDER_FLG , '0' AS ORDER_FLG
, P.ESTIMATE_DATE , PI.ESTIMATE_DATE
, P.ESTIMATE_TYPE , PI.ESTIMATE_TYPE
, P.FILE_FLG , PI.FILE_FLG
, P.ESTIMATE_OPTION , PI.ESTIMATE_OPTION
, P.PKG_ASP , PI.PKG_ASP
, 'UNIT_PRICE' AS PRICE_CD , 'UNIT_PRICE' AS PRICE_CD
, P.REMARKS , PI.REMARKS
, P.CONSTRUCT_SPECIFICATION_MULTI
, P.SURFACE_TYPE
, P.ANGLE
, '1' AS TEMP_FLG , '1' AS TEMP_FLG
, '0' AS LOCK_FLG , '0' AS LOCK_FLG
, '0' AS SYNC_FLG , '0' AS SYNC_FLG
, GETDATE() AS CREATE_DATETIME , GETDATE() AS CREATE_DATETIME
, #{userId} AS CREATE_USER , #{userId} AS CREATE_USER
FROM T_PLAN P WITH (NOLOCK) FROM T_PLAN_INFO PI WITH (NOLOCK)
WHERE P.OBJECT_NO = #{objectNo} WHERE PI.OBJECT_NO = #{objectNo}
AND P.PLAN_NO = #{planNo} AND PI.PLAN_NO = #{planNo}
AND P.DEL_FLG = '0'
</insert> </insert>
<insert id="insertEstimateRoofCopy" parameterType="com.interplug.qcast.biz.estimate.dto.EstimateCopyRequest"> <insert id="insertEstimateRoofCopy" parameterType="com.interplug.qcast.biz.estimate.dto.EstimateCopyRequest">
@ -1241,4 +1325,14 @@
ORDER BY T.MODULE_TCNT DESC, T.ROOF_SURFACE_NUM ASC ORDER BY T.MODULE_TCNT DESC, T.ROOF_SURFACE_NUM ASC
</select> </select>
<update id="updateEstimateLastEditDate" parameterType="com.interplug.qcast.biz.estimate.dto.EstimateRequest">
/* 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}
</update>
</mapper> </mapper>

View File

@ -174,19 +174,21 @@
, O.ZIP_NO , O.ZIP_NO
, O.ADDRESS , O.ADDRESS
, O.RECEIVE_USER , O.RECEIVE_USER
, O.TEMP_FLG
, O.CREATE_DATETIME
, O.LAST_EDIT_DATETIME , O.LAST_EDIT_DATETIME
, OI.TEMP_FLG
, OI.CREATE_DATETIME
, S.SALE_STORE_NAME , S.SALE_STORE_NAME
FROM T_OBJECT O WITH (NOLOCK) 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) INNER JOIN M_SALES_STORE S WITH (NOLOCK)
ON O.SALE_STORE_ID = S.SALE_STORE_ID ON O.SALE_STORE_ID = S.SALE_STORE_ID
<if test='saleStoreId != null and saleStoreId != "T01"'> <if test='saleStoreId != null and saleStoreId != "T01"'>
INNER JOIN SALES_STORE_CTE T INNER JOIN SALES_STORE_CTE T
ON S.SALE_STORE_ID = T.SALE_STORE_ID ON S.SALE_STORE_ID = T.SALE_STORE_ID
</if> </if>
WHERE O.SOURCE_ORIGIN = 'QCAST_III' WHERE OI.SOURCE_ORIGIN = 'QCAST_III'
AND (O.ORG_DEL_FLG = '0' OR (O.TEMP_FLG = '1' AND O.TEMP_DEL_FLG = '0')) AND (OI.ORG_DEL_FLG = '0' OR (OI.TEMP_FLG = '1' AND OI.TEMP_DEL_FLG = '0'))
ORDER BY O.LAST_EDIT_DATETIME DESC ORDER BY O.LAST_EDIT_DATETIME DESC
</select> </select>
@ -235,7 +237,7 @@
ORDER BY ORDER BY
<choose> <choose>
<when test='schSortType != null and schSortType == "R"'> <when test='schSortType != null and schSortType == "R"'>
O.CREATE_DATETIME DESC OI.CREATE_DATETIME DESC
</when> </when>
<otherwise> <otherwise>
O.LAST_EDIT_DATETIME DESC O.LAST_EDIT_DATETIME DESC
@ -246,28 +248,30 @@
, O.OBJECT_NAME , O.OBJECT_NAME
, O.SALE_STORE_ID , O.SALE_STORE_ID
, O.ZIP_NO , O.ZIP_NO
, O.PREF_ID
, O.ADDRESS , O.ADDRESS
, O.RECEIVE_USER , O.RECEIVE_USER
, O.SPECIFICATION_CONFIRM_DATE , O.SPECIFICATION_CONFIRM_DATE
, O.CREATE_DATETIME
, O.LAST_EDIT_DATETIME , O.LAST_EDIT_DATETIME
, O.AREA_ID , OI.AREA_ID
, O.PREF_ID , OI.STANDARD_WIND_SPEED_ID
, O.STANDARD_WIND_SPEED_ID , OI.VERTICAL_SNOW_COVER
, O.VERTICAL_SNOW_COVER , OI.SURFACE_TYPE
, O.SURFACE_TYPE , OI.INSTALL_HEIGHT
, O.INSTALL_HEIGHT , OI.CON_TYPE
, O.CON_TYPE , OI.COLD_REGION_FLG
, O.COLD_REGION_FLG , OI.SALT_AREA_FLG
, O.SALT_AREA_FLG , ISNULL(OI.TEMP_FLG, '0') AS TEMP_FLG
, ISNULL(O.TEMP_FLG, '0') AS TEMP_FLG , OI.CREATE_DATETIME
, S.SALE_STORE_NAME , S.SALE_STORE_NAME
, S.DISP_COMPANY_NAME , S.DISP_COMPANY_NAME
, ISNULL(P.PREF_NAME, '') AS PREF_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 = 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 , (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) 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) INNER JOIN M_SALES_STORE S WITH (NOLOCK)
ON O.SALE_STORE_ID = S.SALE_STORE_ID ON O.SALE_STORE_ID = S.SALE_STORE_ID
<if test='(saleStoreId != null and saleStoreId != "T01") or (schSelSaleStoreId != null and schSelSaleStoreId != "")'> <if test='(saleStoreId != null and saleStoreId != "T01") or (schSelSaleStoreId != null and schSelSaleStoreId != "")'>
@ -276,11 +280,11 @@
</if> </if>
LEFT OUTER JOIN M_PREFECTURE P LEFT OUTER JOIN M_PREFECTURE P
ON O.PREF_ID = P.PREF_ID ON O.PREF_ID = P.PREF_ID
WHERE O.SOURCE_ORIGIN = 'QCAST_III' WHERE OI.SOURCE_ORIGIN = 'QCAST_III'
AND (O.ORG_DEL_FLG = '0' OR (O.TEMP_FLG = '1' AND O.TEMP_DEL_FLG = '0')) AND (OI.ORG_DEL_FLG = '0' OR (OI.TEMP_FLG = '1' AND OI.TEMP_DEL_FLG = '0'))
<if test='schObjectNo != null and schObjectNo != ""'> <if test='schObjectNo != null and schObjectNo != ""'>
AND O.OBJECT_NO LIKE '%' + #{schObjectNo} + '%' AND O.OBJECT_NO LIKE '%' + #{schObjectNo} + '%'
AND O.TEMP_FLG = '0' AND OI.TEMP_FLG = '0'
</if> </if>
<if test='schSaleStoreId != null and schSaleStoreId != ""'> <if test='schSaleStoreId != null and schSaleStoreId != ""'>
AND O.SALE_STORE_ID = #{schSaleStoreId} AND O.SALE_STORE_ID = #{schSaleStoreId}
@ -319,11 +323,11 @@
</when> </when>
<when test='schDateType != null and schDateType == "R" and (schFromDt != null and schFromDt != "") and (schToDt != null and schToDt != "")'> <when test='schDateType != null and schDateType == "R" and (schFromDt != null and schFromDt != "") and (schToDt != null and schToDt != "")'>
/* 등록일 시작일,종료일 검색조건 */ /* 등록일 시작일,종료일 검색조건 */
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')
</when> </when>
</choose> </choose>
<if test='schTempFlg != null and schTempFlg != ""'> <if test='schTempFlg != null and schTempFlg != ""'>
AND O.TEMP_FLG = #{schTempFlg} AND OI.TEMP_FLG = #{schTempFlg}
</if> </if>
) TT ) TT
<if test='startRow != null and startRow != "" and endRow != null and endRow != ""'> <if test='startRow != null and startRow != "" and endRow != null and endRow != ""'>
@ -352,21 +356,21 @@
, O.RECEIVE_USER , O.RECEIVE_USER
, O.SPECIFICATION_CONFIRM_DATE , O.SPECIFICATION_CONFIRM_DATE
, O.CONTENTS_PATH , O.CONTENTS_PATH
, O.AREA_ID , OI.AREA_ID
, O.STANDARD_WIND_SPEED_ID , OI.STANDARD_WIND_SPEED_ID
, O.VERTICAL_SNOW_COVER , OI.VERTICAL_SNOW_COVER
, O.SURFACE_TYPE , OI.SURFACE_TYPE
, CASE WHEN ISNUMERIC(O.INSTALL_HEIGHT) = 1 THEN CAST(CONVERT(FLOAT, O.INSTALL_HEIGHT) AS INT) ELSE 0 END AS INSTALL_HEIGHT , CASE WHEN ISNUMERIC(OI.INSTALL_HEIGHT) = 1 THEN CAST(CONVERT(FLOAT, OI.INSTALL_HEIGHT) AS INT) ELSE 0 END AS INSTALL_HEIGHT
, O.CON_TYPE , OI.CON_TYPE
, O.COLD_REGION_FLG , OI.COLD_REGION_FLG
, O.SALT_AREA_FLG , OI.SALT_AREA_FLG
, ISNULL(O.TEMP_FLG, '0') AS TEMP_FLG , ISNULL(OI.TEMP_FLG, '0') AS TEMP_FLG
, O.CREATE_DATETIME , OI.CREATE_DATETIME
, O.CREATE_USER , OI.CREATE_USER
, O.LAST_EDIT_DATETIME , 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 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.FIRST_AGENT_ID
, S.SALE_STORE_LEVEL , S.SALE_STORE_LEVEL
, ISNULL(P.PREF_NAME, '') AS PREF_NAME , 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 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 , (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) 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) INNER JOIN M_SALES_STORE S WITH(NOLOCK)
ON O.SALE_STORE_ID = S.SALE_STORE_ID ON O.SALE_STORE_ID = S.SALE_STORE_ID
LEFT OUTER JOIN M_PREFECTURE P LEFT OUTER JOIN M_PREFECTURE P
ON O.PREF_ID = P.PREF_ID ON O.PREF_ID = P.PREF_ID
LEFT OUTER JOIN M_PREFECTURE_AREA PA 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} WHERE O.OBJECT_NO = #{objectNo}
AND O.SOURCE_ORIGIN = 'QCAST_III' AND OI.SOURCE_ORIGIN = 'QCAST_III'
AND (O.ORG_DEL_FLG = '0' OR (O.TEMP_FLG = '1' AND O.TEMP_DEL_FLG = '0')) AND (OI.ORG_DEL_FLG = '0' OR (OI.TEMP_FLG = '1' AND OI.TEMP_DEL_FLG = '0'))
</select> </select>
<select id="selectObjectNo" parameterType="com.interplug.qcast.biz.object.dto.ObjectRequest" resultType="String"> <select id="selectObjectNo" parameterType="com.interplug.qcast.biz.object.dto.ObjectRequest" resultType="String">
@ -407,48 +413,51 @@
<select id="selectPlanList" parameterType="com.interplug.qcast.biz.object.dto.PlanRequest" resultType="com.interplug.qcast.biz.object.dto.PlanResponse"> <select id="selectPlanList" parameterType="com.interplug.qcast.biz.object.dto.PlanRequest" resultType="com.interplug.qcast.biz.object.dto.PlanResponse">
/* sqlid : com.interplug.qcast.biz.object.selectPlanList */ /* sqlid : com.interplug.qcast.biz.object.selectPlanList */
SELECT SELECT
T.OBJECT_NO P.OBJECT_NO
, T.PLAN_NO , P.PLAN_NO
, T.CONSTRUCT_SPECIFICATION , P.CONSTRUCT_SPECIFICATION
, T.SETUP_HEIGHT , P.SETUP_HEIGHT
, T.WEATHER_POINT , P.WEATHER_POINT
, T.ROOF_KIND_ID , P.ROOF_KIND_ID
, T.SLOPE , P.SLOPE
, T.ROOF_MATERIAL_CLASS_ID , P.ROOF_MATERIAL_CLASS_ID
, T.ROOF_MATERIAL_ID , P.ROOF_MATERIAL_ID
, T.SUPPORT_METHOD_ID , P.SUPPORT_METHOD_ID
, T.MODULE_MODEL , P.MODULE_MODEL
, T.CHARGER , P.CHARGER
, T.ESTIMATE_VALIDITY_TERM , P.ESTIMATE_VALIDITY_TERM
, T.DECISION_PLAN , P.DECISION_PLAN
, T.NUMBER , P.NUMBER
, T.CAPACITY , P.CAPACITY
, T.SNOWFALL , P.SNOWFALL
, T.STANDARD_WIND_SPEED_CHECK , P.STANDARD_WIND_SPEED_CHECK
, T.OPTION_COVER , P.OPTION_COVER
, T.HANWFA_FLG , P.HANWFA_FLG
, T.STAND_KIND_ID , P.STAND_KIND_ID
, T.STANDARD_WIND_SPEED_ID , P.STANDARD_WIND_SPEED_ID
, T.SUPPORT_MEAKER , P.SUPPORT_MEAKER
, T.CONSUMPTION_TAX_ID , P.CONSUMPTION_TAX_ID
, T.STATUS , P.STATUS
, T.PC_TYPE_NO , P.PC_TYPE_NO
, T.NORTH_ARRANGEMENT , P.NORTH_ARRANGEMENT
, T.ROOF_MATERIAL_ID_MULTI , P.ROOF_MATERIAL_ID_MULTI
, T.SUPPORT_METHOD_ID_MULTI , P.SUPPORT_METHOD_ID_MULTI
, T.SUPPORT_MEAKER_MULTI , P.SUPPORT_MEAKER_MULTI
, T.DIFF_ROOF_ENABLED , P.DIFF_ROOF_ENABLED
, T.ORDER_FLG , PI.ORDER_FLG
, T.ESTIMATE_DATE , PI.ESTIMATE_DATE
, T.CONSTRUCT_SPECIFICATION_MULTI , PI.CONSTRUCT_SPECIFICATION_MULTI
, T.DOC_NO , PI.DOC_NO
, T.TEMP_FLG , PI.TEMP_FLG
, (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 = 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) INNER JOIN T_OBJECT O WITH (NOLOCK)
ON T.OBJECT_NO = O.OBJECT_NO ON P.OBJECT_NO = O.OBJECT_NO
WHERE T.OBJECT_NO = #{objectNo} WHERE P.OBJECT_NO = #{objectNo}
AND T.DEL_FLG = '0' AND P.DEL_FLG = '0'
</select> </select>
<insert id="insertObjectNo" parameterType="com.interplug.qcast.biz.object.dto.ObjectRequest"> <insert id="insertObjectNo" parameterType="com.interplug.qcast.biz.object.dto.ObjectRequest">
@ -499,25 +508,10 @@
, FIRST_STORE_CHARGER , FIRST_STORE_CHARGER
, CONTENTS_PATH , CONTENTS_PATH
, DEL_FLG , DEL_FLG
, CREATE_DATETIME
, CREATE_USER
, LAST_EDIT_DATETIME , LAST_EDIT_DATETIME
, LAST_EDIT_USER , LAST_EDIT_USER
, EDIT_AGENCY , EDIT_AGENCY
, NORTH_ARRANGEMENT , 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 ( ) VALUES (
#{objectNo} #{objectNo}
, #{saleStoreId} , #{saleStoreId}
@ -547,10 +541,33 @@
, #{delFlg} , #{delFlg}
, GETDATE() , GETDATE()
, #{userId} , #{userId}
, GETDATE()
, #{userId}
, '0' , '0'
, '0' , '0'
)
</insert>
<insert id="insertObjectInfo" parameterType="com.interplug.qcast.biz.object.dto.ObjectRequest">
/* 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} , #{planReqNo}
, #{areaId} , #{areaId}
, #{standardWindSpeedId} , #{standardWindSpeedId}
@ -564,6 +581,8 @@
, #{tempFlg} , #{tempFlg}
, #{tempDelFlg} , #{tempDelFlg}
, #{orgDelFlg} , #{orgDelFlg}
, GETDATE()
, #{userId}
) )
</insert> </insert>
@ -597,24 +616,10 @@
, FIRST_STORE_CHARGER , FIRST_STORE_CHARGER
, CONTENTS_PATH , CONTENTS_PATH
, DEL_FLG , DEL_FLG
, CREATE_DATETIME
, CREATE_USER
, LAST_EDIT_DATETIME , LAST_EDIT_DATETIME
, LAST_EDIT_USER , LAST_EDIT_USER
, EDIT_AGENCY , EDIT_AGENCY
, NORTH_ARRANGEMENT , 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 SELECT
#{copyObjectNo} AS OBJECT_NO #{copyObjectNo} AS OBJECT_NO
@ -643,12 +648,19 @@
, #{receiveUser} AS FIRST_STORE_CHARGER , #{receiveUser} AS FIRST_STORE_CHARGER
, #{contentsPath} AS CONTENTS_PATH , #{contentsPath} AS CONTENTS_PATH
, #{delFlg} AS DEL_FLG , #{delFlg} AS DEL_FLG
, GETDATE() AS CREATE_DATETIME
, #{userId} AS CREATE_USER
, GETDATE() AS LAST_EDIT_DATETIME , GETDATE() AS LAST_EDIT_DATETIME
, #{userId} AS LAST_EDIT_USER , #{userId} AS LAST_EDIT_USER
, EDIT_AGENCY , EDIT_AGENCY
, NORTH_ARRANGEMENT , NORTH_ARRANGEMENT
FROM T_OBJECT O WITH (NOLOCK)
WHERE O.OBJECT_NO = #{objectNo}
</insert>
<insert id="insertObjectInfoCopy" parameterType="com.interplug.qcast.biz.object.dto.ObjectRequest">
/* sqlid : com.interplug.qcast.biz.object.insertObjectInfoCopy */
INSERT INTO T_OBJECT_INFO
(
OBJECT_NO
, AREA_ID , AREA_ID
, STANDARD_WIND_SPEED_ID , STANDARD_WIND_SPEED_ID
, VERTICAL_SNOW_COVER , VERTICAL_SNOW_COVER
@ -657,12 +669,31 @@
, CON_TYPE , CON_TYPE
, COLD_REGION_FLG , COLD_REGION_FLG
, SALT_AREA_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 , #{tempFlg} AS TEMP_FLG
, #{tempDelFlg} AS TEMP_DEL_FLG , #{tempDelFlg} AS TEMP_DEL_FLG
, 'QCAST_III' AS SOURCE_ORIGIN
, #{orgDelFlg} AS ORG_DEL_FLG , #{orgDelFlg} AS ORG_DEL_FLG
FROM T_OBJECT O WITH (NOLOCK) , GETDATE() AS CREATE_DATETIME
WHERE O.OBJECT_NO = #{objectNo} , #{userId} AS CREATE_USER
FROM T_OBJECT_INFO OI WITH (NOLOCK)
WHERE OI.OBJECT_NO = #{objectNo}
</insert> </insert>
<update id="updateObject" parameterType="com.interplug.qcast.biz.object.dto.ObjectRequest"> <update id="updateObject" parameterType="com.interplug.qcast.biz.object.dto.ObjectRequest">
@ -682,42 +713,57 @@
, REMARKS = #{remarks} , REMARKS = #{remarks}
, RECEIVE_USER = #{receiveUser} , RECEIVE_USER = #{receiveUser}
, CONTENTS_PATH = #{contentsPath} , 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_DATETIME = GETDATE()
, LAST_EDIT_USER = #{userId} , LAST_EDIT_USER = #{userId}
WHERE OBJECT_NO = #{objectNo} WHERE OBJECT_NO = #{objectNo}
</update> </update>
<update id="updateObjectInfo" parameterType="com.interplug.qcast.biz.object.dto.ObjectRequest">
/* 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}
</update>
<update id="updateObjectLastEditDate" parameterType="com.interplug.qcast.biz.object.dto.ObjectRequest"> <update id="updateObjectLastEditDate" parameterType="com.interplug.qcast.biz.object.dto.ObjectRequest">
/* sqlid : com.interplug.qcast.biz.object.updateObjectLastEditDate */ /* sqlid : com.interplug.qcast.biz.object.updateObjectLastEditDate */
UPDATE T_OBJECT UPDATE T_OBJECT
SET SET
OBJECT_NO = #{objectNo} OBJECT_NO = #{objectNo}
<if test='standardWindSpeedId != null and standardWindSpeedId != ""'>
, STANDARD_WIND_SPEED_ID = #{standardWindSpeedId}
</if>
<if test='verticalSnowCover != null and verticalSnowCover != ""'>
, VERTICAL_SNOW_COVER = #{verticalSnowCover}
</if>
<if test='surfaceType != null and surfaceType != ""'>
, SURFACE_TYPE = #{surfaceType}
</if>
<if test='installHeight != null and installHeight != ""'>
, INSTALL_HEIGHT = #{installHeight}
</if>
, LAST_EDIT_DATETIME = GETDATE() , LAST_EDIT_DATETIME = GETDATE()
, LAST_EDIT_USER = #{userId} , LAST_EDIT_USER = #{userId}
WHERE OBJECT_NO = #{objectNo} WHERE OBJECT_NO = #{objectNo}
</update> </update>
<update id="updateObjectInfoLastEditDate" parameterType="com.interplug.qcast.biz.object.dto.ObjectRequest">
/* sqlid : com.interplug.qcast.biz.object.updateObjectInfoLastEditDate */
UPDATE T_OBJECT_INFO
SET
OBJECT_NO = #{objectNo}
<if test='standardWindSpeedId != null and standardWindSpeedId != ""'>
, STANDARD_WIND_SPEED_ID = #{standardWindSpeedId}
</if>
<if test='verticalSnowCover != null and verticalSnowCover != ""'>
, VERTICAL_SNOW_COVER = #{verticalSnowCover}
</if>
<if test='surfaceType != null and surfaceType != ""'>
, SURFACE_TYPE = #{surfaceType}
</if>
<if test='installHeight != null and installHeight != ""'>
, INSTALL_HEIGHT = #{installHeight}
</if>
WHERE OBJECT_NO = #{objectNo}
</update>
<update id="updateObjectDelivery" parameterType="com.interplug.qcast.biz.object.dto.ObjectRequest"> <update id="updateObjectDelivery" parameterType="com.interplug.qcast.biz.object.dto.ObjectRequest">
/* sqlid : com.interplug.qcast.biz.object.updateObjectDelivery */ /* sqlid : com.interplug.qcast.biz.object.updateObjectDelivery */
UPDATE A SET UPDATE A SET
@ -734,11 +780,18 @@
<update id="deleteObject" parameterType="com.interplug.qcast.biz.object.dto.ObjectRequest"> <update id="deleteObject" parameterType="com.interplug.qcast.biz.object.dto.ObjectRequest">
/* sqlid : com.interplug.qcast.biz.object.deleteObject */ /* sqlid : com.interplug.qcast.biz.object.deleteObject */
UPDATE T_OBJECT UPDATE T_OBJECT
SET
LAST_EDIT_DATETIME = GETDATE()
, LAST_EDIT_USER = #{userId}
WHERE OBJECT_NO = #{objectNo}
</update>
<update id="deleteObjectInfo" parameterType="com.interplug.qcast.biz.object.dto.ObjectRequest">
/* sqlid : com.interplug.qcast.biz.object.deleteObjectInfo */
UPDATE T_OBJECT_INFO
SET SET
ORG_DEL_FLG = '1' ORG_DEL_FLG = '1'
, TEMP_DEL_FLG = '1' , TEMP_DEL_FLG = '1'
, LAST_EDIT_DATETIME = GETDATE()
, LAST_EDIT_USER = #{userId}
WHERE OBJECT_NO = #{objectNo} WHERE OBJECT_NO = #{objectNo}
</update> </update>
@ -826,6 +879,26 @@
) )
</insert> </insert>
<insert id="insertPlanInfo" parameterType="com.interplug.qcast.biz.object.dto.PlanRequest">
/* 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}
)
</insert>
<update id="deletePlan" parameterType="com.interplug.qcast.biz.object.dto.PlanRequest"> <update id="deletePlan" parameterType="com.interplug.qcast.biz.object.dto.PlanRequest">
/* sqlid : com.interplug.qcast.biz.object.deletePlan */ /* sqlid : com.interplug.qcast.biz.object.deletePlan */
UPDATE T_PLAN UPDATE T_PLAN
@ -840,6 +913,14 @@
<update id="updateObjectNoChange" parameterType="com.interplug.qcast.biz.object.dto.ObjectRequest"> <update id="updateObjectNoChange" parameterType="com.interplug.qcast.biz.object.dto.ObjectRequest">
/* sqlid : com.interplug.qcast.biz.object.updateObjectChange */ /* sqlid : com.interplug.qcast.biz.object.updateObjectChange */
UPDATE T_OBJECT UPDATE T_OBJECT
SET
OBJECT_NO = #{newObjectNo}
WHERE OBJECT_NO = #{objectNo}
</update>
<update id="updateObjectInfoNoChange" parameterType="com.interplug.qcast.biz.object.dto.ObjectRequest">
/* sqlid : com.interplug.qcast.biz.object.updateObjectInfoNoChange */
UPDATE T_OBJECT_INFO
SET SET
OBJECT_NO = #{newObjectNo} OBJECT_NO = #{newObjectNo}
, TEMP_FLG = '0' , TEMP_FLG = '0'