2024-06-11 16:51:44 +08:00
|
|
|
|
using Infrastructure.Attribute;
|
|
|
|
|
|
using SqlSugar;
|
|
|
|
|
|
using System;
|
2025-03-19 13:13:40 +08:00
|
|
|
|
using System.Collections.Generic;
|
2025-03-18 13:09:27 +08:00
|
|
|
|
using System.Globalization;
|
|
|
|
|
|
using ZR.Model.MES.pro;
|
2024-06-11 16:51:44 +08:00
|
|
|
|
using ZR.Model.MES.ql;
|
|
|
|
|
|
using ZR.Service.mes.ql.IService;
|
|
|
|
|
|
|
|
|
|
|
|
namespace ZR.Service.mes.ql
|
|
|
|
|
|
{
|
2025-03-28 17:29:12 +08:00
|
|
|
|
/// <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);
|
2024-06-11 16:51:44 +08:00
|
|
|
|
|
2025-03-28 17:29:12 +08:00
|
|
|
|
int ret = Context.Insertable<PLBatch>(lst).ExecuteReturnIdentity();
|
2024-06-11 16:51:44 +08:00
|
|
|
|
|
2025-03-28 17:29:12 +08:00
|
|
|
|
return ret;
|
|
|
|
|
|
}
|
2024-06-11 16:51:44 +08:00
|
|
|
|
|
2025-03-28 17:29:12 +08:00
|
|
|
|
/// <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)
|
|
|
|
|
|
.OrderByDescending(it => it.Sort)
|
|
|
|
|
|
.ToList();
|
|
|
|
|
|
foreach (ProWorkorder_v2 workorder in workOrderList)
|
|
|
|
|
|
{
|
|
|
|
|
|
List<PLBatch> pLBatches = CreatePLBatchRecordsByWorkOrder(workorder);
|
|
|
|
|
|
int res = Context.Insertable<PLBatch>(pLBatches).ExecuteCommand();
|
|
|
|
|
|
if (res == 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
Context.Ado.RollbackTran();
|
|
|
|
|
|
throw new Exception("插入批量检测记录异常,异常工单:" + workorder.ClientWorkorder);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
Context.Ado.CommitTran();
|
|
|
|
|
|
return 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception)
|
|
|
|
|
|
{
|
|
|
|
|
|
Context.Ado.RollbackTran();
|
|
|
|
|
|
throw;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2025-03-18 13:09:27 +08:00
|
|
|
|
|
2025-03-28 17:29:12 +08:00
|
|
|
|
/// <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();
|
2025-03-19 13:13:40 +08:00
|
|
|
|
|
2025-03-28 17:29:12 +08:00
|
|
|
|
// 工单信息录入
|
|
|
|
|
|
t1.Dt = DateTime.Now.ToString("yyyy.MM.dd");
|
|
|
|
|
|
t1.Description = workorder.ProductDescription;
|
|
|
|
|
|
t1.Code = workorder.Colour;
|
|
|
|
|
|
t1.Workorder = workorder.ClientWorkorder;
|
2025-03-19 13:13:40 +08:00
|
|
|
|
|
2025-03-28 17:29:12 +08:00
|
|
|
|
t2.Dt = DateTime.Now.ToString("yyyy.MM.dd");
|
|
|
|
|
|
t2.Description = workorder.ProductDescription;
|
|
|
|
|
|
t2.Code = workorder.Colour;
|
|
|
|
|
|
t2.Workorder = workorder.ClientWorkorder;
|
2025-03-19 13:13:40 +08:00
|
|
|
|
|
2025-03-28 17:29:12 +08:00
|
|
|
|
t3.Dt = DateTime.Now.ToString("yyyy.MM.dd");
|
|
|
|
|
|
t3.Description = workorder.ProductDescription;
|
|
|
|
|
|
t3.Code = workorder.Colour;
|
|
|
|
|
|
t3.Workorder = workorder.ClientWorkorder;
|
2025-03-19 13:13:40 +08:00
|
|
|
|
|
2025-03-28 17:29:12 +08:00
|
|
|
|
t4.Dt = DateTime.Now.ToString("yyyy.MM.dd");
|
|
|
|
|
|
t4.Description = workorder.ProductDescription;
|
|
|
|
|
|
t4.Code = workorder.Colour;
|
|
|
|
|
|
t4.Workorder = workorder.ClientWorkorder;
|
2025-03-19 13:13:40 +08:00
|
|
|
|
|
2025-03-28 17:29:12 +08:00
|
|
|
|
t5.Dt = DateTime.Now.ToString("yyyy.MM.dd");
|
|
|
|
|
|
t5.Description = workorder.ProductDescription;
|
|
|
|
|
|
t5.Code = workorder.Colour;
|
|
|
|
|
|
t5.Workorder = workorder.ClientWorkorder;
|
2025-03-19 13:13:40 +08:00
|
|
|
|
|
2025-03-28 17:29:12 +08:00
|
|
|
|
t6.Dt = DateTime.Now.ToString("yyyy.MM.dd");
|
|
|
|
|
|
t6.Description = workorder.ProductDescription;
|
|
|
|
|
|
t6.Code = workorder.Colour;
|
|
|
|
|
|
t6.Workorder = workorder.ClientWorkorder;
|
2025-03-19 13:13:40 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-03-28 17:29:12 +08:00
|
|
|
|
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;
|
|
|
|
|
|
}
|
2025-03-18 13:09:27 +08:00
|
|
|
|
|
2025-03-28 17:29:12 +08:00
|
|
|
|
/// <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();
|
|
|
|
|
|
}
|
2024-06-11 16:51:44 +08:00
|
|
|
|
|
2025-03-28 17:29:12 +08:00
|
|
|
|
/// <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, int dateType, string workOrder)
|
|
|
|
|
|
{
|
|
|
|
|
|
//starttime = starttime.ToLocalTime();
|
|
|
|
|
|
//endTime = endTime.ToLocalTime();
|
|
|
|
|
|
int totalNum = 0;
|
|
|
|
|
|
var predicate = Expressionable.Create<PLBatch>()
|
|
|
|
|
|
.AndIF(starttime > new DateTime(2023, 1, 1, 0, 0, 0) && dateType == 1, it => it.CreatedTime >= starttime)
|
|
|
|
|
|
.AndIF(endTime > new DateTime(2023, 1, 1, 0, 0, 0) && dateType == 1, it => it.CreatedTime <= endTime)
|
|
|
|
|
|
.AndIF(starttime > new DateTime(2023, 1, 1, 0, 0, 0) && dateType == 2, it => Convert.ToDateTime(it.Dt) >= starttime)
|
|
|
|
|
|
.AndIF(endTime > new DateTime(2023, 1, 1, 0, 0, 0) && dateType == 2, it => Convert.ToDateTime(it.Dt) <= endTime)
|
|
|
|
|
|
.AndIF(!string.IsNullOrEmpty(workOrder), it => it.Workorder.Contains(workOrder))
|
|
|
|
|
|
.AndIF(!string.IsNullOrEmpty(code), it => it.Code.Contains(code))
|
|
|
|
|
|
.AndIF(!string.IsNullOrEmpty(description), it => it.Description.Contains(description))
|
|
|
|
|
|
.ToExpression();
|
2024-06-20 11:52:05 +08:00
|
|
|
|
|
2025-03-28 17:29:12 +08:00
|
|
|
|
//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);
|
|
|
|
|
|
}
|
2024-06-11 16:51:44 +08:00
|
|
|
|
|
2025-03-28 17:29:12 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 更新批处理数据
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="list"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
/// <exception cref="NotImplementedException"></exception>
|
|
|
|
|
|
public int UpdatePLBatchRecords(List<PLBatch> list)
|
|
|
|
|
|
{
|
|
|
|
|
|
return Context.Updateable<PLBatch>(list).ExecuteCommand();
|
|
|
|
|
|
}
|
2024-06-11 16:51:44 +08:00
|
|
|
|
|
2025-03-28 17:29:12 +08:00
|
|
|
|
private PLBatch GetDefaultPLBatch()
|
|
|
|
|
|
{
|
|
|
|
|
|
return new PLBatch()
|
|
|
|
|
|
{
|
|
|
|
|
|
Id = 0,
|
|
|
|
|
|
IdGroup = DateTime.Now.ToString("yyyyMMddHHmmssfff"),
|
|
|
|
|
|
Workorder = "",
|
|
|
|
|
|
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,
|
|
|
|
|
|
};
|
|
|
|
|
|
}
|
2025-03-18 13:09:27 +08:00
|
|
|
|
|
|
|
|
|
|
|
2025-03-28 17:29:12 +08:00
|
|
|
|
/// <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
|
|
|
|
|
|
); // 设置一周的第一天为星期一
|
|
|
|
|
|
}
|
2025-03-18 13:09:27 +08:00
|
|
|
|
|
2025-03-28 17:29:12 +08:00
|
|
|
|
/// <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;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-06-11 16:51:44 +08:00
|
|
|
|
}
|