Пример #1
0
        public EditScheduleForm(Schedule schedule)
        {
            InitializeComponent();
            try
            {
                DS_Schedule.DataSource = this.schedule;
                this.schedule          = schedule;
                buildingQuery          = new BuildingQuery(_SERVER.ServerName.Database);
                sequenceQuery          = new SequenceQuery(_SERVER.ServerName.Database);
                ScheduleQuery          = new ScheduleQuery(_SERVER.ServerName.Database);

                ScheduleLine = PoLine = buildingQuery.GetProductionLines();

                DS_Schedule.DataSource       = this.schedule;
                DS_Line.DataSource           = ScheduleLine;
                DS_OriginalPoLine.DataSource = PoLine;

                var temp1 = buildingQuery.GetProductionLine(schedule.ProductionLine_Id);
                if (temp1 != null)
                {
                    comboBox1.SelectedItem = ScheduleLine.Where(i => i.id == temp1.id).First();
                }
                var pos = sequenceQuery.GetOriginalPos(schedule);

                if (pos != null)
                {
                    DS_OriginalPo.DataSource = pos;
                }
            }
            catch { }
        }
Пример #2
0
        // stop cut
        public RespCutting(IDbName database, int binterfaceId, int beamCounter)
        {
            BeamCutQuery   = new BeamCutQuery(database);
            StockQuery     = new StockQuery(database);
            EmployeeQuery  = new EmployeeQuery(database);
            SequenceQuery  = new SequenceQuery(database);
            ScheduleQuery  = new ScheduleQuery(database);
            ComponentQuery = new ComponentQuery(database);

            try
            {
                var bInterface = BeamCutQuery.GetBeamInterfaceById(binterfaceId);
                if (bInterface == null)
                {
                    Exception = new RespException(true, "Can not find BInterface", EKB_SYS_REQUEST.BEAM_STOP_CUTTING);
                    return;
                }

                bInterface.Finish         = true;
                bInterface.BeamCutCounter = beamCounter;
                bInterface.StopCutTime    = DateTime.Now;
                if (!BeamCutQuery.UpdateBeamInterface(bInterface))
                {
                    Exception = new RespException(true, "Can not update BInterface", EKB_SYS_REQUEST.BEAM_STOP_CUTTING);
                    return;
                }
                Exception = new RespException(false, "Stop cutting: OK", EKB_SYS_REQUEST.BEAM_STOP_CUTTING);
            }
            catch (Exception e)
            {
                Exception = new RespException(true, e.Message, EKB_SYS_REQUEST.BEAM_STOP_CUTTING);
            }
        }
Пример #3
0
 public Unblock(IDbName _database)
 {
     database        = _database;
     BuildingQuery   = new BuildingQuery(database);
     SequenceQuery   = new SequenceQuery(database);
     SysHistoryQuery = new SysHistoryQuery(database);
     ComponentQuery  = new ComponentQuery(database);
 }
Пример #4
0
        /// <summary>
        /// Retrieves list of sequences matching query.
        /// </summary>
        /// <param name="query">The query filter to use.</param>
        /// <param name="token">Optional cancellation token to use.</param>
        /// <returns>List of assets matching given filters and optional cursor</returns>
        public async Task <ItemsWithCursor <Sequence> > ListAsync(SequenceQuery query, CancellationToken token = default)
        {
            if (query is null)
            {
                throw new ArgumentNullException(nameof(query));
            }

            var req = Oryx.Cognite.Sequences.list <ItemsWithCursor <Sequence> >(query);

            return(await RunAsync(req, token).ConfigureAwait(false));
        }
Пример #5
0
        /// <summary>
        /// Retrieves number of sequences matching query.
        /// </summary>
        /// <param name="query">The query filter to use.</param>
        /// <param name="token">Optional cancellation token to use.</param>
        /// <returns>Number of assets matching given filters</returns>
        public async Task <Int32> AggregateAsync(SequenceQuery query, CancellationToken token = default)
        {
            if (query is null)
            {
                throw new ArgumentNullException(nameof(query));
            }

            var req = Oryx.Cognite.Sequences.aggregate <Int32>(query);

            return(await RunAsync(req, token).ConfigureAwait(false));
        }
Пример #6
0
        public RespComponent(IDbName _database, int _scheduleId, int originalPoId)
        {
            try
            {
                ComponentQuery componentQuery = new ComponentQuery(_database);
                ScheduleQuery  scheduleQuery  = new ScheduleQuery(_database);
                SequenceQuery  SequenceQuery  = new SequenceQuery(_database);

                var schedule = scheduleQuery.GetSchedule(_scheduleId);

                var originalPo = SequenceQuery.GetOriginalPo(originalPoId);

                if (schedule == null)
                {
                    if (originalPo == null)
                    {
                        Exception = new RespException(true, "Can not find original po", EKB_SYS_REQUEST.BEAM_GET_COMPONENT);
                        return;
                    }

                    schedule = scheduleQuery.GetSchedule(originalPo);
                    if (schedule == null)
                    {
                        Exception = new RespException(true, "Can not find schedule", EKB_SYS_REQUEST.BEAM_GET_COMPONENT);
                        return;
                    }
                }

                var components = componentQuery.GetModelComponents(schedule.Model);

                if (components == null)
                {
                    Exception = new RespException(true, "Can not find component list", EKB_SYS_REQUEST.BEAM_GET_COMPONENT);
                    return;
                }

                components = components.OrderByDescending(i => i.CuttingType.id).ToList();

                ComponentList = new List <Component_t>();

                foreach (var item in components)
                {
                    ComponentList.Add(new Component_t(item));
                }

                Exception = new RespException(false, "Get component: Ok", EKB_SYS_REQUEST.BEAM_GET_COMPONENT);
            }
            catch (Exception e)
            {
                Exception = new RespException(true, e.Message, EKB_SYS_REQUEST.BEAM_GET_COMPONENT);
            }
        }
Пример #7
0
        public Schedule_t(IDbName database, Schedule _scheule)
        {
            SequenceQuery sequenceQuery = new SequenceQuery(database);
            var           po            = sequenceQuery.GetOriginalPo(_scheule);

            if (po != null)
            {
                OriginalPoId = po.id;
            }
            id       = _scheule.id;
            PoNumber = _scheule.PoNumber;
            PoQty    = ShareFuncs.GetInt(_scheule.Quantity);
        }
Пример #8
0
        public async Task ListSequenceWithLimit()
        {
            // Arrange
            var query = new SequenceQuery
            {
                Limit = 10
            };

            // Act
            var res = await WriteClient.Sequences.ListAsync(query);

            // Assert
            Assert.True(res.Items.Any(), "Expected at least one sequence");
        }
Пример #9
0
        public async Task ListSequenceWithLimitAndFilter()
        {
            // Arrange
            var query = new SequenceQuery
            {
                Limit  = 10,
                Filter = new SequenceFilter()
                {
                    ExternalIdPrefix = "sdk-test"
                }
            };

            // Act
            var res = await WriteClient.Sequences.ListAsync(query);

            // Assert
            Assert.True(res.Items.Any(), "Expected at least one sequence");
        }
Пример #10
0
        public BeamInterface(BeamCutInterface BInterface, int place)
        {
            InitializeComponent();
            try
            {
                lbStartTime.Text = BInterface.StartCutTime.ToString();
                lbStopTime.Text  = BInterface.StopCutTime.ToString();
                BeamCutQuery  beamCutQuery  = new BeamCutQuery(_SERVER.ServerName.Database);
                ScheduleQuery scheduleQuery = new ScheduleQuery(_SERVER.ServerName.Database);
                SequenceQuery sequenceQuery = new SequenceQuery(_SERVER.ServerName.Database);
                BuildingQuery buildingQuery = new BuildingQuery(_SERVER.ServerName.Database);

                var clone_po = beamCutQuery.GetBeamCutPo(BInterface.BeamCutPo_Id);
                lbTotalPoCutQty.Text = clone_po.CuttingQuantity.ToString();
                lbComponent.Text     = clone_po.ComponentRef;

                var po       = sequenceQuery.GetOriginalPo(ShareFuncs.GetInt(BInterface.OriginalPo_Id));
                var schedule = scheduleQuery.GetSchedule(ShareFuncs.GetInt(BInterface.Schedule_Id));
                if (schedule == null)
                {
                    if (po != null)
                    {
                        schedule = scheduleQuery.GetSchedule(po);
                    }

                    if (schedule == null)
                    {
                        this.Hide();
                        Error = true;
                        return;
                    }
                }
                lbPlace.Text            = place.ToString();
                DS_Interface.DataSource = BInterface;
                DS_Po.DataSource        = schedule;
                lbLine.Text             = buildingQuery.GetProductionLine(ShareFuncs.GetInt(schedule.ProductionLine_Id)).LineName;
            }
            catch
            {
                this.Hide();
                Error = true;
                return;
            }
        }
Пример #11
0
        public void Test()
        {
            var v = new PhonemeQuery(new[] { "a", "e", "i", "o", "u" });
            var c = new PhonemeQuery(new[] { "r", "t", "b", "l" });
            var q = new SequenceQuery(new IQuery[] { c, new MaybeQuery(c), v });

            var word = new Word(
                phonemes: new[] { "a", "t", "a", "b", "l", "e" },
                graphicalForms: null,
                fields: null);

            QueryAssert.NoMatch(q, word, 0);
            QueryAssert.IsMatch(q, word, 1, new[] { "t", "a" });
            QueryAssert.NoMatch(q, word, 2);
            QueryAssert.IsMatch(q, word, 3, new[] { "b", "l", "e" });
            QueryAssert.IsMatch(q, word, 4, new[] { "l", "e" });
            QueryAssert.NoMatch(q, word, 5);
            QueryAssert.NoMatch(q, word, 6);

            Assert.Throws <ArgumentOutOfRangeException>(() => q.Match(word, -1));
            Assert.Throws <ArgumentOutOfRangeException>(() => q.Match(word, 7));
        }
Пример #12
0
        public RespSize(IDbName _database, int seq1Id, int seq2Id)
        {
            try
            {
                SequenceQuery sequenceQuery = new SequenceQuery(_database);
                BeamCutQuery  beamCutQuery  = new BeamCutQuery(_database);

                List <OriginalPOsequence> SeqList = new List <OriginalPOsequence>();

                var CloneSizes = beamCutQuery.GetBeamCutSizes(seq1Id, seq2Id);

                if (CloneSizes == null)
                {
                    Exception = new RespException(true, "CloneSizes is NULL", EKB_SYS_REQUEST.BEAM_GET_SIZE);
                    return;
                }

                SizeList = new List <Size_t>();
                foreach (var size in CloneSizes)
                {
                    SizeList.Add(new Size_t
                    {
                        SizeId     = ShareFuncs.GetInt(size.SizeId),
                        SizeQty    = ShareFuncs.GetInt(size.SizeQty),
                        CuttingQty = ShareFuncs.GetInt(size.CutQty),
                        Finish     = (size.SizeQty == size.CutQty ? true : false)
                    });
                    RespTotalCuttingQty += ShareFuncs.GetInt(size.CutQty);
                    RespTotalQty        += ShareFuncs.GetInt(size.SizeQty);
                }

                Exception = new RespException(false, "Get Size: OK", EKB_SYS_REQUEST.BEAM_GET_SIZE);
            }
            catch (Exception e)
            {
                Exception = new RespException(true, e.Message, EKB_SYS_REQUEST.BEAM_GET_SIZE);
            }
        }
Пример #13
0
        public void TestScope()
        {
            var v = new PhonemeQuery(new[] { "a", "e", "i", "o", "u" });
            var c = new PhonemeQuery(new[] { "r", "s", "c", "b", "l" });
            var q = new SequenceQuery(new IQuery[] { c, new MaybeQuery(c), v });

            var word = new Word(
                phonemes: new[] { "s", "c", "r", "a", "b", "l", "e", "b", "l", "e" },
                graphicalForms: null,
                fields: null);

            var scope = new Interval(2, 6);

            Assert.Throws <ArgumentOutOfRangeException>(() => q.Match(word, 1, scope));
            QueryAssert.IsMatch(q, word, 2, new[] { "r", "a" }, scope);
            QueryAssert.NoMatch(q, word, 3, scope);
            QueryAssert.IsMatch(q, word, 4, new[] { "b", "l", "e" }, scope);
            QueryAssert.IsMatch(q, word, 5, new[] { "l", "e" }, scope);
            QueryAssert.NoMatch(q, word, 6, scope);
            QueryAssert.NoMatch(q, word, 7, scope);
            QueryAssert.NoMatch(q, word, 8, scope);
            Assert.Throws <ArgumentOutOfRangeException>(() => q.Match(word, 9, scope));
        }
Пример #14
0
        public void TestPhonemeSequence()
        {
            var v = new PhonemeQuery(new[] { "a", "e", "i", "o", "u" });
            var c = new PhonemeQuery(new[] { "r", "t", "b", "l" });
            var q = new SequenceQuery(new[] { c, v, c });

            var word = new Word(
                phonemes: new[] { "r", "a", "t", "a", "b", "l", "e" },
                graphicalForms: null,
                fields: null);

            QueryAssert.IsMatch(q, word, 0, new[] { "r", "a", "t" });
            QueryAssert.NoMatch(q, word, 1);
            QueryAssert.IsMatch(q, word, 2, new[] { "t", "a", "b" });
            QueryAssert.NoMatch(q, word, 3);
            QueryAssert.NoMatch(q, word, 4);
            QueryAssert.NoMatch(q, word, 5);
            QueryAssert.NoMatch(q, word, 6);
            QueryAssert.NoMatch(q, word, 7);

            Assert.Throws <ArgumentOutOfRangeException>(() => q.Match(word, -1));
            Assert.Throws <ArgumentOutOfRangeException>(() => q.Match(word, 8));
        }
Пример #15
0
        public void TestSequenceWithEndAnchor()
        {
            var e = new EndAnchorQuery();
            var v = new PhonemeQuery(new[] { "a", "e", "i", "o", "u" });
            var c = new PhonemeQuery(new[] { "r", "t", "b", "l" });
            var q = new SequenceQuery(new IQuery[] { c, c, v, e });

            var word = new Word(
                phonemes: new[] { "r", "a", "t", "a", "b", "l", "e" },
                graphicalForms: null,
                fields: null);

            QueryAssert.NoMatch(q, word, 0);
            QueryAssert.NoMatch(q, word, 1);
            QueryAssert.NoMatch(q, word, 2);
            QueryAssert.NoMatch(q, word, 3);
            QueryAssert.IsMatch(q, word, 4, new[] { "b", "l", "e" });
            QueryAssert.NoMatch(q, word, 5);
            QueryAssert.NoMatch(q, word, 6);
            QueryAssert.NoMatch(q, word, 7);

            Assert.Throws <ArgumentOutOfRangeException>(() => q.Match(word, -1));
            Assert.Throws <ArgumentOutOfRangeException>(() => q.Match(word, 8));
        }
Пример #16
0
        public EKanbanResponse(IDbName _database, int _ekanbanDeviceId)
        {
            EKanbanTaskQuery eKanbanTaskQuery = new EKanbanTaskQuery(_database);
            SequenceQuery    sequenceQuery    = new SequenceQuery(_database);
            ComponentQuery   componentQuery   = new ComponentQuery(_database);

            var ekanbanDevice = eKanbanTaskQuery.GetEKanbanDevice(_ekanbanDeviceId);

            var _Interface = eKanbanTaskQuery.GetLastEKanbanInterface(_ekanbanDeviceId);

            SizeList = new List <SizeInfo>();
            PartList = new List <PartInfo>();
            List <OriginalSize> originalSizes = new List <OriginalSize>();

            foreach (var item in _Interface.EKanbanLoadings)
            {
                var Seq = sequenceQuery.GetOriginalSequence(ShareFuncs.GetInt(item.OriginalSequence_Id));
                TotalCartQty += ShareFuncs.GetInt(Seq.Quantity);
                foreach (var size in Seq.OriginalSizes)
                {
                    originalSizes.Add(size);
                }
            }

            foreach (var item in originalSizes)
            {
                var foundSizes = SizeList.Where(i => i.SizeId == item.SizeId);
                if (foundSizes.Count() > 0)
                {
                    foundSizes.First().SizeQty += ShareFuncs.GetInt(item.Quantity);
                }
                else
                {
                    SizeList.Add(new SizeInfo(ShareFuncs.GetInt(item.SizeId), ShareFuncs.GetInt(item.Quantity)));
                }
            }

            Interface = new InterfaceInfo(_Interface);

            foreach (var item in _Interface.EkanbanComponents)
            {
                var Component = componentQuery.GetShoeComponent(ShareFuncs.GetInt(item.ShoeComponent_Id));
                PartList.Add(new PartInfo(ShareFuncs.ConvertToUnSign(Component.Reference)));
            }

            //if (DateTime.Now.Hour == 17)
            //{
            //    if (DateTime.Now.Minute > 50)
            //    {
            //        ScreenOff = true;
            //        ekanbanDevice.ScreenOff = true;
            //    }
            //}
            //else
            //{
            //    if (DateTime.Now.Hour > 17)
            //    {
            //        ScreenOff = true;
            //        ekanbanDevice.ScreenOff = true;
            //    }
            //}

            //if (DateTime.Now.Hour == 6 && DateTime.Now.Minute < 45)
            //{
            //    ScreenOff = false;
            //    ekanbanDevice.ScreenOff = false;
            //}

            ekanbanDevice.NetworkStatus = (int)SYS_MODELS._ENUM.SysActionCode.ONLINE;
            ekanbanDevice.LastOnline    = DateTime.Now;
            eKanbanTaskQuery.UpdateEKanbanDevice(ekanbanDevice);

            if (ekanbanDevice.ScreenOff == null)
            {
                ScreenOff = false;
            }
            else
            {
                ScreenOff = (bool)ekanbanDevice.ScreenOff;
            }
        }
Пример #17
0
        public BLastCut(IDbName database, int bdeviceId, int bInterfaceId)
        {
            BeamCutQuery   = new BeamCutQuery(database);
            StockQuery     = new StockQuery(database);
            EmployeeQuery  = new EmployeeQuery(database);
            SequenceQuery  = new SequenceQuery(database);
            ScheduleQuery  = new ScheduleQuery(database);
            ComponentQuery = new ComponentQuery(database);

            try
            {
                var bInterface = BeamCutQuery.GetLastInterface(bdeviceId);

                if (bInterface == null)
                {
                    Exception = new RespException(true, "Can not find BInterface", EKB_SYS_REQUEST.BEAM_GET_LAST_CUT);

                    bInterface = BeamCutQuery.GetBeamInterfaceById(bInterfaceId);
                    if (bInterface == null)
                    {
                        Exception = new RespException(true, "Can not find BInterface", EKB_SYS_REQUEST.BEAM_GET_LAST_CUT);
                        return;
                    }
                }

                var bpo = BeamCutQuery.GetBeamCutPo(ShareFuncs.GetInt(bInterface.BeamCutPo_Id));

                if (bpo == null)
                {
                    Exception = new RespException(true, "Can not find clone Po", EKB_SYS_REQUEST.BEAM_GET_LAST_CUT);
                    return;
                }

                var originalPo = SequenceQuery.GetOriginalPo(ShareFuncs.GetInt(bInterface.OriginalPo_Id));

                if (originalPo == null)
                {
                    Exception = new RespException(true, "Can not find Po", EKB_SYS_REQUEST.BEAM_GET_LAST_CUT);
                    return;
                }

                BinterfaceId = bInterface.id;
                PoNumber     = originalPo.PoNumber;
                StartSeq     = ShareFuncs.GetInt(bInterface.StartSeqNo);
                StopSeq      = ShareFuncs.GetInt(bInterface.StopSeqNo);

                if (bInterface.StartCutTime != null)
                {
                    StartTime = ((DateTime)bInterface.StartCutTime).ToString("hh:mm tt, dd/MM/yyyy");
                }

                if (bInterface.StopCutTime != null)
                {
                    StopTime = ((DateTime)bInterface.StopCutTime).ToString("hh:mm tt, dd/MM/yyyy");
                }

                CutQty             = ShareFuncs.GetInt(bInterface.CuttingQty);
                CutTime            = ShareFuncs.GetInt(bInterface.BeamCutCounter);
                Employee_Id        = ShareFuncs.GetInt(bInterface.Employee_Id);
                Schedule_Id        = ShareFuncs.GetInt(bInterface.Schedule_Id);
                BeamCutPo_Id       = ShareFuncs.GetInt(bInterface.BeamCutPo_Id);
                BeamCutStartSeq_Id = ShareFuncs.GetInt(bInterface.BeamCutStartSeq_Id);
                Component_Id       = ShareFuncs.GetInt(bpo.Component_Id);
                BeamCutStopSeq_Id  = ShareFuncs.GetInt(bInterface.BeamCutStopSeq_Id);
                Finish             = bInterface.Finish != null ? (bool)bInterface.Finish : false;
                PoQty         = ShareFuncs.GetInt(originalPo.Quantity);
                OriginalPo_Id = ShareFuncs.GetInt(bInterface.OriginalPo_Id);

                var component = ComponentQuery.GetShoeComponent(ShareFuncs.GetInt(bpo.Component_Id));
                if (component != null)
                {
                    string comp = ShareFuncs.ConvertToUnSign(component.Reference);
                    Component = comp;
                }
                Exception = new RespException(false, "Get last cut: OK", EKB_SYS_REQUEST.BEAM_GET_LAST_CUT);
            }
            catch (Exception e)
            {
                Exception = new RespException(true, e.Message, EKB_SYS_REQUEST.BEAM_GET_LAST_CUT);
            }
        }
Пример #18
0
        public RespFinishAll(IDbName database, int bInterfaceId, int cutCounter)
        {
            BeamCutQuery   BeamCutQuery   = new BeamCutQuery(database);
            StockQuery     StockQuery     = new StockQuery(database);
            EmployeeQuery  EmployeeQuery  = new EmployeeQuery(database);
            SequenceQuery  SequenceQuery  = new SequenceQuery(database);
            ScheduleQuery  ScheduleQuery  = new ScheduleQuery(database);
            ComponentQuery ComponentQuery = new ComponentQuery(database);

            try
            {
                var bInterface = BeamCutQuery.GetBeamInterfaceById(bInterfaceId);
                if (bInterface == null)
                {
                    Exception = new RespException(true, "Can not find BInterface", EKB_SYS_REQUEST.FINISH_ALL);
                    return;
                }

                var clonePo = BeamCutQuery.GetBeamCutPo(ShareFuncs.GetInt(bInterface.BeamCutPo_Id));
                if (clonePo == null)
                {
                    Exception = new RespException(true, "Invalid clone Po Id", EKB_SYS_REQUEST.BEAM_START_CUTTING);
                    return;
                }

                int addQty = 0;
                foreach (var seq in clonePo.BeamCutSeqs)
                {
                    var currentSeq = BeamCutQuery.GetBeamCutSeq(seq.id);
                    if (currentSeq.SequenceNo < bInterface.SequenceNo + bInterface.TotalSequence)
                    {
                        foreach (var size in seq.BeamCutSizes)
                        {
                            addQty         += ShareFuncs.GetInt(size.SizeQty - size.CutQty);
                            size.CutQty     = size.SizeQty;
                            size.Finished   = true;
                            size.LastUpdate = DateTime.Now;
                            BeamCutQuery.UpdateBeamSize(size);
                        }

                        currentSeq.CutQty    += addQty;
                        currentSeq.LastUpdate = DateTime.Now;
                        currentSeq.Finish     = true;
                        BeamCutQuery.UpdateBeamCutSeq(currentSeq);
                    }
                }

                bInterface.BeamCutCounter += cutCounter;
                bInterface.CuttingQty     += addQty;
                bInterface.StopCutTime     = DateTime.Now;
                if (!BeamCutQuery.UpdateBeamInterface(bInterface))
                {
                    Exception = new RespException(true, "Can not update BInterface", EKB_SYS_REQUEST.FINISH_ALL);
                    return;
                }
            }
            catch (Exception e)
            {
                Exception = new RespException(true, e.Message, EKB_SYS_REQUEST.FINISH_ALL);
            }
        }
Пример #19
0
        static void Main(string[] args)
        {
            IDbName       database      = new RealDb();
            SequenceQuery sequenceQuery = new SequenceQuery(database);
            ScheduleQuery ScheduleQuery = new ScheduleQuery(database);

            var po       = sequenceQuery.GetOriginalPo(3987);
            var schedule = ScheduleQuery.GetSchedule(po);


            //IDbName database = new FakeDb();
            while (true)
            {
                string s = Console.ReadLine().ToLower();
                if (s.Contains("update-database"))
                {
                    SERVER_INITIALIZE.DbSeed DB = new SERVER_INITIALIZE.DbSeed(database);
                    DB.Runing();
                }

                if (s.Contains("update-schedule"))
                {
                    Console.WriteLine("Start checking...");

                    AutoScheule AutoSchedule = new AutoScheule(database);
                    AutoSchedule.Update();

                    Console.WriteLine("Stop checking...");
                }

                if (s.Contains("get-schedule"))
                {
                    ScheduleQuery scheduleQuery = new ScheduleQuery(database);
                    var           schedules     = scheduleQuery.GetSchedules("012").Take(5);
                    foreach (var item in schedules)
                    {
                        Console.WriteLine($"Id:{item.id}, Number: {item.PoNumber}");
                    }

                    Console.WriteLine("Please select scheule to clone");
                    string num        = Console.ReadLine();
                    int    scheduleId = 0;
                    int.TryParse(num, out scheduleId);

                    BeamCutQuery beamCutQuery = new BeamCutQuery(database);
                    var          results      = beamCutQuery.CloneOriginalPo(scheduleId);

                    if (results != null)
                    {
                        foreach (var item in results)
                        {
                            Console.WriteLine($"Original Id: {item.OriginalPo_Id}, Comp Id: {item.Component_Id}");
                            foreach (var seq in item.BeamCutSeqs)
                            {
                                Console.WriteLine($"Seq Id: {seq.id}, Seq No: {seq.SequenceNo}, Seq Qty: {seq.SequenceQty}");
                                foreach (var size in seq.BeamCutSizes)
                                {
                                    Console.WriteLine($"Size Id: {size.SizeId},Beam Po Id: {size.BeamCutPo_Id}, Beam Seq Id: {size.BeamCutSeq_Id}");
                                }
                            }
                        }
                    }
                }

                if (s.Contains("request-schedule"))
                {
                    var schedules = new RespSchedule(database, "L3", 12, 0);
                    Console.WriteLine(JsonConvert.SerializeObject(schedules));
                }
                if (s.Contains("request-poinfo"))
                {
                    //var schedules = new EKB_WEBSERVER.API.RuntimeModels.RespPoInfo(database,  2541 ,341);
                }

                if (s.Contains("request-size"))
                {
                    var sizes = new RespSize(database, 3, 9, 341);
                    Console.WriteLine(JsonConvert.SerializeObject(sizes));
                }

                if (s.Contains("request-lastcut"))
                {
                    //Console.WriteLine(JsonConvert.SerializeObject(new BLastCut(database, 4)));
                }

                if (s.Contains("info"))
                {
                    //var sizes = new EKB_WEBSERVER.API.RuntimeModels.RespPoInfo(database, 2540, 322);
                    //Console.WriteLine(JsonConvert.SerializeObject(sizes));
                }

                if (s.Contains("cuttime"))
                {
                    var temp = new BDeviceCutTime(database, 1, 6);
                }
            }
        }
Пример #20
0
        public ConfirmResponse(IDbName _database, int _ekanbanDeviceId, int _confirmQty)
        {
            try
            {
                EKanbanTaskQuery eKanbanTaskQuery = new EKanbanTaskQuery(_database);
                SequenceQuery    sequenceQuery    = new SequenceQuery(_database);
                ComponentQuery   componentQuery   = new ComponentQuery(_database);
                StockQuery       stockQuery       = new StockQuery(_database);
                ScheduleQuery    scheduleQuery    = new ScheduleQuery(_database);
                SysHistoryQuery  sysHistoryQuery  = new SysHistoryQuery(_database);


                var Interface = eKanbanTaskQuery.GetLastEKanbanInterface(_ekanbanDeviceId);
                var his       = sysHistoryQuery.GetEKanbanHistory(Interface);

                if (Interface.SysActionCode == (int)SYS_MODELS._ENUM.SysActionCode.EKANBAN_CONFIRM_ITEM)
                {
                    ConfirmSuccess = true;
                    EMessage       = "EKanban is already conform!";
                    return;
                }

                Interface.SysActionCode = (int)SYS_MODELS._ENUM.SysActionCode.EKANBAN_CONFIRM_ITEM;
                Interface.LastUpdate    = DateTime.Now;
                if (!eKanbanTaskQuery.UpdateEKanbanInterface(Interface))
                {
                    ConfirmSuccess = false;
                    EMessage       = "EKanban is already conform!";
                    return;
                }

                List <Schedule> schedules = new List <Schedule>();

                foreach (var item in Interface.EKanbanLoadings)
                {
                    var sch = scheduleQuery.GetSchedule(ShareFuncs.GetInt(item.OriginalPo_Id));
                    var Seq = sequenceQuery.GetOriginalSequence(ShareFuncs.GetInt(item.OriginalSequence_Id));
                    if (sch != null)
                    {
                        var stock = stockQuery.GetPrepareStockMeasure(sch);

                        if (stock != null)
                        {
                            StockConfirmSequence stockConfirm = new StockConfirmSequence
                            {
                                FinishTime      = DateTime.Now,
                                SequenceNo      = Seq.SequenceNo,
                                SequenceQty     = Seq.Quantity,
                                StockMeasure_Id = stock.id,
                            };

                            StockMessage = "Update stock message successfully";
                            if (!stockQuery.AddNewStockConfirm(stockConfirm))
                            {
                                StockMessage = "An error orcured while updating stock";
                            }

                            stock.ConfirmUpdateTime  = DateTime.Now;
                            stock.EKanbanConfirmQty += Seq.Quantity;
                            if (!stockQuery.UpdateStockMeasure(stock))
                            {
                                StockMessage = "An error orcured while updating stock";
                            }
                        }
                    }

                    item.SysActionCode = (int)SYS_MODELS._ENUM.SysActionCode.SEQUENCE_CONFORM;
                    item.LastUpdate    = DateTime.Now;
                    item.ConfirmQty    = _confirmQty;
                    eKanbanTaskQuery.UpdateEKanbanLoading(item);

                    string jsonStr = Newtonsoft.Json.JsonConvert.SerializeObject(Interface);
                    his.Data     = jsonStr;
                    his.DateTime = DateTime.Now;
                    sysHistoryQuery.UpdateEKanbanHis(his);

                    EKanbanConfirmHis eKanbanConfirmHis = new EKanbanConfirmHis
                    {
                        Conform             = true,
                        DateTime            = DateTime.Now,
                        EKanbanHis_Id       = his.id,
                        OriginalSequence_Id = Seq.id,
                        SequenceNo          = Seq.SequenceNo,
                        SequenceQty         = Seq.Quantity,
                    };
                    sysHistoryQuery.AddNewConfirmHistory(eKanbanConfirmHis);
                }

                ConfirmSuccess = true;
                EMessage       = "EKanban is conform successfully";
            }
            catch (Exception e)
            {
                EMessage = e.Message;
            }
        }
Пример #21
0
        public OrderResult(BeamCutPo beamCutPo)
        {
            try
            {
                InitializeComponent();
                BeamCutPo = new BeamCutPo();
                BeamCutPo = beamCutPo;
                BeamCutQuery   beamCutQuery   = new BeamCutQuery(_SERVER.ServerName.Database);
                ComponentQuery componentQuery = new ComponentQuery(_SERVER.ServerName.Database);
                SequenceQuery  sequenceQuery  = new SequenceQuery(_SERVER.ServerName.Database);
                var            originalPo     = sequenceQuery.GetOriginalPo(beamCutPo.OriginalPo_Id);
                var            component      = componentQuery.GetShoeComponent(BeamCutPo.Component_Id);
                label2.Text = component != null ? component.Reference : "";
                var Binterface = beamCutQuery.GetBeamInterface(beamCutPo.id);

                int totalCutQty  = 0;
                int totalCutTime = 0;

                bool first = false;
                bool last  = false;

                double   totalTime = 0;
                DateTime?start = null, stop = null, last_update = null;

                foreach (var item in Binterface)
                {
                    if (!first)
                    {
                        if (item.StartCutTime != null)
                        {
                            start       = (DateTime)item.StartCutTime;
                            label9.Text = start != null?start.ToString() : "";
                        }
                        first = true;
                    }

                    totalCutTime += ShareFuncs.GetInt(item.BeamCutCounter);
                    totalCutQty  += ShareFuncs.GetInt(item.CuttingQty);
                    if (item.StopCutTime != null)
                    {
                        label7.Text = item.StopCutTime.ToString();
                    }

                    try
                    {
                        if (item.StopCutTime != null)
                        {
                            stop = (DateTime)item.StopCutTime;
                        }
                        else
                        {
                            stop = (DateTime)item.LastConfirmSize;
                        }
                        label11.Text = stop != null ? ((DateTime)stop).ToString() : "";

                        totalTime    = ((DateTime)stop - (DateTime)start).TotalSeconds;
                        label13.Text = $"{((int)totalTime / 60)}min {(int)totalTime % 60}sec";

                        label15.Text = $"{(int)(totalCutQty * 60 / totalTime)} c/min";
                    }
                    catch { }
                }

                label3.Text = totalCutQty.ToString();
                label5.Text = totalCutTime.ToString();
                TotalCutQty = totalCutQty;
            }
            catch { }
        }
Пример #22
0
        public RespConfirmSize(IDbName database, int bInterfaceId, int sizeId, int sizeQty)
        {
            try
            {
                BeamCutQuery   = new BeamCutQuery(database);
                StockQuery     = new StockQuery(database);
                EmployeeQuery  = new EmployeeQuery(database);
                SequenceQuery  = new SequenceQuery(database);
                ScheduleQuery  = new ScheduleQuery(database);
                ComponentQuery = new ComponentQuery(database);

                var beamInterface = BeamCutQuery.GetBeamInterfaceById(bInterfaceId);
                if (beamInterface == null)
                {
                    Exception = new RespException(true, "Can not find BInterface", EKB_SYS_REQUEST.BEAM_CONFIRM_SIZE);
                    return;
                }

                var bdevice = BeamCutQuery.GetBeamCutDevice(beamInterface.BeamCutDevice_Id);

                if (bdevice == null)
                {
                    Exception = new RespException(true, "Can not find beam cut device", EKB_SYS_REQUEST.BEAM_CONFIRM_SIZE);
                    return;
                }

                var clonePo = BeamCutQuery.GetBeamCutPo(ShareFuncs.GetInt(beamInterface.BeamCutPo_Id));

                if (clonePo == null)
                {
                    Exception = new RespException(true, "Can not find clone Po", EKB_SYS_REQUEST.BEAM_CONFIRM_SIZE);
                    return;
                }

                var seq1 = BeamCutQuery.GetBeamCutSeq(ShareFuncs.GetInt(beamInterface.BeamCutStartSeq_Id));

                var seq2 = BeamCutQuery.GetBeamCutSeq(ShareFuncs.GetInt(beamInterface.BeamCutStopSeq_Id));

                int cutQty      = 0;
                int totalQty    = 0;
                int currentQty  = 0;
                int addQty      = 0;
                int seqTotalQty = 0;
                int seqQty      = 0;
                foreach (var seq in clonePo.BeamCutSeqs)
                {
                    if (seq.SequenceNo >= seq1.SequenceNo && seq.SequenceNo <= seq2.SequenceNo)
                    {
                        if (seq.Finish == false)
                        {
                            var sizes = BeamCutQuery.GetBeamCutSize(seq.id);

                            int seqcutQty = ShareFuncs.GetInt(seq.CutQty);
                            foreach (var size in sizes)
                            {
                                if (size.SizeId == sizeId)
                                {
                                    if (size.Finished != true && sizeQty > 0)
                                    {
                                        int oldval = ShareFuncs.GetInt(size.CutQty);

                                        int addval = ShareFuncs.GetInt(size.SizeQty) - oldval;

                                        if (sizeQty >= addval)
                                        {
                                            addval        = ShareFuncs.GetInt(size.SizeQty) - oldval;
                                            size.CutQty   = size.SizeQty;
                                            size.Finished = true;
                                            seqcutQty    += addval;
                                            sizeQty      -= addval;

                                            addQty += addval;
                                        }
                                        else
                                        {
                                            size.CutQty += sizeQty;
                                            seqcutQty   += sizeQty;
                                            addQty      += sizeQty;
                                            sizeQty      = 0;
                                        }
                                        size.BeamCutDevice_Id = beamInterface.BeamCutDevice_Id;
                                        size.Worker_Id        = beamInterface.Employee_Id;
                                        size.LastUpdate       = DateTime.Now;
                                        BeamCutQuery.UpdateBeamSize(size);
                                    }

                                    totalQty += ShareFuncs.GetInt(size.SizeQty);
                                    cutQty   += ShareFuncs.GetInt(size.CutQty);
                                }

                                currentQty += ShareFuncs.GetInt(size.CutQty);
                            }
                            seq.BeamCutDevice_Id = beamInterface.BeamCutDevice_Id;
                            seq.Worker_Id        = beamInterface.Employee_Id;
                            seq.CutQty           = seqcutQty;
                            seq.LastUpdate       = DateTime.Now;
                            seq.Finish           = seq.CutQty == seq.SequenceQty ? true : false;
                            BeamCutQuery.UpdateBeamCutSeq(seq);
                        }

                        seqTotalQty += ShareFuncs.GetInt(seq.CutQty);
                        seqQty      += ShareFuncs.GetInt(seq.SequenceQty);
                    }
                }

                if (seqTotalQty == seqQty)
                {
                    StopCutting = true;
                }

                int oldVal = beamInterface.CuttingQty != null ? (int)beamInterface.CuttingQty : 0;
                beamInterface.LastConfirmSize = DateTime.Now;
                beamInterface.CuttingQty      = addQty + oldVal;
                BeamCutQuery.UpdateBeamInterface(beamInterface);

                clonePo.LastUpdate       = DateTime.Now;
                clonePo.CuttingQuantity += addQty;
                if (clonePo.CuttingQuantity == clonePo.PoQuantity)
                {
                    clonePo.Finish     = true;
                    clonePo.FinishTime = DateTime.Now;
                }

                BeamCutQuery.UpdateBeamCutPo(clonePo);

                var statistic = BeamCutQuery.GetBMachineStatistic(ShareFuncs.GetInt(beamInterface.BeamCutDevice_Id), DateTime.Now);
                if (statistic == null)
                {
                    statistic = BeamCutQuery.AddNewBcutStatistic(ShareFuncs.GetInt(beamInterface.BeamCutDevice_Id), DateTime.Now);
                }

                BDeviceCutTimeRecord record = new BDeviceCutTimeRecord
                {
                    TotalCutTime         = 0,
                    BeamCutDevice_Id     = bdevice.id,
                    ConfirmQuantity      = addQty,
                    BMachineStatistic_Id = statistic.id,
                };

                if (!BeamCutQuery.AddNewBCutTimeRecord(record))
                {
                    Exception = new RespException(true, "Add new record failed", EKB_SYS_REQUEST.BEAM_CONFIRM_SIZE);
                }

                int temp = statistic.TotalCutQty != null ? (int)statistic.TotalCutQty : 0;
                statistic.TotalCutQty = temp + addQty;
                BeamCutQuery.UpdateBStatistic(statistic);

                RespTotalCuttingQty = ShareFuncs.GetInt(beamInterface.CuttingQty);
                SizeId = sizeId;
                CutQty = cutQty;
                Finish = (totalQty == cutQty ? true : false);

                Exception = new RespException(false, "Confirm Size: OK", EKB_SYS_REQUEST.BEAM_CONFIRM_SIZE);
            }
            catch (Exception e)
            {
                Exception = new RespException(true, e.Message, EKB_SYS_REQUEST.BEAM_CONFIRM_SIZE);
            }
        }
Пример #23
0
        public RespPoInfo(IDbName _database, int scheduleId, int originalPoId, int componentId)
        {
            try
            {
                ScheduleQuery  scheduleQuery  = new ScheduleQuery(_database);
                SequenceQuery  sequenceQuery  = new SequenceQuery(_database);
                BeamCutQuery   beamCutQuery   = new BeamCutQuery(_database);
                SequenceQuery  SequenceQuery  = new SequenceQuery(_database);
                ComponentQuery componentQuery = new ComponentQuery(_database);

                var schedule = scheduleQuery.GetSchedule(scheduleId);

                var originalPo = SequenceQuery.GetOriginalPo(originalPoId);

                var shoeComponent = componentQuery.GetShoeComponent(componentId);

                if (schedule == null)
                {
                    if (originalPo == null)
                    {
                        Exception = new RespException(true, "Can not find schedule", EKB_SYS_REQUEST.BEAM_GET_PO_INFO);
                        return;
                    }

                    schedule = scheduleQuery.GetSchedule(originalPo);

                    if (schedule == null)
                    {
                        Exception = new RespException(true, "Can not find schedule", EKB_SYS_REQUEST.BEAM_GET_PO_INFO);
                        return;
                    }
                }

                if (shoeComponent == null)
                {
                    Exception = new RespException(true, "Can not find component", EKB_SYS_REQUEST.BEAM_GET_PO_INFO);
                    return;
                }

                PoInfo = new PoInfo(_database, schedule);

                if (originalPo == null)
                {
                    Exception = new RespException(true, "Empty sequence file", EKB_SYS_REQUEST.BEAM_GET_PO_INFO);
                    return;
                }

                var clonePo = beamCutQuery.FindClonePo(originalPo.id, componentId);

                if (clonePo != null)
                {
                    ClonePoId = clonePo.id;

                    SeqList = new List <SeqInfo>();
                    foreach (var item in clonePo.BeamCutSeqs)
                    {
                        SeqList.Add(new SeqInfo
                        {
                            id         = item.id,
                            CuttingQty = ShareFuncs.GetInt(item.CutQty),
                            SeqNo      = ShareFuncs.GetInt(item.SequenceNo),
                            SeqQty     = ShareFuncs.GetInt(item.SequenceQty),
                            Finish     = item.Finish == true ? true : false,
                        });
                    }
                }
                else
                {
                    var bClonePo = beamCutQuery.CloneOriginalPo(originalPo, shoeComponent);

                    if (bClonePo == null)
                    {
                        Exception = new RespException(true, "An error occured while requesting po information", EKB_SYS_REQUEST.BEAM_GET_PO_INFO);
                        return;
                    }

                    ClonePoId = bClonePo.id;

                    SeqList = new List <SeqInfo>();
                    foreach (var item in bClonePo.BeamCutSeqs)
                    {
                        SeqList.Add(new SeqInfo
                        {
                            id         = item.id,
                            CuttingQty = ShareFuncs.GetInt(item.CutQty),
                            SeqNo      = ShareFuncs.GetInt(item.SequenceNo),
                            SeqQty     = ShareFuncs.GetInt(item.SequenceQty),
                            Finish     = item.Finish == true ? true : false,
                        });
                    }
                }

                Exception = new RespException(false, "Get Poinfo: OK", EKB_SYS_REQUEST.BEAM_GET_PO_INFO);
            }
            catch (Exception e)
            {
                Exception = new RespException(true, e.Message, EKB_SYS_REQUEST.BEAM_GET_PO_INFO);
            }
        }
Пример #24
0
        // start cutting construction
        public RespCutting(IDbName database, int deviceId, int workerId, int clonePoId, int seq1Id, int seq2Id, int binterfaceId)
        {
            BeamCutQuery   = new BeamCutQuery(database);
            StockQuery     = new StockQuery(database);
            EmployeeQuery  = new EmployeeQuery(database);
            SequenceQuery  = new SequenceQuery(database);
            ScheduleQuery  = new ScheduleQuery(database);
            ComponentQuery = new ComponentQuery(database);
            try
            {
                var worker = EmployeeQuery.GetEmployee(workerId);
                if (worker == null)
                {
                    Exception = new RespException(true, "Invalid worker Id", EKB_SYS_REQUEST.BEAM_START_CUTTING);
                    return;
                }

                var bdevice = BeamCutQuery.GetBeamCutDevice(deviceId);
                if (bdevice == null)
                {
                    Exception = new RespException(true, "Invalid device Id", EKB_SYS_REQUEST.BEAM_START_CUTTING);
                    return;
                }

                var clonePo = BeamCutQuery.GetBeamCutPo(clonePoId);
                if (clonePo == null)
                {
                    Exception = new RespException(true, "Invalid clone Po Id", EKB_SYS_REQUEST.BEAM_START_CUTTING);
                    return;
                }

                var originalPo = SequenceQuery.GetOriginalPo(clonePo.OriginalPo_Id);

                if (originalPo == null)
                {
                    Exception = new RespException(true, "Can not find original po", EKB_SYS_REQUEST.BEAM_START_CUTTING);
                    return;
                }

                var component = ComponentQuery.GetShoeComponent(clonePo.Component_Id);

                if (component == null)
                {
                    Exception = new RespException(true, "Can not find component", EKB_SYS_REQUEST.BEAM_START_CUTTING);
                    return;
                }

                var schedule = ScheduleQuery.GetSchedule(originalPo);

                if (schedule == null)
                {
                    Exception = new RespException(true, "Can not find schedule", EKB_SYS_REQUEST.BEAM_START_CUTTING);
                    return;
                }

                var order = BeamCutQuery.GetBDeviceOrder(originalPo, deviceId);

                var startSeq = BeamCutQuery.GetBeamCutSeq(seq1Id);

                var stopSeq = BeamCutQuery.GetBeamCutSeq(seq2Id);

                if (startSeq == null || stopSeq == null)
                {
                    Exception = new RespException(true, "Invalid clone Seq Id", EKB_SYS_REQUEST.BEAM_START_CUTTING);
                    return;
                }

                int[] qty = BeamCutQuery.GetTotalSelectSequenceQty(startSeq, stopSeq);

                if (qty == null)
                {
                    qty = new int[] { 0, 0 }
                }
                ;

                int bId = binterfaceId;
                BeamCutInterface binterface = BeamCutQuery.GetBeamInterfaceById(binterfaceId);

                int scheduleId = 0;
                if (schedule != null)
                {
                    scheduleId = schedule.id;
                }

                if (binterface == null)
                {
                    binterface = new BeamCutInterface
                    {
                        Employee_Id        = workerId,
                        BeamCutDevice_Id   = deviceId,
                        BeamCutPo_Id       = clonePoId,
                        OriginalPo_Id      = clonePo.OriginalPo_Id,
                        BeamCutStartSeq_Id = seq1Id,
                        BeamCutStopSeq_Id  = seq2Id,
                        TotalSelectedQty   = qty[0],
                        TotalSelectCutQty  = qty[1],
                        Schedule_Id        = scheduleId,
                        StartSeqNo         = startSeq.SequenceNo,
                        StopSeqNo          = stopSeq.SequenceNo,
                        StartCutTime       = DateTime.Now,
                        CuttingQty         = 0,
                        BeamCutCounter     = 0,
                        BDeviceOrder_Id    = order != null ? order.id : 0,
                    };

                    var beamInterface = BeamCutQuery.AddNewBeamCutInterface(binterface);
                    if (beamInterface == null)
                    {
                        Exception = new RespException(true, "Add new BInterface error", EKB_SYS_REQUEST.BEAM_START_CUTTING);
                        return;
                    }
                    bId = beamInterface.id;
                }

                StockMeasure stockMeasure = StockQuery.GetStockMeasure(schedule);

                if (stockMeasure == null)
                {
                    var stock = StockQuery.AddNewStockMeasure(schedule);
                }

                Exception = new RespException(false, "Start cutting: OK", EKB_SYS_REQUEST.BEAM_START_CUTTING);

                InterfaceId = bId;
            }
            catch (Exception e)
            {
                Exception = new RespException(true, e.Message, EKB_SYS_REQUEST.BEAM_START_CUTTING);
            }
        }