package cn.ksource.web.controller.business.pages.servicelist; import cn.ksource.beans.CUSTOMER_CONTACTS; import cn.ksource.beans.SC_PARTNER_CUSTOMER_INFO; import cn.ksource.beans.SC_SERVCE_CATEGORY; import cn.ksource.beans.SC_SLA; import cn.ksource.core.page.PageInfo; import cn.ksource.core.util.*; import cn.ksource.core.web.SysInfo; import cn.ksource.core.web.WebUtil; import cn.ksource.web.Constants; import cn.ksource.web.facade.JsglFacade; import cn.ksource.web.facade.servicelist.SlaPartnerFacade; import cn.ksource.web.facade.servicelist.SlaProjectFacade; import cn.ksource.web.service.DataDictionaryService; import cn.ksource.web.service.sl.SlaProjectService; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 基础管理--客户管理控制器 * @author lixiang * */ @Controller @RequestMapping("/business/pages/servicelist/slaproject") public class SlaProjectController { @Resource(name="slaProjectFacade") private SlaProjectFacade slaProjectFacade; @Resource(name="slaPartnerFacade") private SlaPartnerFacade slaPartnerFacade; @Autowired private DataDictionaryService dataDictionaryService; @Autowired private SlaProjectService slaProjectService; @Autowired private JsglFacade jsglFacade; /** * 客户联系人列表 * @param request * @return */ @RequestMapping("projectContactsList.html") public ModelAndView projectContactsList(HttpServletRequest request){ ModelAndView modelAndView= new ModelAndView("/business/pages/servicelist/slaproject/projectContactsList"); return modelAndView; } /** * 客户联系人数据 * @param request * @return */ @RequestMapping("projectContactsData.html") public ModelAndView projectContactsData(HttpServletRequest request,PageInfo pageInfo){ ModelAndView modelAndView= new ModelAndView("/business/pages/servicelist/slaproject/projectContactsData"); Map params = ParamsMapUtil.getParameterMap(request); PageInfo info = slaProjectFacade.queryProjectContacts(params,pageInfo); modelAndView.addObject("info", info); return modelAndView; } /** * 客户联系人数量 * @param request * @param response * @return */ @RequestMapping("projectContactsCount.html") public void projectContactsCount(HttpServletRequest request,HttpServletResponse response){ Map params = ParamsMapUtil.getParameterMap(request); int count=slaProjectFacade.queryProjectContactsCount(params); WebUtil.write(response, String.valueOf(count)); } /** * 跳转到添加项目联系人 * @return * @author 李云鹏 */ @RequestMapping(value="addProjectContacts.html") public ModelAndView addProjectContacts(HttpServletRequest request){ ModelAndView modelAndView = new ModelAndView("/business/pages/servicelist/slaproject/addProjectContacts"); Map resultMap = slaProjectFacade.queryMaxCusNum(); String result = ConvertUtil.obj2StrBlank(resultMap.get("result")); if(result.equals("2")) { modelAndView.addObject("resultMap", resultMap); } else { String customerId = request.getParameter("customerId"); List levelList=dataDictionaryService.getDataDictionaryByCategoryKey(Constants.PROJECT_CONSTACTS); modelAndView.addObject("levelList", levelList); modelAndView.addObject("customerId", customerId); } return modelAndView; } /** * 跳转到当前客户的子客户页面 */ @RequestMapping("subCus.html") public ModelAndView subCus(HttpServletRequest request,HttpServletResponse response) { ModelAndView modelAndView = new ModelAndView("/business/pages/servicelist/slaproject/subCus"); String customerId = request.getParameter("customerId"); String subCustomerId = request.getParameter("subCustomerId"); //查询当前客户 Map currCus = new SC_PARTNER_CUSTOMER_INFO(customerId).getBeanMapById(); Map result = slaProjectFacade.querySubCus(customerId,subCustomerId); List customers = (List)result.get("subs"); List checkSl = (List)result.get("checks"); Map map = new HashMap(); if(subCustomerId.equals(customerId)){ currCus.put("checked", 1); map.put("checkId", subCustomerId); map.put("checkName", currCus.get("CUSTOMER_NAME")); checkSl.add(map); } modelAndView.addObject("customers", customers); modelAndView.addObject("checkSl", checkSl); modelAndView.addObject("currCus", currCus); modelAndView.addObject("customerId", customerId); modelAndView.addObject("subCustomerId", subCustomerId); return modelAndView; } /** * 跳转到当前客户的子客户页面 */ @RequestMapping("subCusSearch.html") public ModelAndView subCusSearch(HttpServletRequest request,HttpServletResponse response) { ModelAndView modelAndView = new ModelAndView("/business/pages/servicelist/slaproject/subCusSearch"); String customerId = request.getParameter("customerId"); String subCustomerId = request.getParameter("subCustomerId"); //查询当前客户 Map currCus = new SC_PARTNER_CUSTOMER_INFO(customerId).getBeanMapById(); Map result = slaProjectFacade.querySubCus(customerId,subCustomerId); List customers = (List)result.get("subs"); List checkSl = (List)result.get("checks"); Map map = new HashMap(); if(subCustomerId.equals(customerId)){ currCus.put("checked", 1); map.put("checkId", subCustomerId); map.put("checkName", currCus.get("CUSTOMER_NAME")); checkSl.add(map); } modelAndView.addObject("customers", customers); modelAndView.addObject("checkSl", checkSl); modelAndView.addObject("currCus", currCus); modelAndView.addObject("customerId", customerId); modelAndView.addObject("subCustomerId", subCustomerId); return modelAndView; } /** * 检验登陆名是否一样 * @param request * @param response */ @RequestMapping("checkLogin_name.html") public void checkCustomer_name(HttpServletRequest request,HttpServletResponse response){ String login_name = AjaxUtil.decode(request.getParameter("login_name")); if (slaProjectFacade.isLogin_NameExists(login_name)) { WebUtil.write(response, "1"); } else { WebUtil.write(response, "0"); } } /** * 检验邮箱是否一样 * @param request * @param response */ @RequestMapping("checkEmail.html") public void checkEmail(HttpServletRequest request,HttpServletResponse response){ String email = AjaxUtil.decode(request.getParameter("email")); String id = request.getParameter("id"); if (slaProjectFacade.isEmailExists(email,id)) { WebUtil.write(response, "1"); } else { WebUtil.write(response, "0"); } } /** * 添加修改客户联系人 * @param request * @return * @author 李云鹏 */ @RequestMapping(value="saveProjectContacts.html") public ModelAndView saveProjectContacts(HttpServletRequest request){ String id= request.getParameter("id"); String customerId = request.getParameter("customerId"); if(StringUtil.notEmpty(id)){ slaProjectFacade.updateProjectContacts(request); }else{ Map resultMap = slaProjectFacade.queryMaxCusNum(); String result = ConvertUtil.obj2StrBlank(resultMap.get("result")); if(result.equals("2")) { return WebUtil.sysInfoPage(request, "操作失败!您最多只能添加"+resultMap.get("maxNum")+"

启用的账号!

", "window.top.hideDialog('0');", SysInfo.Error,"/business/pages/servicelist/slaproject/projectContactsList.html?customerId="+customerId); } slaProjectFacade.saveProjectContacts(request); } return WebUtil.sysInfoPage(request, "操作成功!", "window.top.hideDialog('0');", SysInfo.Success,"/business/pages/servicelist/slaproject/projectContactsList.html?customerId="+customerId); } /** * 跳转到修改页面 * @param request * @return * @author 李云鹏 */ @RequestMapping("updateProjectContacts.html") public ModelAndView updateProjectContacts(HttpServletRequest request){ ModelAndView modelAndView = new ModelAndView("/business/pages/servicelist/slaproject/updateProjectContacts"); String contactId=request.getParameter("id"); String customerId = request.getParameter("customerId"); Map contacts= new CUSTOMER_CONTACTS(contactId).getBeanMapById(); List levelList=dataDictionaryService.getDataDictionaryByCategoryKey(Constants.PROJECT_CONSTACTS); modelAndView.addObject("levelList", levelList); modelAndView.addObject("customerId", customerId); modelAndView.addObject("contact", contacts); return modelAndView; } /** * 密码初始化 */ @RequestMapping("initPwd.html") public void onInitPwd(HttpServletRequest request,HttpServletResponse response){ String id = request.getParameter("id"); String loginname = request.getParameter("loginname"); if (StringUtils.isNotBlank(id) && StringUtils.isNotBlank(loginname)) { slaProjectFacade.execInitUserPwd(id, loginname); } WebUtil.write(response, "1"); } /** * 删除客户联系人 * @param request * @author 李云鹏 */ @RequestMapping("deleteProjectContacts") public void deleteProjectContacts(HttpServletRequest request,HttpServletResponse response){ String state=request.getParameter("state"); String flag = "1"; Map returnMap = new HashMap(); if(state.equals("1")) { Map resultMap = slaProjectFacade.queryMaxCusNum(); String result = ConvertUtil.obj2StrBlank(resultMap.get("result")); if(result.equals("2")) { flag = "2"; returnMap.put("maxNum", resultMap.get("maxNum")); } } if(flag.equals("1")) { slaProjectFacade.deleteProjectContacts(request); } returnMap.put("flag", flag); WebUtil.write(response,JsonUtil.map2Json(returnMap)); } /** * 跳转到项目联系人详情页面 * */ @RequestMapping("contactsDetail.html") public ModelAndView contactsDetail(HttpServletRequest request){ ModelAndView modelAndView = new ModelAndView("/business/pages/servicelist/slaproject/contactsDetail"); String contactId=request.getParameter("id"); Map contacts= new CUSTOMER_CONTACTS(contactId).getBeanMapById(); modelAndView.addObject("contact", contacts); return modelAndView; } /** * 查询服务目录三级分类 */ @RequestMapping("serviceListTree.html") public ModelAndView serviceListTree(HttpServletRequest request,HttpServletResponse response) { ModelAndView view = new ModelAndView("/business/pages/servicelist/slaproject/serviceListTree"); String customerId = request.getParameter("customerId"); String sl = request.getParameter("sl"); Map trees = slaProjectService.queryProjectSeviceList(customerId,sl); List tree = (List)trees.get("categoryList"); Map slMap = (Map)trees.get("slMap"); List checkSl = new ArrayList(); if(null!=slMap && slMap.size()>0) { for (Map.Entry entry : slMap.entrySet()) { String key = entry.getKey(); String value = entry.getValue(); Map map = new HashMap(); if(!key.equals(value)){ map.put("checkId", key); map.put("checkName", value); checkSl.add(map); } } } view.addObject("trees", tree); view.addObject("checkSl", checkSl); return view; } /** * 通过优先级和影响度查询对应的级别 */ @SuppressWarnings({ "unchecked", "unused", "rawtypes" }) @RequestMapping("queryLevel.html") public void queryLevel(HttpServletRequest request,HttpServletResponse response) { String priority_id = request.getParameter("priority_id"); String influence_id = request.getParameter("influence_id"); String serivceListId = request.getParameter("serivceListId"); String customerId = request.getParameter("customer_id"); String levelId = slaProjectService.queryLevel(priority_id,influence_id,customerId); SC_SLA sc=new SC_SLA(levelId).getInstanceById(); Map sla=new HashMap(); sla.put("levelId", sc.getId()); sla.put("levelName", sc.getLevel_name()); //查询三级目录的sla String[] services = serivceListId.split("-"); String sid=services[2]; String eid=services[1]; Map param=new HashMap(); param.put("levelId", levelId); param.put("customerId", customerId); param.put("cate_id", sid); Map slaS=slaProjectService.getSla_level(param); if(slaS.size()>0){ sla.put("responseTime", slaS.get("RESPONSE_TIME")); sla.put("resolveTime", slaS.get("RESOLVE_TIME")); } param.put("cate_id", eid); Map slas=slaProjectService.getSla_level(param); if(slaS.size()==0 && slas.size()>0){ sla.put("responseTime", slas.get("RESPONSE_TIME")); sla.put("resolveTime", slas.get("RESOLVE_TIME")); } param.put("cate_id", sid); Map slaE=slaProjectService.getZsSla(param); if(slaS.size()==0 && slas.size()==0 && slaE.size()>0){ sla.put("responseTime", slaE.get("RESPONSE_TIME")); sla.put("resolveTime", slaE.get("RESOLVE_TIME")); } if(slaS.size()==0 && slaE.size()==0 && slas.size()==0 ){ param.put("cate_id", eid); Map slaEJ=slaProjectService.getZsSla(param); if(slaEJ.size()>0){ sla.put("responseTime", slaEJ.get("RESPONSE_TIME")); sla.put("resolveTime", slaEJ.get("RESOLVE_TIME")); }else{ Map slaG=slaProjectService.getGsSla(param); if(slaG.size()>0){ sla.put("responseTime", slaG.get("RESPONSE_TIME")); sla.put("resolveTime", slaG.get("RESOLVE_TIME")); }else{ sla.put("responseTime", ""); sla.put("resolveTime", ""); } } } // SLALevel slaLevel = new SLALevel(); // if(StringUtil.notEmpty(serivceListId)) { // String[] services = serivceListId.split("-"); // if(services.length == 3) { // SLAEntity slaEntity = slaProjectService.getLevelMsg(customerId, services[2]); // slaLevel = slaEntity.getSLALevel(levelId); // } // } WebUtil.write(response, JsonUtil.obj2JsonObj(sla)); } /** * 健康检查明细表 * @param request * @return */ @RequestMapping("getHealthCiDetail.html") public ModelAndView getHealthCiDetail(HttpServletRequest request){ ModelAndView view = new ModelAndView("/business/pages/servicelist/slaproject/getHealthCiDetail"); Map infoMap=slaProjectFacade.getHealthCiDetail(request); view.addObject("dealerMap", infoMap.get("dealerMap")); view.addObject("ciList", infoMap.get("ciList")); return view; } /** * 跳转到服务人员页面 */ @RequestMapping("serviceUser.html") public ModelAndView serviceUser(HttpServletRequest request) { ModelAndView modelAndView = new ModelAndView("/business/pages/servicelist/slaproject/serviceUser"); //Map result = slaProjectFacade.getserviceUser(request); String cateId = request.getParameter("cateId"); String secondcate = ""; String threecate = ""; SC_SERVCE_CATEGORY cate = new SC_SERVCE_CATEGORY(cateId).getInstanceById(); if(cate.getLevel() == 2) { secondcate = cateId; } else if(cate.getLevel() == 3) { threecate = cateId; secondcate = cate.getP_id(); } Map result = slaPartnerFacade.querySlaUser("", threecate, secondcate, cate.getLevel()); if(result == null || result.size() == 0){ result = slaProjectFacade.getserviceUser(request); } Map yxMap = (Map)result.get("yxMap"); Map exMap = (Map)result.get("exMap"); Map sxMap = (Map)result.get("sxMap"); yxMap.put("roleId", jsglFacade.getRoleByRoleKey(Constants.ROLE_FLINE).get("ID")); exMap.put("roleId", jsglFacade.getRoleByRoleKey(Constants.ROLE_SLINE).get("ID")); sxMap.put("roleId", jsglFacade.getRoleByRoleKey(Constants.ROLE_TLINE).get("ID")); yxMap.put("roleName", jsglFacade.getRoleByRoleKey(Constants.ROLE_FLINE).get("ROLENAME")); exMap.put("roleName", jsglFacade.getRoleByRoleKey(Constants.ROLE_SLINE).get("ROLENAME")); sxMap.put("roleName", jsglFacade.getRoleByRoleKey(Constants.ROLE_TLINE).get("ROLENAME")); modelAndView.addObject("yxMap", yxMap); modelAndView.addObject("exMap", exMap); modelAndView.addObject("sxMap", sxMap); modelAndView.addObject("isSelf", result.get("isSelf")); return modelAndView; } /** * 保存服务人员 */ @RequestMapping("saveUser.html") public ModelAndView saveUser(HttpServletRequest request,HttpServletResponse response) { boolean result = slaProjectFacade.saveUser(request); if(result) { return WebUtil.sysInfoPage(request, "操作成功!", "window.top.hideDialog('0')", SysInfo.Success,""); } else { return WebUtil.sysInfoPage(request, "操作失败!", "", SysInfo.Error,""); } } }