public static bool 更新供应商抽选历史记录(供应商抽选记录 p)
 {
     return Mongo.更新(p);
 }
        private void btn_commit_Click(object sender, EventArgs e)
        {
            #region 验证填写信息是否完善
            if (string.IsNullOrWhiteSpace(text_project_name.Text))
            {
                MessageBox.Show("请填写项目名称!");
                text_project_name.Focus();
                return;
            }
            if (string.IsNullOrWhiteSpace(text_project_number.Text))
            {
                MessageBox.Show("请填写项目编号!");
                text_project_number.Focus();
                return;
            }
            if (string.IsNullOrWhiteSpace(date_bid_time.Text))
            {
                MessageBox.Show("请填写评标时间!");
                date_bid_time.Focus();
                return;
            }

            Regex reg = new Regex(@"^[0-9]\d*$");
            if (string.IsNullOrWhiteSpace(text_totalnum_extract.Text))
            {
                MessageBox.Show("预定抽选个数必须填写!");
                text_totalnum_extract.Focus();
                return;
            }
            else if (!reg.IsMatch(text_totalnum_extract.Text))
            {
                MessageBox.Show("请输入正确的抽选个数!");
                text_totalnum_extract.Focus();
                return;
            }
            else if (text_totalnum_extract.Text == "0")
            {
                MessageBox.Show("预定抽选个数必须大于0!");
                text_totalnum_extract.Focus();
                return;
            }
            if (string.IsNullOrWhiteSpace(text_operator_name.Text))
            {
                MessageBox.Show("请填写操作人姓名!");
                text_operator_name.Focus();
                return;
            }
            if (string.IsNullOrWhiteSpace(text_operator_tel.Text))
            {
                MessageBox.Show("请填写操作人电话!");
                text_operator_tel.Focus();
                return;
            }
            if (dtg_condition_confirm.RowCount <= 0)
            {
                MessageBox.Show("请至少选择一个条件后再提交!");
                return;
            }

            var row_count = dtg_condition_confirm.RowCount;
            var temp_count = 0;
            for (int i = 0; i < row_count; i++)
            {
                var d = int.Parse(dtg_condition_confirm.Rows[i].Cells[2].Value.ToString());
                temp_count += d;
            }
            if (int.Parse(text_totalnum_extract.Text) != temp_count)
            {
                MessageBox.Show("各条件抽取个数总和与预定抽选总数不一致,请检查后再提交数据!");
                return;
            }
            #endregion

            DialogResult dr = MessageBox.Show("确定提交本次抽选申请?", "提示", MessageBoxButtons.YesNo);
            if (dr == DialogResult.Yes)
            {
                #region 添加抽选申请
                供应商抽选记录 model = new 供应商抽选记录
                {
                    申请时间 = DateTime.Now,
                    项目编号 = text_project_name.Text,
                    项目名称 = text_project_number.Text,
                    评标时间 = Convert.ToDateTime(date_bid_time.Text),
                    总计预定抽选供应商数 = int.Parse(text_totalnum_extract.Text),
                    操作人姓名 = text_operator_name.Text,
                    操作人电话 = text_operator_tel.Text
                };
                model.经办人.用户ID = CommonHelper.currentUser.Id;
                model.申请抽选状态 = 申请抽选状态.已提交待批准;

                //屏蔽列表
                var outlist = dtg_avoid_expert.Tag;
                var l = new List<用户链接<供应商>>();
                if (outlist!=null)
                {
                    var pk = outlist.ToString();
                    foreach (var item in pk.Split(new[] { "|" }, StringSplitOptions.RemoveEmptyEntries))
                    {
                        var z = new 用户链接<供应商>
                        {
                            用户ID = long.Parse(item)
                        };
                        l.Add(z);
                    }
                }
                model.回避供应商列表 = l;

                int count = dtg_condition_confirm.RowCount;
                var condition = new List<供应商抽选记录._供应商抽选条件>();
                for (int i = 0; i < count; i++)
                {
                    var t_condition = new 供应商抽选记录._供应商抽选条件();
                    t_condition.需要供应商数量 = int.Parse(dtg_condition_confirm.Rows[i].Cells[2].Value.ToString());

                    //可提供物质类别
                    var tempparmlist = dtg_condition_confirm.Rows[i].Cells[0].Tag.ToString();
                    if (!string.IsNullOrWhiteSpace(tempparmlist))
                    {
                        var t = new 供应商抽选记录._供应商抽选条件._提供产品类别();
                        var 可评标物质类别 = tempparmlist.Split(new[] { "#" }, StringSplitOptions.RemoveEmptyEntries);
                        if (可评标物质类别[1] == "1")
                        {
                            t.二级分类可用供应商不足返回一级分类 = true;
                        }
                        else
                        {
                            t.二级分类可用供应商不足返回一级分类 = false;
                        }

                        var p = 可评标物质类别[0].Split(new[] { "*" }, StringSplitOptions.RemoveEmptyEntries);
                        t.一级分类 = p[0];
                        t.二级分类 = new List<string>();
                        for (var j = 1; j < p.Length; j++)
                        {
                            t.二级分类.Add(p[j]);
                        }

                        t_condition.可提供产品类别.Add(t);
                    }
                    //抽选描述
                    t_condition.描述 = dtg_condition_confirm.Rows[i].Cells[4].Value.ToString();
                    //所在地域
                    var place = new _地域
                    {
                        省份 = dtg_condition_confirm.Rows[i].Cells[5].Value.ToString(),
                        城市 = dtg_condition_confirm.Rows[i].Cells[6].Value.ToString(),
                        区县 = dtg_condition_confirm.Rows[i].Cells[7].Value.ToString()
                    };
                    t_condition.所在地区.Add(place);
                    condition.Add(t_condition);
                }
                model.供应商抽选条件 = condition;
                供应商抽选管理.添加供应商抽选历史(model);
                
                //站内消息
                //站内消息 Msg = new 站内消息();
                //对话消息 Talk = new 对话消息();

                //Msg.重要程度 = 重要程度.特别重要;
                //Msg.消息类型 = 消息类型.普通;
                //var u_id = CommonHelper.currentUser.Id;

                //Msg.发起者.用户ID = u_id;
                //Talk.发言人.用户ID = u_id;
                //站内消息管理.添加站内消息(Msg, u_id, 10002);
                //Talk.消息主体.标题 = "待审核抽取供应商";
                //Talk.消息主体.内容 = "有一条待审核的申请抽取供应商未处理,<a style='color:red;text-decoration:underline;' href='/专家抽选/Expert_ApplayAuditList'>点击这里进行审核</a>";
                //对话消息管理.添加对话消息(Talk, Msg);
                MessageBox.Show("提交成功!");
                #endregion

                Program.PendApprovalGysform = new PendApprovalGys();
                FormHelper.changeFormToIndex(this, Program.PendApprovalGysform);
            }
        }
 public static bool 添加供应商抽选历史(供应商抽选记录 record)
 {
     return Mongo.添加(record);
 }