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
8d9584f9
Commit
8d9584f9
authored
Aug 19, 2019
by
Phạm Duy Phi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
phipd commit
parent
897c8766
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
234 additions
and
322 deletions
+234
-322
src/main/java/com/viettel/campaign/mapper/CampaignAgentsMapper.java
...ava/com/viettel/campaign/mapper/CampaignAgentsMapper.java
+0
-32
src/main/java/com/viettel/campaign/repository/ccms_full/CampaignAgentsRepository.java
...mpaign/repository/ccms_full/CampaignAgentsRepository.java
+0
-7
src/main/java/com/viettel/campaign/repository/ccms_full/CampaignRepositoryCustom.java
...mpaign/repository/ccms_full/CampaignRepositoryCustom.java
+0
-5
src/main/java/com/viettel/campaign/repository/ccms_full/impl/CampaignExecuteRepositoryImp.java
...pository/ccms_full/impl/CampaignExecuteRepositoryImp.java
+207
-49
src/main/java/com/viettel/campaign/repository/ccms_full/impl/CampaignRepositoryImpl.java
...ign/repository/ccms_full/impl/CampaignRepositoryImpl.java
+3
-58
src/main/java/com/viettel/campaign/service/CampaignService.java
...in/java/com/viettel/campaign/service/CampaignService.java
+0
-6
src/main/java/com/viettel/campaign/service/impl/CampaignServiceImpl.java
...om/viettel/campaign/service/impl/CampaignServiceImpl.java
+0
-14
src/main/java/com/viettel/campaign/web/dto/CampaignAgentsDTO.java
.../java/com/viettel/campaign/web/dto/CampaignAgentsDTO.java
+0
-16
src/main/java/com/viettel/campaign/web/dto/CustomerCustomDTO.java
.../java/com/viettel/campaign/web/dto/CustomerCustomDTO.java
+0
-4
src/main/java/com/viettel/campaign/web/dto/request_dto/CampaignRequestDTO.java
...ttel/campaign/web/dto/request_dto/CampaignRequestDTO.java
+0
-4
src/main/java/com/viettel/campaign/web/rest/ApParamController.java
...java/com/viettel/campaign/web/rest/ApParamController.java
+0
-4
src/main/java/com/viettel/campaign/web/rest/CampaignController.java
...ava/com/viettel/campaign/web/rest/CampaignController.java
+0
-14
src/main/resources/sql/campaign-execute/get-execute-interactive.sql
...esources/sql/campaign-execute/get-execute-interactive.sql
+24
-65
src/main/resources/sql/campaign-mng/get-list-customer-reallocation.sql
...urces/sql/campaign-mng/get-list-customer-reallocation.sql
+0
-44
No files found.
src/main/java/com/viettel/campaign/mapper/CampaignAgentsMapper.java
deleted
100644 → 0
View file @
897c8766
package
com.viettel.campaign.mapper
;
import
com.viettel.campaign.model.ccms_full.CampaignAgent
;
import
com.viettel.campaign.web.dto.CampaignAgentsDTO
;
public
class
CampaignAgentsMapper
extends
BaseMapper
<
CampaignAgent
,
CampaignAgentsDTO
>
{
@Override
public
CampaignAgentsDTO
toDtoBean
(
CampaignAgent
campaignAgent
)
{
CampaignAgentsDTO
obj
=
new
CampaignAgentsDTO
();
obj
.
setAgentId
(
campaignAgent
.
getAgentId
());
obj
.
setCampaignAgentId
(
campaignAgent
.
getCampaignAgentId
());
obj
.
setCampaignId
(
campaignAgent
.
getCampaignId
());
obj
.
setCompanySiteId
(
campaignAgent
.
getCompanySiteId
());
obj
.
setFilterType
(
campaignAgent
.
getFilterType
());
obj
.
setReSchedule
(
campaignAgent
.
getReSchedule
());
obj
.
setStatus
(
campaignAgent
.
getStatus
());
return
obj
;
}
@Override
public
CampaignAgent
toPersistenceBean
(
CampaignAgentsDTO
dtoBean
)
{
CampaignAgent
obj
=
new
CampaignAgent
();
obj
.
setAgentId
(
dtoBean
.
getAgentId
());
obj
.
setCampaignAgentId
(
dtoBean
.
getCampaignAgentId
());
obj
.
setCampaignId
(
dtoBean
.
getCampaignId
());
obj
.
setCompanySiteId
(
dtoBean
.
getCompanySiteId
());
obj
.
setFilterType
(
dtoBean
.
getFilterType
());
obj
.
setReSchedule
(
dtoBean
.
getReSchedule
());
obj
.
setStatus
(
dtoBean
.
getStatus
());
return
obj
;
}
}
src/main/java/com/viettel/campaign/repository/ccms_full/CampaignAgentsRepository.java
deleted
100644 → 0
View file @
897c8766
package
com.viettel.campaign.repository.ccms_full
;
import
com.viettel.campaign.model.ccms_full.CampaignAgent
;
import
org.springframework.data.jpa.repository.JpaRepository
;
public
interface
CampaignAgentsRepository
extends
JpaRepository
<
CampaignAgent
,
Long
>
{
}
src/main/java/com/viettel/campaign/repository/ccms_full/CampaignRepositoryCustom.java
View file @
8d9584f9
...
@@ -17,9 +17,4 @@ public interface CampaignRepositoryCustom {
...
@@ -17,9 +17,4 @@ public interface CampaignRepositoryCustom {
String
getMaxCampaignIndex
();
String
getMaxCampaignIndex
();
ResultDTO
checkAllowStatusToPrepare
(
Long
campaignId
);
ResultDTO
checkAllowStatusToPrepare
(
Long
campaignId
);
//hungtt
ResultDTO
findCustomerListReallocation
(
CampaignRequestDTO
dto
);
//hungtt
ResultDTO
reallocationCustomer
(
CampaignRequestDTO
dto
);
}
}
src/main/java/com/viettel/campaign/repository/ccms_full/impl/CampaignExecuteRepositoryImp.java
View file @
8d9584f9
...
@@ -6,16 +6,27 @@ import com.viettel.campaign.repository.ccms_full.TimeRangeDialModeRepository;
...
@@ -6,16 +6,27 @@ import com.viettel.campaign.repository.ccms_full.TimeRangeDialModeRepository;
import
com.viettel.campaign.repository.ccms_full.TimeZoneDialModeRepository
;
import
com.viettel.campaign.repository.ccms_full.TimeZoneDialModeRepository
;
import
com.viettel.campaign.utils.Constants
;
import
com.viettel.campaign.utils.Constants
;
import
com.viettel.campaign.utils.DataUtil
;
import
com.viettel.campaign.utils.DataUtil
;
import
com.viettel.campaign.utils.HibernateUtil
;
import
com.viettel.campaign.utils.SQLBuilder
;
import
com.viettel.campaign.utils.SQLBuilder
;
import
com.viettel.campaign.web.dto.ApParamDTO
;
import
com.viettel.campaign.web.dto.ApParamDTO
;
import
com.viettel.campaign.web.dto.CampaignDTO
;
import
com.viettel.campaign.web.dto.CampaignDTO
;
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.hibernate.SQLQuery
;
import
org.hibernate.Session
;
import
org.hibernate.SessionFactory
;
import
org.hibernate.transform.Transformers
;
import
org.hibernate.type.DateType
;
import
org.hibernate.type.LongType
;
import
org.hibernate.type.ShortType
;
import
org.hibernate.type.StringType
;
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.beans.factory.annotation.Qualifier
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.PageImpl
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.jdbc.core.BeanPropertyRowMapper
;
import
org.springframework.jdbc.core.BeanPropertyRowMapper
;
import
org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate
;
import
org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate
;
...
@@ -33,7 +44,6 @@ import java.util.concurrent.TimeUnit;
...
@@ -33,7 +44,6 @@ import java.util.concurrent.TimeUnit;
public
class
CampaignExecuteRepositoryImp
implements
CampaignExecuteRepository
{
public
class
CampaignExecuteRepositoryImp
implements
CampaignExecuteRepository
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
CampaignExecuteRepositoryImp
.
class
);
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
CampaignExecuteRepositoryImp
.
class
);
private
static
final
String
CONNECT_STATUS_TYPE_RE
=
"3"
;
@Autowired
@Autowired
@Qualifier
(
DataSourceQualify
.
NAMED_JDBC_PARAMETER_TEMPLATE_CCMS_FULL
)
@Qualifier
(
DataSourceQualify
.
NAMED_JDBC_PARAMETER_TEMPLATE_CCMS_FULL
)
...
@@ -54,17 +64,10 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
...
@@ -54,17 +64,10 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
List
<
ApParamDTO
>
list
=
new
ArrayList
<>();
List
<
ApParamDTO
>
list
=
new
ArrayList
<>();
Map
<
String
,
String
>
params
=
new
HashMap
<>();
Map
<
String
,
String
>
params
=
new
HashMap
<>();
String
sql
=
SQLBuilder
.
getSqlQueryById
(
Constants
.
SQL_MODULES
.
MODULE_EXECUTE
,
"get-combo-status"
);
String
sql
=
SQLBuilder
.
getSqlQueryById
(
Constants
.
SQL_MODULES
.
MODULE_EXECUTE
,
"get-combo-status"
);
StringBuilder
stringBuilder
=
new
StringBuilder
();
stringBuilder
.
append
(
sql
);
try
{
try
{
params
.
put
(
"p_company_site_id"
,
companySiteId
);
params
.
put
(
"p_company_site_id"
,
companySiteId
);
if
(
CONNECT_STATUS_TYPE_RE
.
equals
(
completeType
))
{
params
.
put
(
"p_complete_type"
,
completeType
);
params
.
put
(
"p_complete_type"
,
"1"
);
list
=
namedParameterJdbcTemplate
.
query
(
sql
,
params
,
BeanPropertyRowMapper
.
newInstance
(
ApParamDTO
.
class
));
stringBuilder
.
append
(
" and COMPLETE_VALUE <> 1"
);
}
else
{
params
.
put
(
"p_complete_type"
,
completeType
);
}
list
=
namedParameterJdbcTemplate
.
query
(
stringBuilder
.
toString
(),
params
,
BeanPropertyRowMapper
.
newInstance
(
ApParamDTO
.
class
));
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
logger
.
error
(
e
.
getMessage
(),
e
);
logger
.
error
(
e
.
getMessage
(),
e
);
}
}
...
@@ -89,35 +92,124 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
...
@@ -89,35 +92,124 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
public
ResultDTO
getInteractiveResult
(
CampaignRequestDTO
dto
)
{
public
ResultDTO
getInteractiveResult
(
CampaignRequestDTO
dto
)
{
ResultDTO
resultDTO
=
new
ResultDTO
();
ResultDTO
resultDTO
=
new
ResultDTO
();
List
<
ContactCustResultDTO
>
list
=
new
ArrayList
<>();
List
<
ContactCustResultDTO
>
list
=
new
ArrayList
<>();
Map
<
String
,
String
>
params
=
new
HashMap
<>();
SessionFactory
sessionFactory
=
HibernateUtil
.
getSessionFactory
();
Session
session
=
sessionFactory
.
openSession
();
session
.
beginTransaction
();
StringBuilder
sqlBuilder
=
new
StringBuilder
();
try
{
try
{
String
sql
=
SQLBuilder
.
getSqlQueryById
(
Constants
.
SQL_MODULES
.
MODULE_EXECUTE
,
"get-execute-interactive"
);
String
sql
=
SQLBuilder
.
getSqlQueryById
(
Constants
.
SQL_MODULES
.
MODULE_EXECUTE
,
"get-execute-interactive"
);
params
.
put
(
"p_company_site_id"
,
dto
.
getCompanySiteId
());
sqlBuilder
.
append
(
sql
);
params
.
put
(
"p_customer_id"
,
dto
.
getCustomerId
());
params
.
put
(
"p_date_from"
,
dto
.
getFromDate
());
sqlBuilder
.
append
(
" and b.campaign_type in (:p_list_compaign_type)"
);
params
.
put
(
"p_date_to"
,
dto
.
getToDate
());
sqlBuilder
.
append
(
" and to_char(a.customer_id) like :p_customer_id"
);
params
.
put
(
"p_list_compaign_type"
,
dto
.
getCampaignType
());
sqlBuilder
.
append
(
" and to_char(a.contact_status) in (:p_list_contact_status)"
);
params
.
put
(
"p_list_contact_status"
,
dto
.
getContactStatus
());
sqlBuilder
.
append
(
" and to_char(a.call_status) in (:p_list_survey_status)"
);
params
.
put
(
"p_list_survey_status"
,
dto
.
getSurveyStatus
());
sqlBuilder
.
append
(
" and to_char(a.status) in (:p_list_record_status)"
);
params
.
put
(
"p_list_record_status"
,
dto
.
getRecordStatus
());
params
.
put
(
"p_call_time_from"
,
dto
.
getCallTimeFrom
());
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getPhoneNumber
()))
{
params
.
put
(
"p_list_campaign_id"
,
dto
.
getCallTimeTo
());
sqlBuilder
.
append
(
" and a.phone_number like :p_phone_number"
);
params
.
put
(
"p_phone_number"
,
dto
.
getPhoneNumber
());
}
params
.
put
(
"p_campaign_name"
,
dto
.
getCampaignName
().
toUpperCase
());
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getCampaignId
()))
{
params
.
put
(
"p_user_name"
,
dto
.
getAgentId
().
toUpperCase
());
sqlBuilder
.
append
(
" and b.campaign_code in (:p_list_campaign_id) "
);
params
.
put
(
"p_page_number"
,
dto
.
getPage
().
toString
());
}
params
.
put
(
"p_page_size"
,
dto
.
getPageSize
().
toString
());
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getCampaignName
()))
{
sqlBuilder
.
append
(
" and upper(b.campaign_name) like :p_campaign_name"
);
list
=
namedParameterJdbcTemplate
.
query
(
sql
,
params
,
BeanPropertyRowMapper
.
newInstance
(
ContactCustResultDTO
.
class
));
}
resultDTO
.
setListData
(
list
);
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getAgentId
()))
{
resultDTO
.
setTotalRow
(
list
.
size
());
sqlBuilder
.
append
(
" and upper(c.user_name) like :p_user_name"
);
}
SQLQuery
query
=
session
.
createSQLQuery
(
sqlBuilder
.
toString
());
query
.
setParameter
(
"p_company_site_id"
,
dto
.
getCompanySiteId
());
query
.
setParameter
(
"p_customer_id"
,
"%"
+
dto
.
getCustomerId
()
.
replace
(
"\\"
,
"\\\\"
)
.
replaceAll
(
"%"
,
"\\%"
)
.
replaceAll
(
"_"
,
"\\_"
)
+
"%"
);
query
.
setParameter
(
"p_date_from"
,
dto
.
getFromDate
());
query
.
setParameter
(
"p_date_to"
,
dto
.
getToDate
());
query
.
setParameterList
(
"p_list_compaign_type"
,
dto
.
getCampaignType
().
split
(
","
));
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_call_time_from"
,
dto
.
getCallTimeFrom
());
query
.
setParameter
(
"p_call_time_to"
,
dto
.
getCallTimeTo
());
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getCampaignId
()))
{
query
.
setParameterList
(
"p_list_campaign_id"
,
dto
.
getCampaignId
().
split
(
","
));
}
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getPhoneNumber
()))
{
query
.
setParameter
(
"p_phone_number"
,
"%"
+
dto
.
getPhoneNumber
()
.
replace
(
"\\"
,
"\\\\"
)
.
replaceAll
(
"%"
,
"\\%"
)
.
replaceAll
(
"_"
,
"\\_"
)
+
"%"
);
}
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getCampaignName
()))
{
query
.
setParameter
(
"p_campaign_name"
,
"%"
+
dto
.
getCampaignName
().
toUpperCase
()
.
replace
(
"\\"
,
"\\\\"
)
.
replaceAll
(
"%"
,
"\\%"
)
.
replaceAll
(
"_"
,
"\\_"
)
+
"%"
);
}
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getAgentId
()))
{
query
.
setParameter
(
"p_user_name"
,
"%"
+
dto
.
getAgentId
().
toUpperCase
()
.
replace
(
"\\"
,
"\\\\"
)
.
replaceAll
(
"%"
,
"\\%"
)
.
replaceAll
(
"_"
,
"\\_"
)
+
"%"
);
}
query
.
addScalar
(
"campaignCode"
,
new
StringType
());
query
.
addScalar
(
"campaignName"
,
new
StringType
());
query
.
addScalar
(
"userName"
,
new
StringType
());
query
.
addScalar
(
"phoneNumber"
,
new
StringType
());
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
.
addScalar
(
"callTime"
,
new
LongType
());
query
.
setResultTransformer
(
Transformers
.
aliasToBean
(
ContactCustResultDTO
.
class
));
int
count
=
0
;
list
=
query
.
list
();
if
(
list
.
size
()
>
0
)
{
count
=
list
.
size
();
}
Pageable
pageable
=
SQLBuilder
.
buildPageable
(
dto
);
if
(
pageable
!=
null
)
{
query
.
setFirstResult
(
pageable
.
getPageNumber
()
*
pageable
.
getPageSize
());
query
.
setMaxResults
(
pageable
.
getPageSize
());
}
List
<
ContactCustResultDTO
>
data
=
query
.
list
();
for
(
ContactCustResultDTO
contactCustResultDTO
:
data
)
{
if
(!
"AGENT"
.
equals
(
dto
.
getRoleUser
()))
{
contactCustResultDTO
.
setEnableEdit
(
true
);
}
else
{
if
(
contactCustResultDTO
.
getRecordStatus
()
==
2
)
{
contactCustResultDTO
.
setEnableEdit
(
true
);
}
else
if
(
contactCustResultDTO
.
getRecordStatus
()
==
1
&&
isLower24Hour
(
contactCustResultDTO
.
getCreateTime
()))
{
contactCustResultDTO
.
setEnableEdit
(
true
);
}
else
{
contactCustResultDTO
.
setEnableEdit
(
false
);
}
}
}
Page
<
ContactCustResultDTO
>
dataPage
=
new
PageImpl
<>(
data
,
pageable
,
count
);
resultDTO
.
setData
(
dataPage
);
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
SUCCESS
);
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
SUCCESS
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
SUCCESS
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
SUCCESS
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
logger
.
error
(
e
.
getMessage
(),
e
);
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
ERROR
);
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
ERROR
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
ERROR
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
ERROR
);
logger
.
error
(
e
.
getMessage
(),
e
);
}
finally
{
}
finally
{
session
.
close
();
return
resultDTO
;
return
resultDTO
;
}
}
}
}
...
@@ -125,29 +217,95 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
...
@@ -125,29 +217,95 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
@Override
@Override
public
List
<
ContactCustResultDTO
>
getExcelInteractiveResult
(
CampaignRequestDTO
dto
)
{
public
List
<
ContactCustResultDTO
>
getExcelInteractiveResult
(
CampaignRequestDTO
dto
)
{
List
<
ContactCustResultDTO
>
list
=
new
ArrayList
<>();
List
<
ContactCustResultDTO
>
list
=
new
ArrayList
<>();
Map
<
String
,
String
>
params
=
new
HashMap
<>();
SessionFactory
sessionFactory
=
HibernateUtil
.
getSessionFactory
();
Session
session
=
sessionFactory
.
openSession
();
session
.
beginTransaction
();
StringBuilder
sqlBuilder
=
new
StringBuilder
();
try
{
try
{
String
sql
=
SQLBuilder
.
getSqlQueryById
(
Constants
.
SQL_MODULES
.
MODULE_EXECUTE
,
"get-execute-interactive"
);
String
sql
=
SQLBuilder
.
getSqlQueryById
(
Constants
.
SQL_MODULES
.
MODULE_EXECUTE
,
"get-execute-interactive"
);
params
.
put
(
"p_company_site_id"
,
dto
.
getCompanySiteId
());
sqlBuilder
.
append
(
sql
);
params
.
put
(
"p_customer_id"
,
dto
.
getCustomerId
());
params
.
put
(
"p_date_from"
,
dto
.
getFromDate
());
sqlBuilder
.
append
(
" and b.campaign_type in (:p_list_compaign_type)"
);
params
.
put
(
"p_date_to"
,
dto
.
getToDate
());
sqlBuilder
.
append
(
" and to_char(a.customer_id) like :p_customer_id"
);
params
.
put
(
"p_list_compaign_type"
,
dto
.
getCampaignType
());
sqlBuilder
.
append
(
" and to_char(a.contact_status) in (:p_list_contact_status)"
);
params
.
put
(
"p_list_contact_status"
,
dto
.
getContactStatus
());
sqlBuilder
.
append
(
" and to_char(a.call_status) in (:p_list_survey_status)"
);
params
.
put
(
"p_list_survey_status"
,
dto
.
getSurveyStatus
());
sqlBuilder
.
append
(
" and to_char(a.status) in (:p_list_record_status)"
);
params
.
put
(
"p_list_record_status"
,
dto
.
getRecordStatus
());
params
.
put
(
"p_call_time_from"
,
dto
.
getCallTimeFrom
());
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getPhoneNumber
()))
{
params
.
put
(
"p_list_campaign_id"
,
dto
.
getCallTimeTo
());
sqlBuilder
.
append
(
" and a.phone_number like :p_phone_number"
);
params
.
put
(
"p_phone_number"
,
dto
.
getPhoneNumber
());
}
params
.
put
(
"p_campaign_name"
,
dto
.
getCampaignName
().
toUpperCase
());
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getCampaignId
()))
{
params
.
put
(
"p_user_name"
,
dto
.
getAgentId
().
toUpperCase
());
sqlBuilder
.
append
(
" and b.campaign_code in (:p_list_campaign_id) "
);
params
.
put
(
"p_page_number"
,
dto
.
getPage
().
toString
());
}
params
.
put
(
"p_page_size"
,
"0"
);
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getCampaignName
()))
{
sqlBuilder
.
append
(
" and upper(b.campaign_name) like :p_campaign_name"
);
list
=
namedParameterJdbcTemplate
.
query
(
sql
,
params
,
BeanPropertyRowMapper
.
newInstance
(
ContactCustResultDTO
.
class
));
}
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getAgentId
()))
{
sqlBuilder
.
append
(
" and upper(c.user_name) like :p_user_name"
);
}
SQLQuery
query
=
session
.
createSQLQuery
(
sqlBuilder
.
toString
());
query
.
setParameter
(
"p_company_site_id"
,
dto
.
getCompanySiteId
());
query
.
setParameter
(
"p_customer_id"
,
"%"
+
dto
.
getCustomerId
()
.
replace
(
"\\"
,
"\\\\"
)
.
replaceAll
(
"%"
,
"\\%"
)
.
replaceAll
(
"_"
,
"\\_"
)
+
"%"
);
query
.
setParameter
(
"p_date_from"
,
dto
.
getFromDate
());
query
.
setParameter
(
"p_date_to"
,
dto
.
getToDate
());
query
.
setParameterList
(
"p_list_compaign_type"
,
dto
.
getCampaignType
().
split
(
","
));
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_call_time_from"
,
dto
.
getCallTimeFrom
());
query
.
setParameter
(
"p_call_time_to"
,
dto
.
getCallTimeTo
());
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getCampaignId
()))
{
query
.
setParameterList
(
"p_list_campaign_id"
,
dto
.
getCampaignId
().
split
(
","
));
}
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getPhoneNumber
()))
{
query
.
setParameter
(
"p_phone_number"
,
"%"
+
dto
.
getPhoneNumber
()
.
replace
(
"\\"
,
"\\\\"
)
.
replaceAll
(
"%"
,
"\\%"
)
.
replaceAll
(
"_"
,
"\\_"
)
+
"%"
);
}
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getCampaignName
()))
{
query
.
setParameter
(
"p_campaign_name"
,
"%"
+
dto
.
getCampaignName
().
toUpperCase
()
.
replace
(
"\\"
,
"\\\\"
)
.
replaceAll
(
"%"
,
"\\%"
)
.
replaceAll
(
"_"
,
"\\_"
)
+
"%"
);
}
if
(!
DataUtil
.
isNullOrEmpty
(
dto
.
getAgentId
()))
{
query
.
setParameter
(
"p_user_name"
,
"%"
+
dto
.
getAgentId
().
toUpperCase
()
.
replace
(
"\\"
,
"\\\\"
)
.
replaceAll
(
"%"
,
"\\%"
)
.
replaceAll
(
"_"
,
"\\_"
)
+
"%"
);
}
query
.
addScalar
(
"campaignCode"
,
new
StringType
());
query
.
addScalar
(
"campaignName"
,
new
StringType
());
query
.
addScalar
(
"userName"
,
new
StringType
());
query
.
addScalar
(
"phoneNumber"
,
new
StringType
());
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
.
addScalar
(
"callTime"
,
new
LongType
());
query
.
setResultTransformer
(
Transformers
.
aliasToBean
(
ContactCustResultDTO
.
class
));
list
=
query
.
list
();
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
logger
.
error
(
e
.
getMessage
(),
e
);
logger
.
error
(
e
.
getMessage
(),
e
);
}
finally
{
}
finally
{
session
.
close
();
return
list
;
return
list
;
}
}
}
}
...
...
src/main/java/com/viettel/campaign/repository/ccms_full/impl/CampaignRepositoryImpl.java
View file @
8d9584f9
package
com.viettel.campaign.repository.ccms_full.impl
;
package
com.viettel.campaign.repository.ccms_full.impl
;
import
com.viettel.campaign.config.DataSourceQualify
;
import
com.viettel.campaign.config.DataSourceQualify
;
import
com.viettel.campaign.model.ccms_full.CampaignCustomer
;
import
com.viettel.campaign.repository.ccms_full.CampaignRepositoryCustom
;
import
com.viettel.campaign.repository.ccms_full.CampaignRepositoryCustom
;
import
com.viettel.campaign.utils.Constants
;
import
com.viettel.campaign.utils.Constants
;
import
com.viettel.campaign.utils.DataUtil
;
import
com.viettel.campaign.utils.DataUtil
;
import
com.viettel.campaign.utils.HibernateUtil
;
import
com.viettel.campaign.utils.HibernateUtil
;
import
com.viettel.campaign.utils.SQLBuilder
;
import
com.viettel.campaign.utils.SQLBuilder
;
import
com.viettel.campaign.web.dto.CampaignDTO
;
import
com.viettel.campaign.web.dto.CampaignDTO
;
import
com.viettel.campaign.web.dto.CustomerCustomDTO
;
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.logging.log4j.LogManager
;
import
org.apache.logging.log4j.LogManager
;
...
@@ -19,18 +17,16 @@ import org.hibernate.SessionFactory;
...
@@ -19,18 +17,16 @@ import org.hibernate.SessionFactory;
import
org.hibernate.transform.Transformers
;
import
org.hibernate.transform.Transformers
;
import
org.hibernate.type.*
;
import
org.hibernate.type.*
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.data.domain.*
;
import
org.springframework.data.domain.*
;
import
org.springframework.jdbc.core.BeanPropertyRowMapper
;
import
org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.persistence.EntityManager
;
import
javax.persistence.EntityManager
;
import
javax.persistence.PersistenceContext
;
import
javax.persistence.PersistenceContext
;
import
javax.persistence.Query
;
import
javax.persistence.Query
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.*
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
@Repository
@Repository
public
class
CampaignRepositoryImpl
implements
CampaignRepositoryCustom
{
public
class
CampaignRepositoryImpl
implements
CampaignRepositoryCustom
{
...
@@ -41,10 +37,6 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
...
@@ -41,10 +37,6 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
@PersistenceContext
(
unitName
=
DataSourceQualify
.
JPA_UNIT_NAME_CCMS_FULL
)
@PersistenceContext
(
unitName
=
DataSourceQualify
.
JPA_UNIT_NAME_CCMS_FULL
)
EntityManager
entityManager
;
EntityManager
entityManager
;
@Autowired
@Qualifier
(
DataSourceQualify
.
NAMED_JDBC_PARAMETER_TEMPLATE_CCMS_FULL
)
NamedParameterJdbcTemplate
namedParameterJdbcTemplate
;
@Override
@Override
public
ResultDTO
search
(
CampaignRequestDTO
requestDto
)
{
public
ResultDTO
search
(
CampaignRequestDTO
requestDto
)
{
logger
.
info
(
"Start search campaign::"
);
logger
.
info
(
"Start search campaign::"
);
...
@@ -330,51 +322,4 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
...
@@ -330,51 +322,4 @@ public class CampaignRepositoryImpl implements CampaignRepositoryCustom {
return
result
;
return
result
;
}
}
@Override
@Transactional
(
DataSourceQualify
.
CCMS_FULL
)
public
ResultDTO
findCustomerListReallocation
(
CampaignRequestDTO
dto
)
{
ResultDTO
resultDTO
=
new
ResultDTO
();
List
<
CustomerCustomDTO
>
list
=
new
ArrayList
<>();
Map
<
String
,
String
>
params
=
new
HashMap
<>();
try
{
String
sql
=
SQLBuilder
.
getSqlQueryById
(
SQLBuilder
.
SQL_MODULE_CAMPAIGN_MNG
,
"get-list-customer-reallocation"
);
params
.
put
(
"p_company_site_id"
,
dto
.
getCompanySiteId
());
params
.
put
(
"p_campaign_id"
,
dto
.
getCampaignId
());
params
.
put
(
"p_list_connect_status"
,
dto
.
getConnectStatus
());
params
.
put
(
"p_page_size"
,
dto
.
getPageSize
().
toString
());
params
.
put
(
"p_page_number"
,
dto
.
getPage
().
toString
());
list
=
namedParameterJdbcTemplate
.
query
(
sql
,
params
,
BeanPropertyRowMapper
.
newInstance
(
CustomerCustomDTO
.
class
));
resultDTO
.
setListData
(
list
);
resultDTO
.
setTotalRow
(
list
.
size
());
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
SUCCESS
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
SUCCESS
);
}
catch
(
Exception
e
)
{
logger
.
error
(
e
.
getMessage
(),
e
);
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
ERROR
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
ERROR
);
}
return
resultDTO
;
}
@Override
public
ResultDTO
reallocationCustomer
(
CampaignRequestDTO
dto
)
{
ResultDTO
resultDTO
=
new
ResultDTO
();
try
{
List
<
CustomerCustomDTO
>
list
=
dto
.
getCustomerCustomDTOList
();
for
(
CustomerCustomDTO
customerCustomDTO:
list
)
{
CampaignCustomer
campaignCustomer
=
entityManager
.
find
(
CampaignCustomer
.
class
,
customerCustomDTO
.
getCampaignCustomerId
());
campaignCustomer
.
setStatus
((
short
)
0
);
campaignCustomer
.
setCallStatus
(
null
);
campaignCustomer
.
setRedistribute
((
short
)
1
);
}
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
SUCCESS
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
SUCCESS
);
}
catch
(
Exception
e
)
{
logger
.
error
(
e
.
getMessage
(),
e
);
resultDTO
.
setErrorCode
(
Constants
.
ApiErrorCode
.
ERROR
);
resultDTO
.
setDescription
(
Constants
.
ApiErrorDesc
.
ERROR
);
}
return
resultDTO
;
}
}
}
src/main/java/com/viettel/campaign/service/CampaignService.java
View file @
8d9584f9
...
@@ -49,10 +49,4 @@ public interface CampaignService {
...
@@ -49,10 +49,4 @@ public interface CampaignService {
ResultDTO
renewCampaign
(
CampaignDTO
campaignDTO
);
ResultDTO
renewCampaign
(
CampaignDTO
campaignDTO
);
ResultDTO
updateCampaign
(
CampaignDTO
dto
);
ResultDTO
updateCampaign
(
CampaignDTO
dto
);
//<editor-fold: hungtt>
ResultDTO
findCustomerListReallocation
(
CampaignRequestDTO
dto
);
ResultDTO
reallocationCustomer
(
CampaignRequestDTO
dto
);
//</editor-fold>
}
}
src/main/java/com/viettel/campaign/service/impl/CampaignServiceImpl.java
View file @
8d9584f9
...
@@ -453,20 +453,6 @@ public class CampaignServiceImpl implements CampaignService {
...
@@ -453,20 +453,6 @@ public class CampaignServiceImpl implements CampaignService {
return
resultDTO
;
return
resultDTO
;
}
}
// hungtt
@Override
@Transactional
(
DataSourceQualify
.
CCMS_FULL
)
public
ResultDTO
findCustomerListReallocation
(
CampaignRequestDTO
dto
)
{
return
campaignRepositoryCustom
.
findCustomerListReallocation
(
dto
);
}
// hungtt
@Override
@Transactional
(
DataSourceQualify
.
CCMS_FULL
)
public
ResultDTO
reallocationCustomer
(
CampaignRequestDTO
dto
)
{
return
campaignRepositoryCustom
.
reallocationCustomer
(
dto
);
}
private
String
generateCampaignCode
(
String
campaignType
,
Short
chanel
)
{
private
String
generateCampaignCode
(
String
campaignType
,
Short
chanel
)
{
int
year
=
Calendar
.
getInstance
().
get
(
Calendar
.
YEAR
);
int
year
=
Calendar
.
getInstance
().
get
(
Calendar
.
YEAR
);
String
maxIndexStr
=
campaignRepositoryCustom
.
getMaxCampaignIndex
();
String
maxIndexStr
=
campaignRepositoryCustom
.
getMaxCampaignIndex
();
...
...
src/main/java/com/viettel/campaign/web/dto/CampaignAgentsDTO.java
deleted
100644 → 0
View file @
897c8766
package
com.viettel.campaign.web.dto
;
import
lombok.Getter
;
import
lombok.Setter
;
@Getter
@Setter
public
class
CampaignAgentsDTO
extends
BaseDTO
{
Long
campaignAgentId
;
Long
campaignId
;
Long
agentId
;
Short
filterType
;
Integer
status
;
Long
companySiteId
;
Long
reSchedule
;
}
src/main/java/com/viettel/campaign/web/dto/CustomerCustomDTO.java
View file @
8d9584f9
...
@@ -21,8 +21,4 @@ public class CustomerCustomDTO {
...
@@ -21,8 +21,4 @@ public class CustomerCustomDTO {
String
ipccStatus
;
String
ipccStatus
;
String
mobileNumber
;
String
mobileNumber
;
String
email
;
String
email
;
String
connectStatus
;
String
connectTime
;
String
customerName
;
Long
campaignCustomerId
;
}
}
src/main/java/com/viettel/campaign/web/dto/request_dto/CampaignRequestDTO.java
View file @
8d9584f9
package
com.viettel.campaign.web.dto.request_dto
;
package
com.viettel.campaign.web.dto.request_dto
;
import
com.viettel.campaign.web.dto.BaseDTO
;
import
com.viettel.campaign.web.dto.BaseDTO
;
import
com.viettel.campaign.web.dto.CustomerCustomDTO
;
import
lombok.Getter
;
import
lombok.Getter
;
import
lombok.Setter
;
import
lombok.Setter
;
import
java.util.List
;
/**
/**
* @author anhvd_itsol
* @author anhvd_itsol
*/
*/
...
@@ -45,5 +42,4 @@ public class CampaignRequestDTO extends BaseDTO {
...
@@ -45,5 +42,4 @@ public class CampaignRequestDTO extends BaseDTO {
String
surveyStatus
;
String
surveyStatus
;
String
roleUser
;
String
roleUser
;
String
contactCustId
;
String
contactCustId
;
List
<
CustomerCustomDTO
>
customerCustomDTOList
;
}
}
src/main/java/com/viettel/campaign/web/rest/ApParamController.java
View file @
8d9584f9
...
@@ -21,8 +21,6 @@ public class ApParamController {
...
@@ -21,8 +21,6 @@ public class ApParamController {
private
static
final
String
CONNECT_STATUS
=
"CONNECT_STATUS"
;
private
static
final
String
CONNECT_STATUS
=
"CONNECT_STATUS"
;
private
static
final
String
CONNECT_STATUS_TYPE
=
"1"
;
private
static
final
String
CONNECT_STATUS_TYPE
=
"1"
;
private
static
final
String
CONNECT_STATUS_RE
=
"CONNECT_STATUS_RE"
;
private
static
final
String
CONNECT_STATUS_TYPE_RE
=
"3"
;
private
static
final
String
SURVEY_STATUS
=
"SURVEY_STATUS"
;
private
static
final
String
SURVEY_STATUS
=
"SURVEY_STATUS"
;
private
static
final
String
SURVEY_STATUS_TYPE
=
"2"
;
private
static
final
String
SURVEY_STATUS_TYPE
=
"2"
;
private
static
final
String
CAMPAIGN_TYPE
=
"CAMPAIGN_TYPE"
;
private
static
final
String
CAMPAIGN_TYPE
=
"CAMPAIGN_TYPE"
;
...
@@ -76,8 +74,6 @@ public class ApParamController {
...
@@ -76,8 +74,6 @@ public class ApParamController {
return
new
ResponseEntity
<>(
campaignExecuteService
.
getComboBoxStatus
(
companySiteId
,
CONNECT_STATUS_TYPE
),
HttpStatus
.
OK
);
return
new
ResponseEntity
<>(
campaignExecuteService
.
getComboBoxStatus
(
companySiteId
,
CONNECT_STATUS_TYPE
),
HttpStatus
.
OK
);
}
else
if
(
SURVEY_STATUS
.
equals
(
parType
)){
}
else
if
(
SURVEY_STATUS
.
equals
(
parType
)){
return
new
ResponseEntity
<>(
campaignExecuteService
.
getComboBoxStatus
(
companySiteId
,
SURVEY_STATUS_TYPE
),
HttpStatus
.
OK
);
return
new
ResponseEntity
<>(
campaignExecuteService
.
getComboBoxStatus
(
companySiteId
,
SURVEY_STATUS_TYPE
),
HttpStatus
.
OK
);
}
else
if
(
CONNECT_STATUS_RE
.
equals
(
parType
))
{
return
new
ResponseEntity
<>(
campaignExecuteService
.
getComboBoxStatus
(
companySiteId
,
CONNECT_STATUS_TYPE_RE
),
HttpStatus
.
OK
);
}
else
{
}
else
{
return
new
ResponseEntity
<>(
campaignExecuteService
.
getComboCampaignType
(
companySiteId
),
HttpStatus
.
OK
);
return
new
ResponseEntity
<>(
campaignExecuteService
.
getComboCampaignType
(
companySiteId
),
HttpStatus
.
OK
);
}
}
...
...
src/main/java/com/viettel/campaign/web/rest/CampaignController.java
View file @
8d9584f9
...
@@ -215,18 +215,4 @@ public class CampaignController {
...
@@ -215,18 +215,4 @@ public class CampaignController {
ResultDTO
resultDTO
=
campaignService
.
updateCampaign
(
dto
);
ResultDTO
resultDTO
=
campaignService
.
updateCampaign
(
dto
);
return
new
ResponseEntity
<>(
resultDTO
,
HttpStatus
.
OK
);
return
new
ResponseEntity
<>(
resultDTO
,
HttpStatus
.
OK
);
}
}
@PostMapping
(
"/findCustomerListReallocation"
)
@ResponseBody
public
ResponseEntity
<?>
findCustomerListReallocation
(
@RequestBody
CampaignRequestDTO
dto
)
{
ResultDTO
result
=
campaignService
.
findCustomerListReallocation
(
dto
);
return
new
ResponseEntity
<>(
result
,
HttpStatus
.
OK
);
}
@PostMapping
(
"/reallocationCustomer"
)
@ResponseBody
public
ResponseEntity
<?>
reallocationCustomer
(
@RequestBody
CampaignRequestDTO
dto
)
{
ResultDTO
result
=
campaignService
.
reallocationCustomer
(
dto
);
return
new
ResponseEntity
<>(
result
,
HttpStatus
.
OK
);
}
}
}
src/main/resources/sql/campaign-execute/get-execute-interactive.sql
View file @
8d9584f9
with
campaign_type_list
as
(
select
b
.
campaign_code
campaignCode
,
select
trim
(
regexp_substr
(:
p_list_compaign_type
,
'[^,]+'
,
1
,
level
))
campaign_type
b
.
campaign_name
campaignName
,
from
dual
c
.
user_name
userName
,
connect
by
level
<=
regexp_count
(:
p_list_compaign_type
,
','
)
+
1
a
.
phone_number
phoneNumber
,
),
d
.
name
customerName
,
contact_status_list
as
(
to_date
(
a
.
start_call
,
'DD/MM/YYYY'
)
startCall
,
select
trim
(
regexp_substr
(:
p_list_contact_status
,
'[^,]+'
,
1
,
level
))
contact_status
e
.
complete_name
contactStatus
,
from
dual
f
.
complete_name
surveyStatus
,
connect
by
level
<=
regexp_count
(:
p_list_contact_status
,
','
)
+
1
g
.
status
status
,
),
a
.
status
recordStatus
,
survey_status_list
as
(
(
a
.
end_time
-
a
.
start_call
)
*
24
*
60
callTime
select
trim
(
regexp_substr
(:
p_list_survey_status
,
'[^,]+'
,
1
,
level
))
survey_status
from
contact_cust_result
a
from
dual
left
join
campaign
b
on
a
.
campaign_id
=
b
.
campaign_id
connect
by
level
<=
regexp_count
(:
p_list_survey_status
,
','
)
+
1
left
join
vsa_users
c
on
a
.
agent_id
=
c
.
user_id
),
left
join
customer
d
on
a
.
customer_id
=
d
.
customer_id
record_status_list
as
(
left
join
campaign_complete_code
e
on
a
.
contact_status
=
e
.
complete_value
select
trim
(
regexp_substr
(:
p_list_record_status
,
'[^,]+'
,
1
,
level
))
record_status
left
join
campaign_complete_code
f
on
a
.
call_status
=
e
.
complete_value
from
dual
left
join
campaign
g
on
a
.
campaign_id
=
g
.
campaign_id
connect
by
level
<=
regexp_count
(:
p_list_record_status
,
','
)
+
1
where
a
.
status
<>
0
),
and
a
.
company_site_id
=
:
p_company_site_id
campaign_id_list
as
(
and
a
.
create_time
>=
to_date
(:
p_date_from
,
'DD/MM/YYYY'
)
select
trim
(
regexp_substr
(:
p_list_campaign_id
,
'[^,]+'
,
1
,
level
))
campaign_id
and
a
.
create_time
<=
to_date
(:
p_date_to
,
'DD/MM/YYYY'
)
from
dual
and
a
.
duration_call
>=
:
p_call_time_from
connect
by
level
<=
regexp_count
(:
p_list_campaign_id
,
','
)
+
1
and
a
.
duration_call
<=
:
p_call_time_to
),
data_temp
as
(
select
b
.
campaign_code
campaignCode
,
b
.
campaign_name
campaignName
,
c
.
user_name
userName
,
a
.
phone_number
phoneNumber
,
d
.
name
customerName
,
to_date
(
a
.
start_call
,
'DD/MM/YYYY'
)
startCall
,
e
.
complete_name
contactStatus
,
f
.
complete_name
surveyStatus
,
g
.
status
status
,
a
.
status
recordStatus
,
(
a
.
end_time
-
a
.
start_call
)
*
24
*
60
callTime
from
contact_cust_result
a
left
join
campaign
b
on
a
.
campaign_id
=
b
.
campaign_id
left
join
vsa_users
c
on
a
.
agent_id
=
c
.
user_id
left
join
customer
d
on
a
.
customer_id
=
d
.
customer_id
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
g
on
a
.
campaign_id
=
g
.
campaign_id
where
a
.
status
<>
0
and
a
.
company_site_id
=
:
p_company_site_id
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
.
duration_call
>=
:
p_call_time_from
and
a
.
duration_call
<=
:
p_call_time_to
and
to_char
(
a
.
customer_id
)
like
'%'
||
:
p_customer_id
||
'%'
and
b
.
campaign_type
in
(
select
campaign_type
from
campaign_type_list
)
and
to_char
(
a
.
contact_status
)
in
(
select
contact_status
from
contact_status_list
)
and
to_char
(
a
.
call_status
)
in
(
select
survey_status
from
survey_status_list
)
and
to_char
(
a
.
status
)
in
(
select
record_status
from
record_status_list
)
and
(:
p_phone_number
is
null
or
to_char
(
a
.
phone_number
)
like
'%'
||
:
p_phone_number
||
'%'
)
and
(:
p_list_campaign_id
is
null
or
b
.
campaign_code
in
(
select
campaign_id
from
campaign_id_list
))
and
(:
p_campaign_name
is
null
or
upper
(
b
.
campaign_name
)
like
'%'
||
:
p_campaign_name
||
'%'
)
and
(:
p_user_name
is
null
or
upper
(
c
.
user_name
)
like
'%'
||
:
p_user_name
||
'%'
)
),
data
as
(
select
a
.
*
,
rownum
row_
from
data_temp
a
)
select
*
from
data
where
:
p_page_size
=
0
or
(
row_
>=
((:
p_page_number
-
1
)
*
:
p_page_size
+
1
)
and
row_
<
(:
p_page_number
*
:
p_page_size
+
1
))
src/main/resources/sql/campaign-mng/get-list-customer-reallocation.sql
deleted
100644 → 0
View file @
897c8766
with
contact
as
(
select
customer_id
,
contact
from
(
select
*
from
customer_contact
where
status
=
1
and
contact_type
=
5
and
is_direct_line
=
1
order
by
create_date
desc
)
where
rownum
=
1
),
connect_status
as
(
select
complete_value
,
complete_name
from
campaign_complete_code
where
company_site_id
=
:
p_company_site_id
and
complete_type
=
1
and
complete_value
<>
1
),
connect_status_list
as
(
select
trim
(
regexp_substr
(:
p_list_connect_status
,
'[^,]+'
,
1
,
level
))
connect_status
from
dual
connect
by
level
<=
regexp_count
(:
p_list_connect_status
,
','
)
+
1
),
data
as
(
select
a
.
campaign_customer_id
campaignCustomerId
,
b
.
name
customerName
,
c
.
contact
mobileNumber
,
to_char
(
a
.
call_time
,
'DD/MM/YYYY HH24:MI:SS'
)
connectTime
,
d
.
complete_name
connectStatus
from
campaign_customer
a
left
join
customer
b
on
a
.
customer_id
=
b
.
customer_id
left
join
contact
c
on
a
.
customer_id
=
c
.
customer_id
left
join
connect_status
d
on
d
.
complete_value
=
a
.
status
where
a
.
campaign_id
=
:
p_campaign_id
and
a
.
in_campaign_status
=
1
and
a
.
status
in
(
select
connect_status
from
connect_status_list
)
order
by
connectTime
desc
,
customerName
),
final_data
as
(
select
a
.
*
,
rownum
row_
from
data
a
)
select
*
from
final_data
where
row_
>=
((:
p_page_number
-
1
)
*
:
p_page_size
+
1
)
and
row_
<
(:
p_page_number
*
:
p_page_size
+
1
)
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