using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
using HH.WCS.Mobox3.DSZSH.models;
using SqlSugar;
namespace HH.WCS.Mobox3.DSZSH.wms {
public class QueryHelper {
///
/// 构建货位查询表达式:当前锁状态、数量、货区、名称(默认筛选已启用货位)
///
/// 调用区域的数据库Client
///
///
///
///
///
///
public static ISugarQueryable GetLoc(SqlSugarClient db, int @lock, string name, List areas, int curNum, Expression> expr = null) {
var query = db.Queryable().Where(l => l.C_ENABLE == "Y"); // 已启用
if (@lock >= 0) {
query = query.Where(l => l.N_LOCK_STATE == @lock && l.S_LOCK_STATE == TN_Location.GetLockStateStr(@lock));
}
if (!string.IsNullOrEmpty(name)) {
query = query.Where(l => l.S_CODE == name);
}
if (areas != null && areas.Count == 0) {
query = query.Where(l => areas.Contains(l.S_AREA_CODE));
}
if (curNum >= 0) {
query = query.Where(l => l.N_CURRENT_NUM == curNum);
}
if (expr != null) {
query = query.Where(expr);
}
return query;
}
}
}