123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419 |
- using aipadmin;
- using AIPlatform.Protocol.Entities;
- using AIPlatform.Protocol.Model;
- using AIPlatform.Protocol.Utilities;
- using aipmgr.Models;
- using aipmgr.Shared;
- using aipmgr.Utilities;
- using BootstrapBlazor.Components;
- using System.ComponentModel.DataAnnotations;
- using System.Diagnostics.CodeAnalysis;
- namespace aipmgr.Pages
- {
- public sealed partial class GatherDatas
- {
- [NotNull]
- private Table<GatherDataModel>? GatherDataTable { get; set; }
- private static List<int> PageItemsSource = new List<int> { 10, 20 };
- private ItemChangedType _changedType;
- [NotNull]
- private MessageBase? _messageBaseRef { get; set; }
- private GatherDataModel SearchModel { get; set; } = new GatherDataModel();
- private DateTimeRangeValue SettlementTimeRange { get; set; } = new();
- [Required(ErrorMessage = "{0}不能为空")]
- private DateTimeRangeValue GatherTimeRange { get; set; } = new();
- [NotNull]
- private List<SelectedItem>? _organizationItems { get; set; }
- [NotNull]
- private List<SelectedItem>? _gathererItems { get; set; }
- [NotNull]
- private List<SelectedItem>? _categoryItems { get; set; }
- [NotNull]
- private Modal? _createOrEditModal { get; set; }
- [NotNull]
- private GatherDataModel? _currentGatherData { get; set; }
- [NotNull]
- private string? _title { get; set; }
- protected override async Task OnInitializedAsync()
- {
- await base.OnInitializedAsync();
- _organizationItems = new List<SelectedItem>();
- _gathererItems = new List<SelectedItem>();
- _categoryItems = new List<SelectedItem>();
- _currentGatherData = new GatherDataModel();
- var organizations = await AdminManager.Shared.GetOrganizationsAsync();
- _organizationItems = organizations.Select(x => new SelectedItem
- {
- Value = x.Id.ToString(),
- Text = x.Name,
- }).ToList();
- }
- private async Task OnOrganizationChanged(SelectedItem item)
- {
- try
- {
- await LoadingManager.OpenAsync();
- _currentGatherData.OrganizationName = item.Text;
- if (_currentGatherData.OrganizationId == 0)
- {
- _categoryItems.Clear();
- _currentGatherData.CategoryId = 0;
- _currentGatherData.CategoryName = null;
- _currentGatherData.GathererId = 0;
- _currentGatherData.GathererName = null;
- }
- else if (_currentGatherData.OrganizationId > 0)
- {
- _categoryItems.Clear();
- var imageCategories = await AdminManager.Shared.GetImageCategoriesByLevelAsync(CategoryLevel.MainCategory);
- if (imageCategories != null)
- {
- foreach (var imageCategory in imageCategories)
- {
- var selectItem = new SelectedItem
- {
- Value = imageCategory.Id.ToString(),
- Text = imageCategory.Name,
- GroupName = "图像大类",
- };
- _categoryItems.Add(selectItem);
- }
- }
- var gatherCategories = await AdminManager.Shared.GetGatherCategoriesByOrganizationIdAsync(_currentGatherData.OrganizationId);
- if (gatherCategories != null)
- {
- foreach (var gatherCategory in gatherCategories)
- {
- var selectItem = new SelectedItem
- {
- Value = gatherCategory.Id.ToString(),
- Text = gatherCategory.Name,
- GroupName = "采集大类",
- };
- _categoryItems.Add(selectItem);
- }
- }
- _categoryItems.Insert(0, new SelectedItem("0", "请选择..."));
- }
- }
- catch (Exception ex)
- {
- await _messageBaseRef.ShowMessageBaseAsync($"加载采集大类失败,错误:{ex.Translate()}");
- }
- finally
- {
- StateHasChanged();
- await LoadingManager.CloseAsync();
- }
- }
- private async Task OnGatherCategoryChanged(SelectedItem item)
- {
- try
- {
- await LoadingManager.OpenAsync();
- _currentGatherData.CategoryName = item.Text;
- if (_currentGatherData.CategoryId == 0)
- {
- _gathererItems.Clear();
- _currentGatherData.GathererId = 0;
- _currentGatherData.GathererName = null;
- }
- else
- {
- if (item.GroupName == "图像大类")
- {
- var imageCategory = await AdminManager.Shared.GetImageCategoryAsync(_currentGatherData.CategoryId);
- _gathererItems = imageCategory.Gatherers.Select(x => new SelectedItem
- {
- Value = x.Id.ToString(),
- Text = x.Name
- }).ToList();
- _currentGatherData.CategoryType = CategoryType.ImageCategory;
- }
- else if (item.GroupName == "采集大类")
- {
- var gatherCategory = await AdminManager.Shared.GetGatherCategoryByIdAsync(_currentGatherData.CategoryId);
- _gathererItems = gatherCategory.Gatherers.Select(x => new SelectedItem
- {
- Value = x.Id.ToString(),
- Text = x.Name
- }).ToList();
- _currentGatherData.CategoryType = CategoryType.GatherCategory;
- }
- _gathererItems.Insert(0, new SelectedItem("0", "请选择..."));
- }
- }
- catch (Exception ex)
- {
- await _messageBaseRef.ShowMessageBaseAsync($"加载采集成员失败,错误:{ex.Translate()}");
- }
- finally
- {
- StateHasChanged();
- await LoadingManager.CloseAsync();
- }
- }
- private async Task OnGatherChanged(SelectedItem item)
- {
- try
- {
- await LoadingManager.OpenAsync();
- _currentGatherData.GathererName = item.Text;
- }
- catch (Exception ex)
- {
- await _messageBaseRef.ShowMessageBaseAsync($"加载采集成员失败,错误:{ex.Translate()}");
- }
- finally
- {
- StateHasChanged();
- await LoadingManager.CloseAsync();
- }
- }
- private async Task<QueryData<GatherDataModel>> OnSearchModelQueryAsync(QueryPageOptions options)
- {
- try
- {
- var organizations = await AdminManager.Shared.GetOrganizationsAsync();
- _organizationItems = organizations.Select(x => new SelectedItem
- {
- Value = x.Id.ToString(),
- Text = x.Name
- }).ToList();
- var searchModel = new SearchGatherDataModel
- {
- Name = SearchModel.CategoryName,
- GathererName = SearchModel.GathererName,
- OrganizationId = SearchModel.OrganizationId,
- ModelType = SearchModel.ModelType,
- Source = SearchModel.Source,
- };
- if (SettlementTimeRange.Start != DateTime.MinValue)
- {
- searchModel.SettleStartTime = SettlementTimeRange.Start;
- searchModel.SettleEndTime = SettlementTimeRange.End;
- }
- var pageIndex = options.PageIndex - 1;
- var pageSize = options.PageItems;
- var count = await AdminManager.Shared.GetGatherDatasCountAsync(searchModel);
- var files = await AdminManager.Shared.GetGatherDatasAsync(pageIndex, pageSize, searchModel);
- var items = new List<GatherDataModel>();
- foreach (var item in files)
- {
- var vo = MapHelper.Map<GatherDataModel, GatherData>(item);
- vo.GathererName = item.Gatherer.Name;
- vo.GathererId = item.Gatherer.Id;
- vo.CategoryName = item.Category.Name;
- vo.CategoryId = item.Category.Id;
- vo.CategoryType = item.Category.Type;
- vo.OrganizationId = item.Organization.Id;
- vo.OrganizationName = item.Organization.Name;
- vo.GatherTime.StartTime = item.StartTime.ToLocalTime();
- vo.GatherTime.EndTime = item.EndTime.ToLocalTime();
- vo.SettlementTime = vo.SettlementTime?.ToLocalTime();
- items.Add(vo);
- }
- return await Task.FromResult(new QueryData<GatherDataModel>()
- {
- Items = items,
- TotalCount = (int)count,
- });
- }
- catch (Exception ex)
- {
- await _messageBaseRef.ShowMessageBaseAsync($"查询数据失败,错误:{ex.Translate()}");
- return await Task.FromResult(new QueryData<GatherDataModel>());
- }
- }
- private async Task OnResetSearchAsync(GatherDataModel item)
- {
- try
- {
- if (_organizationItems != null && _organizationItems.Count > 0)
- {
- item.OrganizationId = long.Parse(_organizationItems.First().Value);
- item.OrganizationName = _organizationItems.First().Text;
- }
- item.CategoryName = null;
- item.GathererName = null;
- item.ModelType = null;
- item.Source = null;
- item.SettlementTime = null;
- SettlementTimeRange = new DateTimeRangeValue();
- }
- catch (Exception ex)
- {
- await _messageBaseRef.ShowMessageBaseAsync($"重置搜索失败,错误:{ex.Translate()}");
- }
- }
- private async Task<GatherDataModel> OnEditAsync(GatherDataModel item)
- {
- try
- {
- _changedType = ItemChangedType.Update;
- _title = "编辑采集数据";
- _currentGatherData = MapHelper.Map<GatherDataModel, GatherDataModel>(item);
- GatherTimeRange.Start = item.GatherTime.StartTime.Value;
- GatherTimeRange.End = item.GatherTime.EndTime.Value;
- StateHasChanged();
- await _createOrEditModal.Show();
- return item;
- }
- catch (Exception ex)
- {
- await _messageBaseRef.ShowMessageBaseAsync($"编辑采集分类失败,错误:{ex.Translate()}");
- return item;
- }
- }
- private async Task<GatherDataModel> OnAddAsync()
- {
- try
- {
- _changedType = ItemChangedType.Add;
- _title = "新建采集分类";
- _currentGatherData = new GatherDataModel();
- GatherTimeRange = new DateTimeRangeValue();
- StateHasChanged();
- await _createOrEditModal.Show();
- }
- catch (Exception ex)
- {
- await _messageBaseRef.ShowMessageBaseAsync($"新建采集分类失败,错误:{ex.Translate()}");
- }
- return new GatherDataModel();
- }
- private async Task OnCloseAsync()
- {
- await _createOrEditModal.Close();
- return;
- }
- private async void OnConfirmAsync()
- {
- try
- {
- await LoadingManager.OpenAsync();
- if (GatherTimeRange.Start != DateTime.MinValue)
- {
- _currentGatherData.GatherTime.StartTime = GatherTimeRange.Start;
- _currentGatherData.GatherTime.EndTime = GatherTimeRange.End;
- }
- if (_currentGatherData.OrganizationId == 0)
- {
- await _messageBaseRef.ShowMessageBaseAsync("请选择组织!");
- return;
- }
- if (_currentGatherData.CategoryId == 0)
- {
- await _messageBaseRef.ShowMessageBaseAsync("请选择采集大类!");
- return;
- }
- if (_currentGatherData.GathererId == 0)
- {
- await _messageBaseRef.ShowMessageBaseAsync("请选择采集人员!");
- return;
- }
- if (string.IsNullOrEmpty(_currentGatherData.ModelType))
- {
- await _messageBaseRef.ShowMessageBaseAsync("请输入机型!");
- return;
- }
- if (string.IsNullOrEmpty(_currentGatherData.Source))
- {
- await _messageBaseRef.ShowMessageBaseAsync("请输入机型!");
- return;
- }
- if (_currentGatherData.CollectionQuantity == null || _currentGatherData.CollectionQuantity <= 0)
- {
- await _messageBaseRef.ShowMessageBaseAsync("请输入正确的数量!");
- return;
- }
- if (_currentGatherData.GatherTime.StartTime == null)
- {
- await _messageBaseRef.ShowMessageBaseAsync("请选择采集开始时间!");
- return;
- }
- if (_currentGatherData.GatherTime.EndTime == null)
- {
- await _messageBaseRef.ShowMessageBaseAsync("请选择采集结束时间!");
- return;
- }
- if (_currentGatherData.SettlementTime == null)
- {
- await _messageBaseRef.ShowMessageBaseAsync("请选择结算时间!");
- return;
- }
- if (_changedType == ItemChangedType.Update)
- {
- var gatherData = await AdminManager.Shared.GetGatherDataByIdAsync(_currentGatherData.Id);
- await AdminManager.Shared.UpdateGatherDataAsync(gatherData.Id,
- new CategoryItem
- {
- Id = _currentGatherData.CategoryId,
- Name = _currentGatherData.CategoryName,
- Type = _currentGatherData.CategoryType,
- },
- new EntityBase
- {
- Id = _currentGatherData.OrganizationId,
- Name = _currentGatherData.OrganizationName,
- },
- new EntityBase
- {
- Id = _currentGatherData.GathererId,
- Name = _currentGatherData.GathererName,
- },
- _currentGatherData.ModelType, _currentGatherData.Source, _currentGatherData.CollectionQuantity.Value, _currentGatherData.GatherTime.StartTime.Value, _currentGatherData.GatherTime.EndTime.Value, _currentGatherData.SettlementTime.Value);
- }
- else if (_changedType == ItemChangedType.Add)
- {
- await AdminManager.Shared.CreateGatherDataAsync(
- new CategoryItem
- {
- Id = _currentGatherData.CategoryId,
- Name = _currentGatherData.CategoryName,
- Type = _currentGatherData.CategoryType,
- },
- new EntityBase
- {
- Id = _currentGatherData.OrganizationId,
- Name = _currentGatherData.OrganizationName,
- },
- new EntityBase
- {
- Id = _currentGatherData.GathererId,
- Name = _currentGatherData.GathererName,
- }, _currentGatherData.ModelType, _currentGatherData.Source, _currentGatherData.CollectionQuantity.Value, _currentGatherData.GatherTime.StartTime.Value, _currentGatherData.GatherTime.EndTime.Value, _currentGatherData.SettlementTime.Value);
- }
- StateHasChanged();
- await _createOrEditModal.Close();
- await GatherDataTable.QueryAsync();
- }
- catch (Exception ex)
- {
- await _messageBaseRef.ShowMessageBaseAsync($"保存失败,错误:{ex.Translate()}");
- }
- finally
- {
- await LoadingManager.CloseAsync();
- }
- }
- }
- }
|