Beispiel #1
0
        private void GetRateList(int objectID, FaultRateInfo.ObjectType objectType, Dictionary <int, int> eqptContractCount, Dictionary <int, int> eqptRepairCount, int months, out List <FaultRateInfo> RateList, out List <FaultRateInfo> RateList1)
        {
            RateList  = new List <FaultRateInfo>();
            RateList1 = new List <FaultRateInfo>();
            for (int i = 0; i < 120; i++)
            {
                int eqptCount   = (from eqpt in eqptContractCount where eqpt.Value >= i select eqpt).Count();
                int repairCount = (from repair in eqptRepairCount where repair.Value == i select repair).Count();

                if (eqptCount > 0 && repairCount > 0)
                {
                    double        rate = Math.Round(repairCount * 100.0 / eqptCount, 2);
                    FaultRateInfo item = new FaultRateInfo();
                    item.Year         = SQLUtil.ConvertInt(i / 12 + 1);
                    item.Month        = SQLUtil.ConvertEnum <FaultRateInfo.DateTimeMonth>(i % 12 + 1);
                    item.ObjectID     = objectID;
                    item.ObjectTypeID = objectType;
                    item.Rate         = rate;

                    if (i < months)
                    {
                        RateList.Add(item);
                    }
                    else
                    {
                        RateList1.Add(item);
                    }
                }
            }
        }
Beispiel #2
0
        public List <FaultRateInfo> GetForecastRate(int objectID, FaultRateInfo.ObjectType objectType, double slope, double intercept, double slope1, double intercept1, int month = 0)
        {
            List <FaultRateInfo> ForecastRate = new List <FaultRateInfo>();

            for (int i = 0; i < 120; i++)
            {
                FaultRateInfo item = new FaultRateInfo();
                item.Year         = SQLUtil.ConvertInt(i / 12 + 1);
                item.Month        = SQLUtil.ConvertEnum <FaultRateInfo.DateTimeMonth>(i % 12 + 1);
                item.ObjectID     = objectID;
                item.ObjectTypeID = objectType;
                if (i > month)
                {
                    double rate = Math.Round((((i + 1) * slope1 + intercept1) * 100.0), 2);
                    item.Rate = rate;
                    ForecastRate.Add(item);
                }
                else
                {
                    double rate = Math.Round((((i + 1) * slope + intercept) * 100.0), 2);
                    item.Rate = rate;
                    ForecastRate.Add(item);
                }
            }

            return(ForecastRate);
        }
Beispiel #3
0
        public void SaveFujiClass2s(List <FujiClass2Info> infos, FujiClass2Info.SectionType type, UserInfo userInfo)
        {
            List <FujiClass2Info> existsInfos = this.QueryFujiClass2sByIDs(infos.Select(info => info.ID).ToList());
            DataTable             dt          = FujiClass2Info.ConvertFujiClass2DataTable(infos);

            switch (type)
            {
            case FujiClass2Info.SectionType.Labour:
                this.fujiClassDao.UpdateFujiClass2Labour(dt);
                break;

            case FujiClass2Info.SectionType.Contract:
                this.fujiClassDao.UpdateFujiClass2Contract(dt);
                break;

            case FujiClass2Info.SectionType.Spare:
                this.fujiClassDao.UpdateFujiClass2Spare(dt);
                break;

            case FujiClass2Info.SectionType.Repair:
                this.fujiClassDao.UpdateFujiClass2Repair(dt);
                this.UpdateFaultRates(infos.SelectMany(info => info.Repairs).ToList());
                break;
            }

            //转换日志信息
            infos.Sort();
            existsInfos.Sort();
            List <AuditHdrInfo> audits = new List <AuditHdrInfo>();
            int len = existsInfos.Count;

            for (int i = 0; i < len; i++)
            {
                AuditHdrInfo audit = existsInfos[i].ConvertAudit(infos[i], userInfo);
                audit.DetailInfo = audit.DetailInfo.Concat(FaultRateInfo.ConvertAuditDetail(existsInfos[i].Repairs, infos[i].Repairs)).ToList();
                audits.Add(audit);
            }
            DataTable auditDT       = audits.ConvertAuditDT();
            DataTable auditDetailDT = null;

            this.auditDao.AddAuditHdr(auditDT);
            for (int i = 0; i < len; i++)
            {
                if (auditDetailDT == null)
                {
                    auditDetailDT = audits[i].DetailInfo.ConvertAuditDetailDT(SQLUtil.ConvertInt(auditDT.Rows[i]["ID"]));
                }
                else
                {
                    auditDetailDT.Merge(audits[i].DetailInfo.ConvertAuditDetailDT(SQLUtil.ConvertInt(auditDT.Rows[i]["ID"])));
                }
            }
            this.auditDao.AddAuditDetail(auditDetailDT);
        }
Beispiel #4
0
        /// <summary>
        /// 添加故障率
        /// </summary>
        /// <param name="faultRateInfo">故障率信息</param>
        public void AddFaultRate(FaultRateInfo faultRateInfo)
        {
            sqlStr = "INSERT INTO tblFaultRate(ObjectTypeID , ObjectID  , Year , Month , Rate) " +
                     " VALUES(@ObjectTypeID , @ObjectID  , @Year , @Month , @Rate) ";

            using (SqlCommand command = ConnectionUtil.GetCommand(sqlStr))
            {
                command.Parameters.Add("@ObjectTypeID", SqlDbType.Int).Value = faultRateInfo.ObjectTypeID;
                command.Parameters.Add("@ObjectID", SqlDbType.Int).Value     = faultRateInfo.ObjectID;
                command.Parameters.Add("@Year", SqlDbType.Int).Value         = faultRateInfo.Year;
                command.Parameters.Add("@Month", SqlDbType.Int).Value        = faultRateInfo.Month;
                command.Parameters.Add("@Rate", SqlDbType.Decimal).Value     = faultRateInfo.Rate;

                command.ExecuteScalar();
            }
        }
Beispiel #5
0
        /// <summary>
        /// 更新故障率
        /// </summary>
        /// <param name="faultRate">故障率信息</param>
        public void UpdateFaultRate(FaultRateInfo faultRate)
        {
            sqlStr = @"UPDATE tblFaultRate SET Rate = @Rate
                       WHERE ObjectTypeID=@ObjectTypeID AND ObjectID=@ObjectID AND Year=@Year AND Month=@Month ";

            using (SqlCommand command = ConnectionUtil.GetCommand(sqlStr))
            {
                command.Parameters.Add("@ObjectTypeID", SqlDbType.Int).Value = faultRate.ObjectTypeID;
                command.Parameters.Add("@ObjectID", SqlDbType.Int).Value     = faultRate.ObjectID;
                command.Parameters.Add("@Year", SqlDbType.Int).Value         = faultRate.Year;
                command.Parameters.Add("@Month", SqlDbType.Int).Value        = faultRate.Month;
                command.Parameters.Add("@Rate", SqlDbType.Decimal).Value     = faultRate.Rate;

                command.ExecuteScalar();
            }
        }
Beispiel #6
0
        public void UpdateComponents(List <ComponentInfo> infos, UserInfo userInfo)
        {
            List <ComponentInfo> existsInfos = this.QueryComponentsByIDs(infos.Select(info => info.ID).ToList());

            foreach (ComponentInfo info in infos)
            {
                this.componentDao.UpdateComponent(info);
            }
            DataTable dt = FaultRateInfo.ConvertFaultRateDataTable(infos.SelectMany(component => component.FaultRates).ToList());

            this.faultRateDao.UpdateFaultRates(dt);

            // 零件转换日志信息

            infos.Sort();
            existsInfos.Sort();
            List <AuditHdrInfo> audits = new List <AuditHdrInfo>();
            int len = existsInfos.Count;

            for (int i = 0; i < len; i++)
            {
                AuditHdrInfo audit = existsInfos[i].ConvertAudit(infos[i], userInfo);
                audit.DetailInfo = audit.DetailInfo.Concat(FaultRateInfo.ConvertAuditDetail(existsInfos[i].FaultRates, infos[i].FaultRates)).ToList();
                //if(audit.DetailInfo.Count>0)
                audits.Add(audit);
            }
            DataTable auditDT       = audits.ConvertAuditDT();
            DataTable auditDetailDT = null;

            this.auditDao.AddAuditHdr(auditDT);
            for (int i = 0; i < len; i++)
            {
                if (auditDetailDT == null)
                {
                    auditDetailDT = audits[i].DetailInfo.ConvertAuditDetailDT(SQLUtil.ConvertInt(auditDT.Rows[i]["ID"]));
                }
                else
                {
                    auditDetailDT.Merge(audits[i].DetailInfo.ConvertAuditDetailDT(SQLUtil.ConvertInt(auditDT.Rows[i]["ID"])));
                }
            }
            this.auditDao.AddAuditDetail(auditDetailDT);
        }
Beispiel #7
0
        public int SaveComponent(ComponentInfo info, UserInfo userInfo)
        {
            if (info.ID == 0)
            {
                info.ID = this.componentDao.AddComponent(info);
                if (info.FaultRates.Count == 0)
                {
                    info.FaultRates = FaultRateInfo.GetInitList(info.ID, FaultRateInfo.ObjectType.Component);
                }
                else
                {
                    info.FaultRates.ForEach(faultRate => faultRate.ObjectID = info.ID);
                }
                this.faultRateDao.AddFaultRates(FaultRateInfo.ConvertFaultRateDataTable(info.FaultRates));
            }
            else
            {
                ComponentInfo existingInfo = this.componentDao.GetComponentByID(info.ID);
                existingInfo.FaultRates = this.faultRateDao.GetFaultRateByObject(existingInfo.ID, FaultRateInfo.ObjectType.Component);
                info.FujiClass2.Name    = this.fujiClassDao.GetFujiClass2ByID(info.FujiClass2.ID).Name;
                DataTable dtField = existingInfo.GetChangedFields(info);

                if (dtField.Rows.Count > 0)
                {
                    this.componentDao.UpdateComponent(info);

                    this.faultRateDao.UpdateFaultRates(FaultRateInfo.ConvertFaultRateDataTable(info.FaultRates));
                    // 转换故障率信息
                    if (info.FaultRates.Count != 0 && existingInfo.FaultRates.Count != 0)
                    {
                        dtField.Merge(FaultRateInfo.ConvertAuditDetail(existingInfo.FaultRates, info.FaultRates).ConvertAuditDetailDT(0));
                    }
                    this.auditManager.AddAuditLog(userInfo.ID, ObjectTypes.Component, info.ID, dtField);
                }
            }

            return(info.ID);
        }
Beispiel #8
0
        public void UpdateFaultRates(List <FaultRateInfo> infos)
        {
            DataTable dt = FaultRateInfo.ConvertFaultRateDataTable(infos);

            this.faultRateDao.UpdateFaultRates(dt);
        }
Beispiel #9
0
        public int SaveFujiClass2(FujiClassLink info, UserInfo userInfo, bool isUpdate, int copyID = 0)
        {
            List <AuditHdrInfo> audits = new List <AuditHdrInfo>();
            AuditHdrInfo        audit;

            if (info.FujiClass2.ID == 0)
            {
                if (copyID != 0)
                {
                    FujiClass2Info copyInfo = this.GetFujiClass2ByID(copyID);
                    copyInfo.FujiClass1  = info.FujiClass2.FujiClass1;
                    copyInfo.Name        = info.FujiClass2.Name;
                    copyInfo.Description = info.FujiClass2.Description;
                    info.FujiClass2.ID   = this.fujiClassDao.AddFujiClass2(copyInfo);
                    this.fujiClassDao.AddFujiClass2EqpType(info);
                    copyInfo.Repairs.ForEach(rate => rate.ObjectID = info.FujiClass2.ID);
                    this.AddFaultRates(copyInfo.Repairs);
                    if (copyInfo.Components.Count > 0)
                    {
                        foreach (ComponentInfo componentInfo in copyInfo.Components)
                        {
                            componentInfo.ID            = 0;
                            componentInfo.FujiClass2.ID = info.FujiClass2.ID;
                            this.componentManager.SaveComponent(componentInfo, userInfo);
                        }
                    }
                    if (copyInfo.Consumables.Count > 0)
                    {
                        foreach (ConsumableInfo consumableInfo in copyInfo.Consumables)
                        {
                            consumableInfo.ID            = 0;
                            consumableInfo.FujiClass2.ID = info.FujiClass2.ID;
                            this.consumableDao.AddConsumable(consumableInfo);
                        }
                    }
                }
                else
                {
                    this.fujiClassDao.AddFujiClass2(info.FujiClass2);
                    this.fujiClassDao.AddFujiClass2EqpType(info);
                    info.FujiClass2.Repairs = FaultRateInfo.GetInitList(info.FujiClass2.ID, FaultRateInfo.ObjectType.Repair);
                    this.AddFaultRates(info.FujiClass2.Repairs);
                }
                audit = info.ConvertAudit(userInfo);
                if (audit.DetailInfo.Count > 0)
                {
                    audits.Add(audit);
                }
            }
            else
            {
                FujiClassLink existsInfo = this.GetFujiLinkByClass2ID(info.FujiClass2.ID);
                if (isUpdate)
                {
                    info.FujiClass2.CheckEquipmentTypeRelatedFields();
                    this.fujiClassDao.UpdateFujiClass2(info.FujiClass2);
                    this.UpdateFaultRates(info.FujiClass2.Repairs);

                    audit            = existsInfo.FujiClass2.ConvertAudit(info.FujiClass2, userInfo);
                    audit.DetailInfo = audit.DetailInfo.Concat(FaultRateInfo.ConvertAuditDetail(existsInfo.FujiClass2.Repairs, info.FujiClass2.Repairs)).ToList();
                    if (audit.DetailInfo.Count > 0)
                    {
                        audits.Add(audit);
                    }

                    int componentLen = info.FujiClass2.Components.Count;
                    info.FujiClass2.Components.Sort();
                    existsInfo.FujiClass2.Components.Sort();
                    info.FujiClass2.Consumables.Sort();
                    existsInfo.FujiClass2.Consumables.Sort();
                    for (int i = 0; i < componentLen; i++)
                    {
                        this.componentDao.UpdateComponent(info.FujiClass2.Components[i]);
                        audit = existsInfo.FujiClass2.Components[i].ConvertAudit(info.FujiClass2.Components[i], userInfo);
                        if (audit.DetailInfo.Count > 0)
                        {
                            audits.Add(audit);
                        }
                    }
                    componentLen = info.FujiClass2.Consumables.Count;
                    for (int i = 0; i < componentLen; i++)
                    {
                        this.consumableDao.UpdateConsumable(info.FujiClass2.Consumables[i]);
                        audit = existsInfo.FujiClass2.Consumables[i].ConvertAudit(info.FujiClass2.Consumables[i], userInfo);
                        if (audit.DetailInfo.Count > 0)
                        {
                            audits.Add(audit);
                        }
                    }
                }
                else
                {
                    this.fujiClassDao.AddFujiClass2EqpType(info);
                    audit = info.ConvertAudit(userInfo);
                    if (audit.DetailInfo.Count > 0)
                    {
                        audits.Add(audit);
                    }
                }
            }

            int len = audits.Count;

            if (len == 0)
            {
                return(info.FujiClass2.ID);
            }
            DataTable auditDT       = audits.ConvertAuditDT();
            DataTable auditDetailDT = null;

            this.auditDao.AddAuditHdr(auditDT);
            for (int i = 0; i < len; i++)
            {
                if (auditDetailDT == null)
                {
                    auditDetailDT = audits[i].DetailInfo.ConvertAuditDetailDT(SQLUtil.ConvertInt(auditDT.Rows[i]["ID"]));
                }
                else
                {
                    auditDetailDT.Merge(audits[i].DetailInfo.ConvertAuditDetailDT(SQLUtil.ConvertInt(auditDT.Rows[i]["ID"])));
                }
            }
            this.auditDao.AddAuditDetail(auditDetailDT);

            return(info.FujiClass2.ID);
        }