From 2292b7433d2ffb8db8b85490c2652a7a56a244be Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9F=B3=E6=96=87=E7=BF=94?= <878130837@qq.com>
Date: Fri, 1 Mar 2024 20:58:48 +0800
Subject: [PATCH] =?UTF-8?q?=E5=88=9B=E5=BB=BA=20=E8=BD=A8=E8=BF=B9?=
=?UTF-8?q?=E5=86=85=E5=AE=B9=E6=98=A0=E5=B0=84=E7=BC=96=E8=BE=91=20?=
=?UTF-8?q?=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../TrackContents/EditTrackContentMapInput.cs | 41 +++++++++++++++++++
.../TrackContents/TrackContentService.cs | 41 +++++++++++++++++++
.../ITrackContentRepository.cs | 2 +
.../GetTrackContentMapDetailOutputVO.cs | 10 +++++
.../Repositories/TrackContentRepository.cs | 6 +++
5 files changed, 100 insertions(+)
create mode 100644 src/SJZY.Track.Application.Contract/Dtos/TrackContents/EditTrackContentMapInput.cs
diff --git a/src/SJZY.Track.Application.Contract/Dtos/TrackContents/EditTrackContentMapInput.cs b/src/SJZY.Track.Application.Contract/Dtos/TrackContents/EditTrackContentMapInput.cs
new file mode 100644
index 00000000..e952cc62
--- /dev/null
+++ b/src/SJZY.Track.Application.Contract/Dtos/TrackContents/EditTrackContentMapInput.cs
@@ -0,0 +1,41 @@
+namespace SJZY.Track.Application.Contract.Dtos.TrackContents;
+
+public class EditTrackContentMapInput
+{
+ public int? Id { get; set; }
+
+ ///
+ /// 映射子系统id
+ ///
+ public int MapSubSystemId { get; set; }
+
+ ///
+ /// 映射轨迹内容代码
+ ///
+ public string MapTrackContentCode { get; set; }
+
+ ///
+ /// 映射轨迹内容id
+ ///
+ public int MapTrackContentId { get; set; }
+
+ ///
+ /// 操作类型
+ ///
+ public OptionTypeNoNull Options { get; set; }
+
+ ///
+ /// 源子系统id
+ ///
+ public int SubSystemId { get; set; }
+
+ ///
+ /// 源轨迹内容代码
+ ///
+ public string TrackContentCode { get; set; }
+
+ ///
+ /// 源轨迹内容id
+ ///
+ public int TrackContentId { get; set; }
+}
\ No newline at end of file
diff --git a/src/SJZY.Track.Application/Services/TrackContents/TrackContentService.cs b/src/SJZY.Track.Application/Services/TrackContents/TrackContentService.cs
index 542b0612..9201b16f 100644
--- a/src/SJZY.Track.Application/Services/TrackContents/TrackContentService.cs
+++ b/src/SJZY.Track.Application/Services/TrackContents/TrackContentService.cs
@@ -1,9 +1,13 @@
using Microsoft.Extensions.Localization;
using SJZY.Expand.ABP.Core.Common.Dto;
+using SJZY.Expand.ABP.Core.Localization;
using SJZY.Track.Application.Contract.Dtos.TrackContents;
+using SJZY.Track.Application.Contract.Dtos.TrackPull;
using SJZY.Track.Application.Localization;
using SJZY.Track.Domain.Aggregates.TrackContentAggregate;
+using SJZY.Track.Domain.Aggregates.TrackPullAggregate;
using SJZY.Track.Domain.Dtos.TrackContents;
+using System.Linq.Expressions;
using Volo.Abp.DependencyInjection;
namespace SJZY.Track.Application.Services.TrackContents
@@ -160,5 +164,42 @@ namespace SJZY.Track.Application.Services.TrackContents
{
return await _trackContentRepository.GetMapDetailAsync(id);
}
+
+ ///
+ /// 轨迹内容映射编辑
+ ///
+ ///
+ ///
+ [HttpPost("EditMap")]
+ public async Task EditMapAsync([FromBody] EditTrackContentMapInput input)
+ {
+ if (input.Options != OptionTypeNoNull.删除)
+ {
+ Expression> isMapAnyExp = x =>
+ x.TrackContentId == input.TrackContentId && x.MapTrackContentId == input.MapTrackContentId;
+ if (input.Options == OptionTypeNoNull.修改) isMapAnyExp.And(x => x.Id != input.Id);
+
+ if (await _trackContentRepository.IsMapAnyAsync(isMapAnyExp))
+ throw new BusinessException(message: _stringLocalizer["IsTrackContentMapAny"]);
+ }
+
+ switch (input.Options)
+ {
+ case OptionTypeNoNull.新增:
+ break;
+
+ case OptionTypeNoNull.删除:
+ break;
+
+ case OptionTypeNoNull.修改:
+ break;
+
+ default:
+ throw new BusinessException(message: _stringLocalizer[SjzyBasicLocalization.Validation_IsInEnum,
+ nameof(EditTrackContentMapInput.Options)]);
+ }
+
+ return true;
+ }
}
}
\ No newline at end of file
diff --git a/src/SJZY.Track.Domain/Aggregates/TrackContentAggregate/ITrackContentRepository.cs b/src/SJZY.Track.Domain/Aggregates/TrackContentAggregate/ITrackContentRepository.cs
index cb4c9a4f..30439f50 100644
--- a/src/SJZY.Track.Domain/Aggregates/TrackContentAggregate/ITrackContentRepository.cs
+++ b/src/SJZY.Track.Domain/Aggregates/TrackContentAggregate/ITrackContentRepository.cs
@@ -11,4 +11,6 @@ public interface ITrackContentRepository : IBasicRepository
Task> GetMapPageAsync(GetTrackContentMapPageInputVO input);
Task GetMapDetailAsync(int id);
+
+ Task IsMapAnyAsync(Expression> whereExpression);
}
\ No newline at end of file
diff --git a/src/SJZY.Track.Domain/Dtos/TrackContents/GetTrackContentMapDetailOutputVO.cs b/src/SJZY.Track.Domain/Dtos/TrackContents/GetTrackContentMapDetailOutputVO.cs
index b5755d21..dce4eff9 100644
--- a/src/SJZY.Track.Domain/Dtos/TrackContents/GetTrackContentMapDetailOutputVO.cs
+++ b/src/SJZY.Track.Domain/Dtos/TrackContents/GetTrackContentMapDetailOutputVO.cs
@@ -43,4 +43,14 @@ public class GetTrackContentMapDetailOutputVO
/// 源轨迹内容id
///
public int TrackContentId { get; set; }
+
+ ///
+ /// 源轨迹内容代码
+ ///
+ public string TrackContentCode { get; set; }
+
+ ///
+ /// 映射轨迹内容代码
+ ///
+ public string MapTrackContentCode { get; set; }
}
\ No newline at end of file
diff --git a/src/SJZY.Track.Repository/Repositories/TrackContentRepository.cs b/src/SJZY.Track.Repository/Repositories/TrackContentRepository.cs
index a186543a..d21dad20 100644
--- a/src/SJZY.Track.Repository/Repositories/TrackContentRepository.cs
+++ b/src/SJZY.Track.Repository/Repositories/TrackContentRepository.cs
@@ -3,6 +3,7 @@ using SJZY.Track.Domain.Aggregates.TrackFlagAggregate;
using SJZY.Track.Domain.Aggregates.TrackStatusAggregate;
using SJZY.Track.Domain.Dtos.TrackContents;
using SJZY.Track.Domain.VEntities;
+using System.Linq.Expressions;
namespace SJZY.Track.Repository.Repositories;
@@ -138,4 +139,9 @@ public class TrackContentRepository : BasicRepository, ITrac
}, true)
.SingleAsync();
}
+
+ public async Task IsMapAnyAsync(Expression> whereExpression)
+ {
+ return await Context.Queryable().Where(whereExpression).AnyAsync();
+ }
}
\ No newline at end of file