Commit d42969f6 authored by ='s avatar =

hungtt-commit fix bug ojdbc version execute interactive

parent 1d26b209
...@@ -14,10 +14,7 @@ import org.hibernate.SQLQuery; ...@@ -14,10 +14,7 @@ import org.hibernate.SQLQuery;
import org.hibernate.Session; import org.hibernate.Session;
import org.hibernate.SessionFactory; import org.hibernate.SessionFactory;
import org.hibernate.transform.Transformers; import org.hibernate.transform.Transformers;
import org.hibernate.type.DateType; import org.hibernate.type.*;
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;
...@@ -107,7 +104,10 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository { ...@@ -107,7 +104,10 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
ResultDTO resultDTO = new ResultDTO(); ResultDTO resultDTO = new ResultDTO();
List<ContactCusResDTO> list = new ArrayList<>(); List<ContactCusResDTO> list = new ArrayList<>();
Map<String, Object> params = new HashMap<>(); SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = sessionFactory.openSession();
session.beginTransaction();
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");
StringBuilder sql = new StringBuilder(); StringBuilder sql = new StringBuilder();
...@@ -176,29 +176,52 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository { ...@@ -176,29 +176,52 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
sql.append(" select a.*, rownum row_ from data_temp a"); sql.append(" select a.*, rownum row_ from data_temp a");
sql.append(" where a.callTime >= :p_call_time_from"); sql.append(" where a.callTime >= :p_call_time_from");
sql.append(" and a.callTime <= :p_call_time_to"); sql.append(" and a.callTime <= :p_call_time_to");
sql.append(" ),");
sql.append(" count_total as (");
sql.append(" select count(*) totalRow from data");
sql.append(" )"); sql.append(" )");
sql.append(" select contactCustResultId, createTime, campaignCode, campaignName, userName, phoneNumber, customerName, startCall, contactStatus, surveyStatus, status, recordStatus, callTime from data"); sql.append(" select contactCustResultId, createTime, campaignCode, campaignName, userName, phoneNumber, customerName, startCall, contactStatus, surveyStatus, status, recordStatus, callTime, totalRow from data, count_total");
sql.append(" where :p_page_size = 0 or (row_ >= ((:p_page_number - 1) * :p_page_size + 1) and row_ < (:p_page_number * :p_page_size + 1))"); sql.append(" where :p_page_size = 0 or (row_ >= ((:p_page_number - 1) * :p_page_size + 1) and row_ < (:p_page_number * :p_page_size + 1))");
params.put("p_company_site_id", dto.getCompanySiteId()); SQLQuery query = session.createSQLQuery(sql.toString());
params.put("p_customer_id", dto.getCustomerId()); query.setParameter("p_company_site_id", dto.getCompanySiteId());
params.put("p_date_from", dto.getFromDate()); query.setParameter("p_customer_id", dto.getCustomerId());
params.put("p_date_to", dto.getToDate()); query.setParameter("p_date_from", dto.getFromDate());
params.put("p_list_compaign_type", dto.getCampaignType()); query.setParameter("p_date_to", dto.getToDate());
params.put("p_list_contact_status", dto.getContactStatus()); query.setParameter("p_list_compaign_type", dto.getCampaignType());
params.put("p_list_survey_status", dto.getSurveyStatus()); query.setParameter("p_list_contact_status", dto.getContactStatus());
params.put("p_list_record_status", dto.getRecordStatus()); query.setParameter("p_list_survey_status", dto.getSurveyStatus());
params.put("p_call_time_from", dto.getCallTimeFrom()); query.setParameter("p_list_record_status", dto.getRecordStatus());
params.put("p_call_time_to", dto.getCallTimeTo()); query.setParameter("p_call_time_from", dto.getCallTimeFrom());
params.put("p_list_campaign_id", dto.getCampaignId()); query.setParameter("p_call_time_to", dto.getCallTimeTo());
params.put("p_phone_number", dto.getPhoneNumber()); query.setParameter("p_list_campaign_id", dto.getCampaignId());
params.put("p_campaign_name", DataUtil.isNullOrEmpty(dto.getCampaignName()) ? null : dto.getCampaignName().toUpperCase()); query.setParameter("p_phone_number", dto.getPhoneNumber());
params.put("p_user_name", DataUtil.isNullOrEmpty(dto.getAgentId()) ? null : dto.getAgentId().toUpperCase()); query.setParameter("p_campaign_name", DataUtil.isNullOrEmpty(dto.getCampaignName()) ? null : dto.getCampaignName().toUpperCase());
params.put("p_page_number", dto.getPage().toString()); query.setParameter("p_user_name", DataUtil.isNullOrEmpty(dto.getAgentId()) ? null : dto.getAgentId().toUpperCase());
params.put("p_page_size", dto.getPageSize().toString()); query.setParameter("p_page_number", dto.getPage());
query.setParameter("p_page_size", dto.getPageSize());
list = namedParameterJdbcTemplate.query(sql.toString(), params, BeanPropertyRowMapper.newInstance(ContactCusResDTO.class));
query.addScalar("contactCustResultId", new LongType());
query.addScalar("createTime", new DateType());
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("startCall", new DateType());
query.addScalar("contactStatus", new StringType());
query.addScalar("surveyStatus", new StringType());
query.addScalar("status", new StringType());
query.addScalar("callTime", new LongType());
query.addScalar("totalRow", new IntegerType());
query.setResultTransformer(Transformers.aliasToBean(ContactCusResDTO.class));
int total = 0;
list = query.list();
if (list.size() > 0) {
total = list.get(0).getTotalRow();
}
for (ContactCusResDTO contactCusResDTO : list) { for (ContactCusResDTO contactCusResDTO : list) {
if (!"AGENT".equals(dto.getRoleUser())) { if (!"AGENT".equals(dto.getRoleUser())) {
contactCusResDTO.setEnableEdit(true); contactCusResDTO.setEnableEdit(true);
...@@ -214,7 +237,7 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository { ...@@ -214,7 +237,7 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
} }
resultDTO.setListData(list); resultDTO.setListData(list);
resultDTO.setTotalRow(list.size()); resultDTO.setTotalRow(total);
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) {
...@@ -222,6 +245,7 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository { ...@@ -222,6 +245,7 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR); resultDTO.setErrorCode(Constants.ApiErrorCode.ERROR);
resultDTO.setDescription(Constants.ApiErrorDesc.ERROR); resultDTO.setDescription(Constants.ApiErrorDesc.ERROR);
} finally { } finally {
session.close();
return resultDTO; return resultDTO;
} }
} }
...@@ -230,7 +254,11 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository { ...@@ -230,7 +254,11 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
@Transactional(DataSourceQualify.CCMS_FULL) @Transactional(DataSourceQualify.CCMS_FULL)
public List<ContactCusResDTO> getExcelInteractiveResult(CampaignRequestDTO dto) { public List<ContactCusResDTO> getExcelInteractiveResult(CampaignRequestDTO dto) {
List<ContactCusResDTO> list = new ArrayList<>(); List<ContactCusResDTO> list = new ArrayList<>();
Map<String, Object> params = new HashMap<>(); SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = sessionFactory.openSession();
session.beginTransaction();
try { try {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
...@@ -302,27 +330,61 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository { ...@@ -302,27 +330,61 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
sb.append(" select campaignCode, createTime, campaignName, userName, phoneNumber, customerName, startCall, contactStatus, surveyStatus, status, recordStatus, callTime from data"); sb.append(" select campaignCode, createTime, campaignName, userName, phoneNumber, customerName, startCall, contactStatus, surveyStatus, status, recordStatus, callTime from data");
sb.append(" where :p_page_size = 0 or (row_ >= ((:p_page_number - 1) * :p_page_size + 1) and row_ < (:p_page_number * :p_page_size + 1))"); sb.append(" where :p_page_size = 0 or (row_ >= ((:p_page_number - 1) * :p_page_size + 1) and row_ < (:p_page_number * :p_page_size + 1))");
params.put("p_company_site_id", dto.getCompanySiteId()); // params.put("p_company_site_id", dto.getCompanySiteId());
params.put("p_customer_id", dto.getCustomerId()); // params.put("p_customer_id", dto.getCustomerId());
params.put("p_date_from", dto.getFromDate()); // params.put("p_date_from", dto.getFromDate());
params.put("p_date_to", dto.getToDate()); // params.put("p_date_to", dto.getToDate());
params.put("p_list_compaign_type", dto.getCampaignType()); // params.put("p_list_compaign_type", dto.getCampaignType());
params.put("p_list_contact_status", dto.getContactStatus()); // params.put("p_list_contact_status", dto.getContactStatus());
params.put("p_list_survey_status", dto.getSurveyStatus()); // params.put("p_list_survey_status", dto.getSurveyStatus());
params.put("p_list_record_status", dto.getRecordStatus()); // params.put("p_list_record_status", dto.getRecordStatus());
params.put("p_call_time_from", dto.getCallTimeFrom()); // params.put("p_call_time_from", dto.getCallTimeFrom());
params.put("p_call_time_to", dto.getCallTimeTo()); // params.put("p_call_time_to", dto.getCallTimeTo());
params.put("p_list_campaign_id", dto.getCampaignId()); // params.put("p_list_campaign_id", dto.getCampaignId());
params.put("p_phone_number", dto.getPhoneNumber()); // params.put("p_phone_number", dto.getPhoneNumber());
params.put("p_campaign_name", DataUtil.isNullOrEmpty(dto.getCampaignName()) ? null : dto.getCampaignName().toUpperCase()); // params.put("p_campaign_name", DataUtil.isNullOrEmpty(dto.getCampaignName()) ? null : dto.getCampaignName().toUpperCase());
params.put("p_user_name", DataUtil.isNullOrEmpty(dto.getAgentId()) ? null : dto.getAgentId().toUpperCase()); // params.put("p_user_name", DataUtil.isNullOrEmpty(dto.getAgentId()) ? null : dto.getAgentId().toUpperCase());
params.put("p_page_number", dto.getPage().toString()); // params.put("p_page_number", dto.getPage().toString());
params.put("p_page_size", "0"); // params.put("p_page_size", "0");
//
list = namedParameterJdbcTemplate.query(sb.toString(), params, BeanPropertyRowMapper.newInstance(ContactCusResDTO.class)); // list = namedParameterJdbcTemplate.query(sb.toString(), params, BeanPropertyRowMapper.newInstance(ContactCusResDTO.class));
SQLQuery query = session.createSQLQuery(sb.toString());
query.setParameter("p_company_site_id", dto.getCompanySiteId());
query.setParameter("p_customer_id", dto.getCustomerId());
query.setParameter("p_date_from", dto.getFromDate());
query.setParameter("p_date_to", dto.getToDate());
query.setParameter("p_list_compaign_type", dto.getCampaignType());
query.setParameter("p_list_contact_status", dto.getContactStatus());
query.setParameter("p_list_survey_status", dto.getSurveyStatus());
query.setParameter("p_list_record_status", dto.getRecordStatus());
query.setParameter("p_call_time_from", dto.getCallTimeFrom());
query.setParameter("p_call_time_to", dto.getCallTimeTo());
query.setParameter("p_list_campaign_id", dto.getCampaignId());
query.setParameter("p_phone_number", dto.getPhoneNumber());
query.setParameter("p_campaign_name", DataUtil.isNullOrEmpty(dto.getCampaignName()) ? null : dto.getCampaignName().toUpperCase());
query.setParameter("p_user_name", DataUtil.isNullOrEmpty(dto.getAgentId()) ? null : dto.getAgentId().toUpperCase());
query.setParameter("p_page_number", dto.getPage());
query.setParameter("p_page_size", dto.getPageSize());
query.addScalar("createTime", new DateType());
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("startCall", new DateType());
query.addScalar("contactStatus", new StringType());
query.addScalar("surveyStatus", new StringType());
query.addScalar("status", new StringType());
query.addScalar("callTime", new LongType());
query.setResultTransformer(Transformers.aliasToBean(ContactCusResDTO.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;
} }
} }
...@@ -469,5 +531,4 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository { ...@@ -469,5 +531,4 @@ public class CampaignExecuteRepositoryImp implements CampaignExecuteRepository {
return result; return result;
} }
} }
...@@ -5,14 +5,14 @@ import lombok.Getter; ...@@ -5,14 +5,14 @@ import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import java.io.Serializable; //import java.io.Serializable;
import java.util.Date; import java.util.Date;
@Getter @Getter
@Setter @Setter
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class ContactCusResDTO implements Serializable { public class ContactCusResDTO {
private Long contactCustResultId; private Long contactCustResultId;
private String campaignCode; private String campaignCode;
private String campaignName; private String campaignName;
...@@ -27,4 +27,5 @@ public class ContactCusResDTO implements Serializable { ...@@ -27,4 +27,5 @@ public class ContactCusResDTO implements Serializable {
private String recordStatus; private String recordStatus;
private Long callTime; private Long callTime;
private Boolean enableEdit; private Boolean enableEdit;
private Integer totalRow;
} }
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