package cn.ksource.web.facade.desktop; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Service; import cn.ksource.core.dao.BaseDao; import cn.ksource.core.dao.SqlParameter; import cn.ksource.core.util.ConvertUtil; import cn.ksource.core.util.DateUtil; import cn.ksource.core.util.JsonUtil; import cn.ksource.core.util.NumberUtil; import cn.ksource.core.util.StringUtil; import cn.ksource.web.Constants; import cn.ksource.web.facade.customermanage.CustomerManageFacade; @Service("desktopFacade") public class DesktopFacadeImpl implements DesktopFacade { @Resource private BaseDao baseDao; @Resource private CustomerManageFacade customerFacade; @Override public Map getOperationDeskDetail(String cusId) { String incidentAddNum = getIncidentAddNum(cusId); String incidentDealNum = getIncidentDealNum(cusId); String questionAddNum = getQuestionAddNum(cusId); String questionDealNum = getQuestionDealNum(cusId); String incidentLocalAddNum = getIncidentLocalAddNum(cusId); String incidentLocalDealNum = getIncidentLocalDealNum(cusId); String dailyPatrolAddNum = getDailyPatrolAddNum(cusId); String dailyPatrolDealNum = getDailyPatrolDealNum(cusId); String remindAddNum = getRemindAddNum(cusId); String remindDealNum = getRemindDealNum(cusId); String healthAddNum = getHealthAddNum(cusId); String healthDealNum = getHealthDealNum(cusId); String knowlegeAddNum = getKnowlegeAddNum(cusId); String knowlegeDealNum = getKnowlegeDealNum(cusId); String ciAddNum = getCiAddNum(cusId); String ciDealNum = getCiDealNum(cusId); String satifactionAddNum = getSatifactionAddNum(cusId); Map satifactionScore = getSatifactionScore(cusId); String satiScore = "0/0"; if(!StringUtil.isEmpty(ConvertUtil.obj2StrBlank(satifactionScore.get("ALL_SCORE")))){ double satifactionScore1 = NumberUtil.round(ConvertUtil.obj2Double(satifactionScore.get("ALL_SCORE")), 0); double satifactionScore2 = NumberUtil.round(ConvertUtil.obj2Double(satifactionScore.get("REQUEST_SCORE")), 0); satiScore = ConvertUtil.obj2StrBlank(satifactionScore1)+"/"+ConvertUtil.obj2StrBlank(satifactionScore2); } String fileAddNum = getFileAddNum(); String fileDealNum = getFileDealNum(); Map info = new HashMap(); info.put("incidentAddNum", incidentAddNum); info.put("incidentDealNum", incidentDealNum); info.put("questionAddNum", questionAddNum); info.put("questionDealNum", questionDealNum); info.put("incidentLocalAddNum", incidentLocalAddNum); info.put("incidentLocalDealNum", incidentLocalDealNum); info.put("dailyPatrolAddNum", dailyPatrolAddNum); info.put("dailyPatrolDealNum", dailyPatrolDealNum); info.put("remindAddNum", remindAddNum); info.put("remindDealNum", remindDealNum); info.put("healthAddNum", healthAddNum); info.put("healthDealNum", healthDealNum); info.put("knowlegeAddNum", knowlegeAddNum); info.put("knowlegeDealNum", knowlegeDealNum); info.put("ciAddNum", ciAddNum); info.put("ciDealNum", ciDealNum); info.put("satifactionAddNum", satifactionAddNum); info.put("satifactionScore", satiScore); info.put("fileAddNum", fileAddNum); info.put("fileDealNum", fileDealNum); return info; } /** * 事件新增数量 * @param cusId * @return */ private String getIncidentAddNum(String cusId){ StringBuilder builder = new StringBuilder(); builder.append(" select cast(GROUP_CONCAT(t.num SEPARATOR '/') as char) from ( "); builder.append(" select count(id) num from SC_WORKFLOW_INCIDENT where DATE_FORMAT(CREATE_TIME,'%Y%m%d')= DATE_FORMAT(NOW(),'%Y%m%d') and CUSTOMER_ID=:cusId "); builder.append(" union all "); builder.append(" select count(id) num from SC_WORKFLOW_INCIDENT where YEARWEEK(CREATE_TIME)=YEARWEEK(NOW()) and CUSTOMER_ID=:cusId "); builder.append(" union all "); builder.append(" select count(id) num from SC_WORKFLOW_INCIDENT where DATE_FORMAT(CREATE_TIME,'%Y%m')= DATE_FORMAT(NOW(),'%Y%m') and CUSTOMER_ID=:cusId "); builder.append(" ) t "); return baseDao.queryForString(builder.toString(),new SqlParameter("cusId",cusId)); } /** * 事件处理数量 * @param cusId * @return */ private String getIncidentDealNum(String cusId){ StringBuilder builder = new StringBuilder(); builder.append(" "); builder.append(" select cast(GROUP_CONCAT(t.num SEPARATOR '/') as char) from ( "); builder.append(" ( "); builder.append(" select count(c.ID) num from SC_WORKFLOW_INCIDENT c,workflow_base b,workflow_node n "); builder.append(" where c.FLOW_ID = b.id and n.ID = b.CURRENT_NODE_ID "); builder.append(" and DATE_FORMAT(c.CREATE_TIME,'%Y%m') = DATE_FORMAT(now(),'%Y%m') and n.FLOWSTATE = 1 and c.CUSTOMER_ID=:cusId "); builder.append(" ) "); builder.append(" union all "); builder.append(" ( "); builder.append(" select count(c.ID) num from SC_WORKFLOW_INCIDENT c,workflow_base b "); builder.append(" where c.FLOW_ID = b.id "); builder.append(" and DATE_FORMAT(c.CREATE_TIME,'%Y%m') = DATE_FORMAT(now(),'%Y%m') and b.wfstate=1 "); builder.append(" and c.CUSTOMER_ID=:cusId "); builder.append(" ) "); builder.append(" union all "); builder.append(" ( "); builder.append(" select count(ID) num from SC_WORKFLOW_INCIDENT where DATE_FORMAT(CREATE_TIME,'%Y%m') = DATE_FORMAT(now(),'%Y%m') "); builder.append(" and (ANSWER_TIMEOUT=1 or DEAL_TIMEOUT=1) and CUSTOMER_ID=:cusId "); builder.append(" ) "); builder.append(" ) t "); return baseDao.queryForString(builder.toString(),new SqlParameter("cusId",cusId)); } /** * 问题新增数量 * @param cusId * @return */ private String getQuestionAddNum(String cusId){ StringBuilder builder = new StringBuilder(); builder.append(" select cast(GROUP_CONCAT(t.num SEPARATOR '/') as char) from ( "); builder.append(" select count(id) num from SC_WORKFLOW_QUESTION where DATE_FORMAT(CREATE_TIME,'%Y%m%d')= DATE_FORMAT(NOW(),'%Y%m%d') and CUSTOMER_ID=:cusId "); builder.append(" union all "); builder.append(" select count(id) num from SC_WORKFLOW_QUESTION where YEARWEEK(CREATE_TIME)=YEARWEEK(NOW()) and CUSTOMER_ID=:cusId "); builder.append(" union all "); builder.append(" select count(id) num from SC_WORKFLOW_QUESTION where DATE_FORMAT(CREATE_TIME,'%Y%m')= DATE_FORMAT(NOW(),'%Y%m') and CUSTOMER_ID=:cusId "); builder.append(" ) t "); return baseDao.queryForString(builder.toString(),new SqlParameter("cusId",cusId)); } /** * 问题处理数量 * @param cusId * @return */ private String getQuestionDealNum(String cusId){ StringBuilder builder = new StringBuilder(); builder.append(" select cast(GROUP_CONCAT(t.num SEPARATOR '/') as char) from ( "); builder.append(" ( "); builder.append(" select count(c.ID) num from SC_WORKFLOW_QUESTION c,workflow_base b,workflow_node n "); builder.append(" where c.FLOW_ID = b.id and n.ID = b.CURRENT_NODE_ID "); builder.append(" and DATE_FORMAT(c.CREATE_TIME,'%Y%m') = DATE_FORMAT(now(),'%Y%m') and n.DEAL_TYPE = 1 and c.CUSTOMER_ID=:cusId "); builder.append(" ) "); builder.append(" union all "); builder.append(" ( "); builder.append(" select count(c.ID) num from SC_WORKFLOW_QUESTION c,workflow_base b "); builder.append(" where c.FLOW_ID = b.id "); builder.append(" and DATE_FORMAT(c.CREATE_TIME,'%Y%m') = DATE_FORMAT(now(),'%Y%m') and b.wfstate=1 "); builder.append(" and c.CUSTOMER_ID=:cusId "); builder.append(" ) "); builder.append(" union all "); builder.append(" ( "); builder.append(" select count(c.ID) num from SC_WORKFLOW_QUESTION c,workflow_base b,workflow_node n "); builder.append(" where c.FLOW_ID = b.id and n.ID = b.CURRENT_NODE_ID "); builder.append(" and DATE_FORMAT(c.CREATE_TIME,'%Y%m') = DATE_FORMAT(now(),'%Y%m') and n.NODE_TEMPLATE_ID = :nodeTemplateId "); builder.append(" and c.CUSTOMER_ID=:cusId and b.WFSTATE=1 "); builder.append(" ) "); builder.append(" ) t "); SqlParameter param = new SqlParameter(); param.addValue("cusId",cusId) .addValue("nodeTemplateId",Constants.WTHG); return baseDao.queryForString(builder.toString(),param); } /** * 驻场运维新增数量 * @param cusId * @return */ private String getIncidentLocalAddNum(String cusId){ StringBuilder builder = new StringBuilder(); builder.append(" select cast(GROUP_CONCAT(t.num SEPARATOR '/') as char) from ( "); builder.append(" select count(id) num from SC_WORKFLOW_INCIDENT_LOCAL where DATE_FORMAT(CREATE_TIME,'%Y%m%d')= DATE_FORMAT(NOW(),'%Y%m%d') and CUSTOMER_ID=:cusId "); builder.append(" union all "); builder.append(" select count(id) num from SC_WORKFLOW_INCIDENT_LOCAL where YEARWEEK(CREATE_TIME)=YEARWEEK(NOW()) and CUSTOMER_ID=:cusId "); builder.append(" union all "); builder.append(" select count(id) num from SC_WORKFLOW_INCIDENT_LOCAL where DATE_FORMAT(CREATE_TIME,'%Y%m')= DATE_FORMAT(NOW(),'%Y%m') and CUSTOMER_ID=:cusId "); builder.append(" ) t "); return baseDao.queryForString(builder.toString(),new SqlParameter("cusId",cusId)); } /** * 驻场运维新处理数量 * @param cusId * @return */ private String getIncidentLocalDealNum(String cusId){ StringBuilder builder = new StringBuilder(); builder.append(" "); builder.append(" select cast(GROUP_CONCAT(t.num SEPARATOR '/') as char) from ( "); builder.append(" ( "); builder.append(" select count(c.ID) num from SC_WORKFLOW_INCIDENT_LOCAL c,workflow_base b,workflow_node n "); builder.append(" where c.FLOW_ID = b.id and n.ID = b.CURRENT_NODE_ID "); builder.append(" and DATE_FORMAT(c.CREATE_TIME,'%Y%m')= DATE_FORMAT(NOW(),'%Y%m') and n.DEAL_TYPE = 1 and c.CUSTOMER_ID=:cusId "); builder.append(" ) "); builder.append(" union all "); builder.append(" ( "); builder.append(" select count(c.ID) num from SC_WORKFLOW_INCIDENT_LOCAL c,workflow_base b "); builder.append(" where c.FLOW_ID = b.id "); builder.append(" and DATE_FORMAT(c.CREATE_TIME,'%Y%m')= DATE_FORMAT(NOW(),'%Y%m') and b.wfstate=1 "); builder.append(" and c.CUSTOMER_ID=:cusId "); builder.append(" ) "); builder.append(" union all "); builder.append(" ( "); builder.append(" select count(ID) num from SC_WORKFLOW_INCIDENT_LOCAL where DATE_FORMAT(CREATE_TIME,'%Y%m')= DATE_FORMAT(NOW(),'%Y%m') "); builder.append(" and (ANSWER_TIMEOUT=1 or DEAL_TIMEOUT=1) and CUSTOMER_ID=:cusId "); builder.append(" ) "); builder.append(" ) t "); return baseDao.queryForString(builder.toString(),new SqlParameter("cusId",cusId)); } /** * 日常巡检新增数量 * @param cusId * @return */ private String getDailyPatrolAddNum(String cusId){ StringBuilder builder = new StringBuilder(); builder.append(" select cast(GROUP_CONCAT(t.num SEPARATOR '/') as char) from ( "); builder.append(" select count(id) num from CI_DAILY_PATROL where DATE_FORMAT(PATROL_DATE,'%Y%m%d')= DATE_FORMAT(NOW(),'%Y%m%d') and CUS_ID=:cusId "); builder.append(" union all "); builder.append(" select count(id) num from CI_DAILY_PATROL where YEARWEEK(PATROL_DATE)=YEARWEEK(NOW()) and CUS_ID=:cusId "); builder.append(" union all "); builder.append(" select count(id) num from CI_DAILY_PATROL where DATE_FORMAT(PATROL_DATE,'%Y%m')= DATE_FORMAT(NOW(),'%Y%m') and CUS_ID=:cusId "); builder.append(" ) t "); return baseDao.queryForString(builder.toString(),new SqlParameter("cusId",cusId)); } /** * 日常巡检处理数量 * @param cusId * @return */ private String getDailyPatrolDealNum(String cusId){ StringBuilder builder = new StringBuilder(); builder.append(" select cast(GROUP_CONCAT(t.num SEPARATOR '/') as char) from ( "); builder.append(" select count(id) num from CI_DAILY_PATROL where DATE_FORMAT(PATROL_DATE,'%Y%m')= DATE_FORMAT(NOW(),'%Y%m') "); builder.append(" and STATE=1 and CUS_ID=:cusId "); builder.append(" union all "); builder.append(" select count(id) num from CI_DAILY_PATROL where DATE_FORMAT(PATROL_DATE,'%Y%m')= DATE_FORMAT(NOW(),'%Y%m') "); builder.append(" and STATE=2 and CUS_ID=:cusId "); builder.append(" union all "); builder.append(" select count(id) num from CI_DAILY_PATROL where DATE_FORMAT(PATROL_DATE,'%Y%m')= DATE_FORMAT(NOW(),'%Y%m') "); builder.append(" and STATE=3 and CUS_ID=:cusId "); builder.append(" ) t "); return baseDao.queryForString(builder.toString(),new SqlParameter("cusId",cusId)); } /** * 例行巡检新增数量 * @param cusId * @return */ private String getRemindAddNum(String cusId){ StringBuilder builder = new StringBuilder(); builder.append(" select cast(GROUP_CONCAT(t.num SEPARATOR '/') as char) from ( "); builder.append(" select count(id) num from SC_WORKFLOW_CI_REMIND where DATE_FORMAT(CREATE_TIME,'%Y%m%d')= DATE_FORMAT(NOW(),'%Y%m%d') and CUSTOMER_ID=:cusId "); builder.append(" union all "); builder.append(" select count(id) num from SC_WORKFLOW_CI_REMIND where YEARWEEK(CREATE_TIME)=YEARWEEK(NOW()) and CUSTOMER_ID=:cusId "); builder.append(" union all "); builder.append(" select count(id) num from SC_WORKFLOW_CI_REMIND where DATE_FORMAT(CREATE_TIME,'%Y%m')= DATE_FORMAT(NOW(),'%Y%m') and CUSTOMER_ID=:cusId "); builder.append(" ) t "); return baseDao.queryForString(builder.toString(),new SqlParameter("cusId",cusId)); } /** * 例行巡检处理数量 * @param cusId * @return */ private String getRemindDealNum(String cusId){ StringBuilder builder = new StringBuilder(); builder.append(" select cast(GROUP_CONCAT(t.num SEPARATOR '/') as char) from ( "); builder.append(" ( "); builder.append(" select count(t.ID) num from CI_REMIND_TIMERTASK t ,CI_REMIND_CUSTOMER_ITEM i "); builder.append(" where t.CUSTOMER_ITEM_ID = i.ID and t.STATE=1 "); builder.append(" and DATE_FORMAT(t.PLAN_EXECUTION_DATE,'%Y%m') = DATE_FORMAT(now(),'%Y%m') and i.CUSTOMER_ID=:cusId "); builder.append(" ) "); builder.append(" union all "); builder.append(" ( "); builder.append(" select count(c.ID) num from SC_WORKFLOW_CI_REMIND c,workflow_base b "); builder.append(" where c.FLOW_ID = b.id "); builder.append(" and DATE_FORMAT(c.CREATE_TIME,'%Y%m')= DATE_FORMAT(NOW(),'%Y%m') and b.WFSTATE=1 "); builder.append(" and c.CUSTOMER_ID=:cusId "); builder.append(" ) "); builder.append(" union all "); builder.append(" ( "); builder.append(" select count(c.ID) num from SC_WORKFLOW_CI_REMIND c,workflow_base b "); builder.append(" where c.FLOW_ID = b.id "); builder.append(" and DATE_FORMAT(c.CREATE_TIME,'%Y%m')= DATE_FORMAT(NOW(),'%Y%m') and b.WFSTATE=2 "); builder.append(" and c.CUSTOMER_ID=:cusId "); builder.append(" ) "); builder.append(" ) t "); return baseDao.queryForString(builder.toString(),new SqlParameter("cusId",cusId)); } /** * 健康检查新增数量 * @param cusId * @return */ private String getHealthAddNum(String cusId){ StringBuilder builder = new StringBuilder(); builder.append(" select cast(GROUP_CONCAT(t.num SEPARATOR '/') as char) from ( "); builder.append(" select count(id) num from SC_WORKFLOW_CI_HEALTH where DATE_FORMAT(CREATE_TIME,'%Y%m%d')= DATE_FORMAT(NOW(),'%Y%m%d') and CUSTOMER_ID=:cusId "); builder.append(" union all "); builder.append(" select count(id) num from SC_WORKFLOW_CI_HEALTH where YEARWEEK(CREATE_TIME)=YEARWEEK(NOW()) and CUSTOMER_ID=:cusId "); builder.append(" union all "); builder.append(" select count(id) num from SC_WORKFLOW_CI_HEALTH where DATE_FORMAT(CREATE_TIME,'%Y%m')= DATE_FORMAT(NOW(),'%Y%m') and CUSTOMER_ID=:cusId "); builder.append(" ) t "); return baseDao.queryForString(builder.toString(),new SqlParameter("cusId",cusId)); } /** * 健康检查处理数量 * @param cusId * @return */ private String getHealthDealNum(String cusId){ StringBuilder builder = new StringBuilder(); builder.append(" select cast(GROUP_CONCAT(t.num SEPARATOR '/') as char) from ( "); builder.append(" ( "); builder.append(" select count(t.ID) num from CI_HEALTH_PLAN_TIMER t ,CI_HEALTH_PLAN p "); builder.append(" where t.PLAN_ID = p.ID and p.CUS_ID = :cusId "); builder.append(" and t.STATE = 1 and DATE_FORMAT(t.PLAN_EXE_DATE,'%Y%m') = DATE_FORMAT(now(),'%Y%m') "); builder.append(" ) "); builder.append(" union all "); builder.append(" ( "); builder.append(" select count(c.ID) num from SC_WORKFLOW_CI_HEALTH c,workflow_base b,workflow_node n "); builder.append(" where c.FLOW_ID = b.id and b.wfstate=1 and DATE_FORMAT(c.CREATE_TIME,'%Y%m') = DATE_FORMAT(now(),'%Y%m') "); builder.append(" and c.CUSTOMER_ID=:cusId "); builder.append(" ) "); builder.append(" union all "); builder.append(" ( "); builder.append(" select count(c.ID) num from SC_WORKFLOW_CI_HEALTH c,workflow_base b,workflow_node n "); builder.append(" where c.FLOW_ID = b.id and b.wfstate=2 and DATE_FORMAT(c.CREATE_TIME,'%Y%m') = DATE_FORMAT(now(),'%Y%m') "); builder.append(" and c.CUSTOMER_ID=:cusId "); builder.append(" ) "); builder.append(" ) t "); return baseDao.queryForString(builder.toString(),new SqlParameter("cusId",cusId)); } /** * 知识库新增数量 * @param cusId * @return */ private String getKnowlegeAddNum(String cusId){ StringBuilder builder = new StringBuilder(); builder.append(" select cast(GROUP_CONCAT(t.num SEPARATOR '/') as char) from ( "); builder.append(" select count(id) num from KM_LIBRARY_TEMP where DATE_FORMAT(CREATE_TIME,'%Y%m%d')= DATE_FORMAT(NOW(),'%Y%m%d') "); builder.append(" union all "); builder.append(" select count(id) num from KM_LIBRARY_TEMP where YEARWEEK(CREATE_TIME)=YEARWEEK(NOW()) "); builder.append(" union all "); builder.append(" select count(id) num from KM_LIBRARY_TEMP where DATE_FORMAT(CREATE_TIME,'%Y%m')= DATE_FORMAT(NOW(),'%Y%m') "); builder.append(" ) t "); return baseDao.queryForString(builder.toString(),new SqlParameter("cusId",cusId)); } /** * 知识库处理数量 * @param cusId * @return */ private String getKnowlegeDealNum(String cusId){ StringBuilder builder = new StringBuilder(); builder.append(" select cast(GROUP_CONCAT(t.num SEPARATOR '/') as char) from ( "); builder.append(" ( "); builder.append(" select count(c.ID) num from KM_LIBRARY_TEMP c "); builder.append(" where 1=1 "); builder.append(" and DATE_FORMAT(c.CREATE_TIME,'%y%M') = DATE_FORMAT(now(),'%y%M') and c.audit_state=1 "); builder.append(" ) "); builder.append(" union all "); builder.append(" ( "); builder.append(" select count(c.ID) num from KM_LIBRARY c "); builder.append(" where 1=1 "); builder.append(" and DATE_FORMAT(c.CREATE_TIME,'%y%M') = DATE_FORMAT(now(),'%y%M') "); builder.append(" ) "); builder.append(" ) t "); return baseDao.queryForString(builder.toString(),new SqlParameter("cusId",cusId)); } /** * 配置库新增数量 * @param cusId * @return */ private String getCiAddNum(String cusId){ StringBuilder builder = new StringBuilder(); builder.append(" select cast(GROUP_CONCAT(t.num SEPARATOR '/') as char) from ( "); builder.append(" select count(id) num from CMDB_CI_BASE where DATE_FORMAT(CREATE_TIME,'%Y%m%d')= DATE_FORMAT(NOW(),'%Y%m%d') and CUS_ID=:cusId "); builder.append(" union all "); builder.append(" select count(id) num from CMDB_CI_BASE where YEARWEEK(CREATE_TIME)=YEARWEEK(NOW()) and CUS_ID=:cusId "); builder.append(" union all "); builder.append(" select count(id) num from CMDB_CI_BASE where DATE_FORMAT(CREATE_TIME,'%Y%m')= DATE_FORMAT(NOW(),'%Y%m') and CUS_ID=:cusId "); builder.append(" ) t "); return baseDao.queryForString(builder.toString(),new SqlParameter("cusId",cusId)); } /** * 配置库处理数量 * @param cusId * @return */ private String getCiDealNum(String cusId){ StringBuilder builder = new StringBuilder(); builder.append(" select cast(GROUP_CONCAT(t.num SEPARATOR '/') as char) from ( "); builder.append(" ( "); builder.append(" select count(c.ID) num from CMDB_CI_BASE c"); builder.append(" where 1=1 "); builder.append(" and DATE_FORMAT(c.CREATE_TIME,'%y%M') = DATE_FORMAT(now(),'%y%M') and c.STATE=0 "); builder.append(" and c.CUS_ID=:cusId "); builder.append(" ) "); builder.append(" union all "); builder.append(" ( "); builder.append(" select count(c.ID) num from CMDB_CI_BASE c "); builder.append(" where 1=1 "); builder.append(" and DATE_FORMAT(c.CREATE_TIME,'%y%M') = DATE_FORMAT(now(),'%y%M') and c.STATE=1 "); builder.append(" and c.CUS_ID=:cusId "); builder.append(" ) "); builder.append(" ) t "); return baseDao.queryForString(builder.toString(),new SqlParameter("cusId",cusId)); } /** * 满意度调查新增数量 * @param cusId * @return */ private String getSatifactionAddNum(String cusId){ StringBuilder builder = new StringBuilder(); builder.append(" select cast(GROUP_CONCAT(t.num SEPARATOR '/') as char) from ( "); builder.append(" select count(id) num from ORDER_SATIS_INFO where DATE_FORMAT(INVEST_TIME,'%Y%m%d')= DATE_FORMAT(NOW(),'%Y%m%d') and CUSTOMER_ID=:cusId "); builder.append(" union all "); builder.append(" select count(id) num from ORDER_SATIS_INFO where YEARWEEK(INVEST_TIME)=YEARWEEK(NOW()) and CUSTOMER_ID=:cusId "); builder.append(" union all "); builder.append(" select count(id) num from ORDER_SATIS_INFO where DATE_FORMAT(INVEST_TIME,'%Y%m')= DATE_FORMAT(NOW(),'%Y%m') and CUSTOMER_ID=:cusId "); builder.append(" ) t "); return baseDao.queryForString(builder.toString(),new SqlParameter("cusId",cusId)); } /** * 满意度调查得分 * @param cusId * @return */ private Map getSatifactionScore(String cusId){ StringBuilder builder = new StringBuilder(); builder.append(" select ALL_SCORE,REQUEST_SCORE from TOTLE_SATIS_INFO "); builder.append(" where month= DATE_FORMAT(now(),'%Y%m') and CUSTOMER_ID = :cusId "); return baseDao.queryForMap(builder.toString(),new SqlParameter("cusId",cusId)); } @Override public Map getCusSatisfactionSurvey(HttpServletRequest request) { List cusList = customerFacade.getCusList(); StringBuilder builder = new StringBuilder(); builder.append(" select i.customer_id id,i.all_score score "); builder.append(" from totle_satis_info i "); builder.append(" where i.month = date_format(now(),'%Y%m') "); builder.append(" group by customer_id "); List dataList = baseDao.queryForList(builder.toString()); Map dataListSet = new HashMap(); if(dataList!=null&&dataList.size()>0){ for(Map map:dataList){ dataListSet.put(map.get("id").toString(), map.get("score")); } } List categories = new ArrayList(); for(Map map:cusList){ String cusName = ConvertUtil.obj2StrBlank(map.get("name")); categories.add(cusName); } List series = new ArrayList(); for(Map cus:cusList){ String key = ConvertUtil.obj2StrBlank(cus.get("id")); if(dataListSet.get(key)!=null){ series.add(ConvertUtil.obj2Double(dataListSet.get(key))); }else{ series.add(0); } } Map surveyMap = new HashMap(); surveyMap.put("series",series); surveyMap.put("categories",categories); return surveyMap; } @Override public Map getCusSatisfactionDetail(String cusId) { StringBuilder builder = new StringBuilder(); customerFacade.getCusById(cusId); Map cusInfo = customerFacade.getCusById(cusId); builder.setLength(0); builder.append(" select CONCAT(d.SATIS_TYPE,'_',i.MONTH) ID,d.SATIS_SCORE SCORE "); builder.append(" from TOTLE_SATIS_INFO i,TOTLE_SATIS_DETAIL d "); builder.append(" where i.ID = d.BUS_ID "); builder.append(" and left(i.MONTH,4) = DATE_FORMAT(now(),'%Y') "); builder.append(" and i.CUSTOMER_ID = :cusId "); builder.append(" group by i.MONTH,d.SATIS_TYPE "); List dataList = baseDao.queryForList(builder.toString(),new SqlParameter("cusId",cusId)); Map dataListMap = new HashMap(); if(dataList!=null&&dataList.size()>0){ for(Map map:dataList){ dataListMap.put(map.get("ID").toString(), map.get("SCORE")); } } //组合十二月 List categs = new ArrayList(); String curYear = ConvertUtil.obj2StrBlank(DateUtil.getYear()); List categories = new ArrayList(); for(int i=1;i<=12;i++){ if(i<10){ categs.add(curYear+"0"+i); categories.add(curYear+"-0"+i); }else{ categs.add(curYear+i); categories.add(curYear+"-"+i); } } //组装图表数据 List labelList = new ArrayList(); labelList.add("1"); labelList.add("3"); labelList.add("6"); List series = new ArrayList(); for(String label:labelList){ Map tempMap = new HashMap(); List tempList = new ArrayList(); for(String categorie:categs){ String key = label + "_"+ categorie; if(dataListMap.get(key)!=null){ tempList.add(dataListMap.get(key)); }else{ tempList.add(0); } } if(label.equals("1")){ tempMap.put("name","事件响应支持类"); }else if(label.equals("3")){ tempMap.put("name","驻场服务类"); }else if(label.equals("6")){ tempMap.put("name","驻场响应支持类"); } tempMap.put("data", tempList); series.add(tempMap); } Map surveyMap = new HashMap(); surveyMap.put("series",series); surveyMap.put("categories",categories); surveyMap.put("cusInfo",cusInfo); return surveyMap; } /** * 文档新增数量 * @param cusId * @return */ private String getFileAddNum(){ StringBuilder builder = new StringBuilder(); builder.append(" select cast(GROUP_CONCAT(t.num SEPARATOR '/') as char) from ( "); builder.append(" select count(id) num from GG_FILES where DATE_FORMAT(CREATE_TIME,'%Y%m%d')= DATE_FORMAT(NOW(),'%Y%m%d') and (AUDIT_STATE = :shtg or AUDIT_STATE IS NULL) "); builder.append(" union all "); builder.append(" select count(id) num from GG_FILES where YEARWEEK(CREATE_TIME)=YEARWEEK(NOW()) and (AUDIT_STATE = :shtg or AUDIT_STATE IS NULL) "); builder.append(" union all "); builder.append(" select count(id) num from GG_FILES where DATE_FORMAT(CREATE_TIME,'%Y%m')= DATE_FORMAT(NOW(),'%Y%m') and (AUDIT_STATE = :shtg or AUDIT_STATE IS NULL) "); builder.append(" ) t "); return baseDao.queryForString(builder.toString(),new SqlParameter("shtg",Constants.FILE_STATE_SHTG)); } /** * 文档处理数量 * @param cusId * @return */ private String getFileDealNum(){ StringBuilder builder = new StringBuilder(); builder.append(" "); builder.append(" select cast(GROUP_CONCAT(t.num SEPARATOR '/') as char) from ( "); builder.append(" ( "); builder.append(" select count(ID) num from GG_FILES "); builder.append(" where DATE_FORMAT(CREATE_TIME,'%Y%m') = DATE_FORMAT(now(),'%Y%m') and AUDIT_STATE = :wsh "); builder.append(" ) "); builder.append(" union all "); builder.append(" ( "); builder.append(" select count(ID) num from GG_FILES where DATE_FORMAT(CREATE_TIME,'%Y%m') = DATE_FORMAT(now(),'%Y%m') "); builder.append(" and (AUDIT_STATE = :shtg or AUDIT_STATE = :shbtg or AUDIT_STATE IS NULL) "); builder.append(" ) "); builder.append(" ) t "); Map param = new HashMap(); param.put("wsh", Constants.FILE_STATE_DSH); param.put("shtg", Constants.FILE_STATE_SHTG); param.put("shbtg", Constants.FILE_STATE_SHBTG); return baseDao.queryForString(builder.toString(),param); } }