플랜추가 API 도면복사 기능 개발
This commit is contained in:
parent
a22dbffe4e
commit
2627a5d928
@ -792,6 +792,7 @@ public class EstimateService {
|
|||||||
itemList.add(itemRequest);
|
itemList.add(itemRequest);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!itemList.isEmpty()) {
|
||||||
String[] arrItemId = new String[itemList.size()];
|
String[] arrItemId = new String[itemList.size()];
|
||||||
int i = 0;
|
int i = 0;
|
||||||
for (ItemRequest itemRequest : itemList) {
|
for (ItemRequest itemRequest : itemList) {
|
||||||
@ -820,6 +821,7 @@ public class EstimateService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// [4]. 견적서 복사
|
// [4]. 견적서 복사
|
||||||
estimateCopyRequest.setCopyObjectNo(objectRequest.getObjectNo());
|
estimateCopyRequest.setCopyObjectNo(objectRequest.getObjectNo());
|
||||||
@ -851,7 +853,7 @@ public class EstimateService {
|
|||||||
// 도면 초기 데이타 복사(초기화 위해 필요)
|
// 도면 초기 데이타 복사(초기화 위해 필요)
|
||||||
estimateMapper.insertEstimateDrawingItemCopy(estimateCopyRequest);
|
estimateMapper.insertEstimateDrawingItemCopy(estimateCopyRequest);
|
||||||
|
|
||||||
// [7]. 견적서 도면 복사 (추후 개발 필요)
|
// [7]. 견적서 도면 복사
|
||||||
CanvasStatusCopyRequest cs = new CanvasStatusCopyRequest();
|
CanvasStatusCopyRequest cs = new CanvasStatusCopyRequest();
|
||||||
cs.setOriginObjectNo(estimateCopyRequest.getObjectNo());
|
cs.setOriginObjectNo(estimateCopyRequest.getObjectNo());
|
||||||
cs.setOriginPlanNo(estimateCopyRequest.getPlanNo());
|
cs.setOriginPlanNo(estimateCopyRequest.getPlanNo());
|
||||||
|
|||||||
@ -70,6 +70,9 @@ public interface ObjectMapper {
|
|||||||
// 플랜정보 물건번호 변경
|
// 플랜정보 물건번호 변경
|
||||||
public int updatePlanObjectNoChange(ObjectRequest objectRequest);
|
public int updatePlanObjectNoChange(ObjectRequest objectRequest);
|
||||||
|
|
||||||
|
// 플랜 번호 조회
|
||||||
|
public String selectPlanNo(PlanRequest planRequest);
|
||||||
|
|
||||||
// 견적서 첨부파일 조회
|
// 견적서 첨부파일 조회
|
||||||
public UploadResponse selectUpload(UploadRequest uploadRequest);
|
public UploadResponse selectUpload(UploadRequest uploadRequest);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,11 @@
|
|||||||
package com.interplug.qcast.biz.object;
|
package com.interplug.qcast.biz.object;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.DeserializationFeature;
|
import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||||
|
import com.interplug.qcast.biz.canvasStatus.CanvasStatusService;
|
||||||
|
import com.interplug.qcast.biz.canvasStatus.dto.CanvasStatus;
|
||||||
|
import com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusCopyRequest;
|
||||||
|
import com.interplug.qcast.biz.estimate.EstimateMapper;
|
||||||
|
import com.interplug.qcast.biz.estimate.dto.*;
|
||||||
import com.interplug.qcast.biz.object.dto.ObjectRequest;
|
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.PlanReqRequest;
|
import com.interplug.qcast.biz.object.dto.PlanReqRequest;
|
||||||
@ -58,8 +63,12 @@ public class ObjectService {
|
|||||||
|
|
||||||
private final ObjectMapper objectMapper;
|
private final ObjectMapper objectMapper;
|
||||||
|
|
||||||
|
private final EstimateMapper estimateMapper;
|
||||||
|
|
||||||
private final StoreFavoriteService storeFavoriteService;
|
private final StoreFavoriteService storeFavoriteService;
|
||||||
|
|
||||||
|
@Autowired private CanvasStatusService canvasStatusService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 도도부현 목록 조회
|
* 도도부현 목록 조회
|
||||||
*
|
*
|
||||||
@ -499,6 +508,12 @@ public class ObjectService {
|
|||||||
message.getMessage("common.message.required.data", "Object No"));
|
message.getMessage("common.message.required.data", "Object No"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ("1".equals(planRequest.getCopyFlg()) && StringUtils.isEmpty(planRequest.getPlanNo())) {
|
||||||
|
throw new QcastException(
|
||||||
|
ErrorCode.INVALID_INPUT_VALUE,
|
||||||
|
message.getMessage("common.message.required.data", "Plan No"));
|
||||||
|
}
|
||||||
|
|
||||||
// Plan 추가 가능 체크
|
// Plan 추가 가능 체크
|
||||||
List<PlanResponse> planList = objectMapper.selectPlanList(planRequest);
|
List<PlanResponse> planList = objectMapper.selectPlanList(planRequest);
|
||||||
if (planList.size() > 9) {
|
if (planList.size() > 9) {
|
||||||
@ -506,6 +521,120 @@ public class ObjectService {
|
|||||||
ErrorCode.INTERNAL_SERVER_ERROR, message.getMessage("common.message.plan.save.limit"));
|
ErrorCode.INTERNAL_SERVER_ERROR, message.getMessage("common.message.plan.save.limit"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
// 복사조건인 경우 (copyFlg = '1')
|
||||||
|
if ("1".equals(planRequest.getCopyFlg())) {
|
||||||
|
String copyPlanNo = objectMapper.selectPlanNo(planRequest);
|
||||||
|
|
||||||
|
// [1]. 복사대상 견적서 여부 조회
|
||||||
|
EstimateRequest estimateRequest = new EstimateRequest();
|
||||||
|
estimateRequest.setObjectNo(planRequest.getObjectNo());
|
||||||
|
estimateRequest.setPlanNo(planRequest.getPlanNo());
|
||||||
|
|
||||||
|
// 견적서 상세 조회
|
||||||
|
EstimateResponse estimateResponse = estimateMapper.selectEstimateDetail(estimateRequest);
|
||||||
|
|
||||||
|
// [2]. 아이템 관련 데이터 셋팅 (복사 시 정가 셋팅)
|
||||||
|
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");
|
||||||
|
|
||||||
|
itemList.add(itemRequest);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!itemList.isEmpty()) {
|
||||||
|
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());
|
||||||
|
itemRequest.setOpenFlg(itemResponse.getOpenFlg());
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// [3]. 견적서 복사
|
||||||
|
EstimateCopyRequest estimateCopyRequest = new EstimateCopyRequest();
|
||||||
|
estimateCopyRequest.setObjectNo(planRequest.getObjectNo());
|
||||||
|
estimateCopyRequest.setPlanNo(planRequest.getPlanNo());
|
||||||
|
estimateCopyRequest.setCopyObjectNo(planRequest.getObjectNo());
|
||||||
|
estimateCopyRequest.setCopyPlanNo(copyPlanNo);
|
||||||
|
estimateCopyRequest.setUserId(planRequest.getUserId());
|
||||||
|
estimateMapper.insertEstimateCopy(estimateCopyRequest);
|
||||||
|
|
||||||
|
if (estimateResponse != null && !StringUtils.isEmpty(estimateResponse.getEstimateDate())) {
|
||||||
|
// [4]. 견적서 아이템 복사
|
||||||
|
for (ItemRequest itemRequest : itemList) {
|
||||||
|
itemRequest.setObjectNo(estimateCopyRequest.getCopyObjectNo());
|
||||||
|
itemRequest.setPlanNo(estimateCopyRequest.getCopyPlanNo());
|
||||||
|
itemRequest.setPartAdd(
|
||||||
|
!org.apache.commons.lang3.StringUtils.isEmpty(itemRequest.getPartAdd())
|
||||||
|
? itemRequest.getPartAdd()
|
||||||
|
: "0");
|
||||||
|
itemRequest.setItemChangeFlg(
|
||||||
|
!org.apache.commons.lang3.StringUtils.isEmpty(itemRequest.getItemChangeFlg())
|
||||||
|
? itemRequest.getItemChangeFlg()
|
||||||
|
: "0");
|
||||||
|
itemRequest.setUserId(estimateCopyRequest.getUserId());
|
||||||
|
|
||||||
|
estimateMapper.insertEstimateItem(itemRequest);
|
||||||
|
}
|
||||||
|
|
||||||
|
// [5]. 견적서 지붕면 및 도면 초기 데이터 복사
|
||||||
|
// 견적서 지붕면 복사
|
||||||
|
estimateMapper.insertEstimateRoofCopy(estimateCopyRequest);
|
||||||
|
// 견적서 지붕면 아이템 복사
|
||||||
|
estimateMapper.insertEstimateRoofItemCopy(estimateCopyRequest);
|
||||||
|
// 견적서 지붕면 회로구성 아이템 복사
|
||||||
|
estimateMapper.insertEstimateCircuitItemCopy(estimateCopyRequest);
|
||||||
|
// 도면 초기 데이타 복사(초기화 위해 필요)
|
||||||
|
estimateMapper.insertEstimateDrawingItemCopy(estimateCopyRequest);
|
||||||
|
}
|
||||||
|
|
||||||
|
// [6]. 견적서 도면 복사
|
||||||
|
CanvasStatusCopyRequest cs = new CanvasStatusCopyRequest();
|
||||||
|
cs.setOriginObjectNo(planRequest.getObjectNo());
|
||||||
|
cs.setOriginPlanNo(planRequest.getPlanNo());
|
||||||
|
cs.setObjectNo(planRequest.getObjectNo());
|
||||||
|
cs.setPlanNo(copyPlanNo);
|
||||||
|
cs.setUserId(planRequest.getUserId());
|
||||||
|
Integer canvasId = canvasStatusService.copyCanvasStatus(cs);
|
||||||
|
|
||||||
|
planResponse.setObjectNo(planRequest.getObjectNo());
|
||||||
|
planResponse.setPlanNo(copyPlanNo);
|
||||||
|
planResponse.setCanvasId(canvasId);
|
||||||
|
|
||||||
|
} else {
|
||||||
// 추가 Plan 등록
|
// 추가 Plan 등록
|
||||||
planRequest.setRoofKindId("0");
|
planRequest.setRoofKindId("0");
|
||||||
planRequest.setStatus("1");
|
planRequest.setStatus("1");
|
||||||
@ -517,8 +646,22 @@ public class ObjectService {
|
|||||||
|
|
||||||
objectMapper.insertPlan(planRequest);
|
objectMapper.insertPlan(planRequest);
|
||||||
|
|
||||||
|
// 도면 기본정보 등록
|
||||||
|
CanvasStatus cs = new CanvasStatus();
|
||||||
|
cs.setObjectNo(planRequest.getObjectNo());
|
||||||
|
cs.setPlanNo(planRequest.getPlanNo());
|
||||||
|
cs.setCanvasStatus("");
|
||||||
|
cs.setUserId(planRequest.getUserId());
|
||||||
|
Integer canvasId = canvasStatusService.insertCanvasStatus(cs);
|
||||||
|
|
||||||
planResponse.setObjectNo(planRequest.getObjectNo());
|
planResponse.setObjectNo(planRequest.getObjectNo());
|
||||||
planResponse.setPlanNo(planRequest.getPlanNo());
|
planResponse.setPlanNo(planRequest.getPlanNo());
|
||||||
|
planResponse.setCanvasId(canvasId);
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new QcastException(ErrorCode.INTERNAL_SERVER_ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
return planResponse;
|
return planResponse;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -109,4 +109,7 @@ public class PlanRequest {
|
|||||||
|
|
||||||
@Schema(description = "임시저장여부")
|
@Schema(description = "임시저장여부")
|
||||||
private String tempFlg;
|
private String tempFlg;
|
||||||
|
|
||||||
|
@Schema(description = "복사여부")
|
||||||
|
private String copyFlg;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -115,4 +115,7 @@ public class PlanResponse {
|
|||||||
|
|
||||||
@Schema(description = "생성자 판매점 ID")
|
@Schema(description = "생성자 판매점 ID")
|
||||||
private String createSaleStoreId;
|
private String createSaleStoreId;
|
||||||
|
|
||||||
|
@Schema(description = "캔버스 ID")
|
||||||
|
private Integer canvasId;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -304,7 +304,7 @@
|
|||||||
, O.STANDARD_WIND_SPEED_ID
|
, O.STANDARD_WIND_SPEED_ID
|
||||||
, O.VERTICAL_SNOW_COVER
|
, O.VERTICAL_SNOW_COVER
|
||||||
, O.SURFACE_TYPE
|
, O.SURFACE_TYPE
|
||||||
, O.INSTALL_HEIGHT
|
, CASE WHEN ISNUMERIC(O.INSTALL_HEIGHT) = 1 THEN CAST(CONVERT(FLOAT, O.INSTALL_HEIGHT) AS INT) ELSE 0 END AS INSTALL_HEIGHT
|
||||||
, O.CON_TYPE
|
, O.CON_TYPE
|
||||||
, O.COLD_REGION_FLG
|
, O.COLD_REGION_FLG
|
||||||
, O.SALT_AREA_FLG
|
, O.SALT_AREA_FLG
|
||||||
@ -802,6 +802,14 @@
|
|||||||
WHERE OBJECT_NO = #{objectNo}
|
WHERE OBJECT_NO = #{objectNo}
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
<select id="selectPlanNo" parameterType="com.interplug.qcast.biz.object.dto.PlanRequest" resultType="String">
|
||||||
|
/* sqlid : com.interplug.qcast.biz.object.selectPlanNo*/
|
||||||
|
SELECT
|
||||||
|
CAST(ISNULL(MAX(PLAN_NO), 0) + 1 AS NVARCHAR) AS PLAN_NO
|
||||||
|
FROM T_PLAN
|
||||||
|
WHERE OBJECT_NO = #{objectNo}
|
||||||
|
</select>
|
||||||
|
|
||||||
<select id="selectUpload" parameterType="com.interplug.qcast.biz.object.dto.UploadRequest" resultType="com.interplug.qcast.biz.object.dto.UploadResponse">
|
<select id="selectUpload" parameterType="com.interplug.qcast.biz.object.dto.UploadRequest" resultType="com.interplug.qcast.biz.object.dto.UploadResponse">
|
||||||
/* sqlid : com.interplug.qcast.biz.object.selectUpload */
|
/* sqlid : com.interplug.qcast.biz.object.selectUpload */
|
||||||
SELECT
|
SELECT
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user