using ivf_tl_Entity.DebugEntitys; using ivf_tl_Operate.Converts; using ivf_tl_Operate.ViewModel; using ivf_tl_Operate.Windows; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace ivf_tl_Operate.View { /// /// AutoFocusSettingView.xaml 的交互逻辑 /// public partial class AutoFocusSettingView : UserControl { private AutoFocusSettingViewModel vm = null; public AutoFocusSettingView(AutoFocusSettingViewModel _vm) { InitializeComponent(); vm = _vm; this.DataContext = vm; } private void Return_Click(object sender, RoutedEventArgs e) { SettingPageView settingPageView = new SettingPageView(); AppData.Instance.MainWindow.LoadPage(settingPageView); } private void SettCheck_Click(object sender, RoutedEventArgs e) { string newValueString = this._newValue_TextBox.Text.Trim(); if (string.IsNullOrEmpty(newValueString)) { //new MessagePrompt().ShowCenterOwnerDefeat(AppData.Instance.MainWindow, "请输入数字"); new MessagePrompt().ShowCenterOwnerDefeat(AppData.Instance.MainWindow, KeyToStringConvert.GetLanguageStringByKey("C0259")); return; } // M8-G3-1:批量校验/赋值对焦设置命令入口埋点。 using var _op = Aivfo.OperationLog.OperationLogger.Begin("对焦设置", "批量校验对焦设置"); _op.Input(new { 输入值 = newValueString, 应用对焦次数 = this._newAutoFocus_CheckBox.IsChecked == true, 应用更新对焦起点 = this._updateFocusNumber_CheckBox.IsChecked == true, 应用更新拍照位置 = this._updateClearestNumber_CheckBox.IsChecked == true, 舱室总数 = vm?.HouseInfoList?.Count ?? 0 }); try { if (int.TryParse(newValueString, out int newValue)) { foreach (var item in vm.HouseInfoList) { if (this._newAutoFocus_CheckBox.IsChecked == true) item.NewAutoFocusNumber = newValue; if (this._updateFocusNumber_CheckBox.IsChecked == true) item.NewUpdateFocusNumber = newValue; if (this._updateClearestNumber_CheckBox.IsChecked == true) item.NewUpdateClearestNumber = newValue; } if (this._newAutoFocus_CheckBox.IsChecked == true) this._newAutoFocus_CheckBox.IsChecked = false; if (this._updateFocusNumber_CheckBox.IsChecked == true) this._updateFocusNumber_CheckBox.IsChecked = false; if (this._updateClearestNumber_CheckBox.IsChecked == true) this._updateClearestNumber_CheckBox.IsChecked = false; _op.Success(); } else { //new MessagePrompt().ShowCenterOwnerDefeat(AppData.Instance.MainWindow, "请输入正确的数字"); new MessagePrompt().ShowCenterOwnerDefeat(AppData.Instance.MainWindow, KeyToStringConvert.GetLanguageStringByKey("C0259")); _op.Fail("输入值非法,无法解析为整数:" + newValueString); return; } } catch (Exception ex) { _op.Fail(ex.GetType().Name + ": " + ex.Message); throw; } } private void SaveHouse_Click(object sender, RoutedEventArgs e) { // M8-G3-1:保存对焦设置命令入口埋点。 using var _op = Aivfo.OperationLog.OperationLogger.Begin("对焦设置", "保存对焦设置"); _op.Input(new { 舱室总数 = vm?.HouseInfoList?.Count ?? 0 }); try { bool isUp = false; bool isUpHouse = false; List upList = new List(); foreach (var item in vm.HouseInfoList) { isUpHouse = false; if(item.autoFocus != item.autoFocusNew) { item.autoFocus = item.autoFocusNew; isUpHouse = true; } if (item.NewPhotographPictureNumber.HasValue && item.NewPhotographPictureNumber >=0 && item.NewPhotographPictureNumber != item.photographPictureNumber) { item.photographPictureNumber = item.NewPhotographPictureNumber.Value; item.autoFocus = 1; isUpHouse = true; } if (item.NewAutoFocusNumber.HasValue && item.NewAutoFocusNumber >= 0 && item.NewAutoFocusNumber != item.autoFocusNumber) { item.autoFocusNumber = item.NewAutoFocusNumber.Value; item.autoFocus = 1; isUpHouse = true; } if (item.NewUpdateFocusNumber.HasValue && item.NewUpdateFocusNumber >= 0 && item.NewUpdateFocusNumber != item.updateFocusNumber) { item.updateFocusNumber = item.NewUpdateFocusNumber.Value; item.autoFocus = 1; isUpHouse = true; } if (item.NewUpdateClearestNumber.HasValue && item.NewUpdateClearestNumber >= 0 && item.NewUpdateClearestNumber != item.updateClearestNumber) { item.updateClearestNumber = item.NewUpdateClearestNumber.Value; item.autoFocus = 1; isUpHouse = true; } if (item.updateFocusNumber > item.autoFocusNumber) { _op.Fail($"{item.houseSn}号舱室校验失败:更新对焦起点不能大于对焦次数"); MessageBox.Show($"{item.houseSn}号舱室抠图成功数-更新对焦起点不能大于对焦次数"); return; } if (item.updateClearestNumber > item.autoFocusNumber) { _op.Fail($"{item.houseSn}号舱室校验失败:更新拍照位置不能大于对焦次数"); MessageBox.Show($"{item.houseSn}号舱室抠图成功数-更新拍照位置不能大于对焦次数"); return; } AutoFocusHouseInfoRequest autoFocusHouseInfoRequest = null; if (isUpHouse) { autoFocusHouseInfoRequest = new AutoFocusHouseInfoRequest { photographPictureNumber = item.photographPictureNumber, autoFocusNumber = item.autoFocusNumber, updateFocusNumber = item.updateFocusNumber, updateClearestNumber = item.updateClearestNumber, autoFocus = item.autoFocus, tlSn=item.tlSn, houseSn=item.houseSn, }; upList.Add(autoFocusHouseInfoRequest); } if(item.wellFocusSetting != null && item.wellFocusSetting.Any()) { List wellList = new List(); foreach (var itemWell in item.wellFocusSetting) { isUp = false; if (itemWell.NewFocusStartingPoint.HasValue && itemWell.NewFocusStartingPoint >= 0 && itemWell.NewFocusStartingPoint != itemWell.focusStartingPoint) { itemWell.focusStartingPoint = itemWell.NewFocusStartingPoint.Value; isUp = true; } if (itemWell.NewMoveDownLayer.HasValue && itemWell.NewMoveDownLayer >= 0 && itemWell.NewMoveDownLayer != itemWell.moveDownLayer) { itemWell.moveDownLayer = itemWell.NewMoveDownLayer.Value; isUp = true; } if (itemWell.NewLeftOffset.HasValue && itemWell.NewLeftOffset >= 0 && itemWell.NewLeftOffset != itemWell.leftOffset) { itemWell.leftOffset = itemWell.NewLeftOffset.Value; isUp = true; } if (itemWell.NewBottomOffset.HasValue && itemWell.NewBottomOffset >= 0 && itemWell.NewBottomOffset != itemWell.bottomOffset) { itemWell.bottomOffset = itemWell.NewBottomOffset.Value; isUp = true; } if (isUp) { wellList.Add(itemWell); } } if (wellList.Any()) { if(autoFocusHouseInfoRequest == null) { autoFocusHouseInfoRequest = new AutoFocusHouseInfoRequest { photographPictureNumber = item.photographPictureNumber, autoFocusNumber = item.autoFocusNumber, updateFocusNumber = item.updateFocusNumber, updateClearestNumber = item.updateClearestNumber, autoFocus = item.autoFocus, tlSn = item.tlSn, houseSn = item.houseSn, }; upList.Add(autoFocusHouseInfoRequest); } autoFocusHouseInfoRequest.wellFocusSetting = wellList; } } } if (AppData.Instance.HttpHelper.HouseImmediatelyAPi(upList)) { //new MessagePrompt().ShowCenterOwnerSuccess(AppData.Instance.MainWindow, "保存成功"); new MessagePrompt().ShowCenterOwnerSuccess(AppData.Instance.MainWindow, KeyToStringConvert.GetLanguageStringByKey("C0242")); _op.Success(); } else { //new MessagePrompt().ShowCenterOwnerDefeat(AppData.Instance.MainWindow, "保存失败"); new MessagePrompt().ShowCenterOwnerDefeat(AppData.Instance.MainWindow, KeyToStringConvert.GetLanguageStringByKey("C0243")); _op.Fail("后端下发保存失败:HouseImmediatelyAPi 返回 false"); } } catch (Exception ex) { _op.Fail(ex.GetType().Name + ": " + ex.Message); throw; } } private void TextBox_PreviewTextInput(object sender, TextCompositionEventArgs e) { e.Handled = !Regex.IsMatch(e.Text, @"[0-9]"); } } }