Ejemplo n.º 1
0
        public void GenerateWorkProcesses(WorkProcess process)
        {
            var workprocess = this.Queryable().Include(x => x.SKU).Where(x => x.Id == process.Id).First();

            workprocess.Status = 1;
            this.Update(workprocess);
            var steps = _setpservice.Queryable().Where(x => x.ProductionProcessId == process.ProductionProcessId).ToList();
            var list  = new List <WorkProcessDetail>();

            foreach (var setp in steps)
            {
                if (!_processdetailservice.Queryable().Where(x => x.ProcessStepId == setp.Id).Any())
                {
                    WorkProcessDetail item = new WorkProcessDetail();
                    item.WorkProcessId       = process.Id;
                    item.Operator            = "";
                    item.SKUId               = workprocess.SKUId;
                    item.ComponentSKU        = workprocess.SKU.Sku;
                    item.GraphSKU            = workprocess.GraphSKU;
                    item.ProcessStepId       = setp.Id;
                    item.StandardElapsedTime = setp.ElapsedTime;
                    item.StationId           = setp.StationId;
                    item.StepName            = setp.StepName;
                    item.Status              = 0;
                    list.Add(item);
                }
            }
            _processdetailservice.InsertRange(list);
        }
Ejemplo n.º 2
0
        public IEnumerable <ProductionTask> GenerateProductionTask(int[] plansid)
        {
            var planlist = this.Queryable().Include(x => x.ProductionProcess).Where(x => plansid.Contains(x.Id)).ToList();
            var newitems = new List <ProductionTask>();

            foreach (var planitem in planlist)
            {
                var setps = _stepservice.Queryable().Include(x => x.ProductionProcess).Where(x => x.ProductionProcessId == planitem.ProductionProcessId && planitem.ProductionProcessId > 0).ToList();

                foreach (var setp in setps)
                {
                    var isexist = _taskservice.Queryable().Where(x => x.OrderId == planitem.OrderId && x.ProcessName == setp.ProductionProcess.Name && x.ProcessOrder == setp.Order).Any();
                    if (!isexist)
                    {
                        ProductionTask item = new ProductionTask();
                        item.OrderId              = planitem.OrderId;
                        item.OrderKey             = planitem.OrderKey;
                        item.OrderPlanDate        = planitem.OrderPlanDate;
                        item.ParentBomComponentId = planitem.ParentBomComponentId;
                        item.BomComponentId       = planitem.BomComponentId;
                        item.ComponentSKU         = planitem.ComponentSKU;
                        item.ProcessSetp          = setp.StepName;
                        item.ProductionLine       = setp.ProductionProcess.ProductionLine;
                        item.ProcessOrder         = setp.Order;
                        item.ProductionQty        = planitem.RequirementQty;
                        item.SKUId                 = planitem.SKUId;
                        item.GraphSKU              = planitem.GraphSKU;
                        item.ALTSku                = planitem.ALTSku;
                        item.AltElapsedTime        = planitem.RequirementQty * setp.ElapsedTime;
                        item.Equipment             = setp.Equipment;
                        item.DesignName            = planitem.DesignName;
                        item.OrderPlanDate         = planitem.OrderPlanDate;
                        item.PlanStartDateTime     = planitem.PlanedStartDate;
                        item.PlanCompletedDateTime = planitem.PlanedStartDate.Value.AddHours((double)item.AltElapsedTime);
                        item.ProcessName           = setp.ProductionProcess.Name;
                        item.Owner                 = "";
                        newitems.Add(item);
                    }
                }
            }
            _taskservice.InsertRange(newitems);
            return(newitems);
        }