2024-04-25 08:47:25 +08:00
|
|
|
|
using Microsoft.AspNetCore.Http;
|
|
|
|
|
|
using Microsoft.AspNetCore.Mvc;
|
2024-04-28 08:36:00 +08:00
|
|
|
|
using ZR.Admin.WebApi.Extensions;
|
2024-04-29 18:50:44 +08:00
|
|
|
|
using ZR.Model;
|
|
|
|
|
|
using ZR.Model.MES.mm;
|
2024-04-25 08:47:25 +08:00
|
|
|
|
using ZR.Model.MES.mm.Dto;
|
|
|
|
|
|
using ZR.Service.mes.mm;
|
|
|
|
|
|
using ZR.Service.mes.mm.IService;
|
|
|
|
|
|
|
|
|
|
|
|
namespace ZR.Admin.WebApi.Controllers.mes.mm
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 生产投料
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
[Route("mes/mm/materialinput")]
|
|
|
|
|
|
|
|
|
|
|
|
public class MaterialInputController : BaseController
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
IMaterialInputService materialInputService;
|
|
|
|
|
|
|
|
|
|
|
|
public MaterialInputController(IMaterialInputService materialInputService)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.materialInputService = materialInputService;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取AGV 上料 开始起点
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpGet("getstartpoints")]
|
|
|
|
|
|
public IActionResult Getstart_AGV_points()
|
|
|
|
|
|
{
|
|
|
|
|
|
var response = materialInputService.Getstart_AGV_points();
|
|
|
|
|
|
return SUCCESS(response);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取AGV 上料 终点
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpGet("getendpoints")]
|
|
|
|
|
|
public IActionResult Getend_AGV_points()
|
|
|
|
|
|
{
|
|
|
|
|
|
var response = materialInputService.Getend_AGV_points();
|
|
|
|
|
|
return SUCCESS(response);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取工单list
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpPost("getworkorderlist")]
|
2024-04-29 18:50:44 +08:00
|
|
|
|
public IActionResult Getworkorderlist([FromBody] WorkorderqueryDto query)
|
2024-04-25 08:47:25 +08:00
|
|
|
|
{
|
2024-04-29 18:50:44 +08:00
|
|
|
|
if (query == null || query.datetimespan == null)
|
2024-04-25 08:47:25 +08:00
|
|
|
|
{
|
|
|
|
|
|
SUCCESS(null);
|
|
|
|
|
|
}
|
2024-05-07 16:47:51 +08:00
|
|
|
|
|
|
|
|
|
|
var response = materialInputService.Getworkorderlist(query);
|
2024-04-25 08:47:25 +08:00
|
|
|
|
return SUCCESS(response);
|
|
|
|
|
|
}
|
2024-04-28 08:36:00 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 生成配料任务
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpPost("generatetask")]
|
2024-04-29 18:50:44 +08:00
|
|
|
|
public IActionResult Generatetask([FromBody] IngredientTaskDto task)
|
2024-04-28 08:36:00 +08:00
|
|
|
|
{
|
2024-04-29 18:50:44 +08:00
|
|
|
|
if (task == null || task.workorders == null || task.workorders.Count == 0)
|
2024-04-28 08:36:00 +08:00
|
|
|
|
{
|
2024-04-28 15:18:44 +08:00
|
|
|
|
return SUCCESS(null);
|
2024-04-28 08:36:00 +08:00
|
|
|
|
}
|
|
|
|
|
|
int res = materialInputService.Generatetask(task, HttpContext.GetName());
|
|
|
|
|
|
return SUCCESS(res);
|
|
|
|
|
|
}
|
2024-04-29 18:50:44 +08:00
|
|
|
|
|
|
|
|
|
|
/// <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")]
|
2024-05-15 11:48:34 +08:00
|
|
|
|
public IActionResult GoWorkshop(string start_point, string end_point, string agvCode )
|
2024-04-29 18:50:44 +08:00
|
|
|
|
{
|
2024-05-15 11:48:34 +08:00
|
|
|
|
if (string.IsNullOrEmpty(start_point) || string.IsNullOrEmpty(end_point)||string.IsNullOrEmpty(agvCode))
|
2024-04-29 18:50:44 +08:00
|
|
|
|
{
|
|
|
|
|
|
SUCCESS(null);
|
|
|
|
|
|
}
|
2024-05-15 11:48:34 +08:00
|
|
|
|
|
2024-05-14 15:41:42 +08:00
|
|
|
|
var response = materialInputService.AGV_schedule(start_point, end_point, agvCode);
|
2024-04-29 18:50:44 +08:00
|
|
|
|
|
|
|
|
|
|
return SUCCESS(response);
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 紧急停止agv
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="reqCode"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpGet("emergency_stop_agv")]
|
2024-04-30 13:23:27 +08:00
|
|
|
|
public IActionResult EmergencyStopAgv(string reqCode)
|
2024-04-29 18:50:44 +08:00
|
|
|
|
{
|
2024-04-30 13:23:27 +08:00
|
|
|
|
if (string.IsNullOrEmpty(reqCode))
|
2024-04-29 18:50:44 +08:00
|
|
|
|
{
|
2024-04-30 15:10:44 +08:00
|
|
|
|
return SUCCESS(null);
|
2024-04-29 18:50:44 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var response = materialInputService.EmergencyStopAgv(reqCode);
|
|
|
|
|
|
return SUCCESS(response);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2024-04-30 13:23:27 +08:00
|
|
|
|
/// agv完成任务
|
2024-04-29 18:50:44 +08:00
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpPost("agv_final_task")]
|
2024-04-30 13:23:27 +08:00
|
|
|
|
public IActionResult AgvFinalTask()
|
2024-04-29 18:50:44 +08:00
|
|
|
|
{
|
|
|
|
|
|
return null;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-04-30 13:23:27 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 完成配料任务
|
2024-05-11 14:22:15 +08:00
|
|
|
|
/// 1.更改站点托盘 ??
|
2024-04-30 13:23:27 +08:00
|
|
|
|
/// 2.完成的配料任务不可见
|
2024-05-11 14:22:15 +08:00
|
|
|
|
/// 3.生产上线
|
2024-05-14 14:01:18 +08:00
|
|
|
|
/// 4.扣除毛坯库
|
2024-04-30 13:23:27 +08:00
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpGet("finishBatchingTask")]
|
|
|
|
|
|
public IActionResult FinishBatchingTask(string start_point, string end_point, string taskId)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (string.IsNullOrEmpty(start_point))
|
|
|
|
|
|
{
|
|
|
|
|
|
return SUCCESS(null);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (string.IsNullOrEmpty(end_point))
|
|
|
|
|
|
{
|
|
|
|
|
|
return SUCCESS(null);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (string.IsNullOrEmpty(taskId))
|
|
|
|
|
|
{
|
|
|
|
|
|
return SUCCESS(null);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var response = materialInputService.FinishBatchingTask(start_point, end_point, taskId);
|
|
|
|
|
|
return SUCCESS(response);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-04-30 14:18:00 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 空车返程
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="start_point"></param>
|
|
|
|
|
|
/// <param name="end_point"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpGet("emptycarreturn")]
|
2024-05-14 15:41:42 +08:00
|
|
|
|
public IActionResult Emptycarreturn(string start_point, string end_point, string agvCode = "1743 ")
|
2024-04-30 14:18:00 +08:00
|
|
|
|
{
|
|
|
|
|
|
if (string.IsNullOrEmpty(start_point) || string.IsNullOrEmpty(end_point))
|
|
|
|
|
|
{
|
|
|
|
|
|
SUCCESS(null);
|
|
|
|
|
|
}
|
2024-05-14 15:41:42 +08:00
|
|
|
|
var response = materialInputService.AGV_schedule(start_point, end_point,agvCode);
|
2024-04-30 14:18:00 +08:00
|
|
|
|
|
|
|
|
|
|
return SUCCESS(response);
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 车间返程起点
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpGet("emptycarreturn_start")]
|
|
|
|
|
|
public IActionResult Emptycarreturn_start()
|
|
|
|
|
|
{
|
|
|
|
|
|
string[] response = materialInputService.Emptycarreturn_start();
|
|
|
|
|
|
|
|
|
|
|
|
return SUCCESS(response);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 车间返程终点
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
[HttpGet("emptycarreturn_end")]
|
|
|
|
|
|
public IActionResult Emptycarreturn_end()
|
|
|
|
|
|
{
|
|
|
|
|
|
string[] response = materialInputService.Emptycarreturn_end();
|
|
|
|
|
|
|
|
|
|
|
|
return SUCCESS(response);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-04-25 08:47:25 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|