You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

210 lines
6.7 KiB
C#

2 months ago
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
2 months ago
using SlnMesnac.RfidUpload.Business;
using SlnMesnac.RfidUpload.Model;
2 months ago
using SlnMesnac.RfidUpload.Model.apiParam;
using SlnMesnac.RfidUpload.UI.TempData;
2 months ago
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
2 months ago
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Threading;
using static SlnMesnac.RfidUpload.UI.SelectRouterWindow;
using static SlnMesnac.RfidUpload.UI.viewModel.containerStorageQueryByCsbViewModel;
2 months ago
#region << 版 本 注 释 >>
/*--------------------------------------------------------------------
* (c) 2024 WenJY
* CLR4.0.30319.42000
* T14-GEN3-7895
* SlnMesnac.RfidUpload.UI.viewModel
* a65ccfd9-c493-46c4-9905-7a7d55ef1508
*
* WenJY
*
* 2024-12-06 16:31:16
* V1.0.0
*
*
*--------------------------------------------------------------------
*
*
*
*
* V1.0.0
*--------------------------------------------------------------------*/
#endregion << 版 本 注 释 >>
namespace SlnMesnac.RfidUpload.UI.viewModel
{
public partial class containerStorageQueryByCsbViewModel : ObservableObject
{
private SysData sysData = SysData.Instance;
2 months ago
private readonly Window _window;
#region 委托事件
/// <summary>
/// model-新容器入库-调拨单号验证状态成功1失败-1
/// model-容器封发-验证封发计划接口状态成功2失败-1
/// dbdh-调拨单号
/// status- 1-正常
/// </summary>
/// <param name="status"></param>
/// <param name="dbdh"></param>
public delegate void RefreshSubmitVerifyDelegate(int model,string msg, TransferOrderInfo transferOrderInfo = null, Institution institution = null);
2 months ago
public static event RefreshSubmitVerifyDelegate RefreshSubmitVerifyEvent;
public delegate void RefreshTrackNo(string trackNo);
public static event RefreshTrackNo RefreshTrackNoEvent;
2 months ago
#endregion
public containerStorageQueryByCsbViewModel(Window window)
{
_window = window;
RefreshItems();
}
private void RefreshItems()
{
TrackNoItems.Clear();
sysData.trackNoList = sysData.trackNoList.OrderByDescending(x => x.time).ToList();
Dispatcher.CurrentDispatcher.BeginInvoke(() =>
{
sysData.trackNoList.ForEach(x => TrackNoItems.Add(x));
});
}
private ObservableCollection<newContainerInCheckData> _trackNoItems = new ObservableCollection<newContainerInCheckData>();
public ObservableCollection<newContainerInCheckData> TrackNoItems
{
get => _trackNoItems;
set => SetProperty(ref _trackNoItems, value);
2 months ago
}
2 months ago
private CsbHandleBusiness csbHandleBusiness = CsbHandleBusiness.Instance;
public string _dbbh = string.Empty;
public string dbbh
{
get => _dbbh;
set => SetProperty(ref _dbbh, value);
}
public string _rqtmStart = string.Empty;
public string rqtmStart
{
get => _rqtmStart;
set => SetProperty(ref _rqtmStart, value);
}
private string _rqtmEnd = string.Empty;
public string rqtmEnd
{
get => _rqtmEnd;
set
{
_rqtmEnd = value;
OnPropertyChanged(nameof(_rqtmEnd));
}
}
2 months ago
[RelayCommand]
private void Submit()
{
Check(_dbbh, _rqtmStart, _rqtmEnd);
}
2 months ago
/// <summary>
/// 新容器入库-调拨单号验证
/// </summary>
/// <param name="dbbh"></param>
/// <param name="rqtmStart"></param>
/// <param name="rqtmEnd"></param>
private void Check(string dbbh,string rqtmStart, string rqtmEnd)
{
try
2 months ago
{
CsbResult res = csbHandleBusiness.containerStorageQueryByCsb(dbbh,rqtmStart,rqtmEnd);
2 months ago
if (res.IsSuccess)
{
JObject job = JObject.Parse(res.body);
string str = job["retBody"]?["object"]?.ToString();
if (!string.IsNullOrEmpty(str))
{
TrackResult trackResult = JsonConvert.DeserializeObject<TrackResult>(str);
MessageBox.Show($"传递trackNo" + trackResult.trackNo);
RefreshTrackNoEvent?.Invoke(trackResult.trackNo);
if (sysData.trackNoList.FirstOrDefault(x => x.trackNo == trackResult.trackNo) == null)
{
sysData.trackNoList.Add(new newContainerInCheckData() { dbdh = _dbbh, trackNo = trackResult.trackNo, rqtmStart = _rqtmStart, rqtmEnd = _rqtmEnd, time = DateTime.Now });
}
RefreshItems();
}
MessageBox.Show($"新容器入库-调拨单号验证通过");
TransferOrderInfo transferOrderInfo = new TransferOrderInfo()
{
dbdh = _dbbh,
};
RefreshSubmitVerifyEvent?.Invoke(1, res.GetMsg(), transferOrderInfo);
_window.Close();
}
else
{
2 months ago
MessageBox.Show($"新容器入库-调拨单号验证失败,status:{res.status()};msg:{res.GetMsg()};");
}
2 months ago
}catch (Exception ex)
2 months ago
{
MessageBox.Show("新容器入库-调拨单号验证异常:" + ex.Message);
2 months ago
}
}
/// <summary>
/// 执行分发 容器封发-验证封发计划
/// </summary>
/// <param name="transferOrderInfo"></param>
[RelayCommand]
private void Execute(newContainerInCheckData newContainerInCheck)
{
Check(newContainerInCheck.dbdh, newContainerInCheck.rqtmStart, newContainerInCheck.rqtmEnd);
}
public class TrackResult
{
public String trackNo { get; set; }
public List<rqtmSerialDto> rqtmSerialList { get; set; }
}
public class rqtmSerialDto
{
public String rqzlmc { get; set; }
public String rqxhmc { get; set; }
public String rqtmStart { get; set; }
public String rqtmEnd { get; set; }
2 months ago
}
2 months ago
}
}