Example #1
0
        /// <summary>
        /// 人员采集
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void buttonX3_Click_1(object sender, EventArgs e)
        {
            if (!checkValid)
            {
                return;
            }

            string activity = ddlActivity.SelectedValue.ToString().Split(',')[0];
            string type     = string.Empty;

            try
            {
                type = ddlType.SelectedValue.ToString();
            }
            catch
            {
                type = "0";
            }

            if (activity == "0")
            {
                MessageBox.Show("请选择一个活动!");
            }
            else if (type == "0")
            {
                MessageBox.Show("请选择一个工种!");
            }
            else if (string.IsNullOrEmpty(identity))
            {
                MessageBox.Show("没有检测到打卡人!");
            }
            else
            {
                List <SqlParameter> list = new List <SqlParameter>();
                list.Add(new SqlParameter("@identity", identity));

                //获取小时工信息
                DataTable userInfo = SqlDbHelper.ExecuteDataTable("SELECT f_userid,F_RealName,F_Gender FROM LR_Base_TempUser WHERE F_Identity=@identity", list.ToArray());
                int       num      = 0;
                string    userID   = string.Empty;

                if (userInfo != null && userInfo.Rows.Count > 0)
                {
                    list = new List <SqlParameter>();
                    list.Add(new SqlParameter("@orderID", activity));
                    list.Add(new SqlParameter("@userID", userInfo.Rows[0]["f_userid"].ToString()));
                    userID = userInfo.Rows[0]["f_userid"].ToString();
                    num    = Convert.ToInt32(SqlDbHelper.ExecuteScalar("SELECT COUNT(*) AS num FROM F_Base_TempWorkOrderUserDetail WHERE F_TempWorkOrderId=@orderID AND f_userID=@userID", list.ToArray()).ToString());
                }
                else
                {
                    userID = Guid.NewGuid().ToString();
                    List <SqlParameter> usersParameter = new List <SqlParameter>();
                    usersParameter.Add(new SqlParameter("@F_RealName", label2.Text));
                    usersParameter.Add(new SqlParameter("@F_Gender", label3.Text == "男" ? "1" : "2"));
                    usersParameter.Add(new SqlParameter("@F_Mobile", txtPhone.Text));
                    usersParameter.Add(new SqlParameter("@f_userid", userID));
                    usersParameter.Add(new SqlParameter("@F_Identity", identity));
                    SqlDbHelper.ExecuteNonQuery("INSERT LR_Base_TempUser(f_userid,F_RealName,F_Gender,f_createtime,F_Mobile,F_Identity) VALUES(@f_userid,@F_RealName,@F_Gender,GETDATE(),@F_Mobile,@F_Identity)", usersParameter.ToArray());

                    list = new List <SqlParameter>();
                    list.Add(new SqlParameter("@orderID", activity));
                    list.Add(new SqlParameter("@userID", userID));
                    num = Convert.ToInt32(SqlDbHelper.ExecuteScalar("SELECT COUNT(*) AS num FROM F_Base_TempWorkOrderUserDetail WHERE F_TempWorkOrderId=@orderID AND f_userID=@userID", list.ToArray()).ToString());
                }

                if (num > 0)
                {
                    MessageBox.Show("人员在活动里已存在!");
                }
                else
                {
                    list = new List <SqlParameter>();
                    list.Add(new SqlParameter("@orderID", activity));
                    list.Add(new SqlParameter("@userID", userID));
                    list.Add(new SqlParameter("@f_id", Guid.NewGuid().ToString()));
                    list.Add(new SqlParameter("@f_employerid", ddlActivity.SelectedValue.ToString().Split(',')[1]));
                    list.Add(new SqlParameter("@f_categoryid", type));

                    //添加小时工与活动对应关系
                    SqlDbHelper.ExecuteNonQuery("INSERT F_Base_TempWorkOrderUserDetail(f_id,F_TempWorkOrderId,f_userid,f_employerid,f_categoryid,F_WorkSubstitute) VALUES(@f_id,@orderID,@userID,@f_employerid,@f_categoryid,0)", list.ToArray());

                    //--------------------------往打卡记录表中初始经小时工打卡记录------------------------------
                    list = new List <SqlParameter>();
                    list.Add(new SqlParameter("@orderID", activity));

                    //获取活动的开始和结束时间
                    DataTable dt        = SqlDbHelper.ExecuteDataTable("SELECT * FROM F_Base_TempWorkOrder WHERE f_orderid=@orderID", list.ToArray());
                    DateTime  startTime = DateTime.Parse(dt.Rows[0]["F_StartTime"].ToString());
                    DateTime  endTime   = DateTime.Parse(dt.Rows[0]["F_EndTime"].ToString());

                    for (DateTime t = startTime; t <= endTime; t = t.AddDays(1))
                    {
                        list = new List <SqlParameter>();
                        list.Add(new SqlParameter("@orderID", activity));
                        list.Add(new SqlParameter("@RecordId", Guid.NewGuid().ToString()));
                        list.Add(new SqlParameter("@Identity", identity));
                        list.Add(new SqlParameter("@CreateTime", t));
                        list.Add(new SqlParameter("@RealName", label2.Text.Trim()));
                        list.Add(new SqlParameter("@Gender", label3.Text.Trim() == "男" ? "1" : "2"));
                        list.Add(new SqlParameter("@RecordDate", t.ToString("yyyy-MM-dd")));

                        //自动给临时工往打卡记录里初始化打卡记录
                        int a = SqlDbHelper.ExecuteNonQuery("INSERT LR_Base_CardRecord(F_RecordId,F_Identity,F_CreateTime,F_RealName,F_Gender,F_OrderId,F_RecordDate) VALUES (@RecordId,@Identity,@CreateTime,@RealName,@Gender,@orderID,@RecordDate)", list.ToArray());
                    }
                }

                identity = string.Empty;
            }
        }