|
|
|
|
@@ -78,7 +78,7 @@ namespace ZR.Service.mes.mm
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="datetimespan"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public (List<ProWorkorder_v2>,int) Getworkorderlist(WorkorderqueryDto query)
|
|
|
|
|
public (List<ProWorkorder_v2>, int) Getworkorderlist(WorkorderqueryDto query)
|
|
|
|
|
{
|
|
|
|
|
DateTime datetimespan = query.datetimespan;
|
|
|
|
|
|
|
|
|
|
@@ -97,19 +97,21 @@ namespace ZR.Service.mes.mm
|
|
|
|
|
.Where(it => it.Year == year)
|
|
|
|
|
.Where(it => it.Week == week)
|
|
|
|
|
.Where(it => it.Date == dayOfWeekNumber)
|
|
|
|
|
.Where(it=>it.Status==0)
|
|
|
|
|
.Where(it => it.Remark3 == "是" || it.Remark1 == "调试")
|
|
|
|
|
.ToList();
|
|
|
|
|
// .ToPageList(query.pageNum??1, query.pageSize??10, ref total);
|
|
|
|
|
// .ToPageList(query.pageNum??1, query.pageSize??10, ref total);
|
|
|
|
|
|
|
|
|
|
foreach (ProWorkorder_v2 workorder in WorkorderList)
|
|
|
|
|
{
|
|
|
|
|
if(string.IsNullOrEmpty(workorder.ClientWorkorder))
|
|
|
|
|
if (string.IsNullOrEmpty(workorder.ClientWorkorder))
|
|
|
|
|
{
|
|
|
|
|
workorder.ClientWorkorder = "调试:" + workorder.Id;
|
|
|
|
|
}
|
|
|
|
|
// 配料任务
|
|
|
|
|
bool isExist = Context.Queryable<MmFkWorkorderIngredient>()
|
|
|
|
|
.Where(it => it.FkWorkorder == workorder.ClientWorkorder)
|
|
|
|
|
.Where(it => it.FkBlanknumber == workorder.BlankNumber)
|
|
|
|
|
.Any();
|
|
|
|
|
|
|
|
|
|
if (!isExist)
|
|
|
|
|
@@ -117,28 +119,33 @@ namespace ZR.Service.mes.mm
|
|
|
|
|
//插入配料任务
|
|
|
|
|
MmFkWorkorderIngredient ingredient = new MmFkWorkorderIngredient();
|
|
|
|
|
ingredient.FkWorkorder = workorder.ClientWorkorder ?? ("调试:" + workorder.Id);
|
|
|
|
|
ingredient.FkBlanknumber = workorder.BlankNumber;
|
|
|
|
|
ingredient.Isingredient = 0;
|
|
|
|
|
ingredient.Remian = workorder.PreviousNumber;
|
|
|
|
|
ingredient.Previous_numbered = workorder.PreviousNumber;
|
|
|
|
|
ingredient.CreatedTime = DateTime.Now;
|
|
|
|
|
Context.Insertable(ingredient).ExecuteCommand();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
// todo 有个漏洞 如果计划单 修改数量 remian 就不对
|
|
|
|
|
var ingredient = Context.Queryable<MmFkWorkorderIngredient>()
|
|
|
|
|
.Where(it => it.FkWorkorder == workorder.ClientWorkorder)
|
|
|
|
|
.First();
|
|
|
|
|
.Where(it => it.FkBlanknumber == workorder.BlankNumber)
|
|
|
|
|
.First();
|
|
|
|
|
|
|
|
|
|
if (ingredient != null)
|
|
|
|
|
{
|
|
|
|
|
workorder.PreviousNumber = ingredient.Remian ?? 0;
|
|
|
|
|
|
|
|
|
|
workorder.PreviousNumber = workorder.PreviousNumber - ingredient.Previous_numbered ?? 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
WorkorderList.RemoveAll(num => num.PreviousNumber <= 0);
|
|
|
|
|
total= WorkorderList.Count;
|
|
|
|
|
total = WorkorderList.Count;
|
|
|
|
|
|
|
|
|
|
int skip = ((query.pageNum ?? 1)-1)*(query.pageSize ?? 10);
|
|
|
|
|
var returndata= WorkorderList
|
|
|
|
|
int skip = ((query.pageNum ?? 1) - 1) * (query.pageSize ?? 10);
|
|
|
|
|
var returndata = WorkorderList
|
|
|
|
|
.OrderBy(it => it.ClientWorkorder)
|
|
|
|
|
.Skip(skip)
|
|
|
|
|
.Take(query.pageSize ?? 10)
|
|
|
|
|
@@ -164,7 +171,8 @@ namespace ZR.Service.mes.mm
|
|
|
|
|
{
|
|
|
|
|
Context.Updateable<MmFkWorkorderIngredient>()
|
|
|
|
|
.Where(it => it.FkWorkorder == item.workorder)
|
|
|
|
|
.SetColumns(it => it.Remian == remian)
|
|
|
|
|
.Where(it => it.FkBlanknumber == item.blanknumber)
|
|
|
|
|
.SetColumns(it => it.Previous_numbered == item.previousNumbered)
|
|
|
|
|
.SetColumns(it => it.Isingredient == 1)
|
|
|
|
|
.SetColumns(it => it.UpdatedTime == DateTime.Now)
|
|
|
|
|
.ExecuteCommand();
|
|
|
|
|
@@ -174,8 +182,10 @@ namespace ZR.Service.mes.mm
|
|
|
|
|
{
|
|
|
|
|
Context.Updateable<MmFkWorkorderIngredient>()
|
|
|
|
|
.Where(it => it.FkWorkorder == item.workorder)
|
|
|
|
|
.SetColumns(it => it.Remian == remian)
|
|
|
|
|
.Where(it => it.FkBlanknumber == item.blanknumber)
|
|
|
|
|
.SetColumns(it => it.Previous_numbered == item.previousNumbered)
|
|
|
|
|
.SetColumns(it => it.UpdatedTime == DateTime.Now)
|
|
|
|
|
.SetColumns(it => it.Isingredient == 0)
|
|
|
|
|
.ExecuteCommand();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
@@ -185,7 +195,7 @@ namespace ZR.Service.mes.mm
|
|
|
|
|
ingredientTask.AgvPosition = task.agv_position;
|
|
|
|
|
ingredientTask.TaskId = taskid.ToString();
|
|
|
|
|
ingredientTask.Workorder = item.workorder;
|
|
|
|
|
ingredientTask.Partnumber = item.partnumber;
|
|
|
|
|
ingredientTask.Blanknumber = item.blanknumber;
|
|
|
|
|
ingredientTask.Isfinal = 0;
|
|
|
|
|
ingredientTask.PreviousNumber = item.previousNumber;
|
|
|
|
|
ingredientTask.PreviousNumbered = item.previousNumbered;
|
|
|
|
|
@@ -260,22 +270,22 @@ 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();
|
|
|
|
|
// 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";
|
|
|
|
|
// MmAgvLocation start_object = Context.Queryable<MmAgvLocation>().Where(it => it.Coordinate == start_point).First();
|
|
|
|
|
// MmAgvLocation end_object = Context.Queryable<MmAgvLocation>().Where(it => it.Coordinate == end_point).First();
|
|
|
|
|
// MmAgvLocation start_object = Context.Queryable<MmAgvLocation>().Where(it => it.Coordinate == start_point).First();
|
|
|
|
|
// MmAgvLocation end_object = Context.Queryable<MmAgvLocation>().Where(it => it.Coordinate == end_point).First();
|
|
|
|
|
//判断是否跨楼层
|
|
|
|
|
if(end_point=="R1"|| start_point == "R1")
|
|
|
|
|
if (end_point == "R1" || start_point == "R1")
|
|
|
|
|
{
|
|
|
|
|
task.taskTyp = "KLC";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
task.positionCodePath = new List<AGV_location_third>
|
|
|
|
|
{
|
|
|
|
|
new AGV_location_third()
|
|
|
|
|
@@ -311,7 +321,7 @@ namespace ZR.Service.mes.mm
|
|
|
|
|
/// <param name="reqCode"></param>
|
|
|
|
|
public string EmergencyStopAgv(string reqCode)
|
|
|
|
|
{
|
|
|
|
|
logger.Info("\n 0.取消任务taskcode= "+ reqCode);
|
|
|
|
|
logger.Info("\n 0.取消任务taskcode= " + reqCode);
|
|
|
|
|
string url = "https://192.168.60.1:443/rcms/services/rest/hikRpcService/cancelTask";
|
|
|
|
|
|
|
|
|
|
logger.Info(" 1.紧急终止AGV请求url " + url);
|
|
|
|
|
@@ -345,15 +355,15 @@ 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();
|
|
|
|
|
List<MmIngredientTask> tasks= Context.Queryable<MmIngredientTask>().Where(it => it.TaskId.Equals(taskId)).ToList();
|
|
|
|
|
for(int i=0; i<tasks.Count; i++)
|
|
|
|
|
// 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();
|
|
|
|
|
List<MmIngredientTask> tasks = Context.Queryable<MmIngredientTask>().Where(it => it.TaskId.Equals(taskId)).ToList();
|
|
|
|
|
for (int i = 0; i < tasks.Count; i++)
|
|
|
|
|
{
|
|
|
|
|
if (!string.IsNullOrEmpty(tasks[i].Workorder))
|
|
|
|
|
{
|
|
|
|
|
Context.Updateable<ProWorkorder_v2>().Where(it=>it.ClientWorkorder== tasks[i].Workorder).SetColumns(it => it.Status == 1).ExecuteCommand();
|
|
|
|
|
Context.Updateable<ProWorkorder_v2>().Where(it => it.ClientWorkorder == tasks[i].Workorder).SetColumns(it => it.Status == 1).ExecuteCommand();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|