add-interface:增加运输时效规则场景删除接口
This commit is contained in:
parent
c8f82208cd
commit
ccc300bd56
@ -0,0 +1,18 @@
|
||||
using SJZY.Track.Application.Contract.Dtos.Warning.DataAnnotations;
|
||||
|
||||
namespace SJZY.Track.Application.Contract.Dtos.Warning.Transport;
|
||||
|
||||
public sealed class DeleteTransportWarningSceneInput
|
||||
{
|
||||
/// <summary>
|
||||
/// 场景唯一id
|
||||
/// </summary>
|
||||
[IdRequired]
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 预警规则主体id
|
||||
/// </summary>
|
||||
[IdRequired]
|
||||
public int WarningId { get; set; }
|
||||
}
|
||||
@ -60,6 +60,12 @@ public class TransportWarningHandler : ITransportWarningHandler
|
||||
return;
|
||||
}
|
||||
|
||||
public async Task HandleSceneDeletedAsync(WarningRuleEntity rule, TransportWarningSceneBO delScene)
|
||||
{
|
||||
// todo:暂时不做后续处理
|
||||
return;
|
||||
}
|
||||
|
||||
private bool CanSceneChange(TransportWarningSceneBO oldScene, TransportWarningSceneBO postScene)
|
||||
{
|
||||
return oldScene.CargoType != postScene.CargoType || //多个 普货,危险品
|
||||
|
||||
@ -23,6 +23,9 @@ public interface ITransportWarningHandler : ITransientDependency
|
||||
// 运输预警场景变更
|
||||
Task HandleSceneChangedAsync(WarningRuleEntity rule, TransportWarningSceneBO oldScene, TransportWarningSceneBO postScene);
|
||||
|
||||
// 运输预警场景删除
|
||||
Task HandleSceneDeletedAsync(WarningRuleEntity rule, TransportWarningSceneBO delScene);
|
||||
|
||||
// 处理配置项列表保存
|
||||
Task HandleEditAsync(WarningRuleEntity rule, TransportWarningSceneEntity scene, List<TransportWarningSceneRuleItemBO> bos);
|
||||
|
||||
|
||||
@ -251,6 +251,34 @@ public class TransportWarningService : ApplicationService
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 删除运输时效规则场景
|
||||
/// </summary>
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost("DeleteTransportWarningScene")]
|
||||
public async Task<UnifyResultDto> DeleteTransportWarningScene(DeleteTransportWarningSceneInput input)
|
||||
{
|
||||
var rule = await _warningRuleRepository.GetWarningRuleByIdAsync(input.WarningId, WarningRuleType.运输时效预警);
|
||||
if (rule == null)
|
||||
{
|
||||
throw new BusinessException(message: $"预警规则主体不存在,WarningId=[{input.WarningId}]");
|
||||
}
|
||||
|
||||
var scene = await _warningRuleRepository.GetTransportSceneAsync(input.WarningId, input.Id);
|
||||
if (scene == null)
|
||||
{
|
||||
throw new BusinessException(message: $"预警规则场景不存在,WarningId=[{input.WarningId}]");
|
||||
}
|
||||
|
||||
await _warningRuleRepository.DeleteTransportSceneAsync(input.WarningId, input.Id);
|
||||
// 处理删除
|
||||
await _transportWarningHandler.HandleSceneDeletedAsync(rule, TransportWarningSceneBO.From(scene));
|
||||
return new UnifyResultDto(true);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 编辑预警规则项目(全量)
|
||||
/// </summary>
|
||||
|
||||
@ -14,7 +14,7 @@ public interface IWarningRuleRepository : IBasicRepository<WarningRuleEntity>
|
||||
#region 规则主体
|
||||
|
||||
// 检查名称是否重复
|
||||
Task<bool> CheckNameDuplicateAsync(int id,int subsystemId, int customId, string name);
|
||||
Task<bool> CheckNameDuplicateAsync(int id, int subsystemId, int customId, string name);
|
||||
|
||||
// 新增/更新预警规则主体,并返回id
|
||||
Task<int> UpsertReturnIdAsync(WarningRuleEntity entity);
|
||||
@ -53,6 +53,9 @@ public interface IWarningRuleRepository : IBasicRepository<WarningRuleEntity>
|
||||
// 批量新增运输时效场景规则项目
|
||||
Task<int> BulkInsertTransportSceneRuleItemsAsync(List<TransportWarningSceneRuleItemEntity> entities);
|
||||
|
||||
// 删除运输预警场景
|
||||
Task<bool> DeleteTransportSceneAsync(int warningId, int sceneId);
|
||||
|
||||
// 删除运输预警场景规则项目
|
||||
Task<int> DeleteTransportSceneRuleItemsAsync(HashSet<int> ruleItemIds);
|
||||
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
using SJZY.Track.Domain;
|
||||
using SJZY.Track.Domain.Aggregates.WarningAggregate;
|
||||
using SJZY.Track.Domain.Aggregates.WarningAggregate.Complete;
|
||||
using SJZY.Track.Domain.Aggregates.WarningAggregate.Return;
|
||||
@ -146,6 +147,22 @@ public sealed class WarningRuleRepository : BasicRepository<WarningRuleEntity>,
|
||||
.ExecuteCommandAsync();
|
||||
}
|
||||
|
||||
public async Task<bool> DeleteTransportSceneAsync(int warningId, int sceneId)
|
||||
{
|
||||
using var tran = TransactionHelper.GetReadCommitted();
|
||||
|
||||
var result = await Context.Deleteable<TransportWarningSceneEntity>()
|
||||
.Where(x => x.WarningId == warningId && x.Id == sceneId)
|
||||
.ExecuteCommandHasChangeAsync();
|
||||
await Context.Deleteable<TransportWarningSceneRuleItemEntity>()
|
||||
.Where(x => x.TransportWarningSceneId == sceneId)
|
||||
.ExecuteCommandAsync();
|
||||
|
||||
tran.Complete();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public Task<int> DeleteTransportSceneRuleItemsAsync(HashSet<int> ruleItemIds)
|
||||
{
|
||||
return Context.Deleteable<TransportWarningSceneRuleItemEntity>()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user