|
|
|
|
@ -40,10 +40,7 @@ import java.io.IOException;
|
|
|
|
|
import java.io.InputStream;
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
@ -404,6 +401,7 @@ public class EstimateService {
|
|
|
|
|
itemRequest.setItemCtgGr(itemResponse.getItemCtgGr());
|
|
|
|
|
itemRequest.setPartAdd("0");
|
|
|
|
|
itemRequest.setDelFlg("0");
|
|
|
|
|
itemRequest.setDrawingItemFlg("1");
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -438,6 +436,7 @@ public class EstimateService {
|
|
|
|
|
bomItem.setItemCtgGr(itemResponse.getItemCtgGr());
|
|
|
|
|
bomItem.setPartAdd("0");
|
|
|
|
|
bomItem.setDelFlg("0");
|
|
|
|
|
bomItem.setDrawingItemFlg("1");
|
|
|
|
|
|
|
|
|
|
estimateBomList.add(bomItem);
|
|
|
|
|
}
|
|
|
|
|
@ -445,9 +444,7 @@ public class EstimateService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// BOM 컴포넌트 추가
|
|
|
|
|
for (ItemRequest estimateBom : estimateBomList) {
|
|
|
|
|
itemList.add(estimateBom);
|
|
|
|
|
}
|
|
|
|
|
itemList.addAll(estimateBomList);
|
|
|
|
|
|
|
|
|
|
// [4]. 견적특이사항 관련 데이터 셋팅
|
|
|
|
|
NoteRequest noteRequest = new NoteRequest();
|
|
|
|
|
@ -474,10 +471,11 @@ public class EstimateService {
|
|
|
|
|
estimateOptions += !StringUtils.isEmpty(estimateOptions) ? splitStr : "";
|
|
|
|
|
estimateOptions += "ATTR004"; // 북면설치 체크
|
|
|
|
|
} else if ("ATTR005".equals(noteResponse.getCode())
|
|
|
|
|
&& "1".equals(objectResponse.getSaltAreaFlg())) {
|
|
|
|
|
&& "1".equals(objectResponse != null ? objectResponse.getSaltAreaFlg() : "")) {
|
|
|
|
|
estimateOptions += !StringUtils.isEmpty(estimateOptions) ? splitStr : "";
|
|
|
|
|
estimateOptions += "ATTR005"; // 염해지역 체크
|
|
|
|
|
} else if ("ATTR006".equals(objectResponse.getColdRegionFlg())
|
|
|
|
|
} else if ("ATTR006"
|
|
|
|
|
.equals(objectResponse != null ? objectResponse.getColdRegionFlg() : "")
|
|
|
|
|
&& "1".equals(estimateRequest.getNorthArrangement())) {
|
|
|
|
|
estimateOptions += !StringUtils.isEmpty(estimateOptions) ? splitStr : "";
|
|
|
|
|
estimateOptions += "ATTR006"; // 적설지역 체크
|
|
|
|
|
@ -864,6 +862,319 @@ public class EstimateService {
|
|
|
|
|
return response;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 견적서 초기화
|
|
|
|
|
*
|
|
|
|
|
* @param estimateRequest
|
|
|
|
|
* @return EstimateResponse 견적서 초기화 후 상세 정보
|
|
|
|
|
* @throws Exception
|
|
|
|
|
*/
|
|
|
|
|
public EstimateResponse updateEstimateReset(EstimateRequest estimateRequest) throws Exception {
|
|
|
|
|
// Validation
|
|
|
|
|
if (StringUtils.isEmpty(estimateRequest.getObjectNo())) {
|
|
|
|
|
throw new QcastException(
|
|
|
|
|
ErrorCode.INVALID_INPUT_VALUE,
|
|
|
|
|
message.getMessage("common.message.required.data", "Object No"));
|
|
|
|
|
}
|
|
|
|
|
if (StringUtils.isEmpty(estimateRequest.getPlanNo())) {
|
|
|
|
|
throw new QcastException(
|
|
|
|
|
ErrorCode.INVALID_INPUT_VALUE,
|
|
|
|
|
message.getMessage("common.message.required.data", "Plan No"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 견적서 상세 조회
|
|
|
|
|
EstimateResponse estimateResponse = estimateMapper.selectEstimateDetail(estimateRequest);
|
|
|
|
|
if (estimateResponse == null) {
|
|
|
|
|
throw new QcastException(
|
|
|
|
|
ErrorCode.NOT_FOUND, message.getMessage("common.message.required.data", "Estimate Info"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 응답 객체
|
|
|
|
|
EstimateResponse response = new EstimateResponse();
|
|
|
|
|
String splitStr = "、";
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
// [1]. 견적서 기본셋팅
|
|
|
|
|
estimateRequest.setEstimateType("YJOD");
|
|
|
|
|
estimateRequest.setPriceCd("UNIT_PRICE");
|
|
|
|
|
estimateRequest.setTempFlg("0".equals(estimateResponse.getTempFlg()) ? "0" : "1");
|
|
|
|
|
|
|
|
|
|
// 물건정보 조회 후 데이터 축출
|
|
|
|
|
ObjectResponse objectResponse =
|
|
|
|
|
objectMapper.selectObjectDetail(estimateRequest.getObjectNo());
|
|
|
|
|
if (objectResponse != null) {
|
|
|
|
|
estimateRequest.setWeatherPoint(
|
|
|
|
|
objectResponse.getPrefName() + " - " + objectResponse.getAreaName());
|
|
|
|
|
estimateRequest.setCharger(objectResponse.getReceiveUser());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// [2] 도면에서 저장된 아이템 목록 조회 (BOM 컴포넌트 제외)
|
|
|
|
|
estimateRequest.setSchBomNotExist("1");
|
|
|
|
|
estimateRequest.setSchDrawingFlg("1");
|
|
|
|
|
List<ItemResponse> estimateItemList = estimateMapper.selectEstimateItemList(estimateRequest);
|
|
|
|
|
List<ItemRequest> itemList = new ArrayList<ItemRequest>();
|
|
|
|
|
for (ItemResponse itemResponse : estimateItemList) {
|
|
|
|
|
ItemRequest itemRequest = new ItemRequest();
|
|
|
|
|
itemRequest.setObjectNo(itemResponse.getObjectNo());
|
|
|
|
|
itemRequest.setPlanNo(itemResponse.getPlanNo());
|
|
|
|
|
itemRequest.setItemId(itemResponse.getItemId());
|
|
|
|
|
itemRequest.setAmount(itemResponse.getAmount());
|
|
|
|
|
|
|
|
|
|
itemList.add(itemRequest);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// [3]. 아이템 관련 데이터 셋팅
|
|
|
|
|
String[] arrItemId = new String[itemList.size()];
|
|
|
|
|
int i = 0;
|
|
|
|
|
for (ItemRequest itemRequest : itemList) {
|
|
|
|
|
arrItemId[i++] = itemRequest.getItemId();
|
|
|
|
|
}
|
|
|
|
|
estimateRequest.setArrItemId(arrItemId);
|
|
|
|
|
// 아이템의 마스터 정보 및 정가 정보 조회
|
|
|
|
|
List<ItemResponse> itemResponseList = estimateMapper.selectItemMasterList(estimateRequest);
|
|
|
|
|
// BOM 정보 목록
|
|
|
|
|
List<ItemRequest> estimateBomList = new ArrayList<ItemRequest>();
|
|
|
|
|
|
|
|
|
|
int j = 1;
|
|
|
|
|
for (ItemRequest itemRequest : itemList) {
|
|
|
|
|
int dispOrder = 100 * j++;
|
|
|
|
|
itemRequest.setDispOrder(String.valueOf(dispOrder));
|
|
|
|
|
|
|
|
|
|
for (ItemResponse itemResponse : itemResponseList) {
|
|
|
|
|
if (itemRequest.getItemId().equals(itemResponse.getItemId())) {
|
|
|
|
|
itemRequest.setItemNo(itemResponse.getItemNo());
|
|
|
|
|
itemRequest.setItemName(itemResponse.getItemName());
|
|
|
|
|
itemRequest.setUnit(itemResponse.getUnit());
|
|
|
|
|
itemRequest.setPnowW(itemResponse.getPnowW());
|
|
|
|
|
itemRequest.setSpecification(itemResponse.getPnowW());
|
|
|
|
|
itemRequest.setUnitPrice(itemResponse.getSalePrice());
|
|
|
|
|
itemRequest.setSalePrice(itemResponse.getSalePrice());
|
|
|
|
|
itemRequest.setFileUploadFlg(itemResponse.getFileUploadFlg());
|
|
|
|
|
itemRequest.setPkgMaterialFlg(itemResponse.getPkgMaterialFlg());
|
|
|
|
|
itemRequest.setOpenFlg(itemResponse.getOpenFlg());
|
|
|
|
|
itemRequest.setItemGroup(itemResponse.getItemGroup());
|
|
|
|
|
itemRequest.setItemCtgGr(itemResponse.getItemCtgGr());
|
|
|
|
|
itemRequest.setPartAdd("0");
|
|
|
|
|
itemRequest.setDelFlg("0");
|
|
|
|
|
itemRequest.setDrawingItemFlg("1");
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 아이템 BOM Header인 경우 컴포넌트 등록 처리
|
|
|
|
|
if ("ERLA".equals(itemRequest.getItemCtgGr())) {
|
|
|
|
|
List<ItemResponse> itemBomList =
|
|
|
|
|
estimateMapper.selectItemMasterBomList(itemRequest.getItemId());
|
|
|
|
|
|
|
|
|
|
int k = 1;
|
|
|
|
|
for (ItemResponse itemResponse : itemBomList) {
|
|
|
|
|
ItemRequest bomItem = new ItemRequest();
|
|
|
|
|
|
|
|
|
|
bomItem.setPaDispOrder(String.valueOf(dispOrder));
|
|
|
|
|
bomItem.setDispOrder(String.valueOf(dispOrder + k++));
|
|
|
|
|
bomItem.setItemId(itemResponse.getItemId());
|
|
|
|
|
bomItem.setItemNo(itemResponse.getItemNo());
|
|
|
|
|
bomItem.setItemName(itemResponse.getItemName());
|
|
|
|
|
bomItem.setUnit(itemResponse.getUnit());
|
|
|
|
|
bomItem.setPnowW(itemResponse.getPnowW());
|
|
|
|
|
bomItem.setSpecification(itemResponse.getPnowW());
|
|
|
|
|
bomItem.setAmount(
|
|
|
|
|
String.valueOf(
|
|
|
|
|
Integer.parseInt(itemResponse.getBomAmount())
|
|
|
|
|
* Integer.parseInt(itemRequest.getAmount())));
|
|
|
|
|
bomItem.setBomAmount(itemResponse.getBomAmount());
|
|
|
|
|
bomItem.setUnitPrice(itemResponse.getSalePrice());
|
|
|
|
|
bomItem.setSalePrice(itemResponse.getSalePrice());
|
|
|
|
|
bomItem.setFileUploadFlg(itemResponse.getFileUploadFlg());
|
|
|
|
|
bomItem.setPkgMaterialFlg(itemResponse.getPkgMaterialFlg());
|
|
|
|
|
bomItem.setItemGroup(itemResponse.getItemGroup());
|
|
|
|
|
bomItem.setItemCtgGr(itemResponse.getItemCtgGr());
|
|
|
|
|
bomItem.setPartAdd("0");
|
|
|
|
|
bomItem.setDelFlg("0");
|
|
|
|
|
bomItem.setDrawingItemFlg("1");
|
|
|
|
|
|
|
|
|
|
estimateBomList.add(bomItem);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// BOM 컴포넌트 추가
|
|
|
|
|
itemList.addAll(estimateBomList);
|
|
|
|
|
|
|
|
|
|
// [4]. 견적특이사항 관련 데이터 셋팅
|
|
|
|
|
NoteRequest noteRequest = new NoteRequest();
|
|
|
|
|
noteRequest.setArrItemId(arrItemId);
|
|
|
|
|
noteRequest.setSchSpnTypeCd("COMM");
|
|
|
|
|
List<NoteResponse> noteList = estimateMapper.selectEstimateNoteList(noteRequest);
|
|
|
|
|
noteRequest.setSchSpnTypeCd("PROD");
|
|
|
|
|
List<NoteResponse> noteItemList = estimateMapper.selectEstimateNoteItemList(noteRequest);
|
|
|
|
|
|
|
|
|
|
// 견적특이사항 코드
|
|
|
|
|
String estimateOptions = "";
|
|
|
|
|
for (NoteResponse noteResponse : noteList) {
|
|
|
|
|
if ("ATTR001".equals(noteResponse.getCode())) {
|
|
|
|
|
estimateOptions += !StringUtils.isEmpty(estimateOptions) ? splitStr : "";
|
|
|
|
|
estimateOptions += "ATTR001"; // 공통 필수체크
|
|
|
|
|
} else if ("ATTR002".equals(noteResponse.getCode())) {
|
|
|
|
|
estimateOptions += !StringUtils.isEmpty(estimateOptions) ? splitStr : "";
|
|
|
|
|
estimateOptions += "ATTR002"; // YJOD 필수체크
|
|
|
|
|
} else if ("ATTR003".equals(noteResponse.getCode())) {
|
|
|
|
|
estimateOptions += !StringUtils.isEmpty(estimateOptions) ? splitStr : "";
|
|
|
|
|
estimateOptions += "ATTR003"; // 출력제어시간 기본 체크
|
|
|
|
|
} else if ("ATTR004".equals(noteResponse.getCode())
|
|
|
|
|
&& "1".equals(estimateRequest.getNorthArrangement())) {
|
|
|
|
|
estimateOptions += !StringUtils.isEmpty(estimateOptions) ? splitStr : "";
|
|
|
|
|
estimateOptions += "ATTR004"; // 북면설치 체크
|
|
|
|
|
} else if ("ATTR005".equals(noteResponse.getCode())
|
|
|
|
|
&& "1".equals(objectResponse != null ? objectResponse.getSaltAreaFlg() : "")) {
|
|
|
|
|
estimateOptions += !StringUtils.isEmpty(estimateOptions) ? splitStr : "";
|
|
|
|
|
estimateOptions += "ATTR005"; // 염해지역 체크
|
|
|
|
|
} else if ("ATTR006".equals(objectResponse != null ? objectResponse.getColdRegionFlg() : "")
|
|
|
|
|
&& "1".equals(estimateRequest.getNorthArrangement())) {
|
|
|
|
|
estimateOptions += !StringUtils.isEmpty(estimateOptions) ? splitStr : "";
|
|
|
|
|
estimateOptions += "ATTR006"; // 적설지역 체크
|
|
|
|
|
} else if ("ATTR007".equals(noteResponse.getCode())) {
|
|
|
|
|
estimateOptions += !StringUtils.isEmpty(estimateOptions) ? splitStr : "";
|
|
|
|
|
estimateOptions += "ATTR007"; // 지붕재치수, 레이아웃 기본 체크
|
|
|
|
|
} else if ("ATTR008".equals(noteResponse.getCode())) {
|
|
|
|
|
estimateOptions += !StringUtils.isEmpty(estimateOptions) ? splitStr : "";
|
|
|
|
|
estimateOptions += "ATTR008"; // 별도비용 기본 체크
|
|
|
|
|
} else if ("ATTR009".equals(noteResponse.getCode())) {
|
|
|
|
|
estimateOptions += !StringUtils.isEmpty(estimateOptions) ? splitStr : "";
|
|
|
|
|
estimateOptions += "ATTR009"; // 과적재 기본 체크
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
for (NoteResponse noteResponse : noteItemList) {
|
|
|
|
|
if (estimateOptions.indexOf(noteResponse.getCode()) < 0) {
|
|
|
|
|
estimateOptions += !StringUtils.isEmpty(estimateOptions) ? splitStr : "";
|
|
|
|
|
estimateOptions += noteResponse.getCode();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
estimateRequest.setEstimateOption(estimateOptions);
|
|
|
|
|
|
|
|
|
|
// 아이템별 특이사항 코드 체크
|
|
|
|
|
for (ItemRequest itemRequest : itemList) {
|
|
|
|
|
String specialNoteCd = "";
|
|
|
|
|
for (NoteResponse noteResponse : noteItemList) {
|
|
|
|
|
if (itemRequest.getItemId().equals(noteResponse.getItemId())) {
|
|
|
|
|
specialNoteCd += !StringUtils.isEmpty(specialNoteCd) ? splitStr : "";
|
|
|
|
|
specialNoteCd += noteResponse.getCode();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
itemRequest.setSpecialNoteCd(specialNoteCd);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 첨부파일 초기화
|
|
|
|
|
FileRequest fileRequest = new FileRequest();
|
|
|
|
|
fileRequest.setObjectNo(estimateRequest.getObjectNo());
|
|
|
|
|
fileRequest.setPlanNo(estimateRequest.getPlanNo());
|
|
|
|
|
fileRequest.setUserId(estimateRequest.getUserId());
|
|
|
|
|
fileMapper.deleteFile(fileRequest);
|
|
|
|
|
|
|
|
|
|
// 아이템 목록 필수 값 체크
|
|
|
|
|
BigDecimal capacity = BigDecimal.ZERO;
|
|
|
|
|
String moduleModel = "";
|
|
|
|
|
String pcTypeNo = "";
|
|
|
|
|
for (ItemRequest itemRequest : itemList) {
|
|
|
|
|
if (StringUtils.isEmpty(itemRequest.getDispOrder())) {
|
|
|
|
|
throw new QcastException(
|
|
|
|
|
ErrorCode.INVALID_INPUT_VALUE,
|
|
|
|
|
message.getMessage("common.message.required.data", "Display Order"));
|
|
|
|
|
}
|
|
|
|
|
if (StringUtils.isEmpty(itemRequest.getItemId())) {
|
|
|
|
|
throw new QcastException(
|
|
|
|
|
ErrorCode.INVALID_INPUT_VALUE,
|
|
|
|
|
message.getMessage("common.message.required.data", "Item ID"));
|
|
|
|
|
}
|
|
|
|
|
if (StringUtils.isEmpty(itemRequest.getAmount())) {
|
|
|
|
|
throw new QcastException(
|
|
|
|
|
ErrorCode.INVALID_INPUT_VALUE,
|
|
|
|
|
message.getMessage("common.message.required.data", "Item Amount"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 수량
|
|
|
|
|
BigDecimal amount =
|
|
|
|
|
new BigDecimal(
|
|
|
|
|
StringUtils.isEmpty(itemRequest.getAmount()) ? "0" : itemRequest.getAmount());
|
|
|
|
|
// 아이템용량
|
|
|
|
|
BigDecimal pnowW =
|
|
|
|
|
new BigDecimal(
|
|
|
|
|
StringUtils.isEmpty(itemRequest.getPnowW()) ? "0" : itemRequest.getPnowW());
|
|
|
|
|
|
|
|
|
|
// 모듈/PC 체크
|
|
|
|
|
if ("MODULE_".equals(itemRequest.getItemGroup())) {
|
|
|
|
|
moduleModel += !StringUtils.isEmpty(moduleModel) ? splitStr : "";
|
|
|
|
|
moduleModel += itemRequest.getItemNo();
|
|
|
|
|
|
|
|
|
|
capacity = capacity.add(amount.multiply(pnowW));
|
|
|
|
|
} else if ("PC_".equals(itemRequest.getItemGroup())) {
|
|
|
|
|
pcTypeNo += !StringUtils.isEmpty(pcTypeNo) ? splitStr : "";
|
|
|
|
|
pcTypeNo += itemRequest.getItemNo();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
estimateRequest.setCapacity(String.valueOf(capacity));
|
|
|
|
|
estimateRequest.setModuleModel(moduleModel);
|
|
|
|
|
estimateRequest.setPcTypeNo(pcTypeNo);
|
|
|
|
|
|
|
|
|
|
// 견적서 정보 초기화
|
|
|
|
|
estimateMapper.updateEstimateReset(estimateRequest);
|
|
|
|
|
// 견적서 모든 아이템 제거
|
|
|
|
|
estimateMapper.deleteEstimateItemList(estimateRequest);
|
|
|
|
|
// 견적서 아이템 신규 추가
|
|
|
|
|
String hisNo = estimateMapper.selectEstimateItemHisNo(estimateRequest); // 아이템 히스토리 번호 조회
|
|
|
|
|
for (ItemRequest itemRequest : itemList) {
|
|
|
|
|
itemRequest.setHisNo(hisNo);
|
|
|
|
|
itemRequest.setObjectNo(estimateRequest.getObjectNo());
|
|
|
|
|
itemRequest.setPlanNo(estimateRequest.getPlanNo());
|
|
|
|
|
itemRequest.setAmount(
|
|
|
|
|
!StringUtils.isEmpty(itemRequest.getAmount()) ? itemRequest.getAmount() : "0");
|
|
|
|
|
itemRequest.setSalePrice(
|
|
|
|
|
!StringUtils.isEmpty(itemRequest.getSalePrice()) ? itemRequest.getSalePrice() : "0");
|
|
|
|
|
itemRequest.setBomAmount(
|
|
|
|
|
!StringUtils.isEmpty(itemRequest.getBomAmount()) ? itemRequest.getBomAmount() : "0");
|
|
|
|
|
itemRequest.setPartAdd(
|
|
|
|
|
!StringUtils.isEmpty(itemRequest.getPartAdd()) ? itemRequest.getPartAdd() : "0");
|
|
|
|
|
itemRequest.setOpenFlg(
|
|
|
|
|
!StringUtils.isEmpty(itemRequest.getOpenFlg()) ? itemRequest.getOpenFlg() : "0");
|
|
|
|
|
itemRequest.setItemChangeFlg(
|
|
|
|
|
!StringUtils.isEmpty(itemRequest.getItemChangeFlg())
|
|
|
|
|
? itemRequest.getItemChangeFlg()
|
|
|
|
|
: "0");
|
|
|
|
|
itemRequest.setUserId(estimateRequest.getUserId());
|
|
|
|
|
|
|
|
|
|
estimateMapper.insertEstimateItemHis(itemRequest);
|
|
|
|
|
|
|
|
|
|
if (!"1".equals(itemRequest.getDelFlg())) {
|
|
|
|
|
estimateMapper.insertEstimateItem(itemRequest);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 임시저장 상태에서는 인터페이스 막도록 처리
|
|
|
|
|
if ("0".equals(estimateRequest.getTempFlg())) {
|
|
|
|
|
// QSP Q.CAST SEND API
|
|
|
|
|
List<EstimateSendResponse> resultList = new ArrayList<EstimateSendResponse>();
|
|
|
|
|
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());
|
|
|
|
|
|
|
|
|
|
estimateMapper.updateEstimateApi(estimateRequest);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
throw new QcastException(ErrorCode.INTERNAL_SERVER_ERROR);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// [9]. 최종 생성 물건번호 리턴
|
|
|
|
|
response.setObjectNo(estimateRequest.getObjectNo());
|
|
|
|
|
response.setPlanNo(estimateRequest.getPlanNo());
|
|
|
|
|
return response;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 견적서 엑셀 다운로드
|
|
|
|
|
*
|
|
|
|
|
|