From 07d8011732a6c6d98fc55ef68495f014f95280d5 Mon Sep 17 00:00:00 2001
From: qwj <qwjzorro@163.com>
Date: 星期四, 24 八月 2023 10:41:59 +0800
Subject: [PATCH] 方案、财务、设备、技术力量、质检报告、制度流程api
---
DocumentServiceAPI.Model/cyDocumentModel/Doc_Info.cs | 7 +
DocumentServiceAPI.Application/DocManage/Dtos/Classification_Submit_Dto.cs | 1
DocumentServiceAPI.Application/DocumentServiceAPI.Application.xml | 77 +++++++++++++++
DocumentServiceAPI.Application/DocManage/Dtos/Document_List_Dto.cs | 5 +
DocumentServiceAPI.Application/DocManage/DocumentManageAppService.cs | 72 ++++++++++++++
DocumentServiceAPI.Application/DocManage/Dtos/Document_Lock_Dto.cs | 48 +++++++++
DocumentServiceAPI.Application/DocManage/Dtos/Project_List_Dto.cs | 34 ++++++
DocumentServiceAPI.Application/DocManage/DocClassificationManageAppService.cs | 11 +-
DocumentServiceAPI.Application/DocManage/Services/ProjectManageService.cs | 12 ++
9 files changed, 260 insertions(+), 7 deletions(-)
diff --git a/DocumentServiceAPI.Application/DocManage/DocClassificationManageAppService.cs b/DocumentServiceAPI.Application/DocManage/DocClassificationManageAppService.cs
index de9221f..447649c 100644
--- a/DocumentServiceAPI.Application/DocManage/DocClassificationManageAppService.cs
+++ b/DocumentServiceAPI.Application/DocManage/DocClassificationManageAppService.cs
@@ -38,15 +38,15 @@
PageModel pg = new PageModel();
pg.PageSize = page.PageSize;
pg.PageIndex = page.PageIndex;
-
+
PageResult<Doc_Classification> result = new PageResult<Doc_Classification>();
if (page.Status.HasValue)
{
- result.Items = await _classificationService.GetPageListAsync(c => c.status ==page.Status && c.parent_code == page.Code, pg);
+ result.Items = await _classificationService.GetPageListAsync(c => c.status ==page.Status && c.parent_code == page.Code,pg,c=>c.sort_id,OrderByType.Asc);
}
else
{
- result.Items = await _classificationService.GetPageListAsync(c => c.parent_code == page.Code, pg);
+ result.Items = await _classificationService.GetPageListAsync(c => c.parent_code == page.Code, pg, c => c.sort_id, OrderByType.Asc);
}
result.TotalCount = pg.TotalCount;
result.PageIndex = pg.PageIndex;
@@ -62,7 +62,7 @@
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);
+ return new JsonResult(data.OrderBy(c=>c.sort_id).ToList());
}
/// <summary>
@@ -78,7 +78,7 @@
doc.doc_classification_code = "";
doc.is_system = false;
doc.parent_code = info.code;
- doc.sort_id = 99;
+ doc.sort_id = info.sort;
doc.status = info.status;
doc.tenant_code = info.tenant_id;
@@ -100,6 +100,7 @@
model.add_time = DateTime.Now;
model.doc_classification = info.name;
model.status = info.status;
+ model.sort_id = info.sort;
msg = await _classificationService.UpdateAsync(model);
}
diff --git a/DocumentServiceAPI.Application/DocManage/DocumentManageAppService.cs b/DocumentServiceAPI.Application/DocManage/DocumentManageAppService.cs
index 0365c1d..85aaef9 100644
--- a/DocumentServiceAPI.Application/DocManage/DocumentManageAppService.cs
+++ b/DocumentServiceAPI.Application/DocManage/DocumentManageAppService.cs
@@ -1,9 +1,12 @@
锘縰sing DocumentServiceAPI.Application.DocManage.Dtos;
using DocumentServiceAPI.Application.DocManage.Services;
+using DocumentServiceAPI.Application.ProjectInfo.Services;
using DocumentServiceAPI.Application.System.Services;
using DocumentServiceAPI.Model.cyDocumentModel;
+using DocumentServiceAPI.Services.IService;
using DocumentServiceAPI.Utility;
using Microsoft.AspNetCore.Mvc.RazorPages;
+using Microsoft.Extensions.Caching.Memory;
using System.Linq.Expressions;
namespace DocumentServiceAPI.Application.DocManage
@@ -17,13 +20,71 @@
private readonly DocumentManageService _docManageService;
private readonly OrganizationService _organizationService;
private readonly FileManageService _fileManageService;
+ private readonly ProjectManageService _projectService;
+ private readonly IRedisCacheService _redisCache;
- public DocumentManageAppService(DocClassificationService classService, DocumentManageService docService, OrganizationService orgService,FileManageService fileManageService)
+ public DocumentManageAppService(DocClassificationService classService, DocumentManageService docService, OrganizationService orgService,
+ FileManageService fileManageService, ProjectManageService projectService, IRedisCacheService redisCase)
{
_classificationService = classService;
_docManageService = docService;
_organizationService = orgService;
_fileManageService = fileManageService;
+ _projectService = projectService;
+
+ _redisCache = redisCase;
+ }
+
+ /// <summary>
+ /// 缂栬緫鏂囨。鏃惰缃枃妗i攣瀹氱姸鎬�
+ /// </summary>
+ /// <param name="model"></param>
+ /// <returns>
+ /// true:璁剧疆閿佸畾鎴愬姛
+ /// false:閿佸畾澶辫触锛屾枃妗e凡琚攣瀹�
+ /// </returns>
+ public bool SetDocLockStatus(DocLock_Submit_Dto model)
+ {
+ bool msg = true;
+ string key = model.tenant_id.ToString().PadLeft(4,'0') + "_" + model.id.ToString().PadLeft(8,'0');
+ if (_redisCache.Get<Document_Lock_Dto>(key) != null)
+ {
+ msg = false;
+ }
+ else
+ {
+ Document_Lock_Dto lk = new Document_Lock_Dto();
+ lk.doc_id = model.id;
+ lk.lock_time = DateTime.Now;
+ lk.lock_user = model.username;
+ lk.lock_user_id = model.userid;
+ lk.status = 0;
+ lk.tenant_id = model.tenant_id;
+
+ var db= _redisCache.Add<Document_Lock_Dto>(key,lk ,-1);
+ }
+ return msg;
+ }
+
+ /// <summary>
+ /// 鏌ヨ椤圭洰淇℃伅
+ /// </summary>
+ /// <param name="search"></param>
+ /// <returns></returns>
+ public async Task<IActionResult> PostProjectItemList(ProjectItemSearch search)
+ {
+ var data = await _projectService.GetListAsync();//.GetListAsync(c => c.TenantID == search.tenant_id);
+ if (data != null)
+ {
+ var list = data.Select(c => new ProjectItem_List_Dto()
+ {
+ pro_id=c.ProjectId,
+ pro_name=c.ProjectName
+ }).OrderBy(c => c.pro_name).ToList();
+ return new JsonResult(list);
+ }
+
+ return null;
}
/// <summary>
@@ -40,6 +101,11 @@
{
expression = expression.And(t => t.classification_id == model.class_id);
}
+ if (model.project_id.HasValue && model.project_id != 0)
+ {
+ expression = expression.And(t => t.project_id == model.project_id);
+ }
+
if (model.id > 0)
{
expression = expression.And(t => t.id != model.id);
@@ -86,7 +152,9 @@
var data = await _docManageService.Context.Queryable<Doc_Info>()
.Includes(c => c.DocClassification)
.Includes(c=>c.DocOrganization)
+ .Includes(c=>c.DocProject)
.Where(expression)
+ .OrderByDescending(c=>c.id)
.ToPageListAsync(page.PageIndex, page.PageSize, total);
if (data != null && total > 0)
@@ -101,7 +169,7 @@
org_id = c.org_id,
org_name = c.DocOrganization?.UnitName,
project_id = c.project_id,
- project_name = "",
+ project_name = c.DocProject?.ProjectName,
status = c.status
}).ToList();
diff --git a/DocumentServiceAPI.Application/DocManage/Dtos/Classification_Submit_Dto.cs b/DocumentServiceAPI.Application/DocManage/Dtos/Classification_Submit_Dto.cs
index 28b486c..878be55 100644
--- a/DocumentServiceAPI.Application/DocManage/Dtos/Classification_Submit_Dto.cs
+++ b/DocumentServiceAPI.Application/DocManage/Dtos/Classification_Submit_Dto.cs
@@ -13,6 +13,7 @@
/// </summary>
public string code { get; set; }
+ public int sort { get; set; }
public int status { get; set; }
}
}
diff --git a/DocumentServiceAPI.Application/DocManage/Dtos/Document_List_Dto.cs b/DocumentServiceAPI.Application/DocManage/Dtos/Document_List_Dto.cs
index 9138c57..ad86c15 100644
--- a/DocumentServiceAPI.Application/DocManage/Dtos/Document_List_Dto.cs
+++ b/DocumentServiceAPI.Application/DocManage/Dtos/Document_List_Dto.cs
@@ -76,6 +76,11 @@
/// </summary>
public int? org_id { get; set; }
+ /// <summary>
+ /// 椤圭洰鍚嶇О
+ /// </summary>
+ public int? project_id { get; set; }
+
public int status { get; set; }
public List<DocumentFile_Submit_Dto> newfiles { get; set; }
diff --git a/DocumentServiceAPI.Application/DocManage/Dtos/Document_Lock_Dto.cs b/DocumentServiceAPI.Application/DocManage/Dtos/Document_Lock_Dto.cs
new file mode 100644
index 0000000..ea141f5
--- /dev/null
+++ b/DocumentServiceAPI.Application/DocManage/Dtos/Document_Lock_Dto.cs
@@ -0,0 +1,48 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DocumentServiceAPI.Application.DocManage.Dtos
+{
+ public class Document_Lock_Dto
+ {
+ /// <summary>
+ /// 鏂囨。id
+ /// </summary>
+ public int doc_id { get; set; }
+
+ public int lock_user_id { get; set; }
+
+ public string lock_user { get; set; }
+
+ public DateTime lock_time { get; set; }
+
+ public DateTime? release_time { get; set; }
+ public int tenant_id { get; set; }
+
+ public int status { get; set; }
+ }
+
+ /// <summary>
+ /// 鎻愪氦淇℃伅
+ /// </summary>
+ public class DocLock_Submit_Dto
+ {
+ public int id { get; set; }
+
+ /// <summary>
+ /// 浜哄憳
+ /// </summary>
+ public int userid { get; set; }
+
+ /// <summary>
+ /// 浜哄憳
+ /// </summary>
+ public string username { get; set; }
+
+ public int tenant_id { get; set; }
+
+ }
+}
diff --git a/DocumentServiceAPI.Application/DocManage/Dtos/Project_List_Dto.cs b/DocumentServiceAPI.Application/DocManage/Dtos/Project_List_Dto.cs
new file mode 100644
index 0000000..f04b696
--- /dev/null
+++ b/DocumentServiceAPI.Application/DocManage/Dtos/Project_List_Dto.cs
@@ -0,0 +1,34 @@
+锘縩amespace DocumentServiceAPI.Application.DocManage.Dtos
+{
+ /// <summary>
+ /// 椤圭洰鍒楄〃淇℃伅
+ /// </summary>
+ public class ProjectItem_List_Dto
+ {
+ /// <summary>
+ /// 椤圭洰id
+ /// </summary>
+ public int pro_id { get; set; }
+
+ /// <summary>
+ /// 椤圭洰鍚嶇О
+ /// </summary>
+ public string pro_name { get; set; }
+ }
+
+ /// <summary>
+ /// 椤圭洰鏌ヨ鏉′欢
+ /// </summary>
+ public class ProjectItemSearch
+ {
+ /// <summary>
+ /// 绉熸埛
+ /// </summary>
+ public int tenant_id { get; set; }
+
+ /// <summary>
+ /// 鍗曚綅
+ /// </summary>
+ public int org_id { get; set; }
+ }
+}
diff --git a/DocumentServiceAPI.Application/DocManage/Services/ProjectManageService.cs b/DocumentServiceAPI.Application/DocManage/Services/ProjectManageService.cs
new file mode 100644
index 0000000..5c7cea3
--- /dev/null
+++ b/DocumentServiceAPI.Application/DocManage/Services/ProjectManageService.cs
@@ -0,0 +1,12 @@
+锘縰sing DocumentServiceAPI.Core;
+using DocumentServiceAPI.Model.cyDocumentModel;
+
+namespace DocumentServiceAPI.Application.DocManage.Services
+{
+ /// <summary>
+ /// 椤圭洰鏌ヨ绫�
+ /// </summary>
+ public class ProjectManageService : BaseRepository<Document_ProjectInfo>, ITransient
+ {
+ }
+}
diff --git a/DocumentServiceAPI.Application/DocumentServiceAPI.Application.xml b/DocumentServiceAPI.Application/DocumentServiceAPI.Application.xml
index 91a23df..96b03e8 100644
--- a/DocumentServiceAPI.Application/DocumentServiceAPI.Application.xml
+++ b/DocumentServiceAPI.Application/DocumentServiceAPI.Application.xml
@@ -56,6 +56,23 @@
璧勬枡绠$悊
</summary>
</member>
+ <member name="M:DocumentServiceAPI.Application.DocManage.DocumentManageAppService.SetDocLockStatus(DocumentServiceAPI.Application.DocManage.Dtos.DocLock_Submit_Dto)">
+ <summary>
+ 缂栬緫鏂囨。鏃惰缃枃妗i攣瀹氱姸鎬�
+ </summary>
+ <param name="model"></param>
+ <returns>
+ true:璁剧疆閿佸畾鎴愬姛
+ false:閿佸畾澶辫触锛屾枃妗e凡琚攣瀹�
+ </returns>
+ </member>
+ <member name="M:DocumentServiceAPI.Application.DocManage.DocumentManageAppService.PostProjectItemList(DocumentServiceAPI.Application.DocManage.Dtos.ProjectItemSearch)">
+ <summary>
+ 鏌ヨ椤圭洰淇℃伅
+ </summary>
+ <param name="search"></param>
+ <returns></returns>
+ </member>
<member name="M:DocumentServiceAPI.Application.DocManage.DocumentManageAppService.CheckNameDuplicate(DocumentServiceAPI.Application.DocManage.Dtos.Document_Submit_Dto)">
<summary>
妫�鏌ュ悕绉伴噸澶�
@@ -165,6 +182,11 @@
鎶曟爣鍗曚綅
</summary>
</member>
+ <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.Document_Submit_Dto.project_id">
+ <summary>
+ 椤圭洰鍚嶇О
+ </summary>
+ </member>
<member name="T:DocumentServiceAPI.Application.DocManage.Dtos.Document_Info_Dto">
<summary>
鏌ヨ鏂囨。淇℃伅
@@ -230,9 +252,59 @@
涓婁紶浜哄憳
</summary>
</member>
+ <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.Document_Lock_Dto.doc_id">
+ <summary>
+ 鏂囨。id
+ </summary>
+ </member>
+ <member name="T:DocumentServiceAPI.Application.DocManage.Dtos.DocLock_Submit_Dto">
+ <summary>
+ 鎻愪氦淇℃伅
+ </summary>
+ </member>
+ <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.DocLock_Submit_Dto.userid">
+ <summary>
+ 浜哄憳
+ </summary>
+ </member>
+ <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.DocLock_Submit_Dto.username">
+ <summary>
+ 浜哄憳
+ </summary>
+ </member>
<member name="P:DocumentServiceAPI.Application.DocManage.Dtos.FileInfo_List_Dto.suffix">
<summary>
鎵╁睍鍚�
+ </summary>
+ </member>
+ <member name="T:DocumentServiceAPI.Application.DocManage.Dtos.ProjectItem_List_Dto">
+ <summary>
+ 椤圭洰鍒楄〃淇℃伅
+ </summary>
+ </member>
+ <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.ProjectItem_List_Dto.pro_id">
+ <summary>
+ 椤圭洰id
+ </summary>
+ </member>
+ <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.ProjectItem_List_Dto.pro_name">
+ <summary>
+ 椤圭洰鍚嶇О
+ </summary>
+ </member>
+ <member name="T:DocumentServiceAPI.Application.DocManage.Dtos.ProjectItemSearch">
+ <summary>
+ 椤圭洰鏌ヨ鏉′欢
+ </summary>
+ </member>
+ <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.ProjectItemSearch.tenant_id">
+ <summary>
+ 绉熸埛
+ </summary>
+ </member>
+ <member name="P:DocumentServiceAPI.Application.DocManage.Dtos.ProjectItemSearch.org_id">
+ <summary>
+ 鍗曚綅
</summary>
</member>
<member name="P:DocumentServiceAPI.Application.DocManage.Services.DocClassificationPageSearch.Code">
@@ -300,6 +372,11 @@
鏂囦欢绠$悊
</summary>
</member>
+ <member name="T:DocumentServiceAPI.Application.DocManage.Services.ProjectManageService">
+ <summary>
+ 椤圭洰鏌ヨ绫�
+ </summary>
+ </member>
<member name="T:DocumentServiceAPI.Application.ProjectInfo.ProjectInfoController">
<summary>
鐧诲綍鎺у埗鍣�
diff --git a/DocumentServiceAPI.Model/cyDocumentModel/Doc_Info.cs b/DocumentServiceAPI.Model/cyDocumentModel/Doc_Info.cs
index 1303c23..446ddb4 100644
--- a/DocumentServiceAPI.Model/cyDocumentModel/Doc_Info.cs
+++ b/DocumentServiceAPI.Model/cyDocumentModel/Doc_Info.cs
@@ -61,6 +61,13 @@
[SugarColumn(IsIgnore = true)]
[Navigate(NavigateType.OneToOne, nameof(org_id))]
public Document_TenderUnit? DocOrganization { get; set; }
+
+ /// <summary>
+ /// 鍏宠仈椤圭洰
+ /// </summary>
+ [SugarColumn(IsIgnore = true)]
+ [Navigate(NavigateType.OneToOne, nameof(project_id))]
+ public Document_ProjectInfo? DocProject { get; set; }
}
}
--
Gitblit v1.9.1