Exemple #1
0
        /// <summary>
        /// 领取物料
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnMateriaCollection_Click(object sender, EventArgs e)
        {
            if (this.OrderGridView.SelectedRows.Count == 0)
            {
                MessageBox.Show("请选中一个订单,再进行物料领取!");
                return;
            }


            if (this.txtboxMaterialNumber.Text.Length == 0)
            {
                MessageBox.Show("请输入领取物料数量,别瞎几把乱搞!!");
                return;
            }
            if (!RegexHelper.regExpNumber.IsMatch(this.txtboxMaterialNumber.Text))
            {
                MessageBox.Show("物料数量是数字,长点心 ok?");
                return;
            }
            var number = Convert.ToInt32(this.txtboxMaterialNumber.Text.Trim());

            using (_dbcontext = new FlowManageSystemEntities())
            {
                collectionRepository = new CollectionRepository(_dbcontext);

                var order = (this.OrderGridView.CurrentRow.DataBoundItem as OrderPlacing);
                //获取Id
                var id          = order.OrderId;
                var onlineCount = order.OnLineQuantity;

                //当前已经领取数量
                var hasCount = Convert.ToInt32(this.lbMaterialCount.Text);

                //现在领取后的数量大于 订单计划做的数量 不允许
                if (onlineCount < (hasCount + number))
                {
                    MessageBox.Show("领取物料后的数量 怎么能大于下单数量呢?请核对");
                    return;
                }

                try
                {
                    collectionRepository.AddCollection(id, number);
                    collectionRepository.SaveChanges();
                    this.lbMaterialCount.Text = (hasCount + number).ToString();
                    txtboxMaterialNumber.Text = "";
                }
                catch (Exception ex)
                {
                    MessageBox.Show("异常:" + ex.Message);
                }
            }
        }
Exemple #2
0
        private void textBox_PlanNo_Last_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                var planId = this.textBox_PlanNo_Last.Text.Trim();

                using (_dbcontext = new FlowManageSystemEntities())
                {
                    orderRepositoy = new OrderRepository(_dbcontext);

                    if (!orderRepositoy.PlanNoExist(planId))
                    {
                        MessageBox.Show("计划单号不存在,请输入正确的单号!!!");
                        return;
                    }

                    var order  = orderRepositoy.getOrderByPlanNo(planId);
                    var snMin  = order.SnMin;
                    var snMax  = order.SnMax;
                    var needDo = order.OnLineQuantity;

                    //根据SN范围查询已经做了测试的
                    using (_opwayDbContext = new ATSDATABASEEntities())
                    {
                        opwayDataRepository = new OpwayDataRepository(_opwayDbContext);


                        //拿到已做的数量更新界面
                        var count = 0;
                        if (this.cBox_LastUndo.Checked == true)
                        {
                            var listFinishedSn = opwayDataRepository.GetLastTestFinishedSN(snMin, snMax);
                            var AllList        = SnHelper.GetSnlist(snMin, needDo);
                            count = listFinishedSn.Count();
                            //更新界面未做的SN
                            this.ltBox_LastUndo.DataSource = AllList.Except(listFinishedSn).ToList();
                        }
                        else
                        {
                            count = opwayDataRepository.GetLastTestCount(snMin, snMax);
                        }
                        this.lbLastTestFinished.Text = count.ToString();
                    }
                }
            }
        }
Exemple #3
0
        /// <summary>
        /// 从数据库获取分页的数据
        /// </summary>
        /// <param name="pageIndex"> 哪一页的数据</param>
        /// <returns></returns>
        private BindingList <OrderPlacing> FillData(int pageIndex)
        {
            using (_dbcontext = new FlowManageSystemEntities())
            {
                orderRepositoy = new OrderRepository(_dbcontext);

                //获得记录总数
                var count = orderRepositoy.GetOrderCount();

                //获取分页数量
                PageCount = count % PageSize == 0 ? count / PageSize : count / PageSize + 1;

                this.lblInfo.Text = string.Format("第{0}页/共{1}页 {2}条", CurrentPage, PageCount, count);

                return(orderRepositoy.GetOrders(pageIndex, PageSize));
            }
        }
Exemple #4
0
        /// <summary>
        /// 选择不同的订单时  获取已经领取的物料数
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OrderGridView_SelectionChanged(object sender, EventArgs e)
        {
            var id = (this.OrderGridView.CurrentRow.DataBoundItem as OrderPlacing).OrderId;

            //通过Id 获取已经领料的数量
            using (_dbcontext = new FlowManageSystemEntities())
            {
                collectionRepository = new CollectionRepository(_dbcontext);

                if (collectionRepository.IsOrderCollectionExist(id))
                {
                    this.lbMaterialCount.Text = collectionRepository.GetCurrentOrderCollectionInfo(id).ToString();
                }
                else
                {
                    this.lbMaterialCount.Text = "0";
                }
            }
        }
Exemple #5
0
        /// <summary>
        /// 删除订单
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnDeleteOeder_Click(object sender, EventArgs e)
        {
            if (this.OrderGridView.SelectedRows.Count == 0)
            {
                MessageBox.Show("请选中一个订单,再进行订单删除!");
                return;
            }



            //获得订单Id
            var order  = (this.OrderGridView.CurrentRow.DataBoundItem as OrderPlacing);
            var id     = order.OrderId;
            var planNo = order.PlanNo;



            DialogResult dialogResult = MessageBox.Show(" 此操作非常危险  您正在删除订单:" + planNo + " 该订单关联的盒号 和其他数据全部删除?确定么", "谨慎操作", MessageBoxButtons.OKCancel);

            if (dialogResult == DialogResult.Cancel)
            {
                return;
            }

            using (_dbcontext = new FlowManageSystemEntities())
            {
                orderRepositoy = new OrderRepository(_dbcontext);

                try
                {
                    orderRepositoy.DelOrder(id);

                    orderRepositoy.SaveChanges();

                    dgvBindingSource.RemoveCurrent();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("异常:" + ex.Message);
                }
            }
        }
Exemple #6
0
        private void textBox_searchPlanOrder_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                var planId = this.textBox_searchPlanOrder.Text.Trim();

                using (var dbContext = new FlowManageSystemEntities())
                {
                    orderRepositoy = new OrderRepository(dbContext);

                    collectionRepository = new CollectionRepository(dbContext);

                    assembleRepository = new AssembleRepository(dbContext);

                    if (!orderRepositoy.PlanNoExist(planId))
                    {
                        MessageBox.Show("计划单号不存在,请输入正确的单号!!!");
                        return;
                    }

                    //更新界面--订单相关信息
                    var order   = orderRepositoy.getOrderByPlanNo(planId);
                    var orderId = order.OrderId;

                    this.lbOrderDate.Text       = order.OrderDate.ToShortDateString();
                    this.lbPlanOnlineDate.Text  = order.PlannedLaunchDate.ToShortDateString();
                    this.lbDemandDate.Text      = order.CustomDemandDate.ToShortDateString();
                    this.lbPlanStorageDate.Text = order.PlanStorageDate.ToShortDateString();

                    //更新界面--领料相关信息
                    if (collectionRepository.IsOrderCollectionExist(orderId))
                    {
                        var collectionInfo = collectionRepository.GetCurrentOrderCollectionInfo(orderId);

                        this.lbCollectionCount.Text = collectionInfo.Item1.ToString();
                        this.lbCollectionTime.Text  = collectionInfo.Item2.ToString();
                    }
                    else
                    {
                        this.lbCollectionCount.Text = "未领取物料";
                        this.lbCollectionTime.Text  = "";
                    }

                    //更新界面--组装相关信息
                    if (assembleRepository.IsOrderAssembleExist(orderId))
                    {
                        var collectionInfo = assembleRepository.GetCurrentOrderAssembleInfo(orderId);
                        this.lbAssembleCount.Text = collectionInfo.Item1.ToString();
                        this.lbAssembleTime.Text  = collectionInfo.Item2.ToString();
                    }
                    else
                    {
                        this.lbCollectionCount.Text = "未开始组装";
                        this.lbCollectionTime.Text  = "";
                    }

                    //初调相关信息  //终测相关信息
                    using (_opwayDbContext = new ATSDATABASEEntities())
                    {
                        opwayDataRepository = new OpwayDataRepository(_opwayDbContext);

                        var snMin = order.SnMin;
                        var snMax = order.SnMax;

                        this.lbFirstTestCount.Text = opwayDataRepository.GetFirstTestCount(snMin, snMax).ToString();

                        this.lbFInishedTestCount.Text = opwayDataRepository.GetLastTestCount(snMin, snMax).ToString();
                    }
                }
            }
        }
Exemple #7
0
        /// <summary>
        /// 生成订单和 对应的盒号
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnOrder_Click(object sender, EventArgs e)
        {
            try
            {
                using (_dbcontext = new FlowManageSystemEntities())
                {
                    orderRepositoy     = new OrderRepository(_dbcontext);
                    orderBoxRepository = new OrderBoxRepository(_dbcontext);

                    OrderPlacing orderPlacing = new OrderPlacing()
                    {
                        OrderDate            = Convert.ToDateTime(this.OrderDateTimePic.Text),
                        Type                 = this.TypeTxtBox.Text,
                        PlanNo               = this.PlanNoTxtBox.Text,
                        FinishedProductNo    = this.FinishedProductNocBox.Text,
                        ProductTypeNo        = this.ProductTypecBox.Text,
                        OnLineQuantity       = Convert.ToInt32(this.OnlineQuantityTxtBox.Text),
                        SnMin                = SnMinTxtBox.Text,
                        SnMax                = SnMinTxtBox.Text,
                        LabelingRequirements = this.LableRequireTxtBox.Text,
                        TestReport           = this.TestReportTxtBox.Text,
                        CodingRequirements   = this.CodingRequireTxtBox.Text,
                        PackingRequirement   = this.PackingRequireTxtBox.Text,
                        SpecialRequirement   = this.SpecialRequireTxtBox.Text,
                        TestSoftConfigFile   = this.TestSoftConfigFIleTxtBox.Text,
                        Remark               = this.RemarkTxtBox.Text,
                        CustomDemandDate     = Convert.ToDateTime(this.CustonRequireTimePic.Text),
                        PlannedLaunchDate    = Convert.ToDateTime(this.PlanOnlineTimePic.Text),
                        PlanStorageDate      = Convert.ToDateTime(this.PlanStorageTimePic.Text),
                        DaysOfProduction     = Convert.ToByte(this.ProductDaysTxtBox.Text),
                        OrderCreateTime      = DateTime.Now
                    };



                    //注意此处一对多关联数据的保存  设置关联
                    IEnumerable <OrderBox> orderBoxes = SnHelper.GetListboxNumber(this.SnMinTxtBox.Text, Convert.ToInt32(this.OnlineQuantityTxtBox.Text)).Select(item => new OrderBox()
                    {
                        //设置导航属性
                        OrderPlacing = orderPlacing,
                        //设置外键Id
                        OrderId = orderPlacing.OrderId,
                        //盒号
                        BoxNumber = item,
                        //新建时间
                        OrderBoxCreateTime = DateTime.Now
                    });

                    //添加所有 多的 一端数据
                    orderBoxRepository.AddOrderAllBoxes(orderBoxes);

                    //添加 一的  一端数据  //下单
                    orderRepositoy.AddOrder(orderPlacing);

                    //一对多的数据一起保存  两个仓储公用一个dbcontext  可以防止添加部分失败    会以一个事务的形式保存
                    _dbcontext.SaveChanges();

                    MessageBox.Show("下单成功!");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("下单失败,请检查数据" + ex.Message);
            }
        }
Exemple #8
0
        /// <summary>
        /// 订单入库
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void textBox_Storage_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                if (!RegexHelper.regExpNumber.IsMatch(this.textBox_StorageNumber.Text.Trim()))
                {
                    MessageBox.Show("入库数量应该是数字");
                    return;
                }
                //从界面获取计划单号   和 入库数量
                var planId       = this.textBox_Storage.Text.Trim();
                var StorageCount = Convert.ToInt32(this.textBox_StorageNumber.Text);

                using (_dbcontext = new FlowManageSystemEntities())
                {
                    orderRepositoy = new OrderRepository(_dbcontext);

                    //判断计划单号是否存在
                    if (!orderRepositoy.PlanNoExist(planId))
                    {
                        MessageBox.Show("当前计划单号在数据库不存在,请检查!");
                        return;
                    }

                    //获取当前订单生产模块个数
                    var order   = orderRepositoy.getOrderByPlanNo(planId);
                    var count   = order.OnLineQuantity;
                    var dbCount = order.OrderStorageCount;

                    //入库数量不能大于订单要求做的数量
                    if (count < StorageCount)
                    {
                        MessageBox.Show("当前订单数量: " + count + " 入库数量:" + StorageCount + "请检查错误!");
                        return;
                    }


                    //不允许重复入库
                    if (dbCount != null)
                    {
                        MessageBox.Show("当前订单已入库!!!入库数量:" + dbCount);
                        return;
                    }

                    //获取实际测试个数
                    using (_opwayDbContext = new ATSDATABASEEntities())
                    {
                        var snMin = order.SnMin;
                        var snMax = order.SnMax;

                        opwayDataRepository = new OpwayDataRepository(_opwayDbContext);
                        if (opwayDataRepository.GetLastTestCount(snMin, snMax) < StorageCount)
                        {
                            MessageBox.Show("入库数量不能大于终测通过的数量!!!");
                            return;
                        }
                    }


                    //检查通过  进行入库
                    try
                    {
                        orderRepositoy.OrderStorage(planId, StorageCount);
                        orderRepositoy.SaveChanges();

                        MessageBox.Show("入库成功!");
                        this.textBox_Storage.Text       = "";
                        this.textBox_StorageNumber.Text = "";
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("发生异常:" + ex.Message);
                    }
                }
            }
        }
Exemple #9
0
        /// <summary>
        /// 当前盒完成
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void textBox_BoxNumber_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                if (!RegexHelper.regExpNumber.IsMatch(this.textBox_DoNumber.Text))
                {
                    MessageBox.Show("完成的数量应该是数字");
                    return;
                }

                byte doNumber = Convert.ToByte(this.textBox_DoNumber.Text);

                DialogResult dialogResult = MessageBox.Show("当前盒完成数量:" + doNumber, "询问", MessageBoxButtons.OKCancel);

                if (dialogResult == DialogResult.Cancel)
                {
                    return;
                }

                using (_dbcontext = new FlowManageSystemEntities())
                {
                    orderBoxRepository = new OrderBoxRepository(_dbcontext);

                    var boxNumber = this.textBox_BoxNumber.Text.Trim();

                    //通过盒号找到订单号
                    var id = orderBoxRepository.GetOrderId(boxNumber);

                    List <string> boxNumbersNeedFinished = null;

                    //根据订单号 找到需要完成的所有盒号
                    if (id != 0)
                    {
                        boxNumbersNeedFinished = orderBoxRepository.GetOrderIdBoxes(id);
                    }
                    else                      //不存在当前盒号 直接退出
                    {
                        MessageBox.Show("不存在的盒号,请联系下单人员,检查是否下单错误!");
                        return;
                    }

                    //根据id找到订单记录
                    orderRepositoy = new OrderRepository(_dbcontext);

                    //设置界面显示当前计划单号
                    var order = orderRepositoy.getOrderByOrderId(id);
                    this.lbPlanNo.Text = order.PlanNo;

                    assembleRepository = new AssembleRepository(_dbcontext);
                    //设置界面已组装好的数量
                    this.lbDoNo.Text = assembleRepository.GetAssembleCount(id).ToString();

                    //获取已完成的盒号
                    var hasFinished = assembleRepository.GetAssembleFinishedBoxNo(id);

                    //在组装完成前 判断是否重复扫
                    if (hasFinished.Contains(this.textBox_BoxNumber.Text.Trim()))
                    {
                        MessageBox.Show("此盒已完成,勿重复扫!");
                        this.textBox_BoxNumber.Select();
                        return;
                    }
                    assembleRepository.assembleOneBox(id, boxNumber, doNumber);
                    assembleRepository.SaveChanges();

                    //获取已完成的盒号
                    hasFinished = assembleRepository.GetAssembleFinishedBoxNo(id);
                    //设置界面ListBox绑定
                    unFinishedBoxes.Clear();
                    boxNumbersNeedFinished.Except(hasFinished).ToList().ForEach(o => unFinishedBoxes.Add(o));
                }
            }
        }