견적서 복사 에러 수정

This commit is contained in:
LAPTOP-L3VE7KK2\USER 2025-02-27 17:51:39 +09:00
parent 453cf1ee12
commit aaf6ddcb13
3 changed files with 53 additions and 3 deletions

View File

@ -1,5 +1,9 @@
package com.interplug.qcast.biz.canvasStatus;
import com.interplug.qcast.biz.canvasBasicSetting.CanvasBasicSettingMapper;
import com.interplug.qcast.biz.canvasBasicSetting.dto.CanvasBasicSettingInfo;
import com.interplug.qcast.biz.canvasBasicSetting.dto.CanvasBasicSettingResponse;
import com.interplug.qcast.biz.canvasBasicSetting.dto.RoofMaterialsAddInfo;
import com.interplug.qcast.biz.canvasStatus.dto.CanvasStatus;
import com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusCopyRequest;
import com.interplug.qcast.biz.canvasStatus.dto.CanvasStatusResponse;
@ -14,6 +18,7 @@ import org.springframework.transaction.annotation.Transactional;
@RequiredArgsConstructor
public class CanvasStatusService {
private final CanvasStatusMapper canvasStatusMapper;
private final CanvasBasicSettingMapper canvasBasicSettingMapper;
// 사용자(userId) 해당하는 전체 캔버스 조회
public List<CanvasStatusResponse> selectAllCanvasStatus(String userId) throws QcastException {
@ -148,9 +153,54 @@ public class CanvasStatusService {
// 캔버스 복사 등록
@Transactional
public int copyCanvasStatus(CanvasStatusCopyRequest cs) throws QcastException {
public int copyCanvasStatus(CanvasStatusCopyRequest cs, Boolean flag) throws QcastException {
try {
if (flag) {
// 배치면 초기설정 정보 조회
List<CanvasBasicSettingResponse> selData =
canvasBasicSettingMapper.selectCanvasBasicSetting(
cs.getOriginObjectNo(), Integer.parseInt(cs.getOriginPlanNo()));
if (!selData.isEmpty()) {
// 번째 데이터만 CanvasBasicSettingInfo로 변환하여 insert 실행
CanvasBasicSettingResponse firstData = selData.get(0);
// CanvasBasicSettingResponse CanvasBasicSettingInfo 변환
CanvasBasicSettingInfo basicSettingInfo = new CanvasBasicSettingInfo();
basicSettingInfo.setObjectNo(cs.getObjectNo());
basicSettingInfo.setPlanNo(Integer.parseInt(cs.getPlanNo()));
basicSettingInfo.setRoofSizeSet(firstData.getRoofSizeSet());
basicSettingInfo.setRoofAngleSet(firstData.getRoofAngleSet());
// 도면/치수/각도 정보 insert ( 번만 실행)
canvasBasicSettingMapper.insertCanvasBasicSetting(basicSettingInfo);
// 나머지 RoofMaterialsAddInfo 처리
for (CanvasBasicSettingResponse data : selData) {
// CanvasBasicSettingResponse RoofMaterialsAddInfo 변환
RoofMaterialsAddInfo roofMaterials = new RoofMaterialsAddInfo();
roofMaterials.setObjectNo(cs.getObjectNo());
roofMaterials.setPlanNo(Integer.parseInt(cs.getPlanNo()));
roofMaterials.setRoofApply(data.isRoofApply());
roofMaterials.setRoofSeq(data.getRoofSeq());
roofMaterials.setRoofMatlCd(data.getRoofMatlCd());
roofMaterials.setRoofWidth(data.getRoofWidth());
roofMaterials.setRoofHeight(data.getRoofHeight());
roofMaterials.setRoofHajebichi(data.getRoofHajebichi());
roofMaterials.setRoofGap(data.getRoofGap());
roofMaterials.setRoofLayout(data.getRoofLayout());
roofMaterials.setRoofPitch(data.getRoofPitch());
roofMaterials.setRoofAngle(data.getRoofAngle());
// 지붕재 추가 Setting insert (여러 가능)
canvasBasicSettingMapper.insertRoofMaterialsAdd(roofMaterials);
}
}
}
canvasStatusMapper.copyCanvasStatus(cs);
return cs.getId();
} catch (Exception e) {
throw new QcastException(ErrorCode.INTERNAL_SERVER_ERROR, "캔버스 복사 중 오류 발생");

View File

@ -908,7 +908,7 @@ public class EstimateService {
cs.setObjectNo(estimateCopyRequest.getCopyObjectNo());
cs.setPlanNo(estimateCopyRequest.getCopyPlanNo());
cs.setUserId(estimateCopyRequest.getUserId());
canvasStatusService.copyCanvasStatus(cs);
canvasStatusService.copyCanvasStatus(cs, true);
// [8]. QSP Q.CAST SEND API
/*

View File

@ -698,7 +698,7 @@ public class ObjectService {
cs.setObjectNo(planRequest.getObjectNo());
cs.setPlanNo(copyPlanNo);
cs.setUserId(planRequest.getUserId());
Integer canvasId = canvasStatusService.copyCanvasStatus(cs);
Integer canvasId = canvasStatusService.copyCanvasStatus(cs, false);
planResponse.setObjectNo(planRequest.getObjectNo());
planResponse.setPlanNo(copyPlanNo);