Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
service-campaign
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Nguyen Ha
service-campaign
Commits
6da9b64d
Commit
6da9b64d
authored
Aug 08, 2019
by
=
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
hungtt-commit service camp-exe-interactive
parent
013f9821
Changes
12
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
337 additions
and
26 deletions
+337
-26
src/main/java/com/viettel/campaign/repository/CampaignExecuteRepository.java
...iettel/campaign/repository/CampaignExecuteRepository.java
+2
-0
src/main/java/com/viettel/campaign/repository/impl/CampaignExecuteRepositoryImp.java
...ampaign/repository/impl/CampaignExecuteRepositoryImp.java
+90
-24
src/main/java/com/viettel/campaign/service/CampaignExecuteService.java
.../com/viettel/campaign/service/CampaignExecuteService.java
+3
-0
src/main/java/com/viettel/campaign/service/impl/CampaignExecuteServiceImp.java
...ttel/campaign/service/impl/CampaignExecuteServiceImp.java
+122
-0
src/main/java/com/viettel/campaign/utils/BundleUtils.java
src/main/java/com/viettel/campaign/utils/BundleUtils.java
+37
-0
src/main/java/com/viettel/campaign/utils/Constants.java
src/main/java/com/viettel/campaign/utils/Constants.java
+8
-0
src/main/java/com/viettel/campaign/web/dto/BaseDTO.java
src/main/java/com/viettel/campaign/web/dto/BaseDTO.java
+1
-0
src/main/java/com/viettel/campaign/web/rest/controller/CampaignController.java
...ttel/campaign/web/rest/controller/CampaignController.java
+40
-1
src/main/resources/i18n/language.properties
src/main/resources/i18n/language.properties
+0
-0
src/main/resources/i18n/language_en.properties
src/main/resources/i18n/language_en.properties
+16
-0
src/main/resources/i18n/language_vi.properties
src/main/resources/i18n/language_vi.properties
+16
-0
src/main/resources/sql/campaign-execute/get-execute-interactive.sql
...esources/sql/campaign-execute/get-execute-interactive.sql
+2
-1
No files found.
src/main/java/com/viettel/campaign/repository/CampaignExecuteRepository.java
View file @
6da9b64d
...
@@ -18,5 +18,7 @@ public interface CampaignExecuteRepository {
...
@@ -18,5 +18,7 @@ public interface CampaignExecuteRepository {
List
<
ApParamDTO
>
getComboCampaignType
(
String
companySiteId
);
List
<
ApParamDTO
>
getComboCampaignType
(
String
companySiteId
);
ResultDTO
getInteractiveResult
(
CampaignRequestDTO
dto
);
ResultDTO
getInteractiveResult
(
CampaignRequestDTO
dto
);
List
<
ContactCustResultDTO
>
getExcelInteractiveResult
(
CampaignRequestDTO
dto
);
//</editor-fold: hungtt>
//</editor-fold: hungtt>
}
}
src/main/java/com/viettel/campaign/repository/impl/CampaignExecuteRepositoryImp.java
View file @
6da9b64d
...
@@ -25,11 +25,8 @@ import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
...
@@ -25,11 +25,8 @@ import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
import
javax.persistence.EntityManager
;
import
javax.persistence.EntityManager
;
import
javax.persistence.Query
;
import
java.util.*
;
import
java.util.ArrayList
;
import
java.util.concurrent.TimeUnit
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
@Repository
@Repository
public
class
CampaignExecuteRepositoryImp
implements
CampaignExecuteRepository
{
public
class
CampaignExecuteRepositoryImp
implements
CampaignExecuteRepository
{
...
@@ -85,30 +82,30 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
...
@@ -85,30 +82,30 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
String
sql
=
SQLBuilder
.
getSqlQueryById
(
Constants
.
SQL_MODULES
.
MODULE_EXECUTE
,
"get-execute-interactive"
);
String
sql
=
SQLBuilder
.
getSqlQueryById
(
Constants
.
SQL_MODULES
.
MODULE_EXECUTE
,
"get-execute-interactive"
);
sqlBuilder
.
append
(
sql
);
sqlBuilder
.
append
(
sql
);
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getCampaignName
()
.
trim
()
))
{
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getCampaignName
()))
{
sqlBuilder
.
append
(
" and upper(campaignName) like upper(:p_campaign_name)"
);
sqlBuilder
.
append
(
" and upper(campaignName) like upper(:p_campaign_name)"
);
}
}
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getAgentId
()
.
trim
()
))
{
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getAgentId
()))
{
sqlBuilder
.
append
(
" and upper(userName) like upper(:p_user_name)"
);
sqlBuilder
.
append
(
" and upper(userName) like upper(:p_user_name)"
);
}
}
SQLQuery
query
=
session
.
createSQLQuery
(
sqlBuilder
.
toString
());
SQLQuery
query
=
session
.
createSQLQuery
(
sqlBuilder
.
toString
());
query
.
setParameterList
(
"p_list_campaign_id"
,
dto
.
getCampaignId
().
trim
().
split
(
","
));
query
.
setParameterList
(
"p_list_campaign_id"
,
dto
.
getCampaignId
().
split
(
","
));
query
.
setParameter
(
"p_customer_id"
,
dto
.
getCustomerId
()
.
trim
()
);
query
.
setParameter
(
"p_customer_id"
,
dto
.
getCustomerId
());
query
.
setParameter
(
"p_date_from"
,
dto
.
getFromDate
()
.
trim
()
);
query
.
setParameter
(
"p_date_from"
,
dto
.
getFromDate
());
query
.
setParameter
(
"p_date_to"
,
dto
.
getToDate
()
.
trim
()
);
query
.
setParameter
(
"p_date_to"
,
dto
.
getToDate
());
query
.
setParameterList
(
"p_list_contact_status"
,
dto
.
getContactStatus
().
trim
().
split
(
","
));
query
.
setParameterList
(
"p_list_contact_status"
,
dto
.
getContactStatus
().
split
(
","
));
query
.
setParameterList
(
"p_list_survey_status"
,
dto
.
getSurveyStatus
().
trim
().
split
(
","
));
query
.
setParameterList
(
"p_list_survey_status"
,
dto
.
getSurveyStatus
().
split
(
","
));
query
.
setParameterList
(
"p_list_record_status"
,
dto
.
getRecordStatus
().
trim
().
split
(
","
));
query
.
setParameterList
(
"p_list_record_status"
,
dto
.
getRecordStatus
().
split
(
","
));
query
.
setParameter
(
"p_phone_number"
,
dto
.
getPhoneNumber
()
.
trim
()
);
query
.
setParameter
(
"p_phone_number"
,
dto
.
getPhoneNumber
());
query
.
setParameter
(
"p_call_time_from"
,
dto
.
getCallTimeFrom
()
.
trim
()
);
query
.
setParameter
(
"p_call_time_from"
,
dto
.
getCallTimeFrom
());
query
.
setParameter
(
"p_call_time_to"
,
dto
.
getCallTimeTo
()
.
trim
()
);
query
.
setParameter
(
"p_call_time_to"
,
dto
.
getCallTimeTo
());
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getCampaignName
()
.
trim
()
))
{
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getCampaignName
()))
{
query
.
setParameter
(
"p_campaign_name"
,
dto
.
getCampaignName
().
trim
());
query
.
setParameter
(
"p_campaign_name"
,
dto
.
getCampaignName
().
trim
());
}
}
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getAgentId
()
.
trim
()
))
{
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getAgentId
()))
{
query
.
setParameter
(
"p_user_name"
,
dto
.
getAgentId
().
trim
());
query
.
setParameter
(
"p_user_name"
,
dto
.
getAgentId
().
trim
());
}
}
...
@@ -142,10 +139,8 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
...
@@ -142,10 +139,8 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
}
else
{
}
else
{
if
(
contactCustResultDTO
.
getRecordStatus
()
==
2
)
{
if
(
contactCustResultDTO
.
getRecordStatus
()
==
2
)
{
contactCustResultDTO
.
setEnableEdit
(
true
);
contactCustResultDTO
.
setEnableEdit
(
true
);
}
else
if
(
contactCustResultDTO
.
getRecordStatus
()
==
1
){
}
else
if
(
contactCustResultDTO
.
getRecordStatus
()
==
1
&&
isLower24Hour
(
contactCustResultDTO
.
getCreateTime
())){
/**
contactCustResultDTO
.
setEnableEdit
(
true
);
* Hoi chi linh xac dinh thoi gian 24h ke tu khi da luu kieu gi??????
*/
}
else
{
}
else
{
contactCustResultDTO
.
setEnableEdit
(
false
);
contactCustResultDTO
.
setEnableEdit
(
false
);
}
}
...
@@ -164,4 +159,75 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
...
@@ -164,4 +159,75 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
}
}
return
resultDTO
;
return
resultDTO
;
}
}
@Override
public
List
<
ContactCustResultDTO
>
getExcelInteractiveResult
(
CampaignRequestDTO
dto
)
{
List
<
ContactCustResultDTO
>
list
=
new
ArrayList
<>();
SessionFactory
sessionFactory
=
HibernateUtil
.
getSessionFactory
();
Session
session
=
sessionFactory
.
openSession
();
session
.
beginTransaction
();
StringBuilder
sqlBuilder
=
new
StringBuilder
();
try
{
String
sql
=
SQLBuilder
.
getSqlQueryById
(
Constants
.
SQL_MODULES
.
MODULE_EXECUTE
,
"get-execute-interactive"
);
sqlBuilder
.
append
(
sql
);
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getCampaignName
()))
{
sqlBuilder
.
append
(
" and upper(campaignName) like upper(:p_campaign_name)"
);
}
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getAgentId
()))
{
sqlBuilder
.
append
(
" and upper(userName) like upper(:p_user_name)"
);
}
SQLQuery
query
=
session
.
createSQLQuery
(
sqlBuilder
.
toString
());
query
.
setParameterList
(
"p_list_campaign_id"
,
dto
.
getCampaignId
().
split
(
","
));
query
.
setParameter
(
"p_customer_id"
,
dto
.
getCustomerId
());
query
.
setParameter
(
"p_date_from"
,
dto
.
getFromDate
());
query
.
setParameter
(
"p_date_to"
,
dto
.
getToDate
());
query
.
setParameterList
(
"p_list_contact_status"
,
dto
.
getContactStatus
().
split
(
","
));
query
.
setParameterList
(
"p_list_survey_status"
,
dto
.
getSurveyStatus
().
split
(
","
));
query
.
setParameterList
(
"p_list_record_status"
,
dto
.
getRecordStatus
().
split
(
","
));
query
.
setParameter
(
"p_phone_number"
,
dto
.
getPhoneNumber
());
query
.
setParameter
(
"p_call_time_from"
,
dto
.
getCallTimeFrom
());
query
.
setParameter
(
"p_call_time_to"
,
dto
.
getCallTimeTo
());
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getCampaignName
()))
{
query
.
setParameter
(
"p_campaign_name"
,
dto
.
getCampaignName
().
trim
());
}
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getAgentId
()))
{
query
.
setParameter
(
"p_user_name"
,
dto
.
getAgentId
().
trim
());
}
query
.
addScalar
(
"campaignCode"
,
new
StringType
());
query
.
addScalar
(
"campaignName"
,
new
StringType
());
query
.
addScalar
(
"userName"
,
new
StringType
());
query
.
addScalar
(
"phoneNumber"
,
new
LongType
());
query
.
addScalar
(
"customerName"
,
new
StringType
());
query
.
addScalar
(
"createTime"
,
new
DateType
());
query
.
addScalar
(
"contactStatus"
,
new
StringType
());
query
.
addScalar
(
"surveyStatus"
,
new
StringType
());
query
.
addScalar
(
"status"
,
new
ShortType
());
query
.
addScalar
(
"recordStatus"
,
new
ShortType
());
query
.
setResultTransformer
(
Transformers
.
aliasToBean
(
ContactCustResultDTO
.
class
));
list
=
query
.
list
();
}
catch
(
Exception
e
)
{
logger
.
error
(
e
.
getMessage
(),
e
);
}
finally
{
session
.
close
();
return
list
;
}
}
private
boolean
isLower24Hour
(
Date
createTime
)
{
Date
currTime
=
new
Date
();
long
diffMilSec
=
currTime
.
getTime
()
-
createTime
.
getTime
();
long
hour
=
TimeUnit
.
MILLISECONDS
.
toHours
(
diffMilSec
);
if
(
hour
>
24
)
return
false
;
return
true
;
}
}
}
src/main/java/com/viettel/campaign/service/CampaignExecuteService.java
View file @
6da9b64d
...
@@ -2,6 +2,7 @@ package com.viettel.campaign.service;
...
@@ -2,6 +2,7 @@ package com.viettel.campaign.service;
import
com.viettel.campaign.web.dto.ResultDTO
;
import
com.viettel.campaign.web.dto.ResultDTO
;
import
com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO
;
import
com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO
;
import
org.apache.poi.xssf.usermodel.XSSFWorkbook
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
@Service
@Service
...
@@ -12,5 +13,7 @@ public interface CampaignExecuteService {
...
@@ -12,5 +13,7 @@ public interface CampaignExecuteService {
ResultDTO
getComboCampaignType
(
String
companySiteId
);
ResultDTO
getComboCampaignType
(
String
companySiteId
);
ResultDTO
searchInteractiveResult
(
CampaignRequestDTO
dto
);
ResultDTO
searchInteractiveResult
(
CampaignRequestDTO
dto
);
XSSFWorkbook
exportInteractiveResult
(
CampaignRequestDTO
dto
);
//</editor-fold>
//</editor-fold>
}
}
src/main/java/com/viettel/campaign/service/impl/CampaignExecuteServiceImp.java
View file @
6da9b64d
...
@@ -2,22 +2,32 @@ package com.viettel.campaign.service.impl;
...
@@ -2,22 +2,32 @@ package com.viettel.campaign.service.impl;
import
com.viettel.campaign.repository.CampaignExecuteRepository
;
import
com.viettel.campaign.repository.CampaignExecuteRepository
;
import
com.viettel.campaign.service.CampaignExecuteService
;
import
com.viettel.campaign.service.CampaignExecuteService
;
import
com.viettel.campaign.utils.BundleUtils
;
import
com.viettel.campaign.utils.Constants
;
import
com.viettel.campaign.utils.Constants
;
import
com.viettel.campaign.web.dto.ApParamDTO
;
import
com.viettel.campaign.web.dto.ApParamDTO
;
import
com.viettel.campaign.web.dto.ContactCustResultDTO
;
import
com.viettel.campaign.web.dto.ContactCustResultDTO
;
import
com.viettel.campaign.web.dto.ResultDTO
;
import
com.viettel.campaign.web.dto.ResultDTO
;
import
com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO
;
import
com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO
;
import
org.apache.commons.collections4.BagUtils
;
import
org.apache.poi.ss.usermodel.*
;
import
org.apache.poi.ss.util.CellRangeAddress
;
import
org.apache.poi.xssf.usermodel.XSSFWorkbook
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.text.DateFormat
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Locale
;
@Service
@Service
public
class
CampaignExecuteServiceImp
implements
CampaignExecuteService
{
public
class
CampaignExecuteServiceImp
implements
CampaignExecuteService
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
CampaignExecuteServiceImp
.
class
);
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
CampaignExecuteServiceImp
.
class
);
private
SimpleDateFormat
formatter
=
new
SimpleDateFormat
(
Constants
.
DATE_FORMAT
.
FOMART_DATE_TYPE_1
);
@Autowired
@Autowired
CampaignExecuteRepository
campaignExecuteRepository
;
CampaignExecuteRepository
campaignExecuteRepository
;
...
@@ -61,5 +71,117 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService {
...
@@ -61,5 +71,117 @@ public class CampaignExecuteServiceImp implements CampaignExecuteService {
}
}
return
resultDTO
;
return
resultDTO
;
}
}
@Override
public
XSSFWorkbook
exportInteractiveResult
(
CampaignRequestDTO
dto
)
{
Locale
locale
=
Locale
.
forLanguageTag
(
"vi"
);
List
<
ContactCustResultDTO
>
list
=
campaignExecuteRepository
.
getExcelInteractiveResult
(
dto
);
XSSFWorkbook
workbook
=
new
XSSFWorkbook
();
Sheet
sheet
;
// create font style
Font
defaultFont
=
workbook
.
createFont
();
defaultFont
.
setFontHeightInPoints
((
short
)
13
);
defaultFont
.
setFontName
(
"Times New Roman"
);
defaultFont
.
setColor
(
IndexedColors
.
BLACK
.
getIndex
());
Font
titleFont
=
workbook
.
createFont
();
titleFont
.
setFontHeightInPoints
((
short
)
18
);
titleFont
.
setFontName
(
"Times New Roman"
);
titleFont
.
setColor
(
IndexedColors
.
BLACK
.
getIndex
());
titleFont
.
setBold
(
true
);
Font
headerFont
=
workbook
.
createFont
();
headerFont
.
setFontHeightInPoints
((
short
)
13
);
headerFont
.
setFontName
(
"Times New Roman"
);
headerFont
.
setColor
(
IndexedColors
.
BLACK
.
getIndex
());
headerFont
.
setBold
(
true
);
CellStyle
styleTitle
=
workbook
.
createCellStyle
();
styleTitle
.
setFont
(
titleFont
);
styleTitle
.
setAlignment
(
HorizontalAlignment
.
CENTER
);
CellStyle
styleRowHeader
=
workbook
.
createCellStyle
();
styleRowHeader
.
setFont
(
headerFont
);
styleRowHeader
.
setAlignment
(
HorizontalAlignment
.
CENTER
);
styleRowHeader
.
setFillForegroundColor
(
IndexedColors
.
LIGHT_GREEN
.
getIndex
());
styleRowHeader
.
setFillPattern
(
FillPatternType
.
SOLID_FOREGROUND
);
styleRowHeader
.
setBorderRight
(
BorderStyle
.
THIN
);
styleRowHeader
.
setRightBorderColor
(
IndexedColors
.
BLACK
.
getIndex
());
styleRowHeader
.
setBorderBottom
(
BorderStyle
.
THIN
);
styleRowHeader
.
setBottomBorderColor
(
IndexedColors
.
BLACK
.
getIndex
());
styleRowHeader
.
setBorderLeft
(
BorderStyle
.
THIN
);
styleRowHeader
.
setLeftBorderColor
(
IndexedColors
.
BLACK
.
getIndex
());
styleRowHeader
.
setBorderTop
(
BorderStyle
.
THIN
);
styleRowHeader
.
setTopBorderColor
(
IndexedColors
.
BLACK
.
getIndex
());
CellStyle
styleRow
=
workbook
.
createCellStyle
();
styleRow
.
setFont
(
defaultFont
);
// list header
List
<
String
>
headerList
=
new
ArrayList
<>();
headerList
.
add
(
BundleUtils
.
getLangString
(
"stt"
,
locale
));
headerList
.
add
(
BundleUtils
.
getLangString
(
"campaign.execute.interactive.campaignCode"
,
locale
));
headerList
.
add
(
BundleUtils
.
getLangString
(
"campaign.execute.interactive.campaignName"
,
locale
));
headerList
.
add
(
BundleUtils
.
getLangString
(
"campaign.execute.interactive.agentId"
,
locale
));
headerList
.
add
(
BundleUtils
.
getLangString
(
"campaign.execute.interactive.phoneNumber"
,
locale
));
headerList
.
add
(
BundleUtils
.
getLangString
(
"campaign.execute.interactive.customerId"
,
locale
));
headerList
.
add
(
BundleUtils
.
getLangString
(
"campaign.execute.interactive.customerName"
,
locale
));
headerList
.
add
(
BundleUtils
.
getLangString
(
"campaign.execute.interactive.createTime"
,
locale
));
headerList
.
add
(
BundleUtils
.
getLangString
(
"campaign.execute.interactive.contactStatus"
,
locale
));
headerList
.
add
(
BundleUtils
.
getLangString
(
"campaign.execute.interactive.surveyStatus"
,
locale
));
headerList
.
add
(
BundleUtils
.
getLangString
(
"campaign.execute.interactive.status"
,
locale
));
headerList
.
add
(
BundleUtils
.
getLangString
(
"campaign.execute.interactive.recordStatus"
,
locale
));
//
String
sheetName
=
BundleUtils
.
getLangString
(
"detail"
,
locale
);
sheet
=
workbook
.
createSheet
(
sheetName
);
// Title
String
title
=
BundleUtils
.
getLangString
(
"campaign.execute.interactive.title"
,
locale
);
int
rowTitleStart
=
3
;
Row
rowTitle
=
sheet
.
createRow
(
rowTitleStart
);
rowTitle
.
setHeight
((
short
)
800
);
writeCellContent
(
rowTitle
,
styleTitle
,
3
,
title
);
sheet
.
addMergedRegion
(
new
CellRangeAddress
(
rowTitleStart
,
rowTitleStart
,
3
,
8
));
// Header
int
startRowTable
=
5
;
int
count
=
1
;
Row
rowHeader
=
sheet
.
createRow
(
startRowTable
);
for
(
int
i
=
0
;
i
<
headerList
.
size
();
i
++)
{
writeCellContent
(
rowHeader
,
styleRowHeader
,
i
,
headerList
.
get
(
i
));
}
// Content
for
(
int
i
=
0
,
rowIndex
=
1
;
i
<
list
.
size
();
i
++)
{
Row
row
=
sheet
.
createRow
(
startRowTable
+
count
);
int
col
=
0
;
writeCellContent
(
row
,
styleRow
,
col
++,
rowIndex
);
writeCellContent
(
row
,
styleRow
,
col
++,
list
.
get
(
i
).
getCampaignCode
());
writeCellContent
(
row
,
styleRow
,
col
++,
list
.
get
(
i
).
getCampaignName
());
writeCellContent
(
row
,
styleRow
,
col
++,
list
.
get
(
i
).
getAgentId
());
writeCellContent
(
row
,
styleRow
,
col
++,
list
.
get
(
i
).
getPhoneNumber
());
writeCellContent
(
row
,
styleRow
,
col
++,
list
.
get
(
i
).
getCustomerId
());
writeCellContent
(
row
,
styleRow
,
col
++,
list
.
get
(
i
).
getCustomerName
());
writeCellContent
(
row
,
styleRow
,
col
++,
formatter
.
format
(
list
.
get
(
i
).
getCreateTime
()));
writeCellContent
(
row
,
styleRow
,
col
++,
list
.
get
(
i
).
getContactStatus
());
writeCellContent
(
row
,
styleRow
,
col
++,
list
.
get
(
i
).
getSurveyStatus
());
writeCellContent
(
row
,
styleRow
,
col
++,
list
.
get
(
i
).
getStatus
());
writeCellContent
(
row
,
styleRow
,
col
++,
list
.
get
(
i
).
getRecordStatus
());
++
rowIndex
;
++
count
;
}
return
workbook
;
}
private
void
writeCellContent
(
Row
row
,
CellStyle
rowStyle
,
int
colNo
,
Object
content
)
{
Cell
cell
=
row
.
createCell
(
colNo
);
if
(
content
==
null
)
{
cell
.
setCellValue
(
""
);
}
else
{
cell
.
setCellValue
(
String
.
valueOf
(
content
));
}
cell
.
setCellStyle
(
rowStyle
);
}
//</editor-fold: hungtt>
//</editor-fold: hungtt>
}
}
src/main/java/com/viettel/campaign/utils/BundleUtils.java
0 → 100644
View file @
6da9b64d
package
com.viettel.campaign.utils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.io.UnsupportedEncodingException
;
import
java.util.Locale
;
import
java.util.ResourceBundle
;
/**
* @author hungtt
*/
public
class
BundleUtils
{
protected
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
BundleUtils
.
class
);
private
static
volatile
ResourceBundle
rsConfig
=
null
;
public
static
String
getLangString
(
String
key
,
Locale
...
locale
)
{
Locale
vi
=
new
Locale
(
"vi"
);
Locale
mlocale
=
vi
;
try
{
if
(
locale
!=
null
)
{
if
(
locale
.
length
==
0
)
{
rsConfig
=
ResourceBundle
.
getBundle
(
Constants
.
LANGUAGE
.
LANGUAGE
,
mlocale
);
}
else
{
rsConfig
=
ResourceBundle
.
getBundle
(
Constants
.
LANGUAGE
.
LANGUAGE
,
locale
[
0
]);
}
}
else
{
rsConfig
=
ResourceBundle
.
getBundle
(
Constants
.
LANGUAGE
.
LANGUAGE
,
mlocale
);
}
return
new
String
(
rsConfig
.
getString
(
key
).
getBytes
(
"ISO-8859-1"
),
"UTF-8"
);
}
catch
(
UnsupportedEncodingException
e
)
{
logger
.
error
(
e
.
getMessage
(),
e
);
return
key
;
}
}
}
src/main/java/com/viettel/campaign/utils/Constants.java
View file @
6da9b64d
...
@@ -35,4 +35,12 @@ public class Constants {
...
@@ -35,4 +35,12 @@ public class Constants {
public
interface
SQL_MODULES
{
public
interface
SQL_MODULES
{
String
MODULE_EXECUTE
=
"campaign-execute"
;
String
MODULE_EXECUTE
=
"campaign-execute"
;
}
}
public
interface
LANGUAGE
{
String
LANGUAGE
=
"i18n/language"
;
}
public
interface
DATE_FORMAT
{
String
FOMART_DATE_TYPE_1
=
"DD/MM/YYYY"
;
}
}
}
src/main/java/com/viettel/campaign/web/dto/BaseDTO.java
View file @
6da9b64d
...
@@ -13,4 +13,5 @@ public class BaseDTO implements Serializable {
...
@@ -13,4 +13,5 @@ public class BaseDTO implements Serializable {
protected
int
pageSize
;
protected
int
pageSize
;
protected
int
page
;
protected
int
page
;
protected
String
sort
;
protected
String
sort
;
protected
String
langKey
;
}
}
src/main/java/com/viettel/campaign/web/rest/controller/CampaignController.java
View file @
6da9b64d
...
@@ -5,13 +5,20 @@ import com.viettel.campaign.service.CampaignService;
...
@@ -5,13 +5,20 @@ import com.viettel.campaign.service.CampaignService;
import
com.viettel.campaign.web.dto.CampaignDTO
;
import
com.viettel.campaign.web.dto.CampaignDTO
;
import
com.viettel.campaign.web.dto.ResultDTO
;
import
com.viettel.campaign.web.dto.ResultDTO
;
import
com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO
;
import
com.viettel.campaign.web.dto.request_dto.CampaignRequestDTO
;
import
org.apache.poi.xssf.usermodel.XSSFWorkbook
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.MediaType
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.ByteArrayOutputStream
;
import
java.io.IOException
;
import
java.io.OutputStream
;
import
java.util.Map
;
import
java.util.Map
;
@RestController
@RestController
...
@@ -59,11 +66,43 @@ public class CampaignController {
...
@@ -59,11 +66,43 @@ public class CampaignController {
@PostMapping
(
"/searchInteractiveResult"
)
@PostMapping
(
"/searchInteractiveResult"
)
@ResponseBody
@ResponseBody
public
ResponseEntity
<
ResultDTO
>
searchInteractiveResult
(
@RequestBody
CampaignRequestDTO
dto
)
{
public
ResponseEntity
<
ResultDTO
>
searchInteractiveResult
(
@RequestBody
CampaignRequestDTO
dto
)
throws
Exception
{
ResultDTO
result
=
campaignExecuteService
.
searchInteractiveResult
(
dto
);
ResultDTO
result
=
campaignExecuteService
.
searchInteractiveResult
(
dto
);
return
new
ResponseEntity
<>(
result
,
HttpStatus
.
OK
);
return
new
ResponseEntity
<>(
result
,
HttpStatus
.
OK
);
}
}
@PostMapping
(
"/exportInteractiveResult"
)
@ResponseBody
public
ResponseEntity
<?>
exportInteractiveResult
(
HttpServletResponse
response
,
@RequestBody
CampaignRequestDTO
dto
)
{
XSSFWorkbook
workbook
=
null
;
byte
[]
contentReturn
=
null
;
try
{
String
fileName
=
"report_campaign_exec_interactive_result.xlsx"
;
response
.
setHeader
(
"Content-Disposition"
,
"attachment; filename="
+
fileName
);
OutputStream
outputStream
;
workbook
=
campaignExecuteService
.
exportInteractiveResult
(
dto
);
outputStream
=
response
.
getOutputStream
();
workbook
.
write
(
outputStream
);
ByteArrayOutputStream
byteArrayOutputStream
=
new
ByteArrayOutputStream
();
workbook
.
write
(
byteArrayOutputStream
);
contentReturn
=
byteArrayOutputStream
.
toByteArray
();
}
catch
(
Exception
e
)
{
logger
.
error
(
e
.
getMessage
(),
e
);
return
new
ResponseEntity
<
byte
[]>(
null
,
null
,
HttpStatus
.
BAD_REQUEST
);
}
finally
{
if
(
workbook
!=
null
)
{
try
{
workbook
.
close
();
}
catch
(
IOException
e
)
{
logger
.
error
(
e
.
getMessage
(),
e
);
}
}
}
HttpHeaders
headers
=
new
HttpHeaders
();
headers
.
setContentType
(
MediaType
.
parseMediaType
(
"application/vnd.ms-excel"
));
return
new
ResponseEntity
<
byte
[]>(
contentReturn
,
headers
,
HttpStatus
.
OK
);
}
@PostMapping
(
"/changeCampaignStatus"
)
@PostMapping
(
"/changeCampaignStatus"
)
public
ResultDTO
changeCampaignStatus
(
@RequestBody
CampaignDTO
dto
)
{
public
ResultDTO
changeCampaignStatus
(
@RequestBody
CampaignDTO
dto
)
{
return
campaignService
.
changeCampaignStatus
(
dto
);
return
campaignService
.
changeCampaignStatus
(
dto
);
...
...
src/main/resources/i18n/language.properties
0 → 100644
View file @
6da9b64d
src/main/resources/i18n/language_en.properties
0 → 100644
View file @
6da9b64d
#Common
detail
=
Chi ti?t
stt
=
STT
#Campaign Execute Interactive
campaign.execute.interactive.title
=
Chi ti?t k?t qu? t??ng tc
campaign.execute.interactive.campaignCode
=
M chi?n d?ch
campaign.execute.interactive.campaignName
=
Tn chi?n d?ch
campaign.execute.interactive.agentId
=
M t? v?n vin
campaign.execute.interactive.phoneNumber
=
S? ?i?n tho?i
campaign.execute.interactive.customerId
=
M khch hng
campaign.execute.interactive.customerName
=
Tn khch hng
campaign.execute.interactive.callTime
=
Th?i gian lin l?c
campaign.execute.interactive.contactStatus
=
Tr?ng thi k?t n?i
campaign.execute.interactive.surveyStatus
=
Tr?ng thi kh?o st
campaign.execute.interactive.status
=
Tr?ng thi chi?n d?ch
campaign.execute.interactive.recordStatus
=
Tr?ng thi b?n ghi
src/main/resources/i18n/language_vi.properties
0 → 100644
View file @
6da9b64d
#Common
detail
=
Chi tiết
stt
=
STT
#Campaign Execute Interactive
campaign.execute.interactive.title
=
Chi tiết kết quả tương tác
campaign.execute.interactive.campaignCode
=
Mã chiến dịch
campaign.execute.interactive.campaignName
=
Tên chiến dịch
campaign.execute.interactive.agentId
=
Mã tư vấn viên
campaign.execute.interactive.phoneNumber
=
Số điện thoại
campaign.execute.interactive.customerId
=
Mã khách hàng
campaign.execute.interactive.customerName
=
Tên khách hàng
campaign.execute.interactive.createTime
=
Thời gian liên lạc
campaign.execute.interactive.contactStatus
=
Trạng thái kết nối
campaign.execute.interactive.surveyStatus
=
Trạng thái khảo sát
campaign.execute.interactive.status
=
Trạng thái chiến dịch
campaign.execute.interactive.recordStatus
=
Trạng thái bản ghi
src/main/resources/sql/campaign-execute/get-execute-interactive.sql
View file @
6da9b64d
...
@@ -15,7 +15,8 @@ from contact_cust_result a
...
@@ -15,7 +15,8 @@ from contact_cust_result a
left
join
campaign_complete_code
e
on
a
.
contact_status
=
e
.
complete_value
left
join
campaign_complete_code
e
on
a
.
contact_status
=
e
.
complete_value
left
join
campaign_complete_code
f
on
a
.
call_status
=
e
.
complete_value
left
join
campaign_complete_code
f
on
a
.
call_status
=
e
.
complete_value
left
join
campaign
g
on
a
.
campaign_id
=
b
.
campaign_id
left
join
campaign
g
on
a
.
campaign_id
=
b
.
campaign_id
where
a
.
campaign_id
in
(:
p_list_campaign_id
)
where
a
.
status
<>
0
and
a
.
campaign_id
in
(:
p_list_campaign_id
)
and
a
.
customer_id
like
'%'
||
:
p_customer_id
||
'%'
and
a
.
customer_id
like
'%'
||
:
p_customer_id
||
'%'
and
a
.
create_time
>=
to_date
(:
p_date_from
,
'DD/MM/YYYY'
)
and
a
.
create_time
>=
to_date
(:
p_date_from
,
'DD/MM/YYYY'
)
and
a
.
create_time
<=
to_date
(:
p_date_to
,
'DD/MM/YYYY'
)
and
a
.
create_time
<=
to_date
(:
p_date_to
,
'DD/MM/YYYY'
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment