package cn.ksource.web.controller.business.pages.zc;
|
|
import java.util.ArrayList;
|
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.PathVariable;
|
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_PARTNER_CUSTOMER_INFO;
|
import cn.ksource.beans.SC_SERVCE_CATEGORY;
|
import cn.ksource.beans.SC_WORKFLOW_INCIDENT_LOCAL;
|
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.NumberUtil;
|
import cn.ksource.core.util.ParamsMapUtil;
|
import cn.ksource.core.util.StringUtil;
|
import cn.ksource.core.web.SysInfo;
|
import cn.ksource.core.web.SysInfoMsg;
|
import cn.ksource.core.web.WebUtil;
|
import cn.ksource.web.Constants;
|
import cn.ksource.web.facade.customermanage.CustomerManageFacade;
|
import cn.ksource.web.facade.incident.IncidentFacade;
|
import cn.ksource.web.facade.order.OrderFacade;
|
import cn.ksource.web.facade.zc.ZcywFacade;
|
import cn.ksource.web.service.DataDictionaryService;
|
|
/**
|
* 日常运维--驻场运维控制器
|
* @note:
|
* @version
|
* @author sxj
|
* @date June 28, 2016 10:35:44 AM
|
*/
|
@Controller
|
@RequestMapping("/business/pages/zcyw")
|
public class ZcywController {
|
|
@Resource(name="zcywFacade")
|
private ZcywFacade zcywFacade;
|
|
@Autowired
|
private OrderFacade orderFacade;
|
|
@Autowired
|
private DataDictionaryService dataDictionaryService;
|
|
@Autowired
|
private IncidentFacade incidentFacade;
|
@Autowired
|
private CustomerManageFacade customerFacade;
|
|
/**
|
* 跳转到驻场运维工单列表页面
|
*/
|
@RequestMapping("myZcyw.html")
|
public ModelAndView myIncident(HttpServletRequest request) {
|
ModelAndView view = new ModelAndView("/business/pages/zc/zcyw/myZcyw");
|
System.out.println("flowstate:--------------"+request.getParameter("flowstate"));
|
Map num = orderFacade.queryOrderCountByCate(request, Constants.WORKFLOW_BASE_BUSINESS_TYPE_INCIDENT_LOCAL.toString());
|
view.addObject("flowstate", request.getParameter("flowstate"));
|
view.addObject("type", request.getParameter("type"));
|
view.addObject("num", num);
|
|
//查询事件类型数据字典
|
List types = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.INCIDENT_TYPE);
|
Map<String,String> params = ParamsMapUtil.getParameterMap(request);
|
params.put("userId", WebUtil.getLoginedUserId(request));
|
Map map = zcywFacade.getOrderNum(params);
|
view.addObject("data", map);
|
view.addObject("types", types);
|
//查询该加盟商的事件优先级
|
List<Map> eventPri = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.EVENT_PRI);
|
view.addObject("eventPri", eventPri);
|
//查询事件影响度数据字典
|
List<Map> eventDg = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.EVENT_EFFECT_DG);
|
view.addObject("eventDg", eventDg);
|
return view;
|
}
|
|
|
|
|
|
/**
|
* 查询我的事件列表
|
*/
|
@RequestMapping("myZcywData.html")
|
public ModelAndView myIncidentData(HttpServletRequest request,PageInfo pageInfo) {
|
ModelAndView modelAndView = new ModelAndView("/business/pages/zc/zcyw/myZcywData");
|
//定义参数Map
|
Map<String,String> params = ParamsMapUtil.getParameterMap(request);
|
params.put("userId", WebUtil.getLoginedUserId(request));
|
PageInfo incidents = zcywFacade.queryMyZcywData(pageInfo,params);
|
modelAndView.addObject("orders", incidents);
|
return modelAndView;
|
}
|
|
/**
|
* 查询我的事件数量
|
*/
|
@RequestMapping("myZcywCount.html")
|
public void myIncidentCount(HttpServletRequest request,HttpServletResponse response) {
|
//定义参数Map
|
Map<String,String> params = ParamsMapUtil.getParameterMap(request);
|
params.put("userId", WebUtil.getLoginedUserId(request));
|
int count = zcywFacade.queryMyZcywCount(params);
|
WebUtil.write(response, String.valueOf(count));
|
}
|
|
/**
|
* 服务台查看驻场管理的信息
|
*/
|
@RequestMapping("zcyws.html")
|
public ModelAndView zcyws(HttpServletRequest request,HttpServletResponse response) {
|
ModelAndView modelAndView = new ModelAndView("/business/pages/zc/zcyw/zcyws");
|
//查询事件类型数据字典
|
List types = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.INCIDENT_TYPE);
|
|
modelAndView.addObject("types", types);
|
//查询该加盟商的事件优先级
|
List<Map> eventPri = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.EVENT_PRI);
|
modelAndView.addObject("eventPri", eventPri);
|
//查询事件影响度数据字典
|
List<Map> eventDg = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.EVENT_EFFECT_DG);
|
modelAndView.addObject("eventDg", eventDg);
|
//客户列表
|
List<Map> cusList = incidentFacade.getCustomerList();
|
modelAndView.addObject("customers", cusList);
|
Map params=ParamsMapUtil.getParameterMap(request);
|
Map map = zcywFacade.getZcywNum(params);
|
modelAndView.addObject("data", map);
|
return modelAndView;
|
}
|
|
/**
|
* 查询服务台的驻场运维列表
|
*/
|
@RequestMapping("zcywsData.html")
|
public ModelAndView zcywsData(HttpServletRequest request,PageInfo pageInfo) {
|
ModelAndView modelAndView = new ModelAndView("/business/pages/zc/zcyw/zcywData");
|
//定义参数Map
|
Map<String,String> params = ParamsMapUtil.getParameterMap(request);
|
PageInfo incidents = zcywFacade.zcywDataForFwt(pageInfo,params);
|
modelAndView.addObject("orders", incidents);
|
return modelAndView;
|
}
|
|
/**
|
* 查询服务台的驻场运维数量
|
*/
|
@RequestMapping("zcywsCount.html")
|
public void zcywsCount(HttpServletRequest request,HttpServletResponse response) {
|
//定义参数Map
|
Map<String,String> params = ParamsMapUtil.getParameterMap(request);
|
int count = zcywFacade.zcywCountForFwt(params);
|
WebUtil.write(response, String.valueOf(count));
|
}
|
|
/**
|
* 服务台创建事件页面
|
* @param request
|
* @param response
|
* @return
|
*/
|
@RequestMapping(value="addZcyw", method=RequestMethod.GET)
|
public ModelAndView addIncidentForService(HttpServletRequest request, HttpServletResponse response) {
|
ModelAndView view = new ModelAndView("/business/pages/zc/zcyw/addZcyw");
|
//定义参数Map
|
Map<String,String> params = ParamsMapUtil.getParameterMap(request);
|
params.put("userId", WebUtil.getLoginedUserId(request));
|
Map map = zcywFacade.getOrderNum(params);
|
view.addObject("data", map);
|
|
//查询出该驻场人员的总客户,和下级客户,项目
|
Map result = zcywFacade.queryZcMsg(request);
|
|
view.addObject("msg", result);
|
|
//查询事件类型数据字典
|
List<Map> types = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.INCIDENT_TYPE);
|
//取得事件类型的第一条数据
|
if(null!=types && types.size()>0) {
|
Map type = types.get(0);
|
view.addObject("typeId", type.get("DATAKEY"));
|
view.addObject("typeName", type.get("DATAVALUE"));
|
}
|
//查询申报方式数据字典
|
List<Map> ways = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.INCIDENT_APPLY_TYPE);
|
//取得申报方式的第一条数据
|
if(null!=ways && ways.size()>0) {
|
Map way = ways.get(0);
|
view.addObject("wayId", way.get("DATAKEY"));
|
view.addObject("wayName", way.get("DATAVALUE"));
|
}
|
//查询事件来源数据字典
|
List<Map> froms = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.INCIDENT_SOURCE);
|
//取得事件来源的第一条数据
|
if(null!=froms && froms.size()>0) {
|
Map from = froms.get(0);
|
view.addObject("fromId", from.get("DATAKEY"));
|
view.addObject("fromName", from.get("DATAVALUE"));
|
}
|
|
|
//查询该加盟商的事件优先级
|
List<Map> eventPri = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.EVENT_PRI);
|
view.addObject("eventPri", eventPri);
|
//查询事件影响度数据字典
|
List<Map> eventDg = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.EVENT_EFFECT_DG);
|
view.addObject("eventDg", eventDg);
|
|
|
//查询该加盟商的事件影响力
|
view.addObject("types", types);
|
view.addObject("ways", ways);
|
view.addObject("froms", froms);
|
return view;
|
}
|
|
/**
|
* 根据客户查询该客户下的所有驻场人员
|
*/
|
@RequestMapping("fpry.html")
|
public ModelAndView queryUser(HttpServletRequest request,HttpServletResponse response) {
|
ModelAndView modelAndView = new ModelAndView("/business/pages/zc/zcyw/fpry");
|
|
List users = zcywFacade.queryAllZcry(request);
|
modelAndView.addObject("users", users);
|
|
return modelAndView;
|
}
|
|
/**
|
* 服务台创建事件提交
|
* @param request
|
* @param response
|
* @return
|
*/
|
@RequestMapping(value="addZcyw.html", method=RequestMethod.POST)
|
public ModelAndView addIncidentForDeskSubmit(HttpServletRequest request, HttpServletResponse response,SC_WORKFLOW_INCIDENT_LOCAL sc_workflow_incident_local) {
|
Map map = zcywFacade.saveZcyw(request,sc_workflow_incident_local);
|
|
|
|
String incidentId = ConvertUtil.obj2StrBlank(map.get("incidentId"));
|
SysInfoMsg msg = (SysInfoMsg)map.get("msg");
|
|
|
String type = request.getParameter("type");
|
if(type.equals("1")) {
|
ModelAndView modelAndView = new ModelAndView("/business/pages/zc/zcyw/addSuccess");
|
modelAndView.addObject("type", type);
|
modelAndView.addObject("incidentId", incidentId);
|
modelAndView.addObject("sysInfo", "Success");
|
modelAndView.addObject("message", "操作成功");
|
modelAndView.addObject("info", msg);
|
return modelAndView;
|
} else if (type.equals("2")) {
|
ModelAndView modelAndView = new ModelAndView("redirect:/business/pages/zcyw/solution.html?incidentId="+incidentId);
|
return modelAndView;
|
} else if (type.equals("3")) {
|
ModelAndView modelAndView = new ModelAndView("redirect:/business/pages/zcyw/closeOrder.html?incidentId="+incidentId);
|
return modelAndView;
|
}
|
|
|
return null;
|
}
|
|
/**
|
* 跳转到填写结局方案页面
|
*/
|
@RequestMapping(value="solution.html",method=RequestMethod.GET)
|
public ModelAndView endTask(HttpServletRequest request,HttpServletResponse response) {
|
ModelAndView modelAndView = new ModelAndView("/business/pages/zc/zcyw/solution");
|
|
//查询解决方式数据字典
|
List ways = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.RESOLVE_WAY);
|
modelAndView.addObject("ways", ways);
|
|
return modelAndView;
|
}
|
|
/**
|
* 结果方案提交
|
*/
|
@RequestMapping(value="solution.html",method=RequestMethod.POST)
|
public ModelAndView doEndTask(HttpServletRequest request,HttpServletResponse response) {
|
zcywFacade.doEndTask(request);
|
|
String orderId = request.getParameter("incidentId");
|
|
ModelAndView modelAndView = new ModelAndView("/business/pages/incident/rechange");
|
modelAndView.addObject("orderId", orderId);
|
modelAndView.addObject("zcyw", 1);
|
modelAndView.addObject("bustype", Constants.WORKFLOW_BASE_BUSINESS_TYPE_INCIDENT_LOCAL);
|
return modelAndView;
|
|
}
|
|
/**
|
* 跳转到关闭原因界面
|
*/
|
@RequestMapping("closeOrder.html")
|
public ModelAndView closeReason(HttpServletRequest request,HttpServletResponse response) {
|
ModelAndView modelAndView = new ModelAndView("/business/pages/zc/zcyw/closeOrder");
|
//查询关闭原因数据字典
|
List reasons = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.CLOSE_REASON);
|
modelAndView.addObject("reasons", reasons);
|
return modelAndView;
|
}
|
|
|
/**
|
* 关闭事件提交
|
*/
|
@RequestMapping(value="closeOrder.html",method=RequestMethod.POST)
|
public ModelAndView doCloseReason(HttpServletRequest request,HttpServletResponse response) {
|
zcywFacade.doCloseReason(request);
|
|
ModelAndView modelAndView = new ModelAndView("/business/pages/zc/zcyw/addSuccess");
|
modelAndView.addObject("type", 1);
|
modelAndView.addObject("sysInfo", "Success");
|
modelAndView.addObject("message", "操作成功");
|
return modelAndView;
|
|
}
|
|
|
/**
|
* 选择重复事件
|
*/
|
@RequestMapping("selectZcyw.html")
|
public ModelAndView selectIncident(HttpServletRequest request,HttpServletResponse response) {
|
ModelAndView modelAndView = new ModelAndView("/business/pages/zc/zcyw/selectZcyw");
|
|
String incidentId = request.getParameter("id");
|
|
modelAndView.addObject("incidentId", incidentId);
|
return modelAndView;
|
}
|
|
/**
|
* 查询事件列表
|
*/
|
@RequestMapping("zcywMerged.html")
|
public ModelAndView merged(HttpServletRequest request) {
|
ModelAndView modelAndView = new ModelAndView("/business/pages/zc/zcyw/zcywMerged");
|
List incidents = zcywFacade.queryZcyws(request);
|
modelAndView.addObject("incidents", incidents);
|
return modelAndView;
|
}
|
|
|
|
/**
|
* 跳转到订单查看页面
|
*/
|
@RequestMapping("zcywDetail.html")
|
public ModelAndView incidentDetail(HttpServletRequest request,HttpServletResponse response) {
|
ModelAndView modelAndView = new ModelAndView("/business/pages/zc/zcyw/zcywDetail");
|
|
//查询事件基本信息
|
String orderId = request.getParameter("orderId");
|
String flowId = request.getParameter("flowId");
|
|
//通过工单编号查询工单基本信息
|
Map baseMsg = zcywFacade.queryIncidentLocalBaseMsg(orderId);
|
|
modelAndView.addObject("baseMsg", baseMsg);
|
modelAndView.addObject("orderId", orderId);
|
modelAndView.addObject("flowId", flowId);
|
|
|
|
List<Map> lzs = zcywFacade.incidentLocalLzRecord(flowId);
|
modelAndView.addObject("lzs", lzs);
|
|
|
//查询要求响应时间和实际响应时间
|
long create_time = ConvertUtil.obj2Long(baseMsg.get("CREATE_TIME"));
|
|
String answer_time = ConvertUtil.obj2StrBlank(baseMsg.get("ANSWER_TIME"));
|
if(!StringUtil.notEmpty(answer_time)) {
|
answer_time = DateUtil.getCurrentDate14().toString();
|
}
|
String request_answer_time = ConvertUtil.obj2StrBlank(baseMsg.get("REQUEST_ANSWER_TIME"));
|
String answer_timeout = ConvertUtil.obj2StrBlank(baseMsg.get("ANSWER_TIMEOUT"));
|
//计算第一次响应时间和创建事件的事件差 将时间差转化为分钟
|
long seconds = DateUtil.getSecondsFormDate2Date(create_time, ConvertUtil.obj2Long(answer_time));
|
|
//将秒转化为分钟
|
double sjxysj = NumberUtil.div(ConvertUtil.obj2Double(seconds), ConvertUtil.obj2Double(60), 1);
|
|
baseMsg.put("sjxysj", sjxysj);
|
|
|
if(answer_timeout.equals("2")) {
|
//计算时间走动长度
|
double a1 = NumberUtil.mul(ConvertUtil.obj2Double(seconds), ConvertUtil.obj2Double(250));
|
double a2 = NumberUtil.mul(ConvertUtil.obj2Double(request_answer_time), ConvertUtil.obj2Double(60));
|
|
double xyWidth = NumberUtil.div(a1, a2);
|
if(xyWidth>250) {
|
xyWidth = 250;
|
baseMsg.put("ANSWER_TIMEOUT", 1);
|
}
|
baseMsg.put("xyWidth", xyWidth);
|
} else {
|
baseMsg.put("xyWidth", 250);
|
}
|
|
|
|
//处理超时操作
|
//1.判断当前工单有没有解决时间,如果有解决时间 说明已完成,如果没有解决时间 说明未完成
|
String resolveTime = ConvertUtil.obj2StrBlank(baseMsg.get("RESOLVE_TIME"));
|
if(!StringUtil.notEmpty(resolveTime)) {
|
resolveTime = DateUtil.getCurrentDate14().toString();
|
}
|
|
|
//计算实际用了多长时间
|
String request_deal_time = ConvertUtil.obj2StrBlank(baseMsg.get("REQUEST_DEAL_TIME"));
|
String deal_timeout = ConvertUtil.obj2StrBlank(baseMsg.get("DEAL_TIMEOUT"));
|
|
//计算第解决时间和创建事件的事件差 将时间差转化为小时
|
long jjSeconds = DateUtil.getSecondsFormDate2Date(create_time, ConvertUtil.obj2Long(resolveTime));
|
|
//将秒转化为小时
|
double sjjjsj = NumberUtil.div(ConvertUtil.obj2Double(jjSeconds), ConvertUtil.obj2Double(3600), 2);
|
|
baseMsg.put("sjjjsj", sjjjsj);
|
|
|
|
if(deal_timeout.equals("2")) {
|
//计算时间走动长度
|
double a1 = NumberUtil.mul(ConvertUtil.obj2Double(jjSeconds), ConvertUtil.obj2Double(250));
|
double a2 = NumberUtil.mul(ConvertUtil.obj2Double(request_deal_time), ConvertUtil.obj2Double(3600));
|
|
double jjWidth = NumberUtil.div(a1, a2);
|
if(jjWidth>250) {
|
jjWidth = 250;
|
baseMsg.put("DEAL_TIMEOUT", 1);
|
}
|
baseMsg.put("jjWidth", jjWidth);
|
} else {
|
baseMsg.put("jjWidth", 250);
|
}
|
|
|
return modelAndView;
|
}
|
|
|
|
|
/**
|
* 查看处理记录
|
*/
|
@RequestMapping("viewZcywRecord.html")
|
public ModelAndView viewRecord(HttpServletRequest request,HttpServletResponse response) {
|
ModelAndView modelAndView = new ModelAndView("/business/pages/zc/zcyw/viewZcywRecord");
|
String orderId = request.getParameter("orderId");
|
List records = new ArrayList();
|
if(StringUtil.notEmpty(orderId)) {
|
records = zcywFacade.queryDealRecord(orderId);
|
System.out.println(JsonUtil.list2Json(records));
|
modelAndView.addObject("records",records);
|
}
|
return modelAndView;
|
}
|
|
/**
|
* 查看关联设备
|
*/
|
@RequestMapping("viewZcywDevice.html")
|
public ModelAndView viewDevice(HttpServletRequest request,HttpServletResponse response) {
|
ModelAndView modelAndView = new ModelAndView("/business/pages/zc/zcyw/viewZcywDevice");
|
//查询关联设备
|
String orderId = request.getParameter("orderId");
|
List devices = zcywFacade.queryDevices(orderId);
|
modelAndView.addObject("devices", devices);
|
return modelAndView;
|
}
|
|
|
/**
|
* 查看关联工单
|
*/
|
@RequestMapping("viewZcywOrder.html")
|
public ModelAndView viewOrder(HttpServletRequest request,HttpServletResponse response) {
|
ModelAndView modelAndView = new ModelAndView("/business/pages/zc/zcyw/viewZcywOrder");
|
|
//查询关联工单
|
String orderId = request.getParameter("orderId");
|
List orders = zcywFacade.queryOrders(orderId);
|
modelAndView.addObject("orders", orders);
|
return modelAndView;
|
}
|
|
|
/**
|
* 查询关联附件
|
*/
|
@RequestMapping("viewZcywFile.html")
|
public ModelAndView viewFile(HttpServletRequest request,HttpServletResponse response) {
|
ModelAndView modelAndView = new ModelAndView("/business/pages/zc/zcyw/viewZcywFile");
|
//查询所有的文档附件
|
String orderId = request.getParameter("orderId");
|
List files = zcywFacade.queryFiles(orderId);
|
modelAndView.addObject("files", files);
|
return modelAndView;
|
}
|
|
/**
|
* 跳转到驻场运维事件处理界面
|
*/
|
@RequestMapping("zcywDeal.html")
|
public ModelAndView zcywDeal(HttpServletRequest request,HttpServletResponse response) {
|
ModelAndView modelAndView = new ModelAndView("/business/pages/zc/zcyw/zcywDeal");
|
|
//查询事件基本信息
|
String orderId = request.getParameter("orderId");
|
String flowId = request.getParameter("flowId");
|
|
//通过工单编号查询工单基本信息
|
Map baseMsg = zcywFacade.queryIncidentLocalBaseMsg(orderId);
|
|
modelAndView.addObject("baseMsg", baseMsg);
|
modelAndView.addObject("orderId", orderId);
|
modelAndView.addObject("flowId", flowId);
|
|
|
List<Map> lzs = zcywFacade.incidentLocalLzRecord(flowId);
|
modelAndView.addObject("lzs", lzs);
|
|
|
//查询要求响应时间和实际响应时间
|
long create_time = ConvertUtil.obj2Long(baseMsg.get("CREATE_TIME"));
|
|
String answer_time = ConvertUtil.obj2StrBlank(baseMsg.get("ANSWER_TIME"));
|
if(!StringUtil.notEmpty(answer_time)) {
|
answer_time = DateUtil.getCurrentDate14().toString();
|
}
|
String request_answer_time = ConvertUtil.obj2StrBlank(baseMsg.get("REQUEST_ANSWER_TIME"));
|
String answer_timeout = ConvertUtil.obj2StrBlank(baseMsg.get("ANSWER_TIMEOUT"));
|
//计算第一次响应时间和创建事件的事件差 将时间差转化为分钟
|
long seconds = DateUtil.getSecondsFormDate2Date(create_time, ConvertUtil.obj2Long(answer_time));
|
|
//将秒转化为分钟
|
double sjxysj = NumberUtil.div(ConvertUtil.obj2Double(seconds), ConvertUtil.obj2Double(60), 1);
|
|
baseMsg.put("sjxysj", sjxysj);
|
|
|
if(answer_timeout.equals("2")) {
|
//计算时间走动长度
|
double a1 = NumberUtil.mul(ConvertUtil.obj2Double(seconds), ConvertUtil.obj2Double(250));
|
double a2 = NumberUtil.mul(ConvertUtil.obj2Double(request_answer_time), ConvertUtil.obj2Double(60));
|
|
double xyWidth = NumberUtil.div(a1, a2);
|
if(xyWidth>250) {
|
xyWidth = 250;
|
baseMsg.put("ANSWER_TIMEOUT", 1);
|
}
|
baseMsg.put("xyWidth", xyWidth);
|
} else {
|
baseMsg.put("xyWidth", 250);
|
}
|
|
|
|
//处理超时操作
|
//1.判断当前工单有没有解决时间,如果有解决时间 说明已完成,如果没有解决时间 说明未完成
|
String resolveTime = ConvertUtil.obj2StrBlank(baseMsg.get("RESOLVE_TIME"));
|
if(!StringUtil.notEmpty(resolveTime)) {
|
resolveTime = DateUtil.getCurrentDate14().toString();
|
}
|
|
|
//计算实际用了多长时间
|
String request_deal_time = ConvertUtil.obj2StrBlank(baseMsg.get("REQUEST_DEAL_TIME"));
|
String deal_timeout = ConvertUtil.obj2StrBlank(baseMsg.get("DEAL_TIMEOUT"));
|
|
//计算第解决时间和创建事件的事件差 将时间差转化为小时
|
long jjSeconds = DateUtil.getSecondsFormDate2Date(create_time, ConvertUtil.obj2Long(resolveTime));
|
|
//将秒转化为小时
|
double sjjjsj = NumberUtil.div(ConvertUtil.obj2Double(jjSeconds), ConvertUtil.obj2Double(3600), 2);
|
|
baseMsg.put("sjjjsj", sjjjsj);
|
|
|
|
if(deal_timeout.equals("2")) {
|
//计算时间走动长度
|
double a1 = NumberUtil.mul(ConvertUtil.obj2Double(jjSeconds), ConvertUtil.obj2Double(250));
|
double a2 = NumberUtil.mul(ConvertUtil.obj2Double(request_deal_time), ConvertUtil.obj2Double(3600));
|
|
double jjWidth = NumberUtil.div(a1, a2);
|
if(jjWidth>250) {
|
jjWidth = 250;
|
baseMsg.put("DEAL_TIMEOUT", 1);
|
}
|
baseMsg.put("jjWidth", jjWidth);
|
} else {
|
baseMsg.put("jjWidth", 250);
|
}
|
|
|
|
|
return modelAndView;
|
}
|
|
/**
|
* 工单确认
|
*/
|
@RequestMapping("zcywOrderConfirm.html")
|
public ModelAndView orderConfirm(HttpServletRequest request,HttpServletResponse response) {
|
ModelAndView modelAndView = new ModelAndView("/business/pages/zc/zcyw/zcywOrderConfirm");
|
String incidentId = request.getParameter("incidentId");
|
Map incident = new SC_WORKFLOW_INCIDENT_LOCAL(incidentId).getBeanMapById();
|
modelAndView.addObject("incident", incident);
|
return modelAndView;
|
}
|
|
/**
|
* 执行工单确认
|
*/
|
@RequestMapping("doConfirm.html")
|
public void doConfirm(HttpServletRequest request,HttpServletResponse response) {
|
|
String result = zcywFacade.doOrderConfirm(request);
|
WebUtil.write(response, result);
|
}
|
|
/**
|
* 查驻场运维询事件基本信息
|
*/
|
@RequestMapping("zcywBaseMsg.html")
|
public ModelAndView zcywBaseMsg(HttpServletRequest request) {
|
ModelAndView modelAndView = new ModelAndView("/business/pages/zc/zcyw/zcywBaseMsg");
|
String orderId = request.getParameter("orderId");
|
//通过工单编号查询工单基本信息
|
Map baseMsg = zcywFacade.queryIncidentLocalBaseMsg(orderId);
|
|
modelAndView.addObject("baseMsg", baseMsg);
|
return modelAndView;
|
}
|
|
|
|
/**
|
* 跳转编辑编辑事件基本信息页面
|
*/
|
@RequestMapping("editZcyw.html")
|
public ModelAndView editZcyw(HttpServletRequest request,HttpServletResponse response) {
|
ModelAndView modelAndView = new ModelAndView("/business/pages/zc/zcyw/editZcyw");
|
String id = request.getParameter("id");
|
Map baseMsg = zcywFacade.queryIncidentLocalBaseMsg(id);
|
|
//查询事件类型数据字典
|
List types = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.INCIDENT_TYPE);
|
//查询申报方式数据字典
|
List ways = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.INCIDENT_APPLY_TYPE);
|
//查询事件来源数据字典
|
List froms = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.INCIDENT_SOURCE);
|
|
|
//查询该加盟商的事件优先级
|
List<Map> eventPri = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.EVENT_PRI);
|
modelAndView.addObject("eventPri", eventPri);
|
//查询事件影响度数据字典
|
List<Map> eventDg = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.EVENT_EFFECT_DG);
|
modelAndView.addObject("eventDg", eventDg);
|
|
|
modelAndView.addObject("types", types);
|
modelAndView.addObject("ways", ways);
|
modelAndView.addObject("froms", froms);
|
|
modelAndView.addObject("baseMsg", baseMsg);
|
|
return modelAndView;
|
}
|
|
/**
|
* 执行事件基本信息操作功能
|
*/
|
@RequestMapping(value="updateZcyw.html",method=RequestMethod.POST)
|
public ModelAndView updateZcyw(HttpServletRequest request,HttpServletResponse response,SC_WORKFLOW_INCIDENT_LOCAL incident) {
|
String id = request.getParameter("id");
|
String result = zcywFacade.updateZcywMsg(request,incident);
|
return WebUtil.sysInfoPage(request, "操作成功!",
|
"window.top.location.reload(true);",
|
SysInfo.Success,"");
|
}
|
|
/**
|
* 分派任务
|
*/
|
@RequestMapping("dispatchTask.html")
|
public ModelAndView dispatchTask(HttpServletRequest request,HttpServletResponse response) {
|
Map map = zcywFacade.saveDispatchTask(request);
|
String result = ConvertUtil.obj2StrBlank(map.get("result"));
|
|
if(result.equals("1")) {
|
SysInfoMsg msg = (SysInfoMsg)map.get("msg");
|
return WebUtil.sysInfoPage(request, "操作成功!",
|
"",
|
SysInfo.Success,"/business/pages/zcyw/myZcyw.html",msg);
|
} else {
|
return WebUtil.sysInfoPage(request, "操作失败!",
|
"",
|
SysInfo.Error,"");
|
|
}
|
}
|
|
/**
|
* 弹出升级事件
|
*/
|
@RequestMapping(value="upTask.html",method=RequestMethod.GET)
|
public ModelAndView upTask(HttpServletRequest request,HttpServletResponse response) {
|
|
ModelAndView modelAndView = new ModelAndView("/business/pages/zc/zcyw/upTask");
|
return modelAndView;
|
}
|
|
/**
|
* 执行升级事件操作
|
*/
|
@RequestMapping(value="upTask.html",method=RequestMethod.POST)
|
public ModelAndView doTask(HttpServletRequest request,HttpServletResponse response) {
|
//执行升级为事件操作
|
String incidentId = zcywFacade.updateUpTask(request);
|
return WebUtil.sysInfoPage(request, "操作成功!",
|
"window.top.hideDialog('upTask');",
|
SysInfo.Success,"/business/pages/zcyw/myZcyw.html");
|
}
|
|
|
/**
|
* 工单完成时的驻场运维事件处理报告
|
*/
|
@RequestMapping("zcywFinishReport.html")
|
public ModelAndView wcReport(HttpServletRequest request) {
|
ModelAndView modelAndView = new ModelAndView("/business/pages/zc/zcyw/zcywFinishReport");
|
String orderId = request.getParameter("orderId");
|
Map report = zcywFacade.queryWcReport(orderId);
|
//项目编号
|
String CUSTOMER_ID =ConvertUtil.obj2Str(report.get("CUSTOMER_ID"));
|
if(StringUtil.notEmpty(CUSTOMER_ID)){
|
SC_PARTNER_CUSTOMER_INFO customer_INFO=new SC_PARTNER_CUSTOMER_INFO(CUSTOMER_ID).getInstanceById();
|
report.put("customer_code", customer_INFO.getCustomer_code());
|
}
|
String FIRST_CATEGORY_ID=ConvertUtil.obj2Str(report.get("FIRST_CATEGORY_ID"));
|
if(StringUtil.notEmpty(FIRST_CATEGORY_ID)){
|
SC_SERVCE_CATEGORY sc_SERVCE_CATEGORY =new SC_SERVCE_CATEGORY(FIRST_CATEGORY_ID).getInstanceById();
|
report.put("FIRST_CATEGORY_CODE", sc_SERVCE_CATEGORY.getCategory_code());
|
}
|
String SECOND_CATEGORY_ID=ConvertUtil.obj2Str(report.get("SECOND_CATEGORY_ID"));
|
if(StringUtil.notEmpty(SECOND_CATEGORY_ID)){
|
SC_SERVCE_CATEGORY sc_SERVCE_CATEGORY =new SC_SERVCE_CATEGORY(SECOND_CATEGORY_ID).getInstanceById();
|
report.put("SECOND_CATEGORY_CODE", sc_SERVCE_CATEGORY.getCategory_code());
|
}
|
String THIRD_CATEGORY_ID=ConvertUtil.obj2Str(report.get("THIRD_CATEGORY_ID"));
|
if(StringUtil.notEmpty(THIRD_CATEGORY_ID)){
|
SC_SERVCE_CATEGORY sc_SERVCE_CATEGORY =new SC_SERVCE_CATEGORY(THIRD_CATEGORY_ID).getInstanceById();
|
report.put("THIRD_CATEGORY_CODE", sc_SERVCE_CATEGORY.getCategory_code());
|
}
|
modelAndView.addObject("report", report);
|
return modelAndView;
|
}
|
|
|
/**
|
* 工单关闭时的驻场运维事件处理报告
|
*/
|
@RequestMapping("zcywCloseReport.html")
|
public ModelAndView closeReport(HttpServletRequest request) {
|
ModelAndView modelAndView = new ModelAndView("/business/pages/zc/zcyw/zcywCloseReport");
|
String orderId = request.getParameter("orderId");
|
Map report = zcywFacade.queryCloseReport(orderId);
|
modelAndView.addObject("report", report);
|
return modelAndView;
|
}
|
/**
|
* 驻场事件首页(我的)
|
* @param model
|
* @param request
|
* @param response
|
* @return
|
*/
|
@RequestMapping(value="myZcywIndex.html")
|
public String myZcywIndex(Model model,HttpServletRequest request,HttpServletResponse response){
|
model.addAttribute("userId", WebUtil.getUserId(request));
|
//定义参数Map
|
Map<String,String> params = ParamsMapUtil.getParameterMap(request);
|
params.put("userId", WebUtil.getLoginedUserId(request));
|
Map map = zcywFacade.getOrderNum(params);
|
//查询出该驻场人员的总客户,和下级客户,项目
|
Map result = zcywFacade.queryZcMsg(request);
|
model.addAttribute("data", map);
|
model.addAttribute("result", result);
|
return "/business/pages/zc/zcyw/myZcywIndex";
|
}
|
@RequestMapping(value="myZcywIndexLoad.html")
|
public String myZcywIndexLoad(Model model,HttpServletRequest request,HttpServletResponse response){
|
Map<String, String> params = ParamsMapUtil.getParameterMap(request);
|
params.put("userId", WebUtil.getUserId(request));
|
|
//待处理问题数量
|
params.put("state","1");
|
int pendingCount = zcywFacade.getOrederStateNum(params);
|
//进行中问题数量
|
params.put("state","2");
|
int inHandCount = zcywFacade.getOrederStateNum(params);
|
//已处理
|
params.put("state","3");
|
int processedCount = zcywFacade.queryZcywTimeoutCount (params);
|
model.addAttribute("pendingCount",pendingCount);
|
model.addAttribute("inHandCount",inHandCount);
|
model.addAttribute("processedCount",processedCount);
|
return "/business/pages/zc/zcyw/myZcywIndexLoad";
|
}
|
/**
|
* 查询最近一月驻场事件影响度分析
|
* @param request
|
* @param response
|
*/
|
@RequestMapping(value="getZcywEffectPieChart.html")
|
public void getZcywEffectPieChart(HttpServletRequest request,HttpServletResponse response){
|
Map<String, String> params = ParamsMapUtil.getParameterMap(request);
|
Map info = zcywFacade.getLastMonthZcywEffect(params);
|
//System.out.println("json--------------------------"+JsonUtil.map2Json(info));
|
WebUtil.write(response, JsonUtil.map2Json(info));
|
}
|
/**
|
* 查询最近一月驻场事件数量
|
* @param request
|
* @param response
|
*/
|
@RequestMapping(value="getZcywSumLineChart.html")
|
public void getZcywSumLineChart(HttpServletRequest request,HttpServletResponse response){
|
Map<String, String> params = ParamsMapUtil.getParameterMap(request);
|
Map info = zcywFacade.getLastMonthZcywCount(params);
|
WebUtil.write(response, JsonUtil.map2Json(info));
|
}
|
/**
|
* 查询最近一月驻场事件级别分析
|
* @param request
|
* @param response
|
*/
|
@RequestMapping(value="getZcywLvPieChart.html")
|
public void getZcywLvPieChart(HttpServletRequest request,HttpServletResponse response){
|
Map<String, String> params = ParamsMapUtil.getParameterMap(request);
|
Map info = zcywFacade.getLastMonthZcywLv(params);
|
WebUtil.write(response, JsonUtil.map2Json(info));
|
}
|
/**
|
* 查询最近一月驻场事件优先级分析
|
* @param request
|
* @param response
|
*/
|
@RequestMapping(value="getZcywPriPieChart.html")
|
public void getZcywPriPieChart(HttpServletRequest request,HttpServletResponse response){
|
Map<String, String> params = ParamsMapUtil.getParameterMap(request);
|
Map info = zcywFacade.getLastMonthZcywPri(params);
|
WebUtil.write(response, JsonUtil.map2Json(info));
|
}
|
/**
|
* 查询最近一月服务目录驻场事件数量
|
* @param request
|
* @param response
|
*/
|
@RequestMapping(value="getZcywServerLineChart.html")
|
public void getZcywServerLineChart(HttpServletRequest request,HttpServletResponse response){
|
Map<String, String> params = ParamsMapUtil.getParameterMap(request);
|
Map info = zcywFacade.getLastMonthZcywServer(params);
|
WebUtil.write(response, JsonUtil.map2Json(info));
|
}
|
/**
|
* 驻场事件工单
|
* @param request
|
* @param response
|
* @return
|
*/
|
@RequestMapping(value="{type}/myZcywNodeList.html")
|
public ModelAndView myZcywNodeList(HttpServletRequest request, HttpServletResponse response,@PathVariable(value="type") String type) {
|
//定义参数Map
|
ModelAndView view = new ModelAndView("/business/pages/zc/zcyw/myZcywNodeList");
|
Map num = orderFacade.queryOrderCountByCate(request, Constants.WORKFLOW_BASE_BUSINESS_TYPE_INCIDENT_LOCAL.toString());
|
view.addObject("type", type);
|
view.addObject("num", num);
|
//查询事件类型数据字典
|
List types = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.INCIDENT_TYPE);
|
|
view.addObject("types", types);
|
//查询该加盟商的事件优先级
|
List<Map> eventPri = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.EVENT_PRI);
|
view.addObject("eventPri", eventPri);
|
//查询事件影响度数据字典
|
List<Map> eventDg = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.EVENT_EFFECT_DG);
|
view.addObject("eventDg", eventDg);
|
//定义参数Map
|
Map<String,String> params = ParamsMapUtil.getParameterMap(request);
|
params.put("userId", WebUtil.getLoginedUserId(request));
|
Map map = zcywFacade.getOrderNum(params);
|
view.addObject("data", map);
|
return view;
|
}
|
/**
|
* 驻场管理首页
|
* @param model
|
* @param request
|
* @param response
|
* @return
|
*/
|
@SuppressWarnings("rawtypes")
|
@RequestMapping(value="zcywIndex.html")
|
public String zcywIndex(Model model,HttpServletRequest request,HttpServletResponse response){
|
//定义参数Map
|
Map<String,String> params = ParamsMapUtil.getParameterMap(request);
|
Map map = zcywFacade.getZcywNum(params);
|
model.addAttribute("data", map);
|
//查询出该驻场人员的总客户,和下级客户,项目
|
List<Map> cusList = customerFacade.getCusList();
|
model.addAttribute("cusList", cusList);
|
return "/business/pages/zc/zcyw/zcywIndex";
|
}
|
@RequestMapping(value="zcywIndexLoad.html")
|
public String incidentIndexLoad(Model model,HttpServletRequest request,HttpServletResponse response){
|
Map<String, String> params = ParamsMapUtil.getParameterMap(request);
|
//待处理数量
|
params.put("state", "1");
|
int pendingCount = zcywFacade.getOrederZcywNumDxy(params);
|
//进行中数量
|
params.put("state", "2");
|
int inHandCount = zcywFacade.getOrederZcywNumJxz(params);
|
//已处理
|
int timeoutCount = zcywFacade.getOrederZcywTimeoutCount(params);
|
model.addAttribute("pendingCount",pendingCount);
|
model.addAttribute("inHandCount",inHandCount);
|
model.addAttribute("timeoutCount",timeoutCount);
|
return "/business/pages/zc/zcyw/zcywIndexLoad";
|
}
|
/**
|
* 驻场事件工单
|
* @param request
|
* @param response
|
* @return
|
*/
|
@RequestMapping(value="{type}/zcywNodeList.html")
|
public ModelAndView zcywNodeList(HttpServletRequest request, HttpServletResponse response,@PathVariable(value="type") String type) {
|
//定义参数Map
|
ModelAndView view = new ModelAndView("/business/pages/zc/zcyw/zcywNodeList");
|
//查询事件类型数据字典
|
List types = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.INCIDENT_TYPE);
|
|
view.addObject("types", types);
|
//查询该加盟商的事件优先级
|
List<Map> eventPri = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.EVENT_PRI);
|
view.addObject("eventPri", eventPri);
|
//查询事件影响度数据字典
|
List<Map> eventDg = dataDictionaryService.getDataDictionaryByCategoryKey(Constants.EVENT_EFFECT_DG);
|
view.addObject("eventDg", eventDg);
|
//客户列表
|
List<Map> cusList = incidentFacade.getCustomerList();
|
view.addObject("customers", cusList);
|
view.addObject("state", type);
|
Map params=ParamsMapUtil.getParameterMap(request);
|
Map map = zcywFacade.getZcywNum(params);
|
view.addObject("data", map);
|
return view;
|
}
|
/**
|
* 查询服务台的驻场运维列表
|
*/
|
@RequestMapping("zcywsNodeData.html")
|
public ModelAndView zcywsNodeData(HttpServletRequest request,PageInfo pageInfo) {
|
ModelAndView modelAndView = new ModelAndView("/business/pages/zc/zcyw/zcywData");
|
//定义参数Map
|
Map<String,String> params = ParamsMapUtil.getParameterMap(request);
|
PageInfo incidents = zcywFacade.zcywNodeData(pageInfo,params);
|
modelAndView.addObject("orders", incidents);
|
return modelAndView;
|
}
|
|
/**
|
* 查询服务台的驻场运维数量
|
*/
|
@RequestMapping("zcywsNodeCount.html")
|
public void zcywsNodeCount(HttpServletRequest request,HttpServletResponse response) {
|
//定义参数Map
|
Map<String,String> params = ParamsMapUtil.getParameterMap(request);
|
int count = zcywFacade.zcywNodeCount(params);
|
WebUtil.write(response, String.valueOf(count));
|
}
|
}
|