254 lines
9.6 KiB
C#
254 lines
9.6 KiB
C#
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;
|
||
|
||
namespace ZR.Service.mes.ql
|
||
{
|
||
/// <summary>
|
||
/// 查询报表
|
||
/// </summary>
|
||
[AppService(ServiceType = typeof(IPLBatchService), ServiceLifetime = LifeTime.Transient)]
|
||
public class PLBatchService : BaseService<PLBatch>, IPLBatchService
|
||
{
|
||
/// <summary>
|
||
/// 增加批处理数据
|
||
/// </summary>
|
||
/// <param name="num"></param>
|
||
/// <param name="size"></param>
|
||
/// <returns></returns>
|
||
/// <exception cref="NotImplementedException"></exception>
|
||
public int AddPLBatchRecords(int num, int size)
|
||
{
|
||
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> lst = new List<PLBatch>();
|
||
lst.Add(t1); lst.Add(t2); lst.Add(t3); lst.Add(t4); lst.Add(t5); lst.Add(t6);
|
||
|
||
int ret = Context.Insertable<PLBatch>(lst).ExecuteReturnIdentity();
|
||
|
||
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>
|
||
/// <param name="idGroup"></param>
|
||
/// <returns></returns>
|
||
/// <exception cref="NotImplementedException"></exception>
|
||
public int DelPLBatchRecords(string idGroup)
|
||
{
|
||
return Context.Deleteable<PLBatch>().Where(it => it.IdGroup.Equals(idGroup)).ExecuteCommand();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取批处理数据
|
||
/// </summary>
|
||
/// <param name="starttime"></param>
|
||
/// <param name="endTime"></param>
|
||
/// <param name="pageNum"></param>
|
||
/// <param name="pageSize"></param>
|
||
/// <returns></returns>
|
||
/// <exception cref="NotImplementedException"></exception>
|
||
public (List<PLBatch>, int) GetPLBatchTable(DateTime starttime, DateTime endTime, string code,string description, int pageNum, int pageSize)
|
||
{
|
||
starttime = starttime.ToLocalTime();
|
||
endTime = endTime.ToLocalTime();
|
||
int totalNum = 0;
|
||
var predicate = Expressionable.Create<PLBatch>()
|
||
.AndIF(starttime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.CreatedTime >= starttime.ToLocalTime())
|
||
.AndIF(endTime > new DateTime(2023, 1, 1, 0, 0, 0), it => it.CreatedTime <= endTime.ToLocalTime())
|
||
.AndIF(!string.IsNullOrEmpty(code), it => it.Code.Contains(code))
|
||
.AndIF(!string.IsNullOrEmpty(description), it => it.Description.Contains(description))
|
||
.ToExpression();
|
||
|
||
//int totalNum = 0;
|
||
List<PLBatch> data = Context.Queryable<PLBatch>()
|
||
.Where(predicate)
|
||
.OrderByDescending(it => it.IdGroup)
|
||
.OrderBy(it => it.Id)
|
||
.ToPageList(pageNum, pageSize, ref totalNum);
|
||
return (data, totalNum);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 更新批处理数据
|
||
/// </summary>
|
||
/// <param name="list"></param>
|
||
/// <returns></returns>
|
||
/// <exception cref="NotImplementedException"></exception>
|
||
public int UpdatePLBatchRecords(List<PLBatch> list)
|
||
{
|
||
return Context.Updateable<PLBatch>(list).ExecuteCommand();
|
||
}
|
||
|
||
private PLBatch GetDefaultPLBatch()
|
||
{
|
||
return new PLBatch()
|
||
{
|
||
Id = 0,
|
||
IdGroup = DateTime.Now.ToString("yyyyMMddHHmmssfff"),
|
||
Description = "",
|
||
Dt = "",
|
||
Code = "",
|
||
Value01 = "",
|
||
Value02 = "",
|
||
Value03 = "",
|
||
Value04 = "",
|
||
Value05 = "",
|
||
Value06 = "",
|
||
Value07 = "",
|
||
Value08 = "",
|
||
Value09 = "",
|
||
Value10 = "",
|
||
Value11 = "",
|
||
Value12 = "",
|
||
Value13 = "",
|
||
Value14 = "",
|
||
Value15 = "",
|
||
Value16 = "",
|
||
Value17 = "",
|
||
Value18 = "",
|
||
Value19 = "",
|
||
CreatedBy = "user",
|
||
CreatedTime = DateTime.Now,
|
||
UpdatedBy = "user",
|
||
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;
|
||
}
|
||
}
|
||
}
|
||
}
|