750 lines
32 KiB
C#
750 lines
32 KiB
C#
using Common;
|
||
using Newtonsoft.Json;
|
||
using Ninject;
|
||
using NPOI.SS.Formula.Functions;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Security.Cryptography;
|
||
using System.Text;
|
||
using System.Web.Mvc;
|
||
using ThoughtWorks.QRCode.Geom;
|
||
using WX.CRM.BLL.Application.UserComBox;
|
||
using WX.CRM.BLL.Base;
|
||
using WX.CRM.BLL.Util;
|
||
using WX.CRM.Common;
|
||
using WX.CRM.Common.StockHelper;
|
||
using WX.CRM.IBLL.Base;
|
||
using WX.CRM.IBLL.Csvr;
|
||
using WX.CRM.IBLL.Res;
|
||
using WX.CRM.IBLL.Util;
|
||
using WX.CRM.Model.DTO;
|
||
using WX.CRM.Model.Entity;
|
||
using WX.CRM.Model.Enum;
|
||
using WX.CRM.Model.MAP;
|
||
using WX.CRM.WebHelper;
|
||
using WX.CRM.WebHelper.DoItems;
|
||
using static WX.CRM.WEB.Controllers.Quality.ComplainCustomerController;
|
||
|
||
namespace WX.CRM.WEB.Controllers.Csvr
|
||
{
|
||
public class ToDoItemController : BaseController
|
||
{
|
||
[Inject]
|
||
public BAS_BUSSINESSLINE_BL line_BL { get; set; }
|
||
|
||
[Inject]
|
||
public CACHE_BL cache_BL { get; set; }
|
||
|
||
//
|
||
// GET: /ToDoItem/
|
||
private ICSVR_TODOITEM _todoItem;
|
||
|
||
private ICSVR_TODOITEM_Q _todoItemq;
|
||
private IRES_CUSTOMER_Q _customer;
|
||
private IBAS_INNERUSER_Q _inneruserq;
|
||
private IRES_CUSTOMERDETAIL_Q _customerDetail;
|
||
private IBAS_MENULOG _menulog;
|
||
private ICACHE_Q _cache;
|
||
private ValidationErrors errors = new ValidationErrors();
|
||
|
||
public ToDoItemController(
|
||
ICSVR_TODOITEM todoItem,
|
||
ICSVR_TODOITEM_Q todoItemq,
|
||
IRES_CUSTOMER_Q customer,
|
||
IBAS_INNERUSER_Q inneruserq,
|
||
IRES_CUSTOMERDETAIL_Q customerDetail,
|
||
ICACHE_Q cache,
|
||
IBAS_MENULOG menulog)
|
||
{
|
||
this._todoItem = todoItem;
|
||
this._todoItemq = todoItemq;
|
||
this._customer = customer;
|
||
this._inneruserq = inneruserq;
|
||
_customerDetail = customerDetail;
|
||
_cache = cache;
|
||
_menulog = menulog;
|
||
}
|
||
|
||
public ActionResult Index()
|
||
{
|
||
var tool = new ToolBar();
|
||
tool.AllowButton("Create", "Edit", "Other1");
|
||
tool.AddOtherButton("Other1", "完成", "icon-flag", "Complete_Click", true);
|
||
ViewBag.ToolBar = tool;
|
||
|
||
var pager = new Pager() { page = 1, rows = 10 };
|
||
var tableId = "tablist";
|
||
var tab = new Table(tableId);
|
||
tab.isCheckbox = true;
|
||
tab.AddHiddenHeadCol("pkid", "ID");//隐藏列
|
||
tab.AddHeadCol("map_SENDEDUSERID", "10%", "发起待办事项人 ");
|
||
tab.AddHeadCol("map_RECEIVEDUSERID", "10%", "接收待办事项人 ");
|
||
tab.AddHeadCol("DEPTNAME", "10%", "事业部 ");
|
||
tab.AddHeadCol("map_RESID", "10%", "客户ID号");
|
||
tab.AddHeadCol("CNAME", "", "姓名");
|
||
tab.AddHeadCol("RESOURCETAG", "", "事件");
|
||
tab.AddHeadCol("map_MEMO", "10%", "待办事项");
|
||
tab.AddHeadCol("ACTIVITYNAME", "", "活动备注");
|
||
tab.AddHeadCol("REMARK", "", "备注");
|
||
tab.AddHeadCol("map_STARTTIME", "10%", "提醒时间");
|
||
tab.AddHeadCol("map_DOSTATUS", "", "状态");
|
||
//tab.AddHeadCol("map_DOREMARK", "", "处理结果");
|
||
tab.AddHeadCol("map_DOUSERID", "", "完成人");
|
||
tab.AddHeadCol("map_DOTIME", "", "完成时间");
|
||
tab.AddHeadCol("URL", "", "");
|
||
tab.AddHeadRow();
|
||
|
||
ViewBag.List = tab.GetTable() + Pagination.GetPage(pager, tableId, "10,20,50,100,200");
|
||
|
||
ViewBag.inneruserid = UserId;
|
||
ViewBag.userGroupId = userGroupId;
|
||
ViewBag.saleDeptId = saleDeptId;
|
||
ViewBag.roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId);
|
||
|
||
var deptList = _cache.GetList_BusinessLines().ToList();
|
||
ViewBag.deptList = deptList;
|
||
|
||
return View();
|
||
}
|
||
|
||
[HttpPost]
|
||
public JsonResult GetHtmlList(Pager pager, string resid, string columns, string memo, QueryUserComboDto usercomboDto, string resourcetag, int? deptlineid)
|
||
{
|
||
try
|
||
{
|
||
//记录待办事项埋点
|
||
try
|
||
{
|
||
var field1 = string.Empty;
|
||
if (!string.IsNullOrWhiteSpace(resourcetag))
|
||
field1 = EnumHelper.GetEnumDescription((ToDoItemTagEnum)Enum.Parse(typeof(ToDoItemTagEnum), resourcetag, true));
|
||
else
|
||
field1 = "全部";
|
||
var parameter = Utility.GetFormPara().ToJson();
|
||
var url = Request.UrlReferrer.AbsolutePath;
|
||
var type = _cache.GetList_LeftMemu().FirstOrDefault(x => x.URL.ToLower() == url.ToLower())?.MNAME;
|
||
_menulog.Create(ref errors, new BAS_MENULOG { EID = Eid, INNERUSERID = UserId, CTIME = DateTime.Now, FIELD1 = field1, IP = Utility.GetIp(), MENU = url, PARAMETER = parameter, TYPE = type, FIELD2 = memo });
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.Error("待办事项埋点记录出错:" + ex.StackTrace + ";" + ex.Message);
|
||
}
|
||
|
||
DateTime? ctime = Request.Form["ctime"].GetDateTime();
|
||
DateTime? etime = Request.Form["etime"].GetDateTime();
|
||
decimal status = Request.Form["status"].GetDecimal(-1);
|
||
//string groupId = Request.Form["groupId"];
|
||
//string userId = Request.Form["userId"];
|
||
|
||
var activity = Request.Form["activity"];
|
||
var list = _todoItemq.GetToDoItemsByParam(ref pager, resid, memo, ctime, etime, status, usercomboDto, resourcetag, activity, deptlineid);
|
||
|
||
var resids = list.Select(p => p.RESID);
|
||
var customers = _customerDetail.GetList(p => resids.Contains(p.RESID));
|
||
|
||
var table = new Table(columns, true)
|
||
{
|
||
gridPager = pager
|
||
};
|
||
table.isCheckbox = true;
|
||
|
||
var sx = new List<string> { "softlogin", "RFM" };
|
||
var tags = EnumHelper.GetSelectItems<ToDoItemTagEnum>();
|
||
foreach (var model in list)
|
||
{
|
||
var customer = customers.FirstOrDefault(p => p.RESID == model.RESID);
|
||
var linkUrl = string.Format("<a href=\"javascript:parent.ChildAddTab('{0}', '{1}', '')\">{2}</a>"
|
||
, "客户详细"
|
||
, "/Csvr/CustomerInfo/CustomerDetail?resid=" + model.RESID
|
||
, model.RESID);
|
||
table.AddHiddenCol(model.PKID);//影藏列
|
||
table.AddCol(InnerUserHelper.Instance.EidAndName(model.SENDEDUSERID));
|
||
table.AddCol(InnerUserHelper.Instance.EidAndName(model.RECEIVEDUSERID));
|
||
table.AddCol(model.DEPTNAME);
|
||
if (string.IsNullOrEmpty(model.URL))
|
||
{
|
||
table.AddCol(model.RESID);
|
||
}
|
||
else
|
||
{
|
||
table.AddCol(linkUrl);
|
||
}
|
||
table.AddCol(customer == null ? "" : customer.CNAME);
|
||
var tagName = "";
|
||
if (!string.IsNullOrEmpty(model.RESOURCETAG))
|
||
{
|
||
var tag = tags.Where(w => w.Key.ToLower() == model.RESOURCETAG.ToLower()).FirstOrDefault();
|
||
if (tag != null)
|
||
{
|
||
tagName = tag.Description;
|
||
}
|
||
else
|
||
{
|
||
if (!sx.Contains(model.RESOURCETAG) && !model.RESOURCETAG.StartsWith("UserCenterEvent"))
|
||
{
|
||
tagName = "报名";
|
||
}
|
||
}
|
||
}
|
||
table.AddCol(tagName);
|
||
table.AddCol(model.MEMO);
|
||
table.AddCol(model.EXTXML ?? "");
|
||
table.AddCol(model.REMARK);
|
||
table.AddCol(model.STARTTIME);
|
||
table.AddCol(model.DOSTATUS == 0 ? "未完成" : "已完成");
|
||
//table.AddCol(model.map_DOREMARK);
|
||
table.AddCol(InnerUserHelper.Instance.EidAndName(model.DOUSERID));
|
||
table.AddCol(model.DOTIME);
|
||
if (model.DOSTATUS == 0)
|
||
{
|
||
if (string.IsNullOrEmpty(model.URL))
|
||
{
|
||
table.AddCol("");
|
||
}
|
||
else
|
||
{
|
||
table.AddCol(string.Format("<a href=\"javascript:gotoComplete('{0}', '{1}', '{3}')\">{2}</a>", model.URLTITLE, model.URL, "去完成", model.PKID));
|
||
}
|
||
}
|
||
else
|
||
table.AddCol("");
|
||
table.AddRow();
|
||
}
|
||
var json = new
|
||
{
|
||
totalPages = pager.totalPages,
|
||
totalRows = pager.totalRows,
|
||
rowsList = table.GetRows()
|
||
};
|
||
return Json(json, JsonRequestBehavior.AllowGet);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.Error("ToDoItemController_GetHtmlList:" + ex.StackTrace + ";" + ex.Message);
|
||
var json = new
|
||
{
|
||
errorMessag = "系统错误:" + ex.Message
|
||
};
|
||
return Json(json, JsonRequestBehavior.AllowGet);
|
||
}
|
||
}
|
||
|
||
public ActionResult Important()
|
||
{
|
||
var tool = new ToolBar();
|
||
tool.AllowButton("Create", "Edit", "Other1");
|
||
tool.AddOtherButton("Other1", "完成", "icon-flag", "Complete_Click", true);
|
||
ViewBag.ToolBar = tool;
|
||
|
||
var pager = new Pager() { page = 1, rows = 10 };
|
||
var tableId = "tablist";
|
||
var tab = new Table(tableId);
|
||
tab.isCheckbox = false;
|
||
tab.AddHiddenHeadCol("pkid", "ID");//隐藏列
|
||
tab.AddHeadCol("deptname", "10%", "业务部 ");
|
||
tab.AddHeadCol("ename", "10%", "员工 ");
|
||
tab.AddHeadCol("resid", "10%", "客户id");
|
||
tab.AddHeadCol("cname", "", "姓名");
|
||
tab.AddHeadCol("eventname", "", "重要线索大类");
|
||
tab.AddHeadCol("eventtypename", "10%", "重要线索小类");
|
||
tab.AddHeadCol("eventmemo", "", "重要内容");
|
||
tab.AddHeadCol("noticetime", "10%", "提醒时间");
|
||
tab.AddHeadCol("isread", "10%", "是否已读");
|
||
tab.AddHeadCol("readtime", "10%", "已读时间");
|
||
tab.AddHeadCol("detail", "10%", "重要线索");
|
||
tab.AddHeadRow();
|
||
|
||
ViewBag.List = tab.GetTable() + Pagination.GetPage(pager, tableId, "10,20,50,100,200");
|
||
|
||
ViewBag.inneruserid = UserId;
|
||
ViewBag.userGroupId = userGroupId;
|
||
ViewBag.saleDeptId = saleDeptId;
|
||
ViewBag.roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId);
|
||
|
||
var deptList = _cache.GetList_BusinessLines().ToList();
|
||
ViewBag.deptList = deptList;
|
||
var webapi = cache_BL.GetValue_Parameter("ToDoItemDetailHost");
|
||
if (string.IsNullOrEmpty(webapi))
|
||
{
|
||
webapi = "http://192.168.11.81:8096";
|
||
}
|
||
ViewBag.Host = webapi;
|
||
return View();
|
||
}
|
||
|
||
[HttpPost]
|
||
public JsonResult GetImportantHtmlList(Pager pager, string resid, string columns, QueryUserComboDto usercomboDto, string cname, string eventid, string eventtypename, string eventmemo, DateTime? ctime, DateTime? etime, int? isread, DateTime? readtimestart, DateTime? readtimeend)
|
||
{
|
||
try
|
||
{
|
||
var table = new Table(columns, true)
|
||
{
|
||
gridPager = pager
|
||
};
|
||
table.isCheckbox = false;
|
||
var lineList = line_BL.GetBusinessLineByRoot(UserId);
|
||
var lineid = string.Join(",", lineList.Select(o => o.BUSINESSID));
|
||
var deptid = default(int?);
|
||
if (usercomboDto.departmentid.HasValue)
|
||
{
|
||
deptid = usercomboDto.departmentid.Value;
|
||
}
|
||
var eid = default(int?);
|
||
if (usercomboDto.eid.HasValue)
|
||
{
|
||
eid = usercomboDto.eid.Value;
|
||
}
|
||
var webapi = cache_BL.GetValue_Parameter(Parameter.ZXD_CORE_WEBAPI);
|
||
//webapi="http://localhost:5244";
|
||
webapi = $"{webapi}/Api/TodoItem/GetList";
|
||
var para = $"pageIndex={pager.page}&pageSize={pager.rows}&lineid={lineid}&deptid={deptid}&eid={eid}&resid={resid}&cname={cname}&eventid={eventid}&eventtypename={eventtypename}&eventmemo={eventmemo}¬icetimeBegin={ctime}¬icetimeEnd={etime}&isread={isread}&readtimeBegin={readtimestart}&readtimeEnd={readtimeend}";
|
||
var result = Utility.GetData(webapi, para, Encoding.UTF8);
|
||
var rsp = Newtonsoft.Json.JsonConvert.DeserializeObject<WX.CRM.Common.StockHelper.ApiResult<WX.CRM.Common.StockHelper.PageResult<TodoItemDto>>>(result);
|
||
if (rsp.Data != null)
|
||
{
|
||
if (rsp.Data.Data != null && rsp.Data.Data.Any())
|
||
{
|
||
foreach (var model in rsp.Data.Data)
|
||
{
|
||
table.AddHiddenCol(model.id);//影藏列
|
||
table.AddCol(model.deptname);
|
||
table.AddCol($"{model.eid} {model.ename}");
|
||
table.AddCol(string.Format("<a href=\"javascript:;\" onclick=\"show_user(this,'{0}','{1}','{2}')\">{1}</a>", model.id, model.resid, model.isread.GetValueOrDefault()));
|
||
table.AddCol(model.cname);
|
||
table.AddCol(model.eventname);
|
||
table.AddCol(model.eventtypename);
|
||
table.AddCol(model.eventmemo);
|
||
table.AddCol($"{model.noticetime?.ToString("yyyy-MM-dd HH:mm:ss")}");
|
||
table.AddCol(model.isread.GetValueOrDefault() == 1 ? "已读" : "未读");
|
||
table.AddCol($"{model.readtime?.ToString("yyyy-MM-dd HH:mm:ss")}");
|
||
table.AddCol(string.Format("<a href=\"javascript:;\" onclick=\"show_detail(this,'{0}','{1}','{3}','{4}','{5}')\">{2}</a>", model.id, model.resid, "查看", model.appid, model.appuserid, model.isread.GetValueOrDefault()));
|
||
table.AddRow();
|
||
}
|
||
}
|
||
|
||
pager.totalRows = rsp.Data.Total;
|
||
}
|
||
|
||
var json = new
|
||
{
|
||
pager.totalPages,
|
||
pager.totalRows,
|
||
rowsList = table.GetRows()
|
||
};
|
||
return Json(json, JsonRequestBehavior.AllowGet);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.Error("ToDoItemController_GetImportantHtmlList:" + ex.StackTrace + ";" + ex.Message);
|
||
var json = new
|
||
{
|
||
errorMessag = "系统错误:" + ex.Message
|
||
};
|
||
return Json(json, JsonRequestBehavior.AllowGet);
|
||
}
|
||
}
|
||
|
||
[HttpGet]
|
||
[AuthorizeRedirect(Roles = InitRights.CONST_重要线索列表)]
|
||
public ActionResult ImportantNew()
|
||
{
|
||
ToolBar tool = new ToolBar();
|
||
string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.重要线索列表, userRightId);
|
||
tool.AllowButton(toolbtn);
|
||
tool.AddOtherButton("Other1", "导出", "icon-detail", "Export_Click", true);
|
||
ViewBag.ToolBar = tool;
|
||
ViewBag.inneruserid = UserId;
|
||
ViewBag.userGroupId = userGroupId;
|
||
ViewBag.saleDeptId = saleDeptId;
|
||
ViewBag.roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId);
|
||
|
||
var deptList = _cache.GetList_BusinessLines().ToList();
|
||
ViewBag.deptList = deptList;
|
||
var webapi = cache_BL.GetValue_Parameter("ToDoItemDetailHost");
|
||
if (string.IsNullOrEmpty(webapi))
|
||
{
|
||
webapi = "http://192.168.11.81:8096";
|
||
}
|
||
|
||
ViewBag.Host = webapi;
|
||
ViewBag.eid = Eid;
|
||
|
||
var resid = Request.QueryString["resid"];
|
||
ViewBag.resid = resid;
|
||
|
||
return View();
|
||
}
|
||
|
||
[HttpPost]
|
||
[AuthorizeRedirect(Roles = InitRights.CONST_重要线索列表)]
|
||
public string ImportantNew(int PageIndex, int PageSize, string Sort, string Order, string resid, int? txt_departmentid, int? txt_eid, string cname, string eventid, string eventtypename, string eventmemo, DateTime? ctime, DateTime? etime, int? isread, DateTime? readtimestart, DateTime? readtimeend, string txt_deptIds)
|
||
{
|
||
var webapi = cache_BL.GetValue_Parameter(Parameter.ZXD_CORE_WEBAPI);
|
||
string lineid = "";
|
||
if (!string.IsNullOrWhiteSpace(txt_deptIds))
|
||
{
|
||
txt_departmentid = null;
|
||
lineid = txt_deptIds;
|
||
}
|
||
else
|
||
{
|
||
var lineList = line_BL.GetBusinessLineByRoot(UserId);
|
||
lineid = string.Join(",", lineList.Select(o => o.BUSINESSID));
|
||
}
|
||
//webapi="http://localhost:5244";
|
||
webapi = $"{webapi}/Api/TodoItem/GetList";
|
||
var para = $"pageIndex={PageIndex}&pageSize={PageSize}&lineid={lineid}&deptid={txt_departmentid}&eid={txt_eid}&resid={resid}&cname={cname}&eventid={eventid}&eventtypename={eventtypename}&eventmemo={eventmemo}¬icetimeBegin={ctime}¬icetimeEnd={etime}&isread={isread}&readtimeBegin={readtimestart}&readtimeEnd={readtimeend}";
|
||
var result = Utility.GetData(webapi, para, Encoding.UTF8);
|
||
return result;
|
||
}
|
||
|
||
[AuthorizeRedirect(Roles = InitRights.CONST_重要线索列表)]
|
||
public ActionResult Export(string param)
|
||
{
|
||
TodoItemRequestDto dto = JsonConvert.DeserializeObject<TodoItemRequestDto>(param);
|
||
var webapi = cache_BL.GetValue_Parameter(Parameter.ZXD_CORE_WEBAPI);
|
||
string lineid = "";
|
||
if (!string.IsNullOrWhiteSpace(dto.txt_deptIds))
|
||
{
|
||
dto.txt_departmentid = null;
|
||
lineid = dto.txt_deptIds;
|
||
}
|
||
else
|
||
{
|
||
var lineList = line_BL.GetBusinessLineByRoot(UserId);
|
||
lineid = string.Join(",", lineList.Select(o => o.BUSINESSID));
|
||
}
|
||
//webapi="http://localhost:5244";
|
||
webapi = $"{webapi}/Api/TodoItem/GetList";
|
||
var para = $"pageIndex=1&pageSize=10000&lineid={lineid}&deptid={dto.txt_departmentid}&eid={dto.txt_eid}&resid={dto.resid}" +
|
||
$"&cname={dto.cname}&eventid={dto.eventid}&eventtypename={dto.eventtypename}&eventmemo={dto.eventmemo}¬icetimeBegin={dto.ctime}¬icetimeEnd={dto.etime}&isread={dto.isread}&readtimeBegin={dto.readtimestart}&readtimeEnd={dto.readtimeend}";
|
||
var result = Utility.GetData(webapi, para, Encoding.UTF8);
|
||
var data = JsonConvert.DeserializeObject<ApiResult<PageResult<TodoItemDto>>>(result);
|
||
if (data.Code == 0)
|
||
{
|
||
string checkedFilds = Server.UrlDecode(Request.Cookies["checkedFilds"].Value);
|
||
string checkedTitle = Server.UrlDecode(Request.Cookies["checkedTitles"].Value);
|
||
return File(ExcelHelper.ExportListModelToExcel<TodoItemDto>(data.Data.Data.ToList(), "重要线索列表", 10000, checkedFilds, checkedTitle, DataFormart), "application/ms-excel", PageRequest.GetDlownLoadName("重要线索列表.xls"));
|
||
}
|
||
|
||
return Json(new { message = "数据获取错误!" }, JsonRequestBehavior.AllowGet);
|
||
}
|
||
|
||
[HttpPost]
|
||
public JsonResult GetEventTypeSelect(string eventid)
|
||
{
|
||
try
|
||
{
|
||
var webapi = cache_BL.GetValue_Parameter(Parameter.ZXD_CORE_WEBAPI);
|
||
//webapi="http://localhost:5244";
|
||
webapi = $"{webapi}/Api/TodoItem/GetEventTypeSelect";
|
||
var para = $"eventid={eventid}";
|
||
var result = Utility.GetData(webapi, para, Encoding.UTF8);
|
||
var rsp = Newtonsoft.Json.JsonConvert.DeserializeObject<WX.CRM.Common.StockHelper.ApiResult<List<SelectItem>>>(result);
|
||
var json = new
|
||
{
|
||
data = rsp.Data,
|
||
};
|
||
return Json(json, JsonRequestBehavior.AllowGet);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.Error("ToDoItemController_GetEventTypeSelect:" + ex.StackTrace + ";" + ex.Message);
|
||
var json = new
|
||
{
|
||
errorMessag = "系统错误:" + ex.Message
|
||
};
|
||
return Json(json, JsonRequestBehavior.AllowGet);
|
||
}
|
||
}
|
||
|
||
[HttpPost]
|
||
public JsonResult EditRead(int? id)
|
||
{
|
||
try
|
||
{
|
||
var webapi = cache_BL.GetValue_Parameter(Parameter.ZXD_CORE_WEBAPI);
|
||
//webapi="http://localhost:5244";
|
||
webapi = $"{webapi}/Api/TodoItem/EditRead";
|
||
var para = $"id={id}";
|
||
var result = Utility.GetData(webapi, para, Encoding.UTF8);
|
||
var rsp = Newtonsoft.Json.JsonConvert.DeserializeObject<WX.CRM.Common.StockHelper.ApiResult<string>>(result);
|
||
var json = new
|
||
{
|
||
data = rsp.Data,
|
||
};
|
||
return Json(json, JsonRequestBehavior.AllowGet);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.Error("ToDoItemController_GetEventTypeSelect:" + ex.StackTrace + ";" + ex.Message);
|
||
var json = new
|
||
{
|
||
errorMessag = "系统错误:" + ex.Message
|
||
};
|
||
return Json(json, JsonRequestBehavior.AllowGet);
|
||
}
|
||
}
|
||
|
||
public class SelectItem
|
||
{
|
||
public object Key { get; set; }
|
||
|
||
public object Value { get; set; }
|
||
}
|
||
|
||
[HttpGet]
|
||
public ActionResult Add(string id)
|
||
{
|
||
CSVR_TODOITEM model = null;
|
||
if (id != null)
|
||
{
|
||
model = _todoItemq.GetToDoItemById(Convert.ToDecimal(id));
|
||
// var inneruser = _inneruserq.GetModel(model.map_RECEIVEDUSERID);
|
||
decimal? RECEIVEDUSERID = InnerUserHelper.Instance.GetEidByUserId(model.map_RECEIVEDUSERID);
|
||
model.map_RECEIVEDUSERID = RECEIVEDUSERID.HasValue ? RECEIVEDUSERID.Value : 0;
|
||
}
|
||
ViewBag.mySelf = UserId;
|
||
return View(model);
|
||
}
|
||
|
||
[HttpPost]
|
||
public ActionResult Add(CSVR_TODOITEM model)
|
||
{
|
||
try
|
||
{
|
||
model.map_SENDEDUSERID = UserId;
|
||
model.map_DOSTATUS = 0;
|
||
//model.RESID = model.RESID.Trim();
|
||
if (model.map_SENDEDUSERID == model.map_RECEIVEDUSERID)
|
||
{
|
||
model.map_ISPRIVATE = 1;
|
||
}
|
||
else { model.map_ISPRIVATE = 0; }
|
||
model.map_RECEIVEDUSERID = InnerUserHelper.Instance.GetUserIdByEid(model.map_RECEIVEDUSERID);
|
||
if (ModelState.IsValid)
|
||
{
|
||
if (model.PKID == 0)
|
||
{
|
||
bool result = this._todoItem.Create(ref errors, model);
|
||
return JsonHandler.InsertMessage(errors, result);
|
||
}
|
||
else
|
||
{
|
||
if (model.map_DOSTATUS == 0)
|
||
{
|
||
bool result = this._todoItem.Update(ref errors, model);
|
||
return JsonHandler.UpdateMessage(errors, result);
|
||
}
|
||
else { return JsonHandler.ManageMessage("该事项已完成", false); }
|
||
}
|
||
}
|
||
else
|
||
{
|
||
return JsonHandler.JsonResultSerialize(ModelState);
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.Error(ex.Message);
|
||
return JsonHandler.ManageMessage(ex.Message, false);
|
||
}
|
||
}
|
||
|
||
[HttpPost]
|
||
public ActionResult DoItems()
|
||
{
|
||
string msg = "";
|
||
string msginfo = "";
|
||
string url = "";
|
||
string urk = "";
|
||
try
|
||
{
|
||
foreach (var tool in WebHelper.DoItems.PopupMessageFactory.PopupMessageArray)
|
||
{
|
||
msg = tool.GetMessage(UserId);
|
||
if (msg != string.Empty)
|
||
{
|
||
url = tool.GetUrl().IndexOf("?") > -1 ? (tool.GetUrl() + "&userid=" + UserId) : (tool.GetUrl() + "?userid=" + UserId);
|
||
msginfo += msg + ",";
|
||
urk += url + ",";
|
||
}
|
||
}
|
||
if (!string.IsNullOrEmpty(msginfo))
|
||
{
|
||
string[] msglist = msginfo.Substring(0, msginfo.Length - 1).Split(',');
|
||
string[] urllist = urk.Substring(0, urk.Length - 1).Split(',');
|
||
var json = new { result = true, messages = msglist, url = urllist };//数组初始化
|
||
return Json(json, JsonRequestBehavior.AllowGet);
|
||
}
|
||
else
|
||
{
|
||
var json = new
|
||
{
|
||
result = false,
|
||
messages = "",
|
||
url = ""
|
||
};
|
||
return Json(json, JsonRequestBehavior.AllowGet);
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.Error("DoItems:" + ex.ToString());
|
||
var json = new
|
||
{
|
||
result = false,
|
||
messages = ex.Message,
|
||
url = ""
|
||
};
|
||
return Json(json, JsonRequestBehavior.AllowGet);
|
||
}
|
||
}
|
||
|
||
//public ActionResult SetNeedRefresh()
|
||
//{
|
||
// WebHelper.DoItems.PopupMessageFactory.toDoItemMessage.SetNeedRefresh();
|
||
// var json = new
|
||
// {
|
||
// result = true,
|
||
// messages = "",
|
||
// url = ""
|
||
// };
|
||
// return Json(json, JsonRequestBehavior.AllowGet);
|
||
//}
|
||
|
||
[HttpPost]
|
||
public ActionResult Complete(string allid)
|
||
{
|
||
if (string.IsNullOrEmpty(allid))
|
||
{
|
||
return JsonHandler.ManageMessage("参数有误!", false);
|
||
}
|
||
var ids = allid.Replace("][", ";").Replace("]", "").Replace("[", "");
|
||
string nojieshouren = "";
|
||
foreach (var item in ids.Split(';'))
|
||
{
|
||
var id = Convert.ToDecimal(item);
|
||
var model = _todoItemq.GetToDoItemById(id);
|
||
if (model != null)
|
||
{
|
||
if (model.DOSTATUS < 1)
|
||
{
|
||
if (model.RECEIVEDUSERID == UserId)
|
||
{
|
||
model.DOSTATUS = 1;
|
||
model.DOTIME = DateTime.Now;
|
||
model.DOUSERID = UserId;
|
||
model.DOREMARK = "完成";
|
||
bool result = this._todoItem.Update(ref errors, model);
|
||
if (!result)
|
||
{
|
||
return JsonHandler.UpdateMessage(errors, result);
|
||
}
|
||
else
|
||
{
|
||
PopupMessageFactory.toDoItemMessage.SetView(model.map_RECEIVEDUSERID, model.map_PKID.ToString());
|
||
}
|
||
}
|
||
else
|
||
{
|
||
nojieshouren += string.IsNullOrEmpty(nojieshouren) ? $"{id}" : $",{id}";
|
||
//return JsonHandler.ManageMessage("非接收人不能完成该待办事项", false);
|
||
}
|
||
}
|
||
//else
|
||
//{
|
||
// return JsonHandler.ManageMessage("该事项已完成", false);
|
||
//}
|
||
//return JsonHandler.ManageMessage("修改成功", true);
|
||
}
|
||
else
|
||
{
|
||
//return JsonHandler.ManageMessage("找不到该数据", false);
|
||
}
|
||
}
|
||
if (string.IsNullOrEmpty(nojieshouren))
|
||
return JsonHandler.ManageMessage("修改成功", true);
|
||
else
|
||
{
|
||
return JsonHandler.ManageMessage($"ID:{nojieshouren}非接收人不能完成该待办事项", false);
|
||
}
|
||
}
|
||
|
||
[AuthorizeRedirect(Roles = InitRights.CONST_公共权限)]
|
||
public FileResult ExportAll(string resid, string columns, QueryUserComboDto usercomboDto, string resourcetag)
|
||
{
|
||
Pager pager = new Pager() { page = 1, rows = int.MaxValue };
|
||
string checkedFilds = PageRequest.GetQueryString("checkedFilds");
|
||
string checkedTitles = PageRequest.GetQueryString("checkedTitles");
|
||
DateTime? ctime = Request.QueryString["ctime"].GetDateTime();
|
||
DateTime? etime = Request.QueryString["etime"].GetDateTime();
|
||
decimal status = Request.QueryString["status"].GetDecimal(-1);
|
||
|
||
var list = _todoItemq.GetToDoItemsByParamExport(ref pager, resid, ctime, etime, status, usercomboDto, resourcetag);
|
||
//List<WX.CRM.Model.Entity.BAS_INNERUSER_Extend> list = inneruserBiz_Q.GetList(ref pager, "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
|
||
return File(ExcelHelper.ExportListModelToExcel<WX.CRM.Model.Entity.CSVR_TODOITEM_MAP>(list, "代办事项", 10000, checkedFilds, checkedTitles, DataFormart), "application/ms-excel", PageRequest.GetDlownLoadName("代办事项.xls"));
|
||
}
|
||
|
||
//用作委托传递
|
||
public string DataFormart(string key, object value)
|
||
{
|
||
string formartValue = string.Empty;
|
||
switch (key)
|
||
{
|
||
case "map_DOSTATUS":
|
||
switch (Convert.ToString(value))
|
||
{
|
||
case "0": formartValue = "未完成"; break;
|
||
default: formartValue = "已完成"; break;
|
||
}; break;
|
||
case "map_SENDEDUSERID":
|
||
formartValue = InnerUserHelper.Instance.EidAndName(Convert.ToDecimal(value)); break;
|
||
case "map_RECEIVEDUSERID":
|
||
formartValue = InnerUserHelper.Instance.EidAndName(Convert.ToDecimal(value)); break;
|
||
case "URL":
|
||
formartValue = ""; break;
|
||
default: formartValue = string.Format("{0}", value); break;
|
||
}
|
||
return formartValue;
|
||
}
|
||
}
|
||
|
||
public class TodoItemDto
|
||
{
|
||
public int? id { get; set; }
|
||
|
||
public int? deptid { get; set; }
|
||
|
||
public string deptname { get; set; }
|
||
|
||
public int? eid { get; set; }
|
||
|
||
public string ename { get; set; }
|
||
|
||
public string resid { get; set; }
|
||
public string umid { get; set; }
|
||
public int? customerid { get; set; }
|
||
|
||
public string cname { get; set; }
|
||
|
||
public int? eventid { get; set; }
|
||
|
||
public string eventname { get; set; }
|
||
|
||
public string eventmemo { get; set; }
|
||
|
||
public DateTime? noticetime { get; set; }
|
||
|
||
public string eventtypename { get; set; }
|
||
|
||
public int? isread { get; set; }
|
||
|
||
public DateTime? readtime { get; set; }
|
||
|
||
public string appid { get; set; }
|
||
|
||
public string appuserid { get; set; }
|
||
}
|
||
} |