fix(ClientBlack): 支持删除未生效黑名单记录
- 未提交、新增已拒绝的黑名单记录可直接删除,不进入删除审批 - 已加入、删除已拒绝仍按原逻辑发起删除审批 - 新增审批中、删除审批中仍禁止删除 - 补充未生效状态可直接删除的状态机单测,45/45 通过
This commit is contained in:
@@ -41,6 +41,18 @@ namespace YLErp.Modules.ClientModule.Tests
|
||||
Assert.AreEqual(expected, ClientBlackApprovalPolicy.CanRequestRemoval(state));
|
||||
}
|
||||
|
||||
[DataTestMethod]
|
||||
[DataRow(client_black.未提交, true)]
|
||||
[DataRow(client_black.新增已拒绝, true)]
|
||||
[DataRow(client_black.新增审批中, false)]
|
||||
[DataRow(client_black.已加入, false)]
|
||||
[DataRow(client_black.删除审批中, false)]
|
||||
[DataRow(client_black.删除已拒绝, false)]
|
||||
public void CanDeleteDraft_OnlyNeverEffectiveStatesCanDeleteDirectly(string state, bool expected)
|
||||
{
|
||||
Assert.AreEqual(expected, ClientBlackApprovalPolicy.CanDeleteDraft(state));
|
||||
}
|
||||
|
||||
[DataTestMethod]
|
||||
[DataRow(client_black.新增审批中, 1, true)]
|
||||
[DataRow(client_black.删除审批中, 1, true)]
|
||||
|
||||
@@ -33,6 +33,11 @@ namespace YLErp.Modules.ClientModule
|
||||
return state == client_black.已加入 || state == client_black.删除已拒绝;
|
||||
}
|
||||
|
||||
public static bool CanDeleteDraft(string state)
|
||||
{
|
||||
return state == client_black.未提交 || state == client_black.新增已拒绝;
|
||||
}
|
||||
|
||||
public static ClientBlackRemovalResult GetRemovalResult(bool hasApprovalProcess)
|
||||
{
|
||||
return hasApprovalProcess
|
||||
|
||||
@@ -131,6 +131,13 @@ namespace YLErp.Modules.ClientModule
|
||||
var hasProcess = ProcessList().Any();
|
||||
foreach (var row in rows)
|
||||
{
|
||||
if (ClientBlackApprovalPolicy.CanDeleteDraft(row.State))
|
||||
{
|
||||
DbContext.client_black.Remove(row);
|
||||
ClientBlackCategoryLog(row.id, "已删除");
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!ClientBlackApprovalPolicy.CanRequestRemoval(row.State))
|
||||
{
|
||||
throw new ServiceException($"黑名单客户{row.Name}当前状态不允许移出");
|
||||
|
||||
Reference in New Issue
Block a user