DocumentServiceAPI.Application/DocManage/DocClassificationManageAppService.cs
File was renamed from DocumentServiceAPI.Application/DocManage/DocManageAppService.cs @@ -8,11 +8,11 @@ /// <summary> /// 资料分类管理 /// </summary> public class DocManageAppService : IDynamicApiController public class DocClassificationManageAppService : IDynamicApiController { private readonly DocClassificationService _classificationService; public DocManageAppService(DocClassificationService classificationService) public DocClassificationManageAppService(DocClassificationService classificationService) { _classificationService = classificationService; } @@ -55,6 +55,17 @@ } /// <summary> /// 根据类型查询数据 /// </summary> /// <param name="page"></param> /// <returns></returns> public async Task<IActionResult> PostItemList(DocClassificationSearch page) { var data = await _classificationService.GetListAsync(c => c.status == 1 && c.parent_code == page.Code); return new JsonResult(data); } /// <summary> /// 添加数据 /// </summary> /// <param name="info"></param> @@ -69,7 +80,7 @@ doc.parent_code = info.code; doc.sort_id = 99; doc.status = info.status; doc.tenant_code = ""; doc.tenant_code = info.tenant_id; var msg =await _classificationService.InsertAsync(doc); return new JsonResult(msg); DocumentServiceAPI.Application/DocManage/DocumentManageAppService.cs
New file @@ -0,0 +1,282 @@ using DocumentServiceAPI.Application.DocManage.Dtos; using DocumentServiceAPI.Application.DocManage.Services; using DocumentServiceAPI.Application.System.Services; using DocumentServiceAPI.Model.cyDocumentModel; using DocumentServiceAPI.Utility; using System.Linq.Expressions; namespace DocumentServiceAPI.Application.DocManage { /// <summary> /// 资料管理 /// </summary> public class DocumentManageAppService : IDynamicApiController { private readonly DocClassificationService _classificationService; private readonly DocumentManageService _docManageService; private readonly OrganizationService _organizationService; private readonly FileManageService _fileManageService; public DocumentManageAppService(DocClassificationService classService, DocumentManageService docService, OrganizationService orgService,FileManageService fileManageService) { _classificationService = classService; _docManageService = docService; _organizationService = orgService; _fileManageService = fileManageService; } /// <summary> /// 检查名称重复 /// </summary> /// <param name="model"></param> /// <returns></returns> public async Task<bool> CheckNameDuplicate(Document_Submit_Dto model) { var msg = false; var ck =await _docManageService.GetFirstAsync(c=>c.doc_name==model.name && c.doc_code==model.code && c.classification_id==model.class_id && c.id!=model.id); if (ck != null) { msg = true; } return msg; } /// <summary> /// 根据分页条件查询分页数据 /// </summary> /// <param name="page"></param> /// <returns></returns> public async Task<IActionResult> PostListPage(DocumentPageSearch page) { PageResult<Document_List_Dto> result = new PageResult<Document_List_Dto>(); try { Expression<Func<Doc_Info, bool>> expression = t => true; expression = expression.And(t => t.doc_code == page.Code && t.is_del==false); if (page.ClassCode.HasValue) { expression = expression.And(t => t.classification_id == page.ClassCode); } if (!string.IsNullOrEmpty(page.Name)) { expression = expression.And(t => t.doc_name.Contains(page.Name)); } if (page.Status.HasValue) { expression = expression.And(t => t.status == page.Status); } if (page.OrganizationCode.HasValue) { expression = expression.And(t => t.org_id == page.OrganizationCode); } RefAsync<int> total = 0; var data = await _docManageService.Context.Queryable<Doc_Info>() .Includes(c => c.DocClassification) .Includes(c=>c.DocOrganization) .Where(expression) .ToPageListAsync(page.PageIndex, page.PageSize, total); if (data != null && total > 0) { result.Items = data.Select(c => new Document_List_Dto() { add_time = c.add_time, class_id = c.classification_id, class_name = c.DocClassification?.doc_classification, doc_name = c.doc_name, id = c.id, org_id = c.org_id, org_name = c.DocOrganization.UnitName, project_id = c.project_id, project_name = "", status = c.status }).ToList(); } result.PageIndex = page.PageIndex; result.PageSize = page.PageSize; result.TotalCount = total; } catch (Exception er) { Log.Error(er.Message, er); } return new JsonResult(result); } /// <summary> /// 添加数据 /// </summary> /// <param name="info"></param> /// <returns></returns> public async Task<bool> PostAddDocumentInfo(Document_Submit_Dto info) { bool msg = false; Doc_Info doc = new Doc_Info(); doc.add_time = DateTime.Now; doc.classification_id = info.class_id; doc.doc_code = info.code; doc.doc_name = info.name; doc.is_del = false; doc.org_id = info.org_id; doc.status = info.status; doc.tenant_code = info.tenant_id; var id =await _docManageService.InsertReturnIdentityAsync(doc); if (id > 0) { if(info.files!=null&& info.files.Count > 0) { foreach (var item in info.files) { File_Info file = new File_Info(); file.doc_id = id; file.filenewname = item.filenewname.Length > 40 ? item.filenewname.Substring(item.filenewname.Length - 40) : item.filenewname; file.fileoldname = item.fileoldname.Length > 40 ? item.fileoldname.Substring(item.fileoldname.Length - 40) : item.fileoldname; file.filepath = item.filepath; file.fileservername = item.fileservername; file.filesize = item.filesize; file.filetype = item.filetype; file.status = 1; file.suffix = item.suffix; file.uptime = DateTime.Now; file.up_userid = item.up_userid; file.up_username = item.up_username; await _fileManageService.InsertAsync(file); } } msg = true; } return msg; } /// <summary> /// 根据类型查询数据 /// </summary> /// <param name="page"></param> /// <returns></returns> public async Task<IActionResult> PostItemList(DocClassificationSearch page) { var data = await _classificationService.GetListAsync(c => c.status == 1 && c.parent_code == page.Code); return new JsonResult(data); } /// <summary> /// 修改数据 /// </summary> /// <param name="info"></param> /// <returns></returns> public async Task<IActionResult> PostEdtInfo(Classification_Submit_Dto info) { var msg = false; var model = await _classificationService.GetByIdAsync(info.id); if (model != null) { model.add_time = DateTime.Now; model.doc_classification = info.name; model.status = info.status; msg = await _classificationService.UpdateAsync(model); } return new JsonResult(msg); } /// <summary> /// 删除数据 /// </summary> /// <param name="doc"></param> /// <returns></returns> public async Task<IActionResult> PostDelInfo(Document_Submit_Dto doc) { bool msg = false; //假删除 var model = await _docManageService.GetByIdAsync(doc.id); if (model != null) { if(model.tenant_code==doc.tenant_id && !model.is_del) { model.is_del = true; msg = await _docManageService.UpdateAsync(model); } } return new JsonResult(msg); } /// <summary> /// 添加数据 /// </summary> /// <param name="info"></param> /// <returns></returns> public async Task<IActionResult> PostAddFilesInfo(Classification_Submit_Dto info) { Doc_Classification doc = new Doc_Classification(); doc.add_time = DateTime.Now; doc.doc_classification = info.name; doc.doc_classification_code = ""; doc.is_system = false; doc.parent_code = info.code; doc.sort_id = 99; doc.status = info.status; doc.tenant_code = info.tenant_id; var msg = await _classificationService.InsertAsync(doc); return new JsonResult(msg); } /// <summary> /// 修改数据 /// </summary> /// <param name="info"></param> /// <returns></returns> public async Task<IActionResult> PostEdtFileInfo(Classification_Submit_Dto info) { var msg = false; var model = await _classificationService.GetByIdAsync(info.id); if (model != null) { model.add_time = DateTime.Now; model.doc_classification = info.name; model.status = info.status; msg = await _classificationService.UpdateAsync(model); } return new JsonResult(msg); } /// <summary> /// 删除数据 /// </summary> /// <param name="doc"></param> /// <returns></returns> public async Task<IActionResult> PostDelFileInfo(Document_Submit_Dto doc) { bool msg = false; //假删除 var model = await _docManageService.GetByIdAsync(doc.id); if (model != null) { if (model.tenant_code == doc.tenant_id && !model.is_del) { model.is_del = true; msg = await _docManageService.UpdateAsync(model); } } return new JsonResult(msg); } } } DocumentServiceAPI.Application/DocManage/Dtos/Classification_Submit_Dto.cs
@@ -1,15 +1,11 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DocumentServiceAPI.Application.DocManage.Dtos namespace DocumentServiceAPI.Application.DocManage.Dtos { public class Classification_Submit_Dto { public int id { get; set; } public int tenant_id { get; set; } public string name { get; set; } /// <summary> DocumentServiceAPI.Application/DocManage/Dtos/Document_List_Dto.cs
New file @@ -0,0 +1,137 @@ using DocumentServiceAPI.Model.cyDocumentModel; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DocumentServiceAPI.Application.DocManage.Dtos { /// <summary> /// 文档信息 /// </summary> public class Document_List_Dto { /// <summary> /// 添加/更新时间 /// </summary> public DateTime add_time { get; set; } /// <summary> /// 状态 /// </summary> public int status { get; set; } public int id { get; set; } /// <summary> /// 归属分类(子类型) /// </summary> public int? class_id { get; set; } public string class_name { get; set; } /// <summary> /// 名称 /// </summary> public string doc_name { get; set; } /// <summary> /// 单位ID /// </summary> public int? org_id { get; set; } public string org_name { get; set; } /// <summary> /// 项目id /// </summary> public int? project_id { get; set; } public string project_name { get; set; } } /// <summary> /// 提交文档信息 /// </summary> public class Document_Submit_Dto { public int id { get; set; } public int tenant_id { get; set; } /// <summary> /// 分类id /// </summary> public int class_id { get; set; } public string name { get; set; } /// <summary> /// 文档编码 /// </summary> public string code { get; set; } /// <summary> /// 投标单位 /// </summary> public int org_id { get; set; } public int status { get; set; } public List<DocumentFile_Submit_Dto> files { get; set; } } /// <summary> /// 提交文件信息 /// </summary> public class DocumentFile_Submit_Dto { /// <summary> /// 原文件名称 /// </summary> public string fileoldname { get; set; } /// <summary> /// 新名称 /// </summary> public string filenewname { get; set; } /// <summary> /// 保存文件名称 /// </summary> public string fileservername { get; set; } /// <summary> /// 文件大小(字节) /// </summary> public int filesize { get; set; } /// <summary> /// 后缀名 /// </summary> public string suffix { get; set; } /// <summary> /// 文档ID /// </summary> public int doc_id { get; set; } /// <summary> /// 文件类型 /// </summary> public string filetype { get; set; } /// <summary> /// 上传人员 /// </summary> public int up_userid { get; set; } /// <summary> /// 上传人员 /// </summary> public string up_username { get; set; } public string filepath { get; set; } } } DocumentServiceAPI.Application/DocManage/Services/DocClassificationService.cs
New file @@ -0,0 +1,35 @@ using DocumentServiceAPI.Core; using DocumentServiceAPI.Model.cyDocumentModel; using DocumentServiceAPI.Utility; namespace DocumentServiceAPI.Application.DocManage.Services { public class DocClassificationPageSearch : PageBaseSearch { /// <summary> /// 分类代码 /// </summary> public string Code { get; set; } /// <summary> /// 状态 /// </summary> public int? Status { get; set; } } public class DocClassificationSearch : BaseSearch { /// <summary> /// 分类代码 /// </summary> public string Code { get; set; } } /// <summary> /// 文档分类 /// </summary> public class DocClassificationService : BaseRepository<Doc_Classification>, ITransient { } } DocumentServiceAPI.Application/DocManage/Services/DocumentManageService.cs
@@ -4,7 +4,10 @@ namespace DocumentServiceAPI.Application.DocManage.Services { public class DocClassificationPageSearch : PageBaseSearch /// <summary> /// 文档分页查询条件 /// </summary> public class DocumentPageSearch : PageBaseSearch { /// <summary> /// 分类代码 @@ -12,15 +15,46 @@ public string Code { get; set; } /// <summary> /// 类别ID /// </summary> public int? ClassCode { get; set; } /// <summary> /// 文档名称 /// </summary> public string Name { get; set; } /// <summary> /// 单位ID /// </summary> public int? OrganizationCode { get; set; } /// <summary> /// 状态 /// </summary> public int? Status { get; set; } } public class DocumentSearch : BaseSearch { /// <summary> /// 分类代码 /// </summary> public string Code { get; set; } } /// <summary> /// 文档分类 /// 文档管理 /// </summary> public class DocClassificationService : BaseRepository<Doc_Classification>, ITransient public class DocumentManageService : BaseRepository<Doc_Info>, ITransient { } /// <summary> /// 文件管理 /// </summary> public class FileManageService : BaseRepository<File_Info>, ITransient { } } DocumentServiceAPI.Application/DocumentServiceAPI.Application.xml
@@ -4,7 +4,242 @@ <name>DocumentServiceAPI.Application</name> </assembly> <members> <member name="T:DocumentServiceAPI.Application.DocManage.DocClassificationManageAppService"> <summary> 资料分类管理 </summary> </member> <member name="M:DocumentServiceAPI.Application.DocManage.DocClassificationManageAppService.GetInfo(System.Int32)"> <summary> 根据ID查询对象 </summary> <param name="id"></param> <returns></returns> </member> <member name="M:DocumentServiceAPI.Application.DocManage.DocClassificationManageAppService.PostListPage(DocumentServiceAPI.Application.DocManage.Services.DocClassificationPageSearch)"> <summary> 根据分页条件查询分页数据 </summary> <param name="page"></param> <returns></returns> </member> <member name="M:DocumentServiceAPI.Application.DocManage.DocClassificationManageAppService.PostItemList(DocumentServiceAPI.Application.DocManage.Services.DocClassificationSearch)"> <summary> 根据类型查询数据 </summary> <param name="page"></param> <returns></returns> </member> <member name="M:DocumentServiceAPI.Application.DocManage.DocClassificationManageAppService.PostAddInfo(DocumentServiceAPI.Application.DocManage.Dtos.Classification_Submit_Dto)"> <summary> 添加数据 </summary> <param name="info"></param> <returns></returns> </member> <member name="M:DocumentServiceAPI.Application.DocManage.DocClassificationManageAppService.PostEdtInfo(DocumentServiceAPI.Application.DocManage.Dtos.Classification_Submit_Dto)"> <summary> 修改数据 </summary> <param name="info"></param> <returns></returns> </member> <member name="M:DocumentServiceAPI.Application.DocManage.DocClassificationManageAppService.PostDelInfo(System.Int32)"> <summary> 删除数据 </summary> <param name="id"></param> <returns></returns> </member> <member name="T:DocumentServiceAPI.Application.DocManage.DocumentManageAppService"> <summary> 资料管理 </summary> </member> <member name="M:DocumentServiceAPI.Application.DocManage.DocumentManageAppService.CheckNameDuplicate(DocumentServiceAPI.Application.DocManage.Dtos.Document_Submit_Dto)"> <summary> 检查名称重复 </summary> <param name="model"></param> <returns></returns> </member> <member name="M:DocumentServiceAPI.Application.DocManage.DocumentManageAppService.PostListPage(DocumentServiceAPI.Application.DocManage.Services.DocumentPageSearch)"> <summary> 根据分页条件查询分页数据 </summary> <param name="page"></param> <returns></returns> </member> <member name="M:DocumentServiceAPI.Application.DocManage.DocumentManageAppService.PostAddDocumentInfo(DocumentServiceAPI.Application.DocManage.Dtos.Document_Submit_Dto)"> <summary> 添加数据 </summary> <param name="info"></param> <returns></returns> </member> <member name="M:DocumentServiceAPI.Application.DocManage.DocumentManageAppService.PostItemList(DocumentServiceAPI.Application.DocManage.Services.DocClassificationSearch)"> <summary> 根据类型查询数据 </summary> <param name="page"></param> <returns></returns> </member> <member name="M:DocumentServiceAPI.Application.DocManage.DocumentManageAppService.PostEdtInfo(DocumentServiceAPI.Application.DocManage.Dtos.Classification_Submit_Dto)"> <summary> 修改数据 </summary> <param name="info"></param> <returns></returns> </member> <member name="M:DocumentServiceAPI.Application.DocManage.DocumentManageAppService.PostDelInfo(DocumentServiceAPI.Application.DocManage.Dtos.Document_Submit_Dto)"> <summary> 删除数据 </summary> <param name="doc"></param> <returns></returns> </member> <member name="M:DocumentServiceAPI.Application.DocManage.DocumentManageAppService.PostAddFilesInfo(DocumentServiceAPI.Application.DocManage.Dtos.Classification_Submit_Dto)"> <summary> 添加数据 </summary> <param name="info"></param> <returns></returns> </member> <member name="M:DocumentServiceAPI.Application.DocManage.DocumentManageAppService.PostEdtFileInfo(DocumentServiceAPI.Application.DocManage.Dtos.Classification_Submit_Dto)"> <summary> 修改数据 </summary> <param name="info"></param> <returns></returns> </member> <member name="M:DocumentServiceAPI.Application.DocManage.DocumentManageAppService.PostDelFileInfo(DocumentServiceAPI.Application.DocManage.Dtos.Document_Submit_Dto)"> <summary> 删除数据 </summary> <param name="doc"></param> <returns></returns> </member> <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.Classification_Submit_Dto.code"> <summary> 父级编码 </summary> </member> <member name="T:DocumentServiceAPI.Application.DocManage.Dtos.Document_List_Dto"> <summary> 文档信息 </summary> </member> <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.Document_List_Dto.add_time"> <summary> 添加/更新时间 </summary> </member> <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.Document_List_Dto.status"> <summary> 状态 </summary> </member> <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.Document_List_Dto.class_id"> <summary> 归属分类(子类型) </summary> </member> <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.Document_List_Dto.doc_name"> <summary> 名称 </summary> </member> <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.Document_List_Dto.org_id"> <summary> 单位ID </summary> </member> <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.Document_List_Dto.project_id"> <summary> 项目id </summary> </member> <member name="T:DocumentServiceAPI.Application.DocManage.Dtos.Document_Submit_Dto"> <summary> 提交文档信息 </summary> </member> <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.Document_Submit_Dto.class_id"> <summary> 分类id </summary> </member> <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.Document_Submit_Dto.code"> <summary> 文档编码 </summary> </member> <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.Document_Submit_Dto.org_id"> <summary> 投标单位 </summary> </member> <member name="T:DocumentServiceAPI.Application.DocManage.Dtos.DocumentFile_Submit_Dto"> <summary> 提交文件信息 </summary> </member> <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.DocumentFile_Submit_Dto.fileoldname"> <summary> 原文件名称 </summary> </member> <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.DocumentFile_Submit_Dto.filenewname"> <summary> 新名称 </summary> </member> <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.DocumentFile_Submit_Dto.fileservername"> <summary> 保存文件名称 </summary> </member> <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.DocumentFile_Submit_Dto.filesize"> <summary> 文件大小(字节) </summary> </member> <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.DocumentFile_Submit_Dto.suffix"> <summary> 后缀名 </summary> </member> <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.DocumentFile_Submit_Dto.doc_id"> <summary> 文档ID </summary> </member> <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.DocumentFile_Submit_Dto.filetype"> <summary> 文件类型 </summary> </member> <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.DocumentFile_Submit_Dto.up_userid"> <summary> 上传人员 </summary> </member> <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.DocumentFile_Submit_Dto.up_username"> <summary> 上传人员 </summary> </member> <member name="P:DocumentServiceAPI.Application.DocManage.Services.DocClassificationPageSearch.Code"> <summary> 分类代码 </summary> </member> <member name="P:DocumentServiceAPI.Application.DocManage.Services.DocClassificationPageSearch.Status"> <summary> 状态 </summary> </member> <member name="P:DocumentServiceAPI.Application.DocManage.Services.DocClassificationSearch.Code"> <summary> 分类代码 </summary> @@ -14,11 +249,63 @@ 文档分类 </summary> </member> <member name="T:DocumentServiceAPI.Application.DocManage.Services.DocumentPageSearch"> <summary> 文档分页查询条件 </summary> </member> <member name="P:DocumentServiceAPI.Application.DocManage.Services.DocumentPageSearch.Code"> <summary> 分类代码 </summary> </member> <member name="P:DocumentServiceAPI.Application.DocManage.Services.DocumentPageSearch.ClassCode"> <summary> 类别ID </summary> </member> <member name="P:DocumentServiceAPI.Application.DocManage.Services.DocumentPageSearch.Name"> <summary> 文档名称 </summary> </member> <member name="P:DocumentServiceAPI.Application.DocManage.Services.DocumentPageSearch.OrganizationCode"> <summary> 单位ID </summary> </member> <member name="P:DocumentServiceAPI.Application.DocManage.Services.DocumentPageSearch.Status"> <summary> 状态 </summary> </member> <member name="P:DocumentServiceAPI.Application.DocManage.Services.DocumentSearch.Code"> <summary> 分类代码 </summary> </member> <member name="T:DocumentServiceAPI.Application.DocManage.Services.DocumentManageService"> <summary> 文档管理 </summary> </member> <member name="T:DocumentServiceAPI.Application.DocManage.Services.FileManageService"> <summary> 文件管理 </summary> </member> <member name="T:DocumentServiceAPI.Application.Repository.EmployeeRepository"> <summary> 员工读取 </summary> </member> <member name="M:DocumentServiceAPI.Application.System.OrganizationAppService.GetOrgItemList(System.Int32)"> <summary> 查询公司Item数据 </summary> <param name="code">租户id</param> <returns></returns> </member> <member name="T:DocumentServiceAPI.Application.System.Services.OrganizationService"> <summary> 投标单位操作类 DocumentServiceAPI.Application/System/OrganizationAppService.cs
@@ -1,11 +1,7 @@ using DocumentServiceAPI.Application.System.Services; using DocumentServiceAPI.Application.UserAndLogin.Services; using DocumentServiceAPI.Model; using DocumentServiceAPI.Utility; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DocumentServiceAPI.Application.System { @@ -17,10 +13,23 @@ public class OrganizationAppService : IDynamicApiController { private readonly OrganizationService _businessService; private readonly UserService _userServer; public OrganizationAppService(OrganizationService businessService) public OrganizationAppService(OrganizationService businessService, UserService userService) { _businessService = businessService; _userServer = userService; } /// <summary> /// 查询公司Item数据 /// </summary> /// <param name="code">租户id</param> /// <returns></returns> public async Task<IActionResult> GetOrgItemList(int code) { var data = await _userServer.GetUserUnitList(code); return new JsonResult(data); } public IActionResult GetInfo() DocumentServiceAPI.Model/cyDocumentModel/Doc_Classification.cs
@@ -44,6 +44,11 @@ /// </summary> public bool is_system { get; set; } /// <summary> /// 排序 /// </summary> public int sort_id { get; set; } } public abstract class Doc_Base @@ -51,7 +56,7 @@ /// <summary> /// 租户标识 /// </summary> public string tenant_code { get; set; } public int tenant_code { get; set; } /// <summary> /// 添加/更新时间 @@ -62,10 +67,6 @@ /// 状态 /// </summary> public int status { get; set; } /// <summary> /// 排序 /// </summary> public int sort_id { get; set; } } } DocumentServiceAPI.Model/cyDocumentModel/Doc_Info.cs
New file @@ -0,0 +1,149 @@ using SqlSugar; namespace DocumentServiceAPI.Model.cyDocumentModel { ///<summary> ///文档管理类 ///</summary> [SugarTable("t_document")] public class Doc_Info : Doc_Base { public Doc_Info() { } /// <summary> /// id /// </summary> [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] public int id { get; set; } /// <summary> /// 文档分类编码 /// </summary> public string doc_code { get; set; } /// <summary> /// 归属分类(子类型) /// </summary> public int? classification_id { get; set; } /// <summary> /// 名称 /// </summary> public string doc_name { get; set; } /// <summary> /// 单位ID /// </summary> public int? org_id { get; set; } /// <summary> /// 项目id /// </summary> public int? project_id { get; set; } /// <summary> /// 删除标记 /// </summary> public bool is_del { get; set; } /// <summary> /// 关联分类 /// </summary> [SugarColumn(IsIgnore = true)] [Navigate(NavigateType.OneToOne, nameof(classification_id))] public Doc_Classification? DocClassification { get; set; } /// <summary> /// 关联投标单位 /// </summary> [SugarColumn(IsIgnore = true)] [Navigate(NavigateType.OneToOne, nameof(org_id))] public Document_TenderUnit? DocOrganization { get; set; } } ///<summary> ///文件信息类 ///</summary> [SugarTable("t_doc_file")] public class File_Info { /// <summary> /// id /// </summary> [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] public int id { get; set; } /// <summary> /// 原文件名称 /// </summary> public string fileoldname { get; set; } /// <summary> /// 新名称 /// </summary> public string filenewname { get; set; } /// <summary> /// 保存文件名称 /// </summary> public string fileservername { get; set; } /// <summary> /// 文件大小(字节) /// </summary> public int filesize { get; set; } /// <summary> /// 后缀名 /// </summary> public string suffix { get; set; } /// <summary> /// 更新时间 /// </summary> public DateTime uptime { get; set; } /// <summary> /// 文档ID /// </summary> public int doc_id { get; set; } /// <summary> /// 状态 /// </summary> public int status { get; set; } /// <summary> /// 文件类型 /// 001-资质文档 /// 002-业绩文档 /// 003-方案文档 /// 004-财务文档 /// 005-技术文档 /// 006-设备文档 /// 007-质检文档 /// 008-制度流程文档 /// </summary> public string filetype { get; set; } /// <summary> /// 上传人员 /// </summary> public int up_userid { get; set; } /// <summary> /// 上传人员 /// </summary> public string up_username { get; set; } /// <summary> /// 路径 /// </summary> public string filepath { get; set; } } } DocumentServiceAPI.Utility/PageBaseSearch.cs
@@ -1,15 +1,9 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DocumentServiceAPI.Utility namespace DocumentServiceAPI.Utility { /// <summary> /// 分页查询条件基类 /// </summary> public abstract class PageBaseSearch public abstract class PageBaseSearch: BaseSearch { /// <summary> /// 页码 @@ -20,6 +14,25 @@ /// 分页大小 /// </summary> public int PageSize { get; set; } = 20; } public abstract class BaseSearch { /// <summary> /// 公司ID /// </summary> public string CompanyID { get; set; } /// <summary> /// 租户ID /// </summary> public string TenantID { get; set; } /// <summary> /// 用户ID /// </summary> public string UserID { get; set; } /// <summary> /// 开始日期 DocumentServiceAPI.Utility/UtilitySearch.cs
New file @@ -0,0 +1,90 @@ using System.Linq.Expressions; namespace DocumentServiceAPI.Utility { /// <summary> /// Lambda表达式拼接扩展类 /// </summary> public static class UtilitySearch { /// <summary> /// Lambda表达式拼接 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="first"></param> /// <param name="second"></param> /// <param name="merge"></param> /// <returns></returns> public static Expression<T> Compose<T>(this Expression<T> first, Expression<T> second, Func<Expression, Expression, Expression> merge) { // 构建参数映射(从第二个参数到第一个参数) var map = first.Parameters.Select((f, i) => new { f, s = second.Parameters[i] }).ToDictionary(p => p.s, p => p.f); // 将第二个lambda表达式中的参数替换为第一个lambda表达式的参数 var secondBody = ParameterRebinder.ReplaceParameters(map, second.Body); // 将lambda表达式体的组合应用于第一个表达式中的参数 return Expression.Lambda<T>(merge(first.Body, secondBody), first.Parameters); } /// <summary> /// and扩展 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="first"></param> /// <param name="second"></param> /// <returns></returns> public static Expression<Func<T, bool>> And<T>(this Expression<Func<T, bool>> first, Expression<Func<T, bool>> second) { return first.Compose(second, Expression.AndAlso); } /// <summary> /// or扩展 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="first"></param> /// <param name="second"></param> /// <returns></returns> public static Expression<Func<T, bool>> Or<T>(this Expression<Func<T, bool>> first, Expression<Func<T, bool>> second) { return first.Compose(second, Expression.OrElse); } } /// <summary> /// /// </summary> public class ParameterRebinder : ExpressionVisitor { private readonly Dictionary<ParameterExpression, ParameterExpression> map; /// <summary> /// /// </summary> /// <param name="map"></param> public ParameterRebinder(Dictionary<ParameterExpression, ParameterExpression> map) { this.map = map ?? new Dictionary<ParameterExpression, ParameterExpression>(); } /// <summary> /// /// </summary> /// <param name="map"></param> /// <param name="exp"></param> /// <returns></returns> public static Expression ReplaceParameters(Dictionary<ParameterExpression, ParameterExpression> map, Expression exp) { return new ParameterRebinder(map).Visit(exp); } /// <summary> /// /// </summary> /// <param name="p"></param> /// <returns></returns> protected override Expression VisitParameter(ParameterExpression p) { ParameterExpression replacement; if (map.TryGetValue(p, out replacement)) { p = replacement; } return base.VisitParameter(p); } } } DocumentServiceAPI.Web.Entry/appsettings.json
@@ -12,7 +12,7 @@ { "ConfigId": "default", //多库配置ID "ConnectionString": "Server=localhost\\SQLEXPRESS;Database=CY_DocumentSystemOnline;User ID=sa;Password=123456;", "ConnectionString": "Server=.;Database=doc_new;User ID=sa;Password=123456;", "DbType": "SqlServer", "IsAutoCloseConnection": true