119 lines
4.4 KiB
C#
119 lines
4.4 KiB
C#
using System.Configuration;
|
|
using WcsMain.ApiServe.Controllers.Dto.WMSEntity;
|
|
using WcsMain.ApiServe.Controllers.Dto.WMSEntity.Convey;
|
|
using WcsMain.ApiServe.Factory;
|
|
using WcsMain.Common;
|
|
using WcsMain.DataBase.Dao;
|
|
using WcsMain.DataBase.TableEntity;
|
|
using WcsMain.DataService;
|
|
using WcsMain.Enum.Convey;
|
|
using WcsMain.EquipOperation.Convey;
|
|
using WcsMain.WcsAttribute.AutoFacAttribute;
|
|
|
|
namespace WcsMain.ApiServe.Service.WmsService;
|
|
|
|
[Service]
|
|
public class ConveyService(DataBaseData dataBaseData, AppConveyTaskDao conveyTaskDao, ConveyOperation conveyOperation)
|
|
{
|
|
/// <summary>
|
|
/// 接收WMS发送过来的输送线任务
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
public WmsApiResponse GetConveyTask(List<GetConveyTaskRequest> request)
|
|
{
|
|
foreach(var item in request)
|
|
{
|
|
if (string.IsNullOrEmpty(item.VehicleNo) || item.TaskType == default || item.Locations == default || item.Locations.Length < 1)
|
|
{
|
|
return WmsApiResponseFactory.RequestErr("存在必填项未填");
|
|
}
|
|
if (item.TaskGroup == default)
|
|
{
|
|
item.TaskGroup = dataBaseData.GetNewUUID2(); // 当任务组为空时生成一个新的
|
|
}
|
|
}
|
|
List<AppConveyTask> conveyTasks = [];
|
|
DateTime now = DateTime.Now;
|
|
foreach (var item in request)
|
|
{
|
|
if (item.Locations == default) continue;
|
|
foreach (var location in item.Locations)
|
|
{
|
|
conveyTasks.Add(new AppConveyTask
|
|
{
|
|
TaskId = dataBaseData.GetNewUUID(),
|
|
TaskGroup = item.TaskGroup,
|
|
VehicleNo = item.VehicleNo,
|
|
TaskType = item.TaskType,
|
|
TaskStatus = (int)ConveyTaskStatusEnum.create,
|
|
Location = location,
|
|
CreatePerson = StaticData.StaticString.WMS,
|
|
CreateTime = now,
|
|
});
|
|
}
|
|
}
|
|
|
|
var insertResult = conveyTaskDao.Insert(conveyTasks);
|
|
return insertResult > 0 ? WmsApiResponseFactory.Success() : WmsApiResponseFactory.DataBaseErr();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 释放输送线任务
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
public WmsApiResponse DisposeVehicle(DisposeVehicleRequest request)
|
|
{
|
|
if(string.IsNullOrEmpty(request.Location)) return WmsApiResponseFactory.RequestErr("存在必填项未填");
|
|
var writeResult = conveyOperation.AllowPickStandGo(request.Location, 2);
|
|
if(string.IsNullOrEmpty(writeResult)) return WmsApiResponseFactory.Success();
|
|
return WmsApiResponseFactory.Fail(writeResult);
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 取消wms的箱式线任务
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
public WmsApiResponse CancelConveyTask(List<GetConveyTaskRequest> request)
|
|
{
|
|
try
|
|
{
|
|
foreach (var item in request)
|
|
{
|
|
if (string.IsNullOrEmpty(item.VehicleNo) || item.TaskType == default || item.Locations == default || item.Locations.Length < 1)
|
|
{
|
|
return WmsApiResponseFactory.RequestErr("存在必填项未填");
|
|
}
|
|
//遍历所有点位
|
|
foreach (var location in item.Locations)
|
|
{
|
|
//生成删除的对象
|
|
var taskToDelete = new AppConveyTask
|
|
{
|
|
VehicleNo = item.VehicleNo,
|
|
Location = location
|
|
};
|
|
int deleteResult = conveyTaskDao.VehicledDelete(taskToDelete);
|
|
if (deleteResult > 0)
|
|
{
|
|
return WmsApiResponseFactory.Success("删除成功");
|
|
}
|
|
else
|
|
{
|
|
return WmsApiResponseFactory.DataBaseErr("删除失败");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ConsoleLog.Error(ex.ToString());
|
|
return WmsApiResponseFactory.Fail(ex);
|
|
}
|
|
return WmsApiResponseFactory.Success("没有找到匹配的记录");
|
|
}
|
|
}
|