123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- using SqlSugar;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using WMS.BZModels;
- using WMS.Info;
- using WMS.BZSqlSugar;
- using wms.sqlsugar.model.fj;
- using WMS.BZModels.Dto.FJ.BaseMatinfoDtos;
- using Mapster;
- namespace WMS.BZServices.FJ
- {
- public class BaseMatinfoService
- {
- private readonly Repository<BaseMatinfo> _matinforepository;
- private readonly Repository<BillBominfo> _billBominfoRepository;
- public BaseMatinfoService(Repository<BaseMatinfo> matinforepository, Repository<BillBominfo> billBominfoRepository)
- {
- _matinforepository = matinforepository;
- _billBominfoRepository = billBominfoRepository;
- }
- public PagedInfo<BaseMatinfoDto> GetPageList(Pagination pagination, BaseMatinfoQueryDto basematinfoQueryDto)
- {
- var list = GetQueryable(basematinfoQueryDto)
- .ToPage<BaseMatinfo, BaseMatinfoDto>(pagination);
- return list;
- }
- private ISugarQueryable<BaseMatinfo> GetQueryable(BaseMatinfoQueryDto basematinfoQueryDto)
- {
- var predicate = Expressionable.Create<BaseMatinfo>();
- predicate = predicate.AndIF(!string.IsNullOrEmpty(basematinfoQueryDto?.KeyWord), m => m.Code.Contains(basematinfoQueryDto.KeyWord));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(basematinfoQueryDto?.Code), m => m.Code.Contains(basematinfoQueryDto.Code));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(basematinfoQueryDto?.Name), m => m.Name.Contains(basematinfoQueryDto.Name));
- predicate = predicate.AndIF(basematinfoQueryDto?.HoldDuration > 0, m => m.HoldDuration == basematinfoQueryDto.HoldDuration);
- predicate = predicate.AndIF(!string.IsNullOrEmpty(basematinfoQueryDto?.SpoolType), m => m.SpoolType.Contains(basematinfoQueryDto.SpoolType));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(basematinfoQueryDto?.ShortDesc), m => m.ShortDesc.Contains(basematinfoQueryDto.ShortDesc));
- var sugarQueryable = _matinforepository.Queryable().Where(predicate.ToExpression());
- return sugarQueryable;
- }
- public IList<BaseMatinfoDto> GetList(BaseMatinfoQueryDto baseMatinfoQueryDto)
- {
- var list = GetQueryable(baseMatinfoQueryDto).ToList().Adapt<List<BaseMatinfoDto>>();
- return list;
- }
- public IList<BaseMatinfoDto> GetListByBomCode(BaseMatinfoQueryDto baseMatinfoQueryDto)
- {
- var matCodelist = _billBominfoRepository.Queryable().Where(o => o.Code == baseMatinfoQueryDto.Code).Select(o=>o.ProMatCode).ToList();
- var list = _matinforepository.Queryable().Where(o=> matCodelist.Contains(o.Code)) .ToList().Adapt<List<BaseMatinfoDto>>();
- return list;
- }
- public IList<BaseMatinfoDto> GetListByProCode(BaseMatinfoQueryDto baseMatinfoQueryDto)
- {
- var matCodelist = _billBominfoRepository.Queryable().Where(o => o.ProCode == baseMatinfoQueryDto.Code).Select(o => o.ProMatCode).ToList();
- var list = _matinforepository.Queryable().Where(o => matCodelist.Contains(o.Code)).ToList().Adapt<List<BaseMatinfoDto>>();
- return list;
- }
- public void Save(LoginUserInfo loginUser, string keyValue, BaseMatinfo entity)
- {
- try
- {
- if (string.IsNullOrWhiteSpace(entity.Code))
- {
- throw new ArgumentException("物料编码不能为空");
- }
- if (keyValue.IsEmpty() || keyValue == "undefined")
- {
- var mat = _matinforepository.GetSingle(p => p.Code == entity.Code);
- if (mat != null)
- {
- throw new ArgumentException("物料编码已存在");
- }
- BaseMatinfo item = new BaseMatinfo()
- {
- WarehouseId = 1668442390064664576,
- AddWho = loginUser.UserNo,
- Code = entity.Code,
- EditWho = loginUser.UserNo,
- Name = entity.Name,
- ShortDesc = entity.ShortDesc,
- MatGrpId = 0,
- Description = entity.ShortDesc,
- Strength = entity.Strength,
- Plating = entity.Plating,
- PlatingWeight = entity.PlatingWeight,
- Linear = entity.Linear,
- IsHold = entity.IsHold,
- HoldDuration = entity.HoldDuration
- };
- _matinforepository.Insert(item);
- }
- else
- {
- entity.EditTime = DateTime.Now;
- entity.EditWho = loginUser.UserNo;
- _matinforepository.AsUpdateable(entity).IgnoreColumns(it => it.AddTime).IgnoreColumns(it => it.AddWho).IgnoreColumns(it => it.WarehouseId).Where(it => it.Code == keyValue).ExecuteCommand();
- }
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- public void Delete(string ModuleNo)
- {
- try
- {
- _matinforepository.Deleteable().Where(it => it.Code == ModuleNo).ExecuteCommand();
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
- }
- }
|