public bool Delete(long id)
 {
     return(OrmOperationFactory.DoCommand((adapter, meta) =>
     {
         try
         {
             var isDeletedBefore = meta.Plan.FirstOrDefault(p => p.Id == id && !p.IsActive);
             if (isDeletedBefore != null)
             {
                 return false;
             }
             var predicate = new RelationPredicateBucket(PlanFields.Id == id);
             var changes = new PlanEntity()
             {
                 IsActive = false
             };
             var result = adapter.UpdateEntitiesDirectly(changes, predicate);
             return result > 0;
         }
         catch (Exception e)
         {
             throw new Exception(e.Message);
         }
     }));
 }
예제 #2
0
        /// <summary>
        /// 插入数据
        /// </summary>
        /// <param name="plan">数据实体</param>
        public static void Insert(PlanEntity plan)
        {
            var cmd = new DataCommand("Plan.Insert");

            cmd.SetParameter(plan);
            cmd.ExecuteNonQuery();
        }
예제 #3
0
        private void OnInsertPlanCommand()
        {
            if (SelectPlanEntity != null)
            {
                int  lNewSequenceId = SelectPlanEntity.SequenceId + 1;
                bool autoIncrease   = false;
                for (int pos = 0; pos < PlanList.Count; ++pos)
                {
                    PlanEntity item = PlanList[pos];
                    if (item.SequenceId == SelectPlanEntity.SequenceId)
                    {
                        autoIncrease = true;
                    }

                    if (autoIncrease && item.SequenceId > SelectPlanEntity.SequenceId)
                    {
                        ++item.SequenceId;
                    }
                }

                IsEditing = true;
                PlanEntity newPlanEntity = new PlanEntity();
                newPlanEntity.ProjectName       = SelectPlanEntity.ProjectName;
                newPlanEntity.SheetName         = SelectPlanEntity.SheetName;
                newPlanEntity.VersionId         = SelectPlanEntity.VersionId;
                newPlanEntity.ManufactureNumber = PlanList[0].ManufactureNumber;
                newPlanEntity.TargetDate        = DateTime.Now;
                newPlanEntity.Weight            = Convert.ToDecimal(0);
                newPlanEntity.SequenceId        = SelectPlanEntity.SequenceId + 1;
                EditingPlanEntity  = newPlanEntity;
                uneditedPlanEntity = null;
                SelectPlanEntity   = null;
                UpdateChanged("EditingOriginalName");
            }
        }
예제 #4
0
        private void gridProcessList_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex < 0)
            {
                return;
            }

            if (gridProcessList.Rows[e.RowIndex].Cells["colProcessCode"].Value == null)
            {
                return;
            }
            string process_code = gridProcessList.Rows[e.RowIndex].Cells["colProcessCode"].Value.ToString().Trim();

            PlanEntity ent = PlanFactory.GetByKey(this.plancode);

            if (ent.PRODUCT_SERIES == null)
            {
                MessageBox.Show("此计划工序没有定义相应的工序指导文件");
                return;
            }

            RMESEventArgs args = new RMESEventArgs();

            args.MessageHead  = "INFO";
            args.MessageBody  = process_code;
            args.MessageBody += "^" + plancode;
            SendDataChangeMessage(args);

            FrmShowProcessNote spn = new FrmShowProcessNote(plancode, process_code);

            spn.Show();
        }
예제 #5
0
        private void InitItems(string pPlanCode,string pStationCode)
        {
            StationEntity ent1 = StationFactory.GetByKey(pStationCode);
            WorkunitCode = "";
            txtWorkUnit.Text = ent1.STATION_NAME;
            PlanEntity ent2 = PlanFactory.GetByKey(pPlanCode);
            OrderCode = ent2.ORDER_CODE;
 
            List<PlanStandardBOMEntity> lstBom = PlanStandardBOMFactory.GetByOrderCode(OrderCode);
            List<PlanStandardBOMEntity> lstBom1 = (from p in lstBom
                                                   where p.VIRTUAL_ITEM_CODE == "X" && p.WORKUNIT_CODE == WorkunitCode
                                                   select p).ToList<PlanStandardBOMEntity>();
            
            if (lstBom1.Count == 0)
            {
                cmbVItemCode.SelectedIndex = -1;
                cmbVItemCode.Enabled = false;
            }
            else
            {
                cmbVItemCode.Items.Clear();
                cmbVItemCode.Items.Add("总装件");
                for (int i = 0; i < lstBom1.Count; i++)
                {
                    cmbVItemCode.Items.Add(lstBom1[i].ITEM_CODE + "-" + lstBom1[i].ITEM_NAME);
                }
                cmbVItemCode.Enabled = true;
            }

        }
예제 #6
0
        /// <summary>
        /// 更新数据
        /// </summary>
        /// <param name="plan">数据实体</param>
        public static void Update(PlanEntity plan)
        {
            var cmd = new DataCommand("Plan.Update");

            cmd.SetParameter(plan);
            cmd.ExecuteNonQuery();
        }
예제 #7
0
        public ScriptEntity[] Export(string planID, out string exportFilePath)
        {
            exportFilePath = string.Format("Plans-{0}.xls", planID);

            exportFilePath = Path.Combine(ExportConfig.PlanExportDirectory, exportFilePath);
            //String[] headerList = new string[] { "ID","CaseID", "ManualCaseID", "Name", "SuiteName", "Type", "Priority", "Feature", "Module", "Owner", "CreateTime", "SyncTime" };

            PlanEntity plan = GetPlanByPlanID(planID);

            System.Data.DataTable scriptsTable = ScriptDA.RetrieveByPlanIDToDataSet(plan.ID);

            //ExcelHelper handler = new ExcelHelper(excelFilePath, true);

            //handler.OpenOrCreate();
            //Worksheet sheet = handler.AddWorksheet(planID);
            ////Delete all sheet except special one
            //handler.DeleteWorksheetExcept(sheet);

            ////Import data from the start
            //handler.ImportDataTable(sheet, headerList, scriptsTable);

            //handler.Save();

            //handler.Dispose();

            ExcelHelper.ExportToExcel(scriptsTable, exportFilePath, "ScriptList");


            return(ScriptDA.RetrieveByPlanID(plan.ID));
        }
예제 #8
0
        private DataTable ExecutionArrayToDataTable(ExecutionEntity[] executions, PlanEntity plan = null)
        {
            string[] headers = typeof(ExecutionEntity).GetProperties(BindingFlags.Public | BindingFlags.Instance).Select(p => p.Name).ToArray();

            DataTable table = new DataTable();

            foreach (var column in headers)
            {
                table.Columns.Add(column);
            }

            foreach (ExecutionEntity execution in executions)
            {
                DataRow row = table.NewRow();

                foreach (var column in headers)
                {
                    if (String.Equals(column, "PlanID", StringComparison.OrdinalIgnoreCase))
                    {
                        row[column] = plan != null ? plan.PlanID : PlanBL.GetPlanByID(execution.PlanID, isGetScripts: false).PlanID;
                    }
                    else
                    {
                        row[column] = typeof(ExecutionEntity).GetProperty(column).GetValue(execution, null);
                    }
                }

                table.Rows.Add(row);
            }

            return(table);
        }
예제 #9
0
        public void UpdatePlan_SuccessfulUpdate()
        {
            var newPlan = new PlanEntity()
            {
                Id              = 1,
                Name            = "Updated Plan",
                DurationInWeeks = 4,
            };

            var result = _planRepository.Update(newPlan);

            Assert.IsAssignableFrom <IQueryable <PlanEntity> >(result);
            Assert.NotEmpty(result);

            var item = result.SingleOrDefault();

            Assert.NotNull(item);
            Assert.True(item.IsActive);
            Assert.Equal(1, _planRepository.GetCount());
            Assert.NotEqual(2, _planRepository.GetCount());

            Assert.True(item.Name.Equals("Updated Plan"));
            Assert.Equal(4, item.DurationInWeeks);
            Assert.NotEqual(new DateTime(2020, 2, 22), item.StartingDateUtc);
        }
예제 #10
0
        public void Create(string planFile)
        {
            XDocument planDefinition = GetPlanXDocument(planFile);

            PlanEntity plan = GetPlanInformationFromXDocument(planDefinition);

            if (PlanDA.Retrieve(plan.PlanID) != null)
            {
                throw new AppException(String.Format("the given plan '{0}' already exists", plan.PlanID));
            }

            plan.Status     = EntityStatus.Active;
            plan.UpdateTime = DateTime.Now;

            using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions()
            {
                IsolationLevel = System.Transactions.IsolationLevel.RepeatableRead
            }))
            {
                long planID = PlanDA.Create(plan);

                plan.ID = planID;

                BuildPlanScriptReference(plan);

                ts.Complete();
            }
        }
예제 #11
0
        public void AddNewPlan_FailingToAdd()
        {
            var newPlan = new PlanEntity()
            {
                Id              = 1,
                Name            = "Second Plan",
                DurationInWeeks = 4,
                StartingDateUtc = new DateTime(2020, 2, 22),
                IsActive        = false,
            };

            Assert.Throws <InvalidOperationException>(() => { _planRepository.Add(newPlan); });

            IQueryable <PlanEntity> result = new List <PlanEntity>().AsQueryable();

            try
            {
                result = _planRepository.Add(newPlan);
            }
            catch
            {
                Assert.IsAssignableFrom <IQueryable <PlanEntity> >(result);
                Assert.Empty(result);
                Assert.Null(result.SingleOrDefault());
                Assert.Equal(1, _planRepository.GetCount());
                Assert.NotEqual(2, _planRepository.GetCount());
            }
        }
예제 #12
0
        public void Update(string planID, string planFile)
        {
            //if plan does not exit, alert
            PlanEntity originalPlan = CheckPlanExists(planID);

            XDocument planDefinition = GetPlanXDocument(planFile);

            PlanEntity plan = GetPlanInformationFromXDocument(planDefinition);

            plan.ID         = originalPlan.ID;
            plan.Status     = originalPlan.Status;
            plan.UpdateTime = DateTime.Now;

            using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions()
            {
                IsolationLevel = System.Transactions.IsolationLevel.RepeatableRead
            }))
            {
                PlanDA.Update(plan);

                BuildPlanScriptReference(plan);

                ts.Complete();
            }
        }
예제 #13
0
        private void OnSelectionChangedCommand()
        {
            if (!isEditing)
            {
                if (null != SelectPlanEntity)
                {
                    PlanEntity planEntity = new PlanEntity();
                    CopyPlanEntity(SelectPlanEntity, ref planEntity);
                    EditingPlanEntity = planEntity;
                }
                else
                {
                    EditingPlanEntity = new PlanEntity();
                }
            }
            else
            {
                if (null == SelectPlanEntity && null == uneditedPlanEntity)
                {
                    return;
                }

                if (null != SelectPlanEntity && null != uneditedPlanEntity &&
                    SelectPlanEntity.ManufactureNumber == uneditedPlanEntity.ManufactureNumber &&
                    SelectPlanEntity.VersionId == uneditedPlanEntity.VersionId &&
                    SelectPlanEntity.SequenceId == uneditedPlanEntity.SequenceId &&
                    SelectPlanEntity.SheetName == uneditedPlanEntity.SheetName)
                {
                    return;
                }
                CustomMessage customMesage = new CustomMessage("保存编辑并切换?", CustomMessage.MessageType.Confirm);
                customMesage.Closed += new EventHandler(SelectionConfirm_Closed);
                customMesage.Show();
            }
        }
예제 #14
0
        public ServiceResult <PlanEntity> Put(int id, [FromBody] PlanEntity model)
        {
            ServiceResult <PlanEntity> result = null;
            var validatorResult = validator.Validate(model);

            if (validatorResult.IsValid)
            {
                try
                {
                    result = this.appService.Update(model);
                }
                catch (Exception ex)
                {
                    result         = new ServiceResult <PlanEntity>();
                    result.Errors  = new string[] { ex.Message };
                    result.Success = false;
                }
            }
            else
            {
                result         = new ServiceResult <PlanEntity>();
                result.Errors  = validatorResult.GetErrors();
                result.Success = false;
            }

            return(result);
        }
예제 #15
0
        private void InitPlan(string PlanCode)
        {
            PlanEntity en1 = PlanFactory.GetByKey(PlanCode);

            planCode    = PlanCode;
            sn_flag     = en1.SN_FLAG;
            CurPlancode = PlanCode;
        }
예제 #16
0
        public PlanEntity Insert(PlanEntity planEntity)
        {
            var id = connection.Query <int>(PlanEntityQuerys.Insert, planEntity).Single();

            planEntity.PlanEntityId = id;
            planEntity.State        = true;
            return(planEntity);
        }
예제 #17
0
 private void OnCancelCommand()
 {
     IsEditing          = false;
     EditingPlanEntity  = new PlanEntity();
     uneditedPlanEntity = null;
     OnSelectionChangedCommand();
     UpdateChanged("EditingOriginalName");
 }
예제 #18
0
        /// <summary>
        /// 插入数据
        /// </summary>
        /// <param name="plan">数据实体</param>
        public void Insert(PlanVO plan)
        {
            PlanEntity entity = plan.ToPlanEntity();

            this.CheckPlanEntity(entity);
            this.HandlePlanDateTime(entity);
            PlanDA.Insert(entity);
        }
예제 #19
0
        public void Delete(string planID)
        {
            //if plan does not exit, alert
            PlanEntity originalPlan = CheckPlanExists(planID);

            originalPlan.Status = EntityStatus.Deleted;

            PlanDA.Update(originalPlan);
        }
예제 #20
0
 public static bool ChangePlanQTY(string planCode, int num, string userID)
 {
     DB.GetInstance().BeginTransaction();
     try
     {
         PlanEntity               entPlan      = PlanFactory.GetByKey(planCode);
         List <PlanBomEntity>     allBOMs      = PlanBOMFactory.GetByPlanCode(planCode);
         List <PlanProcessEntity> allProcesses = PlanProcessFactory.GetByPlan(planCode);
         //更改所有BOM的数量信息
         foreach (var b in allBOMs)
         {
             b.ITEM_QTY = (b.ITEM_QTY / entPlan.PLAN_QTY) * num;
             DB.GetInstance().Update(b);
         }
         //更改所有工序的数量信息和标准工序的处理数量信息
         foreach (var p in allProcesses)
         {
             PlanProcessMainEntity mainProcess = PlanProcessMainFactory.GetByOrderCodeAndProcessCode(p.ORDER_CODE, p.PROCESS_CODE);
             mainProcess.HANDLED_QTY = mainProcess.HANDLED_QTY - entPlan.PLAN_QTY + num;
             if (mainProcess.HANDLED_QTY >= int.Parse(mainProcess.PLAN_QTY))
             {
                 mainProcess.HANDLED_FLAG = "F";
             }
             else if (mainProcess.HANDLED_QTY < int.Parse(mainProcess.PLAN_QTY))
             {
                 mainProcess.HANDLED_FLAG = "N";
             }
             p.PLAN_QTY = num.ToString();
             DB.GetInstance().Update(mainProcess);
             DB.GetInstance().Update(p);
         }
         //更改已导入的订单的处理数量信息
         List <PlanProcessMainEntity> orderProcesses = PlanProcessMainFactory.GetByOrderCode(entPlan.ORDER_CODE);
         var            minQTY = (from o in orderProcesses select o.HANDLED_QTY).Min();
         PlanTempEntity pt     = PlanTempFactory.GetByOrderCode(entPlan.ORDER_CODE);
         pt.HANDLED_QTY = minQTY;
         if (pt.HANDLED_QTY >= pt.PLAN_QTY)
         {
             pt.HANDLE_FLAG = "F";
         }
         else if (pt.HANDLED_QTY < pt.PLAN_QTY)
         {
             pt.HANDLE_FLAG = "N";
         }
         DB.GetInstance().Update(pt);
         //更改计划数量信息
         entPlan.PLAN_QTY = num;
         DB.GetInstance().Update(entPlan);
         DB.GetInstance().CompleteTransaction();
         return(true);
     }
     catch (Exception e)
     {
         DB.GetInstance().AbortTransaction();
         return(false);
     }
 }
예제 #21
0
 public IQueryable <PlanEntity> Add(PlanEntity entity)
 {
     if (_plansList.Any(p => p.Id == entity.Id))
     {
         throw new InvalidOperationException();
     }
     _plansList.Add(entity);
     return(_plansList.Where(p => p.Id == entity.Id).AsQueryable());
 }
예제 #22
0
        protected void ctrlProcessComplete_RmesDataChanged(object obj, Rmes.WinForm.Base.RMESEventArgs e)
        {
            if (e.MessageHead == "SN")
            {
                //gridProcessList.Enabled = true;
                //sn = e.MessageBody as string;
                //PlanSnEntity ent_sn = PlanSnFactory.GetBySn(sn);
                //ordercode=ent_sn.ORDER_CODE;
                //if (ent_sn.PLAN_CODE != null) plancode = ent_sn.PLAN_CODE;
                //else plancode = PlanFactory.GetByOrder(ent_sn.ORDER_CODE).PLAN_CODE;

                InitProcessList();
                ShowProcessList();

                return;
            }
            if (e.MessageHead == "PLAN")
            {
                gridProcessList.Enabled = true;
                plancode = e.MessageBody as string;
                PlanEntity plan = PlanFactory.GetByKey(plancode);
                if (plan != null)
                {
                    ordercode = plan.ORDER_CODE;
                    InitProcessList();
                    ShowProcessList();
                }
            }
            else if (e.MessageHead == "PRCS")
            {
                //string[] msgbdy = (e.MessageBody as string).Split('^');
                //string process_code = msgbdy[0];
                //string complete_flag = msgbdy[1];
                //DealProcessComplete(process_code, complete_flag);
            }
            else if (e.MessageHead == "PAUSE")
            {
                this.gridProcessList.DataSource = null;
                return;
            }
            else if (e.MessageHead == "SCP" || e.MessageHead == "OFFLINE")
            {
                this.gridProcessList.DataSource = null;
                ProductDataFactory.ProcessControlComplete(company_code, pline_code, station_code, plancode, sn);
            }
            else if (e.MessageHead == "MESLL")
            {
                this.Visible = false;
                return;
            }
            if (e.MessageHead.ToString() == "WORK" || e.MessageHead.ToString() == "QUA")
            {
                this.Visible = true;
                return;
            }
        }
예제 #23
0
 /// <summary>
 /// 更新一个实体信息
 /// </summary>
 /// <param name="Entity"></param>
 /// <returns></returns>
 public async Task <int> UpdateAsync(PlanEntity PEntity)
 {
     if (PEntity == null)
     {
         return(0);
     }
     PEntity.UpDateTime = DateTime.Now;
     _GhDbContext.dsPlans.Update(PEntity);
     return(await _GhDbContext.SaveChangesAsync().ConfigureAwait(false));
 }
예제 #24
0
        public async Task <PlanInfoDto> GetOneByIdAsync(string Id)
        {
            PlanEntity thePlan = await _GhDbContext.dsPlans.FindAsync(Id).ConfigureAwait(false);

            if (thePlan == null)
            {
                return(null);
            }
            return(_Mapper.Map <PlanInfoDto>(thePlan));
        }
예제 #25
0
        public IQueryable <PlanEntity> Update(PlanEntity entity)
        {
            var updateEntity = _plansList.FirstOrDefault(p => p.Id == entity.Id);

            if (updateEntity == null)
            {
                throw new InvalidOperationException();
            }
            ApplyUpdateEntity(ref updateEntity, entity);
            return(_plansList.Where(p => p.Id == entity.Id).AsQueryable());
        }
예제 #26
0
 /// <summary>
 /// 向数据库表添加一个新的记录,如果该记录已经存在,返回-2。
 /// </summary>
 /// <param name="PEntity"></param>
 /// <returns></returns>
 public async Task <int> AddAsync(PlanEntity PEntity)
 {
     if (PEntity == null || PEntity.Id != null)
     {
         return(-2);
     }
     PEntity.Id         = AppCodes.AppStaticClass.GetIdOfDateTime();
     PEntity.UpDateTime = DateTime.Now;
     _GhDbContext.dsPlans.Add(PEntity);
     return(await _GhDbContext.SaveChangesAsync().ConfigureAwait(false));
 }
예제 #27
0
        public void BindData()
        {
            List <DepartmentEntity> dept = DB.GetInstance().Fetch <DepartmentEntity>("");

            com_DEPT.DataSource = dept;
            com_DEPT.ValueField = "DEPT_CODE";
            com_DEPT.TextField  = "DEPT_NAME";
            com_DEPT.DataBind();
            if (com_DEPT.SelectedItem == null)
            {
                return;
            }
            string _dept = com_DEPT.SelectedItem.Value.ToString();
            List <ProductLineEntity> plines = DB.GetInstance().Fetch <ProductLineEntity>("where pline_code in (select pline_code from REL_DEPT_PLINE where dept_code=@0)", _dept);

            ASPxComboBox1.DataSource = plines;
            ASPxComboBox1.TextField  = "PLINE_NAME";
            ASPxComboBox1.ValueField = "PLINE_CODE";
            ASPxComboBox1.DataBind();
            if (ASPxComboBox1.SelectedItem == null)
            {
                return;
            }
            string _pline = ASPxComboBox1.SelectedItem.Value.ToString();
            List <ItemReturnEntity> returns = db.Fetch <ItemReturnEntity>("where order_code in (select order_code from data_plan where pline_code=@0)", _pline);
            //List<UserEntity> allusers = UserFactory.GetAll();
            //GridViewDataComboBoxColumn create_user = ASPxGridView1.Columns["CREATE_USER"] as GridViewDataComboBoxColumn;
            //create_user.PropertiesComboBox.DataSource = allusers;
            //create_user.PropertiesComboBox.ValueField = "USER_ID";
            //create_user.PropertiesComboBox.TextField = "USER_NAME";
            DataTable dt = new DataTable();

            dt.Columns.Add("ITEM_CODE");
            dt.Columns.Add("ITEM_NAME");
            dt.Columns.Add("ITEM_QTY");
            dt.Columns.Add("CREATE_USER");
            dt.Columns.Add("ORDER_CODE");
            dt.Columns.Add("STORE_CODE_1");
            dt.Columns.Add("STORE_CODE_2");
            dt.Columns.Add("WORK_TIME");
            dt.Columns.Add("PLAN_SO");
            dt.Columns.Add("PROJECT_CODE");
            for (int i = 0; i < returns.Count; i++)
            {
                string     _order = returns[i].ORDER_CODE.ToString();
                PlanEntity entity = PlanFactory.GetByOrder(_order);
                //dt.Rows.Add(returns[i].ITEM_CODE.ToString(),returns[i].ITEM_NAME.ToString(),returns[i].ITEM_QTY.ToString(),returns[i].CREATE_USER.ToString(),returns[i].ORDER_CODE.ToString(),returns[i].STORE_CODE_1.ToString(),returns[i].STORE_CODE_2.ToString(),returns[i].WORK_TIME.ToString(),entity.PLAN_SO.ToString(),entity.PROJECT_CODE.ToString());
            }
            Report_Exp1600 re = new Report_Exp1600(dt);

            ReportViewer1.Report = re;
            //    ASPxGridView1.DataSource = returns;
            //ASPxGridView1.DataBind();
        }
예제 #28
0
파일: PlanSnDal.cs 프로젝트: radtek/DCEC
        public List <PlanSnEntity> GetByOrderCode(string orderCode)
        {
            PlanEntity ent = PlanFactory.GetByKey(orderCode);

            if (ent != null)
            {
                string SQL = "WHERE ORDER_CODE=@0 AND COMPANY_CODE=@1 ORDER BY SN";
                return(db.Fetch <PlanSnEntity>(SQL, orderCode, LoginInfo.CompanyInfo.COMPANY_CODE));
            }
            return(null);
        }
예제 #29
0
        private void BuildPlanScriptReference(PlanEntity plan)
        {
            PlanScriptDA.Delete(plan.ID);

            foreach (var script in plan.ScriptList)
            {
                PlanScriptDA.Create(new PlanScriptEntity()
                {
                    PlanID = plan.ID, CaseID = script.CaseID
                });
            }
        }
예제 #30
0
        public PlanEntity GetPlanByPlanID(string planID)
        {
            PlanEntity plan = PlanDA.Retrieve(planID);

            if (plan == null)
            {
                throw new AppException(String.Format("plan '{0}' was not found.", planID));
            }
            plan.ScriptList = ScriptBL.GetScriptsByPlanID(plan.ID).ToList();

            return(plan);
        }