배치면초기설정 plan_no 추가 적용

This commit is contained in:
changkyu choi 2025-02-14 17:06:20 +09:00
parent a52776b48d
commit 9eee768bef
9 changed files with 256 additions and 192 deletions

View File

@ -22,41 +22,50 @@ public class CanvasBasicSettingController {
private final CanvasBasicSettingService canvasBasicSettingService;
@Operation(description = "Canvas Basic Setting 정보를 조회 한다.")
@GetMapping("/canvas-basic-settings/by-object/{objectNo}")
public List<CanvasBasicSettingResponse> selectCanvasBasicSetting(@PathVariable String objectNo)
throws QcastException {
log.debug("Basic Setting 조회 ::::: " + objectNo);
return canvasBasicSettingService.selectCanvasBasicSetting(objectNo);
@GetMapping("/canvas-basic-settings/by-object/{objectNo}/{planNo}")
public List<CanvasBasicSettingResponse> selectCanvasBasicSetting(@PathVariable String objectNo, @PathVariable Integer planNo)
throws QcastException {
log.debug("Basic Setting 조회 ::::: " + objectNo + " : " + planNo);
return canvasBasicSettingService.selectCanvasBasicSetting(objectNo, planNo);
}
@Operation(description = "Canvas Basic Setting 정보를 등록 한다.")
@PostMapping("/canvas-basic-settings")
@ResponseStatus(HttpStatus.CREATED)
public Map<String, String> insertCanvasBasicSetting(@RequestBody CanvasBasicSettingInfo csi)
throws QcastException {
log.debug("Basic Setting 등록 ::::: " + csi.getObjectNo());
return canvasBasicSettingService.insertCanvasBasicSetting(csi);
public Map<String, String> insertCanvasBasicSetting(@RequestBody CanvasBasicSettingInfo csi) throws QcastException {
log.debug("Basic Setting 등록 ::::: " + csi.getObjectNo());
return canvasBasicSettingService.insertCanvasBasicSetting(csi);
}
@Operation(description = "Canvas Basic Setting 정보를 삭제 한다.")
@DeleteMapping("/canvas-basic-settings/delete-basic-settings/{objectNo}/{planNo}")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void deleteCanvasBasicSetting(@PathVariable String objectNo, @PathVariable Integer planNo) throws QcastException {
log.debug("Basic Setting 삭제 ::::: " + objectNo + " : " + planNo);
canvasBasicSettingService.deleteCanvasBasicSetting(objectNo, planNo);
}
@Operation(description = "지붕면 할당 정보를 등록 한다.")
@PostMapping("/roof-allocation-settings")
@ResponseStatus(HttpStatus.CREATED)
public Map<String, String> insertRoofAllocSetting(@RequestBody RoofAllocationSettingInfo rasi)
throws QcastException {
public Map<String, String> insertRoofAllocSetting(@RequestBody RoofAllocationSettingInfo rasi) throws QcastException {
log.debug("지붕면 할당 등록 ::::: " + rasi.getObjectNo());
log.debug("지붕면 할당 등록 ::::: " + rasi.getObjectNo());
return canvasBasicSettingService.insertRoofAllocSetting(rasi);
return canvasBasicSettingService.insertRoofAllocSetting(rasi);
}
@Operation(description = "Canvas 지붕재추가 Setting 정보를 삭제 한다.")
@DeleteMapping("/canvas-basic-settings/delete-RoofMaterials/{objectNo}")
@DeleteMapping("/canvas-basic-settings/delete-RoofMaterials/{objectNo}/{planNo}")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void deleteRoofMaterialsAdd(@PathVariable String objectNo) throws QcastException {
canvasBasicSettingService.deleteRoofMaterialsAdd(objectNo);
public void deleteRoofMaterialsAdd(@PathVariable String objectNo, @PathVariable Integer planNo) throws QcastException {
canvasBasicSettingService.deleteRoofMaterialsAdd(objectNo, planNo);
}
}

View File

@ -13,30 +13,33 @@ import com.interplug.qcast.biz.canvasBasicSetting.dto.RoofMaterialsAddInfo;
public interface CanvasBasicSettingMapper {
// Canvas Basic Setting 유무 조회
public CanvasBasicSettingInfo getCanvasBasicSettingCnt(String objectNo);
// Canvas Basic Setting 조회(objectNo)
public List<CanvasBasicSettingResponse> selectCanvasBasicSetting(String objectNo);
// Canvas Basic Setting 등록
public void insertCanvasBasicSetting(CanvasBasicSettingInfo csi);
// Canvas Basic Setting 수정
public void updateCanvasBasicSetting(CanvasBasicSettingInfo csi);
// Canvas 지붕재추가 Setting 유무 조회
public RoofMaterialsAddInfo getRoofMaterialsCnt(String objectNo);
// Canvas 지붕재추가 Setting 등록
public void insertRoofMaterialsAdd(RoofMaterialsAddInfo rma);
// Canvas 지붕재추가 Setting 수정
public void updateRoofMaterialsAdd(RoofMaterialsAddInfo rma);
// 지붕면 할당 Setting 등록
public void insertRoofAllocation(RoofAllocationInfo rai);
public CanvasBasicSettingInfo getCanvasBasicSettingCnt(String objectNo, Integer planNo);
// Canvas 지붕재추가 Setting 삭제
public void deleteRoofMaterialsAdd(String objectNo);
// Canvas Basic Setting 조회(objectNo)
public List<CanvasBasicSettingResponse> selectCanvasBasicSetting(String objectNo, Integer planNo);
// Canvas Basic Setting 등록
public void insertCanvasBasicSetting(CanvasBasicSettingInfo csi);
// Canvas Basic Setting 수정
public void updateCanvasBasicSetting(CanvasBasicSettingInfo csi);
// Canvas Basic Setting 삭제
public void deleteCanvasBasicSetting(String objectNo, Integer planNo);
// Canvas 지붕재추가 Setting 유무 조회
public RoofMaterialsAddInfo getRoofMaterialsCnt(String objectNo, Integer planNo);
// Canvas 지붕재추가 Setting 등록
public void insertRoofMaterialsAdd(RoofMaterialsAddInfo rma);
// Canvas 지붕재추가 Setting 수정
public void updateRoofMaterialsAdd(RoofMaterialsAddInfo rma);
// 지붕면 할당 Setting 등록
public void insertRoofAllocation(RoofAllocationInfo rai);
// Canvas 지붕재추가 Setting 삭제
public void deleteRoofMaterialsAdd(String objectNo, Integer planNo);
}

View File

@ -20,120 +20,144 @@ import org.springframework.stereotype.Service;
public class CanvasBasicSettingService {
private final CanvasBasicSettingMapper canvasBasicSettingMapper;
// Canvas Basic Setting 조회(objectNo)
public List<CanvasBasicSettingResponse> selectCanvasBasicSetting(String objectNo)
throws QcastException {
try {
return canvasBasicSettingMapper.selectCanvasBasicSetting(objectNo);
} catch (Exception e) {
throw new QcastException(ErrorCode.INTERNAL_SERVER_ERROR, e.getMessage());
}
}
//Canvas Basic Setting 조회(objectNo)
public List<CanvasBasicSettingResponse> selectCanvasBasicSetting(String objectNo, Integer planNo) throws QcastException {
try {
return canvasBasicSettingMapper.selectCanvasBasicSetting(objectNo, planNo);
} catch (Exception e) {
throw new QcastException(ErrorCode.INTERNAL_SERVER_ERROR, e.getMessage());
}
}
// Canvas Basic Setting 등록
public Map<String, String> insertCanvasBasicSetting(CanvasBasicSettingInfo csi)
throws QcastException {
// Canvas Basic Setting 등록
public Map<String, String> insertCanvasBasicSetting(CanvasBasicSettingInfo csi) throws QcastException {
Map<String, String> response = new HashMap<>();
if (csi.getObjectNo() == null && csi.getPlanNo() == null) {
throw new QcastException (ErrorCode.INVALID_INPUT_VALUE ,"올바르지 않은 입력값입니다.");
}
Map<String, String> response = new HashMap<>();
try {
// 먼저 데이터가 존재하는지 확인
CanvasBasicSettingInfo cntData = canvasBasicSettingMapper.getCanvasBasicSettingCnt(csi.getObjectNo(), csi.getPlanNo());
log.debug("cntData ::::: " + cntData);
// 데이터가 존재하지 않으면 insert
if (cntData.getRoofCnt().intValue() < 1) {
// 도면/치수/각도 정보 insert
canvasBasicSettingMapper.insertCanvasBasicSetting(csi);
// for-each 루프를 사용하여 지붕재추가 Setting
for (RoofMaterialsAddInfo rma : csi.getRoofMaterialsAddList()) {
rma.setObjectNo(csi.getObjectNo());
rma.setPlanNo(csi.getPlanNo());
// 신규 지붕재추가 정보 insert
canvasBasicSettingMapper.insertRoofMaterialsAdd(rma);
}
response.put("objectNo", csi.getObjectNo());
response.put("returnMessage", "common.message.confirm.mark");
} else {
// 도면/치수/각도 정보 update
canvasBasicSettingMapper.updateCanvasBasicSetting(csi);
// for-each 루프를 사용하여 지붕재추가 Setting
for (RoofMaterialsAddInfo rma : csi.getRoofMaterialsAddList()) {
rma.setObjectNo(csi.getObjectNo());
rma.setPlanNo(csi.getPlanNo());
// 신규 지붕재추가 정보 insert
canvasBasicSettingMapper.updateRoofMaterialsAdd(rma);
}
response.put("objectNo", csi.getObjectNo());
response.put("returnMessage", "common.message.confirm.mark");
}
} catch (Exception e) {
throw new QcastException(ErrorCode.INTERNAL_SERVER_ERROR, e.getMessage());
}
if (csi.getObjectNo() == null) {
throw new QcastException(ErrorCode.INVALID_INPUT_VALUE, "올바르지 않은 입력값입니다.");
}
// 생성된 objectNo 반환
return response;
}
// Canvas Basic Setting 삭제
public void deleteCanvasBasicSetting(String objectNo, Integer planNo) throws QcastException {
if ((objectNo == null || objectNo.trim().isEmpty()) && (planNo == null)) {
throw new QcastException (ErrorCode.INVALID_INPUT_VALUE ,"올바르지 않은 입력값입니다.");
}
// 먼저 데이터가 존재하는지 확인
CanvasBasicSettingInfo cntData = canvasBasicSettingMapper.getCanvasBasicSettingCnt(objectNo, planNo);
log.debug("cntData ::::: " + cntData);
// 데이터가 존재하지 않으면 insert
if (cntData.getRoofCnt().intValue() > 0) {
// Canvas Basic Setting 정보 삭제
canvasBasicSettingMapper.deleteCanvasBasicSetting(objectNo, planNo);
// 지붕재추가 정보 삭제
canvasBasicSettingMapper.deleteRoofMaterialsAdd(objectNo, planNo);
} else {
throw new QcastException(ErrorCode.NOT_FOUND, "삭제할 배치면이 존재하지 않습니다.");
}
}
// 지붕면 할당 Setting 등록
public Map<String, String> insertRoofAllocSetting(RoofAllocationSettingInfo rasi) throws QcastException {
Map<String, String> response = new HashMap<>();
if (rasi.getObjectNo() == null && rasi.getPlanNo() == null) {
throw new QcastException (ErrorCode.INVALID_INPUT_VALUE ,"올바르지 않은 입력값입니다.");
}
try {
try {
// 기존 지붕재추가 정보 삭제 insert
canvasBasicSettingMapper.deleteRoofMaterialsAdd(rasi.getObjectNo(), rasi.getPlanNo());
// for-each 루프를 사용하여 지붕재추가 Setting
for (RoofAllocationInfo rai : rasi.getRoofAllocationList()) {
rai.setObjectNo(rasi.getObjectNo());
rai.setPlanNo(rasi.getPlanNo());
canvasBasicSettingMapper.insertRoofAllocation(rai);
}
response.put("objectNo", rasi.getObjectNo());
response.put("returnMessage", "common.message.confirm.mark");
} catch (Exception e) {
throw new QcastException(ErrorCode.INTERNAL_SERVER_ERROR, e.getMessage());
}
// 먼저 데이터가 존재하는지 확인
CanvasBasicSettingInfo cntData =
canvasBasicSettingMapper.getCanvasBasicSettingCnt(csi.getObjectNo());
// 생성된 objectNo 반환
return response;
log.debug("cntData ::::: " + cntData);
// 데이터가 존재하지 않으면 insert
if (cntData.getRoofCnt().intValue() < 1) {
// 도면/치수/각도 정보 insert
canvasBasicSettingMapper.insertCanvasBasicSetting(csi);
// for-each 루프를 사용하여 지붕재추가 Setting
for (RoofMaterialsAddInfo rma : csi.getRoofMaterialsAddList()) {
rma.setObjectNo(csi.getObjectNo());
// 신규 지붕재추가 정보 insert
canvasBasicSettingMapper.insertRoofMaterialsAdd(rma);
}
} else {
// 도면/치수/각도 정보 update
canvasBasicSettingMapper.updateCanvasBasicSetting(csi);
// for-each 루프를 사용하여 지붕재추가 Setting
for (RoofMaterialsAddInfo rma : csi.getRoofMaterialsAddList()) {
rma.setObjectNo(csi.getObjectNo());
// 신규 지붕재추가 정보 insert
canvasBasicSettingMapper.updateRoofMaterialsAdd(rma);
}
}
response.put("objectNo", csi.getObjectNo());
response.put("returnMessage", "common.message.confirm.mark");
} catch (Exception e) {
throw new QcastException(ErrorCode.INTERNAL_SERVER_ERROR, e.getMessage());
}
// 생성된 objectNo 반환
return response;
}
// 지붕면 할당 Setting 등록
public Map<String, String> insertRoofAllocSetting(RoofAllocationSettingInfo rasi)
throws QcastException {
Map<String, String> response = new HashMap<>();
if (rasi.getObjectNo() == null) {
throw new QcastException(ErrorCode.INVALID_INPUT_VALUE, "올바르지 않은 입력값입니다.");
}
try {
// 기존 지붕재추가 정보 삭제 insert
canvasBasicSettingMapper.deleteRoofMaterialsAdd(rasi.getObjectNo());
// for-each 루프를 사용하여 지붕재추가 Setting
for (RoofAllocationInfo rai : rasi.getRoofAllocationList()) {
rai.setObjectNo(rasi.getObjectNo());
canvasBasicSettingMapper.insertRoofAllocation(rai);
}
response.put("objectNo", rasi.getObjectNo());
response.put("returnMessage", "common.message.confirm.mark");
} catch (Exception e) {
throw new QcastException(ErrorCode.INTERNAL_SERVER_ERROR, e.getMessage());
}
// 생성된 objectNo 반환
return response;
}
// 지붕재추가 삭제
public void deleteRoofMaterialsAdd(String objectNo) throws QcastException {
if (objectNo == null || objectNo.trim().isEmpty()) {
throw new QcastException(ErrorCode.INVALID_INPUT_VALUE, "올바르지 않은 입력값입니다.");
}
try {
// 먼저 데이터가 존재하는지 확인
RoofMaterialsAddInfo cntData = canvasBasicSettingMapper.getRoofMaterialsCnt(objectNo);
// 데이터가 존재하지 않으면 수정하지 않고 예외를 던짐
if (cntData.getRoofCnt().intValue() > 0) {
canvasBasicSettingMapper.deleteRoofMaterialsAdd(objectNo);
} else {
throw new QcastException(ErrorCode.NOT_FOUND, "삭제할 지붕재가 존재하지 않습니다.");
}
} catch (Exception e) {
if (e instanceof QcastException) throw e;
throw new QcastException(ErrorCode.INTERNAL_SERVER_ERROR, e.getMessage());
}
}
}
// 지붕재추가 삭제
public void deleteRoofMaterialsAdd(String objectNo, Integer planNo) throws QcastException {
if ((objectNo == null || objectNo.trim().isEmpty()) && (planNo == null)) {
throw new QcastException (ErrorCode.INVALID_INPUT_VALUE ,"올바르지 않은 입력값입니다.");
}
try {
// 먼저 데이터가 존재하는지 확인
RoofMaterialsAddInfo cntData = canvasBasicSettingMapper.getRoofMaterialsCnt(objectNo, planNo);
// 데이터가 존재하지 않으면 수정하지 않고 예외를 던짐
if (cntData.getRoofCnt().intValue() > 0) {
canvasBasicSettingMapper.deleteRoofMaterialsAdd(objectNo, planNo);
} else {
throw new QcastException(ErrorCode.NOT_FOUND, "삭제할 지붕재가 존재하지 않습니다.");
}
} catch (Exception e) {
if (e instanceof QcastException) throw e;
throw new QcastException(ErrorCode.INTERNAL_SERVER_ERROR, e.getMessage());
}
}
}

View File

@ -11,6 +11,7 @@ import lombok.Setter;
public class CanvasBasicSettingInfo {
private String objectNo; //견적서 번호
private Integer planNo; // plan 번호
private Integer roofSizeSet; //치수(복사도/실측값/육지붕)
private String roofAngleSet; //각도(경사/각도)
private Integer roofCnt; //존재여부

View File

@ -8,6 +8,7 @@ import lombok.Setter;
public class CanvasBasicSettingResponse {
private String objectNo; // 견적서 번호
private Integer planNo; // plan 번호
private Integer roofSizeSet; // 치수(복사도/실측값/육지붕)
private String roofAngleSet; // 각도(경사/각도)
private boolean roofApply; // 적용

View File

@ -9,18 +9,19 @@ import lombok.Setter;
@Setter
public class RoofAllocationInfo {
private String objectNo; // 견적서 번호
private boolean roofApply; // 적용
private Integer roofSeq; // 순번 SEQ
private String roofMatlCd; // 타입
private Integer roofWidth; // 넓이
private Integer roofHeight; // 높이
private Integer roofHajebichi; // 하제비치
private String roofGap; // 간격
private String roofLayout; // 방식
private Float roofPitch; // 경사도
private Float roofAngle; // 각도
private Date registDatetime; // 생성일시
private Date lastEditDatetime; // 수정일시
private String objectNo; // 견적서 번호
private Integer planNo; // plan 번호
private boolean roofApply; // 적용
private Integer roofSeq; // 순번 SEQ
private String roofMatlCd; // 타입
private Integer roofWidth; // 넓이
private Integer roofHeight; // 높이
private Integer roofHajebichi;// 하제비치
private String roofGap; // 간격
private String roofLayout; // 방식
private Float roofPitch; // 경사도
private Float roofAngle; // 각도
private Date registDatetime; // 생성일시
private Date lastEditDatetime;// 수정일시
private String returnMessage; // return message
}

View File

@ -9,9 +9,10 @@ import lombok.Setter;
@Setter
public class RoofAllocationSettingInfo {
private String objectNo; //견적서 번호
private Integer roofSizeSet; //치수(복사도/실측값/육지붕)
private String roofAngleSet; //각도(경사/각도)
private String objectNo; //견적서 번호
private Integer planNo; // plan 번호
private Integer roofSizeSet; //치수(복사도/실측값/육지붕)
private String roofAngleSet; //각도(경사/각도)
private List<RoofAllocationInfo> roofAllocationList;
}

View File

@ -9,19 +9,20 @@ import lombok.Setter;
@Setter
public class RoofMaterialsAddInfo {
private String objectNo; // 견적서 번호
private boolean roofApply; // 적용
private Integer roofSeq; // 순번 SEQ
private String roofMatlCd; // 타입
private Integer roofWidth; // 넓이
private Integer roofHeight; // 높이
private Integer roofHajebichi; // 하제비치
private String roofGap; // 간격
private String roofLayout; // 방식
private Float roofPitch; // 경사도
private Float roofAngle; // 각도
private Integer roofCnt; // 존재여부
private Date registDatetime; // 생성일시
private Date lastEditDatetime; // 수정일시
private String objectNo; // 견적서 번호
private Integer planNo; // plan 번호
private boolean roofApply; // 적용
private Integer roofSeq; // 순번 SEQ
private String roofMatlCd; // 타입
private Integer roofWidth; // 넓이
private Integer roofHeight; // 높이
private Integer roofHajebichi;// 하제비치
private String roofGap; // 간격
private String roofLayout; // 방식
private Float roofPitch; // 경사도
private Float roofAngle; // 각도
private Integer roofCnt; // 존재여부
private Date registDatetime; // 생성일시
private Date lastEditDatetime;// 수정일시
private String returnMessage; // return message
}

View File

@ -3,18 +3,20 @@
<mapper namespace="com.interplug.qcast.biz.canvasBasicSetting.CanvasBasicSettingMapper">
<select id="getCanvasBasicSettingCnt" parameterType="string"
<select id="getCanvasBasicSettingCnt" parameterType="map"
resultType="com.interplug.qcast.biz.canvasBasicSetting.dto.CanvasBasicSettingInfo">
/* sqlid : com.interplug.qcast.canvasBasicSetting.getCanvasBasicSettingCnt Canvas Basic Setting 유무 */
SELECT COUNT(1) AS roofCnt
FROM TB_CANVAS_BASIC_SETUP
WHERE object_no = #{objectNo}
AND plan_no = #{planNo}
</select>
<select id="selectCanvasBasicSetting" parameterType="string"
<select id="selectCanvasBasicSetting" parameterType="map"
resultType="com.interplug.qcast.biz.canvasBasicSetting.dto.CanvasBasicSettingResponse">
/* sqlid : com.interplug.qcast.canvasBasicSetting.selectCanvasBasicSetting Canvas Basic Setting 조회 */
SELECT cbs.object_no
, cbs.plan_no
, cbs.roof_size_set
, cbs.roof_angle_set
, crma.roof_apply
@ -30,7 +32,9 @@
FROM TB_CANVAS_BASIC_SETUP cbs
LEFT JOIN TB_CANVAS_ROOF_MATERIALS_ADD crma
ON cbs.object_no = crma.object_no
AND cbs.plan_no = crma.plan_no
WHERE cbs.object_no = #{objectNo}
AND cbs.plan_no = #{planNo}
</select>
<insert id="insertCanvasBasicSetting" parameterType="com.interplug.qcast.biz.canvasBasicSetting.dto.CanvasBasicSettingInfo">
@ -38,6 +42,7 @@
INSERT INTO TB_CANVAS_BASIC_SETUP
(
object_no
, plan_no
, roof_size_set
, roof_angle_set
, regist_datetime
@ -45,6 +50,7 @@
)
VALUES (
#{objectNo}
, #{planNo}
, #{roofSizeSet}
, #{roofAngleSet}
, GETDATE()
@ -59,14 +65,23 @@
, roof_angle_set = #{roofAngleSet}
, last_edit_datetime = GETDATE()
WHERE object_no = #{objectNo}
AND plan_no = #{planNo}
</update>
<select id="getRoofMaterialsCnt" parameterType="string"
<delete id="deleteCanvasBasicSetting" parameterType="map">
/* sqlid : com.interplug.qcast.canvasBasicSetting.deleteCanvasBasicSetting Canvas Basic Setting 삭제 */
DELETE FROM TB_CANVAS_BASIC_SETUP
WHERE object_no = #{objectNo}
AND plan_no = #{planNo}
</delete>
<select id="getRoofMaterialsCnt" parameterType="map"
resultType="com.interplug.qcast.biz.canvasBasicSetting.dto.RoofMaterialsAddInfo">
/* sqlid : com.interplug.qcast.canvasBasicSetting.getRoofMaterialsCnt Canvas 지붕재추가 Setting 유무 */
SELECT COUNT(1) AS roofCnt
FROM TB_CANVAS_BASIC_SETUP
WHERE object_no = #{objectNo}
AND plan_no = #{planNo}
</select>
<insert id="insertRoofMaterialsAdd" parameterType="com.interplug.qcast.biz.canvasBasicSetting.dto.RoofMaterialsAddInfo">
@ -74,6 +89,7 @@
INSERT INTO TB_CANVAS_ROOF_MATERIALS_ADD
(
object_no
, plan_no
, roof_apply
, roof_seq
, roof_matl_cd
@ -89,6 +105,7 @@
)
VALUES (
#{objectNo}
, #{planNo}
, #{roofApply}
, #{roofSeq}
, #{roofMatlCd}
@ -107,8 +124,9 @@
<update id="updateRoofMaterialsAdd" parameterType="com.interplug.qcast.biz.canvasBasicSetting.dto.RoofMaterialsAddInfo">
/* sqlid : com.interplug.qcast.canvasBasicSetting.updateRoofMaterialsAdd Canvas 지붕재추가 Setting 수정 */
MERGE TB_CANVAS_ROOF_MATERIALS_ADD AS target
USING (SELECT #{objectNo} AS object_no) AS source
ON (target.object_no = source.object_no
USING (SELECT #{objectNo} AS object_no, #{planNo} AS plan_no) AS source
ON (target.object_no = source.object_no
AND target.plan_no = source.plan_no
AND target.roof_seq = #{roofSeq})
WHEN MATCHED THEN
UPDATE
@ -127,6 +145,7 @@
INSERT
(
object_no
, plan_no
, roof_apply
, roof_seq
, roof_matl_cd
@ -141,6 +160,7 @@
)
VALUES (
#{objectNo}
, #{planNo}
, #{roofApply}
, #{roofSeq}
, #{roofMatlCd}
@ -161,6 +181,7 @@
INSERT INTO TB_CANVAS_ROOF_MATERIALS_ADD
(
object_no
, plan_no
, roof_apply
, roof_seq
, roof_matl_cd
@ -176,6 +197,7 @@
)
VALUES (
#{objectNo}
, #{planNo}
, #{roofApply}
, #{roofSeq}
, #{roofMatlCd}
@ -191,10 +213,11 @@
);
</insert>
<delete id="deleteRoofMaterialsAdd" parameterType="string">
<delete id="deleteRoofMaterialsAdd" parameterType="map">
/* sqlid : com.interplug.qcast.canvasBasicSetting.deleteRoofMaterialsAdd Canvas 지붕재추가 Setting 삭제 */
DELETE FROM TB_CANVAS_ROOF_MATERIALS_ADD
WHERE object_no = #{objectNo}
AND plan_no = #{planNo}
</delete>
</mapper>