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;
|
|
/// <summary>
|
/// 获取单例的方法
|
/// </summary>
|
/// <returns>单例实体</returns>
|
public static PlaceMaterialViewService GetInstance()
|
{
|
|
if (Instance == null)
|
{
|
lock (Lock)
|
{
|
if (Instance == null)
|
{
|
Instance = new PlaceMaterialViewService();
|
}
|
}
|
}
|
return Instance;
|
}
|
|
|
|
/// <summary>
|
/// 查询数量按物料类型分组,
|
/// </summary>
|
/// <param name="start"></param>
|
/// <param name="end"></param>
|
/// <returns></returns>
|
public List<PlaceMaterialHelper> GetMaterialByType()
|
{
|
using (DbModelCore context = new DbModelCore())
|
{
|
try
|
{
|
string sql = "SELECT materialcode,typename,COUNT(id) as quantity FROM BASEPlaceMaterialView group by materialcode, typename";
|
List<PlaceMaterialHelper> data = context.Database.SqlQuery<PlaceMaterialHelper>(sql).ToList();
|
return data;
|
}
|
catch (Exception ex)
|
{
|
LogTextHelper.WriteLine("PlaceMaterialViewService", "GetMaterialByType", ex.ToString());
|
return null;
|
}
|
}
|
}
|
|
|
|
/// <summary>
|
/// 获取各种状态的库位
|
/// </summary>
|
/// <returns></returns>
|
public List<PlaceMaterialHelper> GetPlaceStatusNum(out string msg)
|
{
|
msg = "";
|
List<PlaceMaterialHelper> psnlst = new List<PlaceMaterialHelper>();
|
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<PlaceMaterialHelper>(sql).ToList();
|
}
|
return psnlst;
|
}
|
catch (Exception ex)
|
{
|
msg = ex.ToString();
|
LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "GetPlaceStatusNum", ex.Message);
|
return psnlst;
|
}
|
}
|
}
|
}
|