取消任务功能 + 查询同步任务状态后台线程
This commit is contained in:
@ -7,12 +7,84 @@ using WCS.BLL.DbModels;
|
|||||||
using WCS.BLL.Tool;
|
using WCS.BLL.Tool;
|
||||||
using WCS.DAL.Db;
|
using WCS.DAL.Db;
|
||||||
using WCS.DAL.DbModels;
|
using WCS.DAL.DbModels;
|
||||||
|
using WCS.Model;
|
||||||
|
using WCS.Model.ApiModel.AGV;
|
||||||
|
using WCS.Model.ApiModel.InOutRecord;
|
||||||
|
using WCS.Model.ApiModel.MXBackgroundThread;
|
||||||
|
|
||||||
namespace WCS.BLL.Manager
|
namespace WCS.BLL.Manager
|
||||||
{
|
{
|
||||||
//AGV动作相关
|
//AGV动作相关
|
||||||
public static class AGVManager
|
public static class AGVManager
|
||||||
{
|
{
|
||||||
|
public static void InitBackgroundThread()
|
||||||
|
{
|
||||||
|
#region 定时任务:定时查询任务状态
|
||||||
|
Task.Run(() =>
|
||||||
|
{
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
//每5秒同步一次
|
||||||
|
Thread.Sleep(5000);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var url = @"http://192.168.18.150:8181/rcms/services/rest/hikRpcService/queryTaskStatus";
|
||||||
|
|
||||||
|
var tasks = DbHelp.db.Queryable<AgvTask>()
|
||||||
|
.Where(t => t.CreateTime > DateTime.Now.AddDays(-7)) //只查询7天内agv任务数据
|
||||||
|
.Where(t =>t.TaskStatus != TaskStatusEnum.取消完成 && t.TaskStatus!= TaskStatusEnum.已结束)
|
||||||
|
.OrderBy(t => t.Id)
|
||||||
|
.ToList();
|
||||||
|
if (tasks != null && tasks.Count > 0)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < tasks.Count; i++)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
//请求RCS获取任务状态
|
||||||
|
var data = new AGVQueryTaskStatusRequest();
|
||||||
|
data.taskCodes.Add(tasks[i].TaskCode);
|
||||||
|
|
||||||
|
var result = ApiHelp.GetDataFromHttp<AGVQueryTaskStatusResponse>(url, data, "POST", true);
|
||||||
|
if (result != null && result.code == "0" && result.data !=null && result.data.Count > 0)
|
||||||
|
{
|
||||||
|
var isUpdate = false;
|
||||||
|
//获取成功 是否与当前任务状态一致 如果不一致 进行更新
|
||||||
|
var responseData = result.data.First();
|
||||||
|
if (responseData.agvCode != tasks[i].AgvCode)
|
||||||
|
{
|
||||||
|
isUpdate = true;
|
||||||
|
tasks[i].AgvCode = responseData.agvCode;
|
||||||
|
}
|
||||||
|
if (responseData.taskStatus != tasks[i].TaskStatus.ToString())
|
||||||
|
{
|
||||||
|
Enum.TryParse<TaskStatusEnum>(responseData.taskStatus, out TaskStatusEnum status);
|
||||||
|
isUpdate = true;
|
||||||
|
tasks[i].TaskStatus = status;
|
||||||
|
}
|
||||||
|
if (isUpdate)
|
||||||
|
{
|
||||||
|
DbHelp.db.Updateable(tasks[i]).ExecuteCommand();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Logs.Write("【定时任务】获取任务状态异常:" + ex.Message);
|
||||||
|
}
|
||||||
|
Thread.Sleep(50);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Logs.Write("【定时任务】获取任务状态异常:" + ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
|
||||||
public static object lockFlag = new object();
|
public static object lockFlag = new object();
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 产生AGV点到点搬运任务
|
/// 产生AGV点到点搬运任务
|
||||||
@ -36,7 +108,7 @@ namespace WCS.BLL.Manager
|
|||||||
//任务只允许一个一个发送
|
//任务只允许一个一个发送
|
||||||
lock (lockFlag)
|
lock (lockFlag)
|
||||||
{
|
{
|
||||||
var body = new AGVRequestModel()
|
var body = new GenAgvSchedulingTaskRequest()
|
||||||
{
|
{
|
||||||
positionCodePath = positionCodePathItems,
|
positionCodePath = positionCodePathItems,
|
||||||
};
|
};
|
||||||
@ -63,6 +135,38 @@ namespace WCS.BLL.Manager
|
|||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
public static AGVResponseModel CancelTask(AgvTask agvTask)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var url = @"http://192.168.18.150:8181/rcms/services/rest/hikRpcService/cancelTask";
|
||||||
|
|
||||||
|
//任务只允许一个一个发送
|
||||||
|
lock (lockFlag)
|
||||||
|
{
|
||||||
|
var body = new AGVCancelTaskRequest()
|
||||||
|
{
|
||||||
|
taskCode = agvTask.TaskCode,
|
||||||
|
};
|
||||||
|
|
||||||
|
var response = ApiHelp.GetDataFromHttp<AGVResponseModel>(url, body, "POST", true);
|
||||||
|
if (response.code == "0" && response.message == "成功")
|
||||||
|
{
|
||||||
|
agvTask.TaskStatus = Model.ApiModel.AGV.TaskStatusEnum.取消完成;
|
||||||
|
DbHelp.db.Updateable(agvTask).ExecuteCommand();
|
||||||
|
}
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
return new AGVResponseModel()
|
||||||
|
{
|
||||||
|
code = "-1",
|
||||||
|
message = $"发生异常:{ex.Message}"
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ namespace WCS.BLL.Manager
|
|||||||
public string type { get; set; } = "00";
|
public string type { get; set; } = "00";
|
||||||
}
|
}
|
||||||
|
|
||||||
public class AGVRequestModel
|
public class GenAgvSchedulingTaskRequest
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 请求码 每一次请求唯一
|
/// 请求码 每一次请求唯一
|
32
WCS.Model/ApiModel/AGV/AGVCancelTaskRequest.cs
Normal file
32
WCS.Model/ApiModel/AGV/AGVCancelTaskRequest.cs
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace WCS.Model.ApiModel.AGV
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 取消任务
|
||||||
|
/// </summary>
|
||||||
|
public class AGVCancelTaskRequest
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 请求码 每一次请求唯一
|
||||||
|
/// </summary>
|
||||||
|
public string reqCode { get; set; } = Guid.NewGuid().ToString().Replace("-", "");
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 请求时间
|
||||||
|
/// </summary>
|
||||||
|
public string reqTime { get; set; } = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 客户端编号
|
||||||
|
/// </summary>
|
||||||
|
public string clientCode { get; set; } = "PDA";
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 任务单号
|
||||||
|
/// </summary>
|
||||||
|
public string taskCode { get; set; }
|
||||||
|
}
|
||||||
|
}
|
25
WCS.Model/ApiModel/AGV/AGVQueryTaskStatusRequest.cs
Normal file
25
WCS.Model/ApiModel/AGV/AGVQueryTaskStatusRequest.cs
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace WCS.Model.ApiModel.AGV
|
||||||
|
{
|
||||||
|
//AGV获取任务状态
|
||||||
|
public class AGVQueryTaskStatusRequest
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 请求码 每一次请求唯一
|
||||||
|
/// </summary>
|
||||||
|
public string reqCode { get; set; } = Guid.NewGuid().ToString().Replace("-", "");
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 请求时间
|
||||||
|
/// </summary>
|
||||||
|
public string reqTime { get; set; } = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 任务编码数组
|
||||||
|
/// </summary>
|
||||||
|
public List<string> taskCodes = new List<string>();
|
||||||
|
}
|
||||||
|
}
|
56
WCS.Model/ApiModel/AGV/AGVQueryTaskStatusResponse.cs
Normal file
56
WCS.Model/ApiModel/AGV/AGVQueryTaskStatusResponse.cs
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace WCS.Model.ApiModel.AGV
|
||||||
|
{
|
||||||
|
//如果好用,请收藏地址,帮忙分享。
|
||||||
|
public class AGVQueryTaskStatusResponseData
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
public string agvCode { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
public string taskCode { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
public string taskStatus { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 任务类型
|
||||||
|
/// </summary>
|
||||||
|
public string taskTyp { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class AGVQueryTaskStatusResponse
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
public string code { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
public List<AGVQueryTaskStatusResponseData> data { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
public string interrupt { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 成功
|
||||||
|
/// </summary>
|
||||||
|
public string message { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
public string msgErrCode { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
public string reqCode { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
16
WCS.Model/ApiModel/AGV/CancelAGVTasksRequest.cs
Normal file
16
WCS.Model/ApiModel/AGV/CancelAGVTasksRequest.cs
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace WCS.Model.ApiModel.AGV
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 取消任务
|
||||||
|
/// </summary>
|
||||||
|
public class CancelAGVTasksRequest : RequestBase
|
||||||
|
{
|
||||||
|
public int TaskId { get; set; } = 0;
|
||||||
|
|
||||||
|
public string TaskCode { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@ -32,7 +32,7 @@ namespace WCS.WebApi.Controllers
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// agv任务回调
|
/// 获取AGV任务列表
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="request"></param>
|
/// <param name="request"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
@ -51,6 +51,7 @@ namespace WCS.WebApi.Controllers
|
|||||||
|
|
||||||
var totalCount = await recordsQueryable.CountAsync();
|
var totalCount = await recordsQueryable.CountAsync();
|
||||||
var records = await recordsQueryable
|
var records = await recordsQueryable
|
||||||
|
.OrderByDescending(t => t.CreateTime)
|
||||||
.Skip((request.PageNumber - 1) * request.PageSize).Take(request.PageSize)
|
.Skip((request.PageNumber - 1) * request.PageSize).Take(request.PageSize)
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
//生成序号
|
//生成序号
|
||||||
@ -81,5 +82,78 @@ namespace WCS.WebApi.Controllers
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 取消任务
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="request"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[Route("cancelAGVTask")]
|
||||||
|
[HttpPost(Name = "cancelAGVTask")]
|
||||||
|
public async Task<ResponseBase> cancelAGVTask(CancelAGVTasksRequest request)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
#region 参数、数据校验
|
||||||
|
if (request.TaskId == 0 || string.IsNullOrEmpty(request.TaskCode))
|
||||||
|
{
|
||||||
|
return new ResponseCommon()
|
||||||
|
{
|
||||||
|
Code = 201,
|
||||||
|
Message = $"传入参数错误!",
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
var agvTask = await DbHelp.db.Queryable<AgvTask>()
|
||||||
|
.Where(t => t.Id == request.TaskId)
|
||||||
|
.Where(t => t.TaskCode == request.TaskCode)
|
||||||
|
.FirstAsync();
|
||||||
|
if (agvTask == null)
|
||||||
|
{
|
||||||
|
return new ResponseCommon()
|
||||||
|
{
|
||||||
|
Code = 201,
|
||||||
|
Message = $"任务[{agvTask.TaskCode}]不存在!",
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
if (agvTask.TaskStatus != TaskStatusEnum.正在执行)
|
||||||
|
{
|
||||||
|
return new ResponseCommon()
|
||||||
|
{
|
||||||
|
Code = 201,
|
||||||
|
Message = $"任务[{agvTask.TaskCode}]状态为【{agvTask.TaskStatus}】,无法取消!",
|
||||||
|
};
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region 调用RCS进行取消任务
|
||||||
|
var response = AGVManager.CancelTask(agvTask);
|
||||||
|
if (response.code == "0" && response.message == "成功")
|
||||||
|
{
|
||||||
|
return new ResponseCommon()
|
||||||
|
{
|
||||||
|
Code = 200,
|
||||||
|
Message = $"success",
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return new ResponseCommon()
|
||||||
|
{
|
||||||
|
Code = 201,
|
||||||
|
Message = response.message,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
return new ResponseCommon()
|
||||||
|
{
|
||||||
|
Code = 300,
|
||||||
|
Message = $"任务取消失败:{ex.Message}",
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -33,13 +33,16 @@ namespace WebApi
|
|||||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ط<EFBFBD><D8B7>߳<EFBFBD>
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ط<EFBFBD><D8B7>߳<EFBFBD>
|
||||||
WarningManager.StartWarningMessageThread();
|
WarningManager.StartWarningMessageThread();
|
||||||
|
|
||||||
//<2F><>Ѷ<EFBFBD><EFBFBD>˾<EFBFBD><EFBFBD>̨<EFBFBD>߳<EFBFBD>
|
//<2F><><EFBFBD>ع<EFBFBD>˾AGV<EFBFBD><EFBFBD>̨<EFBFBD>߳<EFBFBD>
|
||||||
if (LocalFile.Config.IsMx)
|
AGVManager.InitBackgroundThread();
|
||||||
{
|
|
||||||
MXBackgroundThread.InitBackgroundThread();
|
////<2F><>Ѷ<EFBFBD><D1B6>˾<EFBFBD><CBBE>̨<EFBFBD>߳<EFBFBD>
|
||||||
var str = string.Empty;
|
//if (LocalFile.Config.IsMx)
|
||||||
MXBackgroundThread.SendDingDingMsg($"<22><>{LocalFile.Config.GroupName}<7D><><EFBFBD><EFBFBD>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>", new List<string> { "104379" }, ref str);
|
//{
|
||||||
}
|
// MXBackgroundThread.InitBackgroundThread();
|
||||||
|
// var str = string.Empty;
|
||||||
|
// MXBackgroundThread.SendDingDingMsg($"<22><>{LocalFile.Config.GroupName}<7D><><EFBFBD><EFBFBD>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>", new List<string> { "104379" }, ref str);
|
||||||
|
//}
|
||||||
|
|
||||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD>ı<EFBFBD><C4B1><EFBFBD>־
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD>ı<EFBFBD><C4B1><EFBFBD>־
|
||||||
Task.Run(async () =>
|
Task.Run(async () =>
|
||||||
|
@ -196,9 +196,6 @@ namespace 智慧物流软件系统.ViewModel
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 物料删除操作
|
|
||||||
/// </summary>
|
|
||||||
public ICommand BtnCommitCommand { get => new DelegateCommand(BtnCommit); }
|
public ICommand BtnCommitCommand { get => new DelegateCommand(BtnCommit); }
|
||||||
public async void BtnCommit()
|
public async void BtnCommit()
|
||||||
{
|
{
|
||||||
@ -238,54 +235,14 @@ namespace 智慧物流软件系统.ViewModel
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 物料修改操作
|
|
||||||
/// </summary>
|
|
||||||
public ICommand BtnEditCommand { get => new DelegateCommand(BtnEdit); }
|
|
||||||
public async void BtnEdit()
|
|
||||||
{
|
|
||||||
////查询勾选的第一个数据
|
|
||||||
//var matDetailStocktakingInfo = DataGridItemSource?.Where(t => t.IsSelected == true).FirstOrDefault();
|
|
||||||
//if (matDetailStocktakingInfo == null)
|
|
||||||
//{
|
|
||||||
// Growl.Warning("请选择需要修改的数据!");
|
|
||||||
// return;
|
|
||||||
//}
|
|
||||||
//else
|
|
||||||
//{
|
|
||||||
// var updateView = new MatDetailStocktakingInfoUpdateView("修改盘点数据", matDetailStocktakingInfo);
|
|
||||||
// updateView.ShowDialog();
|
|
||||||
// if (updateView.DialogResult == true)
|
|
||||||
// {
|
|
||||||
// matDetailStocktakingInfo = updateView.matDetailStocktakingInfo;
|
|
||||||
// var body = new UpdateStocktakingInfoRequest()
|
|
||||||
// {
|
|
||||||
// MatDetailStocktakingInfoId = matDetailStocktakingInfo.Id,
|
|
||||||
// StocktakingQty = matDetailStocktakingInfo.StocktakingQty,
|
|
||||||
// UserName = LocalStatic.CurrentUser,
|
|
||||||
// DeviceType = LocalFile.Config.DeviceType,
|
|
||||||
// };
|
|
||||||
// var Result = ApiHelp.GetDataFromHttp<ResponseBase<object>>(LocalFile.Config.ApiIpHost + "PDAStocktaking/updateStocktakingInfos", body, "POST");
|
|
||||||
// if (Result != null && Result.Code == 200)
|
|
||||||
// {
|
|
||||||
// CurrentPage = 1;
|
|
||||||
// Growl.Success("修改成功!");
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// Growl.Error($"{Result?.Message?.ToString()}");
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 物料删除操作
|
/// 物料删除操作
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public ICommand BtnDeleteCommand { get => new DelegateCommand(BtnDelete); }
|
public ICommand BtnCancelCommand { get => new DelegateCommand(BtnCancel); }
|
||||||
public async void BtnDelete()
|
public async void BtnCancel()
|
||||||
{
|
{
|
||||||
Growl.Ask($"是否删除所有勾选得数据]!", isConfirmed =>
|
Growl.Ask($"是否取消所有勾选的任务?", isConfirmed =>
|
||||||
{
|
{
|
||||||
if (isConfirmed)
|
if (isConfirmed)
|
||||||
{
|
{
|
||||||
@ -293,24 +250,26 @@ namespace 智慧物流软件系统.ViewModel
|
|||||||
var needDeleteIds = DataGridItemSource?.Where(t => t.IsSelected == true)
|
var needDeleteIds = DataGridItemSource?.Where(t => t.IsSelected == true)
|
||||||
.Select(t => t.Id)
|
.Select(t => t.Id)
|
||||||
.ToList();
|
.ToList();
|
||||||
|
var task = DataGridItemSource?.Where(t => t.IsSelected == true).First();
|
||||||
|
|
||||||
if (needDeleteIds == null)
|
if (needDeleteIds == null || needDeleteIds.Count == 0)
|
||||||
{
|
{
|
||||||
Growl.Warning("请选择需要修改的数据!");
|
Growl.Warning("请选择需要取消的任务!");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var body = new DeleteInfosRequest()
|
var body = new CancelAGVTasksRequest()
|
||||||
{
|
{
|
||||||
|
TaskId = task == null ? 0 : task.Id,
|
||||||
|
TaskCode = task?.TaskCode,
|
||||||
UserName = LocalStatic.CurrentUser,
|
UserName = LocalStatic.CurrentUser,
|
||||||
DeviceType = LocalFile.Config.DeviceType,
|
DeviceType = LocalFile.Config.DeviceType,
|
||||||
needDeleteIds = needDeleteIds,
|
|
||||||
};
|
};
|
||||||
var Result = ApiHelp.GetDataFromHttp<ResponseBase<UserModel>>(LocalFile.Config.ApiIpHost + "PDAStocktaking/deleteStocktakingInfos", body, "POST");
|
var Result = ApiHelp.GetDataFromHttp<ResponseBase<UserModel>>(LocalFile.Config.ApiIpHost + "agvTask/cancelAGVTask", body, "POST");
|
||||||
if (Result != null && Result.Code == 200)
|
if (Result != null && Result.Code == 200)
|
||||||
{
|
{
|
||||||
CurrentPage = 1;
|
CurrentPage = 1;
|
||||||
Growl.Success("删除成功!" + Result?.Message);
|
Growl.Success("取消成功!" + Result?.Message);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -154,7 +154,7 @@
|
|||||||
Content="取 消"
|
Content="取 消"
|
||||||
FontFamily="{StaticResource IconFont}"
|
FontFamily="{StaticResource IconFont}"
|
||||||
Foreground="WhiteSmoke"
|
Foreground="WhiteSmoke"
|
||||||
Command="{Binding BtnDeleteCommand}"
|
Command="{Binding BtnCancelCommand}"
|
||||||
Style="{StaticResource ButtonDanger}"></Button>
|
Style="{StaticResource ButtonDanger}"></Button>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<DataGrid Grid.Row="1"
|
<DataGrid Grid.Row="1"
|
||||||
|
Reference in New Issue
Block a user