견적서 복사 API 개발
This commit is contained in:
parent
e6172117ac
commit
8125c7d4c7
@ -59,9 +59,9 @@ public class EstimateController {
|
||||
@Operation(description = "견적서를 복사한다.")
|
||||
@PostMapping("/save-estimate-copy")
|
||||
@ResponseStatus(HttpStatus.CREATED)
|
||||
public EstimateResponse insertEstimateCopy(@RequestBody EstimateRequest estimateRequest)
|
||||
public EstimateResponse insertEstimateCopy(@RequestBody EstimateCopyRequest estimateCopyRequest)
|
||||
throws Exception {
|
||||
return estimateService.insertEstimateCopy(estimateRequest);
|
||||
return estimateService.insertEstimateCopy(estimateCopyRequest);
|
||||
}
|
||||
|
||||
@Operation(description = "견적서를 엑셀로 다운로드한다.")
|
||||
|
||||
@ -30,6 +30,9 @@ public interface EstimateMapper {
|
||||
// 견적서 지붕재 목록 조회
|
||||
public List<RoofResponse> selectEstimateRoofList(EstimateRequest estimateRequest);
|
||||
|
||||
// 견적서 지붕재 아이템 목록 조회
|
||||
public List<RoofResponse> selectEstimateRoofItemList(EstimateRequest estimateRequest);
|
||||
|
||||
// 견적서 지붕재 PC 목록 조회
|
||||
public List<RoofResponse> selectEstimateRoofPcList(EstimateRequest estimateRequest);
|
||||
|
||||
@ -76,5 +79,5 @@ public interface EstimateMapper {
|
||||
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.FileResponse;
|
||||
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.PlanRequest;
|
||||
import com.interplug.qcast.biz.object.dto.PlanResponse;
|
||||
import com.interplug.qcast.biz.pwrGnrSimulation.PwrGnrSimService;
|
||||
import com.interplug.qcast.biz.pwrGnrSimulation.dto.PwrGnrSimGuideResponse;
|
||||
import com.interplug.qcast.biz.pwrGnrSimulation.dto.PwrGnrSimRequest;
|
||||
@ -50,6 +49,9 @@ public class EstimateService {
|
||||
|
||||
@Autowired Messages message;
|
||||
|
||||
@Value("${file.ini.root.path}")
|
||||
private String baseDirPath;
|
||||
|
||||
@Value("${qsp.url}")
|
||||
private String QSP_API_URL;
|
||||
|
||||
@ -607,98 +609,186 @@ public class EstimateService {
|
||||
/**
|
||||
* 견적서 복사
|
||||
*
|
||||
* @param estimateRequest 견적서 복사 정보
|
||||
* @param estimateCopyRequest 견적서 복사 정보
|
||||
* @return EstimateResponse 견적서 복사 후 상세 정보
|
||||
* @throws Exception
|
||||
*/
|
||||
public EstimateResponse insertEstimateCopy(EstimateRequest estimateRequest) throws Exception {
|
||||
public EstimateResponse insertEstimateCopy(EstimateCopyRequest estimateCopyRequest)
|
||||
throws Exception {
|
||||
// Validation
|
||||
if (StringUtils.isEmpty(estimateRequest.getObjectNo())) {
|
||||
if (StringUtils.isEmpty(estimateCopyRequest.getObjectNo())) {
|
||||
throw new QcastException(
|
||||
ErrorCode.INVALID_INPUT_VALUE,
|
||||
message.getMessage("common.message.required.data", "Object No"));
|
||||
}
|
||||
if (StringUtils.isEmpty(estimateRequest.getPlanNo())) {
|
||||
if (StringUtils.isEmpty(estimateCopyRequest.getPlanNo())) {
|
||||
throw new QcastException(
|
||||
ErrorCode.INVALID_INPUT_VALUE,
|
||||
message.getMessage("common.message.required.data", "Plan No"));
|
||||
}
|
||||
|
||||
// 응답 객체
|
||||
EstimateResponse response = new EstimateResponse();
|
||||
|
||||
// [1]. 총 플랜 목록 조회 및 제약조건 처리 (플랜 10개까지만 등록)
|
||||
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"));
|
||||
}
|
||||
try {
|
||||
|
||||
List<ItemRequest> itemList = new ArrayList<ItemRequest>();
|
||||
List<ItemResponse> estimateItemList = estimateMapper.selectEstimateItemList(estimateRequest);
|
||||
for (ItemResponse itemResponse : estimateItemList) {
|
||||
ItemRequest itemRequest = new ItemRequest();
|
||||
itemRequest.setItemId(itemResponse.getItemId());
|
||||
itemRequest.setAmount(itemResponse.getAmount());
|
||||
ObjectRequest objectRequest = new ObjectRequest();
|
||||
objectRequest.setSaleStoreId(estimateCopyRequest.getCopySaleStoreId());
|
||||
objectRequest.setReceiveUser(
|
||||
StringUtils.defaultString(estimateCopyRequest.getCopyReceiveUser()));
|
||||
objectRequest.setDelFlg("0");
|
||||
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]. 아이템 관련 데이터 셋팅 (복사 시 정가 셋팅)
|
||||
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);
|
||||
// [2]. 물건정보 복사
|
||||
objectRequest.setContentsPath(baseDirPath + "\\\\" + objectRequest.getCopyObjectNo());
|
||||
objectMapper.insertObjectCopy(objectRequest);
|
||||
objectRequest.setObjectNo(objectRequest.getCopyObjectNo());
|
||||
objectMapper.updateObjectDelivery(objectRequest);
|
||||
|
||||
int j = 1;
|
||||
for (ItemRequest itemRequest : itemList) {
|
||||
itemRequest.setDispOrder(String.valueOf(j++));
|
||||
// [3]. 아이템 관련 데이터 셋팅 (복사 시 정가 셋팅)
|
||||
EstimateRequest estimateRequest = new EstimateRequest();
|
||||
estimateRequest.setObjectNo(estimateCopyRequest.getObjectNo());
|
||||
estimateRequest.setPlanNo(estimateCopyRequest.getPlanNo());
|
||||
|
||||
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.setItemGroup(itemResponse.getItemGroup());
|
||||
List<ItemRequest> itemList = new ArrayList<ItemRequest>();
|
||||
List<ItemResponse> estimateItemList = estimateMapper.selectEstimateItemList(estimateRequest);
|
||||
for (ItemResponse itemResponse : estimateItemList) {
|
||||
ItemRequest itemRequest = new ItemRequest();
|
||||
itemRequest.setDispOrder(itemResponse.getDispOrder());
|
||||
itemRequest.setPaDispOrder(itemResponse.getPaDispOrder());
|
||||
itemRequest.setItemId(itemResponse.getItemId());
|
||||
itemRequest.setAmount(itemResponse.getAmount());
|
||||
itemRequest.setBomAmount(itemResponse.getBomAmount());
|
||||
itemRequest.setSpecialNoteCd(itemResponse.getSpecialNoteCd());
|
||||
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);
|
||||
}
|
||||
|
||||
// 견적서 복사
|
||||
estimateMapper.insertEstimateCopy(estimateRequest);
|
||||
|
||||
// 견적서 아이템 복사
|
||||
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());
|
||||
// [9]. 최종 생성 물건번호 리턴
|
||||
response.setObjectNo(estimateCopyRequest.getCopyObjectNo());
|
||||
response.setPlanNo(estimateCopyRequest.getCopyPlanNo());
|
||||
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 = "비고")
|
||||
private String remarks;
|
||||
|
||||
@Schema(description = "복사 플랜번호")
|
||||
private String copyPlanNo;
|
||||
|
||||
@Schema(description = "아이템번호 목록")
|
||||
private String[] arrItemId;
|
||||
|
||||
|
||||
@ -71,6 +71,9 @@ public class ItemRequest {
|
||||
@Schema(description = "PC 아이템 ID")
|
||||
private String pcItemId;
|
||||
|
||||
@Schema(description = "회로")
|
||||
private String circuit;
|
||||
|
||||
@Schema(description = "W")
|
||||
private String pnowW;
|
||||
|
||||
|
||||
@ -48,6 +48,9 @@ public class RoofRequest {
|
||||
@Schema(description = "각도")
|
||||
private String angle;
|
||||
|
||||
@Schema(description = "경사각 선택코드")
|
||||
private String classType;
|
||||
|
||||
@Schema(description = "방위각")
|
||||
private String azimuth;
|
||||
|
||||
|
||||
@ -77,12 +77,24 @@ public class RoofResponse {
|
||||
@Schema(description = "아이템 번호")
|
||||
private String itemNo;
|
||||
|
||||
@Schema(description = "아이템명")
|
||||
private String itemName;
|
||||
|
||||
@Schema(description = "W")
|
||||
private String specification;
|
||||
|
||||
@Schema(description = "매수")
|
||||
private String amount;
|
||||
|
||||
@Schema(description = "용량")
|
||||
private String volKw;
|
||||
|
||||
@Schema(description = "PC 아이템 ID")
|
||||
private String pcItemId;
|
||||
|
||||
@Schema(description = "회로")
|
||||
private String circuit;
|
||||
|
||||
@Schema(description = "Pc 모듈 매수")
|
||||
private String pcModuleAmount;
|
||||
}
|
||||
|
||||
@ -43,6 +43,9 @@ public interface ObjectMapper {
|
||||
// 물건정보 등록
|
||||
public int insertObject(ObjectRequest objectRequest);
|
||||
|
||||
// 물건정보 복사
|
||||
public int insertObjectCopy(ObjectRequest objectRequest);
|
||||
|
||||
// 물건정보 수정
|
||||
public int updateObject(ObjectRequest objectRequest);
|
||||
|
||||
|
||||
@ -152,6 +152,9 @@ public class ObjectRequest {
|
||||
@Schema(description = "검색 - 정렬순서")
|
||||
private String schSortType;
|
||||
|
||||
@Schema(description = "복사 물건번호")
|
||||
private String copyObjectNo;
|
||||
|
||||
// 페이징정보
|
||||
@Schema(description = "시작 Row")
|
||||
private String startRow;
|
||||
|
||||
@ -291,6 +291,7 @@
|
||||
, P.PLAN_NO
|
||||
, ROUND(CAST(P.SETUP_HEIGHT AS FLOAT), 2) AS SETUP_HEIGHT
|
||||
, P.SURFACE_TYPE
|
||||
, RE.ROOF_NO
|
||||
, RE.ROOF_SURFACE
|
||||
, RE.ROOF_MATERIAL_ID
|
||||
, RE.SUPPORT_METHOD_ID
|
||||
@ -319,6 +320,25 @@
|
||||
AND P.PLAN_NO = #{planNo}
|
||||
</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">
|
||||
/* sqlid : com.interplug.qcast.biz.estimate.selectEstimateRoofPcList */
|
||||
SELECT
|
||||
@ -687,6 +707,9 @@
|
||||
<if test='angle != null and angle != ""'>
|
||||
, ANGLE
|
||||
</if>
|
||||
<if test='classType != null and classType != ""'>
|
||||
, CLASS_TYPE
|
||||
</if>
|
||||
<if test='azimuth != null and azimuth != ""'>
|
||||
, AZIMUTH
|
||||
</if>
|
||||
@ -705,6 +728,9 @@
|
||||
<if test='angle != null and angle != ""'>
|
||||
, #{angle}
|
||||
</if>
|
||||
<if test='classType != null and classType != ""'>
|
||||
, #{classType}
|
||||
</if>
|
||||
<if test='azimuth != null and azimuth != ""'>
|
||||
, #{azimuth}
|
||||
</if>
|
||||
@ -726,6 +752,7 @@
|
||||
, SPECIFICATION
|
||||
, AMOUNT
|
||||
, PC_ITEM_ID
|
||||
, CIRCUIT
|
||||
)
|
||||
SELECT
|
||||
#{roofNo} AS ROOF_NO
|
||||
@ -737,6 +764,7 @@
|
||||
, I.PNOW_W
|
||||
, #{amount}
|
||||
, #{pcItemId}
|
||||
, #{circuit}
|
||||
FROM M_ITEM I WITH (NOLOCK)
|
||||
WHERE I.ITEM_ID = #{itemId}
|
||||
</insert>
|
||||
@ -762,12 +790,8 @@
|
||||
AND PLAN_NO = #{planNo}
|
||||
</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 */
|
||||
<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
|
||||
(
|
||||
OBJECT_NO
|
||||
@ -813,9 +837,15 @@
|
||||
, PKG_ASP
|
||||
, PRICE_CD
|
||||
, REMARKS
|
||||
, CONSTRUCT_SPECIFICATION_MULTI
|
||||
, SURFACE_TYPE
|
||||
, ANGLE
|
||||
, SYNC_FLG
|
||||
, CREATE_DATETIME
|
||||
, CREATE_USER
|
||||
)
|
||||
SELECT
|
||||
#{objectNo} AS OBJECT_NO
|
||||
#{copyObjectNo} AS OBJECT_NO
|
||||
, #{copyPlanNo} AS PLAN_NO
|
||||
, P.CONSTRUCT_SPECIFICATION
|
||||
, P.SETUP_HEIGHT
|
||||
@ -856,8 +886,14 @@
|
||||
, P.FILE_FLG
|
||||
, P.ESTIMATE_OPTION
|
||||
, P.PKG_ASP
|
||||
, P.PRICE_CD
|
||||
, 'UNIT_PRICE' AS PRICE_CD
|
||||
, 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)
|
||||
WHERE P.OBJECT_NO = #{objectNo}
|
||||
AND P.PLAN_NO = #{planNo}
|
||||
|
||||
@ -491,6 +491,100 @@
|
||||
)
|
||||
</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">
|
||||
/* sqlid : com.interplug.qcast.biz.object.updateObject */
|
||||
UPDATE T_OBJECT
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user