using System; using System.Collections.Generic; using System.Linq; using System.Web.Mvc; using WX.CRM.Common; using WX.CRM.IBLL.Ord; using WX.CRM.IBLL.Util; using WX.CRM.IBLL.Wx; using WX.CRM.Model.Entity; using WX.CRM.Model.MAP; using WX.CRM.Model.QueryMap; using WX.CRM.WebHelper; namespace WX.CRM.WEB.Controllers.Ord { public class MemoQueryController : BaseController { // // GET: /MemoQuery/ ValidationErrors errors = new ValidationErrors(); IORD_SPECIALMEMO_Q specialMemoBiz_Q; IORD_SERVICEMEMO_Q serviceMemoBiz_Q; IORD_SALEMEMO_Q saleMemoBiz_Q; IORD_PURPOSEMEMO_Q purposeMemoBiz_Q; private ICACHE_Q cacheQ; private readonly IWX_RCONTACT _wxRcontact; private readonly IORD_SERVICEMEMO_EXT _ordServiceMemoExt; public MemoQueryController(IORD_SPECIALMEMO_Q _specialMemoBiz_Q, IORD_SERVICEMEMO_Q _serviceMemoBiz_Q, IORD_SALEMEMO_Q _saleMemoBiz_Q, IORD_PURPOSEMEMO_Q _purposeMemoBiz_Q, ICACHE_Q _cacheQ, IWX_RCONTACT wxRcontact, IORD_SERVICEMEMO_EXT ordServiceMemoExt) { this.specialMemoBiz_Q = _specialMemoBiz_Q; this.serviceMemoBiz_Q = _serviceMemoBiz_Q; this.saleMemoBiz_Q = _saleMemoBiz_Q; this.purposeMemoBiz_Q = _purposeMemoBiz_Q; this.cacheQ = _cacheQ; _wxRcontact = wxRcontact; _ordServiceMemoExt = ordServiceMemoExt; } #region 工单综合查询 /// /// 工单综合查询 /// /// [AuthorizeRedirect(Roles = InitRights.CONST_工单查询)] public ActionResult MemoQuery() { //tool.AllowButton("Other1", "Other2");//, "Other3" //tool.AddOtherButton("Other1", "导出", "icon-export", "export_click", true); //tool.AddOtherButton("Other2", "导出客户所有客户ID", "icon-export", "exportAll_click", true); //tool.AddOtherButton("Other3", "systemBtn", "icon-export", "delete_click", true); ToolBar tool = new ToolBar(); string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.工单查询, userRightId); tool.AllowButton(toolbtn); ViewBag.ToolBar = tool; Pager pager = new Pager() { page = 1, rows = 10 }; string tableId = "tablist"; Table tab = new Table(tableId); tab.AddHeadCol("MEMOID", "12%", "工单编号"); tab.AddHeadCol("RESID", "12%", "客户ID"); tab.AddHeadCol("NAME", "7%", "客户姓名"); tab.AddHeadCol("BUSINESSID", "5%", "业务类型"); tab.AddHeadCol("MEMOCONTENTID", "", "工单内容"); tab.AddHeadCol("MEMOTYPEID", "8%", "工单大类"); tab.AddHeadCol("MEMOSUBTYPEID", "8%", "工单小类"); tab.AddHeadCol("INNERUSERID", "8%", "受理人"); tab.AddHeadCol("CTIME", "10%", "工单时间"); tab.AddHeadCol("CALLTIME", "10%", "通话时间"); tab.AddHeadRow(); ViewBag.gridTable = tab.GetTable() + Pagination.GetPage(pager, tableId, "10,20,30"); ViewBag.inneruserid = UserId; ViewBag.userGroupId = userGroupId; ViewBag.saleDeptId = saleDeptId; ViewBag.roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId); return View(); } [HttpPost] [AuthorizeRedirect(Roles = InitRights.CONST_工单查询)] public JsonResult GetMemoQueryHtml(Pager pager, string columns, QueryUserComboDto userComboDto) { string memoId = Request.Form["memoId"]; string stime = Request.Form["stime"]; string etime = Request.Form["etime"]; string BusinessType = Request.Form["BusinessType"]; string MemoType = Request.Form["MemoType"]; string MemoSubtype = Request.Form["MemoSubtype"]; string content = Request.Form["memoContent"]; //string saleDeptId = Request.Form["saleDeptId"]; //string groupId = Request.Form["groupId"]; //string userId = Request.Form["userId"]; string eid = Request["eid"]; string resid = Request["resid"]; string isShowMobileOfContent = cacheQ.GetValue_Parameter(Model.Enum.Parameter.Sys_IsShowMobileOfContent); if (!string.IsNullOrEmpty(eid)) { userComboDto.userId = InnerUserHelper.Instance.GetUserIdByEid(int.Parse(eid)); } List list = new List(); #region 获取数据 switch (Convert.ToInt32(BusinessType)) { case (int)WX.CRM.Model.Enum.EnumMemoType.服务工单: list = serviceMemoBiz_Q.GetList(ref pager, memoId, stime, etime, resid, Convert.ToDecimal(MemoType), Convert.ToDecimal(MemoSubtype), content, userComboDto); break; case (int)WX.CRM.Model.Enum.EnumMemoType.特殊订单: list = specialMemoBiz_Q.GetList(ref pager, memoId, stime, etime, resid, Convert.ToDecimal(MemoType), Convert.ToDecimal(MemoSubtype), content, userComboDto); break; case (int)WX.CRM.Model.Enum.EnumMemoType.销售工单: list = saleMemoBiz_Q.GetList(ref pager, memoId, stime, etime, resid, Convert.ToDecimal(MemoType), Convert.ToDecimal(MemoSubtype), content, userComboDto); break; case (int)WX.CRM.Model.Enum.EnumMemoType.意向工单: list = purposeMemoBiz_Q.GetList(ref pager, memoId, stime, etime, resid, Convert.ToDecimal(MemoType), Convert.ToDecimal(MemoSubtype), content, userComboDto); break; } #endregion Table table = new Table(columns, true); table.gridPager = pager; ICACHE_Q ui = DataCacheHelper.GetCache(); List memoTypeList = ui.GetList_MemoType();//缓存读取 工单大类数据 List memoSubTypeList = ui.GetList_MemoSubType();//缓存读取 获取所有工单小类数据 ORD_MEMOTYPE memotype = null; ORD_MEMOSUBTYPE memosubType = null; foreach (ORD_MemoQuery model in list) { table.AddCol(table.tdLeft5, "", model.MEMOID); table.AddCol(table.tdLeft5, "", "" + model.RESID + ""); table.AddCol(model.CNAME); table.AddCol(Handler.MethodRsource.GetMemoBusinessName(Convert.ToInt32(BusinessType), Convert.ToInt32(model.BUSINESSID))); if (model.ExtMemoId.HasValue) { model.STRCONTENT = model.STRCONTENT + string.Format("更多", model.ExtMemoId.Value); } if(!string.IsNullOrEmpty(model.STRCONTENT) && (model.STRCONTENT.Contains("证监会") || model.STRCONTENT.Contains("投诉监管"))) { model.STRCONTENT = model.STRCONTENT.Replace("证监会", "证监会").Replace("投诉监管", "投诉监管"); } if (!string.IsNullOrEmpty(isShowMobileOfContent) && isShowMobileOfContent == "1") { table.AddCol(table.tdLeft5, "", model.STRCONTENT); } else { table.AddCol(table.tdLeft5, "", Utility.ReplaceMobile(model.STRCONTENT)); } memotype = memoTypeList.FirstOrDefault(m => m.TYPEID == model.MEMOTYPEID); table.AddCol(table.tdLeft5, "", memotype == null ? "" : memotype.TYPENAME); memosubType = memoSubTypeList.FirstOrDefault(m => m.SUBTYPEID == model.MEMOSUBTYPEID); table.AddCol(table.tdLeft5, "", memosubType == null ? "" : memosubType.TYPENAME); table.AddCol(table.tdLeft5, "", InnerUserHelper.Instance.EidAndName(model.INNERUSERID)); table.AddCol(model.CTIME); table.AddCol(model.CALLTIME); table.AddRow(); } var json = new { totalPages = pager.totalPages, totalRows = pager.totalRows, rowsList = table.GetRows() }; return Json(json, JsonRequestBehavior.AllowGet); } public JsonResult DelMemo(string BusinessType, string MemoId) { return Json(new { }, JsonRequestBehavior.AllowGet); } #endregion #region public ActionResult ServiceMemoExt(decimal extmemoid) { var model = _ordServiceMemoExt.Get(p => p.MEMOID == extmemoid); return View(model); } #endregion #region 客户编号导出 [AuthorizeRedirect(Roles = InitRights.CONST_工单查询)] public FileResult ResourceIDExport(QueryUserComboDto userComboDto) { string memoId = Request.QueryString["memoId"]; string stime = Request.QueryString["stime"]; string etime = Request.QueryString["etime"]; string BusinessType = Request.QueryString["BusinessType"]; string MemoType = Request.QueryString["MemoType"]; string MemoSubtype = Request.QueryString["MemoSubtype"]; string content = Request.Form["memoContent"]; //string saleDeptId = Request.QueryString["saleDeptId"]; //string groupId = Request.QueryString["groupId"]; //string userId = Request.QueryString["userId"]; //var bangwx = Request["bangwx"]; string eid = Request["eid"]; string resid = Request["resid"]; //LogHelper.Info("bangwx:" + bangwx); //LogHelper.Info("schkMemo:" + schkMemo); //var wxResIds = new List(); //if (bangwx == "true") //{ // wxResIds = _wxRcontact.GetList(p => p.RESID != null).Select(p => p.RESID).ToList(); //} if (!string.IsNullOrEmpty(eid)) { userComboDto.userId = InnerUserHelper.Instance.GetUserIdByEid(int.Parse(eid)); } List list = new List(); Pager pager = new Pager { page = 1, rows = 60000 }; #region 获取数据 switch (Convert.ToInt32(BusinessType)) { case (int)WX.CRM.Model.Enum.EnumMemoType.服务工单: list = serviceMemoBiz_Q.GetList(ref pager, memoId, stime, etime, resid, Convert.ToDecimal(MemoType), Convert.ToDecimal(MemoSubtype), content, userComboDto); break; case (int)WX.CRM.Model.Enum.EnumMemoType.特殊订单: list = specialMemoBiz_Q.GetList(ref pager, memoId, stime, etime, resid, Convert.ToDecimal(MemoType), Convert.ToDecimal(MemoSubtype), content, userComboDto); break; case (int)WX.CRM.Model.Enum.EnumMemoType.销售工单: list = saleMemoBiz_Q.GetList(ref pager, memoId, stime, etime, resid, Convert.ToDecimal(MemoType), Convert.ToDecimal(MemoSubtype), content, userComboDto); break; case (int)WX.CRM.Model.Enum.EnumMemoType.意向工单: list = purposeMemoBiz_Q.GetList(ref pager, memoId, stime, etime, resid, Convert.ToDecimal(MemoType), Convert.ToDecimal(MemoSubtype), content, userComboDto); break; } #endregion //return File(ExcelHelper.ExportListObjectToExcel(list, "客户编号", "工单综合查询", null), "application/ms-excel", PageRequest.GetDlownLoadName("客户编号" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls")); //return File(ExcelHelper.ExportListModelToExcel(list, "工单综合查询", 60000, "[resid][otherResid]", "客户ID,客户相关客户ID", null), "application/ms-excel", PageRequest.GetDlownLoadName("客户编号" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls")); //list = list.Where(p => !wxResIds.Contains(p.RESID)).ToList(); //var lis = list.Where(m => m.resid == m.otherResid).Select(s => new { s.resid, s.resAscription }).Distinct().ToList(); //List ListExp = lis.Select(v => new ord_memoExport() { resid = v.resid,resAscription=v.resAscription }).ToList(); var title = "[resid][cname][innerUserId][ctime][calltime][STRCONTENT]"; var titleTxt = "客户ID,姓名,受理人,受理时间,开始时间,工单内容"; if (MemoSubtype == "1023") { //标签工单才执行此处理(北一) title = "[resid][cname][innerUserId][ctime][calltime][STRCONTENT][QW][CP][ZHIBO][ZHIBOTXT][MYD][MYDTXT]"; titleTxt = "客户ID,姓名,受理人,受理时间,开始时间,工单内容,企微,产品,直播,直播说明,满意度,满意度说明"; } return File(ExcelHelper.ExportListModelToExcel(list, "工单综合查询", 60000, title, titleTxt, DataFormart), "application/ms-excel", PageRequest.GetDlownLoadName("客户编号" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls")); //return File(ExcelHelper.ExportListModelToExcel(ListExp, "工单综合查询", 60000, "[resid][resAscription]", "客户ID,资源归属", null), "application/ms-excel", PageRequest.GetDlownLoadName("客户编号" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls")); } #endregion #region 所有客户编号导出 [AuthorizeRedirect(Roles = InitRights.CONST_工单查询)] public FileResult AllResourceIDExport(QueryUserComboDto userComboDto) { string memoId = Request.QueryString["memoId"]; string stime = Request.QueryString["stime"]; string etime = Request.QueryString["etime"]; string BusinessType = Request.QueryString["BusinessType"]; string MemoType = Request.QueryString["MemoType"]; string MemoSubtype = Request.QueryString["MemoSubtype"]; //string saleDeptId = Request.QueryString["saleDeptId"]; //string groupId = Request.QueryString["groupId"]; //string userId = Request.QueryString["userId"]; //var bangwx = Request["bangwx"]; string eid = Request["eid"]; string resid = Request["resid"]; //LogHelper.Info("bangwx:" + bangwx); //LogHelper.Info("schkMemo:" + schkMemo); //var wxResIds = new List(); //if (bangwx == "true") //{ // wxResIds = _wxRcontact.GetList(p => p.RESID != null).Select(p => p.RESID).ToList(); //} if (!string.IsNullOrEmpty(eid)) { userComboDto.userId = InnerUserHelper.Instance.GetUserIdByEid(int.Parse(eid)); } List list = new List(); #region 获取数据 switch (Convert.ToInt32(BusinessType)) { case (int)WX.CRM.Model.Enum.EnumMemoType.服务工单: list = serviceMemoBiz_Q.GetMemoResId(memoId, stime, etime, resid, Convert.ToDecimal(MemoType), Convert.ToDecimal(MemoSubtype), userComboDto); break; case (int)WX.CRM.Model.Enum.EnumMemoType.特殊订单: list = specialMemoBiz_Q.GetMemoResId(memoId, stime, etime, resid, Convert.ToDecimal(MemoType), Convert.ToDecimal(MemoSubtype), userComboDto); break; case (int)WX.CRM.Model.Enum.EnumMemoType.销售工单: list = saleMemoBiz_Q.GetMemoResId(memoId, stime, etime, resid, Convert.ToDecimal(MemoType), Convert.ToDecimal(MemoSubtype), userComboDto); break; case (int)WX.CRM.Model.Enum.EnumMemoType.意向工单: list = purposeMemoBiz_Q.GetMemoResId(memoId, stime, etime, resid, Convert.ToDecimal(MemoType), Convert.ToDecimal(MemoSubtype), userComboDto); break; } #endregion //list = list.Where(p => !wxResIds.Contains(p.resid)).ToList(); //return File(ExcelHelper.ExportListObjectToExcel(list, "客户编号", "工单综合查询", null), "application/ms-excel", PageRequest.GetDlownLoadName("客户编号" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls")); return File(ExcelHelper.ExportListModelToExcel(list, "工单综合查询", 60000, "[resid][otherResid][resascription][name][innerUserId][ctime][calltime]", "客户ID,客户相关客户ID,资源归属,姓名,受理人,受理时间,开始时间", DataFormart), "application/ms-excel", PageRequest.GetDlownLoadName("客户编号" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls")); } public string DataFormart(string key, object value) { string formartValue = string.Empty; switch (key) { case "innerUserId": formartValue = InnerUserHelper.Instance.EidAndName(Convert.ToDecimal(value)).ToString(); break; case "INNERUSERID": formartValue = InnerUserHelper.Instance.EidAndName(Convert.ToDecimal(value)).ToString(); break; default: formartValue = string.Format("{0}", value); break; } return formartValue; } #endregion } }