diff --git a/frontend/src/modules/custMgt/components/ChrgDetailPop.vue b/frontend/src/modules/custMgt/components/ChrgDetailPop.vue new file mode 100644 index 0000000..4c1715b --- /dev/null +++ b/frontend/src/modules/custMgt/components/ChrgDetailPop.vue @@ -0,0 +1,330 @@ + + + diff --git a/frontend/src/modules/custMgt/components/InsertChrgModal.vue b/frontend/src/modules/custMgt/components/InsertChrgModal.vue index 82ffd06..792ca1f 100644 --- a/frontend/src/modules/custMgt/components/InsertChrgModal.vue +++ b/frontend/src/modules/custMgt/components/InsertChrgModal.vue @@ -144,6 +144,7 @@ export default { bRegNo: '', bizrAuthYn : '', custSeq : '', + chrgSeq : '', } }, @@ -219,8 +220,8 @@ export default { if (type != undefined && type != null) { let initStartDate = new Date(); let initEndDate = new Date(); - initStartDate.setMonth(Number(moment(initStartDate).format('MM')) - 4) - initEndDate.setMonth(Number(moment(initEndDate).format('MM')) - 2) + initStartDate.setMonth(Number(moment(initStartDate).format('MM')) ) + initEndDate.setMonth(Number(moment(initEndDate).format('MM')) + 12) if (type == 'start') { @@ -255,32 +256,21 @@ export default { }, initSetStartDate() { let initStartDate = new Date(); - initStartDate.setMonth(Number(moment(initStartDate).format('MM')) - 4); + initStartDate.setMonth(Number(moment(initStartDate).format('MM'))); this.startDate = initStartDate; }, initSetEndDate() { let initEndDate = new Date(); - initEndDate.setMonth(Number(moment(initEndDate).format('MM')) - 2); + initEndDate.setMonth(Number(moment(initEndDate).format('MM')) +12); this.endDate = initEndDate; }, saveChrg(){ - // this.saveChrg = []; - // this.saveChrg.push({ - // userId: this.userId, - // strtYm: this.strtYm, - // endYm: this.endDate, - // chrgAmt: this.chrgAmt, - // }) - - // let startDate2 = this.startDate.toString() - console.log("this.userId: ", this.userId) console.log("this.startDate: ", this.startDate) console.log("this.endDate: ", this.endDate) console.log("this.chrgAmtE: ", this.chrgAmtE) - // startDate2 = startDate2.replace(/{{/g, '') - // console.log("chstartDate",chstartDate) + let param = { userId : this.userId, strtYm : this.startDate, @@ -295,7 +285,7 @@ export default { if (result.success) { alert("충전금이 등록되었습니다."); } else { - alert("오류가 발생하였습니다"); + // alert("오류가 발생하였습니다"); } }) }, diff --git a/frontend/src/modules/custMgt/components/ValidationConfirmPop.vue b/frontend/src/modules/custMgt/components/ValidationConfirmPop.vue index c65bc94..a324807 100644 --- a/frontend/src/modules/custMgt/components/ValidationConfirmPop.vue +++ b/frontend/src/modules/custMgt/components/ValidationConfirmPop.vue @@ -161,6 +161,41 @@ + +
+ + + +
+ + @@ -407,6 +442,59 @@ export default { // 부모 함수 호출. this.$parent.confirmCalbackFnc(this.row); }, + + //충전금 수정 확인 Open + chrgconfirmUpdateOpen() { + var dimmed = document.getElementsByClassName('chrgconfirm-update'); + for (var i = 0; i < dimmed.length; i++) { + dimmed[i].style.display = 'block'; + } + + }, + //충전금 수정 확인 + chrgconfirmUpdate() { + var dimmed = document.getElementsByClassName('chrgconfirm-update'); + for (var i = 0; i < dimmed.length; i++) { + dimmed[i].style.display = 'none'; + } + console.log("3") + this.$parent.ChrgUpdateModal(); + + }, + // 충전금 수정 Close + chrgconfirmUpdateClose() { + var dimmed = document.getElementsByClassName('chrgconfirm-update'); + for (var i = 0; i < dimmed.length; i++) { + dimmed[i].style.display = 'none'; + } + + }, + + // 충전금 삭제 Open + chrgconfirmDeleteOpen() { + var dimmed = document.getElementsByClassName('chrgconfirm-delete'); + for (var i = 0; i < dimmed.length; i++) { + dimmed[i].style.display = 'block'; + } + }, + //충전금 삭제 + chrgconfirmDelete() { + var dimmed = document.getElementsByClassName('chrgconfirm-delete'); + for (var i = 0; i < dimmed.length; i++) { + dimmed[i].style.display = 'none'; + } + this.$parent.ChrgDeleteModal(); + }, + //충전금 삭제 Close + chrgconfirmDeleteClose() { + var dimmed = document.getElementsByClassName('chrgconfirm-delete'); + for (var i = 0; i < dimmed.length; i++) { + dimmed[i].style.display = 'none'; + } + + }, + + } } \ No newline at end of file diff --git a/frontend/src/modules/custMgt/service/custMgtApi.js b/frontend/src/modules/custMgt/service/custMgtApi.js index b02e539..2286ef3 100644 --- a/frontend/src/modules/custMgt/service/custMgtApi.js +++ b/frontend/src/modules/custMgt/service/custMgtApi.js @@ -93,11 +93,21 @@ const insertChrg = (params) => { return httpClient.post('/api/v1/bo/custMgt/insertChrg', params); } +// 충전금 생성 +const chrgDetail = (params) => { + return httpClient.post('/api/v1/bo/custMgt/chrgDetail', params); +} + // 충전금 수정 const updateChrg = (params) => { return httpClient.post('/api/v1/bo/custMgt/updateChrg', params); } +// 충전금 삭제 +const deleteChrg = (params) => { + return httpClient.post('/api/v1/bo/custMgt/deleteChrg', params); +} + const getExcelHeader = category => { // 엑셀에 출력할 Header 정보를 Mockup 데이터로 관리한다. return new Promise(function(resolve, reject) { @@ -141,4 +151,6 @@ export default { chrgList, insertChrg, updateChrg, + chrgDetail, + deleteChrg, } diff --git a/frontend/src/modules/custMgt/views/ChrgList.vue b/frontend/src/modules/custMgt/views/ChrgList.vue index 4e3d0b2..6a5f196 100644 --- a/frontend/src/modules/custMgt/views/ChrgList.vue +++ b/frontend/src/modules/custMgt/views/ChrgList.vue @@ -97,6 +97,7 @@ + @@ -107,6 +108,7 @@ import customGrid from '@/components/CustomGrid'; import moment from 'moment'; import InsertChrgModal from '../components/InsertChrgModal'; import chrgDetailPop from '../components/ChrgDetailPop.vue'; +import commonModal from "@/components/modal/commonModal"; class CustomATagRenderer { constructor(props) { @@ -149,7 +151,10 @@ export default { endYear: '', endMonth: '', + searchType1: '01', + chrgSeq : '', + useYn: '', // 테이블 리스트 데이터 perPageCnt: 50, @@ -168,6 +173,7 @@ export default { addCls: 'box_OFvis', columns:[ + {name: 'chrgSeq', header: 'chrgSeq', align: 'center', width: 60}, {name: 'no', header: 'No', align: 'center', width: 60}, { name: 'custNm', header: '고객사명', align: 'center', width: 130, @@ -193,6 +199,7 @@ export default { vuejsDatepicker, InsertChrgModal, chrgDetailPop, + commonModal, }, created() { this.setPeriodDay(0); @@ -342,7 +349,11 @@ export default { insertChrg () { this.$refs.insertChrgModal.insertChrgOpen(); - } + }, + + alertInsert(props) { + this.$refs.commonModal.alertModalOpen(props); + }, } } diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/CustMgtService.java b/src/main/java/kr/co/uplus/ez/api/custMgt/CustMgtService.java index c7bb264..e123ab2 100644 --- a/src/main/java/kr/co/uplus/ez/api/custMgt/CustMgtService.java +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/CustMgtService.java @@ -1039,6 +1039,25 @@ public class CustMgtService { return new ChrgListResDto(ApiResponseCode.SUCCESS, chrgListRes); } + /** + * date : 2023. 3. 15. + * auth : won + * desc : 충전관리 상세 조회 + * @param ChrgDetailReqDto + * @return ChrgDetailResDto + */ + public ChrgDetailResDto chrgDetail(@Valid ChrgDetailReqDto chrgDetailReqDto) { + CustMgtMapper custMgtMapper = sqlSessionSlave.getMapper(CustMgtMapper.class); + + ChrgDetail chrgDetail = custMgtMapper.selectChrgDetail(chrgDetailReqDto); + + if (chrgDetail == null) { + return new ChrgDetailResDto(ApiResponseCode.CM_NOT_FOUND); + } + + // 성공 응답. + return new ChrgDetailResDto(ApiResponseCode.SUCCESS, chrgDetail); + } /** * * date : 2023. 3. 15. @@ -1088,7 +1107,7 @@ public class CustMgtService { chrgInfo.setChrgDiv(insertChrgReqDto.getChrdDiv()); String StrYm = insertChrgReqDto.getStrtYm().replace("-", "").substring(0, 6); chrgInfo.setStrtYm(StrYm); - String EndYm = insertChrgReqDto.getEndYm().substring(0, 6); + String EndYm = insertChrgReqDto.getEndYm().replace("-", "").substring(0, 6); chrgInfo.setEndYm(EndYm); chrgInfo.setChrgAmt(insertChrgReqDto.getChrgAmt()); chrgInfo.setRegId(regId); //로그인 ID @@ -1114,21 +1133,21 @@ public class CustMgtService { custMgtMapper.updateChrg(updateChrgReqDto); // 2. 새 정보 insert - String chrgSeq = custMgtMapper.getChrgSeq(); + String chrgSeq = custMgtMapper.getChrgSeq(); int userSeq = custMgtMapper.selectUserSeq(updateChrgReqDto.getUserId()); Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); UserDetails userDetails = (UserDetails) principal; String regId = userDetails.getUsername(); - logger.debug("insertChrgReqDto= {}", updateChrgReqDto); + logger.debug("updateChrgReqDto= {}", updateChrgReqDto); ChrgInfo chrgInfo = new ChrgInfo(); chrgInfo.setChrgSeq(chrgSeq); chrgInfo.setUserSeq(userSeq); chrgInfo.setChrgDiv(updateChrgReqDto.getChrdDiv()); - String StrYm = updateChrgReqDto.getStrtYm().substring(0, 6); + String StrYm = updateChrgReqDto.getStrtYm().replace("-", "").substring(0, 6); chrgInfo.setStrtYm(StrYm); - String EndYm = updateChrgReqDto.getEndYm().substring(0, 6); + String EndYm = updateChrgReqDto.getEndYm().replace("-", "").substring(0, 6); chrgInfo.setEndYm(EndYm); chrgInfo.setChrgAmt(updateChrgReqDto.getChrgAmt()); chrgInfo.setRegId(regId); //로그인 ID @@ -1152,25 +1171,7 @@ public class CustMgtService { return new DeleteChrgResDto(ApiResponseCode.SUCCESS); } - /** - * date : 2023. 3. 15. - * auth : won - * desc : 충전관리 상세 조회 - * @param ChrgDetailReqDto - * @return ChrgDetailResDto - */ - public ChrgDetailResDto chrgDetail(@Valid ChrgDetailReqDto chrgDetailReqDto) { - CustMgtMapper custMgtMapper = sqlSessionSlave.getMapper(CustMgtMapper.class); - - ChrgDetail chrgDetail = custMgtMapper.selectChrgDetail(chrgDetailReqDto); - - if (chrgDetail == null) { - return new ChrgDetailResDto(ApiResponseCode.CM_NOT_FOUND); - } - // 성공 응답. - return new ChrgDetailResDto(ApiResponseCode.SUCCESS, chrgDetail); - } /* 2023-03-07 add request 부분 * date : 2023. 1. 1. diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgDetail.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgDetail.java new file mode 100644 index 0000000..da2218c --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgDetail.java @@ -0,0 +1,30 @@ +package kr.co.uplus.ez.api.custMgt.dto; + +import java.io.Serializable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class ChrgDetail implements Serializable{ + + @ApiModelProperty(example = "고객사명", name = "고객사명", dataType = "String") + private String custNm; + @ApiModelProperty(example = "고객명", name = "고객명", dataType = "String") + private String userId; + @ApiModelProperty(example = "충전구분", name = "충전구분", dataType = "String") + private String chrgDiv; + @ApiModelProperty(example = "충전시작일", name = "충전시작일", dataType = "String") + private String strtYm; + @ApiModelProperty(example = "충전종료일", name = "충전종료일", dataType = "String") + private String endYm; + @ApiModelProperty(example = "충전금액", name = "충전금액", dataType = "String") + private String chrgAmt; + @ApiModelProperty(example = "사용여부", name = "사용여부", dataType = "String") + private String useYn; + @ApiModelProperty(example = "사업자명", name = "사업자명", dataType = "String") + private String bizrNo; + @ApiModelProperty(example = "충전seq", name = "충전seq", dataType = "String") + private String chrgSeq; +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgDetailReqDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgDetailReqDto.java new file mode 100644 index 0000000..a3d8c9e --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgDetailReqDto.java @@ -0,0 +1,14 @@ +package kr.co.uplus.ez.api.custMgt.dto; + +import java.io.Serializable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class ChrgDetailReqDto implements Serializable{ + + @ApiModelProperty(example = "충전seq", name = "충전seq", dataType = "String") + private String chrgSeq; +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgDetailResDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgDetailResDto.java new file mode 100644 index 0000000..b283973 --- /dev/null +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgDetailResDto.java @@ -0,0 +1,33 @@ +package kr.co.uplus.ez.api.custMgt.dto; + +import java.io.Serializable; + +import io.swagger.annotations.ApiModelProperty; +import kr.co.uplus.ez.common.data.ApiResponseCode; +import kr.co.uplus.ez.common.data.ResponseMessage; +import lombok.Data; + +@SuppressWarnings("serial") +@Data +public class ChrgDetailResDto extends ResponseMessage implements Serializable{ + + @ApiModelProperty(example = "데이터") + private ChrgDetail data; + + public ChrgDetailResDto() { + this.retCode = ApiResponseCode.SUCCESS.getResultCode(); + this.retMsg = ApiResponseCode.SUCCESS.getResultMsg(); + } + + public ChrgDetailResDto(ApiResponseCode returnStr) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + } + + public ChrgDetailResDto(ApiResponseCode returnStr, ChrgDetail data) { + this.retCode = returnStr.getResultCode(); + this.retMsg = returnStr.getResultMsg(); + this.data = data; + } + +} diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgList.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgList.java index eaa2e71..1484253 100644 --- a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgList.java +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/ChrgList.java @@ -28,5 +28,7 @@ public class ChrgList implements Serializable{ private String bizrNo; @ApiModelProperty(example = "충전기간", name = "충전기간", dataType = "String") private String chrgDate; + @ApiModelProperty(example = "충전seq", name = "충전seq", dataType = "String") + private String chrgSeq; } diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteChrgReqDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteChrgReqDto.java index 4f8a9ab..d2669a5 100644 --- a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteChrgReqDto.java +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/DeleteChrgReqDto.java @@ -11,5 +11,7 @@ public class DeleteChrgReqDto implements Serializable{ @ApiModelProperty(example = "사용여부", name = "사용여부", dataType = "String") private String useYn; + @ApiModelProperty(example = "충전seq", name = "충전seq", dataType = "String") + private String chrgSeq; } diff --git a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UpdateChrgReqDto.java b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UpdateChrgReqDto.java index f0407c0..2e33975 100644 --- a/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UpdateChrgReqDto.java +++ b/src/main/java/kr/co/uplus/ez/api/custMgt/dto/UpdateChrgReqDto.java @@ -25,5 +25,7 @@ public class UpdateChrgReqDto implements Serializable{ private String useYn; @ApiModelProperty(example = "사업자명", name = "사업자명", dataType = "String") private String bizrNo; + @ApiModelProperty(example = "충전seq", name = "충전seq", dataType = "String") + private String chrgSeq; } diff --git a/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml b/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml index cf438ea..c8df3c0 100644 --- a/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml +++ b/src/main/resources/mapper/mysql/custMgt/custMgt-mapper.xml @@ -1148,10 +1148,6 @@ @@ -1228,10 +1240,11 @@ - hubez_admin.EZ_CHARGE_MNG - set - ecm.USE_YN ='N' - WHERE USER_SEQ = (SELECT USER_SEQ FROM hubez_common.EZ_SVC_USER WHERE USER_ID = #{userId}) + UPDATE + hubez_admin.EZ_CHARGE_MNG ecm + set + ecm.USE_YN ='N' + WHERE ecm.CHRG_SEQ = #{chrgSeq} @@ -1247,27 +1260,27 @@ , REG_DT , CHG_ID , CHG_DT - ) ) VALUES( #{chrgSeq} , #{userSeq} - , 'Y' - , #{startDt} - , #{endDt} + , 'E' + , #{strtYm} + , #{endYm} , #{chrgAmt} + , 'Y' , #{regId} , NOW() , #{regId} , NOW() - ) + ) UPDATE - hubez_admin.EZ_CHARGE_MNG + hubez_admin.EZ_CHARGE_MNG ecm set ecm.USE_YN ='N' - WHERE USER_SEQ = (SELECT USER_SEQ FROM hubez_common.EZ_SVC_USER WHERE USER_ID = #{userId}) + WHERE ecm.CHRG_SEQ = #{chrgSeq}