📄 affairacceptimpl.java
字号:
package com.doone.fj1w.fjmgr.rpt;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import com.doone.data.DacClient;
import com.doone.data.DataRow;
import com.doone.data.DataTable;
import com.doone.util.ExtString;
import com.doone.util.FileLogger;
public class AffairAcceptImpl extends ReportImpl {
protected DataTable getRptList(Map _map) {
DacClient db = new DacClient();
try {
List oParam = new ArrayList();
int pageSize = Integer.parseInt((String) _map.get("pageSize"));
int currentPage = Integer.parseInt((String) _map.get("currentPage"));
int startrecord = currentPage * pageSize;
int endrecord = pageSize;
if (startrecord < 0)
startrecord = 0;
if (endrecord > 0 && startrecord > 0)
endrecord = startrecord + pageSize;
StringBuffer _sb = new StringBuffer();
_sb.append("SELECT * FROM ( SELECT row_.*, rownum rownum_ FROM(");
StringBuffer sql = new StringBuffer();
buildSQL(_map, sql, oParam);
_sb.append(sql);
_sb.append(") row_ WHERE rownum < ?");
_sb.append(") WHERE rownum_ > ?");
oParam.add(new Integer(endrecord));
oParam.add(new Integer(startrecord));
Object ap[] = new Object[oParam.size()];
for (int i = 0; i < ap.length; i++) {
ap[i] = oParam.get(i);
}
return db.executeQuery(_sb.toString(), ap);
} catch (Exception e) {
FileLogger.getLogger().warn(e.getMessage(), e);
}
return null;
}
private void buildSQL(Map _map, StringBuffer Sql, List oParam) {
int iCount = getLogCount(_map);
if(iCount<=0) iCount=1;
String sFields = null;
if ( hasChildList(_map) ) {
sFields = getOutFields(_map);
}
else {
sFields = getLastOutFields(_map);
}
Sql.append("select ");
Sql.append(sFields);
Sql.append(" , count(1) cnt, ");
Sql.append(" round(count(1)/").append(iCount).append(" * 100, 2) || '%' cnt2");
Sql.append(" from (");
StringBuffer sb = new StringBuffer();
buildSelectSQL(_map, sb, oParam);
Sql.append(sb);
Sql.append(" ) f,td_area g,td_city h where f.areacode = g.areacode and f.citycode = h.citycode ");
Sql.append(" group by ");
Sql.append(sFields);
}
private boolean hasChildList(Map _map) {
String sIndexCode = (String) _map.get("INDEXCODE");
boolean bResult = false;
if (! ExtString.isEmpty(sIndexCode)) {
try {
String sql = "select count(1) from td_report_tree where indexcode <> ? and indexcode like ? || '%'";
Object ap[] = new Object[2];
ap[0] = sIndexCode;
ap[1] = sIndexCode;
DacClient db = new DacClient();
String str = db.getStringFromSqlQuery(sql,ap);
if ( Integer.parseInt(str) > 0 ) {
bResult = true;
}
}
catch(Exception ex) {
}
}
else {
bResult = true;
}
return bResult;
}
private String getOutFields(Map _map) {
StringBuffer fields = new StringBuffer();
String sCityCode = (String) _map.get("CITYCODE");
String sAreaCode = (String) _map.get("AREA");
if ( ExtString.isEmpty(sCityCode) || "-1".equals(sCityCode) ) {
// 显示全省内容。
fields.append(" '0590' citycode, ");
fields.append(" '全省' cityname, ");
}
else if ( ExtString.isEmpty(sAreaCode) ) {
fields.append(" f.citycode, ");
fields.append(" h.cityname, ");
}else {
fields.append(" g.areacode, ");
fields.append(" f.areaname, ");
}
fields.append(" f.indexcode, ");
fields.append(" f.purviewname ");
return fields.toString();
}
private String getLastOutFields(Map _map) {
StringBuffer fields = new StringBuffer();
String sCityCode = (String) _map.get("CITYCODE");
String sAreaCode = (String) _map.get("AREA");
if ( ExtString.isEmpty(sCityCode) || "-1".equals(sCityCode) ) {
// 显示全省内容。
fields.append(" '0590' citycode, ");
fields.append(" '全省' cityname, ");
}
else if ( ExtString.isEmpty(sAreaCode) ) {
fields.append(" f.citycode, ");
fields.append(" h.cityname, ");
}else {
fields.append(" f.areacode, ");
fields.append(" g.areaname, ");
}
//fields.append(" f.affaircode, ");
fields.append(" f.affairname, ");
fields.append(" f.acceptstate ");
return fields.toString();
}
private void buildSelectSQL(Map _map, StringBuffer sql, List oParam) {
String sClientType = (String) _map.get("CLIENTTYPE");
String sApplyType = (String) _map.get("APPLYTYPE");
String sStartTime = (String) _map.get("STARTTIME");
String sEndTime = (String) _map.get("ENDTIME");
String sCityCode = (String) _map.get("CITYCODE");
String sAreaCode = (String) _map.get("AREA");
String sIndexCode = (String) _map.get("INDEXCODE");
String sOrderType = (String) _map.get("ORDERTYPE");
int iCodeCount = 3;
if (! ExtString.isEmpty(sIndexCode)) {
iCodeCount = sIndexCode.length() + 3;
}
else if (!ExtString.isEmpty(sOrderType) && ! sOrderType.equals("A")){
iCodeCount = sOrderType.length() + 3;
}
sStartTime = sStartTime!=null?sStartTime.trim():"";
sEndTime = sEndTime!=null?sEndTime.trim():"";
sStartTime = sStartTime.length()>0 && sStartTime.length()<11?sStartTime+" 00:00:00":sStartTime;
sEndTime = sEndTime.length()>0 && sEndTime.length()<11?sEndTime+" 23:59:59":sEndTime;
sql.append("select l.acceptlog_id,");
sql.append("l.purviewid,");
sql.append("l.purviewcode,");
sql.append("l.recordtime,");
sql.append("l.usertype,");
sql.append("l.userid,");
sql.append("l.useraccount,");
sql.append("l.citycode,");
sql.append("l.cityname,");
sql.append("decode(Length(l.areacode),4,areacode||'00',areacode) areacode,");
sql.append("l.areaname,");
//sql.append("l.affaircode,");
sql.append("l.affairname,");
sql.append("l.actioncode,");
sql.append("l.acceptorder, ");
sql.append("l.acceptstate,");
sql.append("l.ulcount,");
sql.append("t2.purviewname,");
sql.append("t1.indexcode");
sql.append(" from tl_acceptlog l,");
sql.append(" (select t.purviewid,");
sql.append(" t.purviewname,");
sql.append(" substr(t.indexcode, 1, ").append(iCodeCount).append(") indexcode");
sql.append(" from td_report_tree t");
sql.append(" where t.state = 'E') t1,");
sql.append(" td_report_tree t2 ");
sql.append(" where l.purviewid = t1.purviewid");
sql.append(" and t1.indexcode = t2.indexcode");
sql.append(" and l.recordtype = '2'");
if ( iCodeCount > 3) {
if (! ExtString.isEmpty(sIndexCode)) {
String sTmp = sIndexCode.substring(0, iCodeCount - 3);
if ( sTmp.length() == iCodeCount - 3) {
sql.append(" and t1.indexcode like ? || '%' ");
oParam.add(sTmp);
}
}
else if (!ExtString.isEmpty(sOrderType) && ! sOrderType.equals("A")){
String sTmp = sOrderType.substring(0, iCodeCount - 3);
if ( sTmp.length() == iCodeCount - 3) {
sql.append(" and t1.indexcode like ? || '%' ");
oParam.add(sTmp);
}
}
}
if (!ExtString.isEmpty(sStartTime)) {
sql.append(" and ");
sql.append(" l.recordtime > to_date(?,'yyyy-mm-dd hh24:mi:ss')");
oParam.add(sStartTime);
}
if (!ExtString.isEmpty(sEndTime)) {
sql.append(" and ");
sql.append(" l.recordtime < to_date(?,'yyyy-mm-dd hh24:mi:ss')");
oParam.add(sEndTime);
}
if (!ExtString.isEmpty(sClientType) && !sClientType.equalsIgnoreCase("A")) {
sql.append(" and ");
sql.append(" l.usertype = ?");
oParam.add(sClientType);
}
if (!ExtString.isEmpty(sApplyType) && !sApplyType.equals("6")) {
sql.append(" and ");
sql.append(" l.actioncode = ?");
oParam.add(sApplyType);
}
if (!ExtString.isEmpty(sAreaCode) && ! "-1".equals(sAreaCode)) {
sql.append(" and ");
sql.append(" l.areacode=? ");
oParam.add(sAreaCode);
}
if (!ExtString.isEmpty(sCityCode) && ! sCityCode.equals("0590")) {
sql.append(" and ");
sql.append(" l.citycode=? ");
oParam.add(sCityCode);
}
}
public String getStateName(String sCityCode,String sIndexCode, String sStateCode) {
String sResult = "其它";
// 程控状态
Map funState = new HashMap();
funState.put("1", "待处理");
funState.put("2", "处理中");
funState.put("3", "处理结束");
funState.put("4", "处理失败");
// 受理状态
Map orderState = new HashMap();
orderState.put("1", "待处理");
orderState.put("2", "转派");
orderState.put("3", "暂存");
orderState.put("4", "回退");
orderState.put("8", "作废");
orderState.put("9", "完成");
String funStateCode = "{005002001},{006001001},{006001002},{006001003}";
if ( funStateCode.indexOf("{" + sIndexCode + "}") != -1 ) {
sResult = (String) funState.get(sStateCode);
}
else {
sResult = (String) orderState.get(sStateCode);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -