From 9637d9f0a3cd7063822bfb7b302fcec09d56b2dc Mon Sep 17 00:00:00 2001 From: icewint Date: Tue, 11 Jun 2024 09:56:10 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81[important]=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=94=B5=E5=AD=90=E6=A0=87=E7=AD=BEwmsapi=E6=8E=A5=E5=8F=A3=20?= =?UTF-8?q?2=E3=80=81[important]=E6=B7=BB=E5=8A=A0=E8=BE=93=E9=80=81?= =?UTF-8?q?=E7=BA=BFWMS=E6=8E=A5=E5=8F=A3=203=E3=80=81[normal]?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=8F=98=E6=9B=B4=E7=94=B5=E5=AD=90=E6=A0=87?= =?UTF-8?q?=E7=AD=BE=E4=BB=BB=E5=8A=A1=E7=8A=B6=E6=80=81=E7=9A=84=E6=98=BE?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WMSEntity/Convey/GetConveyTaskRequest.cs | 37 +++++++++ .../WMSEntity/ElTag/GetElTagTaskRequest.cs | 76 +++++++++++++++++ .../WmsController/ConveyController.cs | 29 +++++++ .../WmsController/ElTagController.cs | 36 +++++++++ .../Service/WcsService/ElTagService.cs | 22 ++++- .../Service/WmsService/ConveyService.cs | 52 ++++++++++++ .../Service/WmsService/ElTagService.cs | 66 +++++++++++++++ WcsMain/DataBase/Dao/AppConveyTaskDao.cs | 37 +++++++++ WcsMain/DataBase/TableEntity/AppConveyTask.cs | 81 +++++++++++++++++++ WcsMain/Enum/TaskEnum/ConveyTaskStatusEnum.cs | 14 ++++ 10 files changed, 447 insertions(+), 3 deletions(-) create mode 100644 WcsMain/ApiServe/Controllers/Dto/WMSEntity/Convey/GetConveyTaskRequest.cs create mode 100644 WcsMain/ApiServe/Controllers/Dto/WMSEntity/ElTag/GetElTagTaskRequest.cs create mode 100644 WcsMain/ApiServe/Controllers/WmsController/ConveyController.cs create mode 100644 WcsMain/ApiServe/Controllers/WmsController/ElTagController.cs create mode 100644 WcsMain/ApiServe/Service/WmsService/ConveyService.cs create mode 100644 WcsMain/ApiServe/Service/WmsService/ElTagService.cs create mode 100644 WcsMain/DataBase/Dao/AppConveyTaskDao.cs create mode 100644 WcsMain/DataBase/TableEntity/AppConveyTask.cs create mode 100644 WcsMain/Enum/TaskEnum/ConveyTaskStatusEnum.cs diff --git a/WcsMain/ApiServe/Controllers/Dto/WMSEntity/Convey/GetConveyTaskRequest.cs b/WcsMain/ApiServe/Controllers/Dto/WMSEntity/Convey/GetConveyTaskRequest.cs new file mode 100644 index 0000000..e5bb912 --- /dev/null +++ b/WcsMain/ApiServe/Controllers/Dto/WMSEntity/Convey/GetConveyTaskRequest.cs @@ -0,0 +1,37 @@ +using System.Text.Json.Serialization; + +namespace WcsMain.ApiServe.Controllers.Dto.WMSEntity.Convey; + +public class GetConveyTaskRequest +{ + /// + /// 任务组 + /// + [JsonPropertyName("taskGroup")] + public string? TaskGroup { get; set; } + + /// + /// 载具号 + /// + [JsonPropertyName("vehicleNo")] + public string? VehicleNo { get; set; } + + /// + /// 任务类型 + /// + [JsonPropertyName("taskType")] + public int? TaskType { get; set; } + + /// + /// 点位 + /// + [JsonPropertyName("location")] + public string[]? Locations { get; set; } + + /// + /// 备注 + /// + [JsonPropertyName("remark")] + public string? Remark { get; set; } + +} diff --git a/WcsMain/ApiServe/Controllers/Dto/WMSEntity/ElTag/GetElTagTaskRequest.cs b/WcsMain/ApiServe/Controllers/Dto/WMSEntity/ElTag/GetElTagTaskRequest.cs new file mode 100644 index 0000000..c577a3b --- /dev/null +++ b/WcsMain/ApiServe/Controllers/Dto/WMSEntity/ElTag/GetElTagTaskRequest.cs @@ -0,0 +1,76 @@ +using DataCheck; +using System.Text.Json.Serialization; + +namespace WcsMain.ApiServe.Controllers.Dto.WMSEntity.ElTag; + +public class GetElTagTaskRequest +{ + /// + /// 任务组 + /// + [JsonPropertyName("taskGroup")] + public string? TaskGroup { get; set; } + + /// + /// 任务类型 + /// + [JsonPropertyName("taskType")] + [DataRules] + public int? TaskType { get; set; } + + /// + /// 载具号 + /// + [JsonPropertyName("vehicleNo")] + [DataRules] + public string? VehicleNo { get; set; } + + /// + /// 订单号 + /// + [JsonPropertyName("orderId")] + public string? OrderId { get; set; } + + /// + /// 任务信息 + /// + [JsonPropertyName("taskData")] + public ElTagTaskdata[]? TaskData { get; set; } + + +} + +public class ElTagTaskdata +{ + /// + /// 任务号 + /// + [JsonPropertyName("taskId")] + public string? TaskId { get; set; } + + /// + /// 点位 + /// + [JsonPropertyName("location")] + [DataRules] + public string? Location { get; set; } + + /// + /// 物品编号 + /// + [JsonPropertyName("goodsId")] + public string? GoodsId { get; set; } + + /// + /// 物品名称 + /// + [JsonPropertyName("goodsName")] + public string? GoodsName { get; set; } + + /// + /// 需求数量 + /// + [JsonPropertyName("needNum")] + [DataRules] + public int? NeedNum { get; set; } +} diff --git a/WcsMain/ApiServe/Controllers/WmsController/ConveyController.cs b/WcsMain/ApiServe/Controllers/WmsController/ConveyController.cs new file mode 100644 index 0000000..9b00be3 --- /dev/null +++ b/WcsMain/ApiServe/Controllers/WmsController/ConveyController.cs @@ -0,0 +1,29 @@ +using Microsoft.AspNetCore.Mvc; +using WcsMain.ApiServe.ControllerFilter; +using WcsMain.ApiServe.Controllers.Dto.WMSEntity; +using WcsMain.ApiServe.Controllers.Dto.WMSEntity.Convey; +using WcsMain.ApiServe.Service.WmsService; + +namespace WcsMain.ApiServe.Controllers.WmsController; + +[Route("api/wms/convey")] +[ApiController] +[ServiceFilter] +[WmsApiExceptionFilter] +public class ConveyController(ConveyService conveyService) : ControllerBase +{ + + private readonly ConveyService _conveyService = conveyService; + + /// + /// 接受上位系统发送过来的输送任务 + /// + /// + /// + [HttpPost("conveyTask")] + public WmsApiResponse GetConveyTask([FromBody] GetConveyTaskRequest request) + { + return _conveyService.GetConveyTask(request); + } + +} diff --git a/WcsMain/ApiServe/Controllers/WmsController/ElTagController.cs b/WcsMain/ApiServe/Controllers/WmsController/ElTagController.cs new file mode 100644 index 0000000..942947a --- /dev/null +++ b/WcsMain/ApiServe/Controllers/WmsController/ElTagController.cs @@ -0,0 +1,36 @@ +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using WcsMain.ApiServe.ControllerFilter; +using WcsMain.ApiServe.Controllers.Dto.WMSEntity; +using WcsMain.ApiServe.Controllers.Dto.WMSEntity.ElTag; +using WcsMain.ApiServe.Service.WmsService; + +namespace WcsMain.ApiServe.Controllers.WmsController; + + +/// +/// 电子标签 WMS 外部接口类 +/// +[Route("api/wms/elTag")] +[ApiController] +[ServiceFilter] +[WmsApiExceptionFilter] +public class ElTagController(ElTagService elTagService) : ControllerBase +{ + + private readonly ElTagService _elTagService = elTagService; + + /// + /// 接收 上位系统发来的 电子标签任务 + /// + /// + /// + [HttpPost("elTagTask")] + public WmsApiResponse GetElTagTask([FromBody] GetElTagTaskRequest request) + { + return _elTagService.GetElTagTask(request); + } + + + +} diff --git a/WcsMain/ApiServe/Service/WcsService/ElTagService.cs b/WcsMain/ApiServe/Service/WcsService/ElTagService.cs index 13d2992..4c1dc78 100644 --- a/WcsMain/ApiServe/Service/WcsService/ElTagService.cs +++ b/WcsMain/ApiServe/Service/WcsService/ElTagService.cs @@ -48,12 +48,28 @@ public class ElTagService(AppElTagTaskDao tagTaskDao, DataBaseData dataBaseData) /// public WcsApiResponse EditTaskInfo(EditTaskInfoRequest request) { - var updateResult = _tagTaskDao.Update(new AppElTagTask + AppElTagTask elTagTask = new() { TaskId = request.TaskId, TaskStatus = request.TaskStatus, - Remark = "WCS变更信息" - }); + Remark = $"WCS变更信息 - {request.TaskStatus}" + }; + switch(request.TaskStatus) + { + case (int)ElTagTaskStatusEnum.Lighting: + elTagTask.LightTime = DateTime.Now; + elTagTask.Remark = "WCS变更信息 - 点亮"; + break; + case (int)ElTagTaskStatusEnum.Confirm: + elTagTask.ConfirmTime = DateTime.Now; + elTagTask.Remark = "WCS变更信息 - 确认"; + break; + case (int)ElTagTaskStatusEnum.Off: + elTagTask.OffTime = DateTime.Now; + elTagTask.Remark = "WCS变更信息 - 熄灭"; + break; + } + var updateResult = _tagTaskDao.Update(elTagTask); return updateResult > 0 ? WcsApiResponseFactory.Success() : WcsApiResponseFactory.DataBaseErr(); } diff --git a/WcsMain/ApiServe/Service/WmsService/ConveyService.cs b/WcsMain/ApiServe/Service/WmsService/ConveyService.cs new file mode 100644 index 0000000..4594d72 --- /dev/null +++ b/WcsMain/ApiServe/Service/WmsService/ConveyService.cs @@ -0,0 +1,52 @@ +using WcsMain.ApiServe.Controllers.Dto.WMSEntity; +using WcsMain.ApiServe.Controllers.Dto.WMSEntity.Convey; +using WcsMain.ApiServe.Factory; +using WcsMain.DataBase.Dao; +using WcsMain.DataBase.TableEntity; +using WcsMain.DataService; +using WcsMain.Enum.TaskEnum; +using WcsMain.WcsAttribute.AutoFacAttribute; + +namespace WcsMain.ApiServe.Service.WmsService; + +[Service] +public class ConveyService(DataBaseData dataBaseData, AppConveyTaskDao conveyTaskDao) +{ + private readonly DataBaseData _databseData = dataBaseData; + private readonly AppConveyTaskDao _conveyTaskDao = conveyTaskDao; + + /// + /// 接收WMS发送过来的输送线任务 + /// + /// + /// + public WmsApiResponse GetConveyTask(GetConveyTaskRequest request) + { + if(string.IsNullOrEmpty(request.VehicleNo) || request.TaskType == default || request.Locations == default || request.Locations.Length < 1) + { + return WmsApiResponseFactory.RequestErr("存在必填项未填"); + } + if (request.TaskGroup == default) + { + request.TaskGroup = _databseData.GetNewUUID2(); // 当任务组为空时生成一个新的 + } + List conveyTasks = []; + DateTime now = DateTime.Now; + foreach(var location in request.Locations) + { + conveyTasks.Add(new AppConveyTask + { + TaskId = _databseData.GetNewUUID(), + TaskGroup = request.TaskGroup, + VehicleNo = request.VehicleNo, + TaskType = request.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(); + } +} diff --git a/WcsMain/ApiServe/Service/WmsService/ElTagService.cs b/WcsMain/ApiServe/Service/WmsService/ElTagService.cs new file mode 100644 index 0000000..a28fc96 --- /dev/null +++ b/WcsMain/ApiServe/Service/WmsService/ElTagService.cs @@ -0,0 +1,66 @@ +using DataCheck; +using WcsMain.ApiServe.Controllers.Dto.WMSEntity; +using WcsMain.ApiServe.Controllers.Dto.WMSEntity.ElTag; +using WcsMain.ApiServe.Factory; +using WcsMain.Common; +using WcsMain.DataBase.Dao; +using WcsMain.DataBase.TableEntity; +using WcsMain.DataService; +using WcsMain.Enum.TaskEnum; +using WcsMain.WcsAttribute.AutoFacAttribute; + +namespace WcsMain.ApiServe.Service.WmsService; + +[Service] +public class ElTagService(DataBaseData dataBaseData, AppElTagTaskDao elTagTaskDao) +{ + private readonly DataBaseData _dataBaseData = dataBaseData; + private readonly AppElTagTaskDao _elTagTaskDao = elTagTaskDao; + + /// + /// 接收电子标签任务 + /// + /// + /// + public WmsApiResponse GetElTagTask(GetElTagTaskRequest request) + { + if (!CheckData.CheckDataRules(request) || request.TaskData == default || request.TaskData.Length < 1) + { + return WmsApiResponseFactory.RequestErr(); + } + foreach (var elTagTask in request.TaskData) + { + if (!CheckData.CheckDataRules(elTagTask)) + { + return WmsApiResponseFactory.RequestErr(); + } + } + if(request.TaskGroup == default) + { + request.TaskGroup = _dataBaseData.GetNewUUID2(); + } + /* 插入任务 */ + List elTagTasks = []; + DateTime now = DateTime.Now; + foreach (var elTagTask in request.TaskData) + { + elTagTasks.Add(new AppElTagTask() + { + TaskId = string.IsNullOrEmpty(elTagTask.TaskId) ? _dataBaseData.GetNewUUID() : elTagTask.TaskId, + TaskGroup = request.TaskGroup, + TaskType = request.TaskType, + Location = elTagTask.Location, + OrderId = request.OrderId, + VehicleNo = request.VehicleNo, + GoodsId = elTagTask.GoodsId, + GoodsName = elTagTask.GoodsName, + TaskStatus = (int)ElTagTaskStatusEnum.NeedLight, + NeedNum = elTagTask.NeedNum ?? 0, + CreatePerson = StaticData.StaticString.WMS, + CreateTime = now + }); + } + var insertResult = _elTagTaskDao.Insert(elTagTasks.ToArray()); + return insertResult > 0 ? WmsApiResponseFactory.Success() : WmsApiResponseFactory.DataBaseErr(); + } +} diff --git a/WcsMain/DataBase/Dao/AppConveyTaskDao.cs b/WcsMain/DataBase/Dao/AppConveyTaskDao.cs new file mode 100644 index 0000000..4e4a7f4 --- /dev/null +++ b/WcsMain/DataBase/Dao/AppConveyTaskDao.cs @@ -0,0 +1,37 @@ +using WcsMain.Common; +using WcsMain.DataBase.TableEntity; +using WcsMain.WcsAttribute.AutoFacAttribute; + +namespace WcsMain.DataBase.Dao; + +[Component] +public class AppConveyTaskDao +{ + /// + /// 插入数据 + /// + /// + /// + public int Insert(List conveyTasks) => Insert(conveyTasks.ToArray()); + + /// + /// 插入数据 + /// + /// + /// + public int Insert(params AppConveyTask[] conveyTasks) + { + try + { + var sqlFuc = CommonTool.DbServe.Insertable(conveyTasks); + return sqlFuc.ExecuteCommand(); + } + catch (Exception ex) + { + _ = ex; + return 0; + } + } + + +} diff --git a/WcsMain/DataBase/TableEntity/AppConveyTask.cs b/WcsMain/DataBase/TableEntity/AppConveyTask.cs new file mode 100644 index 0000000..ead067d --- /dev/null +++ b/WcsMain/DataBase/TableEntity/AppConveyTask.cs @@ -0,0 +1,81 @@ +using SqlSugar; + +namespace WcsMain.DataBase.TableEntity; + +/// +/// 输送线任务表 +/// +[SugarTable("tbl_app_convey_task")] +public class AppConveyTask +{ + /// + /// 任务号 + /// + [SugarColumn(ColumnName = "task_id", IsPrimaryKey = true)] + public string? TaskId { get; set; } + + /// + /// 任务组 + /// + [SugarColumn(ColumnName = "task_group")] + public string? TaskGroup { get; set; } + + /// + /// 载具号 + /// + [SugarColumn(ColumnName = "vehicle_no")] + public string? VehicleNo { get; set; } + + /// + /// 任务类型 + /// + [SugarColumn(ColumnName = "task_type")] + public int? TaskType { get; set; } + + /// + /// 任务状态 + /// + [SugarColumn(ColumnName = "task_status")] + public int? TaskStatus { get; set; } + + /// + /// 点位 + /// + [SugarColumn(ColumnName = "location")] + public string? Location { get; set; } + + + /// + /// 实际到达的点位 + /// + [SugarColumn(ColumnName = "arrive_location")] + public string? ArriveLocation { get; set; } + + /// + /// 创建人 + /// + [SugarColumn(ColumnName = "create_person")] + public string? CreatePerson { get; set; } + + /// + /// 创建时间 + /// + [SugarColumn(ColumnName = "create_time")] + public DateTime? CreateTime { get; set; } + + /// + /// 移栽时间 + /// + [SugarColumn(ColumnName = "move_time")] + public DateTime? MoveTime { get; set; } + + /// + /// 完成时间 + /// + [SugarColumn(ColumnName = "complete_time")] + public DateTime? CompleteTime { get; set; } + + + + +} diff --git a/WcsMain/Enum/TaskEnum/ConveyTaskStatusEnum.cs b/WcsMain/Enum/TaskEnum/ConveyTaskStatusEnum.cs new file mode 100644 index 0000000..927c40c --- /dev/null +++ b/WcsMain/Enum/TaskEnum/ConveyTaskStatusEnum.cs @@ -0,0 +1,14 @@ +namespace WcsMain.Enum.TaskEnum; + +/// +/// 输送机任务状态枚举 +/// +public enum ConveyTaskStatusEnum +{ + create = 0, // 新创建 + noved = 1, // 已经移栽 + arrive = 2, // 到达 + + + +}