using BBWY.Client.APIServices; using BBWY.Client.APIServices.QiKu; using BBWY.Client.Models; using BBWY.Client.Models.APIModel; using BBWY.Controls; using EnumsNET; using System; using System.Collections.Generic; using System.Linq; using System.Text; 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.Shapes; using WebSocketSharp; namespace BBWY.Client.Views.QualityTask { /// /// AddExceptionWindow.xaml 的交互逻辑 /// public partial class AddExceptionWindow : BWindow { public AddExceptionWindow(PackTaskAbortService packTaskAbortService, long taskId, TaskState abortTaskState, Action taskAbort, List IsCanPackModelList, List shelvesNumberList, List floorNumberList) { InitializeComponent(); this.packTaskAbortService = packTaskAbortService; this.TaskId = taskId; this.DataContext = this; AbortTaskState = abortTaskState; TaskAbort = taskAbort; this.IsCanPackModelList = IsCanPackModelList; ShelvesNumberList = shelvesNumberList; FloorNumberList = floorNumberList; App.Current.Dispatcher.Invoke(() => { IsContinuePackageList = IsCanPackModelList.Select(c => new EnumModel { Index = c.Index, Name = c.Name }).ToList(); if (IsCanPackModelList.Any()) IsContinuePackage = IsContinuePackageList.First().Index; }); } private int isContinuePackage; /// /// 验收异常类型 /// public int IsContinuePackage { get => isContinuePackage; set { Set(ref isContinuePackage, value); OnIsContinuePackageChanged(); } } public void OnIsContinuePackageChanged() { App.Current.Dispatcher.Invoke(() => { TaskExceptionTypeList = IsCanPackModelList.SingleOrDefault(cp => cp.Index == IsContinuePackage)?.TaskExceptionTypeList; }); } private List isContinuePackageList; /// /// 是否可继续包装 /// public List IsContinuePackageList { get => isContinuePackageList; set { Set(ref isContinuePackageList, value); } } List IsCanPackModelList { get; set; } Action TaskAbort { get; set; } /// /// 任务挂起类型 /// public TaskState AbortTaskState { get; set; } PackTaskAbortService packTaskAbortService; private long taskId; /// /// 任务id /// public long TaskId { get => taskId; set { Set(ref taskId, value); } } private int? taskExceptionType; /// /// 验收异常类型 /// public int? TaskExceptionType { get => taskExceptionType; set { Set(ref taskExceptionType, value); } } private List taskExceptionTypeList; /// /// 验收异常类型 /// public List TaskExceptionTypeList { get => taskExceptionTypeList; set { Set(ref taskExceptionTypeList, value); } } private string remarkMsg; /// /// 备注消息 /// public string RemarkMsg { get => remarkMsg; set { Set(ref remarkMsg, value); } } private List floorNumberList = new List { 1, 2, 3, 4 }; /// /// 层数列表 /// public List FloorNumberList { get => floorNumberList; set { Set(ref floorNumberList, value); } } private int floorNumber; /// ///层数 /// public int FloorNumber { get => floorNumber; set { Set(ref floorNumber, value); } } private List shelvesNumberList; /// /// 货架列表 /// public List ShelvesNumberList { get => shelvesNumberList; set { Set(ref shelvesNumberList, value); } } private string shelvesNumber; /// /// 货架 /// public string ShelvesNumber { get => shelvesNumber; set { Set(ref shelvesNumber, value); } } private void BButton_Click(object sender, RoutedEventArgs e) { if (ShelvesNumber.IsNullOrEmpty()|| FloorNumber<=0) { MessageBox.Show("请输入摆放货架位置"); return; } if (RemarkMsg.IsNullOrEmpty()) { MessageBox.Show("请输入具体问题描述."); return; } if (TaskExceptionType==null) { MessageBox.Show("请选择异常类型."); return; } var res = packTaskAbortService.AbortPackTask(TaskId, TaskExceptionType.Value, RemarkMsg, AbortTaskState, ShelvesNumber, FloorNumber); if (res == null || !res.Success) { MessageBox.Show(res?.Msg); return; } TaskAbort?.Invoke(); this.Close(); } } }