| | |
| | | using WMS.IBLL.IBllAsnServer; |
| | | using WMS.Entity.BllSoEntity; |
| | | using WMS.Entity.DataEntity; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace WMS.BLL.BllAsnServer |
| | | { |
| | |
| | | #endregion |
| | | |
| | | #region 事件方法 |
| | | public List<ArrivalNoticeDto> GetArrivalNoticeList(ArrivalNoticeVm model, out int count) |
| | | public async Task<List<ArrivalNoticeDto>> GetArrivalNoticeList(ArrivalNoticeVm model, RefAsync<int> count) |
| | | { |
| | | string sqlString = string.Empty; |
| | | string sqlCount = string.Empty; |
| | | string sqlPub = string.Empty; |
| | | try |
| | | { |
| | | sqlCount += "SELECT DISTINCT COUNT(tb1.ID) FROM BllArrivalNotice AS tb1 "; |
| | | sqlString += "SELECT DISTINCT tb1.*,tb3.RealName as CreateUserName,tb4.RealName as UpdateUserName,tb5.RealName as CheckUserName FROM BllArrivalNotice AS tb1 "; |
| | | sqlPub += "LEFT JOIN BllArrivalNoticeDetail AS tb2 ON tb1.ASNNo = tb2.ASNNo "; |
| | | sqlPub += "LEFT JOIN SysUserInfor AS tb3 ON tb1.CreateUser = tb3.Id "; |
| | | sqlPub += "LEFT JOIN SysUserInfor AS tb4 ON tb1.UpdateUser = tb4.Id "; |
| | | sqlPub += "LEFT JOIN SysUserInfor AS tb5 ON tb1.CheckUser = tb5.Id "; |
| | | sqlPub += $"WHERE tb1.ASNNo LIKE '%{model.ASNNo}%' AND tb2.LotNo LIKE '%{model.LotNo}%' "; |
| | | sqlPub += $"AND tb2.SkuNo LIKE '%{model.SkuNo}%' AND tb2.SkuName LIKE '%{model.SkuName}%' "; |
| | | sqlPub += $"AND tb1.CustomerName LIKE '%{model.CustomerName}%' "; |
| | | if (!string.IsNullOrEmpty(model.OrderCode)) |
| | | var modelList = await Db.Queryable<BllArrivalNotice,BllArrivalNoticeDetail, SysUserInfor, SysUserInfor, |
| | | SysUserInfor>((tb1, tb2, tb3, tb4,tb5) => new JoinQueryInfos( |
| | | JoinType.Left, tb1.ASNNo == tb2.ASNNo, |
| | | JoinType.Left, tb1.CreateUser == tb3.Id, |
| | | JoinType.Left, tb1.UpdateUser == tb4.Id, |
| | | JoinType.Left, tb1.CheckUser == tb5.Id)) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(model.ASNNo), tb1 => tb1.ASNNo.Contains(model.ASNNo)) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(model.LotNo), (tb1,tb2) => tb2.LotNo.Contains(model.LotNo)) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(model.SkuNo), (tb1,tb2) => tb2.SkuNo.Contains(model.SkuNo)) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(model.SkuName), (tb1,tb2) => tb2.SkuName.Contains(model.SkuName)) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(model.CustomerName), tb1 => tb1.CustomerName.Contains(model.CustomerName)) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(model.OrderCode), tb1 => tb1.OrderCode.Contains(model.OrderCode)) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(model.Status), tb1 => tb1.Status == model.Status) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(model.Type), tb1 => tb1.Type == model.Type) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(model.StartTime), tb1 => tb1.CreateTime >= Convert.ToDateTime(model.StartTime)) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(model.EndTime), tb1 => tb1.CreateTime <= Convert.ToDateTime(model.EndTime).AddDays(1)) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(model.CustomerName), tb1 => tb1.CustomerName.Contains(model.CustomerName)) |
| | | .Where(tb1 => tb1.IsDel == "0") |
| | | .OrderByDescending(tb1 => tb1.ASNNo) |
| | | .Distinct() |
| | | .Select((tb1, tb2, tb3, tb4, tb5) => new ArrivalNoticeDto() |
| | | { |
| | | sqlPub += $"AND tb1.OrderCode LIKE '%{model.OrderCode}%' "; |
| | | } |
| | | if (!string.IsNullOrEmpty(model.Status)) |
| | | { |
| | | sqlPub += $"AND tb1.Status = '{model.Status}' "; |
| | | } |
| | | if (!string.IsNullOrEmpty(model.Type)) |
| | | { |
| | | if (model.Type == "3") |
| | | { |
| | | sqlPub += $"AND tb1.Type = '{model.Type}' "; |
| | | } |
| | | else |
| | | { |
| | | sqlPub += $"AND tb1.Type = '{model.Type}' AND tb1.Type != '3' "; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | sqlPub += " AND tb1.Type != '3'"; |
| | | Id = tb1.Id, |
| | | ASNNo = tb1.ASNNo, |
| | | Type = tb1.Type, |
| | | Status = tb1.Status, |
| | | Origin = tb1.Origin, |
| | | CustomerNo = tb1.CustomerNo, |
| | | CustomerName = tb1.CustomerName, |
| | | LotNo = tb1.LotNo, |
| | | LotText = tb1.LotText, |
| | | CheckTime = tb1.CheckTime.ToString(), |
| | | CheckUserName = tb5.RealName, |
| | | SupplierLot = tb1.SupplierLot, |
| | | Demo = tb1.Demo, |
| | | OrderCode = tb1.OrderCode, |
| | | CompleteTime = tb1.CompleteTime, |
| | | CreateTime = tb1.CreateTime, |
| | | CreateUserName = tb3.RealName, |
| | | UpdateTime = tb1.UpdateTime.ToString(), |
| | | UpdateUserName = tb4.RealName |
| | | |
| | | } |
| | | if (!string.IsNullOrEmpty(model.StartTime)) |
| | | { |
| | | sqlPub += $"AND tb1.CreateTime >= '{model.StartTime}' "; |
| | | } |
| | | if (!string.IsNullOrEmpty(model.EndTime)) |
| | | { |
| | | sqlPub += $"AND tb1.CreateTime <= '{model.EndTime}' "; |
| | | } |
| | | sqlCount += sqlPub + "AND tb1.IsDel = '0' "; |
| | | sqlPub += "AND tb1.IsDel = '0' order by tb1.ASNNo desc "; |
| | | if (model.Page == 0) |
| | | { |
| | | model.Page = 1; |
| | | } |
| | | sqlString += sqlPub + $" offset {((model.Page - 1) * model.Limit)} rows fetch next {model.Limit} rows only;"; |
| | | }).ToPageListAsync(model.Page, model.Limit, count); |
| | | |
| | | var com = new Common(); |
| | | count = com.GetRowCount(sqlCount); |
| | | |
| | | var modelList = Db.Ado.SqlQuery<ArrivalNoticeDto>(sqlString); |
| | | |
| | | return modelList; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw ex; |
| | | } |
| | | return modelList; |
| | | } |
| | | |
| | | public List<ArrivalNoticeDetailDto> GetArrivalNoticeDetailList(ArrivalNoticeDetailVm model, out int count) |
| | | public async Task<List<ArrivalNoticeDetailDto>> GetArrivalNoticeDetailList(ArrivalNoticeDetailVm model, RefAsync<int> count) |
| | | { |
| | | string sqlString = string.Empty; |
| | | string sqlCount = string.Empty; |
| | | int rowCount = 1; |
| | | try |
| | | { |
| | | if (model.Page == 0) |
| | | { |
| | | model.Page = 1; |
| | | } |
| | | sqlCount += $"SELECT COUNT(ID) FROM BllArrivalNoticeDetail where ASNNo = '{model.ASNNo}' and isdel = '0';"; |
| | | var com = new Common(); |
| | | count = com.GetRowCount(sqlCount); |
| | | if (count != 0) |
| | | { |
| | | rowCount = count; |
| | | } |
| | | var item = Expressionable.Create<BllArrivalNoticeDetail>() |
| | | .AndIF(!string.IsNullOrWhiteSpace(model.ASNNo), it => it.ASNNo == model.ASNNo) |
| | | .AndIF(true, it => it.IsDel == "0") |
| | | .ToExpression();//注意 这一句 不能少 |
| | | |
| | | sqlString += "SELECT DISTINCT tb1.*,tb2.Type as AsnType,tb2.Status as AsnStatus,tb3.RealName as CreateUserName, "; |
| | | sqlString += "tb4.RealName as UpdateUserName,isnull(tb6.UnitName,tb5.UnitNo) as UnitName,tb7.PackagName,tb5.IsPasteCode "; |
| | | sqlString += "FROM BllArrivalNoticeDetail AS tb1 "; |
| | | sqlString += "LEFT JOIN BllArrivalNotice AS tb2 ON tb1.ASNNo = tb2.ASNNo "; |
| | | sqlString += "LEFT JOIN SysUserInfor AS tb3 ON tb1.CreateUser = tb3.Id "; |
| | | sqlString += "LEFT JOIN SysUserInfor AS tb4 ON tb1.UpdateUser = tb4.Id "; |
| | | sqlString += "LEFT JOIN SysMaterials AS tb5 on tb1.SkuNo = tb5.SkuNo "; |
| | | sqlString += "LEFT JOIN SysUnit AS tb6 on tb5.UnitNo = tb6.UnitNo "; |
| | | sqlString += "LEFT JOIN SysPackag AS tb7 on tb1.PackagNo = tb7.PackagNo "; |
| | | sqlString += $"WHERE tb1.ASNNo = '{model.ASNNo}' AND tb1.IsDel = '0' order by tb1.SkuNo desc "; |
| | | sqlString += $"offset {((model.Page - 1) * model.Limit)} rows fetch next {rowCount} rows only;"; |
| | | var modelList = await Db.Queryable<BllArrivalNoticeDetail>().Where(item) |
| | | .LeftJoin<BllArrivalNotice>((tb1, tb2) => tb1.ASNNo == tb2.ASNNo) |
| | | .LeftJoin<SysUserInfor>((tb1, tb2,tb3) => tb1.CreateUser == tb3.Id) |
| | | .LeftJoin<SysUserInfor>((tb1,tb2,tb3,tb4) => tb1.UpdateUser == tb4.Id) |
| | | .LeftJoin<SysMaterials>((tb1, tb2, tb3, tb4,tb5) => tb1.SkuNo == tb5.SkuNo) |
| | | .LeftJoin<SysUnit>((tb1, tb2, tb3, tb4, tb5,tb6) => tb5.UnitNo == tb6.UnitNo) |
| | | .LeftJoin<SysPackag>((tb1, tb2, tb3, tb4, tb5, tb6,tb7) => tb1.PackagNo == tb7.PackagNo) |
| | | .Select((tb1, tb2, tb3, tb4, tb5,tb6, tb7) => new ArrivalNoticeDetailDto() |
| | | { |
| | | Id = tb1.Id, |
| | | ASNNo = tb1.ASNNo, |
| | | SkuNo = tb1.SkuNo, |
| | | SkuName = tb1.SkuName, |
| | | Standard = tb1.Standard, |
| | | LotNo = tb1.LotNo, |
| | | LotText = tb1.LotText, |
| | | Qty = tb1.Qty, |
| | | FactQty = tb1.FactQty, |
| | | CompleteQty = tb1.CompleteQty, |
| | | IsSampling = tb1.IsSampling, |
| | | InspectStatus = tb1.InspectStatus, |
| | | PackagNo = tb1.PackagNo, |
| | | PackagName = tb7.PackagName, |
| | | UnitName = tb6.UnitName, |
| | | IsBale = tb1.IsBale, |
| | | IsBelt = tb1.IsBelt, |
| | | SupplierLot = tb1.SupplierLot, |
| | | Status = tb1.Status, |
| | | AsnType = tb2.Type, |
| | | AsnStatus = tb2.Status, |
| | | UDF1 = tb1.UDF1, |
| | | UDF2 = tb1.UDF2, |
| | | UDF3 = tb1.UDF3, |
| | | UDF4 = tb1.UDF4, |
| | | UDF5 = tb1.UDF5, |
| | | CompleteTime = tb1.CompleteTime, |
| | | CreateTime = tb1.CreateTime, |
| | | CreateUserName = tb3.RealName, |
| | | UpdateTime = tb1.UpdateTime.ToString(), |
| | | UpdateUserName = tb4.RealName |
| | | }).ToPageListAsync(model.Page, model.Limit, count); |
| | | |
| | | var modelList = Db.Ado.SqlQuery<ArrivalNoticeDetailDto>(sqlString); |
| | | |
| | | return modelList; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw ex; |
| | | } |
| | | return modelList; |
| | | } |
| | | |
| | | //获取入库单明细剩余打印数量 |