diff --git a/Src/Dlhis.Basic/WorkGrids/Controllers/WorkGridsController.cs b/Src/Dlhis.Basic/WorkGrids/Controllers/WorkGridsController.cs
index e972efee..313bd292 100644
--- a/Src/Dlhis.Basic/WorkGrids/Controllers/WorkGridsController.cs
+++ b/Src/Dlhis.Basic/WorkGrids/Controllers/WorkGridsController.cs
@@ -55,6 +55,16 @@ public class WorkGridsController : ControllerBase
await _workGridService.SaveAsync(requests);
}
+ ///
+ /// 解散网格
+ ///
+ ///
+ [HttpPost("dismiss")]
+ public async Task DismissAsync(WorkGridDismissRequest request)
+ {
+ await _workGridService.DismissAsync(request.WorkGridCode);
+ }
+
///
/// 网格分页
///
diff --git a/Src/Dlhis.Basic/WorkGrids/Request/WorkGridDismissRequest.cs b/Src/Dlhis.Basic/WorkGrids/Request/WorkGridDismissRequest.cs
new file mode 100644
index 00000000..1783cd61
--- /dev/null
+++ b/Src/Dlhis.Basic/WorkGrids/Request/WorkGridDismissRequest.cs
@@ -0,0 +1,6 @@
+namespace Dlhis.Basic.WorkGrids.Request;
+
+public class WorkGridDismissRequest
+{
+ public Guid WorkGridCode { get; set; }
+}
\ No newline at end of file
diff --git a/Src/Dlhis.Basic/WorkGrids/Services/IWorkGridService.cs b/Src/Dlhis.Basic/WorkGrids/Services/IWorkGridService.cs
index a71fa0c2..3279f71a 100644
--- a/Src/Dlhis.Basic/WorkGrids/Services/IWorkGridService.cs
+++ b/Src/Dlhis.Basic/WorkGrids/Services/IWorkGridService.cs
@@ -36,6 +36,13 @@ public interface IWorkGridService : IScopeDependency
///
Task ChangeAsync(string from, string to);
+ ///
+ /// 解散
+ ///
+ ///
+ ///
+ Task DismissAsync(Guid workGridCode);
+
///
/// 获取
///
diff --git a/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridService.cs b/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridService.cs
index b4a76632..63e3b289 100644
--- a/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridService.cs
+++ b/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridService.cs
@@ -155,6 +155,18 @@ public class WorkGridService : IWorkGridService
await _operateLog.LogAsync(OperateLogType.WorkGrid, $"网格({workGrid.Name})修改负责人{from}->{to}");
}
+ public async Task DismissAsync(Guid workGridCode)
+ {
+ var workGrid = await _dbContext.Queryable().Where(x => x.Code == workGridCode).SingleAsync();
+ workGrid.ThrowIfNull("工作网格不存在");
+
+ var existsUser = await _dbContext.Queryable().Where(x => x.WorkGridCode == workGridCode).AnyAsync();
+ existsUser.ThrowIfTrue("工作网格下存在人员,请先移除人员");
+
+ await _dbContext.DeleteAsync(workGrid);
+ await _operateLog.LogAsync(OperateLogType.WorkGrid, $"解散网格({workGrid.Name})");
+ }
+
public async Task GetMyWorkGridAsync(WorkGridPageRequest request)
{
var currentUserCode = _currentUser.GetUserClaim(UserClaimConstants.JinkoCode);