油漆实验室批量工单获取(未全部完成)

This commit is contained in:
2025-03-18 13:09:27 +08:00
parent 47f793fcd4
commit dc032c01c6
2 changed files with 120 additions and 0 deletions

View File

@@ -16,5 +16,8 @@ namespace ZR.Service.mes.ql.IService
public int UpdatePLBatchRecords(List<PLBatch> list);
public int CreatePLBatchRecordsByWorkOrder(DateTime actionDate);
}
}

View File

@@ -1,6 +1,8 @@
using Infrastructure.Attribute;
using SqlSugar;
using System;
using System.Globalization;
using ZR.Model.MES.pro;
using ZR.Model.MES.ql;
using ZR.Service.mes.ql.IService;
@@ -46,6 +48,87 @@ namespace ZR.Service.mes.ql
return ret;
}
/// <summary>
/// 根据生成日期,自动更新
/// </summary>
/// <param name="actionDate">操作日期</param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
public int CreatePLBatchRecordsByWorkOrder(DateTime actionDate)
{
try
{
Context.Ado.BeginTran();
// 查询工单
int year = actionDate.Year;
int week = GetWeekOfYear(actionDate);
int date = ConvertDayOfWeekToCustomFormat(actionDate.DayOfWeek);
var predicate = Expressionable
.Create<ProWorkorder_v2>()
.And(it => it.Year == year)
.And(it => it.Week == week)
.And(it => it.Date == date)
//.And(it => it.Remark2.Contains("调试"))
.And(it => it.Remark3 == "是")
.ToExpression();
List<ProWorkorder_v2> workOrderList = Context.Queryable<ProWorkorder_v2>()
.Where(predicate)
.OrderBy(it => it.Sort)
.ToList();
foreach(ProWorkorder_v2 workorder in workOrderList)
{
}
Context.Ado.CommitTran();
return 1;
}
catch (Exception)
{
Context.Ado.RollbackTran();
throw;
}
}
/// <summary>
/// 根据工单创建批量检测数据
/// </summary>
/// <param name="num"></param>
/// <param name="size"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
public List<PLBatch> CreatePLBatchRecordsByWorkOrder(ProWorkorder_v2 workorder)
{
PLBatch t1 = GetDefaultPLBatch();
PLBatch t2 = GetDefaultPLBatch();
PLBatch t3 = GetDefaultPLBatch();
PLBatch t4 = GetDefaultPLBatch();
PLBatch t5 = GetDefaultPLBatch();
PLBatch t6 = GetDefaultPLBatch();
t1.Value01 = "15°"; t1.Value07 = "0"; t1.Value09 = "R1"; t1.Value14 = "底漆"; t1.Value19 = "2";
t2.Value01 = "25°"; t2.Value07 = "0"; t2.Value09 = "R2"; t2.Value14 = "色漆"; t2.Value19 = "2";
t3.Value01 = "45°"; t3.Value07 = "0"; t3.Value09 = "R3"; t3.Value14 = "云母"; t3.Value19 = "2";
t4.Value01 = "75°"; t4.Value07 = "0"; t4.Value09 = "R4"; t4.Value14 = "清漆"; t4.Value19 = "2";
t5.Value01 = "110°"; t5.Value07 = "0"; t5.Value09 = "R5"; t5.Value14 = "总膜厚"; t5.Value19 = "2";
t6.Value01 = ""; t6.Value07 = "0"; t6.Value09 = "R6"; t6.Value14 = ""; t6.Value19 = "2";
t2.IdGroup = t1.IdGroup;
t3.IdGroup = t1.IdGroup;
t4.IdGroup = t1.IdGroup;
t5.IdGroup = t1.IdGroup;
t6.IdGroup = t1.IdGroup;
List<PLBatch> list = new()
{
t1,
t2,
t3,
t4,
t5,
t6
};
return list;
}
/// <summary>
/// 删除批处理数据
/// </summary>
@@ -132,5 +215,39 @@ namespace ZR.Service.mes.ql
UpdatedTime = DateTime.Now,
};
}
/// <summary>
/// 获取今天是本年的第几周
/// </summary>
/// <param name="date"></param>
/// <returns></returns>
static int GetWeekOfYear(DateTime date)
{
// 使用ISO 8601标准计算一年中的第几周
return CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(
date,
CalendarWeekRule.FirstFourDayWeek, // 每年的第一周必须至少有4天属于该年
DayOfWeek.Monday
); // 设置一周的第一天为星期一
}
/// <summary>
/// 获取星期几的数字7为周日
/// </summary>
/// <param name="dayOfWeek"></param>
/// <returns></returns>
static int ConvertDayOfWeekToCustomFormat(DayOfWeek dayOfWeek)
{
// 将 DayOfWeek 枚举值转换为自定义格式周一为1周日为7
if (dayOfWeek == DayOfWeek.Sunday)
{
return 7;
}
else
{
return (int)dayOfWeek + 1;
}
}
}
}