package cn.ksource.web.controller.uc;
|
|
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.servlet.ModelAndView;
|
|
import cn.ksource.core.page.PageInfo;
|
import cn.ksource.core.util.ConvertUtil;
|
import cn.ksource.core.util.DateUtil;
|
import cn.ksource.core.util.NumberUtil;
|
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.uc.order.UcZcywFacade;
|
import cn.ksource.web.service.DataDictionaryService;
|
/**
|
* 用户中心--驻场运维管理控制器
|
* @note:
|
* @version
|
* @author sxj
|
* @date July 18, 2016 10:35:44 AM
|
*/
|
@Controller
|
@RequestMapping("/uc/uczcyw")
|
public class UcZcywController {
|
|
@Resource(name="ucZcywFacade")
|
private UcZcywFacade ucZcywFacade;
|
|
@Autowired
|
private DataDictionaryService dataDictionaryService;
|
|
/**
|
* 服务台查看驻场管理的信息
|
*/
|
@RequestMapping("uczcyws.html")
|
public ModelAndView zcyws(HttpServletRequest request,HttpServletResponse response) {
|
ModelAndView modelAndView = new ModelAndView("/uc/zcyw/uczcyws");
|
String cusId = WebUtil.getWebLoginUserCusId(request);
|
//查询事件类型数据字典
|
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);
|
return modelAndView;
|
}
|
|
/**
|
* 查询驻场运维列表
|
*/
|
@RequestMapping("uczcywsData.html")
|
public ModelAndView zcywsData(HttpServletRequest request,PageInfo pageInfo) {
|
ModelAndView modelAndView = new ModelAndView("/uc/zcyw/uczcywData");
|
Map<String,String> params = ParamsMapUtil.getParameterMap(request);
|
String cusId = WebUtil.getWebLoginUserCusId(request);
|
params.put("cusId", cusId);
|
PageInfo incidents = ucZcywFacade.zcywDataForFwt(pageInfo,params);
|
modelAndView.addObject("orders", incidents);
|
return modelAndView;
|
}
|
|
/**
|
* 查询服务台的驻场运维数量
|
*/
|
@RequestMapping("uczcywsCount.html")
|
public void zcywsCount(HttpServletRequest request,HttpServletResponse response) {
|
Map<String,String> params = ParamsMapUtil.getParameterMap(request);
|
String cusId = WebUtil.getWebLoginUserCusId(request);
|
params.put("cusId", cusId);
|
int count = ucZcywFacade.zcywCountForFwt(params);
|
WebUtil.write(response, String.valueOf(count));
|
}
|
|
/**
|
* 跳转到订单查看页面
|
*/
|
@RequestMapping("uczcywDetail.html")
|
public ModelAndView incidentDetail(HttpServletRequest request,HttpServletResponse response) {
|
ModelAndView modelAndView = new ModelAndView("/uc/zcyw/uczcywDetail");
|
|
//查询事件基本信息
|
String orderId = request.getParameter("orderId");
|
String flowId = request.getParameter("flowId");
|
|
//通过工单编号查询工单基本信息
|
Map baseMsg = ucZcywFacade.queryIncidentLocalBaseMsg(orderId);
|
|
modelAndView.addObject("baseMsg", baseMsg);
|
modelAndView.addObject("orderId", orderId);
|
modelAndView.addObject("flowId", flowId);
|
|
//查询要求响应时间和实际响应时间
|
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("uczcywFinishReport.html")
|
public ModelAndView wcReport(HttpServletRequest request) {
|
ModelAndView modelAndView = new ModelAndView("/uc/zcyw/uczcywFinishReport");
|
String orderId = request.getParameter("orderId");
|
Map report = ucZcywFacade.queryWcReport(orderId);
|
modelAndView.addObject("report", report);
|
return modelAndView;
|
}
|
|
|
/**
|
* 工单关闭时的驻场运维事件处理报告
|
*/
|
@RequestMapping("uczcywCloseReport.html")
|
public ModelAndView closeReport(HttpServletRequest request) {
|
ModelAndView modelAndView = new ModelAndView("/uc/zcyw/uczcywCloseReport");
|
String orderId = request.getParameter("orderId");
|
Map report = ucZcywFacade.queryCloseReport(orderId);
|
modelAndView.addObject("report", report);
|
return modelAndView;
|
}
|
|
}
|