diff --git a/ZR.Admin.WebApi/Controllers/mes/mm/MaterialInputController.cs b/ZR.Admin.WebApi/Controllers/mes/mm/MaterialInputController.cs
index 7d6e9ce1..8e7f8bbe 100644
--- a/ZR.Admin.WebApi/Controllers/mes/mm/MaterialInputController.cs
+++ b/ZR.Admin.WebApi/Controllers/mes/mm/MaterialInputController.cs
@@ -1,6 +1,8 @@
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using ZR.Admin.WebApi.Extensions;
+using ZR.Model;
+using ZR.Model.MES.mm;
using ZR.Model.MES.mm.Dto;
using ZR.Service.mes.mm;
using ZR.Service.mes.mm.IService;
@@ -50,9 +52,9 @@ namespace ZR.Admin.WebApi.Controllers.mes.mm
///
///
[HttpPost("getworkorderlist")]
- public IActionResult Getworkorderlist([FromBody] WorkorderqueryDto query)
+ public IActionResult Getworkorderlist([FromBody] WorkorderqueryDto query)
{
- if(query == null|| query.datetimespan==null)
+ if (query == null || query.datetimespan == null)
{
SUCCESS(null);
}
@@ -66,14 +68,106 @@ namespace ZR.Admin.WebApi.Controllers.mes.mm
///
///
[HttpPost("generatetask")]
- public IActionResult Generatetask([FromBody] IngredientTaskDto task)
+ public IActionResult Generatetask([FromBody] IngredientTaskDto task)
{
- if(task==null||task.workorders==null|| task.workorders.Count==0)
+ if (task == null || task.workorders == null || task.workorders.Count == 0)
{
return SUCCESS(null);
}
int res = materialInputService.Generatetask(task, HttpContext.GetName());
return SUCCESS(res);
}
+
+ ///
+ /// 分页查询 配料任务
+ ///
+ ///
+ ///
+ [HttpPost("getIngredientTask")]
+ public IActionResult GetIngredientTask([FromBody] IngredientTaskQueryDto queryTask)
+ {
+ if (queryTask == null)
+ {
+ return SUCCESS(null);
+ }
+
+ List response = materialInputService.GetIngredientTask(queryTask);
+
+ return SUCCESS(response);
+ }
+
+
+ ///
+ /// 获取配料任务详情
+ ///
+ ///
+ ///
+ [HttpGet("getIngredientTask_son")]
+ public IActionResult GetIngredientTaskSon(string taskId)
+ {
+ if (string.IsNullOrEmpty(taskId))
+ {
+ return SUCCESS(null);
+ }
+ List response = materialInputService.GetIngredientTaskSon(taskId);
+ return SUCCESS(response);
+ }
+
+ ///
+ /// 获取车间上料终点
+ ///
+ ///
+ [HttpGet("getfabgopoints")]
+ public IActionResult Getfabgopoints()
+ {
+ string[] response = materialInputService.Getfabgopoints();
+
+ return SUCCESS(response);
+ }
+
+ ///
+ /// agv从仓库到车间 进料
+ ///
+ ///
+ ///
+ ///
+ [HttpGet("go_workshop")]
+ public IActionResult GoWorkshop(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);
+ }
+ ///
+ /// 紧急停止agv
+ ///
+ ///
+ ///
+ [HttpGet("emergency_stop_agv")]
+ public IActionResult EmergencyStopAgv(string reqCode)
+ {
+ if(string.IsNullOrEmpty(reqCode))
+ {
+ SUCCESS(null);
+ }
+
+ var response = materialInputService.EmergencyStopAgv(reqCode);
+ return SUCCESS(response);
+ }
+
+ ///
+ ///
+ ///
+ ///
+ [HttpPost("agv_final_task")]
+ public IActionResult AgvFinalTask()
+ {
+ return null;
+ }
+
}
}
\ No newline at end of file
diff --git a/ZR.Model/MES/mm/Dto/IngredientTaskDto.cs b/ZR.Model/MES/mm/Dto/IngredientTaskDto.cs
index f400cb67..72c04664 100644
--- a/ZR.Model/MES/mm/Dto/IngredientTaskDto.cs
+++ b/ZR.Model/MES/mm/Dto/IngredientTaskDto.cs
@@ -21,4 +21,8 @@ namespace ZR.Model.MES.mm.Dto
public int previousNumber { set; get; }
public int previousNumbered { set; get; }
}
+ public class IngredientTaskQueryDto : PagerInfo
+ {
+ public DateTime datetimespan { set; get; }
+ }
}
diff --git a/ZR.Service/mes/mm/MmFkWorkorderIngredient.cs b/ZR.Model/MES/mm/MmFkWorkorderIngredient.cs
similarity index 100%
rename from ZR.Service/mes/mm/MmFkWorkorderIngredient.cs
rename to ZR.Model/MES/mm/MmFkWorkorderIngredient.cs
diff --git a/ZR.Model/MES/mm/MmIngredientTask.cs b/ZR.Model/MES/mm/MmIngredientTask.cs
index af056847..bf9f0f26 100644
--- a/ZR.Model/MES/mm/MmIngredientTask.cs
+++ b/ZR.Model/MES/mm/MmIngredientTask.cs
@@ -28,7 +28,7 @@ namespace ZR.Model.MES.mm
/// 配料任务id
///
[SugarColumn(IsPrimaryKey = true, IsIdentity = false, ColumnName = "task_id")]
- public long TaskId { get; set; }
+ public string TaskId { get; set; }
///
/// 工单id
diff --git a/ZR.Model/MES/wms/AGVtask_third.cs b/ZR.Model/MES/wms/AGVtask_third.cs
index 7f3e97c9..79892b1a 100644
--- a/ZR.Model/MES/wms/AGVtask_third.cs
+++ b/ZR.Model/MES/wms/AGVtask_third.cs
@@ -16,6 +16,8 @@ namespace ZR.Model.MES.wms
public string taskTyp { get; set; }
public List positionCodePath { get; set; }
+ public string podDir { get; set; }
+ public string priority { get; set; }
}
public class AGV_location_third
{
diff --git a/ZR.Service/mes/mm/IService/IMaterialInputService.cs b/ZR.Service/mes/mm/IService/IMaterialInputService.cs
index aec9c747..649e114b 100644
--- a/ZR.Service/mes/mm/IService/IMaterialInputService.cs
+++ b/ZR.Service/mes/mm/IService/IMaterialInputService.cs
@@ -4,6 +4,8 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using ZR.Model;
+using ZR.Model.MES.mm;
using ZR.Model.MES.mm.Dto;
using ZR.Model.MES.pro;
@@ -17,5 +19,15 @@ namespace ZR.Service.mes.mm.IService
List Getworkorderlist(DateTime datetimespan);
int Generatetask(IngredientTaskDto task,string name);
+
+ List GetIngredientTask(IngredientTaskQueryDto queryParams);
+
+ List GetIngredientTaskSon(string taskId);
+
+ string[] Getfabgopoints();
+
+ string AGV_schedule(string start_point, string end_point);
+ string EmergencyStopAgv(string reqCode);
+
}
}
diff --git a/ZR.Service/mes/mm/MaterialInputService.cs b/ZR.Service/mes/mm/MaterialInputService.cs
index 2d63b86e..6b7ff3f8 100644
--- a/ZR.Service/mes/mm/MaterialInputService.cs
+++ b/ZR.Service/mes/mm/MaterialInputService.cs
@@ -17,6 +17,10 @@ using static System.Runtime.InteropServices.JavaScript.JSType;
using ZR.Model.MES.mm.Dto;
using SqlSugar;
using Microsoft.Extensions.Hosting;
+using ZR.Model;
+using ZR.Model.MES.wms;
+using System.Text.Json;
+using Infrastructure;
namespace ZR.Service.mes.mm
{
@@ -153,7 +157,7 @@ namespace ZR.Service.mes.mm
MmIngredientTask ingredientTask = new MmIngredientTask();
ingredientTask.AgvPosition = task.agv_position;
- ingredientTask.TaskId = taskid;
+ ingredientTask.TaskId = taskid.ToString();
ingredientTask.Workorder = item.workorder;
ingredientTask.Partnumber = item.partnumber;
ingredientTask.PreviousNumber = item.previousNumber;
@@ -171,6 +175,116 @@ namespace ZR.Service.mes.mm
}
+
+ ///
+ /// 获取配料任务
+ ///
+ ///
+ ///
+ public List GetIngredientTask(IngredientTaskQueryDto queryParams)
+ {
+ // 获取当天的开始时间
+ DateTime startOfDay = queryParams.datetimespan.Date;
+ // 获取当天的结束时间
+ DateTime endOfDay = startOfDay.AddDays(1).AddTicks(-1);
+ return Context.Queryable()
+ .Where(it => it.CreatedTime > startOfDay && it.CreatedTime < endOfDay)
+ .GroupBy(it => it.TaskId)
+ .Select(it => new MmIngredientTask()
+ {
+ TaskId = it.TaskId,
+ AgvPosition = SqlFunc.AggregateMax(it.AgvPosition),
+ CreatedTime = SqlFunc.AggregateMax(it.CreatedTime)
+ })
+ .ToList();
+
+
+ }
+
+ ///
+ /// 获取配料任务(son) 详细情况
+ ///
+ ///
+ ///
+ public List GetIngredientTaskSon(string taskId)
+ {
+ return Context.Queryable().Where(it => it.TaskId == taskId).ToList();
+ }
+
+ ///
+ /// 获取车间上料终点
+ ///
+ ///
+ public string[] Getfabgopoints()
+ {
+ return Context.Queryable().Where(it => it.AreaCode == 3).Where(it => it.Status == 0)
+ .Select(it => it.Coordinate).ToArray();
+
+ }
+
+
+
+ ///
+ /// agv从仓库到车间 进料
+ ///
+ ///
+ ///
+ ///
+ public string AGV_schedule(string start_point, string end_point)
+ {
+ string url = "https://192.168.60.1:443/rcms/services/rest/hikRpcService/genAgvSchedulingTask";
+ AGVtask_third task = new AGVtask_third();
+ task.reqCode = SnowFlakeSingle.Instance.NextId().ToString();
+ task.taskTyp = "F01";
+ task.positionCodePath = new List
+ {
+ new AGV_location_third()
+ {
+ positionCode=start_point,
+ type="00"
+
+ },
+ new AGV_location_third()
+ {
+ positionCode=end_point,
+ type="00"
+
+ }
+ };
+ task.podDir = "0";
+ task.priority = "1";
+
+ string postData = JsonSerializer.Serialize(task);
+ string response = HttpHelper.HttpPost(url, postData);
+
+
+ return response;
+
+ }
+
+
+ ///
+ /// 紧急终止AGV
+ ///
+ ///
+ public string EmergencyStopAgv(string reqCode)
+ {
+ string url = "https://192.168.60.1:443/rcms/services/rest/hikRpcService/cancelTask";
+ 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);
+
+
+
+
+ string response = HttpHelper.HttpPost(url, postData);
+
+ return response;
+
+
+ }
}
}