天津投入产出系统后端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1219 lines
44 KiB

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using QMFrameWork.WebUI.Attribute;
using QMFrameWork.WebUI.DataSource;
using QMFrameWork.Data;
using QMAPP.Entity.Sys;
using QMAPP.Web.Models.Sys;
using QMAPP.Common.Web.Controllers;
using QMFrameWork.WebUI.Menu;
using System.Text;
using System.Data;
using QMAPP.ServicesAgent;
using System.Configuration;
using QMFrameWork.Common.Serialization;
using QMAPP.Entity;
using System.Text.RegularExpressions;
namespace QMAPP.Web.Controllers
{
/// <summary>
/// 公告管理控制层
/// 创建人:王丹丹
/// 创建时间:20150309
/// </summary>
public class NoticeController : QController
{
#region 字符串常量
private const string uploadFolder = "\\Notice\\";
#endregion
#region 公告信息操作
#region 通知列表
/// <summary>
/// 通知列表加载
/// </summary>
/// <returns></returns>
[HandleException]
public ActionResult NoticeList(bool? callBack)
{
NoticeInfoModel seachModel = new NoticeInfoModel();
if (callBack == true)
TryGetSelectBuffer<NoticeInfoModel>(out seachModel);
seachModel.rownumbers = false;
seachModel.url = "/Notice/GetList";
return View("NoticeList", seachModel);
}
/// <summary>
/// 获取通知列表
/// </summary>
/// <param name="callBack">是否回调</param>
/// <returns></returns>
[HandleException]
public ActionResult GetList(bool? callBack)
{
List<NoticeInfoModel> notice = new List<NoticeInfoModel>();
NoticeInfoModel seachModel = null;
DataPage page = null;
NoticeInfo condition = null;
try
{
//获取查询对象
seachModel = GetModel<NoticeInfoModel>();
#region 获取缓存值
if (callBack != null)
{
TryGetSelectBuffer<NoticeInfoModel>(out seachModel);
}
else
{
//保存搜索条件
SetSelectBuffer<NoticeInfoModel>(seachModel);
}
#endregion
//获取前台分页设置信息
page = this.GetDataPage(seachModel);
//获取查询条件
condition = CopyToModel<NoticeInfo, NoticeInfoModel>(seachModel);
condition.UserID = AccountController.GetLoginInfo().UserID;
#region 调用服务
QMAPP.ServicesAgent.ServiceAgent agent = this.GetServiceAgent();
page = agent.InvokeServiceFunction<DataPage>(QMAPP.ServicesAgent.SystemService.NoticeManageBll_GetList.ToString(), condition, page);
#endregion
#region 转换回复数量格式
//转换回复数量格式
List<NoticeInfo> list = JsonConvertHelper.GetDeserialize<List<NoticeInfo>>(page.Result.ToString());
foreach (var item in list)
{
if (item.REPLYCOUNT == "" || item.REPLYCOUNT == null)
{
item.REPLYCOUNT = "0";
}
}
#endregion
//转换查询结果
DataGridResult<NoticeInfo> result = new DataGridResult<NoticeInfo>();
result.Total = page.RecordCount;
result.Rows = list;
return Content(result.GetJsonSource());
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
#region 通知编辑
/// <summary>
/// 通知编辑载入
/// </summary>
/// <returns>通知信息</returns>
[HandleException]
public ActionResult NoticeEdit()
{
QMAPP.ServicesAgent.ServiceAgent agent = this.GetServiceAgent();
string noticeID = Request.Params["noticeID"];
NoticeInfoModel model = new NoticeInfoModel();
NoticeInfo notice = new NoticeInfo();
User user = new User();
User usermodel = new User();
try
{
if (string.IsNullOrEmpty(noticeID) == false)
{
//获取原通知信息
notice.NOTICEID = noticeID;
notice = agent.InvokeServiceFunction<NoticeInfo>(QMAPP.ServicesAgent.SystemService.NoticeManageBll_Get.ToString(), notice);
model = CopyToModel<NoticeInfoModel, NoticeInfo>(notice);
//获取文件名
if (!string.IsNullOrEmpty(notice.ATTACHFILE))
{
model.ATTACHFILETXT = ChangeFilePath(notice.ATTACHFILE);
}
//根据通知ID,从通知浏览记录表中,获取发送目标
List<NoticeBrowse> listEntity = agent.InvokeServiceFunction<List<NoticeBrowse>>(QMAPP.ServicesAgent.SystemService.NoticeManageBll_GetSendaimIdList.ToString(), noticeID);
//根据浏览用户id获取用户名
#region 根据浏览用户id获取用户名
foreach (var item in listEntity){
//浏览用户id
usermodel.UserID = item.USERID;
if (model.SENDAIM == "" || model.SENDAIM == null)
{
model.SENDAIM = item.USERID;
}
else
{
model.SENDAIM += "," + item.USERID;
}
//根据浏览用户id获取用户名
#region 调用服务
user = agent.InvokeServiceFunction<User>(QMAPP.ServicesAgent.SystemService.NoticeManageBll_GetUser.ToString(), usermodel);
#endregion
if (user != null)
{
if (model.SENDAIMNAME == "" || model.SENDAIMNAME == null)
{
model.SENDAIMNAME = user.UserName;
}
else
{
model.SENDAIMNAME += "," + user.UserName;
}
}
}
#endregion
}
else
{
model.USETIME = Convert.ToDateTime(DateTime.Now.ToShortDateString());
model.OUTTIME = Convert.ToDateTime(DateTime.Now.AddDays(5).ToShortDateString());
}
return View("NoticeEdit", model);
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
#region 保存通知
/// <summary>
/// 保存通知
/// </summary>
/// <param name="saveModel">通知信息</param>
/// <returns>返回动作</returns>
[HttpPost]
[HandleException]
public ActionResult NoticeSave(NoticeInfoModel saveModel,HttpPostedFileBase file)
{
QMAPP.ServicesAgent.ServiceAgent agent = this.GetServiceAgent();
NoticeInfo notice = new NoticeInfo();
NoticeInfo model = new NoticeInfo();
NoticeUpdateInfo updateNotice = new NoticeUpdateInfo();
NoticeBrowse noticebrowse = new NoticeBrowse();
try
{
//获取逻辑对象
notice = CopyToModel<NoticeInfo, NoticeInfoModel>(saveModel);
//获取文件保存路径
string trueFilePath = "";
if (!string.IsNullOrEmpty(notice.ATTACHFILE))
{
trueFilePath = FilePath(notice.ATTACHFILE);
#region 保存附件
//修改通知
if (!string.IsNullOrEmpty(notice.NOTICEID))
{
#region 修改附件
NoticeInfo entity = agent.InvokeServiceFunction<NoticeInfo>(QMAPP.ServicesAgent.SystemService.NoticeManageBll_Get.ToString(), notice);
//如果修改了上传附件,校验附件是否存在
if (trueFilePath != entity.ATTACHFILE)
{
//判断文件路径是否存在
bool issuccess = agent.InvokeServiceFunction<bool>(QMAPP.ServicesAgent.SystemService.NoticeManageBll_ExistsFile.ToString(), trueFilePath);
if (issuccess)
{
SetMessage(AppResource.FileNameIsHave);
return View("NoticeEdit", saveModel);
}
else
{
//删除原附件
agent.InvokeServiceFunction(QMAPP.ServicesAgent.SystemService.NoticeManageBll_DeleteFile.ToString(), entity.ATTACHFILE);
//上传新附件
model = this.UploadFile(file, trueFilePath);
if (model.IsSuccess == false)
{
SetMessage(model.InfoError);
return View("NoticeEdit", saveModel);
}
}
}
#endregion
}
//新建通知
else
{
#region 新建附件
//判断文件路径是否存在
bool issuccess = agent.InvokeServiceFunction<bool>(QMAPP.ServicesAgent.SystemService.NoticeManageBll_ExistsFile.ToString(), trueFilePath);
if (issuccess)
{
SetMessage(AppResource.FileNameIsHave);
return View("NoticeEdit", saveModel);
}
else
{
//上传附件
model = this.UploadFile(file, trueFilePath);
if (model.IsSuccess == false)
{
SetMessage(model.InfoError);
return View("NoticeEdit", saveModel);
}
}
#endregion
}
#endregion
}
notice.ATTACHFILE = trueFilePath;
//保存通知
DataResult result = agent.InvokeServiceFunction<DataResult>(QMAPP.ServicesAgent.SystemService.NoticeManageBll_Save.ToString(), notice);
if (result.IsSuccess == false)
{
SetMessage(result.Msg);
return View("NoticeEdit", saveModel);
}
//保存成功
SetMessage(AppResource.SaveMessge);
return this.GetJsViewResult(string.Format("parent.List(1);parent.showTitle('{0}');parent.closeAppWindow1();"
, AppResource.SaveMessge));
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
#region 删除通知
/// <summary>
/// 删除通知
/// </summary>
/// <returns>结果</returns>
[HttpPost]
[HandleException]
public ActionResult NoticeDelete()
{
string selectKey = Request.Form["selectKey"];
try
{
#region 调用服务
QMAPP.ServicesAgent.ServiceAgent agent = this.GetServiceAgent();
int count = agent.InvokeServiceFunction<int>(QMAPP.ServicesAgent.SystemService.NoticeManageBll_DeleteNotice.ToString(), selectKey);
#endregion
SetMessage(AppResource.DeleteMessage);
return NoticeList(true);
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
#region 获取未读通知信息列表
/// <summary>
/// 获取未读通知信息列表
/// </summary>
/// <returns></returns>
[HandleException]
public ActionResult GetNotReadNotice()
{
List<NoticeInfoModel> returnList = null;
NoticeInfo model = new NoticeInfo();
List<NoticeInfo> noticeList = new List<NoticeInfo>();
try
{
model.UserID = AccountController.GetLoginInfo().UserID;
#region 调用服务
QMAPP.ServicesAgent.ServiceAgent agent = this.GetServiceAgent();
noticeList = agent.InvokeServiceFunction<List<NoticeInfo>>(QMAPP.ServicesAgent.SystemService.NoticeManageBll_GetNotReadNotice.ToString(), model);
#endregion
if (noticeList != null)
{
returnList = new List<NoticeInfoModel>();
foreach (NoticeInfo ni in noticeList)
{
NoticeInfoModel retModel = CopyToModel<NoticeInfoModel, NoticeInfo>(ni);
returnList.Add(retModel);
}
}
return Json(returnList);
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
#region 获取未读即时通知信息列表
/// <summary>
/// 获取未读即时通知信息列表
/// </summary>
/// <returns></returns>
[HandleException]
public ActionResult GetNotReadInstantNotice()
{
List<NoticeInfoModel> returnList = null;
NoticeInfo model = new NoticeInfo();
List<NoticeInfo> noticeList = new List<NoticeInfo>();
try
{
model.UserID = AccountController.GetLoginInfo().UserID;
#region 调用服务
QMAPP.ServicesAgent.ServiceAgent agent = this.GetServiceAgent();
noticeList = agent.InvokeServiceFunction<List<NoticeInfo>>(QMAPP.ServicesAgent.SystemService.NoticeManageBll_GetNotReadInstantNotice.ToString(), model);
#endregion
if (noticeList != null)
{
returnList = new List<NoticeInfoModel>();
foreach (NoticeInfo ni in noticeList)
{
NoticeInfoModel retModel = CopyToModel<NoticeInfoModel, NoticeInfo>(ni);
returnList.Add(retModel);
}
}
return Json(returnList);
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
#endregion
#region 公告信息及浏览记录信息查看、回复
#region 公告信息查看
/// <summary>
/// 公告信息查看
/// </summary>
/// <returns></returns>
[HandleException]
public ActionResult ViewNotice()
{
string noticeID = Request.Params["noticeID"];
string check = "";
check = Request.Params["check"];
NoticeBrowseModel seachModel = null;
NoticeBrowse noticebrowse = new NoticeBrowse();
NoticeInfo noticeModel = new NoticeInfo();
try
{
//获取查询对象
seachModel = GetModel<NoticeBrowseModel>();
//获取通知公告id
noticeModel.NOTICEID = noticeID;
#region 调用服务
QMAPP.ServicesAgent.ServiceAgent agent = this.GetServiceAgent();
noticeModel = agent.InvokeServiceFunction<NoticeInfo>(QMAPP.ServicesAgent.SystemService.NoticeManageBll_Get.ToString(), noticeModel);
#endregion
#region 更新通知浏览记录为已浏览
//获取公告浏览记录
noticebrowse.USERID = AccountController.GetLoginInfo().UserID;
noticebrowse.NOTICEID = noticeID;
#region 调用服务
noticebrowse = agent.InvokeServiceFunction<NoticeBrowse>(QMAPP.ServicesAgent.SystemService.NoticeManageBll_GetBrowseModel.ToString(), noticebrowse);
#endregion
if (noticebrowse != null)
{
noticebrowse.ISREAD = "1";
noticebrowse.READTIME = DateTime.Now;
//更新通知浏览记录为已浏览
#region 调用服务
agent.InvokeServiceFunction<int>(QMAPP.ServicesAgent.SystemService.NoticeManageBll_UpdateNoticeBrowse.ToString(), noticebrowse);
#endregion
}
#endregion
//获取查询条件
seachModel = CopyToModel<NoticeBrowseModel, NoticeInfo>(noticeModel);
//seachModel.USETIME = noticeModel.USETIME.ToShortDateString();
seachModel.USETIME = noticeModel.USETIME.ToString("yyyy-MM-dd");
if (noticebrowse != null)
{
seachModel.REPLYCONTENT = noticebrowse.REPLYCONTENT;
}
//当前登录用户
seachModel.LogInUserName = AccountController.GetLoginInfo().LoginUserID.ToLower();
seachModel.check = check;
#region 获取附件名称
if (!string.IsNullOrEmpty(noticeModel.ATTACHFILE))
{
seachModel.ATTACHFILE = ChangeFilePath(noticeModel.ATTACHFILE);
}
#endregion
return View("ViewNotice", seachModel);
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
#region 公告信息回复
/// <summary>
/// 公告信息回复
/// </summary>
/// <returns></returns>
[HandleException]
public ActionResult ViewNoticeReply(NoticeBrowseModel saveModel)
{
NoticeBrowse noticebrowse = new NoticeBrowse();
try
{
noticebrowse = CopyToModel<NoticeBrowse, NoticeBrowseModel>(saveModel);
#region 更新通知浏览记录
noticebrowse.USERID = AccountController.GetLoginInfo().UserID;
noticebrowse.NOTICEID = saveModel.NOTICEID;
#region 调用服务
QMAPP.ServicesAgent.ServiceAgent agent = this.GetServiceAgent();
noticebrowse = agent.InvokeServiceFunction<NoticeBrowse>(QMAPP.ServicesAgent.SystemService.NoticeManageBll_GetBrowse.ToString(), noticebrowse);
#endregion
noticebrowse.REPLYTIME = DateTime.Now;
noticebrowse.REPLYCONTENT = saveModel.REPLYCONTENT;
//更新通知浏览记录为已浏览
#region 调用服务
agent.InvokeServiceFunction<int>(QMAPP.ServicesAgent.SystemService.NoticeManageBll_UpdateNoticeBrowse.ToString(), noticebrowse);
#endregion
#endregion
//保存成功
SetMessage(AppResource.SaveMessge);
return this.GetJsViewResult(string.Format("parent.List(1);parent.showTitle('{0}');parent.closeAppWindow1();"
, AppResource.SaveMessge));
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
#region 查看公告信息及浏览记录
/// <summary>
/// 查看公告信息及浏览记录
/// </summary>
/// <returns>公告信息</returns>
[HandleException]
public ActionResult ViewNoticeBrowse()
{
string noticeID = Request.Params["noticeID"];
NoticeBrowseModel seachModel = null;
NoticeBrowse noticebrowse = new NoticeBrowse();
DataPage page = null;
NoticeInfo noticeModel = new NoticeInfo();
IList<NoticeBrowse> listModel = new List<NoticeBrowse>();
try
{
//获取查询对象
seachModel = GetModel<NoticeBrowseModel>();
//获取前台分页设置信息
page = this.GetDataPage(seachModel);
page.PageSize = 10000;
//获取通知公告id
noticebrowse.NOTICEID = noticeID;
//获取通知浏览记录
QMAPP.ServicesAgent.ServiceAgent agent = this.GetServiceAgent();
page = agent.InvokeServiceFunction<DataPage>(QMAPP.ServicesAgent.SystemService.NoticeManageBll_GetBrowseList.ToString(), noticebrowse, page);
#region 更新通知浏览记录为已浏览
//获取公告浏览记录
noticebrowse.USERID = AccountController.GetLoginInfo().UserID;
noticebrowse.NOTICEID = noticeID;
noticebrowse = agent.InvokeServiceFunction<NoticeBrowse>(QMAPP.ServicesAgent.SystemService.NoticeManageBll_GetBrowse.ToString(), noticebrowse);
if (noticebrowse != null)
{
noticebrowse.READTIME = DateTime.Now;
noticebrowse.ISREAD = "1";
agent.InvokeServiceFunction<int>(QMAPP.ServicesAgent.SystemService.NoticeManageBll_UpdateNoticeBrowse.ToString(), noticebrowse);
}
#endregion
#region 回复时间格式转换
List<NoticeBrowse> listInfo = JsonConvertHelper.GetDeserialize<List<NoticeBrowse>>(page.Result.ToString());
//回复时间格式转换
foreach (var item in listInfo)
{
if (Convert.ToDateTime(item.REPLYTIME) == DateTime.MinValue)
{
item.REPLYTIMETXT = "";
}
else
{
item.REPLYTIMETXT = Convert.ToDateTime(item.REPLYTIME).ToString("yyyy-MM-dd HH:mm:ss");
}
}
#endregion
#region 转换查询结果
//转换查询结果
DataGridResult<NoticeBrowse> result = new DataGridResult<NoticeBrowse>();
result.Total = page.RecordCount;
result.Rows = listInfo;
#endregion
//获取通知公告
noticeModel.NOTICEID = noticeID;
#region 调用服务
noticeModel = agent.InvokeServiceFunction<NoticeInfo>(QMAPP.ServicesAgent.SystemService.NoticeManageBll_Get.ToString(), noticeModel);
#endregion
#region 获取附件名称
if (!string.IsNullOrEmpty(noticeModel.ATTACHFILE))
{
seachModel.ATTACHFILE = ChangeFilePath(noticeModel.ATTACHFILE);
}
#endregion
//通知浏览记录
seachModel.INFOLIST = result.GetJsonSource();
//通知信息
seachModel.NOTICETITLE = noticeModel.NOTICETITLE;
seachModel.NOTICECONTEXT = noticeModel.NOTICECONTEXT;
seachModel.USETIME = noticeModel.USETIME.ToString("yyyy-MM-dd");
return View("ViewNoticeBrowse",seachModel);
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
#endregion
#region 查看公告列表
/// <summary>
/// 查看公告列表
/// </summary>
/// <returns></returns>
[HandleException]
public ActionResult NoticeMessList()
{
NoticeInfoModel seachModel = new NoticeInfoModel();
TryGetSelectBuffer<NoticeInfoModel>(out seachModel);
seachModel.rownumbers = false;
seachModel.checkbox = false;
seachModel.url = "/Notice/GetList";
return View("NoticeMess", seachModel);
}
#endregion
#region 导出excel
/// <summary>
/// 导出excel
/// </summary>
/// <returns>结果</returns>
[HttpPost]
public ActionResult ExportExcel()
{
NoticeInfoModel seachModel = null;
NoticeInfo condition = null;
DataTable exportDt = new DataTable();
ServiceAgent wcfAgent = this.GetServiceAgent();
string ids = Request.Params["ids"];
try
{
//获取查询对象
seachModel = GetModel<NoticeInfoModel>();
condition = CopyToModel<NoticeInfo, NoticeInfoModel>(seachModel);
//获取数据
#region 调用服务
QMAPP.ServicesAgent.ServiceAgent agent = this.GetServiceAgent();
exportDt = agent.InvokeServiceFunction<DataTable>(QMAPP.ServicesAgent.SystemService.NoticeManageBll_GetExportData.ToString(), condition);
#endregion
#region 根据所选信息进行导出
//根据所选信息进行导出
if (ids != "")
{
DataView dv = new DataView(exportDt);
string strWhere = "";
string[] list = ids.Split(":".ToCharArray());
foreach (string ID in list)
{
strWhere += " NOTICEID='" + ID + "' or";
}
if (strWhere != "")
{
strWhere = strWhere.Remove((strWhere.Length - 2), 2);
}
dv.RowFilter = strWhere;
exportDt = dv.ToTable();
}
#endregion
//导出
QMFrameWork.WebUI.Util.IEFileTool efTool = new QMFrameWork.WebUI.Util.IEFileTool();
return efTool.GetExcelFileResult("NoticeInfo", "通知信息.xlsx", exportDt);
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
#region 上传附件
#region 上传附件
/// <summary>
/// 上传附件
/// </summary>
/// <param name="file"></param>
/// <returns>附件路径,结果</returns>
[HttpPost]
public NoticeInfo UploadFile(HttpPostedFileBase file, string trueFilePath)
{
NoticeInfo model = new NoticeInfo();
model.IsSuccess = true;
string fileName = file.FileName;
try
{
#region 校验附件大小
//计算文件大小
int fileLength = file.ContentLength / 1024;
//判断如果文件大小超过5M,不允许上传
if (fileLength > 5120)
{
model.InfoError = "上传附件不能大于5M";
model.IsSuccess = false;
return model;
}
#endregion
//保存文件
file.SaveAs(trueFilePath);
model.ATTACHFILE = trueFilePath;
return model;
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
#region 获取文件保存路径
/// <summary>
/// 获取文件保存路径
/// </summary>
/// <param name="filePath"></param>
/// <returns></returns>
public string FilePath(string filePath)
{
string truefilepath = "";
string expandName = "";
string trueFileName = "";
#region 创建上传文件夹
//获取配置文件上传通知文件夹名称
string noticeUploadFile = ConfigurationManager.AppSettings.Get("UploadFileRoot");
//应用程序物理路径
//PhysicsRootPath = Server.MapPath(HttpRuntime.AppDomainAppVirtualPath);
PhysicsRootPath = GetRootPath();
//附件目录
string UploadFile = PhysicsRootPath + noticeUploadFile;
//如果文件夹不存在则创建文件夹
if (System.IO.Directory.Exists(UploadFile) == false)
{
System.IO.Directory.CreateDirectory(UploadFile);
}
//通知公告文件路径
string NoticePath = UploadFile + "\\Notice\\";
//如果文件夹不存在则创建文件夹
if (System.IO.Directory.Exists(NoticePath) == false)
{
System.IO.Directory.CreateDirectory(NoticePath);
}
#endregion
//构造文件名
if (filePath.IndexOf(".") > 0)
{
expandName = filePath.Substring(filePath.LastIndexOf(".") + 1);
string temp = filePath.Substring(filePath.LastIndexOf("."));
trueFileName = filePath.Substring(filePath.LastIndexOf("\\") + 1);
trueFileName = trueFileName.Substring(0, trueFileName.Length - temp.Length);
truefilepath = NoticePath + trueFileName + "." + expandName;
}
return truefilepath;
}
#endregion
#region 截取附件名称
/// <summary>
/// 截取附件名称
/// </summary>
/// <param name="filePath">附件路径</param>
/// <returns>附件名称</returns>
public string ChangeFilePath(string filePath)
{
string expandName = "";
string trueFileName = "sss";
//构造文件名
if (filePath.IndexOf(".") > 0)
{
expandName = filePath.Substring(filePath.LastIndexOf(".") + 1);
string temp = filePath.Substring(filePath.LastIndexOf("."));
trueFileName = filePath.Substring(filePath.LastIndexOf("\\") + 1);
trueFileName = trueFileName.Substring(0, trueFileName.Length - temp.Length);
trueFileName = trueFileName + "." + expandName;
}
return trueFileName;
}
#endregion
#endregion
#region 定时删除超过六个月的通知浏览记录
/// <summary>
/// 定时删除超过六个月的通知浏览记录
/// </summary>
/// <returns></returns>
[HttpPost]
[HandleException]
public void DeleteNoticeBrowse()
{
try
{
#region 调用服务
QMAPP.ServicesAgent.ServiceAgent agent = this.GetServiceAgent();
agent.InvokeServiceFunction<NoticeInfo>(QMAPP.ServicesAgent.SystemService.NoticeManageBll_DeleteNoticeBrowse.ToString());
#endregion
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
#region 打开添加联系人窗口
#region 打开添加联系人窗口
/// <summary>
/// 打开添加联系人窗口
/// </summary>
/// <returns></returns>
[HandleException]
public ActionResult NoticeUser2()
{
NoticeInfoModel seachModel = new NoticeInfoModel();
seachModel.SENDAIMNAME = Server.UrlDecode(Request.Params["SENDAIMNAME"]);
seachModel.SENDAIM = Request.Params["SENDAIM"];
seachModel.url = "/Notice/DefaultUserList";
return View(seachModel);
}
#endregion
#region 取得选择的组织机构下的人员列表
/// <summary>
/// 取得选择的组织机构下的人员列表
/// </summary>
/// <returns>处理结果</returns>
[HandleException]
public ActionResult DefaultUserList()
{
ContractUserModel model = GetModel<ContractUserModel>();
string selectKey = Request.Params["OrgaID"];
if (string.IsNullOrEmpty(selectKey))
{
selectKey = Request.Params["CorpID"];
}
DataPage page = null;
try
{
//获取前台分页设置信息
page = this.GetDataPage(model);
#region 调用服务
QMAPP.ServicesAgent.ServiceAgent agent = this.GetServiceAgent();
page = agent.InvokeServiceFunction<DataPage>(QMAPP.ServicesAgent.SystemService.NoticeManageBll_GetNoticeUserList.ToString(), selectKey, page);
#endregion
DataGridResult<User> result = new DataGridResult<User>();
result.Total = page.RecordCount;
result.Rows = JsonConvertHelper.GetDeserialize<List<User>>(page.Result.ToString());
return Content(result.GetJsonSource());
}
catch (Exception ex)
{
throw ex; ;
}
}
#endregion
#region 获取组织结构树形集合
/// <summary>
/// 获取组织结构树形集合
/// </summary>
/// <returns></returns>
public ActionResult GetTreeData()
{
try
{
List<TreeNodeResult> list = new List<TreeNodeResult>();
List<Orgaization> menus = new List<Orgaization>();
#region 调用服务
QMAPP.ServicesAgent.ServiceAgent agent = this.GetServiceAgent();
menus = agent.InvokeServiceFunction<List<Orgaization>>(QMAPP.ServicesAgent.SystemService.NoticeManageBll_GetAllList.ToString());
#endregion
if (menus != null)
{
for (int i = 0; i < menus.Count; i++)
{
TreeNodeResult treenode = new TreeNodeResult();
treenode.Tid = menus[i].OrgaID.ToString();
treenode.Ttext = menus[i].OrgaDESC.ToString();
if (menus[i].Orgas != null)
{
for (int j = 0; j < menus[i].Orgas.Count; j++)
{
TreeNodeResult cTreeNode = new TreeNodeResult();
cTreeNode.Tid = menus[i].Orgas[j].OrgaID.ToString();
cTreeNode.Ttext = menus[i].Orgas[j].OrgaDESC.ToString();
treenode.AddchildNode(cTreeNode);
}
}
list.Add(treenode);
}
list[0].TChecked = true;
}
return Content(TreeNodeResult.GetResultJosnS(list.ToArray()));
}
catch (Exception)
{
throw;
}
}
#endregion
#endregion
#region 获取通知类型下拉列表
/// <summary>
/// 获取通知类型下拉列表
/// </summary>
/// <returns></returns>
public ContentResult GetEquComboxSource()
{
try
{
ComboboxResult model = new ComboboxResult();
//Dictionary<string, string> periodTypes = new Dictionary<string, string>();
//QMFrameWork.Common.Util.ModelDictionaryHandler.TryGetModelDictionary("Month", out periodTypes);
//foreach (string key in periodTypes.Keys)
//{
// model.Add(new ComboboxItem { ID = key, Text = periodTypes[key] });
//}
model.Add(new ComboboxItem { ID = "1", Text = "即时通知" });
model.Add(new ComboboxItem { ID = "2", Text = "普通通知" });
return Content(model.ToString());
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
#region 查看明细
/// <summary>
/// 查看明细
/// </summary>
/// <param name="noctieModel"></param>
/// <returns></returns>
[HandleException]
public ActionResult NoticeBrowseList(NoticeInfoModel model)
{
NoticeBrowseModel seachModel = new NoticeBrowseModel();
TryGetSelectBuffer<NoticeBrowseModel>(out seachModel);
seachModel.rownumbers = false;
seachModel.url = "/Notice/ShowNotice";
return View("ShowNotice", seachModel);
}
/// <summary>
/// 查看明细
/// </summary>
/// <returns></returns>
public ActionResult ShowNotice()
{
List<NoticeBrowseModel> notice = new List<NoticeBrowseModel>();
NoticeBrowseModel seachModel = null;
DataPage page = null;
NoticeBrowse condition = null;
try
{
//获取查询对象
seachModel = GetModel<NoticeBrowseModel>();
//获取前台分页设置信息
page = this.GetDataPage(seachModel);
//获取查询条件
condition = CopyToModel<NoticeBrowse, NoticeBrowseModel>(seachModel);
//调用服务
QMAPP.ServicesAgent.ServiceAgent agent = this.GetServiceAgent();
page = agent.InvokeServiceFunction<DataPage>("NoticeManageBll_GetBrowseList", condition, page);
//转换查询结果
DataGridResult<NoticeBrowse> result = new DataGridResult<NoticeBrowse>();
result.Total = page.RecordCount;
result.Rows = (List<NoticeBrowse>)page.Result;
return Content(result.GetJsonSource());
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
#region 下载附件
/// <summary>
/// 下载文件名
/// </summary>
/// <param name="fileName"></param>
[HttpPost]
public FilePathResult DownAttach(string fileName, string oldFileName)
{
try
{
//应用程序物理路径
//string PhysicsRootPath = Server.MapPath(HttpRuntime.AppDomainAppVirtualPath);
PhysicsRootPath = GetRootPath();
string noticeUploadFile = "\\" + ConfigurationManager.AppSettings.Get("UploadFileRoot") + "\\";
string contentType = GetContenType(fileName.Substring(fileName.LastIndexOf(".")));
return File(PhysicsRootPath + noticeUploadFile + uploadFolder + fileName, contentType, Url.Encode(oldFileName));
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
#region 根据后缀获取返回CONTENTTYPE
/// <summary>
/// 根据后缀获取返回CONTENTTYPE
/// </summary>
/// <param name="suffix">后缀</param>
/// <returns>CONTENTTYPE</returns>
private string GetContenType(string suffix)
{
string resultType = "";
if (".txt".Equals(suffix.ToLower()))
{
resultType = "";
}
switch (suffix.ToLower())
{
case ".txt":
resultType = "text/plain";
break;
case ".xls":
resultType = "application/vnd.ms-excel";
break;
case ".xlsx":
resultType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
break;
case ".doc":
resultType = "application/msword";
break;
case ".docx":
resultType = "application/vnd.openxmlformats-officedocument.wordprocessingml.template";
break;
case ".ppt":
resultType = "application/vnd.ms-powerpoint";
break;
case ".pptx":
resultType = "application/vnd.openxmlformats-officedocument.presentationml.presentation";
break;
case ".bmp":
resultType = "application/x-MS-bmp";
break;
case ".jpg":
resultType = "aimage/jpeg";
break;
case ".jpeg":
resultType = "image/jpeg";
break;
case ".gif":
resultType = "image/gif";
break;
case ".png":
resultType = "image/png";
break;
case ".rar":
resultType = "application/x-rar-compressed";
break;
case ".zip":
resultType = "application/zip";
break;
}
return resultType;
}
#endregion
#region 判断文件是否存在
/// <summary>
/// 判断文件是否存在
/// </summary>
/// <param name="fileName"></param>
/// <param name="oldFileName"></param>
/// <returns></returns>
public ActionResult ExistFile()
{
QMAPP.ServicesAgent.ServiceAgent agent = this.GetServiceAgent();
string fileName = Request.Params["fileName"];
string oldFileName = Request.Params["oldFileName"];
try
{
if (string.IsNullOrEmpty(fileName))
{
fileName = oldFileName;
}
//应用程序物理路径
//string PhysicsRootPath = Server.MapPath(HttpRuntime.AppDomainAppVirtualPath);
PhysicsRootPath = GetRootPath();
string noticeUploadFile = "\\" + ConfigurationManager.AppSettings.Get("UploadFileRoot") + "\\";
string contentType = GetContenType(fileName.Substring(fileName.LastIndexOf(".")));
//判断文件路径是否存在
string trueFilePath = PhysicsRootPath + noticeUploadFile + uploadFolder + fileName;
bool issuccess = agent.InvokeServiceFunction<bool>(QMAPP.ServicesAgent.SystemService.FileInfoBLL_ExistsFile.ToString(), trueFilePath);
if (!issuccess)
{
return Json("false");
}
else
{
return Json("true");
}
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
#region 取得网站根目录的物理路径
/// <summary>
/// 取得网站根目录的物理路径
/// </summary>
/// <returns></returns>
public static string GetRootPath()
{
string AppPath = "";
System.Web.HttpContext HttpCurrent = System.Web.HttpContext.Current;
if (HttpCurrent != null)
{
AppPath = HttpCurrent.Server.MapPath("~");
}
else
{
AppPath = AppDomain.CurrentDomain.BaseDirectory;
if (Regex.Match(AppPath, @"\\$", RegexOptions.Compiled).Success)
AppPath = AppPath.Substring(0, AppPath.Length - 1);
}
return AppPath;
}
#endregion
}
}