diff --git a/ZR.Service/mes/mm/MaterialInputService.cs b/ZR.Service/mes/mm/MaterialInputService.cs index cb5805d8..2d63b86e 100644 --- a/ZR.Service/mes/mm/MaterialInputService.cs +++ b/ZR.Service/mes/mm/MaterialInputService.cs @@ -76,39 +76,45 @@ namespace ZR.Service.mes.mm DayOfWeek dayOfWeek = datetimespan.DayOfWeek; int dayOfWeekNumber = (int)dayOfWeek + 1; // 将 DayOfWeek 枚举转换为从 1 开始的数字 - + List WorkorderList = Context.Queryable() .Where(it => it.Year == year) .Where(it => it.Week == week) .Where(it => it.Date == dayOfWeekNumber) - .Where(it=>it.Remark3=="是") + .Where(it => it.Remark3 == "是") .ToList(); - string[] workorderArray=new string[WorkorderList.Count]; - for(int i = 0; i< WorkorderList.Count; i++) + foreach (ProWorkorder_v2 workorder in WorkorderList) { - workorderArray[i] = WorkorderList[i].ClientWorkorder; - } - // 配料list - List ingredients=Context.Queryable() - .Where(it=> workorderArray.Contains(it.FkWorkorder)) - .Where(it=> it.Isingredient==0) - .ToList(); - for (int i = 0; i < WorkorderList.Count; i++) - { - for (int j = 0; j < ingredients.Count; j++) + bool isExist = Context.Queryable() + .Where(it => it.FkWorkorder == workorder.ClientWorkorder) + .Any(); + + if (!isExist) { - if (ingredients[j].FkWorkorder == WorkorderList[i].ClientWorkorder) + MmFkWorkorderIngredient ingredient = new MmFkWorkorderIngredient(); + ingredient.FkWorkorder = workorder.ClientWorkorder; + ingredient.Isingredient = 0; + ingredient.Remian = workorder.PreviousNumber; + ingredient.CreatedTime = DateTime.Now; + Context.Insertable(ingredient).ExecuteCommand(); + } + else + { + var ingredient = Context.Queryable() + .Where(it => it.FkWorkorder == workorder.ClientWorkorder) + .First(); + if (ingredient != null) { - WorkorderList[i].PreviousNumber = ingredients[j].Remian ?? 0; - + workorder.PreviousNumber = ingredient.Remian ?? 0; } } - + + } - return WorkorderList; + return WorkorderList.Where(it => it.PreviousNumber > 0).ToList(); } /// @@ -116,56 +122,52 @@ namespace ZR.Service.mes.mm /// /// /// - public int Generatetask(IngredientTaskDto task,string name) + public int Generatetask(IngredientTaskDto task, string name) { - List ingredientTasks=new List (); - long taskid= SnowFlakeSingle.Instance.NextId(); - foreach (var item in task.workorders) + List ingredientTasks = new List(); + long taskid = SnowFlakeSingle.Instance.NextId(); + foreach (var item in task.workorders) { - //TODO 处理 未完成的工单 - //1 判断为未完成的工单 - if (item.previousNumber > item.previousNumbered) - { - int remain = item.previousNumber - item.previousNumbered; - - //插入或者修改 - MmFkWorkorderIngredient ingredient=new MmFkWorkorderIngredient(); - ingredient.FkWorkorder=item.workorder; - ingredient.Isingredient=0; - ingredient.Remian = remain; - ingredient.CreatedTime=DateTime.Now; - ingredient.UpdatedTime=DateTime.Now; - - var x = Context.Storageable(ingredient).ToStorage(); - x.AsInsertable.ExecuteCommand();//不存在插入 - x.AsUpdateable.IgnoreColumns(z => z.CreatedTime).ExecuteCommand();//存在更新 - - } - else if (item.previousNumber==item.previousNumbered) + //todo 更改待上料数量 + int remian = item.previousNumber - item.previousNumbered; + if (remian == 0) { Context.Updateable() - .SetColumns(it => it.Isingredient == 1) - .SetColumns(it => it.Remian == 0) - .Where(it => it.FkWorkorder == item.workorder).ExecuteCommand(); + .Where(it => it.FkWorkorder == item.workorder) + .SetColumns(it => it.Remian == remian) + .SetColumns(it => it.Isingredient == 1) + .SetColumns(it => it.UpdatedTime == DateTime.Now) + .ExecuteCommand(); + } - + else + { + Context.Updateable() + .Where(it => it.FkWorkorder == item.workorder) + .SetColumns(it => it.Remian == remian) + .SetColumns(it => it.UpdatedTime == DateTime.Now) + .ExecuteCommand(); + + } + + MmIngredientTask ingredientTask = new MmIngredientTask(); ingredientTask.AgvPosition = task.agv_position; ingredientTask.TaskId = taskid; ingredientTask.Workorder = item.workorder; ingredientTask.Partnumber = item.partnumber; ingredientTask.PreviousNumber = item.previousNumber; - ingredientTask.PreviousNumbered=item.previousNumbered; + ingredientTask.PreviousNumbered = item.previousNumbered; ingredientTask.CreatedBy = name; - ingredientTask.CreatedTime=DateTime.Now; + ingredientTask.CreatedTime = DateTime.Now; ingredientTasks.Add(ingredientTask); } - return Context.Insertable(ingredientTasks).ExecuteCommand(); - + return Context.Insertable(ingredientTasks).ExecuteCommand(); + }