SGGL_SHJ/SGGL/BLL/HJGL/PreDesign/HJGLPackagingmanagedetailSe...

255 lines
10 KiB
C#

using FineUIPro;
using Model;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BLL
{
public static class HJGLPackagingmanagedetailService
{
#region
/// <summary>
/// 记录数
/// </summary>
public static int Count
{
get;
set;
}
private static IQueryable<Model.HJGL_PackagingManageDetail> GetByQueryModle(Model.HJGL_PackagingManageDetail table)
{
var q = from x in Funs.DB.HJGL_PackagingManageDetail select x;
if (table == null)
{
return q;
}
if (!string.IsNullOrEmpty(table.Id))
{
q = q.Where(x => x.Id.Contains(table.Id));
}
if (!string.IsNullOrEmpty(table.PackagingManageId))
{
q = q.Where(x => x.PackagingManageId.Contains(table.PackagingManageId));
}
if (!string.IsNullOrEmpty(table.PipelineId))
{
q = q.Where(x => x.PipelineId.Contains(table.PipelineId));
}
if (!string.IsNullOrEmpty(table.PipelineComponentId))
{
q = q.Where(x => x.PipelineComponentId.Contains(table.PipelineComponentId));
}
if (!string.IsNullOrEmpty(table.MaterialCode))
{
q = q.Where(x => x.MaterialCode.Contains(table.MaterialCode));
}
if (table.Number != null)
{
q = q.Where(x => x.Number == table.Number);
}
if (table.CreateTime != null)
{
q = q.Where(x => x.CreateTime == table.CreateTime);
}
if (!string.IsNullOrEmpty(table.CreateUser))
{
q = q.Where(x => x.CreateUser.Contains(table.CreateUser));
}
;
return q;
}
public static List<Model.HJGL_PackagingManageDetail> GetListByQueryModle(Model.HJGL_PackagingManageDetail table)
{
return GetByQueryModle(table).ToList();
}
public static (List<Model.HJGL_PackagingManageDetail> Data, int Total) GetListByQueryModle(Model.HJGL_PackagingManageDetail table, int pageIndex = 0, int pageSize = 20)
{
var baseQuery = GetByQueryModle(table);
var pagedData = baseQuery
.Skip((pageIndex) * pageSize)
.Take(pageSize)
.ToList();
// 获取总记录数(延迟计数优化)
var totalCount = baseQuery.Count();
return (pagedData, totalCount);
}
/// <summary>
/// 获取分页列表
/// </summary>
/// <param name="table"></param>
/// <param name="grid1"></param>
/// <returns></returns>
public static IEnumerable GetListData(Model.HJGL_PackagingManageDetail table, Grid grid1)
{
var q = GetByQueryModle(table);
Count = q.Count();
if (Count == 0)
{
return null;
}
q = q.Skip(grid1.PageSize * grid1.PageIndex).Take(grid1.PageSize);
// q = SortConditionHelper.SortingAndPaging(q, Grid1.SortField, Grid1.SortDirection, Grid1.PageIndex, Grid1.PageSize);
return from x in q
select new
{
x.Id,
x.PackagingManageId,
x.PipelineId,
x.PipelineComponentId,
x.MaterialCode,
x.Number,
x.CreateTime,
x.CreateUser,
};
}
#endregion
public static Model.HJGL_PackagingManageDetail GetModelById(string Id)
{
return Funs.DB.HJGL_PackagingManageDetail.FirstOrDefault(x => x.Id == Id);
}
public static IEnumerable<Model.PipelinePrefabricatedComponentsItem> GetPackagingData(string PackagingManageId)
{
if (string.IsNullOrEmpty(PackagingManageId))
{
return null;
}
var pack = HJGL_PackagingmanageService.GetHJGL_PackagingManageById(PackagingManageId);
if (pack == null)
{
return null;
}
var result = new List<Model.PipelinePrefabricatedComponentsItem>();
if (pack.TypeInt == (int)HJGL_PackagingmanageService.TypeInt.)
{
var q = from detail in Funs.DB.HJGL_PackagingManageDetail
join lib in Funs.DB.HJGL_MaterialCodeLib on detail.MaterialCode equals lib.MaterialCode into libJoin
from libItem in libJoin.DefaultIfEmpty()
join line in Funs.DB.HJGL_Pipeline on detail.PipelineId equals line.PipelineId into lineJoin
from lineItem in lineJoin.DefaultIfEmpty()
where detail.PackagingManageId == PackagingManageId /*&& (detail.PipelineId != null || detail.PipelineId != "") && (detail.PipelineComponentId == null || detail.PipelineComponentId == "")*/
select new PipelinePrefabricatedComponentsItem
{
Id = detail.Id,
MaterialCode = libItem.MaterialCode,
MaterialName = libItem.MaterialName,
MaterialUnit = libItem.MaterialUnit,
MaterialSpec = libItem.MaterialSpec,
MaterialMade = libItem.MaterialMade,
MaterialDef = libItem.MaterialDef,
Number = detail.Number,
PipelineId = lineItem.PipelineId,
PipelineCode = lineItem.PipelineCode,
UnitWorkId = lineItem.UnitWorkId,
FlowingSection = lineItem.FlowingSection,
};
result= q.ToList();
}
else if(pack.TypeInt == (int)HJGL_PackagingmanageService.TypeInt.)
{
var q = from detail in Funs.DB.HJGL_PackagingManageDetail
join lib in Funs.DB.HJGL_MaterialCodeLib on detail.MaterialCode equals lib.MaterialCode into libJoin
from libItem in libJoin.DefaultIfEmpty()
join line in Funs.DB.HJGL_Pipeline on detail.PipelineId equals line.PipelineId into lineJoin
from lineItem in lineJoin.DefaultIfEmpty()
where detail.PackagingManageId == PackagingManageId /*&& (detail.PipelineId == null || detail.PipelineId == "")*/
select new PipelinePrefabricatedComponentsItem
{
Id = detail.Id,
MaterialCode = libItem.MaterialCode,
MaterialName = libItem.MaterialName,
MaterialUnit = libItem.MaterialUnit,
MaterialSpec = libItem.MaterialSpec,
MaterialMade = libItem.MaterialMade,
MaterialDef = libItem.MaterialDef,
Number = detail.Number,
PipelineId = lineItem.PipelineId,
PipelineCode = lineItem.PipelineCode,
FlowingSection = lineItem.FlowingSection,
};
result = q.ToList();
}
return result;
}
public static void Add(Model.HJGL_PackagingManageDetail newtable)
{
Model.HJGL_PackagingManageDetail table = new Model.HJGL_PackagingManageDetail
{
Id = newtable.Id,
PackagingManageId = newtable.PackagingManageId,
PipelineId = newtable.PipelineId,
PipelineComponentId = newtable.PipelineComponentId,
MaterialCode = newtable.MaterialCode,
Number = newtable.Number,
CreateTime = newtable.CreateTime,
CreateUser = newtable.CreateUser,
};
Funs.DB.HJGL_PackagingManageDetail.InsertOnSubmit(table);
Funs.DB.SubmitChanges();
}
public static void Update(Model.HJGL_PackagingManageDetail newtable)
{
Model.HJGL_PackagingManageDetail table = Funs.DB.HJGL_PackagingManageDetail.FirstOrDefault(x => x.Id == newtable.Id);
if (table != null)
{
table.Id = newtable.Id;
table.PackagingManageId = newtable.PackagingManageId;
table.PipelineId = newtable.PipelineId;
table.PipelineComponentId = newtable.PipelineComponentId;
table.MaterialCode = newtable.MaterialCode;
table.Number = newtable.Number;
table.CreateTime = newtable.CreateTime;
table.CreateUser = newtable.CreateUser;
Funs.DB.SubmitChanges();
}
}
public static void DeleteById(string Id)
{
Model.HJGL_PackagingManageDetail table = Funs.DB.HJGL_PackagingManageDetail.FirstOrDefault(x => x.Id == Id);
if (table != null)
{
Funs.DB.HJGL_PackagingManageDetail.DeleteOnSubmit(table);
Funs.DB.SubmitChanges();
}
}
public static void DeleteByPackagingManageId(string packagingManageId)
{
var list = Funs.DB.HJGL_PackagingManageDetail.Where(x => x.PackagingManageId == packagingManageId).ToList();
if (list.Count>0)
{
Funs.DB.HJGL_PackagingManageDetail.DeleteAllOnSubmit(list);
Funs.DB.SubmitChanges();
}
}
public static void AddBulk(List<Model.HJGL_PackagingManageDetail> newtables)
{
Funs.DB.HJGL_PackagingManageDetail.InsertAllOnSubmit(newtables);
Funs.DB.SubmitChanges();
}
}
}