xinjiang/SGGL/BLL/API/HSSE/APIReceiveFileManagerServic...

211 lines
12 KiB
C#
Raw Normal View History

2024-11-19 09:45:27 +08:00
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 projectIdfileType获取来文列表
/// <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
}
}