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}