This commit is contained in:
qianhao.xu 2024-04-28 15:18:44 +08:00
parent f88400eb00
commit 88c342751e
3 changed files with 120 additions and 7 deletions

View File

@ -68,11 +68,10 @@ namespace ZR.Admin.WebApi.Controllers.mes.mm
[HttpPost("generatetask")]
public IActionResult Generatetask([FromBody] IngredientTaskDto task)
{
if(task==null||task.workorders==null)
if(task==null||task.workorders==null|| task.workorders.Count==0)
{
SUCCESS(null);
return SUCCESS(null);
}
task.ToCreate();
int res = materialInputService.Generatetask(task, HttpContext.GetName());
return SUCCESS(res);
}

View File

@ -16,6 +16,7 @@ using System.Globalization;
using static System.Runtime.InteropServices.JavaScript.JSType;
using ZR.Model.MES.mm.Dto;
using SqlSugar;
using Microsoft.Extensions.Hosting;
namespace ZR.Service.mes.mm
{
@ -83,9 +84,31 @@ namespace ZR.Service.mes.mm
.Where(it => it.Date == dayOfWeekNumber)
.Where(it=>it.Remark3=="是")
.ToList();
string[] workorderArray=new string[WorkorderList.Count];
for(int i = 0; i< WorkorderList.Count; i++)
{
workorderArray[i] = WorkorderList[i].ClientWorkorder;
}
// 配料list
List<MmFkWorkorderIngredient> ingredients=Context.Queryable<MmFkWorkorderIngredient>()
.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++)
{
if (ingredients[j].FkWorkorder == WorkorderList[i].ClientWorkorder)
{
WorkorderList[i].PreviousNumber = ingredients[j].Remian ?? 0;
}
}
}
return WorkorderList;
return WorkorderList;
}
/// <summary>
@ -96,17 +119,45 @@ namespace ZR.Service.mes.mm
public int Generatetask(IngredientTaskDto task,string name)
{
List<MmIngredientTask> ingredientTasks=new List<MmIngredientTask> ();
foreach(var item in task.workorders)
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)
{
Context.Updateable<MmFkWorkorderIngredient>()
.SetColumns(it => it.Isingredient == 1)
.SetColumns(it => it.Remian == 0)
.Where(it => it.FkWorkorder == item.workorder).ExecuteCommand();
}
MmIngredientTask ingredientTask = new MmIngredientTask();
ingredientTask.AgvPosition = task.agv_position;
ingredientTask.TaskId = SnowFlakeSingle.Instance.NextId();
ingredientTask.TaskId = taskid;
ingredientTask.Workorder = item.workorder;
ingredientTask.Partnumber = item.partnumber;
ingredientTask.PreviousNumber = item.previousNumber;
ingredientTask.PreviousNumbered=item.previousNumbered;
ingredientTask.CreatedBy = name;
ingredientTask.CreatedTime=DateTime.Now;
ingredientTasks.Add(ingredientTask);

View File

@ -0,0 +1,63 @@
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ZR.Service.mes.mm
{
/// <summary>
///
/// </summary>
[SugarTable("mm_fk_workorder_ingredient")]
public class MmFkWorkorderIngredient
{
/// <summary>
/// Id
/// </summary>
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
public int Id { get; set; }
/// <summary>
/// 工单号
/// </summary>
[SugarColumn(IsPrimaryKey = true, IsIdentity = false, ColumnName = "fk_workorder")]
public string FkWorkorder { get; set; }
/// <summary>
/// 是否完成配料
/// </summary>
public int? Isingredient { get; set; }
/// <summary>
/// 剩余的待上件数量
/// </summary>
public int? Remian { get; set; }
/// <summary>
/// CreatedBy
/// </summary>
[SugarColumn(ColumnName = "cREATED_BY")]
public string CreatedBy { get; set; }
/// <summary>
/// CreatedTime
/// </summary>
[SugarColumn(ColumnName = "cREATED_TIME")]
public DateTime? CreatedTime { get; set; }
/// <summary>
/// UpdatedBy
/// </summary>
[SugarColumn(ColumnName = "uPDATED_BY")]
public string UpdatedBy { get; set; }
/// <summary>
/// UpdatedTime
/// </summary>
[SugarColumn(ColumnName = "uPDATED_TIME")]
public DateTime? UpdatedTime { get; set; }
}
}