diff --git a/frontend/src/modules/stats/service/mock/bsnmMonthExcelHeader.json b/frontend/src/modules/stats/service/mock/bsnmMonthExcelHeader.json index 9beb756..eb9032b 100644 --- a/frontend/src/modules/stats/service/mock/bsnmMonthExcelHeader.json +++ b/frontend/src/modules/stats/service/mock/bsnmMonthExcelHeader.json @@ -37,6 +37,18 @@ { "name": "알림톡", "colspan": 2 + }, + { + "name": "대체발송SMS", + "colspan": 2 + }, + { + "name": "대체발송LMS", + "colspan": 2 + }, + { + "name": "대체발송MMS", + "colspan": 2 } ], [ @@ -84,6 +96,33 @@ { "key": "succCntR", "name": "성공건수/(%)" + }, + { + "key": "fbSndCntS", + "name": "발송건수", + "format": "Format_00" + }, + { + "key": "fbSuccCntS", + "name": "성공건수/(%)" + }, + { + "key": "fbSndCntL", + "name": "발송건수", + "format": "Format_00" + }, + { + "key": "fbSuccCntL", + "name": "성공건수/(%)" + }, + { + "key": "fbSndCntM", + "name": "발송건수", + "format": "Format_00" + }, + { + "key": "fbSuccCntM", + "name": "성공건수/(%)" } ] ] diff --git a/frontend/src/modules/stats/service/mock/monthExcelHeader.json b/frontend/src/modules/stats/service/mock/monthExcelHeader.json index dc40d65..32a6dad 100644 --- a/frontend/src/modules/stats/service/mock/monthExcelHeader.json +++ b/frontend/src/modules/stats/service/mock/monthExcelHeader.json @@ -27,6 +27,18 @@ { "name": "알림톡", "colspan": 2 + }, + { + "name": "대체발송SMS", + "colspan": 2 + }, + { + "name": "대체발송LMS", + "colspan": 2 + }, + { + "name": "대체발송MMS", + "colspan": 2 } ], [ @@ -74,6 +86,33 @@ { "key": "succCntR", "name": "성공건수/(%)" + }, + { + "key": "fbSndCntS", + "name": "발송건수", + "format": "Format_00" + }, + { + "key": "fbSuccCntS", + "name": "성공건수/(%)" + }, + { + "key": "fbSndCntL", + "name": "발송건수", + "format": "Format_00" + }, + { + "key": "fbSuccCntL", + "name": "성공건수/(%)" + }, + { + "key": "fbSndCntM", + "name": "발송건수", + "format": "Format_00" + }, + { + "key": "fbSuccCntM", + "name": "성공건수/(%)" } ] ] diff --git a/frontend/src/modules/stats/views/BsnmMonthList.vue b/frontend/src/modules/stats/views/BsnmMonthList.vue index c7d35be..df3ff08 100644 --- a/frontend/src/modules/stats/views/BsnmMonthList.vue +++ b/frontend/src/modules/stats/views/BsnmMonthList.vue @@ -155,21 +155,19 @@ export default { { header: 'LMS', childNames: ['sndCntL', 'succCntRtL'] }, { header: 'MMS', childNames: ['sndCntM', 'succCntRtM'] }, { header: '알림톡', childNames: ['sndCntR', 'succCntRtR'] }, + { header: '대체발송SMS', childNames: ['fbSndCntS', 'fbSuccCntRtS'] }, + { header: '대체발송LMS', childNames: ['fbSndCntL', 'fbSuccCntRtL'] }, + { header: '대체발송MMS', childNames: ['fbSndCntM', 'fbSuccCntRtM'] }, ], ], - columns: [ - { name: 'sumYm', header: '날짜', align: 'center', width: '8%' }, - { name: 'custNm', header: '고객사명', align: 'center', width: '12%' }, + { name: 'sumYm', header: '날짜', align: 'center', width: '5%' }, + { name: 'custNm', header: '고객사명', align: 'center', width: '9%' }, { name: 'bizrno', header: '사업자번호', align: 'center', - width: '8%', - // , formatter: props => { - // let result = props.bizrno.substring(0, 3) + '-' + props.bizrno.substring(3, 5) + '-' + props.bizrno.substring(5, 10) - // return result; - // } + width: '6%', }, { name: 'sndCnt', @@ -180,7 +178,7 @@ export default { let result = props.sndCnt.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ','); return result; }, - width: '7%', + width: '5%', }, { name: 'succCntRt', @@ -196,7 +194,7 @@ export default { '%)

' ); }, - width: '7%', + width: '5%', }, { name: 'sndCntS', @@ -207,7 +205,7 @@ export default { let result = props.sndCntS.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ','); return result; }, - width: '7%', + width: '5%', }, { name: 'succCntRtS', @@ -223,7 +221,7 @@ export default { '%)

' ); }, - width: '7%', + width: '5%', }, { name: 'sndCntL', @@ -234,7 +232,7 @@ export default { let result = props.sndCntL.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ','); return result; }, - width: '7%', + width: '5%', }, { name: 'succCntRtL', @@ -250,7 +248,7 @@ export default { '%)

' ); }, - width: '7%', + width: '5%', }, { name: 'sndCntM', @@ -261,7 +259,7 @@ export default { let result = props.sndCntM.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ','); return result; }, - width: '7%', + width: '5%', }, { name: 'succCntRtM', @@ -277,7 +275,7 @@ export default { '%)

' ); }, - width: '7%', + width: '5%', }, { name: 'sndCntR', @@ -288,7 +286,7 @@ export default { let result = props.sndCntR.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ','); return result; }, - width: '7%', + width: '5%', }, { name: 'succCntRtR', @@ -304,7 +302,88 @@ export default { ')

' ); }, - width: '7%', + width: '5%', + }, + { + name: 'fbSndCntS', + header: '발송건수', + align: 'center', + cls: 'td_line', + formatter: (props) => { + let result = props.fbSndCntS.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ','); + return result; + }, + width: '5%', + }, + { + name: 'fbSuccCntRtS', + header: '성공건수/(%)', + align: 'center', + cls: 'td_line', + formatter: (props) => { + return ( + '

' + + props.fbSuccCntS.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + + '

\n

(' + + props.succFbRtS + + ')

' + ); + }, + width: '5%', + }, + { + name: 'fbSndCntL', + header: '발송건수', + align: 'center', + cls: 'td_line', + formatter: (props) => { + let result = props.fbSndCntL.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ','); + return result; + }, + width: '5%', + }, + { + name: 'fbSuccCntRtL', + header: '성공건수/(%)', + align: 'center', + cls: 'td_line', + formatter: (props) => { + return ( + '

' + + props.fbSuccCntL.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + + '

\n

(' + + props.succFbRtL + + ')

' + ); + }, + width: '5%', + }, + { + name: 'fbSndCntM', + header: '발송건수', + align: 'center', + cls: 'td_line', + formatter: (props) => { + let result = props.fbSndCntM.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ','); + return result; + }, + width: '5%', + }, + { + name: 'fbSuccCntRtL', + header: '성공건수/(%)', + align: 'center', + cls: 'td_line', + formatter: (props) => { + return ( + '

' + + props.fbSuccCntM.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + + '

\n

(' + + props.succFbRtM + + ')

' + ); + }, + width: '5%', }, ], noDataStr: '검색 결과가 없습니다.', diff --git a/src/main/java/kr/co/uplus/ez/api/stats/dto/BsnmMonthList.java b/src/main/java/kr/co/uplus/ez/api/stats/dto/BsnmMonthList.java index d286421..d24ee44 100644 --- a/src/main/java/kr/co/uplus/ez/api/stats/dto/BsnmMonthList.java +++ b/src/main/java/kr/co/uplus/ez/api/stats/dto/BsnmMonthList.java @@ -45,4 +45,23 @@ public class BsnmMonthList implements Serializable { private String succCntR; @ApiModelProperty(example = "알림톡 성공율", name = "알림톡 성공율", dataType = "String") private String succRtR; + @ApiModelProperty(example = "대체발송SMS 발송건수", name = "대체발송SMS 발송건수", dataType = "String") + private String fbSndCntS; + @ApiModelProperty(example = "대체발송SMS 성공건수", name = "대체발송SMS 성공건수", dataType = "String") + private String fbSuccCntS; + @ApiModelProperty(example = "대체발송SMS 성공율", name = "대체발송SMS 성공율", dataType = "String") + private String succFbRtS; + @ApiModelProperty(example = "대체발송LMS 발송건수", name = "대체발송LMS 발송건수", dataType = "String") + private String fbSndCntL; + @ApiModelProperty(example = "대체발송LMS 성공건수", name = "대체발송LMS 성공건수", dataType = "String") + private String fbSuccCntL; + @ApiModelProperty(example = "대체발송LMS 성공율", name = "대체발송LMS 성공율", dataType = "String") + private String succFbRtL; + @ApiModelProperty(example = "대체발송MMS 발송건수", name = "대체발송MMS 발송건수", dataType = "String") + private String fbSndCntM; + @ApiModelProperty(example = "대체발송MMS 성공건수", name = "대체발송MMS 성공건수", dataType = "String") + private String fbSuccCntM; + @ApiModelProperty(example = "대체발송MMS 성공율", name = "대체발송MMS 성공율", dataType = "String") + private String succFbRtM; + } \ No newline at end of file diff --git a/src/main/resources/mapper/mysql/stats/stats-mapper.xml b/src/main/resources/mapper/mysql/stats/stats-mapper.xml index 163a97c..130853d 100644 --- a/src/main/resources/mapper/mysql/stats/stats-mapper.xml +++ b/src/main/resources/mapper/mysql/stats/stats-mapper.xml @@ -546,415 +546,330 @@