public Page queryAll(LzInformationSources informationSources,LzAdmin admin)
{
String insCompany_Q = informationSources.getInsCompany_Q();
List<Object> paraList = new ArrayList<Object>();
StringBuilder sql = new StringBuilder(
" select"
+" a.INS_ID,"
+" hh.numbers, " //号码
+" a.INS_FREQUENCY, " //频率
+" a.INS_COMPANY," //企业名称
+" a.INS_CONTACT_NAME," //联系人姓名
+" a.INS_SEX," //性别
+" ff.names ," //产品
+" a.INS_QQ," //qq
+" d.ZHN_FUNCTION ," //职能
+" e.ZHW_POSITION ," //职位
+" f.phone_fen "
+" from LZ_INFORMATION_SOURCES a "
+" left join "
+" ( "
+" select distinct gg.TEL_INS_ID, "
+" ("
+" select kk.TEL_NUM + ',' "
+" from LZ_TELNUMBER kk "
+" where kk.TEL_INS_ID = gg.TEL_INS_ID "
+" for xml path('')"
+" ) numbers "
+" from LZ_TELNUMBER gg "
+" ) hh on a.INS_ID = hh.TEL_INS_ID "
+" left join LZ_ZHINENG d on a.ZHN_ID = d.ZHN_ID "
+" left join LZ_ZHIWEI e on a.ZHW_ID = e.ZHW_ID "
+" left join lz_admin f on a.admin_id = f.admin_id "
+" left join "
+" ( "
+" select distinct aa.INS_ID, "
+" ("
+" select dd.pro_cn_name + ',' "
+" from LZ_INFOR_PRO cc "
+" join lz_product dd on cc.pro_id = dd.pro_id "
+" and cc.INS_ID = aa.INS_ID "
+" for xml path('')"
+" ) names "
+" from LZ_INFOR_PRO aa "
+" join lz_product bb on aa.pro_id = bb.pro_id "
+" ) ff on a.INS_ID = ff.INS_ID "
+" where a.admin_id in ("+ directAdminString+")"
);
StringBuilder sqlCnt = new StringBuilder(
" select count(*) "
+" from LZ_INFORMATION_SOURCES a "
+" left join "
+" ( "
+" select distinct gg.TEL_INS_ID, "
+" ("
+" select kk.TEL_NUM + ',' "
+" from LZ_TELNUMBER kk "
+" where kk.TEL_INS_ID = gg.TEL_INS_ID "
+" for xml path('')"
+" ) numbers "
+" from LZ_TELNUMBER gg "
+" ) hh on a.INS_ID = hh.TEL_INS_ID "
+" left join LZ_ZHINENG d on a.ZHN_ID = d.ZHN_ID "
+" left join LZ_ZHIWEI e on a.ZHW_ID = e.ZHW_ID "
+" left join lz_admin f on a.admin_id = f.admin_id "
+" left join "
+" ( "
+" select distinct aa.INS_ID, "
+" ("
+" select dd.pro_cn_name + ',' "
+" from LZ_INFOR_PRO cc "
+" join lz_product dd on cc.pro_id = dd.pro_id "
+" and cc.INS_ID = aa.INS_ID "
+" for xml path('')"
+" ) names "
+" from LZ_INFOR_PRO aa "
+" join lz_product bb on aa.pro_id = bb.pro_id "
+" ) ff on a.INS_ID = ff.INS_ID "
+" where a.admin_id in ("+ directAdminString+") "
);
if( insCompany_Q != null && insCompany_Q.length() > 0 )
{
sql.append(" and a.INS_COMPANY like ? ");
sqlCnt.append(" and a.INS_COMPANY like ? ");
paraList.add("%" + insCompany_Q + "%");
}
sql.append(" order by a.INS_ID desc ");
Page page = new Page(sql.toString(), sqlCnt.toString(),
informationSources.getCurrentPage(), informationSources.getPageSize(),
paraList.toArray());
page.setPageSize(1000);
jdbcDao.queryForPage(page);
if(page.getResultList().size() == 0)
{
return page;
}
String sql1_2 ="";
for(int i =0 ; i < page.getResultList().size(); i++)
{
String startime = "";
String endtime = "";
Calendar jintian = Calendar.getInstance();
Calendar mingtian = Calendar.getInstance();
//电话号码
String number = page.getResultList().get(i).get("numbers").toString().trim().substring(0, page.getResultList().get(i).get("numbers").toString().length()-1);
String[] arr_numbers = number.split(",");
String panduan = "";
StringBuilder arrNumString = new StringBuilder(" and (");
for(int q = 0; q < arr_numbers.length; q++)
{
String num = arr_numbers[q].trim();
num = num.replace("-", "");
panduan += "( a.cal_other_code = '" + num + "' and a.CAL_CODE_INDEX = '" + num.substring(num.length()-4, num.length()) + "') or" ;
}
panduan = panduan.substring(0, panduan.length()-4 );
arrNumString = arrNumString.append(panduan);
arrNumString.append("))");
//从日志表中查询所需要的两列数据的sql
String sql1_1=
" select "
+ page.getResultList().get(i).get("INS_ID").toString() +" as INS_ID ,"
+" isnull(case when COUNT(*) = 0 then 'a1' end ,0 ) as er"
+" from LZ_CALL_LOG a "
+" where a.CAL_CALL_DIRECT = 2 "
+" and a.CAL_CONNECT_TIME_LEN > 0 "
+" and a.CAL_EXT_CODE = " + page.getResultList().get(i).get("phone_fen") +""
+ arrNumString
+" and a.CAL_DATE_INDEX > = " + startime + " and a.CAL_DATE_INDEX < " + endtime+"" ;
sql1_2 += (sql1_1 + " union all");
}
sql1_2 = sql1_2.substring(0, sql1_2.length()-9);
List<Map<String,Object>> lst = jdbcDao.queryForList(sql1_2);
List<Map<String, Object>> lstPageList = page.getResultList();
for(int g = 0; g < lstPageList.size(); g++)
{
Map<String ,Object > mapa = lstPageList.get(g);
String[] telnum = mapa.get("numbers").toString().trim().split(",");
String lianjie = "";
for(int q = 0 ; q < telnum.length ; q++)
{
lianjie += " <a href=\"javascript:Ext_NumCall('"+telnum[q].trim()+"');\">"+telnum[q].trim()+"</a>, " ;
}
mapa.put("numbers", lianjie);
for(int n = 0;n < lst.size();n++ )
{
Map<String ,Object > mapb = lst.get(n);
if(((Integer)mapb.get("INS_ID")).compareTo((Integer) mapa.get("INS_ID"))==0)
{
mapa.put("er", (String)mapb.get("er"));
mapa.put("cishu", (Integer)mapb.get("cishu"));
}
}
if(mapa.get("er").toString().compareTo("a1")==0)
{
mapa.put("numbers", lianjie);
mapa.put("INS_ID", mapa.get("INS_ID"));
lstPageList.set(g, mapa);
}
//这个是查询出所有没有打过的电话
}
page.setResultList(lstPageList);
return page;
}
想问一下,最后怎么实现返回到页面上是所有没有打过电话的数据,包括统计出来的条数