package cn.ksource.web.controller.wechat.ewyw; 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.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; import cn.ksource.beans.SC_WORKFLOW_CI_HEALTH; import cn.ksource.beans.SC_WORKFLOW_INCIDENT; import cn.ksource.beans.SC_WORKFLOW_INCIDENT_LOCAL; import cn.ksource.beans.SC_WORKFLOW_QUESTION; import cn.ksource.beans.WORKFLOW_NODE; import cn.ksource.core.page.PageInfo; import cn.ksource.core.util.ConvertUtil; import cn.ksource.core.util.ParamsMapUtil; import cn.ksource.core.util.StringUtil; import cn.ksource.core.web.WebUtil; import cn.ksource.web.Constants; import cn.ksource.web.facade.ciremind.CiRemindFacade; import cn.ksource.web.facade.health.HealthFacade; import cn.ksource.web.facade.order.OrderFacade; import cn.ksource.web.facade.question.QuestionFacade; import cn.ksource.web.facade.wechat.ewyw.EwOrderFacade; @Controller @RequestMapping("/ewyw/eworder") public class EwOrderController { @Autowired private CiRemindFacade ciRemindFacade; @Resource(name="ewOrderFacade") private EwOrderFacade ewOrderFacade; @Resource(name="orderFacade") private OrderFacade orderFacade; @Resource private HealthFacade healthFacade; /** * 跳转到我的工单页面 */ @RequestMapping("eMyorders.html") public ModelAndView eMyOrders(HttpServletRequest request,HttpServletResponse response) { String flowstate = request.getParameter("flowstate"); ModelAndView modelAndView = new ModelAndView("/business/wechat/ewyw/eworder/eMyorders"); modelAndView.addObject("flowstate", flowstate); String status = request.getParameter("state"); modelAndView.addObject("state", status); //查询工单环节类型 Map state = Constants.mapWORKFLOW_BASE_WFSTATE; List states = new ArrayList(); for (Map.Entry entry : state.entrySet()) { String key = entry.getKey(); String value = entry.getValue(); Map map = new HashMap(); map.put("stateId", key); map.put("stateName", value); states.add(map); } modelAndView.addObject("states", states); return modelAndView; } /** * 查询工单列表 */ @RequestMapping(value="eMyorderData.html",method=RequestMethod.POST) public ModelAndView worderData(HttpServletRequest request,PageInfo pageInfo) { ModelAndView modelAndView = new ModelAndView("/business/wechat/ewyw/eworder/eMyorderData"); String flowstate = request.getParameter("flowstate"); Map params = ParamsMapUtil.getParameterMap(request); params.put("userId", WebUtil.getEngineerUserId(request)); PageInfo list = orderFacade.queryMyOrderData(pageInfo,params); modelAndView.addObject("orderList", list); modelAndView.addObject("flowstate", flowstate); return modelAndView; } /** * 查询工单总数量 */ @RequestMapping(value="eMyorderCount.html",method=RequestMethod.POST) public void worderCount(HttpServletRequest request,HttpServletResponse response) { Map params = ParamsMapUtil.getParameterMap(request); params.put("userId", WebUtil.getEngineerUserId(request)); int count = orderFacade.queryMyOrderCount(params); WebUtil.write(response, String.valueOf(count)); } /** * 跳转到我的工单池列表 */ @RequestMapping("eMyorderPool.html") public ModelAndView eMyorderPool(HttpServletRequest request,HttpServletResponse response) { String flowstate = request.getParameter("flowstate"); ModelAndView modelAndView = new ModelAndView("/business/wechat/ewyw/eworder/eMyorderPool"); modelAndView.addObject("flowstate", flowstate); //查询工单环节类型 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); } modelAndView.addObject("types", ways); return modelAndView; } /** * 查询我的工单池数据 */ @RequestMapping("eMyorderPoolData.html") public ModelAndView eMyorderPoolData(HttpServletRequest request,PageInfo pageInfo) { ModelAndView modelAndView = new ModelAndView("/business/wechat/ewyw/eworder/eMyorderPoolData"); Map params = ParamsMapUtil.getParameterMap(request); params.put("userId", WebUtil.getEngineerUserId(request)); PageInfo orderList = orderFacade.myorderpoolData(pageInfo,params); modelAndView.addObject("orderList", orderList); return modelAndView; } /** * 查询我的工单池数据 */ @RequestMapping("eMyorderPoolCount.html") public void myorderpoolCount(HttpServletRequest request,HttpServletResponse response) { Map params = ParamsMapUtil.getParameterMap(request); params.put("userId", WebUtil.getEngineerUserId(request)); int count = orderFacade.myorderpoolCount(params); WebUtil.write(response, String.valueOf(count)); } /** * 跳转到工单池列表 */ @RequestMapping("eworderPool.html") public ModelAndView eworderPool(HttpServletRequest request,HttpServletResponse response) { String flowstate = request.getParameter("flowstate"); ModelAndView modelAndView = new ModelAndView("/business/wechat/ewyw/eworder/eworderPool"); modelAndView.addObject("flowstate", flowstate); //查询工单环节类型 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); } modelAndView.addObject("types", ways); return modelAndView; } /** * 查询工单池数据 */ @RequestMapping("eworderPoolData.html") public ModelAndView eworderPoolData(HttpServletRequest request,PageInfo pageInfo) { ModelAndView modelAndView = new ModelAndView("/business/wechat/ewyw/eworder/eworderPoolData"); Map params = ParamsMapUtil.getParameterMap(request); PageInfo orderList = orderFacade.orderpoolData(pageInfo,params); modelAndView.addObject("orderList", orderList); return modelAndView; } /** * 查询工单池数据 */ @RequestMapping("eworderPoolCount.html") public void eworderPoolCount(HttpServletRequest request,HttpServletResponse response) { Map params = ParamsMapUtil.getParameterMap(request); int count = orderFacade.orderpoolCount(params); WebUtil.write(response, String.valueOf(count)); } /** * 工单详细信息 */ @RequestMapping(value="ewOrderInfo.html") public ModelAndView ewOrderInfo(HttpServletRequest request) { String orderType = request.getParameter("orderType"); ModelAndView modelAndView = null; String orderId = request.getParameter("orderId"); if(StringUtil.notEmpty(orderId)) { if(StringUtil.notEmpty(orderType)){ if(orderType.equals(Constants.WORKFLOW_BASE_BUSINESS_TYPE_INCIDENT.toString())) { modelAndView = new ModelAndView("redirect:/ewyw/ewIncident/ewIncidentInfo.html?orderId="+orderId); } else if (orderType.equals(Constants.WORKFLOW_BASE_BUSINESS_TYPE_QUESTION.toString())) { modelAndView = new ModelAndView("redirect:/ewyw/ewQuestion/ewQuestionInfo.html?orderId="+orderId); } else if(orderType.equals(Constants.WORKFLOW_BASE_BUSINESS_TYPE_INCIDENT_LOCAL.toString())) { modelAndView = new ModelAndView("redirect:/ewyw/ewzc/ewZcInfo.html?orderId="+orderId); } else if(orderType.equals(Constants.WORKFLOW_BASE_BUSINESS_TYPE_CI_REMIND.toString())) {//例行维护 modelAndView = new ModelAndView("redirect:/ewyw/ewRemind/ewRemindInfo.html?orderId="+orderId); } else if(orderType.equals(Constants.WORKFLOW_BASE_BUSINESS_TYPE_CI_HEALTH.toString())) {//健康检查 modelAndView = new ModelAndView("redirect:/ewyw/ewHealth/ewHealthInfo.html?orderId="+orderId); } else { modelAndView = new ModelAndView("/business/wechat/ewyw/eworder/info"); } } } return modelAndView; } /** * 工单处理信息 */ @RequestMapping(value="ewOrderDeal.html") public ModelAndView ewOrderDeal(HttpServletRequest request) { String orderType = request.getParameter("orderType"); ModelAndView modelAndView = null; String orderId = request.getParameter("orderId"); String flowId = request.getParameter("flowId"); if(StringUtil.notEmpty(orderId)) { if(StringUtil.notEmpty(orderType)){ if(orderType.equals(Constants.WORKFLOW_BASE_BUSINESS_TYPE_INCIDENT.toString())) { modelAndView = new ModelAndView("redirect:/ewyw/ewIncident/ewIncidentInfoCl.html?orderId="+orderId); } else if (orderType.equals(Constants.WORKFLOW_BASE_BUSINESS_TYPE_QUESTION.toString())) { modelAndView = new ModelAndView("redirect:/ewyw/ewQuestion/ewQuestionDeal.html?orderId="+orderId+"&flowId="+flowId); } else if(orderType.equals(Constants.WORKFLOW_BASE_BUSINESS_TYPE_INCIDENT_LOCAL.toString())) { modelAndView = new ModelAndView("redirect:/ewyw/ewzc/ewZcInfoCl.html?orderId="+orderId); } else if(orderType.equals(Constants.WORKFLOW_BASE_BUSINESS_TYPE_CI_REMIND.toString())) {//例行维护 modelAndView = new ModelAndView("redirect:/ewyw/ewRemind/ewRemindInfo.html?orderId="+orderId); } else if(orderType.equals(Constants.WORKFLOW_BASE_BUSINESS_TYPE_CI_HEALTH.toString())) {//健康检查 modelAndView = new ModelAndView("redirect:/ewyw/ewHealth/ewHealthInfo.html?orderId="+orderId); } else { modelAndView = new ModelAndView("/business/wechat/ewyw/eworder/info"); } } } return modelAndView; } /** * 跳转到工单响应界面 */ @RequestMapping(value="ewOrderResp.html") public ModelAndView ewOrderResp(HttpServletRequest request) { String orderType = request.getParameter("orderType"); ModelAndView modelAndView = null; String orderId = request.getParameter("orderId"); if(StringUtil.notEmpty(orderId)) { //通过orderId查询出当前节点 String userId = WebUtil.getEngineerUserId(request); String nodeId = ewOrderFacade.queryCurrentNodeId(orderId,userId); if(StringUtil.notEmpty(orderType)){ if (orderType.equals(Constants.WORKFLOW_BASE_BUSINESS_TYPE_INCIDENT.toString())) { //判断该工单是否已经响应过,如果响应过,则跳转到详情页面 //通过nodeId查询该节点的状态 if(StringUtil.notEmpty(nodeId)) { modelAndView = new ModelAndView("/business/wechat/ewyw/ewIncident/ewIncidentResp"); //查询事件工单信息 Map incident = new SC_WORKFLOW_INCIDENT(orderId).getBeanMapById(); modelAndView.addObject("incident", incident); } else { modelAndView = new ModelAndView("redirect:/ewyw/ewIncident/ewIncidentInfo.html?orderId="+orderId); } }else if (orderType.equals(Constants.WORKFLOW_BASE_BUSINESS_TYPE_CI_REMIND.toString())) { //判断该工单是否已经响应过,如果响应过,则跳转到详情页面 //通过nodeId查询该节点的状态 if(StringUtil.notEmpty(nodeId)) { modelAndView = new ModelAndView("/business/wechat/ewyw/ewRemind/ewRemindResp"); //查询例行巡检工单信息 Map remind = ciRemindFacade.queryRemindInfo(orderId); WORKFLOW_NODE workflow_node = new WORKFLOW_NODE(nodeId).getInstanceById(); Integer flowType = workflow_node.getFlow_type(); //判断是否为回退 if(null!=flowType && flowType==2) { WORKFLOW_NODE workflow_node_source = new WORKFLOW_NODE(workflow_node.getSource_node_instance_id()).getInstanceById(); remind.put("isBack", "2"); remind.put("dealNode", workflow_node_source.getDeal_note()); } else { remind.put("isBack", "1"); } remind.put("nodeName",workflow_node.getNodename()); modelAndView.addObject("remind", remind); } else { modelAndView = new ModelAndView("redirect:/ewyw/ewRemind/ewRemindInfo.html?orderId="+orderId); } }else if (orderType.equals(Constants.WORKFLOW_BASE_BUSINESS_TYPE_CI_HEALTH.toString())) { //判断该工单是否已经响应过,如果响应过,则跳转到详情页面 //通过nodeId查询该节点的状态 if(StringUtil.notEmpty(nodeId)) { modelAndView = new ModelAndView("/business/wechat/ewyw/ewHealth/ewHealthResp"); //查询健康检查工单信息 Map health = healthFacade.getHealthInfo(orderId); //Map health = new SC_WORKFLOW_CI_HEALTH(orderId).getBeanMapById(); WORKFLOW_NODE workflow_node = new WORKFLOW_NODE(nodeId).getInstanceById(); Integer flowType = workflow_node.getFlow_type(); //判断是否为回退 if(null!=flowType && flowType==2) { WORKFLOW_NODE workflow_node_source = new WORKFLOW_NODE(workflow_node.getSource_node_instance_id()).getInstanceById(); health.put("isBack", "2"); health.put("dealNode", workflow_node_source.getDeal_note()); } else { health.put("isBack", "1"); } health.put("nodeName",workflow_node.getNodename()); modelAndView.addObject("health", health); } else { modelAndView = new ModelAndView("redirect:/ewyw/ewHealth/ewHealthInfo.html?orderId="+orderId); } }else if (orderType.equals(Constants.WORKFLOW_BASE_BUSINESS_TYPE_QUESTION.toString())) { //判断该工单是否已经响应过,如果响应过,则跳转到详情页面 //通过nodeId查询该节点的状态 if(StringUtil.notEmpty(nodeId)) { modelAndView = new ModelAndView("/business/wechat/ewyw/ewQuestion/ewQuestionResp"); //查询事件工单信息 Map question = new SC_WORKFLOW_QUESTION(orderId).getBeanMapById(); WORKFLOW_NODE workflow_node = new WORKFLOW_NODE(nodeId).getInstanceById(); Integer flowType = workflow_node.getFlow_type(); //判断是否为回退 if(null!=flowType && flowType==2) { WORKFLOW_NODE workflow_node_source = new WORKFLOW_NODE(workflow_node.getSource_node_instance_id()).getInstanceById(); question.put("isBack", "2"); question.put("dealNode", workflow_node_source.getDeal_note()); } else { question.put("isBack", "1"); } modelAndView.addObject("question", question); } else { modelAndView = new ModelAndView("redirect:/ewyw/ewQuestion/ewQuestionInfo.html?orderId="+orderId); } } else if (orderType.equals(Constants.WORKFLOW_BASE_BUSINESS_TYPE_INCIDENT_LOCAL.toString())) { if(StringUtil.notEmpty(nodeId)) { modelAndView = new ModelAndView("/business/wechat/ewyw/ewzc/ewZcResp"); //查询事件工单信息 Map incident = new SC_WORKFLOW_INCIDENT_LOCAL(orderId).getBeanMapById(); modelAndView.addObject("incident", incident); } else { modelAndView = new ModelAndView("redirect:/ewyw/ewzc/ewZcInfo.html?orderId="+orderId); } } else { modelAndView = new ModelAndView("/business/wechat/ewyw/eworder/info"); } modelAndView.addObject("nodeId", nodeId); } } return modelAndView; } }