using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Data;
using System.Linq;
using System.Text;
using Utils.Datas;
using WeighBusiness.BO;
using WeighBusiness.Utils.SqlUtils;
namespace WeighBusiness.Utils
{
public class LocalQueryUtil
{
///
/// 从本地数据库中查询所有车辆信息。
///
public static IList GetAllLocalCars()
{
return GetLocalCars(null);
}
///
/// 从本地数据库中查询指定过滤条件的所有车辆信息。
///
public static IList GetLocalCars(string carNameOrSpell)
{
string querySql = "select * from {0} ".FormatWith(WeighBusiness.Utils.TableNames.车辆表);
//if (!string.IsNullOrEmpty(carNameOrSpell))
// querySql += "where Buyer_Spell like '%" + carNameOrSpell + "%' or Buyer_Spell like '%" + carNameOrSpell + "%'";
var table = SqlHelperEx.DoQuery(querySql);
var result = new List();
foreach (DataRow row in table.Rows) {
result.Add(row.ToCar());
}
return result;
}
public static Car GetLocalCar(string carNumber)
{
string querySql = "select * from {0} ".FormatWith(WeighBusiness.Utils.TableNames.车辆表);
if (!string.IsNullOrEmpty(carNumber))
querySql += "where Car_Number = '" + carNumber+"'";
var table = SqlHelperEx.DoQuery(querySql);
foreach (DataRow row in table.Rows) {
return row.ToCar();
}
return null;
}
///
/// 从本地数据库中查询所有会计单位信息。
///
public static IList GetAllAccountingUnits()
{
string querySql = "select * from {0} ".FormatWith(WeighBusiness.Utils.TableNames.会计单位表);
var table = SqlHelperEx.DoQuery(querySql);
var result = new List();
foreach (DataRow row in table.Rows) {
result.Add(row.ToAccountingUnit());
}
return result;
}
///
/// 获取本地数据库中称重表中指定ID号的信息。如果没有在返回null
///
public static Weigh GetLocalWeighHead(long id)
{
string querySql = @"select w.ID,w.IsChecked,w.CreateDateTime,w.Car_ID,c.Car_Name,w.CarNumber,w.Number,w.HeadWeight,w.Remote_Weigh_ID,w.RowVersion
from {0} w
left join {1} c on w.Car_ID=c.Car_ID
where w.ID = {2}";
querySql = querySql.FormatWith(TableNames.称重表, TableNames.车辆表, id);
var table = SqlHelperEx.DoQuery(querySql);
if (table.Rows.Count == 0)
return null;
Weigh result = new Weigh() {
ID = id,
IsChecked = DataTypeUtil.GetBoolData(table.Rows[0]["IsChecked"]),
CreateDateTime = DataTypeUtil.GetDateTimeNullData(table.Rows[0]["CreateDateTime"]),
Car_ID = DataTypeUtil.GetLongNum(table.Rows[0]["Car_ID"]),
Car_Name = table.Rows[0]["Car_Name"].ToString(),
CarNumber = DataTypeUtil.GetIntNullNum(table.Rows[0]["CarNumber"]),
Number = DataTypeUtil.GetIntNullNum(table.Rows[0]["Number"]),
HeadWeight = DataTypeUtil.GetDecimalNullNum(table.Rows[0]["HeadWeight"]),
Remote_Weigh_ID = DataTypeUtil.GetLongNullNum(table.Rows[0]["Remote_Weigh_ID"]),
RowVersion = DataTypeUtil.GetIntNum(table.Rows[0]["RowVersion"]),
};
return result;
}
const string QueryUserSql_Where = @"select ID,ERP_User_Name,ERP_User_Password,ERP_User_ID,IsDomainManager,UrlPath,IsAdmin from {0} where {1} = '{2}'";
const string QueryUserSql_NoWhere = "select ID,ERP_User_Name,ERP_User_Password,ERP_User_ID,IsDomainManager,UrlPath from {0}";
///
/// 获取本地数据库中的用户信息
///
/// 终端用户名
public static User GetLocalUser(string userName)
{
return GetLocalUserFromSql(QueryUserSql_Where, "ERP_User_Name", userName);
}
///
/// 获取本地数据库中的用户信息
///
/// 终端用户ID
public static User GetLocalUser(long userID)
{
return GetLocalUserFromSql(QueryUserSql_Where, "ID", userID);
}
private static User GetLocalUserFromSql(string querySql, string key, object value)
{
querySql = querySql.FormatWith(TableNames.用户表, key, value);
var table = SqlHelperEx.DoQuery(querySql);
if (table.Rows.Count == 0)
return null;
return GetUser(table.Rows[0]);
}
private static User GetUser(DataRow row)
{
return new User() {
ID = DataTypeUtil.GetLongNum(row["ID"]),
ERP_User_Name = row["ERP_User_Name"].ToString(),
ERP_User_Password = row["ERP_User_Password"].ToString(),
ERP_User_ID = DataTypeUtil.GetLongNum(row["ERP_User_ID"]),
IsDomainManager = DataTypeUtil.GetBoolData(row["IsDomainManager"]),
UrlPath = row["UrlPath"].ToString(),
IsAdmin = DataTypeUtil.GetBoolData(row["IsAdmin"])
};
}
///
/// 查询经过验证的用户,以及系统用户(system)
///
///
public static List GetAllLocalUsers_Valid()
{
var sql = QueryUserSql_NoWhere.FormatWith(TableNames.用户表) + " where (IsCheckTerminalUser = 'True' and IsCheckSystemUser = 'True') or User_Name = '{0}'".FormatWith("system");
return GetAllLocalUsers(sql);
}
public static List GetAllLocalUsers()
{
var sql = QueryUserSql_NoWhere.FormatWith(TableNames.用户表);
return GetAllLocalUsers(sql);
}
private static List GetAllLocalUsers(string sql)
{
var table = SqlHelperEx.DoQuery(sql);
if (table.Rows.Count == 0)
return null;
var users = new List();
foreach (DataRow row in table.Rows) {
var u = GetUser(row);
users.Add(u);
}
return users;
}
///
/// 获取本地数据库中指定本地称重单号的清单信息。如果没有在返回null
///
public static IList GetLocalWeighDetails(long localWeighID)
{
const string QuerySql =
@"select ID,Weight,WeighTime
from {0}
where Local_Weigh_ID = {1}";
var querySql = QuerySql.FormatWith(TableNames.称重清单表, localWeighID);
var table = SqlHelperEx.DoQuery(querySql);
if (table.Rows.Count == 0)
return null;
var result = new List();
foreach (DataRow row in table.Rows) {
Weigh_Detail detail = new Weigh_Detail() {
ID = DataTypeUtil.GetLongNum(row["ID"]),
Local_Weigh_ID = localWeighID,
Weight = DataTypeUtil.GetDecimalNullNum(row["Weight"]),
WeighTime = DataTypeUtil.GetDateTimeNullData(row["WeighTime"]),
};
result.Add(detail);
}
return result;
}
public static object GetLocalTableLastRowField(string table, string field)
{
string querySql = string.Format("select first 1 {1} from {0} order by {1} desc", table, field);
return SqlHelperEx.DoQuery