通过工单+物料编码取消工单

This commit is contained in:
hehaibing-1996
2025-04-14 10:08:56 +08:00
parent 917a13b197
commit 230e65d0bf
4 changed files with 97 additions and 3 deletions

View File

@ -19,6 +19,8 @@ namespace WCS.BLL.Services.IService
public Task<ResponseCommon<object>> cancelOrderMXL4(CancelRequest request);
public Task<ResponseCommon<object>> cancelOrderByCode(CancelOrderByCodeRequest request);
public Task<ResponseCommon> refreshInventoryRequest(RefreshInventoryRequest request);
#region APi

View File

@ -117,7 +117,7 @@ namespace WCS.BLL.Services.Service
//生成任务数据
foreach (var orderDetail in request.List)
{
list = new List<int> { 1, 2, 3, 4, 5, 6, 7,8 };
list = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8 };
var module = moduleInfo.Where(t => t.ModuleCode == orderDetail.StoreCode).First();
var currentTaskIds = DbHelp.db.Queryable<CurrentTask>()
@ -126,7 +126,7 @@ namespace WCS.BLL.Services.Service
.ToList();
var tasksIds = tasks.Where(t => t.ModuleId == module.Id).Select(t => t.TaskID).ToList();
list.RemoveAll(l =>currentTaskIds.Contains(l));
list.RemoveAll(l => currentTaskIds.Contains(l));
list.RemoveAll(l => tasksIds.Contains(l));
if (list == null || list.Count <= 0)
@ -250,6 +250,62 @@ namespace WCS.BLL.Services.Service
}
}
/// <summary>
/// 取消同步的任务-通过工单和物料编码进行取消任务
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public async Task<ResponseCommon<object>> cancelOrderByCode(CancelOrderByCodeRequest request)
{
try
{
if (string.IsNullOrEmpty(request.OrderNumber))
{
return new ResponseCommon<object>
{
Code = 300,
Message = $"缺少工单号!"
};
}
var needCancelTasks = DbHelp.db.Queryable<CurrentTask>()
.Where(t => request.OrderNumber == request.OrderNumber)
.WhereIF(!string.IsNullOrEmpty(request.MatCode), t => t.MatCode == request.MatCode)
.ToList();
needCancelTasks.ForEach(t => t.IsCancel = true);
//获取当前
try
{
DbHelp.db.BeginTran();
DbHelp.db.Updateable(needCancelTasks).ExecuteCommand();
DbHelp.db.CommitTran();
}
catch (Exception ex)
{
DbHelp.db.RollbackTran();
return new ResponseCommon<object>
{
Code = 300,
Message = $"操作失败:{ex.Message}"
};
}
//发送任务至各个标签 交给后台线程来做
return new ResponseCommon<object>
{
Code = 200,
Message = "success"
};
}
catch (Exception ex)
{
return new ResponseCommon<object>
{
Code = 201,
Message = "操作失败:" + ex.Message,
};
}
}
public async Task<ResponseCommon> refreshInventoryRequest(RefreshInventoryRequest request)
{
@ -363,7 +419,7 @@ namespace WCS.BLL.Services.Service
t.MXL4Modules.ForEach(m =>
{
//发送进入入库模式
m.GoInOutstoreMode(t.TcpCleint,DbModels.Task.ButtonColorEnum.);
m.GoInOutstoreMode(t.TcpCleint, DbModels.Task.ButtonColorEnum.);
//任务ID
m.SendTaskId(7, t.TcpCleint);
m.SendMatCode("A7100200300", t.TcpCleint);

View File

@ -10,6 +10,19 @@ namespace WCS.Model.ApiModel.MXL4
public List<string> matSN { get; set; }
}
public class CancelOrderByCodeRequest : RequestBase
{
/// <summary>
/// 单据号
/// </summary>
public string OrderNumber { get; set; }
/// <summary>
/// 物料编码
/// </summary>
public string MatCode { get; set; }
}
public class SysOrderMXL4Request : RequestBase
{

View File

@ -63,6 +63,29 @@ namespace WCS.WebApi.Controllers
}
}
/// <summary>
///
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[Route("cancelOrderByCode")]
[HttpPost(Name = "cancelOrderByCode")]
public async Task<ResponseBase> cancelOrderByCode(CancelOrderByCodeRequest request)
{
try
{
return await _mxl4Service.cancelOrderMXL4(request);
}
catch (Exception ex)
{
return new ResponseBase()
{
Code = 300,
Message = "操作失败:" + ex.Message,
};
}
}
/// <summary>
/// 刷新库存信息 当上游系统入库后可以调用此接口对硬件显示的库存信息进行刷新
/// </summary>