Commit 266fb8e6 authored by Vu Duy Anh's avatar Vu Duy Anh

anhvd commit

parents 0c65e1b0 b7ee83e1
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;
}
}
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> {
}
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;
}
......@@ -21,8 +21,4 @@ public class CustomerCustomDTO {
String ipccStatus;
String mobileNumber;
String email;
String connectStatus;
String connectTime;
String customerName;
Long campaignCustomerId;
}
package com.viettel.campaign.web.dto.request_dto;
import com.viettel.campaign.web.dto.BaseDTO;
import com.viettel.campaign.web.dto.CustomerCustomDTO;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
/**
* @author anhvd_itsol
*/
......@@ -45,5 +42,4 @@ public class CampaignRequestDTO extends BaseDTO {
String surveyStatus;
String roleUser;
String contactCustId;
List<CustomerCustomDTO> customerCustomDTOList;
}
......@@ -21,8 +21,6 @@ public class ApParamController {
private static final String CONNECT_STATUS = "CONNECT_STATUS";
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_TYPE = "2";
private static final String CAMPAIGN_TYPE = "CAMPAIGN_TYPE";
......@@ -76,8 +74,6 @@ public class ApParamController {
return new ResponseEntity<>(campaignExecuteService.getComboBoxStatus(companySiteId, CONNECT_STATUS_TYPE), HttpStatus.OK);
} else if (SURVEY_STATUS.equals(parType)){
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 {
return new ResponseEntity<>(campaignExecuteService.getComboCampaignType(companySiteId), HttpStatus.OK);
}
......
......@@ -192,18 +192,4 @@ public class CampaignController {
ResultDTO resultDTO = campaignService.updateCampaign(dto);
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);
}
}
with campaign_type_list as (
select trim (regexp_substr(:p_list_compaign_type, '[^,]+', 1, level)) campaign_type
from dual
connect by level <= regexp_count(:p_list_compaign_type, ',') +1
),
contact_status_list as (
select trim (regexp_substr(:p_list_contact_status, '[^,]+', 1, level)) contact_status
from dual
connect by level <= regexp_count(:p_list_contact_status, ',') +1
),
survey_status_list as (
select trim (regexp_substr(:p_list_survey_status, '[^,]+', 1, level)) survey_status
from dual
connect by level <= regexp_count(:p_list_survey_status, ',') +1
),
record_status_list as (
select trim (regexp_substr(:p_list_record_status, '[^,]+', 1, level)) record_status
from dual
connect by level <= regexp_count(:p_list_record_status, ',') +1
),
campaign_id_list as (
select trim (regexp_substr(:p_list_campaign_id, '[^,]+', 1, level)) campaign_id
from dual
connect by level <= regexp_count(:p_list_campaign_id, ',') +1
),
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))
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
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)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment