public void TestIsExpire()
        {
            IList <SupplierInformationInfo> dataList = new List <SupplierInformationInfo>();
            var result = _qualificationManager.IsExpire(dataList, 30);

            Assert.IsTrue(result == "0");

            dataList.Add(new SupplierInformationInfo
            {
                QualificationType = (int)SupplierQualificationType.BusinessLicense,
                OverdueDate       = DateTime.Now.AddDays(-10)
            });
            var result1 = _qualificationManager.IsExpire(dataList, 30);

            Assert.IsTrue(result1 == "3");

            dataList.Add(new SupplierInformationInfo
            {
                QualificationType = (int)SupplierQualificationType.TaxRegistrationCertificate,
                OverdueDate       = DateTime.Now.AddDays(10)
            });
            var result2 = _qualificationManager.IsExpire(dataList, 30);

            Assert.IsTrue(result2 == "3,2");

            dataList.Add(new SupplierInformationInfo
            {
                QualificationType = (int)SupplierQualificationType.MedicalDeviceBusinessLicense,
                OverdueDate       = DateTime.Now.AddDays(60)
            });
            var result3 = _qualificationManager.IsExpire(dataList, 30);

            Assert.IsTrue(result3 == "3,2,1");

            dataList.Add(new SupplierInformationInfo
            {
                QualificationType = (int)SupplierQualificationType.OrganizationCodeCertificate,
                OverdueDate       = DateTime.Now.AddDays(50)
            });
            var result4 = _qualificationManager.IsExpire(dataList, 30);

            Assert.IsTrue(result4 == "3,2,1");
        }
        /// <summary>
        /// 供应商资质完整与过期维护
        /// </summary>
        public static void RunQualificationTask()
        {
            var date            = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
            var createStockHour = Configuration.AppSettings["CreateStockHour"];
            var hours           = createStockHour.Split(',');

            if (!hours.Contains(string.Format("{0}", date.Hour)))
            {
                return;
            }
            if (_currentDay == DateTime.Now.Day)
            {
                return;
            }
            try
            {
                var dataList = _companyCussent.GetSupplierGoodsInfos(CompanyType.Suppliers, State.Enable, string.Empty, 0, 0);
                if (dataList.Count > 0)
                {
                    foreach (var supplierGoodsInfo in dataList)
                    {
                        var infoList = _qualification.GetSupplierQualificationBySupplierId(supplierGoodsInfo.ID);
                        if (infoList.Count == 0)
                        {
                            if (supplierGoodsInfo.Complete == 0 && supplierGoodsInfo.Expire == "0")
                            {
                                continue;
                            }
                            _companyCussent.UpdateQualificationCompleteState(supplierGoodsInfo.ID, 0, "0");
                        }
                        else
                        {
                            var complete = _qualificationManager.IsComplete(infoList);
                            var expire   = _qualificationManager.IsExpire(infoList, _days);
                            if (supplierGoodsInfo.Complete != complete || expire != supplierGoodsInfo.Expire)
                            {
                                _companyCussent.UpdateQualificationCompleteState(supplierGoodsInfo.ID, complete, expire);
                            }
                        }
                    }
                    _currentDay = DateTime.Now.Day;
                }
            }
            catch (Exception exp)
            {
                ERP.SAL.LogCenter.LogService.LogError(string.Format("{0}供应商资质完整与过期维护异常!", date), "供应商资质完整与过期维护", exp);
            }
        }