using Infrastructure.Attribute;
using SqlSugar;
using System;
using ZR.Model.MES.ql;
using ZR.Model.MES.wms;
using ZR.Model.MES.wms.Dto;
using ZR.Service.mes.ql.IService;
namespace ZR.Service.mes.ql
{
///
/// 查询报表
///
[AppService(ServiceType = typeof(IPLRawMaterialService), ServiceLifetime = LifeTime.Transient)]
public class PLRawMaterialService : BaseService, IPLRawMaterialService
{
///
/// 增加一组,数据记录
///
///
///
///
public int AddRawMaterialRecords(int num, int size)
{
PLRawMaterial t1 = GetDefaultPLRawMaterial();
PLRawMaterial t2 = GetDefaultPLRawMaterial();
PLRawMaterial t3 = GetDefaultPLRawMaterial();
PLRawMaterial t4 = GetDefaultPLRawMaterial();
PLRawMaterial t5 = GetDefaultPLRawMaterial();
t1.Value01 = "15°"; t1.Value07 = "底漆";
t2.Value01 = "25°"; t2.Value07 = "色漆";
t3.Value01 = "45°"; t3.Value07 = "云母";
t4.Value01 = "75°"; t4.Value07 = "清漆";
t5.Value01 = "110°"; t5.Value07 = "总膜厚";
t2.IdGroup = t1.IdGroup;
t3.IdGroup = t1.IdGroup;
t4.IdGroup = t1.IdGroup;
t5.IdGroup = t1.IdGroup;
List lst = new List();
lst.Add(t1); lst.Add(t2); lst.Add(t3); lst.Add(t4); lst.Add(t5);
int ret = Context.Insertable(lst).ExecuteReturnIdentity();
return ret;
}
///
/// 删除数据记录
///
///
///
///
public int DelRawMaterialRecords(string idGroup)
{
return Context.Deleteable().Where(it => it.IdGroup.Equals(idGroup)).ExecuteCommand();
}
///
/// 查询数据记录,要改成分页查询
///
///
public (List, int) GetRawMaterialTable(DateTime starttime, DateTime endTime, string pci, string colorCode, string description, int pageNum, int pageSize)
{
starttime = starttime.ToLocalTime();
endTime = endTime.ToLocalTime();
int totalNum = 0;
var predicate = Expressionable.Create()
.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(pci), it => it.Pci.Contains(pci))
.AndIF(!string.IsNullOrEmpty(colorCode), it => it.Code.Contains(colorCode))
.AndIF(!string.IsNullOrEmpty(description), it => it.Description.Contains(description))
.ToExpression();
//List data = Context.Queryable().Where(predicate).OrderBy(it => it.WorkorderId).OrderBy(it => it.Remark2).ToPageList(pageNum, pageSize, ref totalNum);
//foreach (QcQualityStatisticsAgain item in data)
//{
// WmMaterial material = Context.Queryable()
// .Where(it => it.Partnumber == item.FinishedPartNumber)
// .First();
// if (material == null)
// {
// item.ProductDescription = "此零件号不在物料清单内!";
// continue;
// }
// item.ProductDescription = !string.IsNullOrEmpty(material.Description) ? material.Description : material.ProductName;
//}
//return (data, totalNum);
List data = Context.Queryable()
.Where(predicate)
.OrderByDescending(it => it.IdGroup)
.OrderBy(it => it.Id)
.ToPageList(pageNum, pageSize, ref totalNum);
return (data, totalNum);
//return (Context.Queryable().Where(it => it.Id > 0).ToList(),100);
}
///
/// 更新数据记录
///
///
///
///
public int UpdateRawMaterialRecords(List list)
{
return Context.Updateable(list).ExecuteCommand();
}
private PLRawMaterial GetDefaultPLRawMaterial()
{
return new PLRawMaterial()
{
Id = 0,
IdGroup = DateTime.Now.ToString("yyyyMMddHHmmssfff"),
Description = "",
Code = "",
Pci = "",
Value01 = "",
Value02 = "",
Value03 = "",
Value04 = "",
Value05 = "",
Value06 = "",
Value07 = "",
Value08 = "",
Value09 = "",
Value10 = "",
Value11 = "",
CreatedBy = "user",
CreatedTime = DateTime.Now,
UpdatedBy = "user",
UpdatedTime = DateTime.Now,
};
}
public List QueryMaterialOptions(string query)
{
var predicate = Expressionable
.Create()
.Or(it => it.Partnumber.Contains(query))
.Or(it => it.Description.Contains(query))
.Or(it => it.ProductName.Contains(query))
.And(it => it.Type == 1)
.And(it => it.Status == 1);
List options = Context
.Queryable()
.Where(predicate.ToExpression())
.Select(
(it) =>
new WmMaterialSelectOptions
{
Key = it.Id,
Label = "[ " + it.Partnumber + " ] " + it.Description,
Value = it.Description,
Color = it.Color
}
)
.Take(10)
.ToList();
return options;
}
}
}