From fed8aa234205247e05305ee7716ae54e894430c7 Mon Sep 17 00:00:00 2001 From: qwj <qwjzorro@163.com> Date: 星期三, 16 八月 2023 09:40:58 +0800 Subject: [PATCH] 资质管理api --- DocumentServiceAPI.Model/cyDocumentModel/Doc_Info.cs | 149 +++++++ DocumentServiceAPI.Application/DocManage/Dtos/Classification_Submit_Dto.cs | 10 DocumentServiceAPI.Application/System/OrganizationAppService.cs | 21 DocumentServiceAPI.Web.Entry/appsettings.json | 2 DocumentServiceAPI.Application/DocManage/Services/DocumentManageService.cs | 40 + DocumentServiceAPI.Model/cyDocumentModel/Doc_Classification.cs | 13 DocumentServiceAPI.Application/DocManage/Dtos/Document_List_Dto.cs | 137 +++++++ DocumentServiceAPI.Application/DocManage/DocumentManageAppService.cs | 282 ++++++++++++++ DocumentServiceAPI.Application/DocumentServiceAPI.Application.xml | 287 +++++++++++++++ DocumentServiceAPI.Application/DocManage/Services/DocClassificationService.cs | 35 + DocumentServiceAPI.Utility/UtilitySearch.cs | 90 ++++ DocumentServiceAPI.Utility/PageBaseSearch.cs | 29 + DocumentServiceAPI.Application/DocManage/DocClassificationManageAppService.cs | 17 13 files changed, 1,078 insertions(+), 34 deletions(-) diff --git a/DocumentServiceAPI.Application/DocManage/DocManageAppService.cs b/DocumentServiceAPI.Application/DocManage/DocClassificationManageAppService.cs similarity index 84% rename from DocumentServiceAPI.Application/DocManage/DocManageAppService.cs rename to DocumentServiceAPI.Application/DocManage/DocClassificationManageAppService.cs index f09fa68..de9221f 100644 --- a/DocumentServiceAPI.Application/DocManage/DocManageAppService.cs +++ b/DocumentServiceAPI.Application/DocManage/DocClassificationManageAppService.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); diff --git a/DocumentServiceAPI.Application/DocManage/DocumentManageAppService.cs b/DocumentServiceAPI.Application/DocManage/DocumentManageAppService.cs new file mode 100644 index 0000000..fd87b88 --- /dev/null +++ b/DocumentServiceAPI.Application/DocManage/DocumentManageAppService.cs @@ -0,0 +1,282 @@ +锘縰sing 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); + } + } +} diff --git a/DocumentServiceAPI.Application/DocManage/Dtos/Classification_Submit_Dto.cs b/DocumentServiceAPI.Application/DocManage/Dtos/Classification_Submit_Dto.cs index cfd30fd..28b486c 100644 --- a/DocumentServiceAPI.Application/DocManage/Dtos/Classification_Submit_Dto.cs +++ b/DocumentServiceAPI.Application/DocManage/Dtos/Classification_Submit_Dto.cs @@ -1,15 +1,11 @@ -锘縰sing System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace DocumentServiceAPI.Application.DocManage.Dtos +锘縩amespace 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> diff --git a/DocumentServiceAPI.Application/DocManage/Dtos/Document_List_Dto.cs b/DocumentServiceAPI.Application/DocManage/Dtos/Document_List_Dto.cs new file mode 100644 index 0000000..4d84e43 --- /dev/null +++ b/DocumentServiceAPI.Application/DocManage/Dtos/Document_List_Dto.cs @@ -0,0 +1,137 @@ +锘縰sing 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; } + + } +} diff --git a/DocumentServiceAPI.Application/DocManage/Services/DocClassificationService.cs b/DocumentServiceAPI.Application/DocManage/Services/DocClassificationService.cs new file mode 100644 index 0000000..83a206b --- /dev/null +++ b/DocumentServiceAPI.Application/DocManage/Services/DocClassificationService.cs @@ -0,0 +1,35 @@ +锘縰sing DocumentServiceAPI.Core; +using DocumentServiceAPI.Model.cyDocumentModel; +using DocumentServiceAPI.Utility; + +namespace DocumentServiceAPI.Application.DocManage.Services +{ + public class DocClassificationPageSearch : PageBaseSearch + { + /// <summary> + /// 鍒嗙被浠g爜 + /// </summary> + public string Code { get; set; } + + /// <summary> + /// 鐘舵�� + /// </summary> + public int? Status { get; set; } + } + + public class DocClassificationSearch : BaseSearch + { + /// <summary> + /// 鍒嗙被浠g爜 + /// </summary> + public string Code { get; set; } + + } + + /// <summary> + /// 鏂囨。鍒嗙被 + /// </summary> + public class DocClassificationService : BaseRepository<Doc_Classification>, ITransient + { + } +} diff --git a/DocumentServiceAPI.Application/DocManage/Services/DocumentManageService.cs b/DocumentServiceAPI.Application/DocManage/Services/DocumentManageService.cs index 675d4d3..e7cacd4 100644 --- a/DocumentServiceAPI.Application/DocManage/Services/DocumentManageService.cs +++ b/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> /// 鍒嗙被浠g爜 @@ -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> + /// 鍒嗙被浠g爜 + /// </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 { } } diff --git a/DocumentServiceAPI.Application/DocumentServiceAPI.Application.xml b/DocumentServiceAPI.Application/DocumentServiceAPI.Application.xml index 0cf1c1e..7aed042 100644 --- a/DocumentServiceAPI.Application/DocumentServiceAPI.Application.xml +++ b/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> + 鍒嗙被浠g爜 + </summary> + </member> + <member name="P:DocumentServiceAPI.Application.DocManage.Services.DocClassificationPageSearch.Status"> + <summary> + 鐘舵�� + </summary> + </member> + <member name="P:DocumentServiceAPI.Application.DocManage.Services.DocClassificationSearch.Code"> <summary> 鍒嗙被浠g爜 </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> + 鍒嗙被浠g爜 + </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> + 鍒嗙被浠g爜 + </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> 鎶曟爣鍗曚綅鎿嶄綔绫� diff --git a/DocumentServiceAPI.Application/System/OrganizationAppService.cs b/DocumentServiceAPI.Application/System/OrganizationAppService.cs index 1f27467..7a5fd24 100644 --- a/DocumentServiceAPI.Application/System/OrganizationAppService.cs +++ b/DocumentServiceAPI.Application/System/OrganizationAppService.cs @@ -1,11 +1,7 @@ 锘縰sing 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() diff --git a/DocumentServiceAPI.Model/cyDocumentModel/Doc_Classification.cs b/DocumentServiceAPI.Model/cyDocumentModel/Doc_Classification.cs index 2e1fb59..d772545 100644 --- a/DocumentServiceAPI.Model/cyDocumentModel/Doc_Classification.cs +++ b/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; } + } } diff --git a/DocumentServiceAPI.Model/cyDocumentModel/Doc_Info.cs b/DocumentServiceAPI.Model/cyDocumentModel/Doc_Info.cs new file mode 100644 index 0000000..5b494ca --- /dev/null +++ b/DocumentServiceAPI.Model/cyDocumentModel/Doc_Info.cs @@ -0,0 +1,149 @@ +锘縰sing 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; } + } + + +} diff --git a/DocumentServiceAPI.Utility/PageBaseSearch.cs b/DocumentServiceAPI.Utility/PageBaseSearch.cs index 6411526..00f85a9 100644 --- a/DocumentServiceAPI.Utility/PageBaseSearch.cs +++ b/DocumentServiceAPI.Utility/PageBaseSearch.cs @@ -1,15 +1,9 @@ -锘縰sing System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace DocumentServiceAPI.Utility +锘縩amespace 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> /// 寮�濮嬫棩鏈� diff --git a/DocumentServiceAPI.Utility/UtilitySearch.cs b/DocumentServiceAPI.Utility/UtilitySearch.cs new file mode 100644 index 0000000..180b982 --- /dev/null +++ b/DocumentServiceAPI.Utility/UtilitySearch.cs @@ -0,0 +1,90 @@ +锘縰sing 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琛ㄨ揪寮忎腑鐨勫弬鏁版浛鎹负绗竴涓猯ambda琛ㄨ揪寮忕殑鍙傛暟 + var secondBody = ParameterRebinder.ReplaceParameters(map, second.Body); + // 灏唋ambda琛ㄨ揪寮忎綋鐨勭粍鍚堝簲鐢ㄤ簬绗竴涓〃杈惧紡涓殑鍙傛暟 + 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); + } + + } +} diff --git a/DocumentServiceAPI.Web.Entry/appsettings.json b/DocumentServiceAPI.Web.Entry/appsettings.json index 78d8527..550e6de 100644 --- a/DocumentServiceAPI.Web.Entry/appsettings.json +++ b/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 -- Gitblit v1.9.1