Exemple #1
0
        public ФактическоеПотреблениеVM(ПланНормативныйТехнологический планНормативный)
        {
            cfc = new CodeFirstContext();
            ActualConsumption = new ObservableCollection <ФактическоеПотребление>();

            cfc.ФактическоеПотреблениеSet
            .Where(w => w.ПланНормативныйТехнологический.Id == планНормативный.Id)
            .Load();
            var contextCollection = cfc.ФактическоеПотреблениеSet.Local;

            foreach (ФактическоеПотребление item in contextCollection)
            {
                ActualConsumption.Add(item);
            }

            //ActualConsumption = WorkCollection.GetФактическоеПотребление<ФактическоеПотребление>(cfc);
            cfc.УстановкаSet.Load();
            Devices = WorkCollection.GetТехнологическоеУстройство <ТехнологическаяУстановка>(cfc);

            UpLoadComboBoxes(планНормативный);
            //if (ActualConsumption.Count > 0)
            //{
            //    UpLoadComboBoxes(планНормативный);
            //}

            ActualConsumption.CollectionChanged += ActualConsumption_CollectionChanged;
        }
Exemple #2
0
        public ДневнаяНормаVM(ДневнаяНормаНаУстановку дневнаяНормаНаУстановку)
        {
            // Инициализация контекста данных.
            cfc = new CodeFirstContext();

            // Выбрать текущую запись о дневной норме, для обновления поля - режим работы, в свойстве SelectedMode.
            cfc.ДневнаяНормаНаУстановкуSet
            .Where(w => w.Id == дневнаяНормаНаУстановку.Id)
            .Load();
            currentNorm = cfc.ДневнаяНормаНаУстановкуSet.Local.FirstOrDefault();

            // Заполнение combobox, данными из таблицы РежимРаботыУстановкиSet.
            cfc.ежимРаботыУстановкиSet
            .Where(w => w.ТехнологическаяУстановка.УстройствоId
                   == дневнаяНормаНаУстановку.ТехнологическаяУстановка.УстройствоId)
            .Load();
            ModePowersDevices = WorkCollection.GetРежимыРаботыУстановки <ежимРаботыУстановки>(cfc);

            // Усановка combobox в выбранное состояние.
            selectedMode = currentNorm.ежимРаботыУстановки;

            // Обновление и заполнение DataGrid.ы
            if (selectedMode != null)
            {
                UpdateOperationMods(currentNorm.Норма);
            }
        }
Exemple #3
0
 public ПланНормативныйVM()
 {
     cfc = new CodeFirstContext();
     cfc.СправочникSet.Load();
     Plans = WorkCollection.GetПланНормативныйТехнологический <ПланНормативныйТехнологический>(cfc);
     Plans.CollectionChanged += Plans_CollectionChanged;
 }
Exemple #4
0
 private void UpdateDayOfNorm()
 {
     DayOfNorm
     .ToList()
     .ForEach(x => cfc.Entry(x).Reload());
     DayOfNorm = WorkCollection.GetДневнаяНормаНаУстановку <ДневнаяНормаНаУстановку>(cfc);
 }
Exemple #5
0
        private void PowerDevices_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
        {
            // Данная выборка добавляет внешний ключ к полю ТехнологическоеУстройство, из текущего контекса,
            // так как при добавлении строки в DataGrid это поле пустое.

            // Существовала ошибка с пустой ссылкой поля currentDevice, когда добавленная строка
            // силового агрегата не имела внешнего ключа таблицы УстройствоSet.
            (sender as ObservableCollection <СиловойАгрегатВУстановке>)
            .Where(w => w.ТехнологическаяУстановка == null)
            .ToList()
            .ForEach(x => x.ТехнологическаяУстановка = currentDevice);

            WorkCollection.ItemCollectionChanged <СиловойАгрегатВУстановке>(cfc, e);


            if (e.Action == NotifyCollectionChangedAction.Add)
            {
                var coll = e.NewItems;
                foreach (СиловойАгрегатВУстановке item in coll)
                {
                    cfc.УстройствоРежимРесурсSet.Add(new УстановкаРежимРесурс(item.Id, 1));
                }
                cfc.SaveChanges();
            }
        }
Exemple #6
0
        public СиловойАгрегатVM(ТехнологическаяУстановка технологическоеУстройство)
        {
            cfc = new CodeFirstContext();
            cfc.СиловойАгрегатВУстройствеSet.Load();
            cfc.УстановкаSet.Load();
            cfc.УстройствоРежимРесурсSet.Load();

            PowerDevices             = new ObservableCollection <СиловойАгрегатВУстановке>();
            установкаРежимРесурсSets = new ObservableCollection <УстановкаРежимРесурс>();

            var contextCollection = cfc
                                    .СиловойАгрегатВУстройствеSet
                                    .Where(w => w.ТехнологическаяУстановка
                                           .УстройствоId.Equals(технологическоеУстройство.УстройствоId));

            // Получение внешнего ключа из текущего контекста.
            currentDevice = (ТехнологическаяУстановка)cfc
                            .УстановкаSet
                            .Local
                            .Where(w => w.УстройствоId == технологическоеУстройство.УстройствоId)
                            .FirstOrDefault();

            //TODO 2021-01-10: Вынести в отдельный класс по заполнению коллекций.
            foreach (СиловойАгрегатВУстановке item in contextCollection)
            {
                PowerDevices.Add(item);
            }

            установкаРежимРесурсSets = WorkCollection.GetУстановкаРежимРесурс <УстановкаРежимРесурс>(cfc);

            PowerDevices.CollectionChanged += PowerDevices_CollectionChanged;
        }
Exemple #7
0
        public ПланПоМесяцамVM()
        {
            cfc = new CodeFirstContext();
            cfc.ПланПроизводстваПоМесяцамSet.Load();

            планПроизводстваПоМесяцамs = WorkCollection.GetПланПоМесяцам <ПланПроизводстваПоМесяцам>(cfc);
            планПроизводстваПоМесяцамs.CollectionChanged += ПланПроизводстваПоМесяцамs_CollectionChanged;
        }
Exemple #8
0
        public УстройствоVM()
        {
            cfc = new CodeFirstContext();
            cfc.УстановкаSet.Load();

            Devices = WorkCollection.GetТехнологическоеУстройство <ТехнологическаяУстановка>(cfc);
            Devices.CollectionChanged += Devices_CollectionChanged;
        }
Exemple #9
0
        public СправочникРесурсовVM()
        {
            cfc = new CodeFirstContext();

            cfc.СправочникРесурсовSet.Load();

            ListResource = WorkCollection.GetСправочникРесурсов <СправочникРесурсов>(cfc);
            ListResource.CollectionChanged += ListResource_CollectionChanged;
        }
Exemple #10
0
        private void ActualConsumption_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
        {
            (sender as ObservableCollection <ФактическоеПотребление>)
            .Where(w => w.ПланНормативныйТехнологический == null)
            .ToList()
            .ForEach(x => x.ПланНормативныйТехнологический = currentPlan);

            WorkCollection.ItemCollectionChanged <ФактическоеПотребление>(cfc, e);
        }
Exemple #11
0
        private void ModeOperationDevice_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
        {
            //Добавление внешнего ключа в поле - СиловойАгрегатВУстройстве.
            (sender as ObservableCollection <ежимРаботыУстановки>)
            .Where(w => w.ТехнологическаяУстановка == null)
            .ToList()
            .ForEach(x => x.ТехнологическаяУстановка = currentDev);

            WorkCollection.ItemCollectionChanged <ежимРаботыУстановки>(cfc, e);
        }
Exemple #12
0
        //------------------------------------------------------------------------------
        //Callback Name: apply_cb
        //------------------------------------------------------------------------------
        public int apply_cb()
        {
            int errorCode = 0;

            try
            {
                //---- Enter your callback code here -----
                NXOpen.Assemblies.Component ct = seleComp.GetSelectedObjects()[0] as NXOpen.Assemblies.Component;
                Part workPart = theSession.Parts.Work;
                if (ct != null)
                {
                    List <string> err = new List <string>();
                    bool          isBorrow;
                    if (this.enum0.ValueAsString == "借用电极")
                    {
                        isBorrow = true;
                    }
                    else
                    {
                        isBorrow = false;
                    }
                    MoldInfo old  = MoldInfo.GetAttribute(ct);
                    MoldInfo mold = new MoldInfo()
                    {
                        MoldNumber      = this.MoldNumber.WideValue.ToUpper(),
                        WorkpieceNumber = this.PartNumber.WideValue.ToUpper(),
                        ClientName      = this.ClientNumber.WideValue.ToUpper(),
                        EditionNumber   = this.EditionNumber.WideValue.ToUpper(),
                        MoldType        = old.MoldType
                    };
                    ParentAssmblieInfo info   = new ParentAssmblieInfo(mold, user.CreatorUser);
                    WorkCollection     wkColl = asmColl.GetWorkCollection(old);
                    err.AddRange(AlterWork(wkColl.Work, info));
                    err.AddRange(AlterEdm(wkColl.EdmModel, info));
                    err.AddRange(AlterElectrode(wkColl.Electrodes, info, isBorrow));
                    PartUtils.SetPartDisplay(workPart);
                    ASMModel asm = new ASMModel(workPart);
                    if (asm.Info.MoldInfo.Equals(old))
                    {
                        err.AddRange(AlterAsm(asm, info));
                    }
                    if (err.Count > 0)
                    {
                        ClassItem.Print(err.ToArray());
                    }
                }
            }
            catch (Exception ex)
            {
                //---- Enter your exception handling code here -----
                errorCode = 1;
                theUI.NXMessageBox.Show("Block Styler", NXMessageBox.DialogType.Error, ex.ToString());
            }
            return(errorCode);
        }
Exemple #13
0
        /// <summary>
        /// 修改版本
        /// </summary>
        /// <param name="editionNumber"></param>
        private void UpdateEditionNumber(string editionNumber)
        {
            UFSession theUFSession = UFSession.GetUFSession();
            Session   theSession   = Session.GetSession();
            MoldInfo  mf           = asm.Info.MoldInfo;

            mf.EditionNumber = editionNumber;
            mf.SetAttribute(asm.PartTag);
            foreach (ElectrodeModel em in asmColl.GetElectrodes())
            {
                MoldInfo mi = em.Info.MoldInfo;
                mi.EditionNumber = editionNumber;
                mi.SetAttribute(em.PartTag);
                string dwgName = em.Info.AllInfo.Name.EleName + "_dwg";
                string dwg     = em.WorkpieceDirectoryPath + em.Info.AllInfo.Name.EleName + "_dwg.prt";
                if (File.Exists(dwg))
                {
                    Part dwgPart = null;
                    try
                    {
                        dwgPart = theSession.Parts.FindObject(dwgName) as Part;
                        if (dwgPart != null)
                        {
                            mi.SetAttribute(dwgPart);
                            continue;
                        }
                    }
                    catch
                    {
                    }
                    Tag part;
                    UFPart.LoadStatus error_status;
                    theUFSession.Part.Open(dwg, out part, out error_status);
                    mi.SetAttribute(NXObjectManager.Get(part) as Part);
                }
            }
            foreach (MoldInfo mi in asmColl.MoldInfo)
            {
                WorkCollection wkColl = asmColl.GetWorkCollection(mi);
                foreach (WorkModel wm in wkColl.Work)
                {
                    MoldInfo wmMold = wm.Info.MoldInfo;
                    wmMold.EditionNumber = editionNumber;
                    wmMold.SetAttribute(wm.PartTag);
                }
                foreach (EDMModel em in wkColl.EdmModel)
                {
                    MoldInfo wmMold = em.Info.MoldInfo;
                    wmMold.EditionNumber = editionNumber;
                    wmMold.SetAttribute(em.PartTag);
                }
            }
            PartUtils.SetPartDisplay(asm.PartTag);
        }
Exemple #14
0
        /// <summary>
        /// 默认电极名
        /// </summary>
        /// <returns></returns>
        private string GetDefEleName(MoldInfo mold)
        {
            WorkCollection wc = new WorkCollection(mold);

            if (wc.Electrodes.Count == 0)
            {
                return(mold.MoldNumber + "-" + mold.WorkpieceNumber + "E1");
            }
            else
            {
                ElectrodeNameInfo nameInfo = (wc.Electrodes[wc.Electrodes.Count - 1].Info).AllInfo.Name;
                string            name     = nameInfo.EleName.Substring(0, nameInfo.EleName.LastIndexOf("E"));
                return(name + "E" + (nameInfo.EleNumber + 1).ToString());
            }
        }
Exemple #15
0
        public НормыПоУстановкамиVM(ПланПроизводстваПоДням планПроизводстваПоДням)
        {
            cfc = new CodeFirstContext();
            cfc.УстановкаSet.Load();
            cfc.ежимРаботыАгрегатаSet.Load();
            cfc.ежимРаботыУстановкиSet.Load();
            cfc.СиловойАгрегатВУстройствеSet.Load();

            cfc.ДневнаяНормаНаУстановкуSet
            .Where(w => w.ПланПроизводстваПоДням.Id == планПроизводстваПоДням.Id)
            .Load();

            DayOfNorm = WorkCollection.GetДневнаяНормаНаУстановку <ДневнаяНормаНаУстановку>(cfc);
            //TODO 2021-01-21: Доделать список ресурсов и по мелочи :), удачи тебе Дмитрий, ты справишся!
        }
Exemple #16
0
        private void OperatingModePD_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
        {
            //Добавление внешнего ключа в поле - СиловойАгрегатВУстройстве.
            (sender as ObservableCollection <ежимРаботыАгрегата>)
            .Where(w => w.СиловойАгрегатВУстройстве == null)
            .ToList()
            .ForEach(x =>
            {
                x.СиловойАгрегатВУстройстве = currentPowerDev;
                x.НаименованиеРесурса       = selectedRes.НаименованиеРесурса ?? "Наименование отсувсвует";
                x.ТипЕдиниц = currentPowerDev.ТипЕдиницИзмерения;
            });

            WorkCollection.ItemCollectionChanged <ежимРаботыАгрегата>(cfc, e);
        }
Exemple #17
0
        public ежимРаботыVM(УстановкаРежимРесурс устройствоРежимРесурс)
        {
            OperatingModePD = new ObservableCollection <ежимРаботыАгрегата>();
            cfc             = new CodeFirstContext();

            //cfc.СправочникРесурсовSet.Load();
            //cfc.УстройствоРежимРесурсSet
            //    .Where(w => w.УстановкаId == устройствоРежимРесурс.УстановкаId
            //        && w.РесурсId == устройствоРежимРесурс.РесурсId)
            //    .Load();

            //currentустройствоРежимРесурс = cfc.УстройствоРежимРесурсSet
            //    .Local
            //    .Where(w => w.РесурсId == устройствоРежимРесурс.РесурсId
            //        && w.УстановкаId == устройствоРежимРесурс.УстановкаId
            //        && w.РежимРаботыУстановкиId == устройствоРежимРесурс.РежимРаботыУстановкиId)
            //    .FirstOrDefault();

            ListResource = WorkCollection.GetСправочникРесурсов <СправочникРесурсов>(cfc);

            //selectedRes = cfc
            //    .УстройствоРежимРесурсSet
            //    .Local
            //    .Where(w => w.УстановкаId == устройствоРежимРесурс.УстановкаId
            //        && w.РесурсId == устройствоРежимРесурс.РесурсId)
            //    .Select(s => s.СправочникРесурсов)
            //    .FirstOrDefault();

            var ContextCollection = cfc.УстройствоРежимРесурсSet.Local;

            //selectedRes = ContextCollection
            //        .Where(w => w.УстановкаId == устройствоРежимРесурс.УстановкаId
            //            && w.РесурсId == устройствоРежимРесурс.РесурсId)
            //        .Select(s => s.СправочникРесурсов)
            //        .FirstOrDefault();

            //TODO 2021-01-10: Вынести в отдельный класс по заполнению коллекций.
            //foreach (УстановкаРежимРесурс item in ContextCollection)
            //{
            //    OperatingModePD.Add(item.РежимРаботыСиловогоАгретата);
            //}

            //currentустройствоРежимРесурс = ContextCollection
            //        .Where(w => w.РесурсId == устройствоРежимРесурс.РесурсId
            //            && w.УстановкаId == устройствоРежимРесурс.УстановкаId
            //            && w.РежимРаботыАгрегатаId == устройствоРежимРесурс.РежимРаботыАгрегатаId)
            //        .FirstOrDefault();
        }
Exemple #18
0
        public ежимРаботыУстановкиVM(ТехнологическаяУстановка технологическаяУстановка)
        {
            cfc = new CodeFirstContext();
            cfc.ежимРаботыУстановкиSet
            .Where(w => w.ТехнологическаяУстановка.УстройствоId == технологическаяУстановка.УстройствоId)
            .Load();

            cfc.УстановкаSet
            .Where(w => w.УстройствоId == технологическаяУстановка.УстройствоId)
            .Load();

            currentDev = cfc.УстановкаSet.Local.FirstOrDefault() as ТехнологическаяУстановка;

            ModeOperationDevice = WorkCollection.GetРежимыРаботыУстановки <ежимРаботыУстановки>(cfc);
            ModeOperationDevice.CollectionChanged += ModeOperationDevice_CollectionChanged;
        }
        private List <string> CopWork(NXOpen.Assemblies.Component ct, WorkModel work, UserModel user)
        {
            List <string> err = new List <string>();
            Matrix4       mat = new Matrix4();

            mat.Identity();

            MoldInfo       mold     = work.Info.MoldInfo.Clone() as MoldInfo;
            WorkCollection workColl = new WorkCollection(mold);

            NXOpen.Assemblies.Component moveCt = null;
            try
            {
                moveCt = AssmbliesUtils.MoveCompCopyPart(ct, new Vector3d(), mat);
            }
            catch (NXException ex)
            {
                err.Add("无法移动工件!" + ex.Message);
                return(err);
            }
            string name = work.WorkpieceDirectoryPath + mold.MoldNumber + "-" + mold.WorkpieceNumber + "-";

            if (moveCt != null)
            {
                WorkInfo wk = new WorkInfo(mold, user, work.Info.WorkNumber, work.Info.Matr);
                try
                {
                    NXObject make1 = AssmbliesUtils.MakeUnique(moveCt, name + "WORK" + (workColl.Work[workColl.Work.Count - 1].Info.WorkNumber + 1).ToString() + ".prt");
                    wk.WorkNumber = (workColl.Work[workColl.Work.Count - 1].Info.WorkNumber + 1);
                    wk.SetAttribute(moveCt.Prototype as Part);
                }
                catch (NXException ex)
                {
                    err.Add(name + "WORK" + (workColl.Work[workColl.Work.Count - 1].Info.WorkNumber + 1).ToString() + ".prt" + ex.Message + "无法创建唯一");
                }
            }

            return(err);
        }
Exemple #20
0
        private void UpdateOperationMods(decimal норма)
        {
            CodeFirstContext cfc = new CodeFirstContext();

            // Отбор записей в таблице РежимРаботыАгрегатаSet, где режим работы установки,
            // соответсвует режиму работы силового агрегата и коды установок совпадают.
            cfc.ежимРаботыАгрегатаSet
            .Where(w => w.ежимРаботы == selectedMode.ежимРаботы &&
                   w.СиловойАгрегатВУстройстве.ТехнологическаяУстановка.УстройствоId
                   == selectedMode.ТехнологическаяУстановка.УстройствоId)
            .Load();

            OperationMods = WorkCollection.GetРежимРаботы <ежимРаботыАгрегата>(cfc);

            try
            {
                OperationMods.ToList().ForEach(x => x.асчитанноеПотребление =
                                                   Math.Round(((норма / selectedMode.Производительность) * x.Потребление), 2));
            }
            catch (DivideByZeroException)
            {
                OperationMods.ToList().ForEach(x => x.асчитанноеПотребление = 0);
            }
        }
Exemple #21
0
        public ежимРаботыVM(СиловойАгрегатВУстановке агрегатВУстройстве)
        {
            cfc = new CodeFirstContext();
            cfc.УстройствоРежимРесурсSet.Load();
            cfc.СправочникРесурсовSet.Load();
            cfc.ежимРаботыАгрегатаSet.Load();
            cfc.СиловойАгрегатВУстройствеSet.Load();
            OperatingModePD = new ObservableCollection <ежимРаботыАгрегата>();

            var contextCollectionOperationModes = cfc
                                                  .ежимРаботыАгрегатаSet
                                                  .Local
                                                  .Where(w => w.СиловойАгрегатВУстройстве
                                                         .Id.Equals(агрегатВУстройстве.Id));

            // Получение внешнего ключа из текущего контекста.
            currentPowerDev = cfc
                              .СиловойАгрегатВУстройствеSet
                              .Local
                              .Where(w => w.Id == агрегатВУстройстве.Id)
                              .FirstOrDefault();

            // Установка значения combobox в ранее выбранное состояние.
            selectedТипЕдиниц = currentPowerDev.ТипЕдиницИзмерения;

            // Получение выбранного ресурса.
            //selectedRes = currentPowerDev.УстановкаРежимРесурс
            //    .Where(w => w.СиловойАгрегатВУстановке.Id == currentPowerDev.Id)
            //    .Select(s => s.СправочникРесурсов)
            //    .FirstOrDefault();

            int idrecord = cfc.УстройствоРежимРесурсSet
                           .Local
                           .Where(w => w.СиловойАгрегатВУстановкеFK == currentPowerDev.Id)
                           .FirstOrDefault().СправочникРесурсовFK;

            selectedRes = cfc.СправочникРесурсовSet.Local.Where(w => w.Id == idrecord).FirstOrDefault();

            currentустройствоРежимРесурс = cfc
                                           .УстройствоРежимРесурсSet
                                           .Local
                                           .Where(w => w.СиловойАгрегатВУстановкеFK == currentPowerDev.Id &&
                                                  w.СправочникРесурсовFK == selectedRes.Id)
                                           .FirstOrDefault();

            //if (collection.FirstOrDefault() != null)
            //{
            //    currentPowerDev = collection
            //            .FirstOrDefault()
            //            .СиловойАгрегатВУстройстве;
            //}

            //TODO 2021-01-10: Вынести в отдельный класс по заполнению коллекций.
            foreach (ежимРаботыАгрегата item in contextCollectionOperationModes)
            {
                OperatingModePD.Add(item);
            }

            ListResource = WorkCollection.GetСправочникРесурсов <СправочникРесурсов>(cfc);

            OperatingModePD.CollectionChanged += OperatingModePD_CollectionChanged;
        }
Exemple #22
0
 private void ListResource_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
 {
     WorkCollection.ItemCollectionChanged <СправочникРесурсов>(cfc, e);
 }
Exemple #23
0
 private void Plans_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
 {
     WorkCollection.ItemCollectionChanged <ПланНормативныйТехнологический>(cfc, e);
 }
Exemple #24
0
 private void Devices_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
 {
     WorkCollection.ItemCollectionChanged <ТехнологическаяУстановка>(cfc, e);
 }