chengpingruku
This commit is contained in:
@@ -195,5 +195,49 @@ namespace ZR.Admin.WebApi.Controllers.mes.mm
|
||||
return SUCCESS(response);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 空车返程
|
||||
/// </summary>
|
||||
/// <param name="start_point"></param>
|
||||
/// <param name="end_point"></param>
|
||||
/// <returns></returns>
|
||||
[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);
|
||||
}
|
||||
/// <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);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
/// <summary>
|
||||
/// 成品入库
|
||||
/// </summary>
|
||||
[Verify]
|
||||
[Route("mes/mm/MmFinishedwarehouse")]
|
||||
public class MmFinishedwarehouseController : BaseController
|
||||
{
|
||||
|
||||
IMmFinishedwarehouseService finishedwarehouseService;
|
||||
public MmFinishedwarehouseController(IMmFinishedwarehouseService finishedwarehouseService)
|
||||
{
|
||||
this. finishedwarehouseService=finishedwarehouseService;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 成品入库位置
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet("finish_point")]
|
||||
public IActionResult Finish_point()
|
||||
{
|
||||
string[] response = finishedwarehouseService.Finish_point();
|
||||
|
||||
return SUCCESS(response);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
13
ZR.Service/mes/mm/IService/IMmFinishedwarehouseService.cs
Normal file
13
ZR.Service/mes/mm/IService/IMmFinishedwarehouseService.cs
Normal file
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -27,6 +27,13 @@ namespace ZR.Service.mes.mm
|
||||
[AppService(ServiceType = typeof(IMaterialInputService), ServiceLifetime = LifeTime.Transient)]
|
||||
public class MaterialInputService : BaseService<MmAgvLocation>, IMaterialInputService
|
||||
{
|
||||
private NLog.Logger logger;
|
||||
|
||||
public MaterialInputService()
|
||||
{
|
||||
logger = NLog.LogManager.GetCurrentClassLogger();
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取AGV上料起点
|
||||
/// </summary>
|
||||
@@ -190,7 +197,7 @@ namespace ZR.Service.mes.mm
|
||||
DateTime endOfDay = startOfDay.AddDays(1).AddTicks(-1);
|
||||
return Context.Queryable<MmIngredientTask>()
|
||||
.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
|
||||
/// <returns></returns>
|
||||
public string AGV_schedule(string start_point, string end_point)
|
||||
{
|
||||
// Context.Updateable<MmAgvLocation>().Where(it => it.Coordinate == start_point).SetColumns(it => it.Status == 0).ExecuteCommand();
|
||||
// Context.Updateable<MmAgvLocation>().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<MmAgvLocation>().Where(it => it.Coordinate == start_point).SetColumns(it => it.Status == 0).ExecuteCommand();
|
||||
Context.Updateable<MmAgvLocation>().Where(it => it.Coordinate == end_point).SetColumns(it => it.Status == 1).ExecuteCommand();
|
||||
result= Context.Updateable<MmIngredientTask>().Where(it => it.TaskId.Equals(taskId)).SetColumns(it => it.Isfinal == 1).ExecuteCommand();
|
||||
// Context.Updateable<MmAgvLocation>().Where(it => it.Coordinate == start_point).SetColumns(it => it.Status == 0).ExecuteCommand();
|
||||
// Context.Updateable<MmAgvLocation>().Where(it => it.Coordinate == end_point).SetColumns(it => it.Status == 1).ExecuteCommand();
|
||||
result = Context.Updateable<MmIngredientTask>().Where(it => it.TaskId.Equals(taskId)).SetColumns(it => it.Isfinal == 1).ExecuteCommand();
|
||||
});
|
||||
return result;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 车间返程起点
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string[] Emptycarreturn_start()
|
||||
{
|
||||
List<MmAgvLocation> positions = Context.Queryable<MmAgvLocation>()
|
||||
.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;
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 车间返程终点
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string[] Emptycarreturn_end()
|
||||
{
|
||||
List<MmAgvLocation> positions = Context.Queryable<MmAgvLocation>()
|
||||
.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;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
31
ZR.Service/mes/mm/MmFinishedwarehouseService.cs
Normal file
31
ZR.Service/mes/mm/MmFinishedwarehouseService.cs
Normal file
@@ -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<MmAgvLocation>, IMmFinishedwarehouseService
|
||||
{
|
||||
|
||||
public string[] Finish_point()
|
||||
{
|
||||
List<MmAgvLocation> positions = Context.Queryable<MmAgvLocation>()
|
||||
.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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -28,6 +28,11 @@ namespace ZR.Service.mes.wms
|
||||
[AppService(ServiceType = typeof(IWmOutOrderService), ServiceLifetime = LifeTime.Transient)]
|
||||
public class WmOutOrderService : BaseService<WmOutOrder>, IWmOutOrderService
|
||||
{
|
||||
private NLog.Logger logger;
|
||||
public WmOutOrderService()
|
||||
{
|
||||
logger = NLog.LogManager.GetCurrentClassLogger();
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
@@ -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<WmOutOrderPlan>()
|
||||
.Where(it => it.FkOutOrderId == shipment_num)
|
||||
.Where(it => it.Patchcode == short_path)
|
||||
@@ -765,7 +770,7 @@ namespace ZR.Service.mes.wms
|
||||
/// <param name="shortPackageCode">短批次号</param>
|
||||
/// <returns> "ok" 代表通过,其余返回错误提示</returns>
|
||||
/// <exception cref="NotImplementedException"></exception>
|
||||
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<WmOutOrderPlan>()
|
||||
@@ -780,7 +785,7 @@ namespace ZR.Service.mes.wms
|
||||
return "此批次号不在出库单计划中!";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// 1.取出出库单计划
|
||||
List<WmOutOrderPlan> plans = Context.Queryable<WmOutOrderPlan>()
|
||||
@@ -812,7 +817,7 @@ namespace ZR.Service.mes.wms
|
||||
// 按顺序检查是否出完
|
||||
if (plan.Patchcode != shortPackageCode)
|
||||
{
|
||||
|
||||
|
||||
// 检查此批次是否出完
|
||||
if (outPartnumberNum >= plan.RequireNum)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user