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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task HandleSceneDeletedAsync(WarningRuleEntity rule, TransportWarningSceneBO delScene)
|
||||||
|
{
|
||||||
|
// todo:暂时不做后续处理
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
private bool CanSceneChange(TransportWarningSceneBO oldScene, TransportWarningSceneBO postScene)
|
private bool CanSceneChange(TransportWarningSceneBO oldScene, TransportWarningSceneBO postScene)
|
||||||
{
|
{
|
||||||
return oldScene.CargoType != postScene.CargoType || //多个 普货,危险品
|
return oldScene.CargoType != postScene.CargoType || //多个 普货,危险品
|
||||||
|
|||||||
@ -23,6 +23,9 @@ public interface ITransportWarningHandler : ITransientDependency
|
|||||||
// 运输预警场景变更
|
// 运输预警场景变更
|
||||||
Task HandleSceneChangedAsync(WarningRuleEntity rule, TransportWarningSceneBO oldScene, TransportWarningSceneBO postScene);
|
Task HandleSceneChangedAsync(WarningRuleEntity rule, TransportWarningSceneBO oldScene, TransportWarningSceneBO postScene);
|
||||||
|
|
||||||
|
// 运输预警场景删除
|
||||||
|
Task HandleSceneDeletedAsync(WarningRuleEntity rule, TransportWarningSceneBO delScene);
|
||||||
|
|
||||||
// 处理配置项列表保存
|
// 处理配置项列表保存
|
||||||
Task HandleEditAsync(WarningRuleEntity rule, TransportWarningSceneEntity scene, List<TransportWarningSceneRuleItemBO> bos);
|
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>
|
||||||
/// 编辑预警规则项目(全量)
|
/// 编辑预警规则项目(全量)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -53,6 +53,9 @@ public interface IWarningRuleRepository : IBasicRepository<WarningRuleEntity>
|
|||||||
// 批量新增运输时效场景规则项目
|
// 批量新增运输时效场景规则项目
|
||||||
Task<int> BulkInsertTransportSceneRuleItemsAsync(List<TransportWarningSceneRuleItemEntity> entities);
|
Task<int> BulkInsertTransportSceneRuleItemsAsync(List<TransportWarningSceneRuleItemEntity> entities);
|
||||||
|
|
||||||
|
// 删除运输预警场景
|
||||||
|
Task<bool> DeleteTransportSceneAsync(int warningId, int sceneId);
|
||||||
|
|
||||||
// 删除运输预警场景规则项目
|
// 删除运输预警场景规则项目
|
||||||
Task<int> DeleteTransportSceneRuleItemsAsync(HashSet<int> ruleItemIds);
|
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;
|
||||||
using SJZY.Track.Domain.Aggregates.WarningAggregate.Complete;
|
using SJZY.Track.Domain.Aggregates.WarningAggregate.Complete;
|
||||||
using SJZY.Track.Domain.Aggregates.WarningAggregate.Return;
|
using SJZY.Track.Domain.Aggregates.WarningAggregate.Return;
|
||||||
@ -146,6 +147,22 @@ public sealed class WarningRuleRepository : BasicRepository<WarningRuleEntity>,
|
|||||||
.ExecuteCommandAsync();
|
.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)
|
public Task<int> DeleteTransportSceneRuleItemsAsync(HashSet<int> ruleItemIds)
|
||||||
{
|
{
|
||||||
return Context.Deleteable<TransportWarningSceneRuleItemEntity>()
|
return Context.Deleteable<TransportWarningSceneRuleItemEntity>()
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user