123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- using Mapster;
- using SqlSugar;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using wms.sqlsugar.model.fj;
- using WMS.BZModels;
- using WMS.BZModels.Dto.FJ.BillBom;
- using WMS.Info;
- using WMS.BZSqlSugar;
- namespace WMS.BZServices.FJ
- {
- public class BillBomInfoService
- {
- private readonly Repository<BillBominfo> _billBominfoRepository;
- public BillBomInfoService(Repository<BillBominfo> billBominfoRepository)
- {
- _billBominfoRepository = billBominfoRepository;
- }
- public PagedInfo<BillBominfoDto> GetPageList(Pagination pagination, BillBominfoQueryDto billBominfoQueryDto)
- {
- var total = 0;
- var codes = GetQueryable(billBominfoQueryDto).Select(o => o.Code).Distinct()
- .ToPageList(pagination.page, pagination.rows, ref total);
- var arr=new List<string>();
- if (billBominfoQueryDto != null && !string.IsNullOrWhiteSpace(billBominfoQueryDto.StrSpoolType))
- {
- arr = billBominfoQueryDto.StrSpoolType.Split(',').ToList();
- }
- var list = _billBominfoRepository.Context.Queryable<BillBominfo, BaseMatinfo,BaseMatinfo>((billBominfo, baseMatinfo, ProbaseMatinfo) => new object[] {
- JoinType.Left,billBominfo.MatId == baseMatinfo.Id ,
- JoinType.Left,billBominfo.ProMatCode == ProbaseMatinfo.Code ,
- })
- .Select((billBominfo, baseMatinfo, ProbaseMatinfo) => new BillBominfoDto
- {
- Id = billBominfo.Id.ToString(),
- ProCode = billBominfo.ProCode,
- IsStop = billBominfo.IsStop,
- IsDelete = billBominfo.IsDelete == null ? 0 : billBominfo.IsDelete.Value,
- Code = billBominfo.Code,
- Name = billBominfo.Name,
- MatCode = billBominfo.MatCode,
- MatId = billBominfo.MatId.ToString(),
- ProMatCode = billBominfo.ProMatCode,
- ProMatName= ProbaseMatinfo.Name,
- HWCountQty = billBominfo.HWCountQty,
- Memo = billBominfo.Memo,
- AddWho = billBominfo.AddWho,
- AddTime = billBominfo.AddTime,
- EditWho = billBominfo.EditWho,
- EditTime = billBominfo.EditTime,
- SpoolType = baseMatinfo.SpoolType,
- TimeOut = ProbaseMatinfo.TimeOut
- }).MergeTable().Where(o => codes.Contains(o.Code))
- .WhereIF(arr!=null && arr.Count>0,o=> arr.Contains(o.SpoolType))
- .OrderByIF(!pagination.sidx.IsEmpty(), $"{pagination.sidx.ToSqlFilter()} {(!string.IsNullOrWhiteSpace(pagination.sord) && pagination.sord.ToLower().Contains("desc") ? "desc" : "asc")}").ToList().Adapt<List<BillBominfoDto>>();
- var page = new PagedInfo<BillBominfoDto>
- {
- PageSize = pagination.rows,
- PageIndex = pagination.page,
- TotalNum = total,
- Result = list
- };
- return page;
- }
- private ISugarQueryable<BillBominfo> GetQueryable(BillBominfoQueryDto billBominfoQueryDto)
- {
- var predicate = Expressionable.Create<BillBominfo, BaseMatinfo>();
- predicate = predicate.AndIF(!string.IsNullOrEmpty(billBominfoQueryDto?.KeyWord), (billBominfo, baseMatinfo) => billBominfo.Code.Contains(billBominfoQueryDto.KeyWord) || billBominfo.Name.Contains(billBominfoQueryDto.KeyWord) || billBominfo.MatCode.Contains(billBominfoQueryDto.KeyWord));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(billBominfoQueryDto?.Code), (billBominfo, baseMatinfo) => billBominfo.Code.Contains(billBominfoQueryDto.Code));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(billBominfoQueryDto?.ProCode), (billBominfo, baseMatinfo) => billBominfo.ProCode.Contains(billBominfoQueryDto.ProCode));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(billBominfoQueryDto?.Name), (billBominfo, baseMatinfo) => billBominfo.Name.Contains(billBominfoQueryDto.Name));
- predicate = predicate.AndIF(billBominfoQueryDto != null && billBominfoQueryDto.IsStop.HasValue, (billBominfo, baseMatinfo) => billBominfo.IsStop == billBominfoQueryDto.IsStop);
- predicate = predicate.AndIF(billBominfoQueryDto != null && billBominfoQueryDto.IsDelete.HasValue, (billBominfo, baseMatinfo) => billBominfo.IsDelete == billBominfoQueryDto.IsDelete);
- if (billBominfoQueryDto != null && billBominfoQueryDto.SpoolType != null && billBominfoQueryDto.SpoolType.Count() > 0)
- {
- predicate = predicate.And((billBominfo, baseMatinfo) => billBominfoQueryDto.SpoolType.Contains(baseMatinfo.SpoolType.ToLower()));
- }
- if(billBominfoQueryDto != null && !string.IsNullOrWhiteSpace(billBominfoQueryDto.StrSpoolType))
- {
- var arr = billBominfoQueryDto.StrSpoolType.Split(',');
- predicate = predicate.And((billBominfo, baseMatinfo) => arr.Contains(baseMatinfo.SpoolType ));
- }
- var sugarQueryable = _billBominfoRepository.Context.Queryable<BillBominfo, BaseMatinfo>((billBominfo, baseMatinfo) => new object[] {
- JoinType.Left,billBominfo.MatId == baseMatinfo.Id }).Where(predicate.ToExpression()).MergeTable();
- return sugarQueryable;
- }
- public IList<BillBominfoDto> GetList(BillBominfoQueryDto billBominfoQueryDto)
- {
- var predicate = Expressionable.Create<BillBominfo, BaseMatinfo>();
- predicate = predicate.AndIF(!string.IsNullOrEmpty(billBominfoQueryDto?.KeyWord), (billBominfo, baseMatinfo) => billBominfo.Code.Contains(billBominfoQueryDto.KeyWord) || billBominfo.Name.Contains(billBominfoQueryDto.KeyWord) || billBominfo.MatCode.Contains(billBominfoQueryDto.KeyWord));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(billBominfoQueryDto?.Code), (billBominfo, baseMatinfo) => billBominfo.Code.Contains(billBominfoQueryDto.Code));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(billBominfoQueryDto?.ProCode), (billBominfo, baseMatinfo) => billBominfo.ProCode.Contains(billBominfoQueryDto.ProCode));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(billBominfoQueryDto?.Name), (billBominfo, baseMatinfo) => billBominfo.Name.Contains(billBominfoQueryDto.Name));
- predicate = predicate.AndIF(billBominfoQueryDto != null && billBominfoQueryDto.IsStop.HasValue, (billBominfo, baseMatinfo) => billBominfo.IsStop == billBominfoQueryDto.IsStop);
- predicate = predicate.AndIF(billBominfoQueryDto != null && billBominfoQueryDto.IsDelete.HasValue, (billBominfo, baseMatinfo) => billBominfo.IsDelete == billBominfoQueryDto.IsDelete);
- if (billBominfoQueryDto != null && billBominfoQueryDto.SpoolType != null && billBominfoQueryDto.SpoolType.Count() > 0)
- {
- predicate = predicate.And((billBominfo, baseMatinfo) => billBominfoQueryDto.SpoolType.Contains(baseMatinfo.SpoolType.ToLower()));
- }
- var sugarQueryable = _billBominfoRepository.Context.Queryable<BillBominfo, BaseMatinfo>((billBominfo, baseMatinfo) => new object[] {
- JoinType.Left,billBominfo.MatId == baseMatinfo.Id }).Where(predicate.ToExpression())
- .Select((billBominfo, baseMatinfo) => new BillBominfoDto
- {
- Id = billBominfo.Id.ToString(),
- ProCode= billBominfo.ProCode,
- IsStop = billBominfo.IsStop,
- IsDelete = billBominfo.IsDelete == null ? 0 : billBominfo.IsDelete.Value,
- Code = billBominfo.Code,
- Name = billBominfo.Name,
- MatCode = billBominfo.MatCode,
- MatId = billBominfo.MatId.ToString(),
- ProMatCode = billBominfo.ProMatCode,
- HWCountQty = billBominfo.HWCountQty,
- Memo = billBominfo.Memo,
- AddWho = billBominfo.AddWho,
- AddTime = billBominfo.AddTime,
- EditWho = billBominfo.EditWho,
- EditTime = billBominfo.EditTime,
- SpoolType = baseMatinfo.SpoolType
- }).MergeTable();
- var list = sugarQueryable.ToList() .Adapt<List<BillBominfoDto>>();
- return list;
- }
- public IList<BillBominfoDto> GetBillBominfoItem(string matCode)
- {
- var predicate = Expressionable.Create<BillBominfo>();
- predicate = predicate.AndIF(!string.IsNullOrEmpty(matCode), m => m.MatCode.Contains(matCode));
- var list = _billBominfoRepository.Queryable().Where(predicate.ToExpression()).ToList().Adapt<List<BillBominfoDto>>();
- return list;
- }
- }
- }
|