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.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获取来文列表
///
/// 根据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.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
///
/// 保存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.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 保存来文-回复文件
///
/// 保存来文-回复文件
///
/// 主键
/// 回执单路径
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
}
}