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();
}
}
}