@Service("comBussnessFlowService")
public class ComBussnessFlowServiceImpl implements IComBussnessFlowService {
@Resource(name="recordDao")
private IStatusMonitorDao dao;
public List<MonitorVo> list(QueryCondtition condition) {
StringBuffer sql = new StringBuffer();
if (condition.getDateMode().equals("0")){
sql.append(" select to_char(t.dd,'yyyy/mm/dd'), t.fs");
sql.append(" from (select trunc(comm_date,'dd') dd,");
}else if(condition.getDateMode().equals("1")){
sql.append(" select to_char(t.dd,'yyyy/mm'), t.fs");
sql.append(" from (select trunc(comm_date,'mm') dd,");
}else{
sql.append(" select to_char(t.dd,'yyyy'), t.fs");
sql.append(" from (select trunc(comm_date,'yyyy') dd,");
}
if (condition.getCommMode().equals("0")){
sql.append(" sum(flow_size) fs");
}else if(condition.getCommMode().equals("1")){
sql.append(" sum(decode(status,0,flow_size,0)) fs");
}else{
sql.append(" sum(decode(status,1,flow_size,0)) fs");
}
sql.append(" from (select status, comm_date, flow_size " +
" from t_service_rec where 1=1 ");
List<Object> conList = new ArrayList<Object>();
getWhere(sql,conList,condition);
if (condition.getDateMode().equals("0")){
sql.append(") group by trunc(comm_date,'dd')");
}else if(condition.getDateMode().equals("1")){
sql.append(") group by trunc(comm_date,'mm')");
}else{
sql.append(") group by trunc(comm_date,'yyyy')");
}
sql.append(" ) t order by t.dd");
List<MonitorVo> list = new ArrayList<MonitorVo>();
try{
List<Object[]> resultList = dao.queryBySQL(sql.toString(),conList.toArray());
if( resultList != null && resultList.size() > 0){
for(Object[] obj : resultList){
MonitorVo monitorVo = new MonitorVo();
monitorVo.setModeX((String)obj[0]);
monitorVo.setNum(((BigDecimal)obj[1]).intValue());
list.add(monitorVo);
}
}
}catch(Exception e){
e.printStackTrace();
}
return list;
}
private void getWhere(StringBuffer sql, List<Object> conList, QueryCondtition condition) {
//有效时间
if(condition.getValidStarDate()!= null ){
sql.append(" and comm_date>=?");
conList.add(TimeUtil.getStartTime(condition.getValidStarDate()));
}
if(condition.getValidEndDate()!= null ){
sql.append(" and comm_date<=?");
conList.add(TimeUtil.getEndTime(condition.getValidEndDate()));
}
if(condition.getSerivceName()!= null ){
sql.append(" and platform_no = ?");
conList.add(condition.getSerivceName());
}
}
}