protected override void OnInitialized(ModelElementBase modelElement)
        {
            WorkCenter workCenter = (WorkCenter)modelElement;

            //headerToConsole(workCenter);
            headerToFile(workCenter);
        }
示例#2
0
        public IHttpActionResult PutWorkCenter(int id, WorkCenter workCenter)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != workCenter.Id)
            {
                return(BadRequest());
            }
            WorkCenterServicio servicio = new WorkCenterServicio();
            RespuestaServicio <WorkCenterView> respuesta = new RespuestaServicio <WorkCenterView>();

            respuesta = servicio.ActualizarWorkCenter(id, workCenter);

            if (respuesta.EjecucionCorrecta)
            {
                return(Ok(respuesta.Respuesta));
            }
            else
            {
                return(NotFound());
            }
        }
示例#3
0
        public List <Lot> GetInitialLots(string wc, string inputDirectory, string outputDirectory, DateTime initialDateTime, WaferFabSettings waferFabSettings)
        {
            // Create an instance of a simulation class to retrieve lot steps
            Simulation simulation = new Simulation("CSSLWaferFabArea", outputDirectory);

            WaferFab waferFab = new WaferFab(simulation.MyModel, "WaferFab", new ConstantDistribution(60 * 60 * 24), initialDateTime);

            WorkCenter workCenter = new WorkCenter(waferFab, $"WorkCenter_{wc}", waferFabSettings.WCServiceTimeDistributions[wc], waferFabSettings.LotStepsPerWorkStation[wc]);

            // Sequences
            foreach (var sequence in waferFabSettings.Sequences)
            {
                waferFab.AddSequence(sequence.Key, sequence.Value);
            }

            // LotSteps
            waferFab.LotSteps = waferFab.Sequences.Select(x => x.Value).Select(x => x.GetCurrentStep(0)).ToDictionary(x => x.Name);

            // Read initial lots
            RealSnapshotReader reader = new RealSnapshotReader();

            List <RealSnapshot> realSnapshots = reader.Read(Path.Combine(inputDirectory, "SerializedFiles", reader.GetRealSnapshotString(initialDateTime)), 1);

            RealSnapshot realSnapShot = realSnapshots.Where(x => x.Time == initialDateTime).First();

            List <RealLot> initialRealLots = realSnapShot.GetRealLots(1).Where(x => x.LotActivity.WorkStation == wc).ToList();

            List <Lot> initialLots = initialRealLots.Select(x => x.ConvertToLotArea(0, waferFabSettings.Sequences, initialDateTime)).ToList();

            return(initialLots);
        }
示例#4
0
 public void SaveWorkCenter(Sender sender, SaveWorkCenterArgs args)
 {
     try
     {
         using (ObjectProxy op = new ObjectProxy(true))
         {
             WorkCenter obj = new WorkCenter();
             obj.WorkCenterID = args.WorkCenter.WorkCenterID;
             if (op.LoadWorkCenterByWorkCenterID(obj) == 0)
             {
                 args.WorkCenter.Created    = DateTime.Now;
                 args.WorkCenter.CreatedBy  = string.Format("{0}.{1}", sender.UserCode, sender.UserName);
                 args.WorkCenter.Modified   = DateTime.Now;
                 args.WorkCenter.ModifiedBy = string.Format("{0}.{1}", sender.UserCode, sender.UserName);
                 op.InsertWorkCenter(args.WorkCenter);
             }
             else
             {
                 args.WorkCenter.Modified   = DateTime.Now;
                 args.WorkCenter.ModifiedBy = string.Format("{0}.{1}", sender.UserCode, sender.UserName);
                 op.UpdateWorkCenterByWorkCenterID(args.WorkCenter);
             }
             op.CommitTransaction();
         }
     }
     catch (Exception ex)
     {
         PLogger.LogError(ex);
         throw ex;
     }
 }
示例#5
0
        public string GetSpec(string sampleName)
        {
            try
            {
                QCSample sample = db.Select <QCSample>(new QCSample {
                    SampleName = sampleName
                });

                if (string.IsNullOrEmpty(sample.Description_CN))
                {
                    return("");
                }

                WorkCenter workCenter = db.Select <WorkCenter>(new WorkCenter {
                    LabID = sample.LabID, Lang = "CN"
                });
                Category category = db.Select <Category>(new Category {
                    TypeID = sample.TypeID, Lang = "CN"
                });
                return(string.Format("({0}){1}-{2}", workCenter.LabID, workCenter.LabName, category.TypeName));
            }
            catch (Exception e)
            {
                log.Error(e);

                throw new Exception(e.Message);
            }
        }
示例#6
0
文件: Program.cs 项目: nitman118/CSSL
        static void Main(string[] args)
        {
            string directory = @"C:\Users\nx008314\OneDrive - Nexperia\Work\WaferFab\";

            // Load data

            InputData inputData = new InputData(directory + "CSVs");

            // Build the model

            Simulation sim = new Simulation("WaferFab", directory + "Results");

            WaferFab waferFab = new WaferFab(sim.MyModel, "WaferFab");

            waferFab.LotStarts = inputData.LotStarts;

            waferFab.LotSteps = inputData.LotSteps;

            foreach (var wc in inputData.WorkCentersData)
            {
                WorkCenter workCenter = new WorkCenter(waferFab, $"WorkCenter_{wc.Key}", new ExponentialDistribution(wc.Value), inputData.LotStepsPerWorkStation[wc.Key]);

                workCenter.SetDispatcher(new BQFDispatcher(workCenter, workCenter.Name + "_BQFDispatcher"));

                waferFab.AddWorkCenter(workCenter.Name, workCenter);
            }

            //foreach(var sequence in inputData.SequencesData)
            //waferFab.AddSequence()

            //int stop = 0;
        }
示例#7
0
        protected override void OnInitialized(ModelElementBase modelElement)
        {
            Writer.Write("Simulation Time\tComputational Time\tQueue Length");

            WorkCenter workCenter = (WorkCenter)modelElement;

            queueLength.UpdateValue(workCenter.TotalQueueLength);
        }
示例#8
0
    protected void ODS_WorkCenter_Updating(object sender, ObjectDataSourceMethodEventArgs e)
    {
        WorkCenter workCenter = (WorkCenter)e.InputParameters[0];
        WorkCenter oldWC      = TheWorkCenterMgr.LoadWorkCenter(WorkCenterCode);

        workCenter.Party = oldWC.Party;
        workCenter.Type  = ((Controls_TextBox)(this.FV_WorkCenter.FindControl("tbType"))).Text;
    }
示例#9
0
 public SeperateQueuesObserver(Simulation mySimulation, WorkCenter workCenter) : base(mySimulation)
 {
     foreach (LotStep step in workCenter.LotSteps)
     {
         queueLengths.Add(step, new Variable <int>(this));
         queueLengthsStatistic.Add(step, new WeightedStatistic("QueueLength_" + step.Name));
     }
 }
示例#10
0
        public ActionResult DeleteConfirmed(int id)
        {
            WorkCenter workCenter = db.WorkCenters.Find(id);

            db.WorkCenters.Remove(workCenter);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
示例#11
0
    public void ListView(object sender)
    {
        string   region         = ((object[])sender)[0].ToString();
        string   workcenter     = ((object[])sender)[1].ToString();
        string   para_starttime = ((object[])sender)[2].ToString();
        string   para_endtime   = ((object[])sender)[3].ToString();
        DateTime starttime      = DateTime.Now;
        DateTime endtime        = DateTime.Now;

        if (region != "")
        {
            Region r = TheRegionMgr.LoadRegion(region);
            if (r == null)
            {
                ShowWarningMessage("MasterData.WorkCalendar.WarningMessage.RegionInvalid", region);
                return;
            }
        }
        if (workcenter != "")
        {
            WorkCenter r = TheWorkCenterMgr.LoadWorkCenter(workcenter);
            if (r == null)
            {
                ShowWarningMessage("MasterData.WorkCalendar.WarningMessage.WorkCenterInvalid", workcenter);
                return;
            }
        }
        try
        {
            starttime = Convert.ToDateTime(para_starttime);
        }
        catch (Exception)
        {
            ShowWarningMessage("MasterData.WorkCalendar.WarningMessage.StartTimeInvalid");
            return;
        }
        try
        {
            endtime = Convert.ToDateTime(para_endtime);
        }
        catch (Exception)
        {
            ShowWarningMessage("MasterData.WorkCalendar.WarningMessage.EndTimeInvalid");
            return;
        }
        if (DateTime.Compare(starttime, endtime) > 0)
        {
            ShowWarningMessage("MasterData.WorkCalendar.WarningMessage.TimeCompare");
            return;
        }

        List <WorkCalendar> workCalendars = TheWorkCalendarMgr.GetWorkCalendar(starttime, endtime, region, workcenter);

        this.GV_List.DataSource = workCalendars;
        this.GV_List.DataBind();

        GridViewHelper.GV_MergeTableCell(GV_List, new int[] { 0, 1 });
    }
示例#12
0
        protected override void OnReplicationEnd(ModelElementBase modelElement)
        {
            WorkCenter workCenter = (WorkCenter)modelElement;

            queueLength.UpdateValue(workCenter.TotalQueueLength);
            QueueLengthStatistic.Collect(queueLength.PreviousValue, queueLength.Weight);

            Writer?.WriteLine($"{workCenter.GetTime},{queueLength.Value}");
        }
示例#13
0
        protected override void OnUpdate(ModelElementBase modelElement)
        {
            WorkCenter workCenter = (WorkCenter)modelElement;

            queueLength.UpdateValue(workCenter.TotalQueueLength);
            queueLengthStatistic.Collect(queueLength.PreviousValue, queueLength.Weight);

            Writer.Write(workCenter.GetTime + "\t" + workCenter.GetWallClockTime + "\t" + queueLength.Value);
        }
示例#14
0
        public RespuestaServicio <WorkCenterView> PostWorkCenter(WorkCenter workCenter)
        {
            RespuestaServicio <WorkCenterView> respuesta = new RespuestaServicio <WorkCenterView>();

            _context.WorkCenters.Add(workCenter);
            _context.SaveChanges();
            respuesta = GetWorkCenter(workCenter.Id);
            return(respuesta);
        }
示例#15
0
        private void writeToConsole(WorkCenter workCenter)
        {
            Console.Write(workCenter.GetTime + "\t" + workCenter.GetWallClockTime + "\t");

            foreach (LotStep step in workCenter.LotSteps)
            {
                Console.Write(queueLengths[step] + "\t");
            }
            Console.Write("\n");
        }
示例#16
0
        protected override void OnInitialized(ModelElementBase modelElement)
        {
            Writer?.WriteLine("Simulation Time,Queue Length");

            WorkCenter workCenter = (WorkCenter)modelElement;

            queueLength.UpdateValue(workCenter.InitialLots.Count());

            Writer?.WriteLine($"{workCenter.GetTime},{queueLength.Value}");
        }
示例#17
0
        protected override void OnUpdate(ModelElementBase modelElement)
        {
            WorkCenter workCenter = (WorkCenter)modelElement;
            LotStep    step       = workCenter.LastArrivedLot.GetCurrentStep;

            queueLengths[step].UpdateValue(workCenter.Queues[step].Length);
            queueLengthsStatistic[step].Collect(queueLengths[step].PreviousValue, queueLengths[step].Weight);

            writeToFile(workCenter);
        }
示例#18
0
 public ActionResult Edit([Bind(Include = "WorkCenterId,WorkCenterLocation")] WorkCenter workCenter)
 {
     if (ModelState.IsValid)
     {
         db.Entry(workCenter).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(workCenter));
 }
示例#19
0
        private void writeToFile(WorkCenter workCenter)
        {
            Writer?.Write(workCenter.GetTime + "," + workCenter.GetWallClockTime + ",");

            foreach (LotStep step in workCenter.LotSteps)
            {
                Writer?.Write(queueLengths[step].Value + ",");
            }
            Writer?.Write("\n");
        }
示例#20
0
        public IActionResult ChangeActiveStatus(WorkCenter workCenter, bool ActiveStatus)
        {
            var result = (_workCenterServices.ChangeActiveStatus(workCenter, ActiveStatus));

            if (result.Success)
            {
                return(Ok(result.Success));
            }

            return(BadRequest(result.Message));
        }
示例#21
0
        public SeperateQueuesObserver(Simulation mySimulation, WorkCenter workCenter, string name) : base(mySimulation, name)
        {
            queueLengths          = new Dictionary <LotStep, Variable <int> >();
            queueLengthsStatistic = new Dictionary <LotStep, WeightedStatistic>();

            foreach (LotStep step in workCenter.LotSteps)
            {
                queueLengths.Add(step, new Variable <int>(this));
                queueLengthsStatistic.Add(step, new WeightedStatistic("QueueLength_" + step.Name));
            }
        }
示例#22
0
    protected void FV_WorkCenter_DataBound(object sender, EventArgs e)
    {
        WorkCenter wc = TheWorkCenterMgr.LoadWorkCenter(this.WorkCenterCode);

        ((Literal)(this.FV_WorkCenter.FindControl("lbCurrentParty"))).Text = wc.Party.Code;
        Controls_TextBox tbType = (Controls_TextBox)(this.FV_WorkCenter.FindControl("tbType"));

        tbType.ServiceParameter = "string:" + BusinessConstants.CODE_MASTER_WORKCENTER_TYPE;
        tbType.DataBind();
        tbType.Text = wc.Type;
    }
示例#23
0
        public IActionResult Update(WorkCenter workCenter)
        {
            var result = _workCenterServices.Update(workCenter);

            if (result.Success)
            {
                return(Ok(result.Success));
            }

            return(BadRequest(result.Message));
        }
示例#24
0
        protected override void OnReplicationStart(ModelElementBase modelElement)
        {
            WorkCenter workCenter = (WorkCenter)modelElement;

            foreach (LotStep step in workCenter.LotSteps)
            {
                queueLengths[step].Reset();
                // Uncomment below if one want to save across replication statistics
                queueLengthsStatistic[step].Reset();
            }
        }
示例#25
0
        public ActionResult Create([Bind(Include = "WorkCenterId,WorkCenterLocation")] WorkCenter workCenter)
        {
            if (ModelState.IsValid)
            {
                db.WorkCenters.Add(workCenter);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(workCenter));
        }
示例#26
0
        public IActionResult Add(WorkCenter workCenter)
        {
            var result = (_workCenterServices.Add(workCenter));

            if (result.Success)
            {
                return(Ok(result.Success));
            }

            return(BadRequest(result.Message));
        }
示例#27
0
        private void headerToFile(WorkCenter workCenter)
        {
            Writer?.Write("Simulation Time,Computational Time,");

            foreach (LotStep step in workCenter.LotSteps)
            {
                queueLengths[step].UpdateValue(workCenter.Queues[step].Length);

                Writer?.Write(step.Name + ",");
            }
            Writer?.Write("\n");
        }
示例#28
0
        public ActionResult Edit(WorkCenter workCenter)
        {
            if (ModelState.IsValid)
            {
                db.Entry(workCenter).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            ViewBag.IdBussinesUnit = new SelectList(db.BussinesUnits, "Id", "Nombre", workCenter.IdBussinesUnit);
            ViewBag.IdResponsable  = new SelectList(db.Personas.Select(x => new { Id = x.Id, Nombre = x.Nombre + " " + x.Apellido1 + " " + x.Apellido2 }).OrderBy(x => x.Nombre), "Id", "Nombre", workCenter.IdResponsable);

            return(View(workCenter));
        }
示例#29
0
        protected override void Execute(NativeActivityContext context)
        {
            BLL bll = new BLL();

            if (bll.CheckForSAPMapping(WorkCenter.Get(context)))
            {
                Console.WriteLine("Workcenter present");
                Result.Set(context, true);
            }
            else
            {
                Result.Set(context, false);
            }
        }
示例#30
0
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            WorkCenter workCenter = db.WorkCenters.Find(id);

            if (workCenter == null)
            {
                return(HttpNotFound());
            }
            return(View(workCenter));
        }
示例#31
0
 public void DeleteWorkCenter(WorkCenter workCenter)
 {
     WorkCenterMgr.DeleteWorkCenter(workCenter);
 }
示例#32
0
 public void CreateWorkCenter(WorkCenter workCenter)
 {
     WorkCenterMgr.CreateWorkCenter(workCenter);
 }
 public virtual void CreateWorkCenter(WorkCenter entity)
 {
     entityDao.CreateWorkCenter(entity);
 }
 public virtual void UpdateWorkCenter(WorkCenter entity)
 {
     entityDao.UpdateWorkCenter(entity);
 }
 public virtual void DeleteWorkCenter(WorkCenter entity)
 {
     entityDao.DeleteWorkCenter(entity);
 }
示例#36
0
 protected void ODS_WorkCenter_Inserting(object sender, ObjectDataSourceMethodEventArgs e)
 {
     workCenter = (WorkCenter)e.InputParameters[0];
     workCenter.Party = ThePartyMgr.LoadParty(this.ParentCode);
     workCenter.Type = ((Controls_TextBox)(this.FV_WorkCenter.FindControl("tbType"))).Text;
 }
示例#37
0
 public void UpdateWorkCenter(WorkCenter workCenter)
 {
     WorkCenterMgr.UpdateWorkCenter(workCenter);
 }