This commit is contained in:
qianhao.xu
2024-05-13 10:05:09 +08:00
parent cc50aa458a
commit e24a6de4c8
4 changed files with 53 additions and 30 deletions

View File

@@ -17,7 +17,9 @@ namespace ZR.Model.MES.mm.Dto
public class Workerorder_Ingredient public class Workerorder_Ingredient
{ {
public string workorder { set; get; } public string workorder { set; get; }
public string partnumber { set; get; }
public string blanknumber { set; get; }
public int previousNumber { set; get; } public int previousNumber { set; get; }
public int previousNumbered { set; get; } public int previousNumbered { set; get; }
} }

View File

@@ -25,6 +25,12 @@ namespace ZR.Service.mes.mm
[SugarColumn(IsPrimaryKey = true, IsIdentity = false, ColumnName = "fk_workorder")] [SugarColumn(IsPrimaryKey = true, IsIdentity = false, ColumnName = "fk_workorder")]
public string FkWorkorder { get; set; } public string FkWorkorder { get; set; }
/// <summary>
/// 毛坯号
/// </summary>
[SugarColumn(IsPrimaryKey = true, IsIdentity = false, ColumnName = "fk_blanknumber")]
public string FkBlanknumber { get; set; }
/// <summary> /// <summary>
/// 是否完成配料 /// 是否完成配料
/// </summary> /// </summary>
@@ -33,7 +39,11 @@ namespace ZR.Service.mes.mm
/// <summary> /// <summary>
/// 剩余的待上件数量 /// 剩余的待上件数量
/// </summary> /// </summary>
public int? Remian { get; set; } [SugarColumn(ColumnName = "previous_numbered")]
public int? Previous_numbered { get; set; }
/// <summary> /// <summary>
/// CreatedBy /// CreatedBy

View File

@@ -36,9 +36,10 @@ namespace ZR.Model.MES.mm
public string Workorder { get; set; } public string Workorder { get; set; }
/// <summary> /// <summary>
/// 零件号id /// 毛坯号
/// </summary> /// </summary>
public string Partnumber { get; set; } [SugarColumn(ColumnName = "blanknumber")]
public string Blanknumber { get; set; }
/// <summary> /// <summary>
/// 上件数 /// 上件数

View File

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