package cn.ksource.web.controller.business.pages.desktop; import java.text.SimpleDateFormat; 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 javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; import cn.ksource.beans.GG_USER; import cn.ksource.core.license.LicenseController; import cn.ksource.core.page.PageInfo; import cn.ksource.core.util.ConvertUtil; import cn.ksource.core.util.DateUtil; import cn.ksource.core.util.JsonUtil; import cn.ksource.core.util.ParamsMapUtil; import cn.ksource.core.util.StringUtil; import cn.ksource.core.web.LoginUser; import cn.ksource.core.web.WebUtil; import cn.ksource.web.Constants; import cn.ksource.web.GnConstants; import cn.ksource.web.SysConstants; import cn.ksource.web.facade.JsglFacade; import cn.ksource.web.facade.customermanage.CustomerManageFacade; import cn.ksource.web.facade.desktop.DesktopFacade; import cn.ksource.web.facade.incident.IncidentFacade; import cn.ksource.web.facade.order.OrderFacade; import cn.ksource.web.facade.question.QuestionFacade; import cn.ksource.web.facade.traffic.TrafficFacade; import cn.ksource.web.facade.zc.ZcywFacade; import de.schlichtherle.license.LicenseContent; @Controller @RequestMapping("/business/pages/desktop") public class DesktopController { @Resource private JsglFacade jsglFacade; @Resource private OrderFacade orderFacade; @Resource private IncidentFacade incidentFacade; @Resource private QuestionFacade questionFacade; @Resource private ZcywFacade zcywFacade; @Resource private DesktopFacade desktopFacade; @Resource private CustomerManageFacade customerFacade; @Autowired private TrafficFacade trafficFacade; /** * 跳转页面 * @param model * @param request * @return * @author chenlong */ @RequestMapping("homeJump.html") public String homeJump(Model model,HttpServletRequest request){ ModelAndView view = new ModelAndView(); //默认地址 String url = "/business/pages/desktop/defaultDesk.html"; List roles = jsglFacade.getRolesByUserId(WebUtil.getLoginedUserId(request), 1); if(roles.size()>1){ url = "/business/pages/desktop/selDesk.html"; }else if(roles.size()==1){ String identify = ConvertUtil.obj2StrBlank(roles.get(0).get("identify")); if (StringUtil.isNotBlank(identify)) { url = Constants.getINDEX(identify); } } return "redirect:"+url; } /** * 默认桌面 * @return * @author chenlong */ @RequestMapping("defaultDesk.html") public String defaultDesk(Model model,HttpServletRequest request){ setAc(request,model); return "/business/pages/desktop/defaultDesk"; } /** * 跳转到系统管理员桌面 */ @RequestMapping("sysmanager.html") public String sysmanager(Model model,HttpServletRequest request) { LicenseController licenseController = new LicenseController(); LicenseContent license; String licenseFileName = "license.lic"; String path = this.getClass().getClassLoader().getResource("").getPath().replace("WEB-INF/classes/", ""); try { license = licenseController.installLicense(path + licenseFileName); SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd"); String expire = df.format(license.getNotAfter()); Long expireDay = DateUtil.getFromTime2TimeByDay(DateUtil.getCurrentDate8(),Long.valueOf(expire)); model.addAttribute("expireDay", expireDay); model.addAttribute("expire", expire); } catch (Exception e) { e.printStackTrace(); } setAc(request,model); setFunList(request,model); return "/business/pages/desktop/sysmanager"; } /** * 公司领导 * @return * @author chenlong */ @RequestMapping("leaderDesk.html") public String leaderDesk(Model model,HttpServletRequest request){ setAc(request,model); List cusList = customerFacade.getCusList(); model.addAttribute("cusList", cusList); return "/business/pages/desktop/leaderDesk"; } /** * 管理层桌面 * @return * @author chenlong */ @RequestMapping("manageDesk.html") public String manageDesk(Model model,HttpServletRequest request){ setAc(request,model); List cusList = customerFacade.getCusList(); model.addAttribute("cusList", cusList); return "/business/pages/desktop/manageDesk"; } /** * 服务台桌面 * @return * @author chenlong */ @RequestMapping("serviceDesk.html") public String serviceDesk(Model model,HttpServletRequest request){ setAc(request,model); Map params = ParamsMapUtil.getParameterMap(request); params.put("userId", WebUtil.getLoginedUserId(request)); int order_num = orderFacade.queryMyOrderCount(params);//我的工单数量 int out_num = incidentFacade.queryincidentTimeoutCount(params);//超时数量 int pool_num = orderFacade.orderpoolCount(params);//工单池数量 int incident_num = incidentFacade.queryincidentJxzCount(params);//事件数量 int question_count = questionFacade.queryQuestionJxzCount(params);//问题 int local_count = zcywFacade.zcywCountForFwt(params);//驻场运维 int remind_count = 0;//例行维护 int health_count = 0;//健康检查 int satis_count = 0;//满意度 model.addAttribute("order_num", order_num); model.addAttribute("out_num", out_num); model.addAttribute("pool_num", pool_num); model.addAttribute("incident_num", incident_num); model.addAttribute("question_count", question_count); model.addAttribute("local_count", local_count); model.addAttribute("remind_count", remind_count); model.addAttribute("health_count", health_count); model.addAttribute("satis_count", satis_count); //查询工单类型 Map state = Constants.mapWORKFLOW_BASE_BUSINESS_TYPE; List ways = new ArrayList(); for (Map.Entry entry : state.entrySet()) { String key = entry.getKey(); String value = entry.getValue(); Map map = new HashMap(); map.put("typeId", key); map.put("typeName", value); ways.add(map); } model.addAttribute("types", ways); setMyOrder(request, model); return "/business/pages/desktop/serviceDesk"; } /** * 一线桌面 * @return * @author chenlong */ @RequestMapping("flineDesk.html") public String flineDesk(Model model,HttpServletRequest request){ setAc(request,model); setMyOrder(request, model); return "/business/pages/desktop/flineDesk"; } /** * 二线桌面 * @return * @author chenlong */ @RequestMapping("slineDesk.html") public String slineDesk(Model model,HttpServletRequest request){ setAc(request,model); setMyOrder(request, model); return "/business/pages/desktop/slineDesk"; } /** * 三线桌面 * @return * @author chenlong */ @RequestMapping("tlineDesk.html") public String tlineDesk(Model model,HttpServletRequest request){ setAc(request,model); setMyOrder(request, model); return "/business/pages/desktop/tlineDesk"; } /** * 驻场桌面 * @return * @author chenlong */ @RequestMapping("locationDesk.html") public String locationDesk(Model model,HttpServletRequest request){ setAc(request,model); setMyOrder(request, model); return "/business/pages/desktop/locationDesk"; } /** * 运维经理桌面 * @return * @author chenlong */ @RequestMapping("operationDesk.html") public String operationDesk(Model model,HttpServletRequest request){ setAc(request,model); List cusList = customerFacade.getCusList(); model.addAttribute("cusList", cusList); //查询工单类型 Map state = Constants.mapWORKFLOW_BASE_BUSINESS_TYPE; List ways = new ArrayList(); for (Map.Entry entry : state.entrySet()) { String key = entry.getKey(); String value = entry.getValue(); Map map = new HashMap(); map.put("typeId", key); map.put("typeName", value); ways.add(map); } model.addAttribute("types", ways); setMyOrder(request, model); return "/business/pages/desktop/operationDesk"; } /** * 配置管理员 * @param model * @param request * @return * @author chenlong */ @RequestMapping("cfgDesk.html") public String cfgDesk(Model model,HttpServletRequest request){ setAc(request,model); setMyOrder(request,model); return "/business/pages/desktop/cfgDesk"; } /** * 知识管理员桌面 * @return * @author chenlong */ @RequestMapping("knowDesk.html") public String knowDesk(Model model,HttpServletRequest request){ setAc(request,model); setMyOrder(request, model); return "/business/pages/desktop/knowDesk"; } /** * 选择桌面类型 * @param model * @param request * @return * @author chenlong */ @SuppressWarnings({ "rawtypes", "unchecked" }) @RequestMapping(value="selDesk.html",method=RequestMethod.GET) public String selDesk(Model model,HttpServletRequest request){ List list = jsglFacade.getRolesByUserId(WebUtil.getLoginedUserId(request), 1); model.addAttribute("list", list); return "/business/pages/desktop/selDesk"; } /** * 选择桌面 * @param model * @param request * @return * @author chenlong */ @RequestMapping(value="selDesk.html",method=RequestMethod.POST) public String doSelDesk(Model model,HttpServletRequest request){ String roleId = request.getParameter("roleId"); String userId = WebUtil.getLoginedUserId(request); jsglFacade.setDefaultRole(userId, roleId); //默认地址 String url = "/business/pages/desktop/defaultDesk.html"; List roles = jsglFacade.getRolesByUserId(WebUtil.getLoginedUserId(request), 1); if(roles.size()>1){ url = "/business/pages/desktop/selDesk.html"; }else if(roles.size()==1){ String identify = ConvertUtil.obj2StrBlank(roles.get(0).get("identify")); if (StringUtil.isNotBlank(identify)) { url = Constants.getINDEX(identify); } } return "redirect:"+url; } /** * 设置权限 * @param request * @param model * @author chenlong */ private void setAc(HttpServletRequest request,Model model){ LoginUser user = WebUtil.getLoginUser(request); Map> gnMap = user.getGnMap(); Map> ejgnMap = user.getEjgnMap(); Map param=ParamsMapUtil.getParameterMap(request); Map countNum=trafficFacade.getTrafficNum(param); model.addAttribute("countNum", countNum); } /** * 运维经理桌面详情 * @param request * @param model * @return * @author chenlong */ @RequestMapping(value="operationDeskDetail.html",method=RequestMethod.POST) public String operationDeskDetail(HttpServletRequest request,Model model){ String cusId = request.getParameter("cusId"); Map info = desktopFacade.getOperationDeskDetail(cusId); model.addAttribute("info", info); return "/business/pages/desktop/operationDeskDetail"; } @RequestMapping("getCusSatisfactionSurvey.html") public void getCusSatisfactionSurvey(Model model,HttpServletRequest request, HttpServletResponse response){ Map SurveyMap = desktopFacade.getCusSatisfactionSurvey(request); WebUtil.write(response, JsonUtil.map2Json(SurveyMap)); } @RequestMapping("getCusSatisfactionDetail.html") public void getCusSatisfactionDetail(Model model,HttpServletRequest request, HttpServletResponse response){ String cusId = request.getParameter("cusId"); Map SurveyMap = desktopFacade.getCusSatisfactionDetail(cusId); System.out.println(JsonUtil.map2Json(SurveyMap)); WebUtil.write(response, JsonUtil.map2Json(SurveyMap)); } @RequestMapping("getLastStep.html") public void getLastStep(Model model,HttpServletRequest request, HttpServletResponse response){ String lastIndex = request.getParameter("lastIndex"); List cusList = customerFacade.getCusList(); List targetList = new ArrayList(); int flag = Integer.valueOf(lastIndex)-6; if(flag>=0){ for(int i=0;i<6;i++){ int index = flag + i; if(index==0){ cusList.get(index).put("flowTop", true); } cusList.get(index).put("index", index); targetList.add(cusList.get(index)); } } WebUtil.write(response, JsonUtil.list2Json(targetList)); } /** * 获取下一页项目 * @param model * @param request * @param response */ @RequestMapping("getNextStep.html") public void getNextStep(Model model,HttpServletRequest request, HttpServletResponse response){ String nextIndex = request.getParameter("nextIndex"); List cusList = customerFacade.getCusList(); List targetList = new ArrayList(); for(int i=1;i<=6;i++){ int index = Integer.valueOf(nextIndex)+i; if(index params = ParamsMapUtil.getParameterMap(request); params.put("userId", WebUtil.getUserId(request)); params.put("flowstate", Constants.WORKFLOW_NODE_FLOWSTATE_UNDISPOSE.toString()); params.put("status", Constants.WORKFLOW_BASE_WFSTATE_DOING.toString()); pageInfo = orderFacade.queryMyOrderData(pageInfo,params); model.addAttribute("pageInfo", pageInfo); } private void setFunList(HttpServletRequest request,Model model){ List lv3Set = new ArrayList(); LoginUser loginUser = WebUtil.getLoginUser(request); Map gnMap = loginUser.getGnMap(); if(null!=gnMap&&gnMap.containsKey(GnConstants.XGSZ)) { Map lv1Map= (Map)gnMap.get(GnConstants.XGSZ); if(null!=lv1Map) { List lv2List = (List)lv1Map.get("MENULIST"); if(lv2List!=null&&lv2List.size()>0){ for(Map lv2Map:lv2List){ if(lv2Map.get("MENULIST")!=null){ List lv3List = (List)lv2Map.get("MENULIST"); for(Map lv3Map:lv3List){ lv3Set.add(lv3Map); } } } } } } model.addAttribute("lv3Set", lv3Set); } @RequestMapping("updateUser.html") public void updateUser(HttpServletRequest request,HttpServletResponse response){ String id=WebUtil.getLoginedUserId(request); GG_USER user=new GG_USER(id).getInstanceById(); String is_tp=request.getParameter("is_tp"); user.setIs_tp(ConvertUtil.obj2Integer(is_tp)).update(); Map loguser=(Map)request.getSession().getAttribute("loguser"); loguser.put("IS_TP", ConvertUtil.obj2Integer(is_tp)); request.getSession().setAttribute("loguser", loguser); } }