| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412 |
- using CommunityToolkit.Mvvm.ComponentModel;
- using ivf_tl_Entity.Entity.Alarm;
- using ivf_tl_Entity.Entity.balance;
- using ivf_tl_Entity.Enums;
- using ivf_tl_Entity.Response;
- using ivf_tl_Manage.Converts;
- using ivf_tl_Manage.Win;
- using ivf_tl_Service.HttpProvider;
- using System;
- using System.Collections.Generic;
- using System.Collections.ObjectModel;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Media.Animation;
- namespace ivf_tl_Manage.ViewModels
- {
- public partial class DishRecordViewModel : BaseViewModel
- {
- public ObservableCollection<TLInfo> TlInfoList { get; set; } = new ObservableCollection<TLInfo>();
- public List<int> HouseList { get; set; } = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
- public int NoMarkTime = 48;
- /// <summary>
- /// 当前页码
- /// </summary>
- [ObservableProperty]
- public int pageCurrent = 1;
- public int PageSize { get; set; } = 9;
- /// <summary>
- /// 查询范围 1: 全部,2:正在培养,3:结束培养
- /// </summary>
- public int SelectedType = 1;
- [ObservableProperty]
- private string currentTitle = "";
- [ObservableProperty]
- private int dataCount = -1;
- [ObservableProperty]
- private ObservableCollection<DishRecordEntity> dishRecordList = new ObservableCollection<DishRecordEntity>();
- public TLInfo CurrentTlInfo = null;
- public int CurrentHouse = -1;
- public string SearchName = null;
- public string SearchTime = null;
- public string CasedId = null;
- public string Cycle = null;
- private DishProvider dishProvider;
- private HouseProvider houseProvider;
- public DishRecordViewModel(string tlsn)
- {
- base.NavName = KeyToStringConvert.GetLanguageStringByKey("0002");
- base.ViewModelName = nameof(DishRecordViewModel);
- CurrentTitle = KeyToStringConvert.GetLanguageStringByKey("0027");
- dishProvider = AppData.Instance.GetDishProvider();
- houseProvider = AppData.Instance.GetHouseProvider();
- TlInfoList = new ObservableCollection<TLInfo>(AppData.Instance.MainWindowViewModel.devManageViewModel.TlInfoList);
- if (!string.IsNullOrEmpty(tlsn)) CurrentTlInfo = TlInfoList.FirstOrDefault(x => x.tlSn == tlsn);
- return;
- }
- public void OpenDishDetail(DishRecordEntity dishRecordEntity)
- {
- try
- {
- var tlinfo = TlInfoList.FirstOrDefault(x => x.tlSn == dishRecordEntity.tlSn);
- if (tlinfo == null)
- {
- //ToastMessageShow($"获取仪器信息失败:{dishRecordEntity.tlSn}");
- ToastMessageShow($"{KeyToStringConvert.GetLanguageStringByKey("0345")}:{dishRecordEntity.tlSn}");
- return;
- }
- var house = tlinfo.houses.FirstOrDefault(x => x.houseSn == dishRecordEntity.houseSn);
- if (house == null)
- {
- //ToastMessageShow($"获取舱室信息失败:{dishRecordEntity.houseSn}");
- ToastMessageShow($"{KeyToStringConvert.GetLanguageStringByKey("0346")}:{dishRecordEntity.houseSn}");
- return;
- }
- //PageCurrent = 1;
- //CurrentHouse = -1;
- //SearchName = null;
- //SelectedType = 1;
- //SearchTime = null;
- //CurrentTlInfo = null;
- var startTime = Convert.ToDateTime(dishRecordEntity.startTime);
- DateTime endTime = DateTime.Now;
- if (dishRecordEntity.state == 1)
- {
- house.IsUpdate = true;
- house.StartTime = startTime.ToString("MM-dd HH:mm");
- var span = endTime.Subtract(startTime);
- if (span.TotalHours > 168) house.FaYuTime = $"168h+";
- else house.FaYuTime = $"{(span.Days * 24) + span.Hours}h:{span.Minutes}m";
- AppData.Instance.MainWindowViewModel.CurrentViewModle = new DetailViewModel(this, tlinfo, house.embryoRecordVO, house, true); ;
- }
- else
- {
- var CurrentTLSettingModel = houseProvider.GetSettingSystemApi(tlinfo.tlSn);
- if (CurrentTLSettingModel != null) NoMarkTime = CurrentTLSettingModel.operableEmbryoTime * 24;
- DateTime.TryParse(dishRecordEntity.endTime, out endTime);
- var newDish = dishProvider.GetDishByIdApi(dishRecordEntity.id);
- house.IsUpdate = false;
- house.StartTime = startTime.ToString("MM-dd HH:mm");
- var span = DateTime.Now.Subtract(endTime);
- if (span.TotalHours > 168) house.FaYuTime = $"168h+";
- else house.FaYuTime = $"{(span.Days * 24) + span.Hours}h:{span.Minutes}m";
- if (span.TotalHours > NoMarkTime)
- {
- AppData.Instance.MainWindowViewModel.CurrentViewModle = new DetailViewModel(this, tlinfo, newDish, house, true) { IsHistory = true, IsCurrentDish = false };
- }
- else
- {
- AppData.Instance.MainWindowViewModel.CurrentViewModle = new DetailViewModel(this, tlinfo, newDish, house, true) { IsHistory = true, IsCurrentDish = true };
- }
- }
- }
- catch (Exception ex)
- {
- ExLog(ex, "OpenDishDetail");
- }
- }
- private int Updata()
- {
- DishRecordList.Clear();
- SearchDishRecordResponse searchAlarmResponse = new SearchDishRecordResponse();
- searchAlarmResponse.current = PageCurrent;
- if (CurrentHouse != -1) searchAlarmResponse.houseSn = CurrentHouse;
- searchAlarmResponse.name = SearchName;
- searchAlarmResponse.selectType = SelectedType;
- searchAlarmResponse.size = PageSize;
- searchAlarmResponse.startTime = SearchTime;
- searchAlarmResponse.caseId = CasedId;
- searchAlarmResponse.cycle = Cycle;
- if (CurrentTlInfo != null) searchAlarmResponse.tlSn = CurrentTlInfo.tlSn;
- var a = dishProvider.SearchDishRecordApi(searchAlarmResponse);
- var k = ((PageCurrent - 1) * PageSize) + 1;
- DateTime startTime = DateTime.Now;
- DateTime endTime = DateTime.Now;
- DateTime createTime = DateTime.Now;
- TimeSpan span = endTime - startTime;
- DateTime currentTime = DateTime.Now;
- foreach (var item in a.records)
- {
- item.num = k++;
- if (item.state == 1)
- {
- item.stateString = KeyToStringConvert.GetLanguageStringByKey("0057");
- }
- else
- {
- item.stateString = KeyToStringConvert.GetLanguageStringByKey("0029");
- }
- DateTime.TryParse(item.createTime, out createTime);
- item.createTimeString = createTime.ToString("MM-dd HH:mm");
- DateTime.TryParse(item.startTime, out startTime);
- item.startTimeString = startTime.ToString("MM-dd HH:mm");
- if (string.IsNullOrEmpty(item.cycle)) item.cycle = "---";
- if (string.IsNullOrEmpty(item.endTime))
- {
- item.endTimeString = "---";
- span = currentTime - startTime;
- }
- else
- {
- if (DateTime.TryParse(item.endTime, out endTime))
- {
- span = endTime - startTime;
- item.endTimeString = endTime.ToString("MM-dd HH:mm");
- }
- else
- {
- span = currentTime - startTime;
- item.endTimeString = item.endTime;
- }
- }
- item.fayuTime = $"{(span.Days * 24) + span.Hours}h:{span.Minutes}m";
- DishRecordList.Add(item);
- }
- //MessageBoxShow("提示", "查询超时,请稍后重试");
- if (!a.IsSuccess) MessageBoxShow(KeyToStringConvert.GetLanguageStringByKey("0304"), KeyToStringConvert.GetLanguageStringByKey("0347"));
- return a.total;
- }
- public List<DishRecordEntity> GetAllDishRecord()
- {
- SearchDishRecordResponse searchAlarmResponse = new SearchDishRecordResponse();
- searchAlarmResponse.current = 1;
- searchAlarmResponse.houseSn = null;
- searchAlarmResponse.name = null;
- searchAlarmResponse.selectType = 1;
- searchAlarmResponse.size = 99999;
- searchAlarmResponse.startTime = null;
- searchAlarmResponse.caseId = null;
- searchAlarmResponse.cycle = null;
- searchAlarmResponse.tlSn = null;
- var a = dishProvider.SearchDishRecordApi(searchAlarmResponse);
- return a.records;
- }
- public void UpdataCount()
- {
- SearchDishRecordResponse searchAlarmResponse = new SearchDishRecordResponse();
- searchAlarmResponse.current = PageCurrent;
- if (CurrentHouse != -1) searchAlarmResponse.houseSn = CurrentHouse;
- searchAlarmResponse.name = SearchName;
- searchAlarmResponse.selectType = SelectedType;
- searchAlarmResponse.size = PageSize;
- searchAlarmResponse.startTime = SearchTime;
- searchAlarmResponse.caseId = CasedId;
- searchAlarmResponse.cycle = Cycle;
- if (CurrentTlInfo != null) searchAlarmResponse.tlSn = CurrentTlInfo.tlSn;
- var a = dishProvider.SearchDishRecordNumApi(searchAlarmResponse);
- DataCount = -1;
- switch (SelectedType)
- {
- case 1:
- DataCount = a.all;
- break;
- case 2:
- DataCount = a.current;
- break;
- case 3:
- DataCount = a.history;
- break;
- }
- if (DataCount == -1) DataCount = 0;
- }
- public void SetPageCurrent(int page)
- {
- PageCurrent = page;
- Updata();
- }
- public void SetSelectedType(string typeString)
- {
- switch (typeString)
- {
- case "1":
- SelectedType = 1;
- CurrentTitle = KeyToStringConvert.GetLanguageStringByKey("0027");
- break;
- case "2":
- SelectedType = 2;
- CurrentTitle = KeyToStringConvert.GetLanguageStringByKey("0028");
- break;
- case "3":
- SelectedType = 3;
- CurrentTitle = KeyToStringConvert.GetLanguageStringByKey("0029");
- break;
- }
- UpdataCount();
- }
- public void SetCurrentTlInfo(TLInfo tLInfo, string name, string newTime)
- {
- if (CurrentTlInfo == tLInfo && SearchName == name && SearchTime == newTime) return;
- SearchName = name;
- SearchTime = newTime;
- CurrentTlInfo = tLInfo;
- UpdataCount();
- }
- public void SetCurrentHouse(int housesn, string name, string newTime)
- {
- if (CurrentHouse == housesn && SearchName == name && SearchTime == newTime) return;
- SearchName = name;
- SearchTime = newTime;
- CurrentHouse = housesn;
- UpdataCount();
- }
- public void SetSearchName(string name)
- {
- if (SearchName == name) return;
- SearchName = name;
- UpdataCount();
- }
- public void SetCaseId(string name)
- {
- if (CasedId == name) return;
- CasedId = name;
- UpdataCount();
- }
- public void SetCycle(string name)
- {
- if (Cycle == name) return;
- Cycle = name;
- UpdataCount();
- }
- public void SetSearchTime(string newTime)
- {
- if (SearchTime == newTime) return;
- SearchTime = newTime;
- UpdataCount();
- }
- public void SetSearchNameAndTime(string name, string newTime)
- {
- if (SearchName == name && SearchTime == newTime) return;
- SearchName = name;
- SearchTime = newTime;
- UpdataCount();
- }
- public void DeletDishRecord(DishRecordEntity delDish)
- {
- try
- {
- //MessageBoxShow("删除", $"确定删除此条名为{delDish.wife}的培养记录吗?") != true
- if (MessageBoxShow(KeyToStringConvert.GetLanguageStringByKey("0043"), KeyToStringConvert.GetLanguageStringByKey("0537")) != true) return;
- string error = dishProvider.DeleteDishRecordApi(delDish.id);
- if (!string.IsNullOrEmpty(error))
- {
- //ToastMessageShow($"操作失败:{error}");
- ToastMessageShow($"{KeyToStringConvert.GetLanguageStringByKey("0286")}:{error}");
- return;
- }
- ToastShow(true);
- UpdataCount();
- }
- catch (Exception ex)
- {
- ExLog(ex, "DeletDishRecord");
- //ToastMessageShow($"操作异常:{ex.Message}");
- ToastMessageShow($"{KeyToStringConvert.GetLanguageStringByKey("0291")}:{ex.Message}");
- }
- }
- public void OpenPdfView(DishRecordEntity dishRecordEntity)
- {
- try
- {
- var tlinfo = TlInfoList.FirstOrDefault(x => x.tlSn == dishRecordEntity.tlSn);
- if (tlinfo == null)
- {
- //ToastMessageShow($"获取仪器信息失败:{dishRecordEntity.tlSn}");
- ToastMessageShow($"{KeyToStringConvert.GetLanguageStringByKey("0345")}:{dishRecordEntity.tlSn}");
- return;
- }
- var house = tlinfo.houses.FirstOrDefault(x => x.houseSn == dishRecordEntity.houseSn);
- if (house == null)
- {
- //ToastMessageShow($"获取舱室信息失败:{dishRecordEntity.houseSn}");
- ToastMessageShow($"{KeyToStringConvert.GetLanguageStringByKey("0571")}:{dishRecordEntity.houseSn}");
- return;
- }
- AppData.Instance.CurrentTlInfo = tlinfo;
- var startTime = Convert.ToDateTime(dishRecordEntity.startTime);
- DateTime endTime = DateTime.Now;
- if (dishRecordEntity.state == 1)
- {
- house.IsUpdate = true;
- house.StartTime = startTime.ToString("MM-dd HH:mm");
- var span = endTime.Subtract(startTime);
- if (span.TotalHours > 168) house.FaYuTime = $"168h+";
- else house.FaYuTime = $"{(span.Days * 24) + span.Hours}h:{span.Minutes}m";
- //DetailViewModel vm = new DetailViewModel(this, tlinfo, house.embryoRecordVO, house, true);
- PdfViewModel vm = new PdfViewModel(this, house.embryoRecordVO, false);
- AppData.Instance.MainWindowViewModel.CurrentViewModle = vm;
- }
- else
- {
- var CurrentTLSettingModel = houseProvider.GetSettingSystemApi(tlinfo.tlSn);
- if (CurrentTLSettingModel != null) NoMarkTime = CurrentTLSettingModel.operableEmbryoTime * 24;
- DateTime.TryParse(dishRecordEntity.endTime, out endTime);
- var newDish = dishProvider.GetDishByIdApi(dishRecordEntity.id);
- house.IsUpdate = false;
- house.StartTime = startTime.ToString("MM-dd HH:mm");
- var span = DateTime.Now.Subtract(endTime);
- if (span.TotalHours > 168) house.FaYuTime = $"168h+";
- else house.FaYuTime = $"{(span.Days * 24) + span.Hours}h:{span.Minutes}m";
- if (span.TotalHours > NoMarkTime)
- {
- //DetailViewModel vm = new DetailViewModel(this, tlinfo, newDish, house, true) { IsHistory = true, IsCurrentDish = false };
- PdfViewModel vm = new PdfViewModel(this, newDish, false);
- AppData.Instance.MainWindowViewModel.CurrentViewModle = vm;
- }
- else
- {
- //DetailViewModel vm = new DetailViewModel(this, tlinfo, newDish, house, true) { IsHistory = true, IsCurrentDish = true };
- PdfViewModel vm = new PdfViewModel(this, newDish, true);
- AppData.Instance.MainWindowViewModel.CurrentViewModle = vm;
- }
- }
- }
- catch (Exception ex)
- {
- ExLog(ex, "OpenDishDetail");
- }
- }
- }
- }
|