Пример #1
0
        /// <summary>
        /// 通过存储过程获取CGL不良信息及不良条数
        /// </summary>
        /// <param name="startDate"></param>
        /// <param name="endDate"></param>
        /// <returns></returns>
        public List <AIORAA> GetCGLNgInfoByProc(DateTime startDate, DateTime endDate)
        {
            aIORAAs = new List <AIORAA>();
            int MaxNgCount = 0;

            sampleRaas = new List <AIORAA>();
            OracleParameter[] oracleParameters = new OracleParameter[]
            {
                new OracleParameter("startDate", OracleDbType.Varchar2),
                new OracleParameter("endDate", OracleDbType.Varchar2),
                new OracleParameter("rs", OracleDbType.RefCursor, ParameterDirection.Output),
                new OracleParameter("NGCOUNT", OracleDbType.Int32, ParameterDirection.Output)
            };
            oracleParameters[0].Value = startDate.GetDateTimeFormats()[99];
            oracleParameters[1].Value = endDate.GetDateTimeFormats()[99];
            DataSet dataSet = MemoryCacheUtil.GetOrAddCacheItem(startDate.ToShortDateString() + endDate.ToShortDateString(),
                                                                () =>
            {
                ReadingDb(100, 2);   //进入数据库访问时初始化一个进度到窗口
                return(OraHelper.GetDataSet("pkg_aio.proc_GetCGL_NG_INFO", oracleParameters, CommandType.StoredProcedure));
            }, "cglNgInfo");

            aIORAAs    = Util.ToList <AIORAA>(dataSet.Tables[0]);
            MaxNgCount = MemoryCacheUtil.GetOrAddCacheItem(startDate.ToShortDateString() + endDate.ToShortDateString() + "MaxNgCount",
                                                           () => Convert.ToInt32(oracleParameters[3].Value.ToString()), "MaxNgCount");

            string snIn = "";
            //for (int i = 0; i < aIORAAs.Count; i++)
            //{
            //    snIn+= aIORAAs[i].SN.Substring(36, 17)+"'";
            //    aIORAAs[i] = GetMachineInfo(aIORAAs[i]);
            //    processCount++;
            //}
            int pageSize  = 1000;
            int totalPage = MaxNgCount % pageSize == 0 ? MaxNgCount / pageSize : MaxNgCount / pageSize + 1;

            if (MemoryCacheUtil.GetCacheItem <object>(startDate.ToShortDateString() + endDate.ToShortDateString() + "completeCglNg") == null)
            {
                for (int i = 0; i < totalPage; i++)
                {
                    List <string> ss = (aIORAAs.Skip(i * pageSize).Take(pageSize)).Select(p => "'" + p.SN.Substring(36, 17) + "'").ToList();
                    snIn = string.Join(",", ss);
                    GetMachineInfo(snIn, aIORAAs);
                    ReadingDb(totalPage, i + 1);
                }
            }
            else
            {
                ReadingDb(100, 100);//如果缓存中有数据直接将进度条置为 100%
            }
            sampleRaas = MemoryCacheUtil.GetOrAddCacheItem(startDate.ToShortDateString() + endDate.ToShortDateString() + "completeCglNg",
                                                           () => { return(sampleRaas); }, "completeCglNg");
            return(sampleRaas);
        }
Пример #2
0
 private static Form CacheForm <T>() where T : Form, new()
 {
     return(MemoryCacheUtil.GetOrAddCacheItem <Form>(typeof(T).Name, () =>
     {
         var form = new T();
         form.Owner = Utils.Shell;
         //form.Dock = DockStyle.Fill;
         form.TopLevel = false;
         return form;
     }, null, DateTime.MaxValue));
 }
Пример #3
0
        /// <summary>
        /// 条件过滤设备
        /// </summary>
        /// <param name="machineNo"></param>
        /// <returns></returns>
        public DataTable GetMachineNo(string machineNo)
        {
            string sql = "SELECT AIO001,AIO002 FROM dbo.BASAIO";

            if (machineNo.Length > 0)
            {
                sql += " where AIO001 like '%" + machineNo + "%'";
            }
            DataTable dt = MemoryCacheUtil.GetOrAddCacheItem("machineNos",
                                                             () => SqlHelper.GetDataTable(sql), "machineType.dt");

            return(dt);
        }
Пример #4
0
        /// <summary>
        /// 获取设备倾向性数据
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="startDate"></param>
        /// <param name="endDate"></param>
        /// <param name="machineNo"></param>
        /// <returns></returns>
        public List <T> GetCGLQXX <T>(DateTime startDate, DateTime endDate, string machineNo, out List <AIOLAV> aIOLAVs)
        {
            SqlParameter[] sqlParameters = new SqlParameter[]
            {
                new SqlParameter("@startDate", startDate),
                new SqlParameter("@endDate", endDate),
                new SqlParameter("@machineNo", machineNo)
            };
            DataSet dataSet = MemoryCacheUtil.GetOrAddCacheItem((startDate.ToShortDateString() + endDate.ToShortDateString() + machineNo),
                                                                () => SqlHelper.GetDataSetByProcedure("AIO_GetMachineTrend", sqlParameters), "QxxAndLimitAve");

            aIOLAVs = Util.ToList <AIOLAV>(dataSet.Tables[1]);
            return(Util.ToList <T>(dataSet.Tables[0]));
        }
Пример #5
0
        /// <summary>
        /// 获取角色权限
        /// </summary>
        /// <param name="roleName"></param>
        /// <returns></returns>
        public IEnumerable <sys_role_privilege> GetRolePrivilege()
        {
            var key = $"{PRIVILEGE_PREFIX}_{RoleName}";

            return(MemoryCacheUtil.GetOrAddCacheItem(key, () =>
            {
                var sql = @"
SELECT * FROM sys_role_privilege
WHERE sys_roleidName = @name
";
                var dataList = Broker.RetrieveMultiple <sys_role_privilege>(sql, new Dictionary <string, object>()
                {
                    { "@name", Role.GetDescription() }
                });
                return dataList;
            }, DateTime.Now.AddHours(12)));
        }
Пример #6
0
        /// <summary>
        /// 获取角色
        /// </summary>
        /// <param name="roleName"></param>
        /// <returns></returns>
        public sys_role GetSysRole()
        {
            var key = $"{ROLE_PREFIX}_{RoleName}";

            return(MemoryCacheUtil.GetOrAddCacheItem(key, () =>
            {
                var role = Broker.Retrieve <sys_role>("select * from sys_role where name = @name", new Dictionary <string, object>()
                {
                    { "@name", Role.GetDescription() }
                });
                if (role == null)
                {
                    role = new sys_role()
                    {
                        Id = Guid.NewGuid().ToString(),
                        name = Role.GetDescription(),
                        is_basic = true
                    };
                    Broker.Create(role);
                }
                return role;
            }, DateTime.Now.AddHours(12)));
        }