using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using EmitMapper; namespace BLL { /// /// 来文服务类 /// public static class APIReceiveFileManagerService { #region 根据ReceiveFileManagerId获取来文详细信息 /// /// 根据ReceiveFileManagerId获取来文详细信息 /// /// 来文ID /// 来文类型(0-项目发文;1-公司来文) /// 来文详细 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.getUnitNamesUnitIdsForApi(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获取来文列表 /// /// 根据projectId、fileType获取来文列表 /// /// /// 来文类型(0-项目发文;1-公司来文) /// 单位ID /// 状态(0待提交;1-已提交;2:已回复) /// public static List 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.getUnitNamesUnitIdsForApi(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_CD) { 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 /// /// 保存ReceiveFileManager /// /// 来文信息 /// 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.btnSaveDataForApi(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 保存来文-回复文件 /// /// 保存来文-回复文件 /// /// 主键 /// 回执单路径 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 } }