agv配料
This commit is contained in:
@@ -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
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[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
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[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);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 分页查询 配料任务
|
||||
/// </summary>
|
||||
/// <param name="queryParams"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost("getIngredientTask")]
|
||||
public IActionResult GetIngredientTask([FromBody] IngredientTaskQueryDto queryTask)
|
||||
{
|
||||
if (queryTask == null)
|
||||
{
|
||||
return SUCCESS(null);
|
||||
}
|
||||
|
||||
List<MmIngredientTask> response = materialInputService.GetIngredientTask(queryTask);
|
||||
|
||||
return SUCCESS(response);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取配料任务详情
|
||||
/// </summary>
|
||||
/// <param name="taskId"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("getIngredientTask_son")]
|
||||
public IActionResult GetIngredientTaskSon(string taskId)
|
||||
{
|
||||
if (string.IsNullOrEmpty(taskId))
|
||||
{
|
||||
return SUCCESS(null);
|
||||
}
|
||||
List<MmIngredientTask> response = materialInputService.GetIngredientTaskSon(taskId);
|
||||
return SUCCESS(response);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取车间上料终点
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet("getfabgopoints")]
|
||||
public IActionResult Getfabgopoints()
|
||||
{
|
||||
string[] response = materialInputService.Getfabgopoints();
|
||||
|
||||
return SUCCESS(response);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// agv从仓库到车间 进料
|
||||
/// </summary>
|
||||
/// <param name="start_point"></param>
|
||||
/// <param name="end_point"></param>
|
||||
/// <returns></returns>
|
||||
[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);
|
||||
}
|
||||
/// <summary>
|
||||
/// 紧急停止agv
|
||||
/// </summary>
|
||||
/// <param name="reqCode"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("emergency_stop_agv")]
|
||||
public IActionResult EmergencyStopAgv(string reqCode)
|
||||
{
|
||||
if(string.IsNullOrEmpty(reqCode))
|
||||
{
|
||||
SUCCESS(null);
|
||||
}
|
||||
|
||||
var response = materialInputService.EmergencyStopAgv(reqCode);
|
||||
return SUCCESS(response);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost("agv_final_task")]
|
||||
public IActionResult AgvFinalTask()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace ZR.Model.MES.mm
|
||||
/// 配料任务id
|
||||
/// </summary>
|
||||
[SugarColumn(IsPrimaryKey = true, IsIdentity = false, ColumnName = "task_id")]
|
||||
public long TaskId { get; set; }
|
||||
public string TaskId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 工单id
|
||||
|
||||
@@ -16,6 +16,8 @@ namespace ZR.Model.MES.wms
|
||||
public string taskTyp { get; set; }
|
||||
|
||||
public List<AGV_location_third> positionCodePath { get; set; }
|
||||
public string podDir { get; set; }
|
||||
public string priority { get; set; }
|
||||
}
|
||||
public class AGV_location_third
|
||||
{
|
||||
|
||||
@@ -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<ProWorkorder_v2> Getworkorderlist(DateTime datetimespan);
|
||||
int Generatetask(IngredientTaskDto task,string name);
|
||||
|
||||
|
||||
List<MmIngredientTask> GetIngredientTask(IngredientTaskQueryDto queryParams);
|
||||
|
||||
List<MmIngredientTask> GetIngredientTaskSon(string taskId);
|
||||
|
||||
string[] Getfabgopoints();
|
||||
|
||||
string AGV_schedule(string start_point, string end_point);
|
||||
string EmergencyStopAgv(string reqCode);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取配料任务
|
||||
/// </summary>
|
||||
/// <param name="queryParams"></param>
|
||||
/// <returns></returns>
|
||||
public List<MmIngredientTask> GetIngredientTask(IngredientTaskQueryDto queryParams)
|
||||
{
|
||||
// 获取当天的开始时间
|
||||
DateTime startOfDay = queryParams.datetimespan.Date;
|
||||
// 获取当天的结束时间
|
||||
DateTime endOfDay = startOfDay.AddDays(1).AddTicks(-1);
|
||||
return Context.Queryable<MmIngredientTask>()
|
||||
.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();
|
||||
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取配料任务(son) 详细情况
|
||||
/// </summary>
|
||||
/// <param name="taskId"></param>
|
||||
/// <returns></returns>
|
||||
public List<MmIngredientTask> GetIngredientTaskSon(string taskId)
|
||||
{
|
||||
return Context.Queryable<MmIngredientTask>().Where(it => it.TaskId == taskId).ToList();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取车间上料终点
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string[] Getfabgopoints()
|
||||
{
|
||||
return Context.Queryable<MmAgvLocation>().Where(it => it.AreaCode == 3).Where(it => it.Status == 0)
|
||||
.Select(it => it.Coordinate).ToArray();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// agv从仓库到车间 进料
|
||||
/// </summary>
|
||||
/// <param name="start_point"></param>
|
||||
/// <param name="end_point"></param>
|
||||
/// <returns></returns>
|
||||
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<AGV_location_third>
|
||||
{
|
||||
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;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 紧急终止AGV
|
||||
/// </summary>
|
||||
/// <param name="reqCode"></param>
|
||||
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;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user