From 3852de24f9e042e21fb20c29670d14e6b09c29b2 Mon Sep 17 00:00:00 2001 From: "qianhao.xu" Date: Tue, 30 Apr 2024 14:18:00 +0800 Subject: [PATCH] chengpingruku --- .../mes/mm/MaterialInputController.cs | 44 ++++++++++++ .../mes/mm/MmFinishedwarehouseController.cs | 39 +++++++++++ .../mes/mm/IService/IMaterialInputService.cs | 4 ++ .../IService/IMmFinishedwarehouseService.cs | 13 ++++ ZR.Service/mes/mm/MaterialInputService.cs | 68 +++++++++++++++++-- .../mes/mm/MmFinishedwarehouseService.cs | 31 +++++++++ ZR.Service/mes/wms/WmOutOrderService.cs | 17 +++-- 7 files changed, 203 insertions(+), 13 deletions(-) create mode 100644 ZR.Admin.WebApi/Controllers/mes/mm/MmFinishedwarehouseController.cs create mode 100644 ZR.Service/mes/mm/IService/IMmFinishedwarehouseService.cs create mode 100644 ZR.Service/mes/mm/MmFinishedwarehouseService.cs diff --git a/ZR.Admin.WebApi/Controllers/mes/mm/MaterialInputController.cs b/ZR.Admin.WebApi/Controllers/mes/mm/MaterialInputController.cs index fc6db0c3..1d3e6c66 100644 --- a/ZR.Admin.WebApi/Controllers/mes/mm/MaterialInputController.cs +++ b/ZR.Admin.WebApi/Controllers/mes/mm/MaterialInputController.cs @@ -195,5 +195,49 @@ namespace ZR.Admin.WebApi.Controllers.mes.mm return SUCCESS(response); } + /// + /// 空车返程 + /// + /// + /// + /// + [HttpGet("emptycarreturn")] + public IActionResult Emptycarreturn(string start_point, string end_point) + { + if (string.IsNullOrEmpty(start_point) || string.IsNullOrEmpty(end_point)) + { + SUCCESS(null); + } + var response = materialInputService.AGV_schedule(start_point, end_point); + + return SUCCESS(response); + } + /// + /// 车间返程起点 + /// + /// + [HttpGet("emptycarreturn_start")] + public IActionResult Emptycarreturn_start() + { + string[] response = materialInputService.Emptycarreturn_start(); + + return SUCCESS(response); + + } + + /// + /// 车间返程终点 + /// + /// + [HttpGet("emptycarreturn_end")] + public IActionResult Emptycarreturn_end() + { + string[] response = materialInputService.Emptycarreturn_end(); + + return SUCCESS(response); + + } + + } } \ No newline at end of file diff --git a/ZR.Admin.WebApi/Controllers/mes/mm/MmFinishedwarehouseController.cs b/ZR.Admin.WebApi/Controllers/mes/mm/MmFinishedwarehouseController.cs new file mode 100644 index 00000000..c496278a --- /dev/null +++ b/ZR.Admin.WebApi/Controllers/mes/mm/MmFinishedwarehouseController.cs @@ -0,0 +1,39 @@ +using ZR.Admin.WebApi.Filters; +using Microsoft.AspNetCore.Mvc; +using ZR.Service.mes.mm; +using ZR.Service.mes.mm.IService; + +namespace ZR.Admin.WebApi.Controllers.mes.mm +{ + /// + /// 成品入库 + /// + [Verify] + [Route("mes/mm/MmFinishedwarehouse")] + public class MmFinishedwarehouseController : BaseController + { + + IMmFinishedwarehouseService finishedwarehouseService; + public MmFinishedwarehouseController(IMmFinishedwarehouseService finishedwarehouseService) + { + this. finishedwarehouseService=finishedwarehouseService; + } + + + /// + /// 成品入库位置 + /// + /// + [HttpGet("finish_point")] + public IActionResult Finish_point() + { + string[] response = finishedwarehouseService.Finish_point(); + + return SUCCESS(response); + + } + + + + } +} diff --git a/ZR.Service/mes/mm/IService/IMaterialInputService.cs b/ZR.Service/mes/mm/IService/IMaterialInputService.cs index 559b9701..046e67e8 100644 --- a/ZR.Service/mes/mm/IService/IMaterialInputService.cs +++ b/ZR.Service/mes/mm/IService/IMaterialInputService.cs @@ -31,5 +31,9 @@ namespace ZR.Service.mes.mm.IService int FinishBatchingTask(string start_point, string end_point, string taskId); + string[] Emptycarreturn_start(); + + string[] Emptycarreturn_end(); + } } diff --git a/ZR.Service/mes/mm/IService/IMmFinishedwarehouseService.cs b/ZR.Service/mes/mm/IService/IMmFinishedwarehouseService.cs new file mode 100644 index 00000000..2aca3e73 --- /dev/null +++ b/ZR.Service/mes/mm/IService/IMmFinishedwarehouseService.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ZR.Service.mes.mm.IService +{ + public interface IMmFinishedwarehouseService + { + string[] Finish_point(); + } +} diff --git a/ZR.Service/mes/mm/MaterialInputService.cs b/ZR.Service/mes/mm/MaterialInputService.cs index 94f30292..1783a41d 100644 --- a/ZR.Service/mes/mm/MaterialInputService.cs +++ b/ZR.Service/mes/mm/MaterialInputService.cs @@ -27,6 +27,13 @@ namespace ZR.Service.mes.mm [AppService(ServiceType = typeof(IMaterialInputService), ServiceLifetime = LifeTime.Transient)] public class MaterialInputService : BaseService, IMaterialInputService { + private NLog.Logger logger; + + public MaterialInputService() + { + logger = NLog.LogManager.GetCurrentClassLogger(); + + } /// /// 获取AGV上料起点 /// @@ -190,7 +197,7 @@ namespace ZR.Service.mes.mm DateTime endOfDay = startOfDay.AddDays(1).AddTicks(-1); return Context.Queryable() .Where(it => it.CreatedTime > startOfDay && it.CreatedTime < endOfDay) - .Where(it => it.Isfinal == 0) + //.Where(it => it.Isfinal == 0) .GroupBy(it => it.TaskId) .Select(it => new MmIngredientTask() { @@ -234,7 +241,11 @@ namespace ZR.Service.mes.mm /// public string AGV_schedule(string start_point, string end_point) { + // Context.Updateable().Where(it => it.Coordinate == start_point).SetColumns(it => it.Status == 0).ExecuteCommand(); + // Context.Updateable().Where(it => it.Coordinate == end_point).SetColumns(it => it.Status == 1).ExecuteCommand(); + string url = "https://192.168.60.1:443/rcms/services/rest/hikRpcService/genAgvSchedulingTask"; + logger.Info(" 1.任务调度请求url " + url); AGVtask_third task = new AGVtask_third(); task.reqCode = SnowFlakeSingle.Instance.NextId().ToString(); task.taskTyp = "F01"; @@ -257,8 +268,10 @@ namespace ZR.Service.mes.mm task.priority = "1"; string postData = JsonSerializer.Serialize(task); - string response = HttpHelper.HttpPost(url, postData); + logger.Info(" 2.任务调度请求数据 " + postData); + string response = HttpHelper.HttpPost(url, postData); + logger.Info(" 3.任务调度请求响应 " + response); return response; @@ -272,17 +285,21 @@ namespace ZR.Service.mes.mm public string EmergencyStopAgv(string reqCode) { string url = "https://192.168.60.1:443/rcms/services/rest/hikRpcService/cancelTask"; + + logger.Info(" 1.紧急终止AGV请求url " + url); AGVtask_cancel_third req = new AGVtask_cancel_third(); req.reqCode = SnowFlakeSingle.Instance.NextId().ToString(); req.forceCancel = "0"; req.taskCode = reqCode; string postData = JsonSerializer.Serialize(req); - + logger.Info(" 2.紧急终止AGV请求数据 " + postData); string response = HttpHelper.HttpPost(url, postData); + logger.Info(" 3.紧急终止AGV响应数据 " + response); + return response; @@ -300,11 +317,48 @@ namespace ZR.Service.mes.mm int result = 0; UseTran2(() => { - Context.Updateable().Where(it => it.Coordinate == start_point).SetColumns(it => it.Status == 0).ExecuteCommand(); - Context.Updateable().Where(it => it.Coordinate == end_point).SetColumns(it => it.Status == 1).ExecuteCommand(); - result= Context.Updateable().Where(it => it.TaskId.Equals(taskId)).SetColumns(it => it.Isfinal == 1).ExecuteCommand(); + // Context.Updateable().Where(it => it.Coordinate == start_point).SetColumns(it => it.Status == 0).ExecuteCommand(); + // Context.Updateable().Where(it => it.Coordinate == end_point).SetColumns(it => it.Status == 1).ExecuteCommand(); + result = Context.Updateable().Where(it => it.TaskId.Equals(taskId)).SetColumns(it => it.Isfinal == 1).ExecuteCommand(); }); - return result; + return result; + } + + + /// + /// 车间返程起点 + /// + /// + public string[] Emptycarreturn_start() + { + List positions = Context.Queryable() + .Where(it => it.AreaCode == 3) + + .ToList(); + + string[] cors = new string[positions.Count]; + for (int i = 0; i < positions.Count; i++) cors[i] = positions[i].Coordinate.ToString(); + + return cors; + + } + + /// + /// 车间返程终点 + /// + /// + public string[] Emptycarreturn_end() + { + List positions = Context.Queryable() + .Where(it => it.AreaCode == 2) + + .ToList(); + + string[] cors = new string[positions.Count]; + for (int i = 0; i < positions.Count; i++) cors[i] = positions[i].Coordinate.ToString(); + + return cors; + } } } diff --git a/ZR.Service/mes/mm/MmFinishedwarehouseService.cs b/ZR.Service/mes/mm/MmFinishedwarehouseService.cs new file mode 100644 index 00000000..9a2896c5 --- /dev/null +++ b/ZR.Service/mes/mm/MmFinishedwarehouseService.cs @@ -0,0 +1,31 @@ +using Infrastructure.Attribute; +using Microsoft.Extensions.DependencyInjection; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using ZR.Model.MES.mm; +using ZR.Service.mes.mm.IService; + +namespace ZR.Service.mes.mm +{ + + + [AppService(ServiceType = typeof(IMmFinishedwarehouseService), ServiceLifetime = LifeTime.Transient)] + public class MmFinishedwarehouseService : BaseService, IMmFinishedwarehouseService + { + + public string[] Finish_point() + { + List positions = Context.Queryable() + .Where(it => it.AreaCode == 4|| it.AreaCode == 5) + .ToList(); + + string[] cors = new string[positions.Count]; + for (int i = 0; i < positions.Count; i++) cors[i] = positions[i].Coordinate.ToString(); + + return cors; + } + } +} diff --git a/ZR.Service/mes/wms/WmOutOrderService.cs b/ZR.Service/mes/wms/WmOutOrderService.cs index 4c9c4377..7d8fb379 100644 --- a/ZR.Service/mes/wms/WmOutOrderService.cs +++ b/ZR.Service/mes/wms/WmOutOrderService.cs @@ -28,6 +28,11 @@ namespace ZR.Service.mes.wms [AppService(ServiceType = typeof(IWmOutOrderService), ServiceLifetime = LifeTime.Transient)] public class WmOutOrderService : BaseService, IWmOutOrderService { + private NLog.Logger logger; + public WmOutOrderService() + { + logger = NLog.LogManager.GetCurrentClassLogger(); + } /// @@ -482,8 +487,8 @@ namespace ZR.Service.mes.wms if (plan_earliest.Id == plan_item.Id) { #endregion - - + + */ @@ -688,7 +693,7 @@ namespace ZR.Service.mes.wms // 5. 确保出最早批次 string short_path = resultionPackage.PatchCode.Split('_')[0]; // 严格规则 - return CheckRuleJudgmentFirstInFirstOut(shipment_num, short_path,parnumber); + return CheckRuleJudgmentFirstInFirstOut(shipment_num, short_path, parnumber); /*WmOutOrderPlan plan_item = Context.Queryable() .Where(it => it.FkOutOrderId == shipment_num) .Where(it => it.Patchcode == short_path) @@ -765,7 +770,7 @@ namespace ZR.Service.mes.wms /// 短批次号 /// "ok" 代表通过,其余返回错误提示 /// - public string CheckRuleJudgmentFirstInFirstOut(string shipment_num, string shortPackageCode,string parnumber) + public string CheckRuleJudgmentFirstInFirstOut(string shipment_num, string shortPackageCode, string parnumber) { // 1.检查是否有记录 var exp1 = Expressionable.Create() @@ -780,7 +785,7 @@ namespace ZR.Service.mes.wms return "此批次号不在出库单计划中!"; } - + // 1.取出出库单计划 List plans = Context.Queryable() @@ -812,7 +817,7 @@ namespace ZR.Service.mes.wms // 按顺序检查是否出完 if (plan.Patchcode != shortPackageCode) { - + // 检查此批次是否出完 if (outPartnumberNum >= plan.RequireNum) {