배치면 초기 설정 CRUD API

This commit is contained in:
changkyu choi 2024-09-09 14:05:58 +09:00
parent e572faaf4b
commit d40932b3db
7 changed files with 273 additions and 0 deletions

View File

@ -0,0 +1,44 @@
package com.interplug.qcast.biz.canvasBasicSetting;
import com.interplug.qcast.biz.canvasBasicSetting.dto.CanvasBasicSettingInfo;
import com.interplug.qcast.biz.canvasBasicSetting.dto.CanvasBasicSettingResponse;
import com.interplug.qcast.biz.excelDown.dto.NtrCtsCmpResponse;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import java.util.List;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
@Slf4j
@RestController
@RequestMapping("/api/canvas-management")
@RequiredArgsConstructor
@Tag(name = "CanvasBasicSettingController", description = "Canvas Basic Setting 관련 API")
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) {
log.debug("Basic Setting 조회 ::::: " + objectNo);
return canvasBasicSettingService.selectCanvasBasicSetting(objectNo);
}
@Operation(description = "Canvas Basic Setting 정보를 등록 한다.")
@PostMapping("/canvas-basic-settings")
@ResponseStatus(HttpStatus.CREATED)
public String insertCanvasBasicSetting(@RequestBody CanvasBasicSettingInfo csi) {
log.debug("Basic Setting 등록 ::::: " + csi.getObjectNo());
return canvasBasicSettingService.insertCanvasBasicSetting(csi);
}
}

View File

@ -0,0 +1,26 @@
package com.interplug.qcast.biz.canvasBasicSetting;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import com.interplug.qcast.biz.canvasBasicSetting.dto.CanvasBasicSettingInfo;
import com.interplug.qcast.biz.canvasBasicSetting.dto.CanvasBasicSettingResponse;
import com.interplug.qcast.biz.canvasBasicSetting.dto.RoofMaterialsAddInfo;
@Mapper
public interface CanvasBasicSettingMapper {
// Canvas Basic Setting 조회(objectNo)
public List<CanvasBasicSettingResponse> selectCanvasBasicSetting(String objectNo);
// Canvas Basic Setting 등록
public void insertCanvasBasicSetting(CanvasBasicSettingInfo csi);
// Canvas 지붕재추가 Setting 등록
public void insertRoofMaterialsAdd(RoofMaterialsAddInfo rma);
// Canvas 지붕재추가 Setting 삭제
public void deleteRoofMaterialsAdd(String objectNo);
}

View File

@ -0,0 +1,53 @@
package com.interplug.qcast.biz.canvasBasicSetting;
import lombok.RequiredArgsConstructor;
import java.util.List;
import org.springframework.stereotype.Service;
import com.interplug.qcast.biz.canvasBasicSetting.dto.CanvasBasicSettingInfo;
import com.interplug.qcast.biz.canvasBasicSetting.dto.CanvasBasicSettingResponse;
import com.interplug.qcast.biz.canvasBasicSetting.dto.RoofMaterialsAddInfo;
@Service
@RequiredArgsConstructor
public class CanvasBasicSettingService {
// @Autowired CanvasBasicSettingMapper canvasBasicSettingMapper;
private final CanvasBasicSettingMapper canvasBasicSettingMapper;
// Canvas Basic Setting 조회(objectNo)
public List<CanvasBasicSettingResponse> selectCanvasBasicSetting(String objectNo) {
return canvasBasicSettingMapper.selectCanvasBasicSetting(objectNo);
}
// Canvas Basic Setting 등록
public String insertCanvasBasicSetting(CanvasBasicSettingInfo csi) {
try {
// 도면/치수/각도 정보 insert/update
canvasBasicSettingMapper.insertCanvasBasicSetting(csi);
// 기존 지붕재추가 정보 삭제 insert
canvasBasicSettingMapper.deleteRoofMaterialsAdd(csi.getObjectNo());
// for-each 루프를 사용하여 지붕재추가 Setting
for (RoofMaterialsAddInfo rma : csi.getRoofMaterialsAddList()) {
rma.setObjectNo(csi.getObjectNo());
// 신규 지붕재추가 정보 insert
canvasBasicSettingMapper.insertRoofMaterialsAdd(rma);
}
} catch (Exception e) {
System.out.println("오류 발생 : " + e.getMessage());
}
// 생성된 objectNo 반환
return csi.getObjectNo();
}
}

View File

@ -0,0 +1,21 @@
package com.interplug.qcast.biz.canvasBasicSetting.dto;
import java.sql.Date;
import java.util.List;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class CanvasBasicSettingInfo {
private String objectNo; //견적서 번호
private int roofDrawingSet; //도면(치수)
private int roofSizeSet; //치수(복사도/실측값/육지붕)
private String roofAngleSet; //각도(경사/각도)
private Date registDatetime; //생성일시
private Date lastEditDatetime; //수정일시
private List<RoofMaterialsAddInfo> roofMaterialsAddList;
}

View File

@ -0,0 +1,21 @@
package com.interplug.qcast.biz.canvasBasicSetting.dto;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class CanvasBasicSettingResponse {
private String objectNo; //견적서 번호
private int roofDrawingSet; //도면(치수)
private int roofSizeSet; //치수(복사도/실측값/육지붕)
private String roofAngleSet; //각도(경사/각도)
private int roofSeq; //순번 SEQ
private int roofType; //타입
private int roofWidth; //넓이
private int roofHeight; //높이
private int roofGap; //간격
private String roofLayout; //방식
}

View File

@ -0,0 +1,22 @@
package com.interplug.qcast.biz.canvasBasicSetting.dto;
import java.sql.Date;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class RoofMaterialsAddInfo {
private String objectNo; //견적서 번호
private int roofSeq; //순번 SEQ
private int roofType; //타입
private int roofWidth; //넓이
private int roofHeight; //높이
private int roofGap; //간격
private String roofLayout; //방식
private Date registDatetime; //생성일시
private Date lastEditDatetime; //수정일시
}

View File

@ -0,0 +1,86 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.interplug.qcast.biz.canvasBasicSetting.CanvasBasicSettingMapper">
<select id="selectCanvasBasicSetting" parameterType="string"
resultType="com.interplug.qcast.biz.canvasBasicSetting.dto.CanvasBasicSettingResponse">
/* sqlid : com.interplug.qcast.canvasBasicSetting.selectCanvasBasicSetting Canvas Basic Setting 조회 */
SELECT cbs.object_no
, cbs.roof_drawing_set
, cbs.roof_size_set
, cbs.roof_angle_set
, crma.roof_seq
, crma.roof_type
, crma.roof_width
, crma.roof_height
, crma.roof_gap
, crma.roof_layout
FROM TB_CANVAS_BASIC_SETUP cbs
, TB_CANVAS_ROOF_MATERIALS_ADD crma
WHERE cbs.object_no = crma.object_no
AND cbs.object_no = #{objectNo}
</select>
<insert id="insertCanvasBasicSetting" parameterType="com.interplug.qcast.biz.canvasBasicSetting.dto.CanvasBasicSettingInfo">
/* sqlid : com.interplug.qcast.canvasBasicSetting.insertCanvasBasicSetting Canvas Basic Setting 등록 */
MERGE TB_CANVAS_BASIC_SETUP AS target
USING (SELECT #{objectNo} AS object_no) AS source
ON (target.object_no = source.object_no)
WHEN MATCHED THEN
UPDATE
SET roof_drawing_set = #{roofDrawingSet}
, roof_size_set = #{roofSizeSet}
, roof_angle_set = #{roofAngleSet}
, last_edit_datetime = GETDATE()
WHEN NOT MATCHED THEN
INSERT
(
object_no
, roof_drawing_set
, roof_size_set
, roof_angle_set
, regist_datetime
)
VALUES (
#{objectNo}
, #{roofDrawingSet}
, #{roofSizeSet}
, #{roofAngleSet}
, GETDATE()
);
</insert>
<insert id="insertRoofMaterialsAdd" parameterType="com.interplug.qcast.biz.canvasBasicSetting.dto.CanvasBasicSettingInfo">
/* sqlid : com.interplug.qcast.canvasBasicSetting.insertRoofMaterialsAdd Canvas 지붕재추가 Setting 등록 */
INSERT INTO TB_CANVAS_ROOF_MATERIALS_ADD
(
object_no
, roof_seq
, roof_type
, roof_width
, roof_height
, roof_gap
, roof_layout
, regist_datetime
)
VALUES (
#{objectNo}
, #{roofSeq}
, #{roofType}
, #{roofWidth}
, #{roofHeight}
, #{roofGap}
, #{roofLayout}
, GETDATE()
);
</insert>
<delete id="deleteRoofMaterialsAdd" parameterType="string">
/* sqlid : com.interplug.qcast.canvasBasicSetting.deleteRoofMaterialsAdd Canvas 지붕재추가 Setting 삭제 */
DELETE FROM TB_CANVAS_ROOF_MATERIALS_ADD
WHERE object_no = #{objectNo}
</delete>
</mapper>