123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364 |
- using DevExpress.XtraEditors;
- using DevExpress.XtraScheduler;
- using DxHelper;
- using ExtensionsDev;
- using System;
- using System.Collections.Generic;
- using System.Diagnostics;
- using System.Linq;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using DW5S.App.CorTools;
- using DW5S.DTO;
- using DW5S.Entity;
- using DW5S.Repostory;
- namespace DW5S.App.UserControl
- {
- public partial class CtrlXl : DevExpress.XtraEditors.XtraUserControl
- {
- List<XlInfo> list = new List<XlInfo>();
- int maxCount = 0;
- int maxPage = 0;
- int currentPage = 1;
- int? satCode = null;
- public CtrlXl()
- {
- InitializeComponent();
- this.layoutControl1.UseDefault();
- btnOpen.UseChooseFile().UseDoubleClickToSelectAll();
- var sat = XlRepository.GetAllSat().Result;
- txtSat.UseDefault("不限制", true).SetData(sat, nameof(SatInfo.Sat));
- }
- private async void TxtSat_EditValueChanged(object sender, EventArgs e)
- {
- var sat = txtSat.EditValue as SatInfo;
- satCode = sat?.SatCode;
- this.maxCount = await XlRepository.GetCount(satCode);
- var countPerPage = Convert.ToInt32(txtCountPerPage.Text);
- this.maxPage = maxCount / countPerPage;
- if (maxCount % countPerPage != 0)
- maxPage++;
- currentPage = 1;
- dataNavigator1.TextStringFormat = $"第{1}页/共{maxPage}页";
- await LoadPageData(1);
- }
- private async void CtrlXl_Load(object sender, EventArgs e)
- {
- gridXl.UseDefault(list).UseRowNumber().UseDeleteAsync<XlInfo>(Del)
- .UseClearAsync<XlInfo>(Clear).UseExportXlsx()
- .AddMenu("星历推算", SvgHelper.LoadFromFile("Image\\XlCalc.svg"), () =>
- {
- var ids = gridView1.GetSelectedRows();
- if (ids.Length <= 0)
- {
- XtraMessageBox.Show("请选择需要星历推算的数据信息!");
- return;
- }
- var item = gridView1.GetRow(ids[0]) as XlInfo;
- XlCalculateForm form = new XlCalculateForm(item.TwoLine);
- form.ShowDialog();
- })
- .AddMenu("刷新数据", SvgHelper.CreateRefresh(), async () =>
- {
- currentPage = 1;
- dataNavigator1.Buttons.First.Enabled = false;
- dataNavigator1.Buttons.PrevPage.Enabled = false;
- dataNavigator1.Buttons.Last.Enabled = true;
- dataNavigator1.Buttons.NextPage.Enabled = true;
- dataNavigator1.TextStringFormat = $"第{currentPage}页/共{maxPage}页";
- await LoadPageData(currentPage);
- });
- await LoadData(1);
- dataNavigator1.TextStringFormat = $"第{currentPage}页/共{maxPage}页";
- dataNavigator1.DataSource = list;
- dataNavigator1.Buttons.First.Enabled = false;
- dataNavigator1.Buttons.PrevPage.Enabled = false;
- }
- public async Task LoadData(int currentPage)
- {
- try
- {
- this.maxCount = await XlRepository.GetCount(satCode);
- var countPerPage = Convert.ToInt32(txtCountPerPage.Text);
- this.maxPage = maxCount / countPerPage;
- if (maxCount % countPerPage != 0)
- maxPage++;
- await LoadPageData(1);
- }
- catch (Exception ex)
- {
- await LogHelper.Error("加载星历信息异常", ex);
- DxHelper.MsgBoxHelper.ShowError("加载星历信息异常");
- }
- }
- private async Task LoadPageData(int currentPage)
- {
- var dtResult = await XlRepository.GetPageAsync(currentPage, Convert.ToInt32(txtCountPerPage.Text), satCode);
- list.Clear();
- list.AddRange(dtResult);
- gridView1.RefreshData();
- if (maxPage == 1)
- {
- dataNavigator1.Buttons.First.Enabled = false;
- dataNavigator1.Buttons.PrevPage.Enabled = false;
- dataNavigator1.Buttons.Last.Enabled = false;
- dataNavigator1.Buttons.NextPage.Enabled = false;
- }
- }
- private async void btnImp_Click(object sender, EventArgs e)
- {
- this.layoutControl1.Enabled = false;
- if (string.IsNullOrEmpty(btnOpen.Text))
- {
- DW5S.Framework.LogHelper.Warning($"请选择星历文件");
- DxHelper.MsgBoxHelper.ShowInfo($"请选择星历文件");
- this.layoutControl1.Enabled = true;
- return;
- }
- string file;
- try
- {
- file = await HttpHelper.UploadFileAsync(btnOpen.Text, SysConfig.GetBaseUrl());
- }
- catch (Exception ex)
- {
- layoutControl1.Enabled = true;
- DW5S.Framework.LogHelper.Error(ex.Message, ex);
- DxHelper.MsgBoxHelper.ShowError(ex.Message);
- return;
- }
- try
- {
- XlImportDto dto = new XlImportDto() { File = file };
- var result = await HttpHelper.PostRequestAsync<RecordRes>(SysConfig.GetUrl("Xl/ImportTleAsync"), dto);
- if (result.code == 200)
- {
- DxHelper.MsgBoxHelper.ShowInfo($"星历导入成功.共导入{result.data.Count}条");
- await LoadData(1);
- }
- else
- {
- DW5S.Framework.LogHelper.Error(result.msg);
- DxHelper.MsgBoxHelper.ShowError($"星历导入失败,{result.msg}!");
- }
- }
- catch (TaskCanceledException)
- {
- DW5S.Framework.LogHelper.Warning($"星历导入超时");
- DxHelper.MsgBoxHelper.ShowInfo($"星历导入超时");
- return;
- }
- catch (Exception ex)
- {
- DW5S.Framework.LogHelper.Error("星历导入异常", ex);
- }
- this.layoutControl1.Enabled = true;
- }
- private async Task<bool> Del(List<XlInfo> list)
- {
- try
- {
- this.Enabled = false;
- var ids = list.Select(p => p.ID);
- using (RHDWContext db = new RHDWContext())
- {
- var delItems = await db.XlInfos.Where(p => ids.Contains(p.ID)).ToListAsync();
- db.XlInfos.RemoveRange(delItems);
- await db.SaveChangesAsync();
- }
- await LoadData(1);
- return true;
- }
- catch (Exception ex)
- {
- DW5S.Framework.LogHelper.Error("删除选中的星历时异常", ex);
- DxHelper.MsgBoxHelper.ShowError("删除选中的星历时异常");
- return false;
- }
- finally
- {
- this.Enabled = true;
- }
- }
- private async Task<bool> Clear(List<XlInfo> list)
- {
- try
- {
- this.Enabled = false;
- using (RHDWContext db = new RHDWContext())
- {
- if (satCode == null)
- {
- db.XlInfos.RemoveRange(db.XlInfos);
- }
- else
- {
- db.XlInfos.RemoveRange(db.XlInfos.Where(p => p.SatCode == satCode.Value));
- }
- await db.SaveChangesAsync();
- }
- await LoadData(1);
- return true;
- }
- catch (Exception ex)
- {
- DW5S.Framework.LogHelper.Error("清空星历时异常", ex);
- DxHelper.MsgBoxHelper.ShowError("清空星历时异常");
- return false;
- }
- finally
- {
- this.Enabled = true;
- }
- }
- private async void dataNavigator1_ButtonClick(object sender, NavigatorButtonClickEventArgs e)
- {
- if (e.Button.ButtonType == NavigatorButtonType.First)
- {
- currentPage = 1;
- dataNavigator1.Buttons.First.Enabled = false;
- dataNavigator1.Buttons.PrevPage.Enabled = false;
- dataNavigator1.Buttons.Last.Enabled = true;
- dataNavigator1.Buttons.NextPage.Enabled = true;
- }
- else if (e.Button.ButtonType == NavigatorButtonType.Last)
- {
- currentPage = maxPage;
- dataNavigator1.Buttons.Last.Enabled = false;
- dataNavigator1.Buttons.NextPage.Enabled = false;
- dataNavigator1.Buttons.First.Enabled = true;
- dataNavigator1.Buttons.PrevPage.Enabled = true;
- }
- else if (e.Button.ButtonType == NavigatorButtonType.NextPage)
- {
- currentPage++;
- dataNavigator1.Buttons.First.Enabled = true;
- dataNavigator1.Buttons.PrevPage.Enabled = true;
- if (currentPage >= maxPage)
- {
- dataNavigator1.Buttons.Last.Enabled = false;
- dataNavigator1.Buttons.NextPage.Enabled = false;
- }
- else
- {
- dataNavigator1.Buttons.Last.Enabled = true;
- dataNavigator1.Buttons.NextPage.Enabled = true;
- }
- }
- else if (e.Button.ButtonType == NavigatorButtonType.PrevPage)
- {
- currentPage--;
- dataNavigator1.Buttons.Last.Enabled = true;
- dataNavigator1.Buttons.NextPage.Enabled = true;
- if (currentPage == 1)
- {
- dataNavigator1.Buttons.First.Enabled = false;
- dataNavigator1.Buttons.PrevPage.Enabled = false;
- }
- }
- await LoadPageData(currentPage);
- dataNavigator1.TextStringFormat = $"第{currentPage}页/共{maxPage}页";
- }
- private async void btnGo_Click(object sender, EventArgs e)
- {
- int.TryParse(txtGoPage.Text, out int _currentPage);
- if (_currentPage > maxPage)
- {
- _currentPage = maxPage;
- }
- if (_currentPage > 0)
- {
- currentPage = _currentPage;
- if (currentPage == 1 && currentPage < maxPage)
- {
- dataNavigator1.Buttons.First.Enabled = false;
- dataNavigator1.Buttons.PrevPage.Enabled = false;
- dataNavigator1.Buttons.Last.Enabled = true;
- dataNavigator1.Buttons.NextPage.Enabled = true;
- }
- else if (currentPage == 1 && currentPage == maxPage)
- {
- dataNavigator1.Buttons.First.Enabled = false;
- dataNavigator1.Buttons.PrevPage.Enabled = false;
- dataNavigator1.Buttons.First.Enabled = false;
- dataNavigator1.Buttons.PrevPage.Enabled = false;
- }
- else if (currentPage == maxPage)
- {
- dataNavigator1.Buttons.First.Enabled = true;
- dataNavigator1.Buttons.PrevPage.Enabled = true;
- dataNavigator1.Buttons.Last.Enabled = false;
- dataNavigator1.Buttons.NextPage.Enabled = false;
- if (dataNavigator1.Position == 0)
- dataNavigator1.Position = 1;
- }
- else
- {
- dataNavigator1.Buttons.First.Enabled = true;
- dataNavigator1.Buttons.PrevPage.Enabled = true;
- dataNavigator1.Buttons.Last.Enabled = true;
- dataNavigator1.Buttons.NextPage.Enabled = true;
- dataNavigator1.Position = 1;
- }
- dataNavigator1.TextStringFormat = $"第{currentPage}页/共{maxPage}页";
- await LoadPageData(currentPage);
- }
- }
- private async void txtCountPerPage_EditValueChanged(object sender, EventArgs e)
- {
- int.TryParse(txtCountPerPage.Text, out int countPerPage);
- if (countPerPage > 0)
- {
- this.maxPage = maxCount / countPerPage;
- if (maxCount % countPerPage != 0)
- maxPage++;
- if (currentPage > maxPage)
- currentPage = maxPage;
- if (currentPage == 1 && currentPage < maxPage)
- {
- dataNavigator1.Buttons.First.Enabled = false;
- dataNavigator1.Buttons.PrevPage.Enabled = false;
- dataNavigator1.Buttons.Last.Enabled = true;
- dataNavigator1.Buttons.NextPage.Enabled = true;
- }
- else if (currentPage == 1 && currentPage == maxPage)
- {
- dataNavigator1.Buttons.First.Enabled = false;
- dataNavigator1.Buttons.PrevPage.Enabled = false;
- dataNavigator1.Buttons.First.Enabled = false;
- dataNavigator1.Buttons.PrevPage.Enabled = false;
- }
- else if (currentPage == maxPage)
- {
- dataNavigator1.Buttons.First.Enabled = true;
- dataNavigator1.Buttons.PrevPage.Enabled = true;
- dataNavigator1.Buttons.Last.Enabled = false;
- dataNavigator1.Buttons.NextPage.Enabled = false;
- }
- else
- {
- dataNavigator1.Buttons.First.Enabled = true;
- dataNavigator1.Buttons.PrevPage.Enabled = true;
- dataNavigator1.Buttons.Last.Enabled = true;
- dataNavigator1.Buttons.NextPage.Enabled = true;
- dataNavigator1.Position = 1;
- }
- dataNavigator1.TextStringFormat = $"第{currentPage}页/共{maxPage}页";
- await LoadPageData(currentPage);
- }
- }
- }
- }
|