配料任务完成

This commit is contained in:
qianhao.xu
2024-04-28 16:56:44 +08:00
parent cffe4b138f
commit 96bb0fa527

View File

@@ -76,39 +76,45 @@ namespace ZR.Service.mes.mm
DayOfWeek dayOfWeek = datetimespan.DayOfWeek; DayOfWeek dayOfWeek = datetimespan.DayOfWeek;
int dayOfWeekNumber = (int)dayOfWeek + 1; // 将 DayOfWeek 枚举转换为从 1 开始的数字 int dayOfWeekNumber = (int)dayOfWeek + 1; // 将 DayOfWeek 枚举转换为从 1 开始的数字
List<ProWorkorder_v2> WorkorderList = Context.Queryable<ProWorkorder_v2>() List<ProWorkorder_v2> WorkorderList = Context.Queryable<ProWorkorder_v2>()
.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.Remark3=="是") .Where(it => it.Remark3 == "是")
.ToList(); .ToList();
string[] workorderArray=new string[WorkorderList.Count]; foreach (ProWorkorder_v2 workorder in WorkorderList)
for(int i = 0; i< WorkorderList.Count; i++)
{ {
workorderArray[i] = WorkorderList[i].ClientWorkorder; bool isExist = Context.Queryable<MmFkWorkorderIngredient>()
} .Where(it => it.FkWorkorder == workorder.ClientWorkorder)
// 配料list .Any();
List<MmFkWorkorderIngredient> ingredients=Context.Queryable<MmFkWorkorderIngredient>()
.Where(it=> workorderArray.Contains(it.FkWorkorder)) if (!isExist)
.Where(it=> it.Isingredient==0)
.ToList();
for (int i = 0; i < WorkorderList.Count; i++)
{
for (int j = 0; j < ingredients.Count; j++)
{ {
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<MmFkWorkorderIngredient>()
.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();
} }
/// <summary> /// <summary>
@@ -116,56 +122,52 @@ namespace ZR.Service.mes.mm
/// </summary> /// </summary>
/// <param name="task"></param> /// <param name="task"></param>
/// <returns></returns> /// <returns></returns>
public int Generatetask(IngredientTaskDto task,string name) public int Generatetask(IngredientTaskDto task, string name)
{ {
List<MmIngredientTask> ingredientTasks=new List<MmIngredientTask> (); List<MmIngredientTask> ingredientTasks = new List<MmIngredientTask>();
long taskid= SnowFlakeSingle.Instance.NextId(); long taskid = SnowFlakeSingle.Instance.NextId();
foreach (var item in task.workorders) foreach (var item in task.workorders)
{ {
//TODO 处理 未完成的工单 //todo 更改待上料数量
//1 判断为未完成的工单 int remian = item.previousNumber - item.previousNumbered;
if (item.previousNumber > item.previousNumbered) if (remian == 0)
{
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)
{ {
Context.Updateable<MmFkWorkorderIngredient>() Context.Updateable<MmFkWorkorderIngredient>()
.SetColumns(it => it.Isingredient == 1) .Where(it => it.FkWorkorder == item.workorder)
.SetColumns(it => it.Remian == 0) .SetColumns(it => it.Remian == remian)
.Where(it => it.FkWorkorder == item.workorder).ExecuteCommand(); .SetColumns(it => it.Isingredient == 1)
.SetColumns(it => it.UpdatedTime == DateTime.Now)
.ExecuteCommand();
} }
else
{
Context.Updateable<MmFkWorkorderIngredient>()
.Where(it => it.FkWorkorder == item.workorder)
.SetColumns(it => it.Remian == remian)
.SetColumns(it => it.UpdatedTime == DateTime.Now)
.ExecuteCommand();
}
MmIngredientTask ingredientTask = new MmIngredientTask(); MmIngredientTask ingredientTask = new MmIngredientTask();
ingredientTask.AgvPosition = task.agv_position; ingredientTask.AgvPosition = task.agv_position;
ingredientTask.TaskId = taskid; ingredientTask.TaskId = taskid;
ingredientTask.Workorder = item.workorder; ingredientTask.Workorder = item.workorder;
ingredientTask.Partnumber = item.partnumber; ingredientTask.Partnumber = item.partnumber;
ingredientTask.PreviousNumber = item.previousNumber; ingredientTask.PreviousNumber = item.previousNumber;
ingredientTask.PreviousNumbered=item.previousNumbered; ingredientTask.PreviousNumbered = item.previousNumbered;
ingredientTask.CreatedBy = name; ingredientTask.CreatedBy = name;
ingredientTask.CreatedTime=DateTime.Now; ingredientTask.CreatedTime = DateTime.Now;
ingredientTasks.Add(ingredientTask); ingredientTasks.Add(ingredientTask);
} }
return Context.Insertable(ingredientTasks).ExecuteCommand(); return Context.Insertable(ingredientTasks).ExecuteCommand();
} }