211 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			211 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C#
		
	
	
	
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_CWCEC)
 | 
						||
                    {
 | 
						||
                        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
 | 
						||
    }
 | 
						||
}
 |