using iWareCommon.Utils;
using iWareDataCore.BASE.Entity;
using iWareDataCore.ORM;
using iWareDataCore.Properties;
using iWareDataCore.Report.PlaceMaterial.Helper;
using System;
using System.Collections.Generic;
using System.Linq;
namespace iWareDataCore.Report.PlaceMaterial.Service
{
public class PlaceMaterialViewService
{
private static object Lock = new object();
private static PlaceMaterialViewService Instance = null;
///
/// 获取单例的方法
///
/// 单例实体
public static PlaceMaterialViewService GetInstance()
{
if (Instance == null)
{
lock (Lock)
{
if (Instance == null)
{
Instance = new PlaceMaterialViewService();
}
}
}
return Instance;
}
///
/// 查询数量按物料类型分组,
///
///
///
///
public List GetMaterialByType()
{
using (DbModelCore context = new DbModelCore())
{
try
{
string sql = "SELECT materialcode,typename,COUNT(id) as quantity FROM BASEPlaceMaterialView group by materialcode, typename";
List data = context.Database.SqlQuery(sql).ToList();
return data;
}
catch (Exception ex)
{
LogTextHelper.WriteLine("PlaceMaterialViewService", "GetMaterialByType", ex.ToString());
return null;
}
}
}
///
/// 获取各种状态的库位
///
///
public List GetPlaceStatusNum(out string msg)
{
msg = "";
List psnlst = new List();
try
{
using (DbModelCore mcore = new DbModelCore())
{
string sql = @"select A.EmptyPlace,B.FullPlace,C.LockPlace from
(select 1 as id,COUNT(id) as EmptyPlace from BASEPlace where typeid=4 and status=0 )A left join
(select 1 as id,COUNT(id) as FullPlace from BASEPlace where typeid=4 and status=2)B on A.id=B.id left join
(select 1 as id,COUNT(id) as LockPlace from BASEPlace where typeid=4 and islock=1)C on A.id=C.id";
psnlst = mcore.Database.SqlQuery(sql).ToList();
}
return psnlst;
}
catch (Exception ex)
{
msg = ex.ToString();
LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "GetPlaceStatusNum", ex.Message);
return psnlst;
}
}
}
}