using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using EmitMapper; namespace BLL { /// <summary> /// 来文服务类 /// </summary> public static class APIReceiveFileManagerService { #region 根据ReceiveFileManagerId获取来文详细信息 /// <summary> /// 根据ReceiveFileManagerId获取来文详细信息 /// </summary> /// <param name="receiveFileManagerId">来文ID</param> /// <param name="fileType">来文类型(0-项目发文;1-公司来文)</param> /// <returns>来文详细</returns> public static Model.ReceiveFileManagerItem getReceiveFileManagerById(string receiveFileManagerId, string fileType) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var getReceiveFileManagerItem = (from x in db.InformationProject_ReceiveFileManager where x.ReceiveFileManagerId == receiveFileManagerId && x.FileType == fileType select new Model.ReceiveFileManagerItem { ReceiveFileManagerId = x.ReceiveFileManagerId, ProjectId = x.ProjectId, ReceiveFileCode = x.ReceiveFileCode, ReceiveFileName = x.ReceiveFileName, Version = x.Version, FileUnitId = x.FileUnitId, FileUnitName = db.Base_Unit.First(u => u.UnitId == x.FileUnitId).UnitName, FileCode = x.FileCode, FilePageNum = x.FilePageNum, GetFileDate = string.Format("{0:yyyy-MM-dd}", x.GetFileDate), SendPersonId = x.SendPersonId, SendPersonName = db.Sys_User.First(u => u.UserId == x.SendPersonId).UserName, MainContent = x.MainContent, UnitIds = x.UnitIds, UnitNames = UnitService.getUnitNamesUnitIds(x.UnitIds), FileAttachUrl = APIUpLoadFileService.getFileUrl(x.ReceiveFileManagerId, null), ReplyFileAttachUrl = APIUpLoadFileService.getFileUrl(x.ReceiveFileManagerId + "#1", null), Issue = (db.InformationProject_ReceiveFileManager.FirstOrDefault(y => y.FromId == x.ReceiveFileManagerId) == null) ? false : true, }).FirstOrDefault(); return getReceiveFileManagerItem; } } #endregion #region 根据projectId、fileType获取来文列表 /// <summary> /// 根据projectId、fileType获取来文列表 /// </summary> /// <param name="projectId"></param> /// <param name="fileType">来文类型(0-项目发文;1-公司来文)</param> /// <param name="unitId">单位ID</param> /// <param name="states">状态(0待提交;1-已提交;2:已回复)</param> /// <returns></returns> public static List<Model.ReceiveFileManagerItem> getReceiveFileManagerList(string projectId, string fileType, string unitId, string states) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var getReceiveFileManagerItem = (from x in db.InformationProject_ReceiveFileManager where x.ProjectId == projectId && x.FileType == fileType select new Model.ReceiveFileManagerItem { ReceiveFileManagerId = x.ReceiveFileManagerId, ProjectId = x.ProjectId, FileType = x.FileType, ReceiveFileCode = x.ReceiveFileCode, ReceiveFileName = x.ReceiveFileName, Version = x.Version, FileUnitId = x.FileUnitId, FileUnitName = db.Base_Unit.First(u => u.UnitId == x.FileUnitId).UnitName, FileCode = x.FileCode, FilePageNum = x.FilePageNum, GetFileDate = string.Format("{0:yyyy-MM-dd}", x.GetFileDate), SendPersonId = x.SendPersonId, SendPersonName = db.Sys_User.First(u => u.UserId == x.SendPersonId).UserName, MainContent = x.MainContent, UnitIds = x.UnitIds, UnitNames = UnitService.getUnitNamesUnitIds(x.UnitIds), FileAttachUrl = APIUpLoadFileService.getFileUrl(x.ReceiveFileManagerId, null), ReplyFileAttachUrl = APIUpLoadFileService.getFileUrl(x.ReceiveFileManagerId + "#1", null), States = x.States, Issue = (db.InformationProject_ReceiveFileManager.FirstOrDefault(y => y.FromId == x.ReceiveFileManagerId) == null) ? false : true, }).AsEnumerable(); if (getReceiveFileManagerItem.Count() > 0) { if (!string.IsNullOrEmpty(unitId) && unitId != Const.UnitId_TCC) { getReceiveFileManagerItem = getReceiveFileManagerItem.Where(x => x.FileUnitId == unitId || (x.UnitIds != null && x.UnitIds.Contains(unitId))); } if (states == Const.State_0) { getReceiveFileManagerItem = getReceiveFileManagerItem.Where(x => x.States == Const.State_0 || x.States == null); } else if (states == Const.State_1) { getReceiveFileManagerItem = getReceiveFileManagerItem.Where(x => x.States == Const.State_2 && (x.ReplyFileAttachUrl == null || x.ReplyFileAttachUrl == "")); } else if (states == Const.State_2) { getReceiveFileManagerItem = getReceiveFileManagerItem.Where(x => x.States == Const.State_2 && x.ReplyFileAttachUrl != null && x.ReplyFileAttachUrl != ""); } } return getReceiveFileManagerItem.OrderByDescending(x => x.ReceiveFileCode).ToList(); } } #endregion #region 保存ReceiveFileManager /// <summary> /// 保存ReceiveFileManager /// </summary> /// <param name="newItem">来文信息</param> /// <returns></returns> public static void SaveReceiveFileManager(Model.ReceiveFileManagerItem newItem) { Model.SGGLDB db = Funs.DB; string menuId = string.Empty; Model.InformationProject_ReceiveFileManager newReceiveFile = new Model.InformationProject_ReceiveFileManager { FileType=newItem.FileType, ReceiveFileManagerId = newItem.ReceiveFileManagerId, ProjectId = newItem.ProjectId, ReceiveFileCode=newItem.ReceiveFileCode, ReceiveFileName=newItem.ReceiveFileName, Version=newItem.Version, FileCode = newItem.FileCode, FilePageNum=newItem.FilePageNum, GetFileDate=Funs.GetNewDateTime(newItem.GetFileDate), MainContent = System.Web.HttpUtility.HtmlEncode(newItem.MainContent), UnitIds = newItem.UnitIds, States = Const.State_2, }; if (!string.IsNullOrEmpty(newItem.FileUnitId)) { newReceiveFile.FileUnitId = newItem.FileUnitId; } if (!string.IsNullOrEmpty(newItem.SendPersonId)) { newReceiveFile.SendPersonId = newItem.SendPersonId; } if (newItem.States != "1") { newReceiveFile.States = Const.State_0; } var updateFile = db.InformationProject_ReceiveFileManager.FirstOrDefault(x => x.ReceiveFileManagerId == newItem.ReceiveFileManagerId); if (updateFile == null) { newItem.ReceiveFileManagerId = newReceiveFile.ReceiveFileManagerId = SQLHelper.GetNewID(); newReceiveFile.ReceiveFileCode = CodeRecordsService.ReturnCodeByMenuIdProjectId(Const.ReceiveFileManagerMenuId, newReceiveFile.ProjectId, null); ReceiveFileManagerService.AddReceiveFileManager(newReceiveFile); } else { ReceiveFileManagerService.UpdateReceiveFileManager(newReceiveFile); } if (newItem.States == "1") { CommonService.btnSaveData(newItem.ProjectId, Const.ReceiveFileManagerMenuId, newReceiveFile.ReceiveFileManagerId, newReceiveFile.SendPersonId, true, newReceiveFile.ReceiveFileName, "../ReceiveFileManager/ReceiveFileManagerView.aspx?ReceiveFileManagerId={0}"); } ////保存附件 if (!string.IsNullOrEmpty(newItem.FileAttachUrl)) { UploadFileService.SaveAttachUrl(UploadFileService.GetSourceByAttachUrl(newItem.FileAttachUrl, 10, null), newItem.FileAttachUrl, Const.ReceiveFileManagerMenuId, newItem.ReceiveFileManagerId); } else { CommonService.DeleteAttachFileById(Const.ReceiveFileManagerMenuId, newItem.ReceiveFileManagerId); } } #endregion #region 保存来文-回复文件 /// <summary> /// 保存来文-回复文件 /// </summary> /// <param name="receiveFileManagerId">主键</param> /// <param name="attachUrl">回执单路径</param> public static void SaveReplyFileAttachUrl(string receiveFileManagerId, string replyFileAttachUrl) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var getFile = db.InformationProject_ReceiveFileManager.FirstOrDefault(x => x.ReceiveFileManagerId == receiveFileManagerId); if (getFile != null) { ////保存附件 if (!string.IsNullOrEmpty(replyFileAttachUrl)) { UploadFileService.SaveAttachUrl(UploadFileService.GetSourceByAttachUrl(replyFileAttachUrl, 10, null), replyFileAttachUrl, Const.ReceiveFileManagerMenuId, getFile.ReceiveFileManagerId + "#1"); } else { CommonService.DeleteAttachFileById(Const.ReceiveFileManagerMenuId, getFile.ReceiveFileManagerId + "#1"); } } } } #endregion } }