2024-10-07 09:51:55 +08:00
|
|
|
|
using DataCheck;
|
2024-11-15 11:37:55 +08:00
|
|
|
|
using WcsMain.ApiServe.Dto;
|
|
|
|
|
|
using WcsMain.ApiServe.Dto.WcsDto.WmsTask;
|
|
|
|
|
|
using WcsMain.ApiServe.Dto.WMSEntity.WmsTask;
|
2024-10-07 09:51:55 +08:00
|
|
|
|
using WcsMain.ApiServe.Factory;
|
|
|
|
|
|
using WcsMain.Business.CommonAction;
|
2024-11-15 11:37:55 +08:00
|
|
|
|
using WcsMain.Common.DataService;
|
|
|
|
|
|
using WcsMain.Constant.Enum.Stacker;
|
2024-10-07 09:51:55 +08:00
|
|
|
|
using WcsMain.DataBase.Dao;
|
|
|
|
|
|
using WcsMain.DataBase.TableEntity;
|
|
|
|
|
|
using WcsMain.StaticData;
|
2024-11-15 11:37:55 +08:00
|
|
|
|
using WcsMain.Constant.WcsAttribute.AutoFacAttribute;
|
2024-10-07 09:51:55 +08:00
|
|
|
|
|
|
|
|
|
|
namespace WcsMain.ApiServe.Service.WcsService;
|
|
|
|
|
|
|
|
|
|
|
|
[Service]
|
|
|
|
|
|
public class WmsTaskService(WmsTaskAction wmsTaskAction, AppWmsTaskDao wmsTaskDao, DataBaseData dataBaseData)
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 查询Wms 任务表
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public WcsApiResponse<List<AppWmsTask>> GetWmsTask()
|
|
|
|
|
|
{
|
|
|
|
|
|
List<AppWmsTask>? wmsTasks = wmsTaskDao.SelectToWeb();
|
|
|
|
|
|
if(wmsTasks == default)
|
|
|
|
|
|
{
|
|
|
|
|
|
return WcsApiResponseFactory.DataBaseErr<List<AppWmsTask>>();
|
|
|
|
|
|
}
|
|
|
|
|
|
return WcsApiResponseFactory.Success(wmsTasks, "查询成功");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 分页查询 Wms 任务表
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="request"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public WcsApiResponse<int, List<AppWmsTask>> GetWmsTaskWithPage(GetWmsTaskWithPageRequest request)
|
|
|
|
|
|
{
|
|
|
|
|
|
(List<AppWmsTask>? wmsTasks, int totalRows) = wmsTaskDao.SelectPage(request);
|
|
|
|
|
|
if(wmsTasks == default)
|
|
|
|
|
|
{
|
|
|
|
|
|
return WcsApiResponseFactory.DataBaseErr<int, List<AppWmsTask>>();
|
|
|
|
|
|
}
|
|
|
|
|
|
return WcsApiResponseFactory.Success(totalRows, wmsTasks);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Wcs 前端发来的任务
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="request"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public WcsApiResponse GetStackerTask(SetWmsTask request)
|
|
|
|
|
|
{
|
2024-11-16 09:25:44 +08:00
|
|
|
|
request.TaskId = dataBaseData.GetNewUUID2();
|
2024-10-07 09:51:55 +08:00
|
|
|
|
bool checkData = CheckData.CheckDataRules(request);
|
|
|
|
|
|
if (!checkData)
|
|
|
|
|
|
{
|
|
|
|
|
|
return WcsApiResponseFactory.RequestErr();
|
|
|
|
|
|
}
|
|
|
|
|
|
/* 插入库存信息 */ // ---- 库存由WMS管理,数据库表也无需操作
|
|
|
|
|
|
AppWmsTask wmsTask = new()
|
|
|
|
|
|
{
|
|
|
|
|
|
TaskId = request.TaskId,
|
|
|
|
|
|
TaskType = request.TaskType,
|
|
|
|
|
|
TaskStatus = (int)WmsTaskStatusEnum.create,
|
|
|
|
|
|
Priority = request.Priority ?? 0,
|
|
|
|
|
|
Origin = request.Origin,
|
|
|
|
|
|
MidPoint = request.Midpoint,
|
|
|
|
|
|
Destination = request.Destination,
|
|
|
|
|
|
VehicleNo = request.VehicleNo,
|
|
|
|
|
|
VehicleSize = request.VehicleSize ?? -1,
|
|
|
|
|
|
Weight = request.Weight ?? -1,
|
|
|
|
|
|
CreateTime = DateTime.Now,
|
|
|
|
|
|
ModifyTime = DateTime.Now,
|
|
|
|
|
|
CreatePerson = StaticString.WCS,
|
|
|
|
|
|
};
|
|
|
|
|
|
/* 插入任务数据 */
|
|
|
|
|
|
//int insertRows = wmsTaskDao.Insert(wmsTasks.ToArray()); // ---- 直接插入任务数据
|
|
|
|
|
|
int insertRows = wmsTaskDao.InsertTaskAndMarkErr(wmsTask); // ---- 先清除这个料箱之前未作的任务,然后插入新数据
|
|
|
|
|
|
if (insertRows > 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
return WcsApiResponseFactory.Success($"任务创建成功,任务号:{request.TaskId}");
|
|
|
|
|
|
}
|
|
|
|
|
|
return WcsApiResponseFactory.Fail("数据插入失败,请稍后重试或者联系我们");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 变更任务状态
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="request"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public WcsApiResponse UpdateStackerTaskStatus(UpdateStackerTaskStatusRequest request)
|
|
|
|
|
|
{
|
|
|
|
|
|
bool checkData = CheckData.CheckDataRules(request);
|
|
|
|
|
|
if (!checkData)
|
|
|
|
|
|
{
|
|
|
|
|
|
return WcsApiResponseFactory.RequestErr();
|
|
|
|
|
|
}
|
|
|
|
|
|
/* 校验任务是否存在 */
|
|
|
|
|
|
var tasks = wmsTaskDao.Select(new AppWmsTask { TaskId = request.TaskId });
|
|
|
|
|
|
if (tasks == default)
|
|
|
|
|
|
{
|
|
|
|
|
|
// 查询失败
|
|
|
|
|
|
return WcsApiResponseFactory.DataBaseErr();
|
|
|
|
|
|
}
|
|
|
|
|
|
if (tasks.Count == 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
// 任务不存在
|
|
|
|
|
|
return WcsApiResponseFactory.Fail($"任务不存在,任务号:{request.TaskId}");
|
|
|
|
|
|
}
|
|
|
|
|
|
int? status = request.TaskStatus;
|
|
|
|
|
|
switch (status)
|
|
|
|
|
|
{
|
|
|
|
|
|
case 0:
|
|
|
|
|
|
string resetErrText = wmsTaskAction.ResetWmsTaskStatus(request.TaskId, request.Destination, StaticString.WCS); // 重置任务
|
|
|
|
|
|
return string.IsNullOrEmpty(resetErrText) ? WcsApiResponseFactory.Success() : WcsApiResponseFactory.Fail(resetErrText);
|
|
|
|
|
|
case 3:
|
|
|
|
|
|
string completeErrText = wmsTaskAction.CompleteWmsTaskStatus(request.TaskId, StaticString.WCS); // 完成任务
|
|
|
|
|
|
return string.IsNullOrEmpty(completeErrText) ? WcsApiResponseFactory.Success() : WcsApiResponseFactory.Fail(completeErrText);
|
|
|
|
|
|
case 999:
|
|
|
|
|
|
string deleteErrText = wmsTaskAction.DeleteWmsTaskStatus(request.TaskId, StaticString.WCS); // 删除任务
|
|
|
|
|
|
return string.IsNullOrEmpty(deleteErrText) ? WcsApiResponseFactory.Success() : WcsApiResponseFactory.Fail(deleteErrText);
|
|
|
|
|
|
default:
|
|
|
|
|
|
return WcsApiResponseFactory.Fail($"任务状态不支持:任务状态:{request.TaskStatus}");
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|