using System; using SqlSugar; using Infrastructure.Attribute; using ZR.Model; using ZR.Repository; using System.Linq; using System.Collections.Generic; using ZR.Model.System; using Infrastructure; using Infrastructure.Extensions; using ZR.Common; using ZR.Service.Business.IBusinessService.BaseSet; using ZR.Model.Dto.BaseSet; using ZR.Model.Models.BaseSet; namespace ZR.Service.Business { /// /// 基础资料/库位信息表Service业务层处理 /// /// @author admin /// @date 2023-04-11 /// [AppService(ServiceType = typeof(IBasBinService), ServiceLifetime = LifeTime.Transient)] public class BasBinService : BaseService, IBasBinService { #region 业务逻辑代码 /// /// 查询基础资料/库位信息表列表 /// /// /// public PagedInfo GetList(BasBinQueryDto parm) { //开始拼装查询条件 var predicate = Expressionable.Create(); predicate.AndIF(parm.RegionId > 0, b => b.RegionId == parm.RegionId); predicate.AndIF(!string.IsNullOrEmpty(parm.BinCode), b => b.BinCode.Contains(parm.BinCode)); predicate.AndIF(parm.BinRow > 0, b => b.BinRow == parm.BinRow); predicate.AndIF(parm.BinColumn > 0, b => b.BinColumn == parm.BinColumn); predicate.AndIF(parm.BinLayer > 0, b => b.BinLayer == parm.BinLayer); predicate.AndIF(!string.IsNullOrEmpty(parm.BinType), b => b.BinType.Equals(parm.BinType)); predicate.AndIF(!string.IsNullOrEmpty(parm.Status), b => b.Status.Equals(parm.Status)); //搜索条件查询语法参考Sqlsugar var response = Queryable() .LeftJoin((b, region) => b.RegionId == region.RegionId) .Where(predicate.ToExpression()) .Select((b,region)=>new BasBin { RegionId = b.RegionId.SelectAll(), RegionName=region.RegionName, RegionCode=region.RegionCode, }) .ToPage(parm); return response; } /// /// 添加基础资料/库位信息表 /// /// /// public int AddBasBin(BasBin model) { return Add(model, true); } /// /// 修改基础资料/库位信息表 /// /// /// public int UpdateBasBin(BasBin model) { //var response = Update(w => w.BinId == model.BinId, it => new BasBin() //{ // BinCode = model.BinCode, // BinName = model.BinName, // BinType = model.BinType, // RegionId = model.RegionId, // BinRow = model.BinRow, // BinColumn = model.BinColumn, // BinLayer = model.BinLayer, // Describe = model.Describe, // Visible = model.Visible, // Status = model.Status, // UpdateBy = model.UpdateBy, // UpdateTime = model.UpdateTime, // Remark = model.Remark, //}); //return response; return Update(model, true); } /// /// 清空基础资料/库位信息表 /// /// public void TruncateBasBin() { Truncate(); } /// /// 导入数据 /// /// /// public string ImportDatas(List bins) { bins.ForEach(x => { x.CreateTime = DateTime.Now; x.Status = "0"; x.Remark = "数据导入"; }); var x = Context.Storageable(bins) .SplitInsert(it => !it.Any()) .ToStorage(); var result = x.AsInsertable.ExecuteCommand();//插入可插入部分; string msg = string.Format(" 插入{0} 更新{1} 错误数据{2} 不计算数据{3} 删除数据{4},总共{5}", x.InsertList.Count, x.UpdateList.Count, x.ErrorList.Count, x.IgnoreList.Count, x.DeleteList.Count, x.TotalList.Count); //输出统计 Console.WriteLine(msg); //输出错误信息 foreach (var item in x.ErrorList) { Console.WriteLine("BinName为" + item.Item.BinName + " : " + item.StorageMessage); } return msg; } #endregion } }