diff --git a/src/main/java/com/interplug/qcast/biz/commCode/CommCodeController.java b/src/main/java/com/interplug/qcast/biz/commCode/CommCodeController.java index dd8b7414..9c63cb50 100644 --- a/src/main/java/com/interplug/qcast/biz/commCode/CommCodeController.java +++ b/src/main/java/com/interplug/qcast/biz/commCode/CommCodeController.java @@ -1,13 +1,15 @@ package com.interplug.qcast.biz.commCode; +import java.util.List; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.RestController; -import com.interplug.qcast.biz.commCode.dto.CommCodeRequest; -import com.interplug.qcast.biz.commCode.dto.CommCodeResponse; +import com.interplug.qcast.biz.commCode.dto.CommCodeApiResponse; +import com.interplug.qcast.biz.commCode.dto.CommCodeDetailRequest; +import com.interplug.qcast.biz.commCode.dto.CommCodeHeaderRequest; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; @@ -21,18 +23,31 @@ import lombok.extern.slf4j.Slf4j; public class CommCodeController { private final CommCodeService commCodeService; - @Operation(description = "공통코드 COMM_H, COMM_L 정보를 등록/수정 한다.(동기화)") - @PutMapping("/qc-comm-yn-update") + @Operation(description = "공통코드 COMM_H 정보를 등록/수정 한다.(동기화)") + @PutMapping("/qc-comm-h-update") @ResponseStatus(HttpStatus.OK) - public CommCodeResponse setQcCommCdYn(@RequestBody CommCodeRequest codeReq) { - CommCodeResponse codeResponse = new CommCodeResponse(); + public CommCodeApiResponse setQcCommCdYn(@RequestBody List headReqList) { + CommCodeApiResponse codeResponse = new CommCodeApiResponse(); + + int resultCnt = commCodeService.setCommHUpdate(headReqList); + if (resultCnt > 0) + codeResponse.setCode("200"); + else + codeResponse.setCode("500"); + + return codeResponse; + + } + + @Operation(description = "공통코드 COMM_L 정보를 등록/수정 한다.(동기화)") + @PutMapping("/qc-comm-l-update") + @ResponseStatus(HttpStatus.OK) + public CommCodeApiResponse setCommLUpdate( + @RequestBody List detailReqList) { + CommCodeApiResponse codeResponse = new CommCodeApiResponse(); + + int resultCnt = commCodeService.setCommLUpdate(detailReqList); - int resultCnt = 0; - if ("H".equals(codeReq.getQcGubun())) { - resultCnt = commCodeService.setCommHUpdate(codeReq); - } else { - resultCnt = commCodeService.setCommLUpdate(codeReq); - } if (resultCnt > 0) codeResponse.setCode("200"); else diff --git a/src/main/java/com/interplug/qcast/biz/commCode/CommCodeMapper.java b/src/main/java/com/interplug/qcast/biz/commCode/CommCodeMapper.java index d015a86f..e63b3f45 100644 --- a/src/main/java/com/interplug/qcast/biz/commCode/CommCodeMapper.java +++ b/src/main/java/com/interplug/qcast/biz/commCode/CommCodeMapper.java @@ -1,12 +1,14 @@ package com.interplug.qcast.biz.commCode; import org.apache.ibatis.annotations.Mapper; -import com.interplug.qcast.biz.commCode.dto.CommCodeRequest; +import com.interplug.qcast.biz.commCode.dto.CommCodeDetailRequest; +import com.interplug.qcast.biz.commCode.dto.CommCodeHeaderRequest; @Mapper public interface CommCodeMapper { - int setCommHUpdate(CommCodeRequest codeReq); + int setCommHUpdate(CommCodeHeaderRequest codeReq); + + int setCommLUpdate(CommCodeDetailRequest codeReq); - int setCommLUpdate(CommCodeRequest codeReq); } diff --git a/src/main/java/com/interplug/qcast/biz/commCode/CommCodeService.java b/src/main/java/com/interplug/qcast/biz/commCode/CommCodeService.java index 369cd6a6..63f62ac3 100644 --- a/src/main/java/com/interplug/qcast/biz/commCode/CommCodeService.java +++ b/src/main/java/com/interplug/qcast/biz/commCode/CommCodeService.java @@ -1,7 +1,9 @@ package com.interplug.qcast.biz.commCode; +import java.util.List; import org.springframework.stereotype.Service; -import com.interplug.qcast.biz.commCode.dto.CommCodeRequest; +import com.interplug.qcast.biz.commCode.dto.CommCodeDetailRequest; +import com.interplug.qcast.biz.commCode.dto.CommCodeHeaderRequest; import lombok.RequiredArgsConstructor; @Service @@ -10,11 +12,34 @@ public class CommCodeService { private final CommCodeMapper commCodeMapper; - public int setCommHUpdate(CommCodeRequest codeSaveReq) { - return commCodeMapper.setCommHUpdate(codeSaveReq); + public int setCommHUpdate(List headReqList) { + int resultCnt = 0; + if (!headReqList.isEmpty()) { + for (CommCodeHeaderRequest headReq : headReqList) { + if ("Y".equals(headReq.getQcCommYn())) { + headReq.setDelFlg(0); + } else { + headReq.setDelFlg(1); + } + resultCnt += commCodeMapper.setCommHUpdate(headReq); + } + } + return resultCnt; } - public int setCommLUpdate(CommCodeRequest codeSaveReq) { - return commCodeMapper.setCommLUpdate(codeSaveReq); + public int setCommLUpdate(List detailReqList) { + int resultCnt = 0; + if (!detailReqList.isEmpty()) { + for (CommCodeDetailRequest detailReq : detailReqList) { + if ("A".equals(detailReq.getClStatCd())) { + detailReq.setClDelFlg(0); + } else { + detailReq.setClDelFlg(1); + } + resultCnt += commCodeMapper.setCommLUpdate(detailReq); + } + + } + return resultCnt; } } diff --git a/src/main/java/com/interplug/qcast/biz/commCode/dto/CommCodeApiResponse.java b/src/main/java/com/interplug/qcast/biz/commCode/dto/CommCodeApiResponse.java new file mode 100644 index 00000000..10d1b742 --- /dev/null +++ b/src/main/java/com/interplug/qcast/biz/commCode/dto/CommCodeApiResponse.java @@ -0,0 +1,16 @@ +package com.interplug.qcast.biz.commCode.dto; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +public class CommCodeApiResponse { + + private String code; + private String message; +} diff --git a/src/main/java/com/interplug/qcast/biz/commCode/dto/CommCodeDetailRequest.java b/src/main/java/com/interplug/qcast/biz/commCode/dto/CommCodeDetailRequest.java new file mode 100644 index 00000000..a1838e40 --- /dev/null +++ b/src/main/java/com/interplug/qcast/biz/commCode/dto/CommCodeDetailRequest.java @@ -0,0 +1,35 @@ +package com.interplug.qcast.biz.commCode.dto; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.ToString; + +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@ToString +public class CommCodeDetailRequest { + private String clHeadCd; + private String clCode; + private String clReadCd; + private String clCodeNm; + private String clCodeJp; + private String clCode4Th; + private String clRefChr1; + private String clRefChr2; + private String clRefChr3; + private String clRefChr4; + private String clRefChr5; + private Integer clRefNum1; + private Integer clRefNum2; + private Integer clRefNum3; + private Integer clRefNum4; + private Integer clRefNum5; + private Integer clPriority; + private String clRefCnt; + private Integer clDelFlg; + private String clStatCd; +} diff --git a/src/main/java/com/interplug/qcast/biz/commCode/dto/CommCodeHeaderRequest.java b/src/main/java/com/interplug/qcast/biz/commCode/dto/CommCodeHeaderRequest.java new file mode 100644 index 00000000..9227b3a3 --- /dev/null +++ b/src/main/java/com/interplug/qcast/biz/commCode/dto/CommCodeHeaderRequest.java @@ -0,0 +1,35 @@ +package com.interplug.qcast.biz.commCode.dto; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.ToString; + +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@ToString +public class CommCodeHeaderRequest { + + private String headCd; + private String headId; + private String headNm; + private String headJp; + private String head4Th; + private String refChr1; + private String refChr2; + private String refChr3; + private String refChr4; + private String refChr5; + private String refNum1; + private String refNum2; + private String refNum3; + private String refNum4; + private String refNum5; + private String remarks; + private String qcCommYn; + private Integer delFlg; + +} diff --git a/src/main/java/com/interplug/qcast/biz/object/ObjectController.java b/src/main/java/com/interplug/qcast/biz/object/ObjectController.java index 61df884e..63f9152a 100644 --- a/src/main/java/com/interplug/qcast/biz/object/ObjectController.java +++ b/src/main/java/com/interplug/qcast/biz/object/ObjectController.java @@ -1,8 +1,6 @@ package com.interplug.qcast.biz.object; -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.*; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; @@ -21,50 +19,78 @@ public class ObjectController { // @Autowired private ObjectService objectService; private final ObjectService objectService; + @Operation(description = "물건정보 도도부현을 조회한다.") + @GetMapping("/prefecture/list") + @ResponseStatus(HttpStatus.OK) + public List selectPrefList() throws Exception { + return objectService.selectPrefList(); + } + + @Operation(description = "물건정보 도도부현 발전시뮬레이션 지역을 조회한다.") + @GetMapping("/prefecture/{prefId}/list") + @ResponseStatus(HttpStatus.OK) + public List selectPrefAreaList(@PathVariable String prefId) throws Exception { + return objectService.selectPrefAreaList(prefId); + } + + @Operation(description = "물건정보 지역 기준풍속을 조회한다.") + @GetMapping("/windSpeed/{city}/list") + @ResponseStatus(HttpStatus.OK) + public List selectWindSpeedList(@PathVariable String city) throws Exception { + return objectService.selectWindSpeedList(city); + } + + @Operation(description = "판매점 목록을 조회한다.") + @GetMapping("/saleStore/{saleStoreId}/list") + @ResponseStatus(HttpStatus.OK) + public List selectSaleStoreList(@PathVariable String saleStoreId) throws Exception { + return objectService.selectSaleStoreList(saleStoreId); + } + @Operation(description = "물건정보 목록을 조회한다.") - @GetMapping("/v1.0/object") + @GetMapping("/list") @ResponseStatus(HttpStatus.OK) public List selectObjectList(ObjectRequest objectRequest) throws Exception { return objectService.selectObjectList(objectRequest); } @Operation(description = "물건정보 상세를 조회한다.") - @GetMapping("/v1.0/object/{objectNo}") + @GetMapping("/{objectNo}/detail") @ResponseStatus(HttpStatus.OK) public ObjectResponse selectObjectDetail(@PathVariable String objectNo) throws Exception { return objectService.selectObjectDetail(objectNo); } @Operation(description = "물건정보을 저장한다.") - @PostMapping("/v1.0/object") + @PostMapping("/save-object") @ResponseStatus(HttpStatus.CREATED) public ObjectResponse insertObject(@RequestBody ObjectRequest objectRequest) throws Exception { return objectService.insertObject(objectRequest); } @Operation(description = "물건정보을 수정한다.") - @PutMapping("/v1.0/object") + @PutMapping("/save-object") @ResponseStatus(HttpStatus.CREATED) - public void updateObject(@RequestBody ObjectRequest objectRequest) throws Exception { - int reust = objectService.updateObject(objectRequest); + public ObjectResponse updateObject(@RequestBody ObjectRequest objectRequest) throws Exception { + return objectService.updateObject(objectRequest); } @Operation(description = "물건정보을 삭제한다.") - @DeleteMapping("/v1.0/object/{objectNo}") + @DeleteMapping("/{objectNo}") @ResponseStatus(HttpStatus.NO_CONTENT) public void deleteObject(@PathVariable String objectNo) throws Exception { objectService.deleteObject(objectNo); } @Operation(description = "물건정보의 플랜정보를 추가한다.") - @PostMapping("/v1.0/object/plan") + @PostMapping("/add-plan") @ResponseStatus(HttpStatus.CREATED) public void insertPlan(@RequestBody PlanRequest planRequest) throws Exception { objectService.insertPlan(planRequest); } @Operation(description = "물건정보의 플랜정보를 삭제한다.") - @DeleteMapping("/v1.0/object/plan/{objectNo}/{planNo}") + @DeleteMapping("/plan/{objectNo}/{planNo}") @ResponseStatus(HttpStatus.NO_CONTENT) public void deletePlan(@PathVariable String objectNo, @PathVariable String planNo) throws Exception { PlanRequest planRequest = new PlanRequest(); diff --git a/src/main/java/com/interplug/qcast/biz/object/ObjectMapper.java b/src/main/java/com/interplug/qcast/biz/object/ObjectMapper.java index 934f7f2d..2842360f 100644 --- a/src/main/java/com/interplug/qcast/biz/object/ObjectMapper.java +++ b/src/main/java/com/interplug/qcast/biz/object/ObjectMapper.java @@ -1,15 +1,26 @@ package com.interplug.qcast.biz.object; -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.object.dto.*; import org.apache.ibatis.annotations.Mapper; import java.util.List; @Mapper interface ObjectMapper { + // 도도부현 목록 조회 + public List selectPrefList(); + + // 도도부현 지역 조회 + public List selectPrefAreaList(String prefId); + + // 지역 기준풍속 조회 + public List selectWindSpeedList(String city); + + // 모든 판매점 목록 조회 + public List selectSaleStoreAllList(); + + // 판매점 목록 조회 + public List selectSaleStoreList(String saleStoreId); // 물건정보 목록 조회 public List selectObjectList(ObjectRequest objectRequest); @@ -43,4 +54,10 @@ interface ObjectMapper { // 플랜정보 삭제(물리 삭제) public int deletePlan(PlanRequest planRequest); + + // 물건정보 물건번호 변경 + public int updateObjectNoChange(ObjectRequest objectRequest); + + // 플랜정보 물건번호 변경 + public int updatePlanObjectNoChange(ObjectRequest objectRequest); } diff --git a/src/main/java/com/interplug/qcast/biz/object/ObjectService.java b/src/main/java/com/interplug/qcast/biz/object/ObjectService.java index 5c7cb7f5..1f5c0f59 100644 --- a/src/main/java/com/interplug/qcast/biz/object/ObjectService.java +++ b/src/main/java/com/interplug/qcast/biz/object/ObjectService.java @@ -1,13 +1,10 @@ package com.interplug.qcast.biz.object; -import com.interplug.qcast.QCastApplication; -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.object.dto.*; import io.micrometer.common.util.StringUtils; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.RandomStringUtils; import org.ini4j.Wini; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -16,6 +13,7 @@ import java.io.*; import java.nio.file.Files; import java.nio.file.StandardCopyOption; import java.text.SimpleDateFormat; +import java.util.Calendar; import java.util.Date; import java.util.List; @@ -23,29 +21,54 @@ import java.util.List; @Service @RequiredArgsConstructor public class ObjectService { - private final ObjectMapper objectMapper; - private final QCastApplication qCastApplication; - @Value("${file.ini.root.path}") private String baseDirPath; @Value("${file.ini.base.filename}") private String baseFileName; + private final ObjectMapper objectMapper; + + public List selectPrefList() throws Exception { + return objectMapper.selectPrefList(); + } + + public List selectPrefAreaList(String prefId) throws Exception { + return objectMapper.selectPrefAreaList(prefId); + } + + public List selectWindSpeedList(String city) throws Exception { + return objectMapper.selectWindSpeedList(city); + } + + public List selectSaleStoreList(String saleStoreId) throws Exception { + if ("T01".equals(saleStoreId)) { + return objectMapper.selectSaleStoreAllList(); + } else { + return objectMapper.selectSaleStoreList(saleStoreId); + } + } + public List selectObjectList(ObjectRequest objectRequest) throws Exception { return objectMapper.selectObjectList(objectRequest); } public ObjectResponse selectObjectDetail(String objectNo) throws Exception { - ObjectResponse objectResponse = new ObjectResponse(); - // object 상세 정보 조회 - objectResponse = objectMapper.selectObjectDetail(objectNo); - // 기본 플랜번호 셋팅 - objectResponse.setPlanNo("1"); + ObjectResponse objectResponse = objectMapper.selectObjectDetail(objectNo); if (objectResponse != null) { + // 기본 플랜번호 셋팅 + objectResponse.setPlanNo("1"); + // ini 파일 읽어 Response 객체 담기 this.objectFileInfo(objectResponse); + + // Plan 목록 조회 + PlanRequest planRequest = new PlanRequest(); + planRequest.setObjectNo(objectNo); + List planList = objectMapper.selectPlanList(planRequest); + + objectResponse.setPlanList(planList); } return objectResponse; @@ -53,10 +76,30 @@ public class ObjectService { public ObjectResponse insertObject(ObjectRequest objectRequest) throws Exception { int result = 0; + String objectNo = ""; // 물건번호 등록/조회 - result += objectMapper.insertObjectNo(objectRequest); - String objectNo = objectMapper.selectObjectNo(objectRequest); + if ("0".equals(objectRequest.getTempFlg())) { + objectRequest.setDelFlg("0"); + objectRequest.setTempFlg("0"); + objectRequest.setTempDelFlg("0"); + + result += objectMapper.insertObjectNo(objectRequest); + objectNo = objectMapper.selectObjectNo(objectRequest); + } else if ("1".equals(objectRequest.getTempFlg())) { + objectRequest.setDelFlg("1"); + objectRequest.setTempFlg("1"); + objectRequest.setTempDelFlg("0"); + + // 임시저장인 경우 임시 물건번호 생성 yyyymmddhh24missSSS_랜덤문자 3개 + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); + Calendar dateTime = Calendar.getInstance(); + objectNo = sdf.format(dateTime.getTime()); + + objectNo = "T" + objectNo.substring(2) + RandomStringUtils.randomAlphanumeric(3); + objectNo = objectNo.toUpperCase(); + } + objectRequest.setObjectNo(objectNo); // 물건정보 등록 @@ -76,6 +119,7 @@ public class ObjectService { planRequest.setDelFlg("0"); planRequest.setNorthArrangement("0"); planRequest.setDiffRoofEnabled("0"); + planRequest.setOrderFlg("0"); planRequest.setUserId(objectRequest.getUserId()); result += objectMapper.insertPlan(planRequest); @@ -91,29 +135,57 @@ public class ObjectService { return objectResponse; } - public int updateObject(ObjectRequest objectRequest) throws Exception { + public ObjectResponse updateObject(ObjectRequest objectRequest) throws Exception { int result = 0; + boolean tempChgFlg = false; - // 물건정보 수정 - objectRequest.setAddress(objectRequest.getPrefName() + ((!StringUtils.isEmpty(objectRequest.getAddress())) ? objectRequest.getAddress() : "")); - objectRequest.setAddresseeCompanyName(objectRequest.getObjectName() + ' ' + objectRequest.getObjectNameOmit()); - objectRequest.setAddresseeCompanyNameOmit(objectRequest.getObjectNameOmit()); - objectRequest.setContentsPath(baseDirPath + "\\\\" + objectRequest.getObjectNo()); - result += objectMapper.updateObject(objectRequest); + // object 상세 정보 조회 + ObjectResponse objectResponse = objectMapper.selectObjectDetail(objectRequest.getObjectNo()); - // Plan 목록 조회 - PlanRequest planRequest = new PlanRequest(); - planRequest.setObjectNo(objectRequest.getObjectNo()); - List planList = objectMapper.selectPlanList(planRequest); + if (objectResponse != null) { + // 임시저장에서 저장상태 바뀌었는지 확인 + if ("1".equals(objectResponse.getTempFlg()) && "0".equals(objectRequest.getTempFlg())) { + tempChgFlg = true; - for (PlanResponse planResponse : planList) { - objectRequest.setPlanNo(planResponse.getPlanNo()); + result += objectMapper.insertObjectNo(objectRequest); + objectRequest.setNewObjectNo(objectMapper.selectObjectNo(objectRequest)); + } - // ini 파일 수정 - this.objectFileSave(objectRequest); + // 물건정보 수정 + objectRequest.setAddress(objectRequest.getPrefName() + ((!StringUtils.isEmpty(objectRequest.getAddress())) ? objectRequest.getAddress() : "")); + objectRequest.setAddresseeCompanyName(objectRequest.getObjectName() + ' ' + objectRequest.getObjectNameOmit()); + objectRequest.setAddresseeCompanyNameOmit(objectRequest.getObjectNameOmit()); + objectRequest.setContentsPath(baseDirPath + "\\\\" + (tempChgFlg ? objectRequest.getNewObjectNo() : objectRequest.getObjectNo())); + result += objectMapper.updateObject(objectRequest); + + // Plan 목록 조회 + PlanRequest planRequest = new PlanRequest(); + planRequest.setObjectNo(objectRequest.getObjectNo()); + List planList = objectMapper.selectPlanList(planRequest); + + for (PlanResponse planResponse : planList) { + objectRequest.setPlanNo(planResponse.getPlanNo()); + + // ini 파일 수정 + this.objectFileSave(objectRequest); + } + + // 임시저장에서 저장상태로 돌리기 + if (tempChgFlg) { + objectMapper.updateObjectNoChange(objectRequest); + objectMapper.updatePlanObjectNoChange(objectRequest); + + // 임시저장 폴더명 생성 물건번호명으로 교체 + File file = new File(baseDirPath + File.separator + objectRequest.getObjectNo()); + if (file.exists()) { + file.renameTo(new File (baseDirPath + File.separator + objectRequest.getNewObjectNo())); + } + } } - return result; + // 모든 변경 완료 후 재호출 + objectResponse = objectMapper.selectObjectDetail((tempChgFlg ? objectRequest.getNewObjectNo() : objectRequest.getObjectNo())); + return objectResponse; } public int deleteObject(String objectNo) throws Exception { @@ -196,11 +268,14 @@ public class ObjectService { // 도도부현 코드 objectFileSetting(iniFile, groupKey, "都道府県コード", objectRequest.getPrefId()); // 물건번호 - objectFileSetting(iniFile, groupKey, "物件コード", objectRequest.getObjectNo()); + objectFileSetting(iniFile, groupKey, "物件コード", !StringUtils.isEmpty(objectRequest.getNewObjectNo()) ? objectRequest.getNewObjectNo() : objectRequest.getObjectNo()); // 최종 일본어 형식으로 저장 - iniFile.store(new OutputStreamWriter(new FileOutputStream(dirPath + File.separator + baseFileName), "MS932")); + OutputStreamWriter output = new OutputStreamWriter(new FileOutputStream(dirPath + File.separator + baseFileName), "MS932"); + iniFile.store(output); + output.close(); + input.close(); } catch (Exception e) { log.error(e.getMessage()); throw new RuntimeException(e.getMessage()); @@ -256,6 +331,8 @@ public class ObjectService { if (!StringUtils.isEmpty(iniFile.get(groupKey, "寒冷地域"))) { objectResponse.setColdAreaChk(iniFile.get(groupKey, "寒冷地域")); } + + input.close(); } } catch (Exception e) { @@ -280,6 +357,7 @@ public class ObjectService { planRequest.setDelFlg("0"); planRequest.setNorthArrangement("0"); planRequest.setDiffRoofEnabled("0"); + planRequest.setOrderFlg("0"); objectMapper.insertPlan(planRequest); diff --git a/src/main/java/com/interplug/qcast/biz/object/dto/ObjectRequest.java b/src/main/java/com/interplug/qcast/biz/object/dto/ObjectRequest.java index 011cd182..52cdddae 100644 --- a/src/main/java/com/interplug/qcast/biz/object/dto/ObjectRequest.java +++ b/src/main/java/com/interplug/qcast/biz/object/dto/ObjectRequest.java @@ -1,60 +1,116 @@ package com.interplug.qcast.biz.object.dto; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @Data public class ObjectRequest { // 물건정보 ini 파일 설정 순서에 맞쳐 셋팅 + @Schema(description = "판매점명") private String saleStoreName; + @Schema(description = "경칭") private String objectNameOmit; + @Schema(description = "안건명 후리가나") private String objectNameKana; + @Schema(description = "안건명") private String objectName; + @Schema(description = "담당자") private String receiveUser; + @Schema(description = "우편번호") private String zipNo; + @Schema(description = "도도부현명") private String prefName; + @Schema(description = "주소") private String address; + @Schema(description = "발전시뮬레이션 지역") private String powerSimArea; + @Schema(description = "판매오더명") private String workName; + @Schema(description = "부동산 분류코드명") private String objectStatusName; + @Schema(description = "메모") private String remarks; + @Schema(description = "설치높이") private String installHeight; + @Schema(description = "기준풍속") private String windSpeed; + @Schema(description = "수직적설량") private String snowCover; + @Schema(description = "면조도구분") private String surfaceType; + @Schema(description = "전력계약구분") private String powerConTerms; + @Schema(description = "염해지역 아이템사용 여부") private String saltAreaChk; + @Schema(description = "한랭지 대책여부") private String coldAreaChk; + @Schema(description = "판매오더코드") private String workNo; + @Schema(description = "부동산 분류코드") private String objectStatusId; + @Schema(description = "도도부현코드") private String prefId; + @Schema(description = "물건번호") private String objectNo; + @Schema(description = "생성 물건번호") + private String newObjectNo; - // 그외 물건정보 + // 그외 물건정보 + @Schema(description = "판매점ID") private String saleStoreId; + @Schema(description = "배송회사명") private String addresseeCompanyName; + @Schema(description = "배송회사 경칭") private String addresseeCompanyNameOmit; + @Schema(description = "컨텐츠 파일경로") private String contentsPath; + @Schema(description = "임시저장여부") + private String tempFlg; + @Schema(description = "임시저장 삭제여부") + private String tempDelFlg; + @Schema(description = "임시저장->저장 변경여부") + private String tempChgFlg; + @Schema(description = "삭제여부") private String delFlg; + @Schema(description = "사용자아이디") private String userId; // 플랜정보 + @Schema(description = "플랜번호") private String planNo; // 검색정보 + @Schema(description = "검색 - 물건번호") private String schObjectNo; + @Schema(description = "검색 - 판매점ID") private String schSaleStoreId; + @Schema(description = "검색 - 선택판매점ID") + private String schSelSaleStoreId; + @Schema(description = "검색 - 주소") private String schAddress; + @Schema(description = "검색 - 안건명") private String schObjectName; + @Schema(description = "검색 - 판매점명") private String schSaleStoreName; + @Schema(description = "검색 - 사양확장일여부") private String schSpecDateYn; + @Schema(description = "검색 - 담당자") private String schReceiveUser; + @Schema(description = "검색 - 견적처") private String schDispCompanyName; - + @Schema(description = "검색 - 날짜구분") private String schDateType; + @Schema(description = "검색 - 시작일") private String schFromDt; + @Schema(description = "검색 - 종료일") private String schToDt; + @Schema(description = "검색 - 정렬순서") + private String schSortType; // 페이징정보 + @Schema(description = "시작 Row") private String startRow; + @Schema(description = "종료 Row") private String endRow; } diff --git a/src/main/java/com/interplug/qcast/biz/object/dto/ObjectResponse.java b/src/main/java/com/interplug/qcast/biz/object/dto/ObjectResponse.java index 615abf98..c41d9e8d 100644 --- a/src/main/java/com/interplug/qcast/biz/object/dto/ObjectResponse.java +++ b/src/main/java/com/interplug/qcast/biz/object/dto/ObjectResponse.java @@ -1,52 +1,95 @@ package com.interplug.qcast.biz.object.dto; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Getter; import lombok.Setter; +import java.util.List; + //@Data @Getter @Setter public class ObjectResponse { // 물건정보 + @Schema(description = "물건번호") private String objectNo; + @Schema(description = "판매점ID") private String saleStoreId; + @Schema(description = "판매점명") private String saleStoreName; + @Schema(description = "판매오더코드") private String workNo; + @Schema(description = "부동산 분류코드") private String objectStatusId; + @Schema(description = "안건명") private String objectName; + @Schema(description = "경칭") private String objectNameOmit; + @Schema(description = "안건명 후리가나") private String objectNameKana; + @Schema(description = "우편번호") private String zipNo; + @Schema(description = "도도부현코드") private String prefId; + @Schema(description = "주소") private String address; + @Schema(description = "메모") private String remarks; + @Schema(description = "동일물건정보") private String sameObjectInfo; + @Schema(description = "배송회사명") private String receiveCompanyName; + @Schema(description = "담당자") private String receiveUser; + @Schema(description = "사양확정일") + private String specificationConfirmDate; + @Schema(description = "컨텐츠 파일경로") private String contentsPath; - private String specDate; + @Schema(description = "견적처") private String dispCompanyName; + @Schema(description = "임시저장여부") + private String tempFlg; + @Schema(description = "생성일") private String createDatetime; + @Schema(description = "생성자") private String createUserName; + @Schema(description = "갱신일") private String lastEditDatetime; + @Schema(description = "갱신자") private String lastEditUserName; // ini 설정정보 + @Schema(description = "발전시뮬레이션 지역") private String powerSimArea; + @Schema(description = "기준풍속") private String windSpeed; + @Schema(description = "수직적설량") private String snowCover; + @Schema(description = "면조도구분") private String surfaceType; + @Schema(description = "설치높이") private String installHeight; + @Schema(description = "전력계약구분") private String powerConTerms; + @Schema(description = "한랭지 대책여부") private String coldAreaChk; + @Schema(description = "염해지역 아이템사용 여부") private String saltAreaChk; // 플랜정보 + @Schema(description = "플랜번호") private String planNo; + @Schema(description = "플랜 전체 건수") private String planTotCnt; + + // 플랜목록 + @Schema(description = "플랜목록") + private List planList; // 페이징 정보 + @Schema(description = "Row Number") private Integer rowNumber; + @Schema(description = "전체 건수") private Integer totCnt; } diff --git a/src/main/java/com/interplug/qcast/biz/object/dto/PlanRequest.java b/src/main/java/com/interplug/qcast/biz/object/dto/PlanRequest.java index 37edc3eb..73f44611 100644 --- a/src/main/java/com/interplug/qcast/biz/object/dto/PlanRequest.java +++ b/src/main/java/com/interplug/qcast/biz/object/dto/PlanRequest.java @@ -1,40 +1,76 @@ package com.interplug.qcast.biz.object.dto; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @Data public class PlanRequest { + @Schema(description = "물건번호") private String objectNo; + @Schema(description = "플랜번호") private String planNo; + @Schema(description = "시공방법") private String constructSpecification; + @Schema(description = "설치높이") private String setupHeight; + @Schema(description = "날씨포인트") private String weatherPoint; + @Schema(description = "날씨포인트") private String roofKindId; + @Schema(description = "경사") private String slope; + @Schema(description = "지붕재 아이템 CLASS ID") private String roofMaterialClassId; + @Schema(description = "지붕재 아이템 ID") private String roofMaterialId; + @Schema(description = "가대 설치 ID") private String supportMethodId; + @Schema(description = "모델") private String moduleModel; + @Schema(description = "담당자") private String charger; + @Schema(description = "견적서 유효기간") private String estimateValidityTerm; + @Schema(description = "결정 플랜") private String decisionPlan; + @Schema(description = "넘버") private String number; + @Schema(description = "시스템용량") private String capacity; + @Schema(description = "강설량") private String snowfall; + @Schema(description = "표준풍속검사") private String standardWindSpeedCheck; + @Schema(description = "옵션커버") private String optionCover; + @Schema(description = "한화여부") private String hanwfaFlg; + @Schema(description = "기준종류ID") private String standKindId; + @Schema(description = "기준풍속ID") private String standardWindSpeedId; + @Schema(description = "가대 메이커") private String supportMeaker; + @Schema(description = "소비세ID") private String consumptionTaxId; + @Schema(description = "상태코드") private String status; + @Schema(description = "사용자아이디") private String userId; + @Schema(description = "삭제여부") private String delFlg; + @Schema(description = "파워컨디셔너") private String pcTypeNo; + @Schema(description = "북면설치여부") private String northArrangement; + @Schema(description = "지붕재") private String roofMaterialIdMulti; + @Schema(description = "가대") private String supportMethodIdMulti; + @Schema(description = "가대 메이커") private String supportMeakerMulti; + @Schema(description = "다른 지붕재여부") private String diffRoofEnabled; + @Schema(description = "발주여부") + private String orderFlg; } diff --git a/src/main/java/com/interplug/qcast/biz/object/dto/PlanResponse.java b/src/main/java/com/interplug/qcast/biz/object/dto/PlanResponse.java index 592788ff..c13acaac 100644 --- a/src/main/java/com/interplug/qcast/biz/object/dto/PlanResponse.java +++ b/src/main/java/com/interplug/qcast/biz/object/dto/PlanResponse.java @@ -1,40 +1,76 @@ package com.interplug.qcast.biz.object.dto; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @Data public class PlanResponse { + @Schema(description = "물건번호") private String objectNo; + @Schema(description = "플랜번호") private String planNo; + @Schema(description = "시공방법") private String constructSpecification; + @Schema(description = "설치높이") private String setupHeight; + @Schema(description = "날씨포인트") private String weatherPoint; + @Schema(description = "날씨포인트") private String roofKindId; + @Schema(description = "경사") private String slope; + @Schema(description = "지붕재 아이템 CLASS ID") private String roofMaterialClassId; + @Schema(description = "지붕재 아이템 ID") private String roofMaterialId; + @Schema(description = "가대 설치 ID") private String supportMethodId; + @Schema(description = "모델") private String moduleModel; + @Schema(description = "담당자") private String charger; + @Schema(description = "견적서 유효기간") private String estimateValidityTerm; + @Schema(description = "결정 플랜") private String decisionPlan; + @Schema(description = "넘버") private String number; + @Schema(description = "시스템용량") private String capacity; + @Schema(description = "강설량") private String snowfall; + @Schema(description = "표준풍속검사") private String standardWindSpeedCheck; + @Schema(description = "옵션커버") private String optionCover; + @Schema(description = "한화여부") private String hanwfaFlg; + @Schema(description = "기준종류ID") private String standKindId; + @Schema(description = "기준풍속ID") private String standardWindSpeedId; + @Schema(description = "가대 메이커") private String supportMeaker; + @Schema(description = "소비세ID") private String consumptionTaxId; + @Schema(description = "상태코드") private String status; + @Schema(description = "사용자아이디") private String userId; + @Schema(description = "삭제여부") private String delFlg; + @Schema(description = "파워컨디셔너") private String pcTypeNo; + @Schema(description = "북면설치여부") private String northArrangement; + @Schema(description = "지붕재") private String roofMaterialIdMulti; + @Schema(description = "가대") private String supportMethodIdMulti; + @Schema(description = "가대 메이커") private String supportMeakerMulti; + @Schema(description = "다른 지붕재여부") private String diffRoofEnabled; + @Schema(description = "발주여부") + private String orderFlg; } diff --git a/src/main/java/com/interplug/qcast/biz/object/dto/PrefResponse.java b/src/main/java/com/interplug/qcast/biz/object/dto/PrefResponse.java new file mode 100644 index 00000000..c3e065c0 --- /dev/null +++ b/src/main/java/com/interplug/qcast/biz/object/dto/PrefResponse.java @@ -0,0 +1,16 @@ +package com.interplug.qcast.biz.object.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; + +//@Data +@Getter +@Setter +public class PrefResponse { + // 물건정보 + @Schema(description = "도도부현ID") + private String prefId; + @Schema(description = "도도부현명/지역명") + private String prefName; +} diff --git a/src/main/java/com/interplug/qcast/biz/object/dto/SaleStoreResponse.java b/src/main/java/com/interplug/qcast/biz/object/dto/SaleStoreResponse.java new file mode 100644 index 00000000..f60e4cb5 --- /dev/null +++ b/src/main/java/com/interplug/qcast/biz/object/dto/SaleStoreResponse.java @@ -0,0 +1,22 @@ +package com.interplug.qcast.biz.object.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; + +//@Data +@Getter +@Setter +public class SaleStoreResponse { + // 판매점정보 + @Schema(description = "1차점판매점 여부") + private String firstAgentYn; + @Schema(description = "판매점ID") + private String saleStoreId; + @Schema(description = "판매점명") + private String saleStoreName; + @Schema(description = "판매점레벨") + private String saleStoreLevel; + @Schema(description = "1차점판매점ID") + private String firstAgentId; +} diff --git a/src/main/java/com/interplug/qcast/biz/object/dto/WindSpeedResponse.java b/src/main/java/com/interplug/qcast/biz/object/dto/WindSpeedResponse.java new file mode 100644 index 00000000..a7711840 --- /dev/null +++ b/src/main/java/com/interplug/qcast/biz/object/dto/WindSpeedResponse.java @@ -0,0 +1,18 @@ +package com.interplug.qcast.biz.object.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; + +//@Data +@Getter +@Setter +public class WindSpeedResponse { + // 기준풍속정보 + @Schema(description = "도시명") + private String city; + @Schema(description = "풍속") + private String windSpeed; + @Schema(description = "메모") + private String remarks; +} diff --git a/src/main/java/com/interplug/qcast/biz/user/UserController.java b/src/main/java/com/interplug/qcast/biz/user/UserController.java index cda9bb95..301307bd 100644 --- a/src/main/java/com/interplug/qcast/biz/user/UserController.java +++ b/src/main/java/com/interplug/qcast/biz/user/UserController.java @@ -23,7 +23,7 @@ public class UserController { @Operation(description = "판매점 정보를 등록/수정 한다.(동기화)") @PutMapping("/store-save") @ResponseStatus(HttpStatus.OK) - public UserResponse setStoreInfo(@RequestBody StoreRequest storeReq) { + public UserResponse setStoreSave(@RequestBody StoreRequest storeReq) { UserResponse userResponse = new UserResponse(); int resultCnt = userService.setStoreSave(storeReq); @@ -36,7 +36,8 @@ public class UserController { @Operation(description = "user 정보를 등록/수정 한다.(동기화)") @PutMapping("/user-save") - public UserResponse updateUserInfo(@RequestBody List userReqList) { + @ResponseStatus(HttpStatus.OK) + public UserResponse setUserSave(@RequestBody List userReqList) { UserResponse userResponse = new UserResponse(); int resultCnt = userService.setUserSave(userReqList); diff --git a/src/main/java/com/interplug/qcast/biz/user/UserMapper.java b/src/main/java/com/interplug/qcast/biz/user/UserMapper.java index 1b982a71..c0f500af 100644 --- a/src/main/java/com/interplug/qcast/biz/user/UserMapper.java +++ b/src/main/java/com/interplug/qcast/biz/user/UserMapper.java @@ -9,5 +9,7 @@ public interface UserMapper { int setStoreSave(StoreRequest storeReq); + int setStoreSapCdSave(StoreRequest storeReq); + int setUserSave(UserRequest userReqList); } \ No newline at end of file diff --git a/src/main/java/com/interplug/qcast/biz/user/UserService.java b/src/main/java/com/interplug/qcast/biz/user/UserService.java index 9c65d631..ccba5e5f 100644 --- a/src/main/java/com/interplug/qcast/biz/user/UserService.java +++ b/src/main/java/com/interplug/qcast/biz/user/UserService.java @@ -13,6 +13,7 @@ public class UserService { private final UserMapper userMapper; public int setStoreSave(StoreRequest storeReq) { + userMapper.setStoreSapCdSave(storeReq); return userMapper.setStoreSave(storeReq); } diff --git a/src/main/java/com/interplug/qcast/biz/user/dto/StoreRequest.java b/src/main/java/com/interplug/qcast/biz/user/dto/StoreRequest.java index 59da54c6..25149c08 100644 --- a/src/main/java/com/interplug/qcast/biz/user/dto/StoreRequest.java +++ b/src/main/java/com/interplug/qcast/biz/user/dto/StoreRequest.java @@ -5,6 +5,7 @@ import lombok.Data; @Data public class StoreRequest { + private String sapSalesStoreCd; private String saleStoreId; private String saleStoreName; private String saleStoreNameKana; diff --git a/src/main/resources/logback/logback-dev.xml b/src/main/resources/logback/logback-dev.xml index e801d9e5..93b1ae5a 100644 --- a/src/main/resources/logback/logback-dev.xml +++ b/src/main/resources/logback/logback-dev.xml @@ -3,8 +3,8 @@ xsi:noNamespaceSchemaLocation="http://www.padual.com/java/logback.xsd"> - - + + @@ -33,7 +33,7 @@ - + \ No newline at end of file diff --git a/src/main/resources/logback/logback-local.xml b/src/main/resources/logback/logback-local.xml index e801d9e5..2b75f05f 100644 --- a/src/main/resources/logback/logback-local.xml +++ b/src/main/resources/logback/logback-local.xml @@ -3,8 +3,8 @@ xsi:noNamespaceSchemaLocation="http://www.padual.com/java/logback.xsd"> - - + + @@ -33,7 +33,7 @@ - + \ No newline at end of file diff --git a/src/main/resources/logback/logback-prd.xml b/src/main/resources/logback/logback-prd.xml index e801d9e5..e0b969ee 100644 --- a/src/main/resources/logback/logback-prd.xml +++ b/src/main/resources/logback/logback-prd.xml @@ -3,8 +3,8 @@ xsi:noNamespaceSchemaLocation="http://www.padual.com/java/logback.xsd"> - - + + @@ -33,7 +33,7 @@ - + \ No newline at end of file diff --git a/src/main/resources/mappers/commCode/commCodeMapper.xml b/src/main/resources/mappers/commCode/commCodeMapper.xml index 51efa529..775dd0ff 100644 --- a/src/main/resources/mappers/commCode/commCodeMapper.xml +++ b/src/main/resources/mappers/commCode/commCodeMapper.xml @@ -2,7 +2,7 @@ - + /* sqlid : com.interplug.qcast.commCode.setCommHUpdate */ MERGE M_COMM_H AS A USING @@ -73,7 +73,8 @@ ); - + + /* sqlid : com.interplug.qcast.commCode.setCommLUpdate */ MERGE M_COMM_L AS A USING ( SELECT #{clHeadCd} AS HEAD_CD, #{clCode} AS CODE ) AS D @@ -148,4 +149,5 @@ , GETDATE() ); + \ No newline at end of file diff --git a/src/main/resources/mappers/excelDown/excelDownMapper.xml b/src/main/resources/mappers/excelDown/excelDownMapper.xml index f2f70a18..6e6f252d 100644 --- a/src/main/resources/mappers/excelDown/excelDownMapper.xml +++ b/src/main/resources/mappers/excelDown/excelDownMapper.xml @@ -178,7 +178,7 @@ ON G.FIRST_AGENT_ID = Y.SALE_STORE_ID /*1차점정보*/ WHERE A.DEL_FLG = 0 AND B.DEL_FLG = 0 - AND B.ESTIMATE_DETAIL_CREATE_DATE >= #{sch_baseDt} /* 과거일자 기준일 */ + AND B.ESTIMATE_DETAIL_CREATE_DATE #{sch_baseDt} /* 과거일자 기준일 */ AND B.ESTIMATE_DETAIL_CREATE_DATE BETWEEN #{sch_startDt} and #{sch_endDt} @@ -255,7 +255,7 @@ WHERE C.DEL_FLG = 0 AND D.DEL_FLG = 0 AND B.DEL_FLG = 0 - AND C.ESTIMATE_DETAIL_CREATE_DATE >= #{sch_baseDt} /* 과거일자 기준일 */ + AND C.ESTIMATE_DETAIL_CREATE_DATE #{sch_baseDt} /* 과거일자 기준일 */ AND C.ESTIMATE_DETAIL_CREATE_DATE BETWEEN #{sch_startDt} and #{sch_endDt} @@ -349,7 +349,7 @@ LEFT JOIN T_OBJECT D ON A.OBJECT_NO = D.OBJECT_NO WHERE D.DEL_FLG != 1 - AND D.ESTIMATE_DETAIL_CREATE_DATE >= #{sch_baseDt} /* 과거일자 기준일 */ + AND D.ESTIMATE_DETAIL_CREATE_DATE #{sch_baseDt} /* 과거일자 기준일 */ diff --git a/src/main/resources/mappers/object/objectMapper.xml b/src/main/resources/mappers/object/objectMapper.xml index 9e84c9ad..46c841cc 100644 --- a/src/main/resources/mappers/object/objectMapper.xml +++ b/src/main/resources/mappers/object/objectMapper.xml @@ -2,25 +2,120 @@ - + /* sqlid : com.interplug.qcast.biz.object.selectPrefList */ + SELECT + P.PREF_ID + , P.PREF_NAME + FROM M_PREFECTURE P WITH (NOLOCK) + ORDER BY P.DISP_ORDER ASC + + + + + + + + + + +