견적서 복사 API 개발
This commit is contained in:
parent
e6172117ac
commit
8125c7d4c7
@ -59,9 +59,9 @@ public class EstimateController {
|
|||||||
@Operation(description = "견적서를 복사한다.")
|
@Operation(description = "견적서를 복사한다.")
|
||||||
@PostMapping("/save-estimate-copy")
|
@PostMapping("/save-estimate-copy")
|
||||||
@ResponseStatus(HttpStatus.CREATED)
|
@ResponseStatus(HttpStatus.CREATED)
|
||||||
public EstimateResponse insertEstimateCopy(@RequestBody EstimateRequest estimateRequest)
|
public EstimateResponse insertEstimateCopy(@RequestBody EstimateCopyRequest estimateCopyRequest)
|
||||||
throws Exception {
|
throws Exception {
|
||||||
return estimateService.insertEstimateCopy(estimateRequest);
|
return estimateService.insertEstimateCopy(estimateCopyRequest);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(description = "견적서를 엑셀로 다운로드한다.")
|
@Operation(description = "견적서를 엑셀로 다운로드한다.")
|
||||||
|
|||||||
@ -30,6 +30,9 @@ public interface EstimateMapper {
|
|||||||
// 견적서 지붕재 목록 조회
|
// 견적서 지붕재 목록 조회
|
||||||
public List<RoofResponse> selectEstimateRoofList(EstimateRequest estimateRequest);
|
public List<RoofResponse> selectEstimateRoofList(EstimateRequest estimateRequest);
|
||||||
|
|
||||||
|
// 견적서 지붕재 아이템 목록 조회
|
||||||
|
public List<RoofResponse> selectEstimateRoofItemList(EstimateRequest estimateRequest);
|
||||||
|
|
||||||
// 견적서 지붕재 PC 목록 조회
|
// 견적서 지붕재 PC 목록 조회
|
||||||
public List<RoofResponse> selectEstimateRoofPcList(EstimateRequest estimateRequest);
|
public List<RoofResponse> selectEstimateRoofPcList(EstimateRequest estimateRequest);
|
||||||
|
|
||||||
@ -76,5 +79,5 @@ public interface EstimateMapper {
|
|||||||
public int deleteEstimateItemList(EstimateRequest estimateRequest);
|
public int deleteEstimateItemList(EstimateRequest estimateRequest);
|
||||||
|
|
||||||
// 견적서 복사
|
// 견적서 복사
|
||||||
public int insertEstimateCopy(EstimateRequest estimateRequest);
|
public int insertEstimateCopy(EstimateCopyRequest estimateCopyRequest);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,9 +6,8 @@ import com.interplug.qcast.biz.file.FileMapper;
|
|||||||
import com.interplug.qcast.biz.file.dto.FileRequest;
|
import com.interplug.qcast.biz.file.dto.FileRequest;
|
||||||
import com.interplug.qcast.biz.file.dto.FileResponse;
|
import com.interplug.qcast.biz.file.dto.FileResponse;
|
||||||
import com.interplug.qcast.biz.object.ObjectMapper;
|
import com.interplug.qcast.biz.object.ObjectMapper;
|
||||||
|
import com.interplug.qcast.biz.object.dto.ObjectRequest;
|
||||||
import com.interplug.qcast.biz.object.dto.ObjectResponse;
|
import com.interplug.qcast.biz.object.dto.ObjectResponse;
|
||||||
import com.interplug.qcast.biz.object.dto.PlanRequest;
|
|
||||||
import com.interplug.qcast.biz.object.dto.PlanResponse;
|
|
||||||
import com.interplug.qcast.biz.pwrGnrSimulation.PwrGnrSimService;
|
import com.interplug.qcast.biz.pwrGnrSimulation.PwrGnrSimService;
|
||||||
import com.interplug.qcast.biz.pwrGnrSimulation.dto.PwrGnrSimGuideResponse;
|
import com.interplug.qcast.biz.pwrGnrSimulation.dto.PwrGnrSimGuideResponse;
|
||||||
import com.interplug.qcast.biz.pwrGnrSimulation.dto.PwrGnrSimRequest;
|
import com.interplug.qcast.biz.pwrGnrSimulation.dto.PwrGnrSimRequest;
|
||||||
@ -50,6 +49,9 @@ public class EstimateService {
|
|||||||
|
|
||||||
@Autowired Messages message;
|
@Autowired Messages message;
|
||||||
|
|
||||||
|
@Value("${file.ini.root.path}")
|
||||||
|
private String baseDirPath;
|
||||||
|
|
||||||
@Value("${qsp.url}")
|
@Value("${qsp.url}")
|
||||||
private String QSP_API_URL;
|
private String QSP_API_URL;
|
||||||
|
|
||||||
@ -607,98 +609,186 @@ public class EstimateService {
|
|||||||
/**
|
/**
|
||||||
* 견적서 복사
|
* 견적서 복사
|
||||||
*
|
*
|
||||||
* @param estimateRequest 견적서 복사 정보
|
* @param estimateCopyRequest 견적서 복사 정보
|
||||||
* @return EstimateResponse 견적서 복사 후 상세 정보
|
* @return EstimateResponse 견적서 복사 후 상세 정보
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public EstimateResponse insertEstimateCopy(EstimateRequest estimateRequest) throws Exception {
|
public EstimateResponse insertEstimateCopy(EstimateCopyRequest estimateCopyRequest)
|
||||||
|
throws Exception {
|
||||||
// Validation
|
// Validation
|
||||||
if (StringUtils.isEmpty(estimateRequest.getObjectNo())) {
|
if (StringUtils.isEmpty(estimateCopyRequest.getObjectNo())) {
|
||||||
throw new QcastException(
|
throw new QcastException(
|
||||||
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(estimateRequest.getPlanNo())) {
|
if (StringUtils.isEmpty(estimateCopyRequest.getPlanNo())) {
|
||||||
throw new QcastException(
|
throw new QcastException(
|
||||||
ErrorCode.INVALID_INPUT_VALUE,
|
ErrorCode.INVALID_INPUT_VALUE,
|
||||||
message.getMessage("common.message.required.data", "Plan No"));
|
message.getMessage("common.message.required.data", "Plan No"));
|
||||||
}
|
}
|
||||||
|
// 응답 객체
|
||||||
EstimateResponse response = new EstimateResponse();
|
EstimateResponse response = new EstimateResponse();
|
||||||
|
|
||||||
// [1]. 총 플랜 목록 조회 및 제약조건 처리 (플랜 10개까지만 등록)
|
try {
|
||||||
PlanRequest planRequest = new PlanRequest();
|
|
||||||
planRequest.setObjectNo(estimateRequest.getObjectNo());
|
|
||||||
List<PlanResponse> planList = objectMapper.selectPlanList(planRequest);
|
|
||||||
if (planList.size() > 9) {
|
|
||||||
throw new QcastException(
|
|
||||||
ErrorCode.INTERNAL_SERVER_ERROR, message.getMessage("common.message.plan.save.limit"));
|
|
||||||
}
|
|
||||||
|
|
||||||
List<ItemRequest> itemList = new ArrayList<ItemRequest>();
|
ObjectRequest objectRequest = new ObjectRequest();
|
||||||
List<ItemResponse> estimateItemList = estimateMapper.selectEstimateItemList(estimateRequest);
|
objectRequest.setSaleStoreId(estimateCopyRequest.getCopySaleStoreId());
|
||||||
for (ItemResponse itemResponse : estimateItemList) {
|
objectRequest.setReceiveUser(
|
||||||
ItemRequest itemRequest = new ItemRequest();
|
StringUtils.defaultString(estimateCopyRequest.getCopyReceiveUser()));
|
||||||
itemRequest.setItemId(itemResponse.getItemId());
|
objectRequest.setDelFlg("0");
|
||||||
itemRequest.setAmount(itemResponse.getAmount());
|
objectRequest.setTempFlg("0");
|
||||||
|
objectRequest.setTempDelFlg("0");
|
||||||
|
objectRequest.setUserId(estimateCopyRequest.getUserId());
|
||||||
|
|
||||||
itemList.add(itemRequest);
|
// [1]. 신규 물건번호 생성
|
||||||
}
|
objectMapper.insertObjectNo(objectRequest);
|
||||||
|
objectRequest.setObjectNo(estimateCopyRequest.getObjectNo());
|
||||||
|
objectRequest.setCopyObjectNo(objectMapper.selectObjectNo(objectRequest));
|
||||||
|
|
||||||
// [2]. 아이템 관련 데이터 셋팅 (복사 시 정가 셋팅)
|
// [2]. 물건정보 복사
|
||||||
String[] arrItemId = new String[itemList.size()];
|
objectRequest.setContentsPath(baseDirPath + "\\\\" + objectRequest.getCopyObjectNo());
|
||||||
int i = 0;
|
objectMapper.insertObjectCopy(objectRequest);
|
||||||
for (ItemRequest itemRequest : itemList) {
|
objectRequest.setObjectNo(objectRequest.getCopyObjectNo());
|
||||||
arrItemId[i++] = itemRequest.getItemId();
|
objectMapper.updateObjectDelivery(objectRequest);
|
||||||
}
|
|
||||||
estimateRequest.setArrItemId(arrItemId);
|
|
||||||
// 아이템의 마스터 정보 및 정가 정보 조회
|
|
||||||
List<ItemResponse> itemResponseList = estimateMapper.selectItemMasterList(estimateRequest);
|
|
||||||
|
|
||||||
int j = 1;
|
// [3]. 아이템 관련 데이터 셋팅 (복사 시 정가 셋팅)
|
||||||
for (ItemRequest itemRequest : itemList) {
|
EstimateRequest estimateRequest = new EstimateRequest();
|
||||||
itemRequest.setDispOrder(String.valueOf(j++));
|
estimateRequest.setObjectNo(estimateCopyRequest.getObjectNo());
|
||||||
|
estimateRequest.setPlanNo(estimateCopyRequest.getPlanNo());
|
||||||
|
|
||||||
for (ItemResponse itemResponse : itemResponseList) {
|
List<ItemRequest> itemList = new ArrayList<ItemRequest>();
|
||||||
if (itemRequest.getItemId().equals(itemResponse.getItemId())) {
|
List<ItemResponse> estimateItemList = estimateMapper.selectEstimateItemList(estimateRequest);
|
||||||
itemRequest.setItemNo(itemResponse.getItemNo());
|
for (ItemResponse itemResponse : estimateItemList) {
|
||||||
itemRequest.setItemName(itemResponse.getItemName());
|
ItemRequest itemRequest = new ItemRequest();
|
||||||
itemRequest.setUnit(itemResponse.getUnit());
|
itemRequest.setDispOrder(itemResponse.getDispOrder());
|
||||||
itemRequest.setPnowW(itemResponse.getPnowW());
|
itemRequest.setPaDispOrder(itemResponse.getPaDispOrder());
|
||||||
itemRequest.setSpecification(itemResponse.getPnowW());
|
itemRequest.setItemId(itemResponse.getItemId());
|
||||||
itemRequest.setUnitPrice(itemResponse.getSalePrice());
|
itemRequest.setAmount(itemResponse.getAmount());
|
||||||
itemRequest.setSalePrice(itemResponse.getSalePrice());
|
itemRequest.setBomAmount(itemResponse.getBomAmount());
|
||||||
itemRequest.setPkgMaterialFlg(itemResponse.getPkgMaterialFlg());
|
itemRequest.setSpecialNoteCd(itemResponse.getSpecialNoteCd());
|
||||||
itemRequest.setItemGroup(itemResponse.getItemGroup());
|
itemRequest.setItemChangeFlg("0");
|
||||||
|
|
||||||
break;
|
itemList.add(itemRequest);
|
||||||
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
|
|
||||||
|
for (ItemRequest itemRequest : itemList) {
|
||||||
|
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.setPkgMaterialFlg(itemResponse.getPkgMaterialFlg());
|
||||||
|
itemRequest.setFileUploadFlg(itemResponse.getFileUploadFlg());
|
||||||
|
itemRequest.setItemGroup(itemResponse.getItemGroup());
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// [4]. 견적서 복사
|
||||||
|
estimateCopyRequest.setCopyObjectNo(objectRequest.getObjectNo());
|
||||||
|
estimateCopyRequest.setCopyPlanNo("1");
|
||||||
|
estimateMapper.insertEstimateCopy(estimateCopyRequest);
|
||||||
|
|
||||||
|
// [5]. 견적서 아이템 복사
|
||||||
|
for (ItemRequest itemRequest : itemList) {
|
||||||
|
itemRequest.setObjectNo(estimateCopyRequest.getCopyObjectNo());
|
||||||
|
itemRequest.setPlanNo(estimateCopyRequest.getCopyPlanNo());
|
||||||
|
itemRequest.setPartAdd(
|
||||||
|
!StringUtils.isEmpty(itemRequest.getPartAdd()) ? itemRequest.getPartAdd() : "0");
|
||||||
|
itemRequest.setItemChangeFlg(
|
||||||
|
!StringUtils.isEmpty(itemRequest.getItemChangeFlg())
|
||||||
|
? itemRequest.getItemChangeFlg()
|
||||||
|
: "0");
|
||||||
|
itemRequest.setUserId(estimateCopyRequest.getUserId());
|
||||||
|
|
||||||
|
estimateMapper.insertEstimateItem(itemRequest);
|
||||||
|
}
|
||||||
|
|
||||||
|
// [6]. 견적서 지붕재 복사
|
||||||
|
List<RoofResponse> roofList = estimateMapper.selectEstimateRoofList(estimateRequest);
|
||||||
|
List<RoofResponse> roofItemList = estimateMapper.selectEstimateRoofItemList(estimateRequest);
|
||||||
|
|
||||||
|
for (RoofResponse roofResponse : roofList) {
|
||||||
|
List<RoofResponse> roofItemList2 = new ArrayList<RoofResponse>();
|
||||||
|
|
||||||
|
// 현재 매칭되는 지붕재 아이템 축출
|
||||||
|
for (RoofResponse roofItemResponse : roofItemList) {
|
||||||
|
if (roofResponse.getRoofNo().equals(roofItemResponse.getRoofNo())) {
|
||||||
|
roofItemList2.add(roofItemResponse);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
RoofRequest roofRequest = new RoofRequest();
|
||||||
|
roofRequest.setObjectNo(estimateCopyRequest.getCopyObjectNo());
|
||||||
|
roofRequest.setPlanNo(estimateCopyRequest.getCopyPlanNo());
|
||||||
|
roofRequest.setRoofSurface(roofResponse.getRoofSurface());
|
||||||
|
roofRequest.setRoofMaterialId(roofResponse.getRoofMaterialId());
|
||||||
|
roofRequest.setSupportMethodId(roofResponse.getSupportMethodId());
|
||||||
|
roofRequest.setConstructSpecification(roofResponse.getConstructSpecification());
|
||||||
|
roofRequest.setSlope(roofResponse.getSlope());
|
||||||
|
roofRequest.setAngle(roofResponse.getAngle());
|
||||||
|
roofRequest.setClassType(roofResponse.getClassType());
|
||||||
|
roofRequest.setAzimuth(roofResponse.getAzimuth());
|
||||||
|
roofRequest.setUserId(estimateCopyRequest.getUserId());
|
||||||
|
|
||||||
|
estimateMapper.insertEstimateRoof(roofRequest);
|
||||||
|
|
||||||
|
for (RoofResponse roofItemResponse : roofItemList2) {
|
||||||
|
ItemRequest itemRequest = new ItemRequest();
|
||||||
|
itemRequest.setRoofNo(roofRequest.getRoofNo());
|
||||||
|
itemRequest.setObjectNo(estimateCopyRequest.getCopyObjectNo());
|
||||||
|
itemRequest.setPlanNo(estimateCopyRequest.getCopyPlanNo());
|
||||||
|
itemRequest.setItemId(roofItemResponse.getItemId());
|
||||||
|
itemRequest.setItemNo(roofItemResponse.getItemNo());
|
||||||
|
itemRequest.setItemName(roofItemResponse.getItemName());
|
||||||
|
itemRequest.setSpecification(roofItemResponse.getSpecification());
|
||||||
|
itemRequest.setAmount(roofItemResponse.getAmount());
|
||||||
|
itemRequest.setPcItemId(roofItemResponse.getPcItemId());
|
||||||
|
itemRequest.setCircuit(roofItemResponse.getCircuit());
|
||||||
|
|
||||||
|
estimateMapper.insertEstimateRoofItem(itemRequest);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// [7]. 견적서 도면 복사 (추후 개발 필요)
|
||||||
|
|
||||||
|
// [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());
|
||||||
|
|
||||||
|
estimateMapper.updateEstimateApi(estimateRequest);
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new QcastException(ErrorCode.INTERNAL_SERVER_ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 견적서 복사
|
// [9]. 최종 생성 물건번호 리턴
|
||||||
estimateMapper.insertEstimateCopy(estimateRequest);
|
response.setObjectNo(estimateCopyRequest.getCopyObjectNo());
|
||||||
|
response.setPlanNo(estimateCopyRequest.getCopyPlanNo());
|
||||||
// 견적서 아이템 복사
|
|
||||||
for (ItemRequest itemRequest : itemList) {
|
|
||||||
itemRequest.setObjectNo(estimateRequest.getObjectNo());
|
|
||||||
itemRequest.setPlanNo(estimateRequest.getCopyPlanNo());
|
|
||||||
itemRequest.setPartAdd(
|
|
||||||
!StringUtils.isEmpty(itemRequest.getPartAdd()) ? itemRequest.getPartAdd() : "0");
|
|
||||||
itemRequest.setItemChangeFlg(
|
|
||||||
!StringUtils.isEmpty(itemRequest.getItemChangeFlg())
|
|
||||||
? itemRequest.getItemChangeFlg()
|
|
||||||
: "0");
|
|
||||||
itemRequest.setUserId(estimateRequest.getUserId());
|
|
||||||
|
|
||||||
estimateMapper.insertEstimateItem(itemRequest);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 도면 복사 (추후 개발 필요)
|
|
||||||
|
|
||||||
// 리턴
|
|
||||||
response.setObjectNo(estimateRequest.getObjectNo());
|
|
||||||
response.setPlanNo(estimateRequest.getCopyPlanNo());
|
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,31 @@
|
|||||||
|
package com.interplug.qcast.biz.estimate.dto;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class EstimateCopyRequest {
|
||||||
|
@Schema(description = "물건번호")
|
||||||
|
private String objectNo;
|
||||||
|
|
||||||
|
@Schema(description = "플랜번호")
|
||||||
|
private String planNo;
|
||||||
|
|
||||||
|
@Schema(description = "판매점ID")
|
||||||
|
private String saleStoreId;
|
||||||
|
|
||||||
|
@Schema(description = "복사 판매점 ID")
|
||||||
|
private String copySaleStoreId;
|
||||||
|
|
||||||
|
@Schema(description = "복사 물건번호")
|
||||||
|
private String copyObjectNo;
|
||||||
|
|
||||||
|
@Schema(description = "복사 플랜번호")
|
||||||
|
private String copyPlanNo;
|
||||||
|
|
||||||
|
@Schema(description = "복사 담당자명")
|
||||||
|
private String copyReceiveUser;
|
||||||
|
|
||||||
|
@Schema(description = "사용자아이디")
|
||||||
|
private String userId;
|
||||||
|
}
|
||||||
@ -156,9 +156,6 @@ public class EstimateRequest {
|
|||||||
@Schema(description = "비고")
|
@Schema(description = "비고")
|
||||||
private String remarks;
|
private String remarks;
|
||||||
|
|
||||||
@Schema(description = "복사 플랜번호")
|
|
||||||
private String copyPlanNo;
|
|
||||||
|
|
||||||
@Schema(description = "아이템번호 목록")
|
@Schema(description = "아이템번호 목록")
|
||||||
private String[] arrItemId;
|
private String[] arrItemId;
|
||||||
|
|
||||||
|
|||||||
@ -71,6 +71,9 @@ public class ItemRequest {
|
|||||||
@Schema(description = "PC 아이템 ID")
|
@Schema(description = "PC 아이템 ID")
|
||||||
private String pcItemId;
|
private String pcItemId;
|
||||||
|
|
||||||
|
@Schema(description = "회로")
|
||||||
|
private String circuit;
|
||||||
|
|
||||||
@Schema(description = "W")
|
@Schema(description = "W")
|
||||||
private String pnowW;
|
private String pnowW;
|
||||||
|
|
||||||
|
|||||||
@ -48,6 +48,9 @@ public class RoofRequest {
|
|||||||
@Schema(description = "각도")
|
@Schema(description = "각도")
|
||||||
private String angle;
|
private String angle;
|
||||||
|
|
||||||
|
@Schema(description = "경사각 선택코드")
|
||||||
|
private String classType;
|
||||||
|
|
||||||
@Schema(description = "방위각")
|
@Schema(description = "방위각")
|
||||||
private String azimuth;
|
private String azimuth;
|
||||||
|
|
||||||
|
|||||||
@ -77,12 +77,24 @@ public class RoofResponse {
|
|||||||
@Schema(description = "아이템 번호")
|
@Schema(description = "아이템 번호")
|
||||||
private String itemNo;
|
private String itemNo;
|
||||||
|
|
||||||
|
@Schema(description = "아이템명")
|
||||||
|
private String itemName;
|
||||||
|
|
||||||
|
@Schema(description = "W")
|
||||||
|
private String specification;
|
||||||
|
|
||||||
@Schema(description = "매수")
|
@Schema(description = "매수")
|
||||||
private String amount;
|
private String amount;
|
||||||
|
|
||||||
@Schema(description = "용량")
|
@Schema(description = "용량")
|
||||||
private String volKw;
|
private String volKw;
|
||||||
|
|
||||||
|
@Schema(description = "PC 아이템 ID")
|
||||||
|
private String pcItemId;
|
||||||
|
|
||||||
|
@Schema(description = "회로")
|
||||||
|
private String circuit;
|
||||||
|
|
||||||
@Schema(description = "Pc 모듈 매수")
|
@Schema(description = "Pc 모듈 매수")
|
||||||
private String pcModuleAmount;
|
private String pcModuleAmount;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -43,6 +43,9 @@ public interface ObjectMapper {
|
|||||||
// 물건정보 등록
|
// 물건정보 등록
|
||||||
public int insertObject(ObjectRequest objectRequest);
|
public int insertObject(ObjectRequest objectRequest);
|
||||||
|
|
||||||
|
// 물건정보 복사
|
||||||
|
public int insertObjectCopy(ObjectRequest objectRequest);
|
||||||
|
|
||||||
// 물건정보 수정
|
// 물건정보 수정
|
||||||
public int updateObject(ObjectRequest objectRequest);
|
public int updateObject(ObjectRequest objectRequest);
|
||||||
|
|
||||||
|
|||||||
@ -152,6 +152,9 @@ public class ObjectRequest {
|
|||||||
@Schema(description = "검색 - 정렬순서")
|
@Schema(description = "검색 - 정렬순서")
|
||||||
private String schSortType;
|
private String schSortType;
|
||||||
|
|
||||||
|
@Schema(description = "복사 물건번호")
|
||||||
|
private String copyObjectNo;
|
||||||
|
|
||||||
// 페이징정보
|
// 페이징정보
|
||||||
@Schema(description = "시작 Row")
|
@Schema(description = "시작 Row")
|
||||||
private String startRow;
|
private String startRow;
|
||||||
|
|||||||
@ -291,6 +291,7 @@
|
|||||||
, P.PLAN_NO
|
, P.PLAN_NO
|
||||||
, ROUND(CAST(P.SETUP_HEIGHT AS FLOAT), 2) AS SETUP_HEIGHT
|
, ROUND(CAST(P.SETUP_HEIGHT AS FLOAT), 2) AS SETUP_HEIGHT
|
||||||
, P.SURFACE_TYPE
|
, P.SURFACE_TYPE
|
||||||
|
, RE.ROOF_NO
|
||||||
, RE.ROOF_SURFACE
|
, RE.ROOF_SURFACE
|
||||||
, RE.ROOF_MATERIAL_ID
|
, RE.ROOF_MATERIAL_ID
|
||||||
, RE.SUPPORT_METHOD_ID
|
, RE.SUPPORT_METHOD_ID
|
||||||
@ -319,6 +320,25 @@
|
|||||||
AND P.PLAN_NO = #{planNo}
|
AND P.PLAN_NO = #{planNo}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="selectEstimateRoofItemList" parameterType="com.interplug.qcast.biz.estimate.dto.EstimateRequest" resultType="com.interplug.qcast.biz.estimate.dto.RoofResponse">
|
||||||
|
/* sqlid : com.interplug.qcast.biz.estimate.selectEstimateRoofList */
|
||||||
|
SELECT
|
||||||
|
PIE.ROOF_NO
|
||||||
|
, PIE.OBJECT_NO
|
||||||
|
, PIE.PLAN_NO
|
||||||
|
, PIE.ITEM_ID
|
||||||
|
, PIE.ITEM_NO
|
||||||
|
, PIE.ITEM_NAME
|
||||||
|
, ISNULL(PIE.SPECIFICATION, '') AS SPECIFICATION
|
||||||
|
, PIE.AMOUNT
|
||||||
|
, PIE.PC_ITEM_ID
|
||||||
|
, PIE.CIRCUIT
|
||||||
|
FROM T_ROOF_ITEM_ESTIMATE PIE WITH (NOLOCK)
|
||||||
|
WHERE PIE.OBJECT_NO = #{objectNo}
|
||||||
|
AND PIE.PLAN_NO = #{planNo}
|
||||||
|
ORDER BY PIE.ROOF_NO
|
||||||
|
</select>
|
||||||
|
|
||||||
<select id="selectEstimateRoofPcList" parameterType="com.interplug.qcast.biz.estimate.dto.EstimateRequest" resultType="com.interplug.qcast.biz.estimate.dto.RoofResponse">
|
<select id="selectEstimateRoofPcList" parameterType="com.interplug.qcast.biz.estimate.dto.EstimateRequest" resultType="com.interplug.qcast.biz.estimate.dto.RoofResponse">
|
||||||
/* sqlid : com.interplug.qcast.biz.estimate.selectEstimateRoofPcList */
|
/* sqlid : com.interplug.qcast.biz.estimate.selectEstimateRoofPcList */
|
||||||
SELECT
|
SELECT
|
||||||
@ -687,6 +707,9 @@
|
|||||||
<if test='angle != null and angle != ""'>
|
<if test='angle != null and angle != ""'>
|
||||||
, ANGLE
|
, ANGLE
|
||||||
</if>
|
</if>
|
||||||
|
<if test='classType != null and classType != ""'>
|
||||||
|
, CLASS_TYPE
|
||||||
|
</if>
|
||||||
<if test='azimuth != null and azimuth != ""'>
|
<if test='azimuth != null and azimuth != ""'>
|
||||||
, AZIMUTH
|
, AZIMUTH
|
||||||
</if>
|
</if>
|
||||||
@ -705,6 +728,9 @@
|
|||||||
<if test='angle != null and angle != ""'>
|
<if test='angle != null and angle != ""'>
|
||||||
, #{angle}
|
, #{angle}
|
||||||
</if>
|
</if>
|
||||||
|
<if test='classType != null and classType != ""'>
|
||||||
|
, #{classType}
|
||||||
|
</if>
|
||||||
<if test='azimuth != null and azimuth != ""'>
|
<if test='azimuth != null and azimuth != ""'>
|
||||||
, #{azimuth}
|
, #{azimuth}
|
||||||
</if>
|
</if>
|
||||||
@ -726,6 +752,7 @@
|
|||||||
, SPECIFICATION
|
, SPECIFICATION
|
||||||
, AMOUNT
|
, AMOUNT
|
||||||
, PC_ITEM_ID
|
, PC_ITEM_ID
|
||||||
|
, CIRCUIT
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
#{roofNo} AS ROOF_NO
|
#{roofNo} AS ROOF_NO
|
||||||
@ -737,6 +764,7 @@
|
|||||||
, I.PNOW_W
|
, I.PNOW_W
|
||||||
, #{amount}
|
, #{amount}
|
||||||
, #{pcItemId}
|
, #{pcItemId}
|
||||||
|
, #{circuit}
|
||||||
FROM M_ITEM I WITH (NOLOCK)
|
FROM M_ITEM I WITH (NOLOCK)
|
||||||
WHERE I.ITEM_ID = #{itemId}
|
WHERE I.ITEM_ID = #{itemId}
|
||||||
</insert>
|
</insert>
|
||||||
@ -762,12 +790,8 @@
|
|||||||
AND PLAN_NO = #{planNo}
|
AND PLAN_NO = #{planNo}
|
||||||
</delete>
|
</delete>
|
||||||
|
|
||||||
<insert id="insertEstimateCopy" parameterType="com.interplug.qcast.biz.estimate.dto.EstimateRequest">
|
<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 */
|
||||||
<selectKey resultType="String" keyProperty="copyPlanNo" order="BEFORE">
|
|
||||||
SELECT CAST(ISNULL(MAX(PLAN_NO), 0) + 1 AS NVARCHAR) FROM T_PLAN WITH (NOLOCK) WHERE OBJECT_NO = #{objectNo}
|
|
||||||
</selectKey>
|
|
||||||
|
|
||||||
INSERT INTO T_PLAN
|
INSERT INTO T_PLAN
|
||||||
(
|
(
|
||||||
OBJECT_NO
|
OBJECT_NO
|
||||||
@ -813,9 +837,15 @@
|
|||||||
, PKG_ASP
|
, PKG_ASP
|
||||||
, PRICE_CD
|
, PRICE_CD
|
||||||
, REMARKS
|
, REMARKS
|
||||||
|
, CONSTRUCT_SPECIFICATION_MULTI
|
||||||
|
, SURFACE_TYPE
|
||||||
|
, ANGLE
|
||||||
|
, SYNC_FLG
|
||||||
|
, CREATE_DATETIME
|
||||||
|
, CREATE_USER
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
#{objectNo} AS OBJECT_NO
|
#{copyObjectNo} AS OBJECT_NO
|
||||||
, #{copyPlanNo} AS PLAN_NO
|
, #{copyPlanNo} AS PLAN_NO
|
||||||
, P.CONSTRUCT_SPECIFICATION
|
, P.CONSTRUCT_SPECIFICATION
|
||||||
, P.SETUP_HEIGHT
|
, P.SETUP_HEIGHT
|
||||||
@ -856,8 +886,14 @@
|
|||||||
, P.FILE_FLG
|
, P.FILE_FLG
|
||||||
, P.ESTIMATE_OPTION
|
, P.ESTIMATE_OPTION
|
||||||
, P.PKG_ASP
|
, P.PKG_ASP
|
||||||
, P.PRICE_CD
|
, 'UNIT_PRICE' AS PRICE_CD
|
||||||
, P.REMARKS
|
, P.REMARKS
|
||||||
|
, P.CONSTRUCT_SPECIFICATION_MULTI
|
||||||
|
, P.SURFACE_TYPE
|
||||||
|
, P.ANGLE
|
||||||
|
, '0' AS SYNC_FLG
|
||||||
|
, GETDATE() AS CREATE_DATETIME
|
||||||
|
, #{userId} AS CREATE_USER
|
||||||
FROM T_PLAN P WITH (NOLOCK)
|
FROM T_PLAN P WITH (NOLOCK)
|
||||||
WHERE P.OBJECT_NO = #{objectNo}
|
WHERE P.OBJECT_NO = #{objectNo}
|
||||||
AND P.PLAN_NO = #{planNo}
|
AND P.PLAN_NO = #{planNo}
|
||||||
|
|||||||
@ -491,6 +491,100 @@
|
|||||||
)
|
)
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
|
<insert id="insertObjectCopy" parameterType="com.interplug.qcast.biz.object.dto.ObjectRequest">
|
||||||
|
/* sqlid : com.interplug.qcast.biz.object.insertObjectCopy */
|
||||||
|
INSERT INTO T_OBJECT
|
||||||
|
(
|
||||||
|
OBJECT_NO
|
||||||
|
, SALE_STORE_ID
|
||||||
|
, OBJECT_STATUS_ID
|
||||||
|
, OBJECT_NAME
|
||||||
|
, OBJECT_NAME_OMIT
|
||||||
|
, OBJECT_NAME_KANA
|
||||||
|
, ZIP_NO
|
||||||
|
, PREF_ID
|
||||||
|
, ADDRESS
|
||||||
|
, ADDRESSEE_COMPANY_NAME
|
||||||
|
, ADDRESSEE_COMPANY_NAME_OMIT
|
||||||
|
, REMARKS
|
||||||
|
, SAME_OBJECT_INFO
|
||||||
|
, RECEIVE_USER
|
||||||
|
, DELIVERY_HOPE_DATE
|
||||||
|
, CONSTRUCT_SCHEDULED_DATE
|
||||||
|
, CAR_KIND_CD
|
||||||
|
, TRACK_KAIND
|
||||||
|
, TRACK_10T_DELIVERY
|
||||||
|
, TRACK_WEIGHT
|
||||||
|
, TRACK_TIME_SPECIFY
|
||||||
|
, FORKLIFT
|
||||||
|
, HOUSE_CLASS_CD
|
||||||
|
, 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
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
#{copyObjectNo} AS OBJECT_NO
|
||||||
|
, #{saleStoreId} AS SALE_STORE_ID
|
||||||
|
, OBJECT_STATUS_ID
|
||||||
|
, OBJECT_NAME
|
||||||
|
, OBJECT_NAME_OMIT
|
||||||
|
, OBJECT_NAME_KANA
|
||||||
|
, ZIP_NO
|
||||||
|
, PREF_ID
|
||||||
|
, ADDRESS
|
||||||
|
, ADDRESSEE_COMPANY_NAME
|
||||||
|
, ADDRESSEE_COMPANY_NAME_OMIT
|
||||||
|
, REMARKS
|
||||||
|
, SAME_OBJECT_INFO
|
||||||
|
, #{receiveUser} AS RECEIVE_USER
|
||||||
|
, GETDATE() AS DELIVERY_HOPE_DATE
|
||||||
|
, GETDATE() AS CONSTRUCT_SCHEDULED_DATE
|
||||||
|
, CAR_KIND_CD
|
||||||
|
, TRACK_KAIND
|
||||||
|
, TRACK_10T_DELIVERY
|
||||||
|
, TRACK_WEIGHT
|
||||||
|
, TRACK_TIME_SPECIFY
|
||||||
|
, FORKLIFT
|
||||||
|
, HOUSE_CLASS_CD
|
||||||
|
, #{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
|
||||||
|
, AREA_ID
|
||||||
|
, STANDARD_WIND_SPEED_ID
|
||||||
|
, VERTICAL_SNOW_COVER
|
||||||
|
, SURFACE_TYPE
|
||||||
|
, INSTALL_HEIGHT
|
||||||
|
, CON_TYPE
|
||||||
|
, COLD_REGION_FLG
|
||||||
|
, SALT_AREA_FLG
|
||||||
|
, #{tempFlg}
|
||||||
|
, #{tempDelFlg}
|
||||||
|
FROM T_OBJECT O WITH (NOLOCK)
|
||||||
|
WHERE O.OBJECT_NO = #{objectNo}
|
||||||
|
</insert>
|
||||||
|
|
||||||
<update id="updateObject" parameterType="com.interplug.qcast.biz.object.dto.ObjectRequest">
|
<update id="updateObject" parameterType="com.interplug.qcast.biz.object.dto.ObjectRequest">
|
||||||
/* sqlid : com.interplug.qcast.biz.object.updateObject */
|
/* sqlid : com.interplug.qcast.biz.object.updateObject */
|
||||||
UPDATE T_OBJECT
|
UPDATE T_OBJECT
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user