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; } } } }