Beispiel #1
0
        protected void SaveChoose()
        {
            string strId = ViewState["ExamID"].ToString();

            string strEndId = "";

            //for (int i = 0; i < this.gvChoose.Rows.Count; i++)
            //{
            //    string strEmId = ((Label)this.gvChoose.Rows[i].FindControl("LabelEmployeeID")).Text;

            //    if (strEndId.Length == 0)
            //    {
            //        strEndId += strEmId;
            //    }
            //    else
            //    {
            //        if (strEndId == "0")
            //        {
            //            strEndId = strEmId;
            //        }
            //        else
            //        {
            //            strEndId += "," + strEmId;
            //        }
            //    }
            //}
            //if (ViewState["HasExamId"].ToString() != "" && strEndId != "")
            //{
            //    strEndId = ViewState["HasExamId"].ToString() + "," + strEndId;
            //}
            //else
            //{
            //    strEndId = "";
            //}

            //if (strEndId == "")
            //{
            //    strEndId = "0";
            //}

            OracleAccess db = new OracleAccess();
            //查询考试在当前站段考试的考生信息
            string strSql = "select a.* from Random_Exam_Arrange_Detail a "
                            + " inner join Computer_Room b on a.Computer_Room_ID=b.Computer_Room_ID"
                            + " where Random_Exam_ID=" + strId;
            DataSet ds = db.RunSqlDataSet(strSql);

            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                if (strEndId.Length == 0)
                {
                    strEndId += dr["User_Ids"].ToString();
                }
                else
                {
                    strEndId += "," + dr["User_Ids"];
                }
            }


            //新增
            if (ViewState["UpdateMode"] != null && ViewState["UpdateMode"].ToString() == "0")
            {
                RandomExamArrange examArrange = new RandomExamArrange();
                examArrange.RandomExamId = int.Parse(strId);
                examArrange.UserIds      = strEndId;
                examArrange.Memo         = "";
                RandomExamArrangeBLL examArrangeBLL = new RandomExamArrangeBLL();
                if (!PrjPub.IsServerCenter)
                {
                    examArrangeBLL.AddRandomExamArrangeToServer(examArrange);
                }
                else
                {
                    examArrangeBLL.AddRandomExamArrange(examArrange);
                }
                ViewState["UpdateMode"] = 1;
                SessionSet.PageMessage  = "保存成功!";
                return;
            }

            //修改
            if (ViewState["UpdateMode"] != null && ViewState["UpdateMode"].ToString() == "1")
            {
                RandomExamArrangeBLL examArrangeBLL = new RandomExamArrangeBLL();
                if (!PrjPub.IsServerCenter)
                {
                    examArrangeBLL.UpdateRandomExamArrangeToServer(int.Parse(strId), strEndId);
                }
                else
                {
                    examArrangeBLL.UpdateRandomExamArrange(int.Parse(strId), strEndId);
                }
                SessionSet.PageMessage = "保存成功!";
                return;
            }
        }
        private void UploadPaper()
        {
            // 根据 ProgressBar.htm 显示进度条界面
            string       templateFileName = Path.Combine(Server.MapPath("."), "ProgressBar.htm");
            StreamReader reader           = new StreamReader(@templateFileName, System.Text.Encoding.GetEncoding("gb2312"));
            string       html             = reader.ReadToEnd();

            reader.Close();
            Response.Write(html);
            Response.Flush();
            System.Threading.Thread.Sleep(200);

            string strId = Request.QueryString.Get("RandomExamID");
            //获取当前考试的生成试卷的状态和次数
            RandomExamBLL objBll = new RandomExamBLL();

            RailExam.Model.RandomExam obj = objBll.GetExam(Convert.ToInt32(strId));

            string       typeid = Request.QueryString.Get("typeid");
            string       strSql, strKey = "0";
            OracleAccess db = new OracleAccess();

            int orgId = Convert.ToInt32(ConfigurationManager.AppSettings["StationID"]);

            try
            {
                RandomExamResultBLL objResultBll = new RandomExamResultBLL();

                strSql = "select SYNCHRONIZE_LOG_SEQ.NextVal@link_sf from dual";
                DataRow dr = db.RunSqlDataSet(strSql).Tables[0].Rows[0];
                strKey = dr[0].ToString();

                strSql = "insert into  SYNCHRONIZE_LOG@link_sf values(" + strKey + ","
                         + orgId + ",6,sysdate,null,1," + PrjPub.ServerNo + ")";
                db.ExecuteNonQuery(strSql);

                strSql =
                    @"select Examinee_ID,Random_Exam_Result_ID from Random_Exam_Result@link_sf where Random_Exam_ID=" + obj.RandomExamId + @"
                                      and org_id=" + PrjPub.StationID + @" and examinee_id in (select employee_Id from Random_Exam_Result_Detail a
                                      inner join Computer_Room b on a.Computer_Room_ID=b.Computer_Room_ID
                                      inner join Computer_Server c on b.Computer_Server_ID=c.Computer_Server_ID
                                      where to_number(c.Computer_Server_No)=" + PrjPub.ServerNo + @" and a.Random_Exam_ID=" + obj.RandomExamId + ")";
                DataSet dsResult = db.RunSqlDataSet(strSql);


                IList <RandomExamResult> randomExamResults = objResultBll.GetRandomExamResultByExamID(obj.RandomExamId);
                int count = randomExamResults.Count + dsResult.Tables[0].Rows.Count + 1;
                System.Threading.Thread.Sleep(10);
                string jsBlock = "<script>SetPorgressBar('正在上传考试答卷,请等待......','" + ((1 * 100) / ((double)count)).ToString("0.00") + "'); </script>";
                Response.Write(jsBlock);
                Response.Flush();


                string    strUrl = "ftp://" + PrjPub.ServerIP + "/Photo";
                Uri       directoryToDownload = new Uri(strUrl);
                FtpClient ftpSession          = FtpClient.GetFtpClient(directoryToDownload.Host);

                if (ftpSession == null)
                {
                    Pub.AddFtp();
                    ftpSession = FtpClient.GetFtpClient(directoryToDownload.Host);
                }

                ftpSession.MakeDirectory("/Photo/" + obj.RandomExamId);

                int progressNum = 2;

                foreach (DataRow drResult in dsResult.Tables[0].Rows)
                {
                    ftpSession.DeleteFile(new Uri(strUrl + "/" + obj.RandomExamId + "/" + drResult["Examinee_ID"] + "_" + drResult["Random_Exam_Result_ID"] + "_00.jpg"));
                    ftpSession.DeleteFile(new Uri(strUrl + "/" + obj.RandomExamId + "/" + drResult["Examinee_ID"] + "_" + drResult["Random_Exam_Result_ID"] + "_01.jpg"));
                    ftpSession.DeleteFile(new Uri(strUrl + "/" + obj.RandomExamId + "/" + drResult["Examinee_ID"] + "_" + drResult["Random_Exam_Result_ID"] + "_02.jpg"));
                    ftpSession.DeleteFile(new Uri(strUrl + "/" + obj.RandomExamId + "/" + drResult["Examinee_ID"] + "_" + drResult["Random_Exam_Result_ID"] + "_03.jpg"));

                    System.Threading.Thread.Sleep(10);
                    jsBlock = "<script>SetPorgressBar('正在上传考试答卷,请等待......','" + ((progressNum * 100) / ((double)count)).ToString("0.00") + "'); </script>";
                    Response.Write(jsBlock);
                    Response.Flush();

                    progressNum++;
                }

                //先删除路局的考试成绩和答卷
                objResultBll.DeleteRandomExamResultServer(obj.RandomExamId);

                foreach (RandomExamResult randomExamResult in randomExamResults)
                {
                    if (randomExamResult.IsTemp == 1)
                    {
                        //从中间提交表到正式表
                        objResultBll.RemoveResultAnswerTemp(randomExamResult.RandomExamResultId);
                    }

                    //获取路局的主键ID
                    strSql = "select Random_Exam_Result_Seq.Nextval@link_sf from dual";
                    DataRow drSeq    = db.RunSqlDataSet(strSql).Tables[0].Rows[0];
                    int     serverId = Convert.ToInt32(drSeq[0]);

                    //将成绩插入路局
                    objResultBll.InsertRandomExamResultServer(randomExamResult.RandomExamResultId, serverId, obj.RandomExamId);

                    if (typeid == "2")
                    {
                        //将答卷插入路局
                        objResultBll.InsertRandomExamResultAnswerServer(obj.RandomExamId, randomExamResult.RandomExamResultId, serverId);
                    }

                    strSql = "select * from Random_Exam_Result_Photo where Random_Exam_ID=" + obj.RandomExamId +
                             " and Random_Exam_Result_ID=" + randomExamResult.RandomExamResultId;
                    DataSet ds = db.RunSqlDataSet(strSql);
                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        DataRow drPhoto = ds.Tables[0].Rows[0];

                        int employeeId = Convert.ToInt32(drPhoto["Employee_ID"]);
                        Uri ftpUri     = new Uri(strUrl + "/" + obj.RandomExamId + "/");
                        if (drPhoto["FingerPrint"] != DBNull.Value)
                        {
                            SavePhotoToServer(employeeId, (byte[])drPhoto["FingerPrint"], 0, serverId, ftpSession, ftpUri);
                        }

                        if (drPhoto["Photo1"] != DBNull.Value)
                        {
                            SavePhotoToServer(employeeId, (byte[])drPhoto["Photo1"], 1, serverId, ftpSession, ftpUri);
                        }

                        if (drPhoto["Photo2"] != DBNull.Value)
                        {
                            SavePhotoToServer(employeeId, (byte[])drPhoto["Photo2"], 2, serverId, ftpSession, ftpUri);
                        }

                        if (drPhoto["Photo3"] != DBNull.Value)
                        {
                            SavePhotoToServer(employeeId, (byte[])drPhoto["Photo3"], 3, serverId, ftpSession, ftpUri);
                        }
                    }

                    System.Threading.Thread.Sleep(10);
                    jsBlock = "<script>SetPorgressBar('正在上传考试答卷,请等待......','" + ((progressNum * 100) / ((double)count)).ToString("0.00") + "'); </script>";
                    Response.Write(jsBlock);
                    Response.Flush();

                    progressNum++;
                }

                if (typeid == "1")
                {
                    //只上传成绩须更新时间
                    strSql = "update Random_Exam_Computer_Server@link_sf set  "
                             + "Last_Upload_Date=sysdate   where random_exam_id=" + obj.RandomExamId
                             + " and Computer_server_no=" + PrjPub.ServerNo;
                    db.ExecuteNonQuery(strSql);
                }
                else
                {
                    //如果考试已经结束上传,将上传标志置为已经上传
                    if (obj.IsStart == 2)
                    {
                        objBll.UpdateIsUpload(obj.RandomExamId, PrjPub.ServerNo, 1);
                    }
                    else
                    {
                        objBll.UpdateIsUpload(obj.RandomExamId, PrjPub.ServerNo, 0);
                    }
                }

                strSql = "update SYNCHRONIZE_LOG@link_sf set SYNCHRONIZE_STATUS_ID=2,End_Time=sysdate where SYNCHRONIZE_LOG_ID=" + strKey;
                db.ExecuteNonQuery(strSql);
            }
            catch (Exception ex)
            {
                strSql = "update SYNCHRONIZE_LOG@link_sf set SYNCHRONIZE_STATUS_ID=3,End_Time=sysdate where SYNCHRONIZE_LOG_ID=" + strKey;
                db.ExecuteNonQuery(strSql);
                Response.Write("<script>alert('" + ex.Message.Replace("\n", "\r\n") + "');window.close();</script>");
                return;
            }

            Response.Write("<script>top.returnValue='true';window.close();</script>");
        }
        private void BindGrid()
        {
            string strIDPath = Request.QueryString["id"];

            CoursewareBLL coursewareBLL = new CoursewareBLL();
            IList <RailExam.Model.Courseware> coursewares = new List <RailExam.Model.Courseware>();

            OrganizationBLL orgBll = new OrganizationBLL();
            int             orgID  = orgBll.GetStationOrgID(PrjPub.CurrentLoginUser.OrgID);

            if (Request.QueryString.Get("type") == "Courseware")
            {
                coursewares = coursewareBLL.GetCoursewaresByCoursewareTypeID(Convert.ToInt32(strIDPath), orgID);
            }
            else
            {
                coursewares = coursewareBLL.GetCoursewaresByTrainTypeID(Convert.ToInt32(strIDPath), orgID);
            }

            OracleAccess oa           = new OracleAccess();
            int          railSystemid = PrjPub.RailSystemId();

            if (railSystemid != 0)
            {
                IList <RailExam.Model.Courseware> coursewaresVia = new List <RailExam.Model.Courseware>();
                string sql = String.Format(
                    @"select courseware_id from courseware_RANGE_ORG t 
                        where 
                            org_Id in (select org_id from org where rail_System_Id={0} and level_num=2) ",
                    railSystemid
                    );

                DataSet dscoursewareIDs = oa.RunSqlDataSet(sql);
                if (dscoursewareIDs != null && dscoursewareIDs.Tables.Count > 0)
                {
                    foreach (RailExam.Model.Courseware courseware in coursewares)
                    {
                        DataRow[] drs = dscoursewareIDs.Tables[0].Select("courseware_id=" + courseware.CoursewareID);
                        if (drs.Length > 0)
                        {
                            coursewaresVia.Add(courseware);
                        }
                    }
                    coursewares.Clear();
                    coursewares = coursewaresVia;
                }
            }

            if (coursewares != null)
            {
                foreach (RailExam.Model.Courseware obj in coursewares)
                {
                    if (obj.CoursewareName.Length <= 20)
                    {
                        obj.CoursewareName = "<a onclick=OpenIndex('" + obj.CoursewareID + "') href=# title=" + obj.CoursewareName + " > " + obj.CoursewareName + " </a>";
                    }
                    else
                    {
                        obj.CoursewareName = "<a onclick=OpenIndex('" + obj.CoursewareID + "') href=# title=" + obj.CoursewareName + " > " + obj.CoursewareName.Substring(0, 20) + "...</a>";
                    }
                }

                Grid1.DataSource = coursewares;
                Grid1.DataBind();
            }
        }
Beispiel #4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (PrjPub.CurrentLoginUser == null)
            {
                Response.Redirect("../Common/Error.aspx?error=Session过期请重新登录本系统!");
                return;
            }

            if (!IsPostBack)
            {
                hfLoginID.Value = PrjPub.CurrentLoginUser.EmployeeID.ToString();
                if (PrjPub.HasEditRight("职员管理") && PrjPub.IsServerCenter)
                {
                    HfUpdateRight.Value = "True";
                }
                else
                {
                    HfUpdateRight.Value = "False";
                }
                if (PrjPub.HasDeleteRight("职员管理") && PrjPub.IsServerCenter)
                {
                    HfDeleteRight.Value = "True";
                }
                else
                {
                    HfDeleteRight.Value = "False";
                }


                string strQuery = Request.QueryString.Get("strQuery");
                if (!string.IsNullOrEmpty(strQuery))
                {
                    string[] str = strQuery.Split('|');
                    txtName.Text            = str[0];
                    ddlSex.SelectedValue    = str[1];
                    ddlStatus.SelectedValue = str[2];
                    txtPinYin.Text          = str[3];
                    txtTechnicalCode.Text   = str[4];
                    hfPostID.Value          = str[5];
                }

                gridBind();
            }

            string strRefresh = Request.Form.Get("Refresh");

            if (!string.IsNullOrEmpty(strRefresh))
            {
                gridBind();
            }

            string strUpdate = Request.Form.Get("UpdatePsw");

            if (!string.IsNullOrEmpty(strUpdate))
            {
                SystemUserBLL objBll = new SystemUserBLL();
                SystemUser    obj    = objBll.GetUserByEmployeeID(Convert.ToInt32(strUpdate));
                if (obj != null)
                {
                    obj.Password = "******";
                    if (PrjPub.IsServerCenter)
                    {
                        objBll.UpdateUser(obj);
                    }
                    else
                    {
                        objBll.UpdateUserPsw(obj.UserID, "111111");
                    }
                    SessionSet.PageMessage = "初始化密码成功!";
                }
                else
                {
                    SessionSet.PageMessage = "该员工登录帐户不存在,初始化密码失败!";
                }

                gridBind();
            }

            string strDelete = Request.Form.Get("Delete");

            if (!string.IsNullOrEmpty(strDelete))
            {
                try
                {
                    OracleAccess db = new OracleAccess();
                    if (PrjPub.CurrentLoginUser.EmployeeID != 0)
                    {
                        //判断该员工是否参加过考试
                        string strIsArrange =
                            string.Format(
                                "select count(1) from random_exam_arrange where  ','||user_ids||','  like '%,{0},%'",
                                strDelete);
                        if (Convert.ToInt32(db.RunSqlDataSet(strIsArrange).Tables[0].Rows[0][0]) > 0)
                        {
                            ClientScript.RegisterStartupScript(GetType(), "NO", "alert('该员工已参加考试,不能删除!');", true);
                            return;
                        }

                        string strSql = "delete from Employee where Employee_ID=" + strDelete;
                        db.ExecuteNonQuery(strSql);
                    }
                    else
                    {
                        string  strSql = "select * from Employee where Employee_ID=" + strDelete;
                        DataRow dr     = db.RunSqlDataSet(strSql).Tables[0].Rows[0];

                        EmployeeBLL employeebll = new EmployeeBLL();
                        employeebll.DeleteEmployee(Convert.ToInt32(strDelete));

                        SystemLogBLL systemLogBLL = new SystemLogBLL();
                        systemLogBLL.WriteLog("删除员工:" + dr["Employee_Name"] + "(" + dr["Work_No"] + ")基本信息");
                    }
                    gridBind();
                }
                catch
                {
                    SessionSet.PageMessage = "该员工已被引用,不能删除!";
                }
            }

            if (!string.IsNullOrEmpty(hfPostID.Value))
            {
                PostBLL post = new PostBLL();
                txtPost.Text = post.GetPost(Convert.ToInt32(hfPostID.Value)).PostName;
            }
        }
        private void GetPaperAfter()
        {
            // 根据 ProgressBar.htm 显示进度条界面
            string       templateFileName = Path.Combine(Server.MapPath("."), "ProgressBar.htm");
            StreamReader reader           = new StreamReader(@templateFileName, System.Text.Encoding.GetEncoding("gb2312"));
            string       html             = reader.ReadToEnd();

            reader.Close();
            Response.Write(html);
            Response.Flush();
            System.Threading.Thread.Sleep(200);

            ViewState["BeginTime"] = DateTime.Now.ToString();
            string strId = Request.QueryString.Get("RandomExamID");

            //获取当前考试的生成试卷的状态和次数
            RandomExamBLL objBll = new RandomExamBLL();

            RailExam.Model.RandomExam obj = objBll.GetExam(Convert.ToInt32(strId));

            int year      = obj.BeginTime.Year;
            int ExamCount = obj.MaxExamTimes;

            System.Threading.Thread.Sleep(10);
            string jsBlock = "<script>SetPorgressBar('正在计算生成试卷数量,请等待......','" + ((1 * 100) / ((double)1) + "'); </script>");

            Response.Write(jsBlock);
            Response.Flush();

            if (!PrjPub.IsServerCenter)
            {
                RandomExamArrangeBLL objArrangeBll = new RandomExamArrangeBLL();
                objArrangeBll.RefreshRandomExamArrange();
            }

            //RandomExamArrangeBLL eaBll = new RandomExamArrangeBLL();
            //IList<RailExam.Model.RandomExamArrange> ExamArranges = eaBll.GetRandomExamArranges(int.Parse(strId));
            //string strChooseID = "";
            //if (ExamArranges.Count > 0)
            //{
            //    strChooseID = ExamArranges[0].UserIds;
            //}
            //else
            //{
            //    strChooseID = "";
            //}

            //RandomExamResultCurrentBLL objResultCurrentBll = new RandomExamResultCurrentBLL();
            //IList<RandomExamResultCurrent> examResults = objResultCurrentBll.GetRandomExamResultInfo(Convert.ToInt32(strId));
            //for (int i = 0; i < examResults.Count; i++)
            //{
            //    strChooseID = ("," + strChooseID + ",").Replace("," + examResults[i].ExamineeId + ",", ",");
            //}

            //strChooseID = strChooseID.TrimStart(',').TrimEnd(',');

            string strChooseID = Request.QueryString.Get("addIds");

            if (strChooseID == string.Empty)
            {
                return;
            }

            string[] str = strChooseID.Split('|');

            System.Threading.Thread.Sleep(10);
            jsBlock = "<script>SetPorgressBar('正在计算生成试卷数量,请等待......','" + ((2 * 100) / ((double)2) + "'); </script>");
            Response.Write(jsBlock);
            Response.Flush();

            OracleAccess db = new OracleAccess();
            string       strSql;

            RandomExamResultAnswerCurrentBLL randomExamResultAnswerBLL = new RandomExamResultAnswerCurrentBLL();
            //定义全局答卷对象List
            IList <RandomExamResultAnswerCurrent> randomExamResultAnswersCurrentAll = new List <RandomExamResultAnswerCurrent>();
            //定义一个考生一次答卷对象List
            IList <RandomExamResultAnswerCurrent> randomExamResultAnswers = null;

            System.Threading.Thread.Sleep(200);
            jsBlock = string.Empty;
            int progressNum = 1;

            for (int n = 1; n <= ExamCount; n++)
            {
                for (int m = 0; m < str.Length; m++)
                {
                    RandomExamResultCurrentBLL randomExamResultBLL = new RandomExamResultCurrentBLL();
                    RandomExamResultCurrent    randomExamResult    = new RandomExamResultCurrent();

                    randomExamResult.RandomExamId    = int.Parse(strId);
                    randomExamResult.AutoScore       = 0;
                    randomExamResult.BeginDateTime   = DateTime.Parse(ViewState["BeginTime"].ToString());
                    randomExamResult.CurrentDateTime = DateTime.Parse(ViewState["BeginTime"].ToString());
                    randomExamResult.ExamTime        = 0;
                    randomExamResult.EndDateTime     = DateTime.Parse(ViewState["BeginTime"].ToString());
                    randomExamResult.Score           = 0;
                    randomExamResult.OrganizationId  = int.Parse(ConfigurationManager.AppSettings["StationID"]);
                    randomExamResult.Memo            = "";
                    randomExamResult.StatusId        = 0;
                    randomExamResult.AutoScore       = 0;
                    randomExamResult.CorrectRate     = 0;
                    randomExamResult.ExamineeId      = int.Parse(str[m]);
                    randomExamResult.ExamSeqNo       = n;

                    int nRandomExamResultPK = randomExamResultBLL.AddRandomExamResultCurrent(randomExamResult);
                    ViewState["RandomExamResultPK"] = nRandomExamResultPK;

                    strSql = "select a.* from Random_Exam_Arrange_Detail a "
                             + " where ','||User_Ids||',' like '%," + str[m] + ",%' "
                             + " and Random_Exam_ID=" + strId;
                    DataRow dr = db.RunSqlDataSet(strSql).Tables[0].Rows[0];


                    //strSql = "insert into Random_Exam_Result_Detail(Random_Exam_Result_Detail_ID,"
                    //         + "Random_Exam_Result_ID,Random_Exam_ID,Employee_ID,Computer_Room_SEAT,Computer_Room_ID) "
                    //         + "values(Random_Exam_Result_Detail_SEQ.NextVal,"
                    //         + nRandomExamResultPK + ","
                    //         + randomExamResult.RandomExamId + ","
                    //         + randomExamResult.ExamineeId + ","
                    //         + "0," + dr["Computer_Room_ID"] + ") ";
                    //db.ExecuteNonQuery(strSql);


                    strSql = "insert into Random_Exam_Result_Detail_Temp(Random_Exam_Result_Detail_ID,"
                             + "Random_Exam_Result_ID,Random_Exam_ID,Employee_ID,Computer_Room_SEAT,Computer_Room_ID,Is_Remove) "
                             + "values(Random_Exam_Result_Detail_SEQ.NextVal,"
                             + nRandomExamResultPK + ","
                             + randomExamResult.RandomExamId + ","
                             + randomExamResult.ExamineeId + ","
                             + "0," + dr["Computer_Room_ID"] + ",0) ";
                    db.ExecuteNonQuery(strSql);

                    RandomExamItemBLL     randomItemBLL = new RandomExamItemBLL();
                    RandomExamSubjectBLL  subjectBLL    = new RandomExamSubjectBLL();
                    RandomExamStrategyBLL strategyBLL   = new RandomExamStrategyBLL();

                    IList <RandomExamSubject> randomExamSubjects =
                        subjectBLL.GetRandomExamSubjectByRandomExamId(int.Parse(strId));

                    if (randomExamSubjects != null)
                    {
                        Hashtable hashTableItemIds = new Hashtable();
                        Hashtable htSubjectItemIds = new Hashtable();
                        for (int i = 0; i < randomExamSubjects.Count; i++)
                        {
                            RandomExamSubject paperSubject = randomExamSubjects[i];
                            int nSubjectId = paperSubject.RandomExamSubjectId;
                            //  int nItemCount = paperSubject.ItemCount;

                            IList <RandomExamStrategy> strategys = strategyBLL.GetRandomExamStrategys(nSubjectId);
                            for (int j = 0; j < strategys.Count; j++)
                            {
                                int nStrategyId = strategys[j].RandomExamStrategyId;
                                int nItemCount  = strategys[j].ItemCount;
                                IList <RandomExamItem> itemList = randomItemBLL.GetItemsByStrategyId(nStrategyId, year);

                                // IList<RandomExamItem> itemList = randomItemBLL.GetItemsBySubjectId(nSubjectId);

                                Random    ObjRandom      = new Random();
                                Hashtable hashTable      = new Hashtable();
                                Hashtable hashTableCount = new Hashtable();
                                int       index          = 0;
                                while (hashTable.Count < nItemCount)
                                {
                                    int k = ObjRandom.Next(itemList.Count);
                                    hashTableCount[index] = k;
                                    index = index + 1;
                                    int itemID     = itemList[k].ItemId;
                                    int examItemID = itemList[k].RandomExamItemId;
                                    if (!hashTableItemIds.ContainsKey(itemID))
                                    {
                                        hashTable[examItemID]        = examItemID;
                                        hashTableItemIds[itemID]     = itemID;
                                        htSubjectItemIds[examItemID] = examItemID;
                                    }
                                    //if (hashTableCount.Count == itemList.Count && hashTable.Count < nItemCount)
                                    //{
                                    //    SessionSet.PageMessage = "随机考试在设定的取题范围内的试题量不够,请重新设置取题范围!";
                                    //    return;
                                    //}
                                }
                            }
                        }
                        randomExamResultAnswers = new List <RandomExamResultAnswerCurrent>();
                        foreach (int key in htSubjectItemIds.Keys)
                        {
                            string strItemId = htSubjectItemIds[key].ToString();

                            RandomExamItem item = randomItemBLL.GetRandomExamItem(Convert.ToInt32(strItemId), year);

                            string nowSelectAnswer   = string.Empty;
                            string nowStandardAnswer = string.Empty;
                            if (item.TypeId != PrjPub.ITEMTYPE_FILLBLANK)
                            {
                                Pub.GetNowAnswer(item, out nowSelectAnswer, out nowStandardAnswer);
                            }

                            RandomExamResultAnswerCurrent randomExamResultAnswer = new RandomExamResultAnswerCurrent();
                            randomExamResultAnswer.RandomExamResultId = nRandomExamResultPK;
                            randomExamResultAnswer.RandomExamItemId   = int.Parse(strItemId);
                            randomExamResultAnswer.JudgeStatusId      = 0;
                            randomExamResultAnswer.JudgeRemark        = string.Empty;
                            randomExamResultAnswer.ExamTime           = 0;
                            randomExamResultAnswer.Answer             = string.Empty;
                            randomExamResultAnswer.SelectAnswer       = nowSelectAnswer;
                            randomExamResultAnswer.StandardAnswer     = nowStandardAnswer;
                            randomExamResultAnswerBLL.AddExamResultAnswerCurrent(randomExamResultAnswer);

                            //完型填空子题
                            IList <RandomExamItem> randomExamItems = randomItemBLL.GetItemsByParentItemID(item.ItemId, obj.RandomExamId, year);
                            foreach (RandomExamItem randomExamItem in randomExamItems)
                            {
                                Pub.GetNowAnswer(randomExamItem, out nowSelectAnswer, out nowStandardAnswer);

                                randomExamResultAnswer = new RandomExamResultAnswerCurrent();
                                randomExamResultAnswer.RandomExamResultId = nRandomExamResultPK;
                                randomExamResultAnswer.RandomExamItemId   = randomExamItem.RandomExamItemId;
                                randomExamResultAnswer.JudgeStatusId      = 0;
                                randomExamResultAnswer.JudgeRemark        = string.Empty;
                                randomExamResultAnswer.ExamTime           = 0;
                                randomExamResultAnswer.Answer             = string.Empty;
                                randomExamResultAnswer.SelectAnswer       = nowSelectAnswer;
                                randomExamResultAnswer.StandardAnswer     = nowStandardAnswer;
                                randomExamResultAnswerBLL.AddExamResultAnswerCurrent(randomExamResultAnswer);
                            }

                            System.Threading.Thread.Sleep(10);
                            jsBlock = "<script>SetPorgressBar('正在生成试卷,请等待......','" + ((progressNum * 100) / ((double)ExamCount * str.Length * htSubjectItemIds.Count)).ToString("0.00") + "'); </script>";
                            Response.Write(jsBlock);
                            Response.Flush();

                            progressNum++;
                        }
                    }
                    else
                    {
                        SessionSet.PageMessage = "未找到记录!";
                    }
                }
            }

            //临时添加考生无需更改考试状态,因为考试状态肯定是正在进行和生成试卷
            //objBll.UpdateHasPaper(Convert.ToInt32(strId), PrjPub.ServerNo, true);
            ////如果考试是随到随考,考试状态自动变为正在进行
            //if (obj.StartMode == 1)
            //{
            //    objBll.UpdateIsStart(Convert.ToInt32(strId), PrjPub.ServerNo, 1);
            //}

            SystemLogBLL objLogBll = new SystemLogBLL();

            objLogBll.WriteLog("“" + obj.ExamName + "”生成新增考生试卷");

            Response.Write("<script>top.returnValue='true';top.close();</script>");
        }
Beispiel #6
0
        protected void btnSave_Click(object sender, EventArgs e)
        {
            int time;

            try
            {
                time = Convert.ToInt32(txtTime.Text);
                if (time < 0)
                {
                    SessionSet.PageMessage = "模拟考试时间请输入正整数!";
                    return;
                }

                if (time > 99)
                {
                    SessionSet.PageMessage = "模拟考试时间请输入小于99的正整数!";
                    return;
                }
            }
            catch
            {
                SessionSet.PageMessage = "模拟考试时间请输入正整数!";
                return;
            }

            int number;

            try
            {
                number = Convert.ToInt32(txtNumber.Text);
                if (number < 0)
                {
                    SessionSet.PageMessage = "模拟考试题数请输入正整数!";
                    return;
                }

                if (number > 99)
                {
                    SessionSet.PageMessage = "模拟考试题数请输入小于99的正整数!";
                    return;
                }
            }
            catch
            {
                SessionSet.PageMessage = "模拟考试题数请输入正整数!";
                return;
            }

            string       strSql = "select * from System_Exam where System_Exam_ID=1";
            OracleAccess db     = new OracleAccess();
            DataTable    dt     = db.RunSqlDataSet(strSql).Tables[0];

            if (dt.Rows.Count == 0)
            {
                strSql = "insert into System_Exam Values(1,'" + txtMesage.Text + "'," + time + "," + number + ")";
            }
            else
            {
                strSql = "update System_Exam set Exam_Message='" + txtMesage.Text + "',Exam_Time=" + time + ",Exam_Number=" + number + " where System_Exam_ID=1";
            }

            db.ExecuteNonQuery(strSql);

            SessionSet.PageMessage = "保存成功!";
        }
        //绑定一专多能节点下的Post
        private void BindPleuripotentPost(int employeeID, int postID)
        {
            OracleAccess oa             = new OracleAccess();
            string       selectEmployee = String.Format("select * from EMPLOYEE where EMPLOYEE_ID = {0}", employeeID);
            DataSet      dsEmployee     = oa.RunSqlDataSet(selectEmployee);

            if (dsEmployee != null && dsEmployee.Tables.Count > 0)
            {
                DataSet dsPosts = new DataSet();
                string  selectPosts;

                string couldPostID = Convert.ToString(dsEmployee.Tables[0].Rows[0]["COULD_POST_ID"]);
                if (String.IsNullOrEmpty(couldPostID))
                {
                    string  selectPost = String.Format("select * from POST where POST_ID = {0}", postID);
                    DataSet dsPost     = oa.RunSqlDataSet(selectPost);
                    if (dsPost != null && dsPost.Tables.Count > 0)
                    {
                        string promotionPostID = Convert.ToString(dsPost.Tables[0].Rows[0]["PROMOTION_POST_ID"]);
                        if (!String.IsNullOrEmpty(promotionPostID))
                        {
                            selectPosts = String.Format("select * from POST where POST_ID in ({0})", promotionPostID);
                            dsPosts     = oa.RunSqlDataSet(selectPosts);
                        }
                    }
                }
                else
                {
                    selectPosts = String.Format("select * from POST where POST_ID in ({0})", couldPostID);
                    dsPosts     = oa.RunSqlDataSet(selectPosts);
                }

                if (dsPosts != null && dsPosts.Tables.Count > 0)
                {
                    TreeViewNode node = FindPleuripotentNode();
                    if (node != null)
                    {
                        int orgID = PrjPub.CurrentStudent.OrgID;
                        foreach (DataRow row in dsPosts.Tables[0].Rows)
                        {
                            TreeViewNode newNode = new TreeViewNode();
                            newNode.Text  = Convert.ToString(row["POST_NAME"]);
                            newNode.Value = Convert.ToString(row["POST_ID"]);
                            newNode.ID    = Convert.ToString(row["POST_ID"]);

                            node.Nodes.Add(newNode);
                        }

                        //string selectCount = "select max(level_num) from knowledge";
                        //DataSet dsLevelNumCount = oa.RunSqlDataSet(selectCount);
                        //if (dsLevelNumCount != null & dsLevelNumCount.Tables.Count > 0)
                        //{
                        //    int maxLevelNum = Convert.ToInt32(dsLevelNumCount.Tables[0].Rows[0][0]);
                        //    foreach (TreeViewNode postNode in node.Nodes)
                        //    {
                        //        BindKnowledgeByLevelNum(1, 0, postNode, postID);
                        //    }
                        //}

                        foreach (TreeViewNode postNode in node.Nodes)
                        {
                            KnowledgeTreeNodeBind(postID, "is_promotion = 1", postNode);
                        }
                    }
                }
            }
        }
        protected void btnShowMother_Click(object sender, EventArgs e)
        {
            #region 原母题
            //改变教材章节,清空母题
            string strSql = "delete from random_exam_strategy "
                            + " where random_exam_strategy_id in ("
                            + " select random_exam_strategy_id from "
                            + " random_exam_strategy a "
                            + " inner join Book_Chapter b on a.Range_ID =b.Chapter_ID "
                            + " where a.Is_Mother_Item = 1 ";

            if (HfRangeType.Value == "3")
            {
                strSql += " and b.Book_ID=" + HfChapterId.Value;
            }
            else
            {
                strSql += " and b.ID_Path ||'/' like (select ID_Path from Book_Chapter where Chapter_ID=" +
                          HfChapterId.Value + ") ||'/%' ";
            }

            //有屏蔽章节
            if (!string.IsNullOrEmpty(HfExCludeChaptersId.Value))
            {
                strSql += " and b.Chapter_ID not in (" + HfExCludeChaptersId.Value + ") ";
            }

            strSql += ")";

            OracleAccess db = new OracleAccess();
            db.ExecuteNonQuery(strSql);


            ItemBLL        item           = new ItemBLL();
            BookChapterBLL bookChapterBll = new BookChapterBLL();
            strSql = "select GetBookChapterName(Chapter_ID) ChapterName, Chapter_ID as ChapterId,ID_Path as IDPath"
                     + " from Book_Chapter "
                     + " where Is_Mother_Item=1";

            int sumTotalCount = 0;
            if (HfRangeType.Value == "3")
            {
                strSql += " and Book_ID='" + HfChapterId.Value + "'";

                sumTotalCount = item.GetItemsByBookID(Convert.ToInt32(HfChapterId.Value),
                                                      Convert.ToInt32(hfItemType.Value));
            }
            else
            {
                BookChapter bookChapter = bookChapterBll.GetBookChapter(Convert.ToInt32(HfChapterId.Value));

                strSql += " and ID_Path||'/' like '" + bookChapter.IdPath + "/%'";

                sumTotalCount = item.GetItemsByBookChapterIdPath(bookChapter.IdPath,
                                                                 Convert.ToInt32(hfItemType.Value));
            }

            //有屏蔽章节
            if (!string.IsNullOrEmpty(HfExCludeChaptersId.Value))
            {
                strSql += " and Chapter_ID not in (" + HfExCludeChaptersId.Value + ")";
            }


            DataSet ds = db.RunSqlDataSet(strSql);

            if (ds.Tables[0].Rows.Count == 0)
            {
                mother1.Visible = false;
                mother2.Visible = false;
            }
            else
            {
                mother1.Visible = true;
                mother2.Visible = true;

                DataColumn dc1 = ds.Tables[0].Columns.Add("MaxItemCount");
                DataColumn dc2 = ds.Tables[0].Columns.Add("ItemCount");
                DataColumn dc3 = ds.Tables[0].Columns.Add("RandomExamStrategyId");

                int i        = 1;
                int sumCount = 0;
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    dr["MaxItemCount"] = item.GetItemsByBookChapterIdPath(dr["IDPath"].ToString(),
                                                                          Convert.ToInt32(hfItemType.Value));
                    dr["ItemCount"] = "";

                    dr["RandomExamStrategyId"] = -i;

                    sumCount += Convert.ToInt32(dr["MaxItemCount"]);

                    i++;
                }

                Grid1.DataSource = ds;
                Grid1.DataBind();

                lblMotherInfo.Text = "其中子题最大题数:" + (sumTotalCount - sumCount) + ";母题最大题数:" + sumCount;
            }
            #endregion
        }
        public void FillAnswer()
        {
            RandomExamBLL objbll = new RandomExamBLL();

            RailExam.Model.RandomExam obj = objbll.GetExam(Convert.ToInt32(ViewState["ExamID"]));
            int year = obj.BeginTime.Year;

            string strSql = "select * from Random_Exam_Item_" + year + " where Random_Exam_Item_ID=" +
                            ViewState["RandomExamItemID"];
            OracleAccess db = new OracleAccess();
            DataSet      ds = db.RunSqlDataSet(strSql);

            if (ds.Tables[0].Rows.Count == 0)
            {
                return;
            }

            DataRow dr = ds.Tables[0].Rows[0];

            Response.Write("<table class='contentTable'>");

            if (Convert.ToInt32(dr["Type_ID"].ToString()) == 2)              //¶àÑ¡
            {
                string[] strAnswer = dr["Select_Answer"].ToString().Split(new char[] { '|' });
                for (int n = 0; n < strAnswer.Length; n++)
                {
                    string strN    = intToString(n + 1);
                    string strij   = n.ToString();
                    string strName = n.ToString();

                    if (("|" + dr["Standard_Answer"] + "|").IndexOf("|" + n + "|") != -1)
                    {
                        Response.Write(
                            "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input type='checkbox' checked='checked' id='Answer" +
                            strij + "' name='Answer" + strName + "' disabled='disabled' > " + strN + "." + strAnswer[n] +
                            "</td></tr>");
                        lblAnswer.Text = lblAnswer.Text + strN;
                    }
                    else
                    {
                        Response.Write(
                            "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input type='checkbox' id='Answer" +
                            strij + "' name='Answer" + strName + "' disabled='disabled' > " + strN + "." + strAnswer[n] +
                            "</td></tr>");
                    }
                }
            }
            else                //µ¥Ñ¡
            {
                string[] strAnswer = dr["Select_Answer"].ToString().Split(new char[] { '|' });
                for (int n = 0; n < strAnswer.Length; n++)
                {
                    string strN    = intToString(n + 1);
                    string strij   = n.ToString();
                    string strName = n.ToString();

                    if (dr["Standard_Answer"].ToString() == n.ToString())
                    {
                        Response.Write(
                            "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input  type='Radio' checked='checked' id='RAnswer" +
                            strij + "' name='RAnswer" + strName + "' disabled='disabled'> " + strN + "." + strAnswer[n] +
                            "</td></tr>");
                        lblAnswer.Text = strN;
                    }
                    else
                    {
                        Response.Write(
                            "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input type='Radio' id='RAnswer" +
                            strij + "' name='RAnswer" + strName + "' disabled='disabled'> " + strN + "." + strAnswer[n] +
                            "</td></tr>");
                    }
                }
            }
            Response.Write("</table>");
        }
        private void FillPage(int nID)
        {
            RandomExamStrategyBLL paperStrategyBookChapterBLL = new RandomExamStrategyBLL();

            RandomExamStrategy paperStrategyBookChapter = paperStrategyBookChapterBLL.GetRandomExamStrategy(nID);

            if (paperStrategyBookChapter != null)
            {
                txtMemo.Text        = paperStrategyBookChapter.Memo;
                txtChapterName.Text = paperStrategyBookChapter.RangeName;
                HfRangeName.Value   = paperStrategyBookChapter.RangeName;

                hfSubjectId.Value     = paperStrategyBookChapter.SubjectId.ToString();
                HfRangeType.Value     = paperStrategyBookChapter.RangeType.ToString();
                HfChapterId.Value     = paperStrategyBookChapter.RangeId.ToString();
                ddlType.SelectedValue = paperStrategyBookChapter.ItemTypeId.ToString();
                txtNDR.Text           = paperStrategyBookChapter.ItemCount.ToString();



                RandomExamSubjectBLL paperStrategySubjectBLL = new RandomExamSubjectBLL();
                RandomExamSubject    paperStrategySubject    = paperStrategySubjectBLL.GetRandomExamSubject(int.Parse(hfSubjectId.Value));

                if (paperStrategySubject != null)
                {
                    hfExamID.Value       = paperStrategySubject.RandomExamId.ToString();
                    txtSubjectName.Text  = paperStrategySubject.SubjectName;
                    labelTotalCount.Text = paperStrategySubject.ItemCount.ToString();

                    IList <RailExam.Model.RandomExamStrategy> RandomExamStrategys = paperStrategyBookChapterBLL.GetRandomExamStrategys(paperStrategySubject.RandomExamSubjectId);

                    int hasCount = 0;
                    foreach (RailExam.Model.RandomExamStrategy randomExamStrategy in RandomExamStrategys)
                    {
                        if (randomExamStrategy.RandomExamStrategyId != nID)
                        {
                            hasCount += randomExamStrategy.ItemCount;
                        }
                    }

                    labelLeaveCount.Text = (paperStrategySubject.ItemCount - hasCount).ToString();

                    RandomExamResultBLL reBll = new RandomExamResultBLL();
                    IList <RailExam.Model.RandomExamResult> examResults = reBll.GetRandomExamResultByExamID(paperStrategySubject.RandomExamId);

                    if (examResults.Count > 0)
                    {
                        ViewState["mode"] = "ReadOnly";
                    }
                }

                string strSql = "select a.random_exam_strategy_id as RandomExamStrategyId,a.Item_Count as ItemCount,"
                                + "GetBookChapterName(b.Chapter_ID) ChapterName, b.Chapter_ID as ChapterId,b.ID_Path as IDPath "
                                + "from random_exam_strategy a"
                                + " inner join Book_Chapter b on a.Range_ID=b.Chapter_ID "
                                + " where a.Is_Mother_Item=1 and a.Mother_ID=" + nID;

                OracleAccess db = new OracleAccess();

                DataSet ds = db.RunSqlDataSet(strSql);


                if (paperStrategyBookChapter.RangeType == 3 && ds.Tables[0].Rows.Count == 0)
                {
                    txtExCludeChapters.Text = paperStrategyBookChapter.ExcludeChapterId;

                    if (string.IsNullOrEmpty(paperStrategyBookChapter.ExcludeChapterId) == false)
                    {
                        FillExcludeCategorysID(paperStrategyBookChapter.ExcludeChapterId);
                    }
                }

                int     sumTotalCount = 0;
                ItemBLL itembll       = new ItemBLL();
                if (HfRangeType.Value == "3")
                {
                    sumTotalCount = itembll.GetItemsByBookID(Convert.ToInt32(HfChapterId.Value),
                                                             Convert.ToInt32(hfItemType.Value));
                }
                else
                {
                    BookChapterBLL bookChapterBll = new BookChapterBLL();
                    BookChapter    bookChapter    = bookChapterBll.GetBookChapter(Convert.ToInt32(HfChapterId.Value));
                    sumTotalCount = itembll.GetItemsByBookChapterIdPath(bookChapter.IdPath,
                                                                        Convert.ToInt32(hfItemType.Value));
                }

                if (ds.Tables[0].Rows.Count == 0)
                {
                    mother1.Visible = false;
                    mother2.Visible = false;
                }
                else
                {
                    mother1.Visible = true;
                    mother2.Visible = true;

                    DataColumn dc1 = ds.Tables[0].Columns.Add("MaxItemCount");

                    ItemBLL item        = new ItemBLL();
                    int     sumCount    = 0;
                    int     sumMaxCount = 0;
                    foreach (DataRow dr in ds.Tables[0].Rows)
                    {
                        dr["MaxItemCount"] = item.GetItemsByBookChapterIdPath(dr["IDPath"].ToString(),
                                                                              Convert.ToInt32(hfItemType.Value));

                        sumCount    += Convert.ToInt32(dr["ItemCount"].ToString());
                        sumMaxCount += Convert.ToInt32(dr["MaxItemCount"].ToString());
                    }

                    txtNDR.Text = (paperStrategyBookChapter.ItemCount + sumCount).ToString();

                    Grid1.DataSource = ds;
                    Grid1.DataBind();

                    lblMotherInfo.Text = "其中子题最大题数:" + (sumTotalCount - sumMaxCount) + ";母题最大题数:" + sumMaxCount;
                }
                strSql              = "select * from Item a inner join Book_Chapter b on a.Chapter_ID=b.Chapter_ID " + GetSelectSql();
                lblTotalCount.Text  = db.RunSqlDataSet(strSql).Tables[0].Rows.Count.ToString();
                strSql              = " select * from  Random_Exam_Item_Select where RANDOM_EXAM_STRATEGY_ID=" + nID;
                lblSelectCount.Text = db.RunSqlDataSet(strSql).Tables[0].Rows.Count.ToString();
            }

            if (ViewState["mode"].ToString() == "ReadOnly")
            {
                SaveButton.Visible   = false;
                CancelButton.Visible = true;
                ddlType.Enabled      = false;
                txtMemo.Enabled      = false;
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                string strID = Request.QueryString.Get("id");
                ViewState["mode"]     = Request.QueryString.Get("mode");
                hfItemType.Value      = Request.QueryString.Get("itemTypeID");
                ddlType.SelectedValue = hfItemType.Value;
                if (ViewState["mode"].ToString() == "Insert")
                {
                    string subjectId = Request.QueryString.Get("subjectid");
                    hfSubjectId.Value = subjectId;
                    if (!string.IsNullOrEmpty(subjectId))
                    {
                        RandomExamSubjectBLL paperStrategySubjectBLL = new RandomExamSubjectBLL();
                        RandomExamSubject    paperStrategySubject    = paperStrategySubjectBLL.GetRandomExamSubject(int.Parse(subjectId));

                        if (paperStrategySubject != null)
                        {
                            hfExamID.Value        = paperStrategySubject.RandomExamId.ToString();
                            txtSubjectName.Text   = paperStrategySubject.SubjectName;
                            ddlType.SelectedValue = paperStrategySubject.ItemTypeId.ToString();
                            labelTotalCount.Text  = paperStrategySubject.ItemCount.ToString();

                            RandomExamStrategyBLL randomExamStrategyBLL = new RandomExamStrategyBLL();
                            IList <RailExam.Model.RandomExamStrategy> RandomExamStrategys = randomExamStrategyBLL.GetRandomExamStrategys(paperStrategySubject.RandomExamSubjectId);

                            int hasCount = 0;
                            foreach (RailExam.Model.RandomExamStrategy randomExamStrategy in RandomExamStrategys)
                            {
                                hasCount += randomExamStrategy.ItemCount;
                            }

                            labelLeaveCount.Text = (paperStrategySubject.ItemCount - hasCount).ToString();

                            txtNDR.Text = labelLeaveCount.Text;

                            RandomExamResultBLL reBll = new RandomExamResultBLL();
                            IList <RailExam.Model.RandomExamResult> examResults = reBll.GetRandomExamResultByExamID(paperStrategySubject.RandomExamId);

                            if (examResults.Count > 0)
                            {
                                SaveButton.Visible = false;
                            }
                        }

                        hfSubjectId.Value = subjectId;

                        mother1.Visible = false;
                        mother2.Visible = false;
                    }

                    OracleAccess db     = new OracleAccess();
                    string       strSql = "select RANDOM_EXAM_STRATEGY_SEQ.nextval from dual";
                    DataRow      dr     = db.RunSqlDataSet(strSql).Tables[0].Rows[0];
                    hfKeyID.Value = dr[0].ToString();
                }
                else
                {
                    hfKeyID.Value = strID;
                    FillPage(int.Parse(strID));
                }
            }

            if (!string.IsNullOrEmpty(HfChapterId.Value))
            {
                if (HfRangeType.Value == "4")
                {
                    BookChapterBLL chapterBll = new BookChapterBLL();
                    BookChapter    chapter    = chapterBll.GetBookChapter(Convert.ToInt32(HfChapterId.Value));

                    txtChapterName.Text = chapter.ChapterName;
                }
                else
                {
                    BookBLL             bookBll = new BookBLL();
                    RailExam.Model.Book book    = bookBll.GetBook(Convert.ToInt32(HfChapterId.Value));

                    txtChapterName.Text = book.bookName;
                }
            }

            if (!string.IsNullOrEmpty(HfExCludeChaptersId.Value))
            {
                string strSql = "select * from Book_Chapter where Chapter_ID in (" + HfExCludeChaptersId.Value + ")";

                OracleAccess db = new OracleAccess();
                DataSet      ds = db.RunSqlDataSet(strSql);

                string strName = string.Empty;
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    if (strName == string.Empty)
                    {
                        strName += dr["Chapter_Name"].ToString();
                    }
                    else
                    {
                        strName += "," + dr["Chapter_Name"].ToString();
                    }
                }

                txtExCludeChapters.Text = strName;
            }
        }
Beispiel #12
0
        protected void btnCancel_Click(object sender, EventArgs e)
        {
            //移除考生需要清楚考生安排明细
            string       strID = ViewState["ExamID"].ToString();
            OracleAccess db    = new OracleAccess();
            //查询当前考试所有考生安排明细
            string  strSql  = "select * from Random_Exam_Arrange_Detail where Random_Exam_ID=" + strID;
            DataSet dsOther = db.RunSqlDataSet(strSql);

            //遍历当前需要移除的考生信息,查询考生安排明细是否存在当前需要移除的考生,如果存在则需修改去除该考生
            string[] str = ViewState["AddIds"].ToString().Split('|');
            for (int i = 0; i < str.Length; i++)
            {
                string    strReplace = "," + str[i] + ",";
                DataRow[] drs        = dsOther.Tables[0].Select("','+User_Ids+',' like '%" + strReplace + "%'");

                if (drs.Length > 0)
                {
                    strSql = "update Random_Exam_Arrange_Detail "
                             + "set User_ids = substr(Replace(','||User_ids||',','" + strReplace +
                             "',','),2,length(Replace(','||User_ids||',','" + strReplace + "',','))-2) "
                             + "where  ','|| User_ids || ',' like '%" + strReplace + "%' and Random_Exam_ID=" + strID;

                    if (PrjPub.IsServerCenter)
                    {
                        db.ExecuteNonQuery(strSql);
                    }
                    else
                    {
                        string       strConn  = ConfigurationManager.ConnectionStrings["OracleCenter"].ConnectionString;
                        OracleAccess dbCenter = new OracleAccess(strConn);
                        dbCenter.ExecuteNonQuery(strSql);

                        RandomExamArrangeBLL objBll = new RandomExamArrangeBLL();
                        objBll.RefreshRandomExamArrange();
                    }
                }
            }

            //查询考试在当前站段考试的考生信息
            strSql = "select a.* from Random_Exam_Arrange_Detail a "
                     + " inner join Computer_Room b on a.Computer_Room_ID=b.Computer_Room_ID"
                     + " where Random_Exam_ID=" + ViewState["ExamID"];
            DataSet ds = db.RunSqlDataSet(strSql);

            string strEndId = string.Empty;

            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                if (strEndId.Length == 0)
                {
                    strEndId += dr["User_Ids"].ToString();
                }
                else
                {
                    strEndId += "," + dr["User_Ids"];
                }
            }

            RandomExamArrangeBLL examArrangeBLL = new RandomExamArrangeBLL();

            if (!PrjPub.IsServerCenter)
            {
                examArrangeBLL.UpdateRandomExamArrangeToServer(int.Parse(ViewState["ExamID"].ToString()), strEndId);
            }
            else
            {
                examArrangeBLL.UpdateRandomExamArrange(int.Parse(ViewState["ExamID"].ToString()), strEndId);
            }


            Response.Write("<script>top.returnValue ='true';top.close();</script>");
        }
Beispiel #13
0
        protected void ButtonOutPut_Click(object sender, EventArgs e)
        {
            string strAllId = ViewState["ChooseId"].ToString();

            if (strAllId == "")
            {
                return;
            }

            string strOldAllId = "," + strAllId + ",";
            string strRemove   = string.Empty;

            for (int i = 0; i < this.gvChoose.Rows.Count; i++)
            {
                CheckBox CheckBox1 = (CheckBox)this.gvChoose.Rows[i].FindControl("chkSelect2");
                string   strEmId   = ((Label)this.gvChoose.Rows[i].FindControl("LabelEmployeeID")).Text;
                if (CheckBox1.Checked)
                {
                    strOldAllId = strOldAllId.Replace(strEmId + ",", "");

                    if (strRemove == string.Empty)
                    {
                        strRemove = strEmId;
                    }
                    else
                    {
                        strRemove += "," + strEmId;
                    }
                }
            }

            int n = strOldAllId.Length;

            if (n == 1)
            {
                ViewState["ChooseId"] = "";
            }
            else
            {
                ViewState["ChooseId"] = strOldAllId.Substring(1, n - 2);
            }

            //移除考生需要清楚考生安排明细
            string       strID = ViewState["ExamID"].ToString();
            OracleAccess db    = new OracleAccess();
            //查询当前考试所有考生安排明细
            string  strSql  = "select * from Random_Exam_Arrange_Detail where Random_Exam_ID=" + strID;
            DataSet dsOther = db.RunSqlDataSet(strSql);

            //遍历当前需要移除的考生信息,查询考生安排明细是否存在当前需要移除的考生,如果存在则需修改去除该考生
            string[] str = strRemove.ToString().Split(',');
            for (int i = 0; i < str.Length; i++)
            {
                string    strReplace = "," + str[i] + ",";
                DataRow[] drs        = dsOther.Tables[0].Select("','+User_Ids+',' like '%" + strReplace + "%'");

                if (drs.Length > 0)
                {
                    strSql = "update Random_Exam_Arrange_Detail "
                             + "set User_ids = substr(Replace(','||User_ids||',','" + strReplace +
                             "',','),2,length(Replace(','||User_ids||',','" + strReplace + "',','))-2) "
                             + "where  ','|| User_ids || ',' like '%" + strReplace + "%' and Random_Exam_ID=" +
                             strID;

                    if (PrjPub.IsServerCenter)
                    {
                        db.ExecuteNonQuery(strSql);
                    }
                    else
                    {
                        string       strConn  = ConfigurationManager.ConnectionStrings["OracleCenter"].ConnectionString;
                        OracleAccess dbCenter = new OracleAccess(strConn);
                        dbCenter.ExecuteNonQuery(strSql);

                        RandomExamArrangeBLL objBll = new RandomExamArrangeBLL();
                        objBll.RefreshRandomExamArrange();
                    }
                }

                hfAddIds.Value =
                    ("," + (hfAddIds.Value.Replace("|", ",")) + ",").Replace(strReplace, ",").TrimStart(',').TrimEnd(',').Replace(",", "|");
            }

            BindChoosedGrid(ViewState["ChooseId"].ToString());

            SaveChoose();
        }
Beispiel #14
0
        private void BindChoosedGrid(string strId)
        {
            HasExamId();

            //string[] str = ViewState["HasExamId"].ToString().Split(',');
            //for (int i = 0; i < str.Length; i++)
            //{
            //    string strEmId = str[i];
            //    string strOldAllId = "," + strId + ",";
            //    if (strOldAllId.IndexOf("," + strEmId + ",") == -1)
            //    {
            //        if (strId.Length == 0)
            //        {
            //            strId += strEmId;
            //        }
            //        else
            //        {
            //            strId = strEmId + "," + strId;
            //        }
            //    }
            //}

            EmployeeBLL psBLL = new EmployeeBLL();
            DataSet     ds    = new DataSet();

            IList <Employee> objList = new List <Employee>();

            //str = strId.Split(',');
            //if (str[0] != "")
            //{
            //    int n = 0;
            //    for (int i = str.Length-1; i >=0 ; i--)
            //    {
            //        Employee obj = psBLL.GetChooseEmployeeInfo(str[i]);
            //        obj.RowNum = n+1;
            //        objList.Add(obj);
            //        n++;
            //    }
            //    ds.Tables.Add(ConvertToDataTable((IList)objList));
            //    gvChoose.DataSource = objList;
            //    gvChoose.DataBind();
            //}
            //else
            //{
            //    BindEmptyGrid2();
            //}

            string[] str1 = strId.Split(',');

            if (str1[0] != "")
            {
                OracleAccess db = new OracleAccess();
                string       strSql;
                for (int i = 0; i < str1.Length; i++)
                {
                    if (string.IsNullOrEmpty(str1[i]))
                    {
                        continue;
                    }

                    Employee obj = psBLL.GetChooseEmployeeInfo(str1[i]);
                    obj.RowNum = i + 1;
                    //if (string.IsNullOrEmpty(obj.WorkNo))
                    //{
                    //    strSql = "select identity_cardno from Employee where Employee_ID=" + str1[i];
                    //    obj.WorkNo = db.RunSqlDataSet(strSql).Tables[0].Rows[0][0].ToString();
                    //}
                    objList.Add(obj);
                }

                ds.Tables.Add(ConvertToDataTable((IList)objList));

                if (ViewState["Sort"] != null)
                {
                    ds.Tables[0].DefaultView.Sort = ViewState["Sort"].ToString();
                }

                DataColumn dc = ds.Tables[0].Columns.Add("ComputeRoom");

                strSql = "select a.*,c.Short_Name||'-'||b.Computer_Room_Name as ComputeRoom "
                         + " from Random_Exam_Arrange_Detail a "
                         + " inner join Computer_Room b on a.Computer_Room_ID=b.Computer_Room_ID"
                         + " inner join Org c on b.Org_ID=c.Org_ID "
                         + " where Random_Exam_ID='" + ViewState["ExamID"] + "'";
                DataSet dsDetail = db.RunSqlDataSet(strSql);
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    string    strUser = "******" + dr["EmployeeID"] + ",";
                    DataRow[] drs     = dsDetail.Tables[0].Select("','+User_Ids+',' like '%" + strUser + "%'");

                    if (drs.Length > 0)
                    {
                        dr["ComputeRoom"] = drs[0]["ComputeRoom"].ToString();
                    }
                    else
                    {
                        dr["ComputeRoom"] = string.Empty;
                    }
                }

                gvChoose.DataSource = ds;
                gvChoose.DataBind();
            }
            else
            {
                BindEmptyGrid2();
            }
        }
Beispiel #15
0
        private void BindGrid()
        {
            BookBLL bookBLL = new BookBLL();
            IList <RailExam.Model.Book> books         = new List <RailExam.Model.Book>();
            IList <RailExam.Model.Book> booksViaPosts = new List <RailExam.Model.Book>();

            OrganizationBLL orgBll = new OrganizationBLL();
            int             orgID  = orgBll.GetStationOrgID(PrjPub.CurrentLoginUser.OrgID);

            string strKnowledgeIDPath = Request.QueryString.Get("id");

            if (!string.IsNullOrEmpty(strKnowledgeIDPath))
            {
                if (strKnowledgeIDPath != "0")
                {
                    books = bookBLL.GetBookByKnowledgeID(Convert.ToInt32(strKnowledgeIDPath), orgID);
                }
                else
                {
                    if (PrjPub.CurrentLoginUser.SuitRange == 1)
                    {
                        books = bookBLL.GetAllBookInfo(0);
                    }
                    else
                    {
                        books = bookBLL.GetAllBookInfo(orgID);
                    }
                }
            }

            string strTrainTypeIDPath = Request.QueryString.Get("id1");

            if (!string.IsNullOrEmpty(strTrainTypeIDPath))
            {
                if (strTrainTypeIDPath != "0")
                {
                    books = bookBLL.GetBookByTrainTypeID(Convert.ToInt32(strTrainTypeIDPath), orgID);
                }
                else
                {
                    if (PrjPub.CurrentLoginUser.SuitRange == 1)
                    {
                        books = bookBLL.GetAllBookInfo(0);
                    }
                    else
                    {
                        books = bookBLL.GetAllBookInfo(orgID);
                    }
                }
            }

            OracleAccess oa = new OracleAccess();

            if (!string.IsNullOrEmpty(txtPost.Text.Trim()) || !string.IsNullOrEmpty(hfPostID.Value))
            {
                string postID = this.hfPostID.Value;

                string sql = String.Format(
                    @"select book_id from BOOK_RANGE_POST t 
                        where 
                            post_id = {0} 
                            or 
                            post_id in 
                                (select post_id from POST t where parent_id = {0})",
                    postID
                    );

                DataSet dsBookIDs = oa.RunSqlDataSet(sql);
                if (dsBookIDs != null && dsBookIDs.Tables.Count > 0)
                {
                    foreach (RailExam.Model.Book book in books)
                    {
                        DataRow[] drs = dsBookIDs.Tables[0].Select("book_id=" + book.bookId);
                        if (drs.Length > 0)
                        {
                            booksViaPosts.Add(book);
                        }
                    }
                    books.Clear();
                    books = booksViaPosts;
                }
            }

            int railSystemid = PrjPub.RailSystemId();

            if (railSystemid != 0)
            {
                string sql = String.Format(
                    @"select book_id from BOOK_RANGE_ORG t 
                        where 
                            org_Id in (select org_id from org where rail_System_Id={0} and level_num=2) ",
                    railSystemid
                    );

                DataSet dsBookIDs = oa.RunSqlDataSet(sql);
                if (dsBookIDs != null && dsBookIDs.Tables.Count > 0)
                {
                    foreach (RailExam.Model.Book book in books)
                    {
                        DataRow[] drs = dsBookIDs.Tables[0].Select("book_id=" + book.bookId);
                        if (drs.Length > 0)
                        {
                            booksViaPosts.Add(book);
                        }
                    }
                    books.Clear();
                    books = booksViaPosts;
                }
            }

            if (books.Count > 0)
            {
                foreach (RailExam.Model.Book book in books)
                {
                    if (book.authors == null)
                    {
                        book.authors = "-1";
                    }

                    if (book.bookName.Length <= 30)
                    {
                        book.bookName = "<a onclick=OpenIndex('" + book.bookId + "') href=# title=" + book.bookName + " > " + book.bookName + " </a>";
                    }
                    else
                    {
                        book.bookName = "<a onclick=OpenIndex('" + book.bookId + "') href=# title=" + book.bookName + " > " + book.bookName.Substring(0, 15) + "...</a>";
                    }
                }

                Grid1.DataSource = books;
                Grid1.DataBind();
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ViewState["RandomExamItemID"] = Request.QueryString.Get("RandomExamItemID");
                ViewState["BookID"]           = Request.QueryString.Get("BookID");
                ViewState["ChapterID"]        = Request.QueryString.Get("ChapterID");
                ViewState["RangeType"]        = Request.QueryString.Get("RangeType");
                ViewState["Begin"]            = Request.QueryString.Get("BeginDate");
                ViewState["End"]        = Request.QueryString.Get("EndDate");
                ViewState["ExamID"]     = Request.QueryString.Get("ExamID");
                ViewState["EmployeeID"] = Request.QueryString.Get("EmployeeID");

                RandomExamBLL             objbll        = new RandomExamBLL();
                RailExam.Model.RandomExam objRandomExam = objbll.GetExam(Convert.ToInt32(ViewState["ExamID"]));
                int year = objRandomExam.BeginTime.Year;

                string strSql = "select a.*,GetBookChapterName(Chapter_ID) ChapterName from Random_Exam_Item_" + year + @" a
                            where Random_Exam_Item_ID=" +
                                ViewState["RandomExamItemID"];
                OracleAccess db = new OracleAccess();
                DataSet      ds = db.RunSqlDataSet(strSql);
                if (ds.Tables[0].Rows.Count > 0)
                {
                    lblBookChapter.Text = ds.Tables[0].Rows[0]["ChapterName"].ToString();
                }

                int itemID     = Convert.ToInt32(ViewState["RandomExamItemID"].ToString());
                int bookID     = Convert.ToInt32(ViewState["BookID"].ToString());
                int chapterID  = Convert.ToInt32(ViewState["ChapterID"].ToString());
                int typeID     = Convert.ToInt32(ViewState["RangeType"].ToString());
                int examID     = Convert.ToInt32(ViewState["ExamID"].ToString());
                int employeeID = Convert.ToInt32(ViewState["EmployeeID"].ToString());

                RandomExamStatisticBLL objBll = new RandomExamStatisticBLL();
                IList <RailExam.Model.RandomExamStatistic> objList = null;
                if (typeID != 0 && employeeID == 0)
                {
                    int orgID = -1;
                    if (PrjPub.CurrentLoginUser.SuitRange == 1)
                    {
                        orgID = -1;
                    }
                    else
                    {
                        orgID = PrjPub.CurrentLoginUser.StationOrgID;
                    }

                    DateTime begin = Convert.ToDateTime(ViewState["Begin"].ToString());
                    DateTime end   = Convert.ToDateTime(ViewState["End"].ToString());
                    objList = objBll.GetErrorItemInfoByItemID(bookID, chapterID, typeID, examID, begin, end, orgID, -1, itemID);
                }
                else if (typeID == 0 && employeeID == 0)
                {
                    objList = objBll.GetErrorItemInfoByItemID(bookID, chapterID, typeID, examID, DateTime.Today, DateTime.Today, -1, -1, itemID);
                }
                else if (employeeID != 0)
                {
                    objList = objBll.GetErrorItemInfoByItemID(bookID, chapterID, typeID, examID, DateTime.Today, DateTime.Today, -1, employeeID, itemID);
                }

                foreach (RailExam.Model.RandomExamStatistic statistic in objList)
                {
                    if (statistic.Answer != "")
                    {
                        string[] str = statistic.Answer.Split('|');

                        string strAnswer = string.Empty;
                        for (int i = 0; i < str.Length; i++)
                        {
                            strAnswer += strAnswer == string.Empty ? intToString(Convert.ToInt32(str[i]) + 1) : "|" + intToString(Convert.ToInt32(str[i]) + 1);
                        }

                        statistic.Answer = strAnswer;
                    }

                    if (statistic.StandardAnswer != "")
                    {
                        string[] str = statistic.StandardAnswer.Split('|');

                        string strAnswer = string.Empty;
                        for (int i = 0; i < str.Length; i++)
                        {
                            strAnswer += strAnswer == string.Empty ? intToString(Convert.ToInt32(str[i]) + 1) : "|" + intToString(Convert.ToInt32(str[i]) + 1);
                        }

                        statistic.StandardAnswer = strAnswer;
                    }
                }

                examsGrid.DataSource = objList;
                examsGrid.DataBind();
            }
        }
Beispiel #17
0
        protected void btnQuery_Click(object sender, EventArgs e)
        {
            BookBLL bookBLL = new BookBLL();
            IList <RailExam.Model.Book> books         = new List <RailExam.Model.Book>();
            IList <RailExam.Model.Book> booksViaPosts = new List <RailExam.Model.Book>();

            OrganizationBLL orgBll = new OrganizationBLL();
            int             orgID  = orgBll.GetStationOrgID(PrjPub.CurrentLoginUser.OrgID);

            string strKnowledgeID = Request.QueryString.Get("id");

            if (!string.IsNullOrEmpty(strKnowledgeID))
            {
                if (strKnowledgeID != "0")
                {
                    string[] str1         = strKnowledgeID.Split(new char[] { '/' });
                    int      nKnowledgeId = int.Parse(str1[str1.LongLength - 1].ToString());
                    books = bookBLL.GetBookByKnowledgeID(nKnowledgeId, txtBookName.Text, txtKeyWords.Text, txtAuthors.Text, orgID);
                }
                else
                {
                    books = bookBLL.GetBookByKnowledgeID(0, txtBookName.Text, txtKeyWords.Text, txtAuthors.Text, orgID);
                }
            }

            string strTrainTypeID = Request.QueryString.Get("id1");

            if (!string.IsNullOrEmpty(strTrainTypeID))
            {
                if (strTrainTypeID != "0")
                {
                    string[] str2         = strTrainTypeID.Split(new char[] { '/' });
                    int      nTrainTypeID = int.Parse(str2[str2.LongLength - 1].ToString());
                    books = bookBLL.GetBookByTrainTypeID(nTrainTypeID, txtBookName.Text, txtKeyWords.Text, txtAuthors.Text, orgID);
                }
                else
                {
                    books = bookBLL.GetBookByTrainTypeID(0, txtBookName.Text, txtKeyWords.Text, txtAuthors.Text, orgID);
                }
            }

            if (string.IsNullOrEmpty(hfPostID.Value))
            {
                txtPost.Text = string.Empty;
            }

            OracleAccess oa = new OracleAccess();

            if (this.txtPost.Text.Trim().Length > 0)
            {
                string postID = this.hfPostID.Value;

                string sql = String.Format(
                    @"select book_id from BOOK_RANGE_POST t 
                        where 
                            post_id = {0} 
                            or 
                            post_id in 
                                (select post_id from POST t where parent_id = {0})",
                    postID
                    );

                DataSet dsBookIDs = oa.RunSqlDataSet(sql);
                if (dsBookIDs != null && dsBookIDs.Tables.Count > 0)
                {
                    foreach (RailExam.Model.Book book in books)
                    {
                        DataRow[] drs = dsBookIDs.Tables[0].Select("book_id=" + book.bookId);
                        if (drs.Length > 0)
                        {
                            booksViaPosts.Add(book);
                        }
                    }
                    books.Clear();
                    books = booksViaPosts;
                }
            }


            int railSystemid = PrjPub.RailSystemId();

            if (railSystemid != 0)
            {
                string sql = String.Format(
                    @"select book_id from BOOK_RANGE_ORG t 
                        where 
                            org_Id in (select org_id from org where rail_System_Id={0} and level_num=2) ",
                    railSystemid
                    );

                DataSet dsBookIDs = oa.RunSqlDataSet(sql);
                if (dsBookIDs != null && dsBookIDs.Tables.Count > 0)
                {
                    foreach (RailExam.Model.Book book in books)
                    {
                        DataRow[] drs = dsBookIDs.Tables[0].Select("book_id=" + book.bookId);
                        if (drs.Length > 0)
                        {
                            booksViaPosts.Add(book);
                        }
                    }
                    books.Clear();
                    books = booksViaPosts;
                }
            }

            if (books != null)
            {
                foreach (RailExam.Model.Book book in books)
                {
                    if (book.bookName.Length <= 15)
                    {
                        book.bookName = "<a onclick=OpenIndex('" + book.bookId + "') href=# title=" + book.bookName + " > " + book.bookName + " </a>";
                    }
                    else
                    {
                        book.bookName = "<a onclick=OpenIndex('" + book.bookId + "') href=# title=" + book.bookName + " > " + book.bookName.Substring(0, 15) + "...</a>";
                    }
                }

                Grid1.DataSource = books;
                Grid1.DataBind();
            }
        }
Beispiel #18
0
        public void FillPaper()
        {
            string strId = Request.QueryString.Get("id");

            RandomExamBLL randomExamBLL = new RandomExamBLL();

            RailExam.Model.RandomExam randomExam = randomExamBLL.GetExam(int.Parse(strId));
            ViewState["Year"] = randomExam.BeginTime.Year.ToString();

            RandomExamResultCurrentBLL objResultCurrentBll = new RandomExamResultCurrentBLL();

            RailExam.Model.RandomExamResultCurrent randomExamResult = objResultCurrentBll.GetNowRandomExamResultInfo(Convert.ToInt32(Request.QueryString.Get("employeeID")), Convert.ToInt32(strId));

            int RandomExamId       = Convert.ToInt32(strId);
            int randomExamResultId = randomExamResult.RandomExamResultId;

            RandomExamItemBLL         randomItemBLL      = new RandomExamItemBLL();
            RandomExamSubjectBLL      subjectBLL         = new RandomExamSubjectBLL();
            IList <RandomExamSubject> randomExamSubjects = subjectBLL.GetRandomExamSubjectByRandomExamId(RandomExamId);

            RandomExamResultAnswerCurrentBLL      randomExamResultAnswerBLL = new RandomExamResultAnswerCurrentBLL();
            IList <RandomExamResultAnswerCurrent> examResultAnswers         = new List <RandomExamResultAnswerCurrent>();

            examResultAnswers = randomExamResultAnswerBLL.GetExamResultAnswersCurrent(randomExamResultId);

            OracleAccess db = new OracleAccess();

            if (randomExamSubjects != null)
            {
                for (int i = 0; i < randomExamSubjects.Count; i++)
                {
                    RandomExamSubject      paperSubject = randomExamSubjects[i];
                    IList <RandomExamItem> PaperItems   = new List <RandomExamItem>();
                    PaperItems = randomItemBLL.GetItemsCurrent(paperSubject.RandomExamSubjectId, randomExamResultId, Convert.ToInt32(ViewState["Year"].ToString()));

                    Response.Write("<br>");
                    Response.Write("<span class='StudentLeftInfo'><b> 第" + GetNo(i) + "大题:" + paperSubject.SubjectName + "</b></span>");
                    Response.Write("<br>");

                    if (PaperItems != null)
                    {
                        Response.Write("<table width='100%'  border='1'>");
                        int z     = 1;
                        int tempK = 0;
                        int count = 1;
                        for (int j = 0; j < PaperItems.Count; j++)
                        {
                            RandomExamItem paperItem = PaperItems[j];
                            int            k         = j + 1;


                            if (paperItem.TypeId != PrjPub.ITEMTYPE_FILLBLANKDETAIL && paperItem.TypeId != PrjPub.ITEMTYPE_FILLBLANK)
                            {
                                z = 1;

                                if (k % 5 == 1)
                                {
                                    Response.Write("</tr >");
                                    Response.Write("<tr><td class='StudentTableInfo' id='Item" + i + j + "' >"
                                                   + "<a href='AttendExamNew.aspx?id=" + strId + "&employeeID=" + Request.QueryString.Get("employeeID")
                                                   + "#Test" + i + j + "' target='ifExamInfo' style='cursor: hand;'><b>" + k + "</b></a></td>");
                                }
                                else
                                {
                                    Response.Write("<td class='StudentTableInfo' id='Item" + i + j + "' >"
                                                   + "<a href='AttendExamNew.aspx?id=" + strId + "&employeeID=" + Request.QueryString.Get("employeeID")
                                                   + "#Test" + i + j + "' target='ifExamInfo' style='cursor: hand;'><b>" + k + "</b></a></td>");
                                }
                            }
                            else
                            {
                                if (paperItem.TypeId == PrjPub.ITEMTYPE_FILLBLANK)
                                {
                                    z = 1;
                                    tempK++;
                                }

                                if (count % 3 == 1)
                                {
                                    Response.Write("</tr >");
                                    Response.Write("<tr><td class='StudentTableInfo' id='Item" + i + j + "' >"
                                                   + "<a href='AttendExamNew.aspx?id=" + strId + "&employeeID=" + Request.QueryString.Get("employeeID")
                                                   + "#Test" + i + j + "' target='ifExamInfo' style='cursor: hand;'><b>" + tempK + "-(" + z + ")</b></a></td>");
                                }
                                else
                                {
                                    Response.Write("<td class='StudentTableInfo' id='Item" + i + j + "' >"
                                                   + "<a href='AttendExamNew.aspx?id=" + strId + "&employeeID=" + Request.QueryString.Get("employeeID")
                                                   + "#Test" + i + j + "' target='ifExamInfo' style='cursor: hand;'><b>" + tempK + "-(" + z + ")</b></a></td>");
                                }

                                z++;
                                count++;
                            }
                        }

                        Response.Write("</tr >");
                        Response.Write("</table>");
                    }
                }

                //ClientScript.RegisterStartupScript(GetType(), "StartStyle", "<script>StartStyle()</script>");
            }
            else
            {
                SessionSet.PageMessage = "未找到记录!";
            }
        }
        private void updateExam()
        {
            // 根据 ProgressBar.htm 显示进度条界面
            string       templateFileName = Path.Combine(Server.MapPath("."), "ProgressBar.htm");
            StreamReader reader           = new StreamReader(@templateFileName, System.Text.Encoding.GetEncoding("gb2312"));
            string       html             = reader.ReadToEnd();

            reader.Close();
            Response.Write(html);
            Response.Flush();
            System.Threading.Thread.Sleep(200);
            string jsBlock;

            try
            {
                string                    strId   = Request.QueryString.Get("RandomExamID");
                RandomExamBLL             examBll = new RandomExamBLL();
                RailExam.Model.RandomExam exam    = examBll.GetExam(Convert.ToInt32(strId));

                IList <RandomExamResult> examResults   = null;
                RandomExamResultBLL      bllExamResult = new RandomExamResultBLL();
                examResults = bllExamResult.GetRandomExamResults(int.Parse(strId), "", "", "", "", 0, 1000, Convert.ToInt32(Request.QueryString.Get("OrgID")));
                string strChooseID = string.Empty;
                foreach (RandomExamResult randomExamResult in examResults)
                {
                    if (string.IsNullOrEmpty(strChooseID))
                    {
                        strChooseID += randomExamResult.ExamineeId;
                    }
                    else
                    {
                        strChooseID += "," + randomExamResult.ExamineeId;
                    }
                }

                OracleAccess access = new OracleAccess();
                string       strSql =
                    @"select ER.Begin_Time,E.Is_Computerexam,ER.Examinee_ID,
                        case when z.computer_room_seat=0 then GetOrgName(ER.org_ID)||CR.Computer_Room_Name||'微机教室'
                        else GetOrgName(ER.org_ID)||CR.Computer_Room_Name||'微机教室-'||z.computer_room_seat||'机位' end Computer_Room_Name, 
                        case when y.subject_name is not null then y.subject_name else
                        case when  MT.RANDOM_EXAM_MODULAR_TYPE_NAME is not null then (MT.RANDOM_EXAM_MODULAR_TYPE_NAME||'-'|| E.EXAM_NAME) 
                        else E.EXAM_NAME end  end as subject, 
                        ER.Score,ER.Is_Pass,E.RANDOM_EXAM_ID 
                        from random_exam_result ER 
                        inner join random_exam_result_detail z on ER.Random_Exam_Result_Id=z.Random_Exam_Result_Id and z.is_remove=1
                        left join random_exam E on E.RANDOM_EXAM_ID=ER.RANDOM_EXAM_ID 
                        left join random_exam_train_class x on E.Random_Exam_ID=x.Random_Exam_ID
                        left join Zj_Train_Class_Subject y on x.train_class_subject_id=y.train_class_subject_id
                        left join computer_room CR on CR.COMPUTER_ROOM_ID=z.Computer_Room_Id 
                        left join random_exam_modular_type MT on MT.RANDOM_EXAM_MODULAR_TYPE_ID=E.Random_Exam_Modular_Type_Id
                        Inner join (
                        select b.*,min(a.end_time) end_time from Random_Exam_Result a
                        inner join
                       (select distinct  max(a.score) score, a.examinee_id, a.Random_Exam_Id
                        from Random_EXAM_RESULT a where  a.status_id > 0.
                        group by a.examinee_id, a.Random_Exam_Id) b on a.examinee_id =b.examinee_id
                        and a.score =b.score and a.Random_Exam_Id = b.Random_Exam_Id
                        group by  b.examinee_id, b.Random_Exam_Id,b.score ) F on ER.examinee_id = f.examinee_id
                        and ER.score = f.score  and ER.Random_Exam_Id = f.Random_Exam_Id
                        and ER.end_time=f.end_time 
                        where ER.Random_Exam_ID=" + strId;



                DataTable dtSel = access.RunSqlDataSet(strSql).Tables[0];
                if (dtSel != null && dtSel.Rows.Count > 0)
                {
                    int i = 1;
                    foreach (DataRow r in dtSel.Rows)
                    {
                        if (("," + strChooseID + ",").IndexOf("," + r["Examinee_ID"] + ",") < 0)
                        {
                            System.Threading.Thread.Sleep(10);
                            jsBlock = "<script>SetPorgressBar('更新考生考试档案','" + ((i * 100) / ((double)dtSel.Rows.Count)).ToString("0.00") + "'); </script>";
                            Response.Write(jsBlock);
                            Response.Flush();

                            i++;
                            continue;
                        }
                        access.ExecuteNonQuery(" delete from zj_employee_exam where Random_Exam_ID=" + strId +
                                               " and  employee_id=" + r["Examinee_ID"]);

                        string exam_date      = r["Begin_Time"].ToString();
                        int    exam_style     = Convert.ToInt32(r["Is_Computerexam"]);
                        string exam_address   = r["Computer_Room_Name"].ToString();
                        string exam_subject   = r["subject"].ToString();
                        double exam_score     = Convert.ToDouble(r["Score"]);
                        int    exam_result    = Convert.ToInt32(r["Is_Pass"]);
                        int    random_exam_id = Convert.ToInt32(r["RANDOM_EXAM_ID"]);

                        StringBuilder sqlInsert = new StringBuilder();
                        sqlInsert.Append(
                            "insert into zj_employee_exam(employee_exam_id,employee_id,exam_date,exam_style,exam_address,");
                        sqlInsert.Append("exam_subject,exam_score ,exam_result,create_date,create_person,random_exam_id");
                        sqlInsert.Append(")  values(employee_exam_seq.nextval,{0},to_date('{1}','yyyy-mm-dd hh24:mi:ss'),{2},");
                        sqlInsert.Append(" '{3}','{4}','{5}',{6},to_date('{7}','yyyy-mm-dd hh24:mi:ss'),'{8}',{9})");
                        string sqlIns = string.Format(sqlInsert.ToString(), r["Examinee_ID"], exam_date, exam_style, exam_address,
                                                      exam_subject, exam_score, exam_result, DateTime.Now, PrjPub.CurrentLoginUser.EmployeeName,
                                                      random_exam_id);

                        access.ExecuteNonQuery(sqlIns);

                        System.Threading.Thread.Sleep(10);
                        jsBlock = "<script>SetPorgressBar('更新考生考试档案','" + ((i * 100) / ((double)dtSel.Rows.Count)).ToString("0.00") + "'); </script>";
                        Response.Write(jsBlock);
                        Response.Flush();

                        i++;
                    }
                }

                if (exam.HasTrainClass)
                {
                    jsBlock = string.Empty;

                    RandomExamTrainClassBLL      objBll  = new RandomExamTrainClassBLL();
                    IList <RandomExamTrainClass> objList =
                        objBll.GetRandomExamTrainClassByRandomExamID(Convert.ToInt32(strId));

                    string strClassID = "";
                    foreach (RandomExamTrainClass trainClass in objList)
                    {
                        strClassID += (strClassID == string.Empty)
                                          ? trainClass.TrainClassID.ToString()
                                          : "," + trainClass.TrainClassID;
                    }

                    StringBuilder sqlClass = new StringBuilder();
                    sqlClass.Append(" select C.TRAIN_CLASS_ID,begin_date,end_date,TP.TRAIN_PLAN_TYPE_ID,TP.Location,C.Employee_ID ");
                    sqlClass.Append(" from zj_train_class TC right join (select  train_plan_id, train_class_id,Employee_ID from zj_train_plan_employee");
                    sqlClass.AppendFormat(" where train_class_id in ({0}) ", strClassID);
                    sqlClass.Append("  ) C on C.TRAIN_CLASS_ID=TC.TRAIN_CLASS_ID ");
                    sqlClass.Append(" left join zj_train_plan TP on TP.TRAIN_PLAN_ID=C.TRAIN_PLAN_ID");
                    access = new OracleAccess();
                    DataTable dtClass = access.RunSqlDataSet(sqlClass.ToString()).Tables[0];
                    if (dtClass != null && dtClass.Rows.Count > 0)
                    {
                        int i = 1;
                        foreach (DataRow r in dtClass.Rows)
                        {
                            if (("," + strChooseID + ",").IndexOf("," + r["Employee_ID"] + ",") < 0)
                            {
                                System.Threading.Thread.Sleep(10);
                                jsBlock = "<script>SetPorgressBar('更新考生培训档案','" + ((i * 100) / ((double)dtClass.Rows.Count)).ToString("0.00") + "'); </script>";
                                Response.Write(jsBlock);
                                Response.Flush();

                                i++;
                                continue;
                            }

                            access.ExecuteNonQuery(" delete from zj_employee_train where Train_class_ID in (" + strClassID + ") and  employee_id=" + r["Employee_ID"]);

                            int    trainClassID    = Convert.ToInt32(r["TRAIN_CLASS_ID"]);
                            string beginDate       = r["begin_date"].ToString();
                            string endDate         = r["end_date"].ToString();
                            int    trainPlanTypeID = Convert.ToInt32(r["TRAIN_PLAN_TYPE_ID"]);
                            string location        = r["Location"].ToString();
                            int    hour            = 0;
                            string classSubject    = string.Empty;

                            DataTable dtSubject =
                                access.RunSqlDataSet(
                                    "select subject_name,class_hour from zj_train_class_subject where train_class_id=" +
                                    trainClassID).Tables[0];
                            if (dtSubject != null && dtSubject.Rows.Count > 0)
                            {
                                List <string> lst = new List <string>();
                                foreach (DataRow rhour in dtSubject.Rows)
                                {
                                    lst.Add(rhour["subject_name"].ToString());
                                    if (rhour["class_hour"].ToString() != "")
                                    {
                                        hour += Convert.ToInt32(rhour["class_hour"]);
                                    }
                                }
                                classSubject = string.Join(",", lst.ToArray());
                            }

                            StringBuilder sqlInsert = new StringBuilder();
                            sqlInsert.Append("insert into zj_employee_train values(EMPLOYEE_TRAIN_SEQ.NEXTVAL,");
                            sqlInsert.Append("{0},{1},to_date('{2}','yyyy-mm-dd hh24:mi:ss'),to_date('{3}','yyyy-mm-dd hh24:mi:ss'),");
                            sqlInsert.Append("{4},'{5}',{6},'{7}',to_date('{8}','yyyy-mm-dd hh24:mi:ss'),'{9}')");
                            string sqlIns = string.Format(sqlInsert.ToString(), r["Employee_ID"], trainClassID, beginDate, endDate,
                                                          trainPlanTypeID, location, hour, classSubject, DateTime.Now, PrjPub.CurrentLoginUser.EmployeeName);

                            access.ExecuteNonQuery(sqlIns);

                            jsBlock = "<script>SetPorgressBar('更新考生培训档案','" + ((i * 100) / ((double)dtClass.Rows.Count)).ToString("0.00") + "'); </script>";
                            Response.Write(jsBlock);
                            Response.Flush();

                            i++;
                        }
                    }
                }

                Response.Write("<script>top.returnValue='true';top.close();</script>");
            }
            catch (Exception)
            {
                Response.Write("<script>top.returnValue='false';top.close();</script>");
            }
        }
        protected void FillPage(int nExamID)
        {
            RandomExamBLL examBLL = new RandomExamBLL();

            RailExam.Model.RandomExam exam = examBLL.GetExam(nExamID);

            if (exam != null)
            {
                if (ViewState["startmode"].ToString() == "Edit")
                {
                    if (Pub.HasPaper(exam.RandomExamId))
                    {
                        Response.Write("<script>alert('该考试已生成试卷,不能被编辑!');window.close();</script>");
                        return;
                    }
                }
                hfHasTrainClass.Value   = exam.HasTrainClass.ToString();
                txtCategoryName.Text    = exam.CategoryName;
                hfCategoryId.Value      = exam.CategoryId.ToString();
                ddlType.SelectedValue   = exam.ExamTypeId.ToString();
                txtExamName.Text        = exam.ExamName;
                txtExamTime.Text        = exam.ExamTime.ToString();
                dateBeginTime.DateValue = exam.BeginTime.ToString("yyyy-MM-dd HH:mm:ss");
                dateEndTime.DateValue   = exam.EndTime.ToString("yyyy-MM-dd HH:mm:ss");
                txtPassScore.Text       = exam.PassScore.ToString();
                if (exam.IsComputerExam)
                {
                    rbnExamMode1.Checked = true;
                    rbnExamMode2.Checked = false;
                }
                else
                {
                    rbnExamMode1.Checked = false;
                    rbnExamMode2.Checked = true;
                    rbnExamMode1.Enabled = false;
                    rbnExamMode2.Enabled = false;
                }

                if (exam.StartMode == 1)
                {
                    rbnStartMode1.Checked = true;
                }
                else
                {
                    rbnStartMode2.Checked = true;
                }

                if (exam.ExamStyle == 1)
                {
                    rbnStyle1.Checked = true;
                }
                else
                {
                    rbnStyle2.Checked = true;
                }

                if (exam.AutoSaveInterval == 1)
                {
                    chkAllItem.Checked = true;
                }
                else
                {
                    chkAllItem.Checked = false;
                }

                txtMET2.Text                 = exam.MaxExamTimes.ToString();
                chUD.Checked                 = exam.IsUnderControl;
                chAutoScore.Checked          = exam.IsAutoScore;
                chkCanSeeAnswer.Checked      = exam.CanSeeAnswer;
                chSeeScore.Checked           = exam.CanSeeScore;
                chPublicScore.Checked        = exam.IsPublicScore;
                txtDescription.Text          = exam.Description;
                txtMemo.Text                 = exam.Memo;
                ddlModularType.SelectedValue = exam.RandomExamModularTypeID.ToString();
                chkIsReduceScore.Checked     = exam.IsReduceError;

                //存档考试
                if (exam.ExamStyle == 2)
                {
                    rbnStyle2.Checked     = true;
                    saveTd.Visible        = true;
                    ddlDate.SelectedValue = exam.SaveStatus.ToString();

                    if (exam.SaveStatus == 2)
                    {
                        dateSaveDate.Visible   = true;
                        dateSaveDate.DateValue = Convert.ToDateTime(exam.SaveDate).ToString("yyyy-MM-dd");
                    }
                    else
                    {
                        dateSaveDate.Visible = false;
                    }
                }
                else
                {
                    rbnStyle1.Checked = true;
                    saveTd.Visible    = false;
                }

                lblCreatePerson.Text = exam.CreatePerson;
                lblCreateTime.Text   = exam.CreateTime.ToString("yyyy-MM-dd HH:mm");

                if (ViewState["startmode"].ToString() == "Edit")
                {
                    RandomExamResultBLL reBll = new RandomExamResultBLL();
                    IList <RailExam.Model.RandomExamResult> examResults =
                        reBll.GetRandomExamResultByExamID(exam.RandomExamId);

                    if (examResults.Count > 0)
                    {
                        ViewState["mode"] = "ReadOnly";
                    }
                }



                chkHasTrainClass.Checked   = exam.HasTrainClass;
                ViewState["HasTrainClass"] = chkHasTrainClass.Checked.ToString();
                SetTrainClassVisible(chkHasTrainClass.Checked);
                if (chkHasTrainClass.Checked)
                {
                    RandomExamTrainClassBLL      objTrainClassBll  = new RandomExamTrainClassBLL();
                    IList <RandomExamTrainClass> objTrainClassList =
                        objTrainClassBll.GetRandomExamTrainClassByRandomExamID(exam.RandomExamId);
                    DataTable dataTable = new DataTable();
                    dataTable.Columns.Add(new DataColumn("RandomExamTrainClassID", typeof(int)));
                    dataTable.Columns.Add(new DataColumn("RandomExamID", typeof(int)));
                    dataTable.Columns.Add(new DataColumn("TrainClassID", typeof(int)));
                    dataTable.Columns.Add(new DataColumn("TrainClassName", typeof(string)));
                    dataTable.Columns.Add(new DataColumn("TrainClassSubjectID", typeof(int)));
                    dataTable.Columns.Add(new DataColumn("TrainClassSubjectName", typeof(string)));

                    string strSql = "";
                    foreach (RandomExamTrainClass trainClass in objTrainClassList)
                    {
                        DataRow newRow = dataTable.NewRow();

                        newRow[0] = trainClass.RandomExamTrainClassID;
                        newRow[1] = trainClass.RandomExamID;
                        newRow[2] = trainClass.TrainClassID;

                        OracleAccess db = new OracleAccess();
                        strSql    = "select * from ZJ_Train_Class where Train_Class_ID=" + trainClass.TrainClassID;
                        newRow[3] = db.RunSqlDataSet(strSql).Tables[0].Rows[0]["Train_Class_Name"].ToString();

                        newRow[4] = trainClass.TrainClassSubjectID;

                        strSql    = "select * from ZJ_Train_Class_Subject where Train_Class_Subject_ID=" + trainClass.TrainClassSubjectID;
                        newRow[5] = db.RunSqlDataSet(strSql).Tables[0].Rows[0]["Subject_Name"].ToString();

                        dataTable.Rows.Add(newRow);

                        if (hfTrainClassID.Value == "")
                        {
                            hfTrainClassID.Value = trainClass.TrainClassID.ToString();
                        }
                        else
                        {
                            hfTrainClassID.Value = hfTrainClassID.Value + "," + trainClass.TrainClassID.ToString();
                        }
                    }

                    ViewState["TrainClass"] = hfTrainClassID.Value;

                    Grid1.DataSource = dataTable;
                    Grid1.DataBind();

                    //当考试为补考的时候,不能修改培训班信息
                    if (exam.IsReset)
                    {
                        chkHasTrainClass.Enabled = false;
                        Grid1.Enabled            = false;
                        btnAddTrainClass.Visible = false;
                    }
                    hfIsReset.Value = exam.IsReset.ToString();
                }
                else
                {
                    ViewState["TrainClass"] = "";
                    ViewState["PostID"]     = "";
                }

                hfPostID.Value      = exam.PostID;
                ViewState["PostID"] = hfPostID.Value;

                if (!string.IsNullOrEmpty(exam.PostID))
                {
                    PostBLL  postBLL   = new PostBLL();
                    string[] strPostID = exam.PostID.Split(',');
                    for (int i = 0; i < strPostID.Length; i++)
                    {
                        if (i == 0)
                        {
                            txtPost.Text = postBLL.GetPost(Convert.ToInt32(strPostID[i])).PostName;
                        }
                        else
                        {
                            txtPost.Text = txtPost.Text + "," + postBLL.GetPost(Convert.ToInt32(strPostID[i])).PostName;
                        }
                    }
                    hfPostName.Value = txtPost.Text;
                }
            }

            if (ViewState["mode"].ToString() == "ReadOnly")
            {
                txtExamName.Enabled      = false;
                dateBeginTime.Enabled    = false;
                dateEndTime.Enabled      = false;
                ddlType.Enabled          = false;
                txtExamTime.Enabled      = false;
                rbnExamMode1.Enabled     = false;
                rbnExamMode2.Enabled     = false;
                txtMET2.Enabled          = false;
                chUD.Enabled             = false;
                chAutoScore.Enabled      = false;
                chkCanSeeAnswer.Enabled  = false;
                chSeeScore.Enabled       = false;
                chPublicScore.Enabled    = false;
                txtDescription.Enabled   = false;
                txtMemo.Enabled          = false;
                rbnStartMode1.Enabled    = false;
                rbnStartMode2.Enabled    = false;
                txtPassScore.Enabled     = false;
                chkHasTrainClass.Enabled = false;
                Grid1.Enabled            = false;
            }
        }
Beispiel #21
0
        private string GetSql()
        {
            string id = Request.QueryString.Get("ID");


            string       employeename = this.txtName.Text.Trim().ToString();
            string       sex          = this.ddlSex.SelectedValue.ToString();
            string       strPath      = Request.QueryString.Get("idpath");
            DataSet      ds           = new DataSet();
            OracleAccess ora          = new OracleAccess();
            string       strSql       = string.Empty;

            if (id == "1" || id == "0")
            {
                strSql = "select a.EMPLOYEE_ID,EMPLOYEE_NAME,SEX,a.POST_ID,ISONPOST,a.MEMO,c.Post_Name,d.FingerNum,"
                         + " (case when IsONPost=1 then '是' else '否' end) as IsOnPostName,"
                         + " (case when o.photo is not null then 1 else 0 end  ) as isPhoto "
                         + " from Employee a "
                         + " inner join Post c on a.Post_ID=c.Post_ID "
                         + " inner join Org b on a.Org_ID=b.Org_ID "
                         + " left join employee_photo o on o.EMPLOYEE_ID=a.EMPLOYEE_ID "
                         + " left join (select employee_id,count(*) FingerNum from Employee_FingerPrint group by Employee_ID) d "
                         + " on a.Employee_ID=d.Employee_ID "
                         + " where 1=1";

                if (string.IsNullOrEmpty(employeename))
                {
                    strSql += " and 1=2";
                }

                if (!PrjPub.IsServerCenter)
                {
                    strSql += " and GetStationOrgID(a.org_ID)=" + ConfigurationManager.AppSettings["StationID"];
                }
            }
            else
            {
                strSql = "select a.EMPLOYEE_ID,EMPLOYEE_NAME,SEX,a.POST_ID,ISONPOST,a.MEMO,c.Post_Name,d.FingerNum,"
                         + " (case when IsONPost=1 then '是' else '否' end) as IsOnPostName ,"
                         + " (case when o.photo is not null then 1 else 0 end  ) as isPhoto "
                         + " from Employee a "
                         + " inner join Post c on a.Post_ID=c.Post_ID "
                         + " inner join Org b on a.Org_ID=b.Org_ID "
                         + " left join employee_photo o on o.EMPLOYEE_ID=a.EMPLOYEE_ID "
                         + " left join (select a.employee_id,count(*) FingerNum from Employee_FingerPrint a "
                         + " inner join Employee b on a.Employee_ID=b.Employee_ID "
                         + " inner join Org c on b.Org_ID=c.Org_ID "
                         + " where c.id_Path||'/' like '%" + strPath + "/%' "
                         + " group by a.Employee_ID) d "
                         + " on a.Employee_ID=d.Employee_ID "
                         + " where b.id_Path||'/' like '%" + strPath + "/%' ";
            }

            if (PrjPub.CurrentLoginUser.EmployeeID != 0)
            {
                strSql += " and a.Employee_ID != 0";
            }

            if (!string.IsNullOrEmpty(txtPost.Text) || !string.IsNullOrEmpty(hfPostID.Value))
            {
                strSql += " and (a.Post_ID=" + hfPostID.Value +
                          " or a.Post_ID in (select Post_ID from Post where Parent_ID=" + hfPostID.Value + "))";
            }

            if (!string.IsNullOrEmpty(txtPinYin.Text))
            {
                strSql += " and Upper(a.PinYin_Code) like '%" + txtPinYin.Text.ToUpper() + "%'";
            }

            if (!string.IsNullOrEmpty(txtTechnicalCode.Text))
            {
                strSql += " and a.Technical_Code like '%" + txtTechnicalCode.Text + "%'";
            }

            if (!string.IsNullOrEmpty(employeename))
            {
                strSql += " and a.Employee_Name like '%" + employeename + "%'";
            }

            if (ddlSex.SelectedValue != "")
            {
                strSql += " and Sex='" + sex + "'";
            }

            if (ddlFinger.SelectedValue == "1")
            {
                strSql += " and d.FingerNum>0";
            }
            else if (ddlFinger.SelectedValue == "0")
            {
                strSql += " and d.FingerNum is null";
            }

            if (ddlStatus.SelectedValue != "-1")
            {
                strSql += " and IsOnPost=" + ddlStatus.SelectedValue;
            }

            strSql += " order by b.Level_Num,b.Order_Index";

            return(strSql);
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                hfOrgID.Value          = PrjPub.CurrentLoginUser.StationOrgID.ToString();
                ViewState["mode"]      = Request.QueryString.Get("mode");
                ViewState["startmode"] = Request.QueryString.Get("startmode");
                hfMode.Value           = ViewState["mode"].ToString();

                _isWuhan     = PrjPub.IsWuhan();
                _isWuhanOnly = PrjPub.IsWuhanOnly();

                dateBeginTime.DateValue = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                dateEndTime.DateValue   = DateTime.Now.AddDays(7).ToString("yyyy-MM-dd HH:mm:ss");

                string ExamCategoryID = Request.QueryString.Get("ExamCategoryIDPath");

                if (ExamCategoryID == "0")
                {
                    ExamCategoryID = "";
                }

                if (!string.IsNullOrEmpty(ExamCategoryID))
                {
                    string[] str1 = ExamCategoryID.Split(new char[] { '/' });

                    int nID = int.Parse(str1[str1.LongLength - 1].ToString());

                    hfCategoryId.Value = nID.ToString();
                    ExamCategoryBLL pcl = new ExamCategoryBLL();

                    RailExam.Model.ExamCategory pc = pcl.GetExamCategory(nID);

                    txtCategoryName.Text = pc.CategoryName;
                }

                OracleAccess db     = new OracleAccess();
                string       strSql = "select * from Random_Exam_Modular_Type order by Level_Num";
                DataSet      ds     = db.RunSqlDataSet(strSql);

                ListItem item = new ListItem();
                item.Text  = "--请选择--";
                item.Value = "0";
                ddlModularType.Items.Add(item);

                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    item       = new ListItem();
                    item.Text  = dr["Random_Exam_Modular_Type_Name"].ToString();
                    item.Value = dr["Random_Exam_Modular_Type_ID"].ToString();
                    ddlModularType.Items.Add(item);
                }


                string strExamID = Request.QueryString.Get("id");
                if (!string.IsNullOrEmpty(strExamID))
                {
                    FillPage(int.Parse(strExamID));
                }
                else
                {
                    rbnStyle2.Checked     = true;
                    saveTd.Visible        = true;
                    ddlDate.SelectedValue = "1";
                    dateSaveDate.Visible  = false;

                    SetTrainClassVisible(false);
                }
            }

            if (hfPostID.Value != "")
            {
                txtPost.Text = hfPostName.Value;
            }

            if (hfCategoryId.Value != "")
            {
                ExamCategoryBLL             pcl = new ExamCategoryBLL();
                RailExam.Model.ExamCategory pc  = pcl.GetExamCategory(Convert.ToInt32(hfCategoryId.Value));
                txtCategoryName.Text = pc.CategoryName;
            }

            chkHasTrainClass.Attributes.Add("onclick", "chkHasTrainClassOnchange();");
        }
Beispiel #23
0
        private void BindGrid()
        {
            OracleAccess oracle   = new OracleAccess();
            string       strwhere = "where 1=1";

            if (hfOrgID.Value != "0")
            {
                strwhere += " and getstationorgid(e.org_id)=" + hfOrgID.Value;
            }
            else
            {
                int railSystemId = PrjPub.GetRailSystemId();
                if (railSystemId != 0)
                {
                    strwhere += " and (GetRailSystemId(e.org_id)=" + railSystemId + " or getstationorgid(e.org_id)=" + PrjPub.CurrentLoginUser.StationOrgID + ")";
                }
            }
            string sql = string.Format(@"select a.* 
                               from
                               (
                                 select rownum row_index,w.* from (
                                 select o.order_index, o.parent_id,
                                        to_char(o.full_name) as full_name,
                                        count(*) as amount,
                                        sum(case when e.isonpost=1 then 1 else 0 end) as is_on_post,
                                        sum(case when e.isonpost=0 then 1 else 0 end) as is_not_on_post,
                                        sum(case when e.ISREGISTERED=1 then 1 else 0 end) as ISREGISTERED,
                                        sum(case when e.ISREGISTERED=0 then 1 else 0 end) as IS_not_REGISTERED,
                                        sum(case when e.isonpost=1 and e.Employee_Type_ID=0 then 1 else 0 end) as Is_on_post_worker,
                                        sum(case when e.isonpost=1 and e.Employee_Type_ID=0 and a.photo is null  then 1 else 0 end) as Is_on_post_worker_no_photo,
                                        sum(case when e.isonpost=1 and e.Employee_Type_ID=0 and b.fingernum is null  then 1 else 0 end) as Is_on_post_worker_no_finger
                                 from employee e
                                 inner join org o 
                                       on getstationorgid(e.org_id)=o.org_id 
                                 left   join employee_photo a on a.Employee_id=e.Employee_ID
                                 left  join (select employee_id,count(*) fingernum from employee_fingerprint group by employee_id) b
                                        on e.Employee_ID=b.Employee_ID {0}
                                 group by o.full_name,o.order_index, o.parent_id order by o.parent_id,o.order_index) w
                                 union 
                                 select 0,0,0,
                                        '总数',
                                        count(e.employee_id),
                                        sum(case when e.isonpost = 1 then 1 else 0 end),
                                        sum(case when e.isonpost = 0 then 1 else 0 end),
                                        sum(case when e.ISREGISTERED=1 then 1 else 0 end) as ISREGISTERED,
                                        sum(case when e.ISREGISTERED=0 then 1 else 0 end) as IS_not_REGISTERED,
                                        sum(case when e.isonpost=1 and e.Employee_Type_ID=0 then 1 else 0 end) as Is_on_post_worker,
                                        sum(case when e.isonpost=1 and e.Employee_Type_ID=0 and a.photo is null  then 1 else 0 end) as Is_on_post_worker_no_photo,
                                        sum(case when e.isonpost=1 and e.Employee_Type_ID=0 and b.fingernum is null  then 1 else 0 end) as Is_on_post_worker_no_finger
                                 from employee e 
                                 left   join employee_photo a on a.Employee_id=e.Employee_ID
                                 left  join (select employee_id,count(*) fingernum from employee_fingerprint group by employee_id) b
                                        on e.Employee_ID=b.Employee_ID {0}
                               ) a
                               order by a.row_index", strwhere);

            try
            {
                this.grid1.DataSource = oracle.RunSqlDataSet(sql);
                this.grid1.DataBind();
                ViewState["dt"] = grid1.DataSource;
            }
            catch { }
        }
        protected void btnSave_Click(object sender, ImageClickEventArgs e)
        {
            DataTable dataTable = BindGrid();

            if (txtMET2.Text == "")
            {
                txtMET2.Text = "1";
            }

            if (chkHasTrainClass.Checked)
            {
                if (hfPostID.Value == "")
                {
                    SessionSet.PageMessage = "带有培训班的考试,必须选择职名!";
                    return;
                }
            }

            RandomExamBLL examBLL = new RandomExamBLL();

            RailExam.Model.RandomExam exam = new RailExam.Model.RandomExam();

            string strID        = string.Empty;
            string strMode      = ViewState["mode"].ToString();
            string strStartMode = ViewState["startmode"].ToString();

            RandomExamTrainClassBLL objTrainClassBll = new RandomExamTrainClassBLL();

            string[] strPost         = hfPostID.Value.Split(',');
            string   strErrorMessage = "";

            OracleAccess db = new OracleAccess();

            if (strMode == "Insert")
            {
                string strExam = "select * from Random_Exam where Exam_Name='" + txtExamName.Text + "'";
                if (db.RunSqlDataSet(strExam).Tables[0].Rows.Count > 0)
                {
                    SessionSet.PageMessage = "该考试名称在系统中已经存在,请重新输入!";
                    txtExamName.Focus();
                    return;
                }

                if (chkHasTrainClass.Checked)
                {
                    foreach (DataRow dr in dataTable.Rows)
                    {
                        for (int i = 0; i < strPost.Length; i++)
                        {
                            IList <RandomExamTrainClass> objList =
                                objTrainClassBll.GetRandomExamTrainClassCount(Convert.ToInt32(dr["TrainClassID"].ToString()),
                                                                              Convert.ToInt32(dr["TrainClassSubjectID"].ToString()),
                                                                              Convert.ToInt32(strPost[i]));
                            if (objList.Count > 0)
                            {
                                strErrorMessage = "培训班“" + dr["TrainClassName"] + "”的考试科目“" + dr["TrainClassSubjectName"] + "”已新增当前所选职名的试卷!";
                            }
                        }
                    }
                }

                if (strErrorMessage != "")
                {
                    SessionSet.PageMessage = strErrorMessage;
                    return;
                }

                exam.CategoryId   = int.Parse(hfCategoryId.Value);
                exam.ExamName     = txtExamName.Text;
                exam.Memo         = txtMemo.Text;
                exam.CreatePerson = PrjPub.CurrentLoginUser.EmployeeName;
                exam.ExamModeId   = 1;
                exam.PassScore    = Convert.ToDecimal(txtPassScore.Text);
                if (rbnExamMode1.Checked)
                {
                    exam.IsComputerExam = true;
                }
                else
                {
                    exam.IsComputerExam = false;
                }

                if (rbnStartMode1.Checked)
                {
                    exam.StartMode = 1;
                }
                else
                {
                    exam.StartMode = 2;
                }

                if (rbnStyle1.Checked)
                {
                    exam.ExamStyle = 1;
                }
                else
                {
                    exam.ExamStyle = 2;
                }

                exam.IsAutoScore    = chAutoScore.Checked;
                exam.CanSeeAnswer   = chkCanSeeAnswer.Checked;
                exam.CanSeeScore    = chSeeScore.Checked;
                exam.IsPublicScore  = chPublicScore.Checked;
                exam.IsUnderControl = chUD.Checked;
                exam.MaxExamTimes   = int.Parse(txtMET2.Text);
                exam.MinExamTimes   = 1;
                exam.BeginTime      = DateTime.Parse(dateBeginTime.DateValue.ToString());
                exam.EndTime        = DateTime.Parse(dateEndTime.DateValue.ToString());
                exam.ExamTypeId     = 1;
                exam.CreateTime     = DateTime.Now;
                exam.Description    = txtDescription.Text;
                exam.ExamTime       = int.Parse(txtExamTime.Text);
                exam.StatusId       = 1;
                exam.PostID         = hfPostID.Value;

                exam.RandomExamModularTypeID = Convert.ToInt32(ddlModularType.SelectedValue);
                exam.IsReduceError           = chkIsReduceScore.Checked;

                exam.AutoSaveInterval = chkAllItem.Checked ? 1 : 0;

                if (saveTd.Visible)
                {
                    exam.SaveStatus = Convert.ToInt32(ddlDate.SelectedValue);

                    if (dateSaveDate.Visible)
                    {
                        if (dateSaveDate.DateValue == null)
                        {
                            SessionSet.PageMessage = "请选择一个存档时间!";
                            return;
                        }

                        exam.SaveDate = Convert.ToDateTime(dateSaveDate.DateValue);
                    }
                }
                else
                {
                    exam.SaveStatus = 0;
                    exam.SaveDate   = null;
                }

                //exam.AutoSaveInterval = 0;
                exam.OrgId = PrjPub.CurrentLoginUser.StationOrgID;

                exam.HasTrainClass = chkHasTrainClass.Checked;

                int id = examBLL.AddExam(exam);
                strID = id.ToString();

                if (_isWuhanOnly)
                {
                    //当考试来源为培训班时,需自动添加考生。
                    if (chkHasTrainClass.Checked)
                    {
                        foreach (DataRow dr in dataTable.Rows)
                        {
                            RandomExamTrainClass obj = new RandomExamTrainClass();
                            obj.RandomExamID        = Convert.ToInt32(strID);
                            obj.TrainClassID        = Convert.ToInt32(dr["TrainClassID"].ToString());
                            obj.TrainClassSubjectID = Convert.ToInt32(dr["TrainClassSubjectID"].ToString());
                            objTrainClassBll.AddRandomExamTrainClass(obj);
                        }
                        //ClientScript.RegisterStartupScript(GetType(),
                        //    "jsSelectFirstNode",
                        //    @"SaveArrange(" + strID + ",'" + strStartMode + "','" + strMode + "');",
                        //    true);

                        //string strClause = strID + "|" + strStartMode + "|" + strMode;
                        //ClientScript.RegisterStartupScript(GetType(), "import", "inputCallback.callback('" + strClause + "');", true);

                        try
                        {
                            SaveRandomExamArrange(strID, hfTrainClassID.Value, hfPostID.Value);
                        }
                        catch
                        {
                            SessionSet.PageMessage = "添加考生失败";
                            return;
                        }

                        Response.Redirect("RandomExamManageSecond.aspx?startmode=" + strStartMode + "&mode=" + strMode + "&id=" + strID);
                    }
                    else
                    {
                        Response.Redirect("RandomExamManageSecond.aspx?startmode=" + strStartMode + "&mode=" + strMode + "&id=" + strID);
                    }
                }
                else
                {
                    Response.Redirect("RandomExamManageSecond.aspx?startmode=" + strStartMode + "&mode=" + strMode + "&id=" + strID);
                }
            }
            else if (strMode == "Edit")
            {
                strID = Request.QueryString.Get("id");

                if (Pub.HasPaper(Convert.ToInt32(strID)))
                {
                    Response.Write("<script>alert('该考试已生成试卷,不能被编辑!');window.close();</script>");
                    return;
                }

                string strExam = "select * from Random_Exam where Random_Exam_ID!=" + strID + " and Exam_Name='" + txtExamName.Text + "'";
                if (db.RunSqlDataSet(strExam).Tables[0].Rows.Count > 0)
                {
                    SessionSet.PageMessage = "该考试名称在系统中已经存在,请重新输入!";
                    txtExamName.Focus();
                    return;
                }

                string    strSql = "select * from Random_Exam_Computer_Server where Has_Paper=1 and Random_Exam_ID=" + strID;
                DataTable dt     = db.RunSqlDataSet(strSql).Tables[0];
                if (dt.Rows.Count > 0)
                {
                    SessionSet.PageMessage = "当前考试已经生成试卷,不能继续编辑!";
                    return;
                }


                if (chkHasTrainClass.Checked && ViewState["TrainClass"].ToString() != hfTrainClassID.Value)
                {
                    foreach (DataRow dr in dataTable.Rows)
                    {
                        for (int i = 0; i < strPost.Length; i++)
                        {
                            IList <RandomExamTrainClass> objList =
                                objTrainClassBll.GetRandomExamTrainClassCount(Convert.ToInt32(dr["TrainClassID"].ToString()),
                                                                              Convert.ToInt32(dr["TrainClassSubjectID"].ToString()),
                                                                              Convert.ToInt32(strPost[i]));
                            if (objList.Count > 0)
                            {
                                if (objList[0].RandomExamID.ToString() != strID)
                                {
                                    strErrorMessage = "培训班“" + dr["TrainClassName"] + "”的考试科目“" + dr["TrainClassSubjectName"] + "”已新增当前所选职名的试卷!";
                                }
                            }
                        }
                    }
                }

                if (strErrorMessage != "")
                {
                    SessionSet.PageMessage = strErrorMessage;
                    return;
                }

                exam.CategoryId   = Convert.ToInt32(hfCategoryId.Value);
                exam.ExamName     = txtExamName.Text;
                exam.Memo         = txtMemo.Text;
                exam.RandomExamId = int.Parse(strID);
                exam.ExamTime     = int.Parse(txtExamTime.Text);
                exam.ExamModeId   = 1;
                exam.PassScore    = Convert.ToDecimal(txtPassScore.Text);
                if (rbnExamMode1.Checked)
                {
                    exam.IsComputerExam = true;
                }
                else
                {
                    exam.IsComputerExam = false;
                }

                if (rbnStartMode1.Checked)
                {
                    exam.StartMode = 1;
                }
                else
                {
                    exam.StartMode = 2;
                }

                if (rbnStyle1.Checked)
                {
                    exam.ExamStyle = 1;
                }
                else
                {
                    exam.ExamStyle = 2;
                }
                exam.BeginTime = DateTime.Parse(dateBeginTime.DateValue.ToString());
                exam.EndTime   = DateTime.Parse(dateEndTime.DateValue.ToString());

                exam.IsAutoScore    = chAutoScore.Checked;
                exam.CanSeeAnswer   = chkCanSeeAnswer.Checked;
                exam.CanSeeScore    = chSeeScore.Checked;
                exam.IsPublicScore  = chPublicScore.Checked;
                exam.IsUnderControl = chUD.Checked;
                exam.MaxExamTimes   = int.Parse(txtMET2.Text);
                exam.MinExamTimes   = 1;
                exam.ExamTypeId     = 1;
                exam.Description    = txtDescription.Text;
                //exam.AutoSaveInterval = 0;

                exam.RandomExamModularTypeID = Convert.ToInt32(ddlModularType.SelectedValue);
                exam.IsReduceError           = chkIsReduceScore.Checked;
                exam.AutoSaveInterval        = chkAllItem.Checked ? 1 : 0;

                if (saveTd.Visible)
                {
                    exam.SaveStatus = Convert.ToInt32(ddlDate.SelectedValue);

                    if (dateSaveDate.Visible)
                    {
                        if (dateSaveDate.DateValue == null)
                        {
                            SessionSet.PageMessage = "请选择一个存档时间!";
                            return;
                        }

                        exam.SaveDate = Convert.ToDateTime(dateSaveDate.DateValue);
                    }
                }
                else
                {
                    exam.SaveStatus = 0;
                    exam.SaveDate   = null;
                }

                RandomExamArrangeBLL objArrangeBll = new RandomExamArrangeBLL();
                //当是否为培训班改变或则培训班改变时,需删除考试安排
                if (Convert.ToBoolean(ViewState["HasTrainClass"].ToString()) != chkHasTrainClass.Checked ||
                    ViewState["TrainClass"].ToString() != hfTrainClassID.Value || ViewState["PostID"].ToString() != hfPostID.Value)
                {
                    objArrangeBll.DeleteRandomExamArrangeByRandomExamID(Convert.ToInt32(strID));
                }

                if ((Convert.ToBoolean(ViewState["HasTrainClass"].ToString()) != chkHasTrainClass.Checked && !chkHasTrainClass.Checked) || ViewState["TrainClass"].ToString() != hfTrainClassID.Value)
                {
                    objTrainClassBll.DeleteRandomExamTrainClassByRandomExamID(Convert.ToInt32(strID));
                }

                exam.HasTrainClass = chkHasTrainClass.Checked;
                exam.PostID        = hfPostID.Value;
                exam.Version       = exam.Version + 1;
                examBLL.UpdateExam(exam);

                if (_isWuhanOnly)
                {
                    if (chkHasTrainClass.Checked)
                    {
                        //当培训班或职名发生变化时,更改考生名单
                        if (ViewState["TrainClass"].ToString() != hfTrainClassID.Value || ViewState["PostID"].ToString() != hfPostID.Value)
                        {
                            objTrainClassBll.DeleteRandomExamTrainClassByRandomExamID(Convert.ToInt32(strID));
                            foreach (DataRow dr in dataTable.Rows)
                            {
                                RandomExamTrainClass obj = new RandomExamTrainClass();
                                obj.RandomExamID        = Convert.ToInt32(strID);
                                obj.TrainClassID        = Convert.ToInt32(dr["TrainClassID"].ToString());
                                obj.TrainClassSubjectID = Convert.ToInt32(dr["TrainClassSubjectID"].ToString());
                                objTrainClassBll.AddRandomExamTrainClass(obj);
                            }

                            //ClientScript.RegisterStartupScript(GetType(),
                            //"jsSelectFirstNode",
                            //@"SaveArrange(" + strID + ",'" + strStartMode + "','" + strMode + "');",
                            //true);

                            //string strClause = strID + "|" + strStartMode + "|" + strMode;
                            //ClientScript.RegisterStartupScript(GetType(), "import", "inputCallback.callback('" + strClause + "');", true);

                            try
                            {
                                SaveRandomExamArrange(strID, hfTrainClassID.Value, hfPostID.Value);
                            }
                            catch
                            {
                                SessionSet.PageMessage = "添加考生失败";
                                return;
                            }

                            Response.Redirect("RandomExamManageSecond.aspx?startmode=" + strStartMode + "&mode=" + strMode + "&id=" + strID);
                        }
                        else
                        {
                            Response.Redirect("RandomExamManageSecond.aspx?startmode=" + strStartMode + "&mode=" + strMode + "&id=" + strID);
                        }
                    }
                    else
                    {
                        Response.Redirect("RandomExamManageSecond.aspx?startmode=" + strStartMode + "&mode=" + strMode + "&id=" + strID);
                    }
                }
                else
                {
                    Response.Redirect("RandomExamManageSecond.aspx?startmode=" + strStartMode + "&mode=" + strMode + "&id=" + strID);
                }
            }
            else
            {
                strID = Request.QueryString.Get("id");
                Response.Redirect("RandomExamManageSecond.aspx?startmode=" + strStartMode + "&mode=" + strMode + "&id=" + strID);
            }
        }
        private void GetPaper()
        {
            // 根据 ProgressBar.htm 显示进度条界面
            string       templateFileName = Path.Combine(Server.MapPath("."), "ProgressBar.htm");
            StreamReader reader           = new StreamReader(@templateFileName, System.Text.Encoding.GetEncoding("gb2312"));
            string       html             = reader.ReadToEnd();

            reader.Close();
            Response.Write(html);
            Response.Flush();
            System.Threading.Thread.Sleep(200);

            string jsBlock;

            ViewState["BeginTime"] = DateTime.Now.ToString();
            string strId = Request.QueryString.Get("RandomExamID");

            //获取当前考试的生成试卷的状态和次数
            RandomExamBLL objBll = new RandomExamBLL();

            RailExam.Model.RandomExam obj = objBll.GetExam(Convert.ToInt32(strId));

            int year      = obj.BeginTime.Year;
            int ExamCount = obj.MaxExamTimes;

            RandomExamArrangeBLL eaBll = new RandomExamArrangeBLL();
            IList <RailExam.Model.RandomExamArrange> ExamArranges = eaBll.GetRandomExamArranges(int.Parse(strId));
            string       strChooseID = "";
            OracleAccess db          = new OracleAccess();
            OracleAccess dbCenter    = new OracleAccess(System.Configuration.ConfigurationManager.ConnectionStrings["OracleCenter"].ConnectionString);

            string strSql;

            if (ExamArranges.Count > 0)
            {
                strSql = "select a.* from Random_Exam_Arrange_Detail a "
                         + " inner join Computer_Room b on a.Computer_Room_ID=b.Computer_Room_ID"
                         + " inner join Computer_Server c on c.Computer_server_ID=b.Computer_Server_ID"
                         + " where c.Computer_Server_No='" + PrjPub.ServerNo + "' "
                         + " and Random_Exam_ID=" + strId;

                DataSet ds = db.RunSqlDataSet(strSql);

                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    if (string.IsNullOrEmpty(strChooseID))
                    {
                        strChooseID += dr["User_Ids"].ToString();
                    }
                    else
                    {
                        strChooseID += "," + dr["User_Ids"];
                    }
                }
            }
            else
            {
                strChooseID = "";
            }

            if (strChooseID == "")
            {
                Response.Write("<script>top.returnValue='本场考试未在本单位安排考生!';window.close();</script>");
                return;
            }

            if (db.GetCount("RANDOM_EXAM_ITEM_TEMP_" + year, "TABLE") == 0)
            {
                strSql = "create table RANDOM_EXAM_ITEM_TEMP_" + year + "  as select * from RANDOM_EXAM_ITEM_" + year + " where 1=2 ";
                db.ExecuteNonQuery(strSql);
            }
            strSql = "insert into RANDOM_EXAM_ITEM_TEMP_" + year + " select * from RANDOM_EXAM_ITEM_" + year + " where Random_Exam_ID=" + strId;
            db.ExecuteNonQuery(strSql);

            if (!PrjPub.IsServerCenter)
            {
                if (dbCenter.GetCount("RANDOM_EXAM_ITEM_TEMP_" + year, "TABLE") == 0)
                {
                    strSql = "create table RANDOM_EXAM_ITEM_TEMP_" + year + "  as select * from RANDOM_EXAM_ITEM_" + year + " where 1=2 ";
                    dbCenter.ExecuteNonQuery(strSql);
                }
                strSql = "insert into RANDOM_EXAM_ITEM_TEMP_" + year + " select * from RANDOM_EXAM_ITEM_" + year + " where Random_Exam_ID=" + strId;
                dbCenter.ExecuteNonQuery(strSql);
            }

            System.Threading.Thread.Sleep(10);
            jsBlock = "<script>SetPorgressBar('正在计算生成试卷数量,请等待......','" + ((1 * 100) / ((double)2) + "'); </script>");
            Response.Write(jsBlock);
            Response.Flush();


            //每次生成试卷之前删除已生成的考试试卷
            RandomExamResultCurrentBLL randomExamResultBLL = new RandomExamResultCurrentBLL();

            randomExamResultBLL.DelRandomExamResultCurrent(Convert.ToInt32(strId));
            System.Threading.Thread.Sleep(10);
            jsBlock = "<script>SetPorgressBar('正在计算生成试卷数量,请等待......','" + ((2 * 100) / ((double)2) + "'); </script>");
            Response.Write(jsBlock);
            Response.Flush();

            System.Threading.Thread.Sleep(200);
            jsBlock = string.Empty;

            string[] str = strChooseID.Split(',');

            RandomExamResultAnswerCurrentBLL randomExamResultAnswerBLL = new RandomExamResultAnswerCurrentBLL();
            //定义全局答卷对象List
            IList <RandomExamResultAnswerCurrent> randomExamResultAnswersCurrentAll = new List <RandomExamResultAnswerCurrent>();
            //定义一个考生一次答卷对象List
            IList <RandomExamResultAnswerCurrent> randomExamResultAnswers = null;

            int progressNum = 1;

            for (int n = 1; n <= ExamCount; n++)
            {
                for (int m = 0; m < str.Length; m++)
                {
                    RandomExamResultCurrent randomExamResult = new RandomExamResultCurrent();

                    randomExamResult.RandomExamId    = int.Parse(strId);
                    randomExamResult.AutoScore       = 0;
                    randomExamResult.BeginDateTime   = DateTime.Parse(ViewState["BeginTime"].ToString());
                    randomExamResult.CurrentDateTime = DateTime.Parse(ViewState["BeginTime"].ToString());
                    randomExamResult.ExamTime        = 0;
                    randomExamResult.EndDateTime     = DateTime.Parse(ViewState["BeginTime"].ToString());
                    randomExamResult.Score           = 0;
                    randomExamResult.OrganizationId  = int.Parse(ConfigurationManager.AppSettings["StationID"]);
                    randomExamResult.Memo            = "";
                    randomExamResult.StatusId        = 0;
                    randomExamResult.AutoScore       = 0;
                    randomExamResult.CorrectRate     = 0;
                    randomExamResult.ExamineeId      = int.Parse(str[m]);
                    randomExamResult.ExamSeqNo       = n;

                    int nRandomExamResultPK = randomExamResultBLL.AddRandomExamResultCurrent(randomExamResult);
                    ViewState["RandomExamResultPK"] = nRandomExamResultPK;

                    strSql = "select a.* from Random_Exam_Arrange_Detail a "
                             + " where ','||User_Ids||',' like '%," + str[m] + ",%' "
                             + " and Random_Exam_ID=" + strId;
                    DataRow dr = db.RunSqlDataSet(strSql).Tables[0].Rows[0];

                    //strSql = "insert into Random_Exam_Result_Detail(Random_Exam_Result_Detail_ID,"
                    //         + "Random_Exam_Result_ID,Random_Exam_ID,Employee_ID,Computer_Room_SEAT,Computer_Room_ID) "
                    //         + "values(Random_Exam_Result_Detail_SEQ.NextVal,"
                    //         + nRandomExamResultPK + ","
                    //         + randomExamResult.RandomExamId + ","
                    //         + randomExamResult.ExamineeId + ","
                    //         + "0," + dr["Computer_Room_ID"] + ") ";
                    //db.ExecuteNonQuery(strSql);

                    strSql = "insert into Random_Exam_Result_Detail_Temp(Random_Exam_Result_Detail_ID,"
                             + "Random_Exam_Result_ID,Random_Exam_ID,Employee_ID,Computer_Room_SEAT,Computer_Room_ID,Is_Remove) "
                             + "values(Random_Exam_Result_Detail_SEQ.NextVal,"
                             + nRandomExamResultPK + ","
                             + randomExamResult.RandomExamId + ","
                             + randomExamResult.ExamineeId + ","
                             + "0," + dr["Computer_Room_ID"] + ",0) ";
                    db.ExecuteNonQuery(strSql);

                    RandomExamItemBLL     randomItemBLL = new RandomExamItemBLL();
                    RandomExamSubjectBLL  subjectBLL    = new RandomExamSubjectBLL();
                    RandomExamStrategyBLL strategyBLL   = new RandomExamStrategyBLL();

                    IList <RandomExamSubject> randomExamSubjects =
                        subjectBLL.GetRandomExamSubjectByRandomExamId(int.Parse(strId));

                    if (randomExamSubjects != null)
                    {
                        Hashtable hashTableItemIds = new Hashtable();
                        Hashtable htSubjectItemIds = new Hashtable();
                        for (int i = 0; i < randomExamSubjects.Count; i++)
                        {
                            RandomExamSubject paperSubject = randomExamSubjects[i];
                            int nSubjectId = paperSubject.RandomExamSubjectId;
                            //  int nItemCount = paperSubject.ItemCount;

                            IList <RandomExamStrategy> strategys = strategyBLL.GetRandomExamStrategys(nSubjectId);
                            for (int j = 0; j < strategys.Count; j++)
                            {
                                int nStrategyId = strategys[j].RandomExamStrategyId;
                                int nItemCount  = strategys[j].ItemCount;
                                IList <RandomExamItem> itemList = randomItemBLL.GetItemsByStrategyId(nStrategyId, year);

                                // IList<RandomExamItem> itemList = randomItemBLL.GetItemsBySubjectId(nSubjectId);

                                Random    ObjRandom      = new Random();
                                Hashtable hashTable      = new Hashtable();
                                Hashtable hashTableCount = new Hashtable();
                                int       index          = 0;
                                while (hashTable.Count < nItemCount)
                                {
                                    int k = ObjRandom.Next(itemList.Count);
                                    hashTableCount[index] = k;
                                    index = index + 1;
                                    int itemID     = itemList[k].ItemId;
                                    int examItemID = itemList[k].RandomExamItemId;
                                    if (!hashTableItemIds.ContainsKey(itemID))
                                    {
                                        hashTable[examItemID]        = examItemID;
                                        hashTableItemIds[itemID]     = itemID;
                                        htSubjectItemIds[examItemID] = examItemID;
                                    }
                                    //if (hashTableCount.Count == itemList.Count && hashTable.Count < nItemCount)
                                    //{
                                    //    SessionSet.PageMessage = "随机考试在设定的取题范围内的试题量不够,请重新设置取题范围!";
                                    //    return;
                                    //}
                                }
                            }
                        }


                        foreach (int key in htSubjectItemIds.Keys)
                        {
                            string         strItemId = htSubjectItemIds[key].ToString();
                            RandomExamItem item      = randomItemBLL.GetRandomExamItem(Convert.ToInt32(strItemId), year);

                            string nowSelectAnswer   = string.Empty;
                            string nowStandardAnswer = string.Empty;
                            if (item.TypeId != PrjPub.ITEMTYPE_FILLBLANK)
                            {
                                Pub.GetNowAnswer(item, out nowSelectAnswer, out nowStandardAnswer);
                            }

                            RandomExamResultAnswerCurrent randomExamResultAnswer = new RandomExamResultAnswerCurrent();
                            randomExamResultAnswer.RandomExamResultId = nRandomExamResultPK;
                            randomExamResultAnswer.RandomExamItemId   = int.Parse(strItemId);
                            randomExamResultAnswer.JudgeStatusId      = 0;
                            randomExamResultAnswer.JudgeRemark        = string.Empty;
                            randomExamResultAnswer.ExamTime           = 0;
                            randomExamResultAnswer.Answer             = string.Empty;
                            randomExamResultAnswer.SelectAnswer       = nowSelectAnswer;
                            randomExamResultAnswer.StandardAnswer     = nowStandardAnswer;
                            randomExamResultAnswerBLL.AddExamResultAnswerCurrent(randomExamResultAnswer);

                            //完型填空子题
                            IList <RandomExamItem> randomExamItems = randomItemBLL.GetItemsByParentItemID(item.ItemId, obj.RandomExamId, year);
                            foreach (RandomExamItem randomExamItem in randomExamItems)
                            {
                                Pub.GetNowAnswer(randomExamItem, out nowSelectAnswer, out nowStandardAnswer);

                                randomExamResultAnswer = new RandomExamResultAnswerCurrent();
                                randomExamResultAnswer.RandomExamResultId = nRandomExamResultPK;
                                randomExamResultAnswer.RandomExamItemId   = randomExamItem.RandomExamItemId;
                                randomExamResultAnswer.JudgeStatusId      = 0;
                                randomExamResultAnswer.JudgeRemark        = string.Empty;
                                randomExamResultAnswer.ExamTime           = 0;
                                randomExamResultAnswer.Answer             = string.Empty;
                                randomExamResultAnswer.SelectAnswer       = nowSelectAnswer;
                                randomExamResultAnswer.StandardAnswer     = nowStandardAnswer;
                                randomExamResultAnswerBLL.AddExamResultAnswerCurrent(randomExamResultAnswer);
                            }

                            System.Threading.Thread.Sleep(10);
                            jsBlock = "<script>SetPorgressBar('正在生成试卷,请等待......','" + ((progressNum * 100) / ((double)ExamCount * str.Length * htSubjectItemIds.Count)).ToString("0.00") + "'); </script>";
                            Response.Write(jsBlock);
                            Response.Flush();

                            progressNum++;
                        }
                    }
                    else
                    {
                        SessionSet.PageMessage = "未找到记录!";
                    }
                }
            }

            bool isRefresh = true;

            try
            {
                objBll.UpdateHasPaper(Convert.ToInt32(strId), PrjPub.ServerNo, true);
            }
            catch
            {
                strSql =
                    @"  update Random_Exam_Computer_Server set  has_paper=1
                      where random_exam_id=" + strId + @" and Computer_server_no='" + PrjPub.ServerNo + @"'";
                dbCenter.ExecuteNonQuery(strSql);
                strSql = @"select count(*)  from Random_Exam_Computer_Server where has_paper=1 and  random_exam_id=" + strId;
                int count = Convert.ToInt32(dbCenter.RunSqlDataSet(strSql).Tables[0].Rows[0][0]);
                if (count > 0)
                {
                    strSql = @"update Random_Exam set has_paper=1 where random_exam_id=" + strId;
                    dbCenter.ExecuteNonQuery(strSql);
                }
                else
                {
                    strSql = @"update Random_Exam set has_paper=0 where random_exam_id=" + strId;
                    dbCenter.ExecuteNonQuery(strSql);
                }
            }


            //如果考试是随到随考,考试状态自动变为正在进行
            if (obj.StartMode == 1)
            {
                try
                {
                    objBll.UpdateIsStart(Convert.ToInt32(strId), PrjPub.ServerNo, 1);
                    isRefresh = false;
                }
                catch
                {
                    strSql =
                        @"  update Random_Exam_Computer_Server set  Is_Start=1
                      where random_exam_id=" + strId + @" and Computer_server_no='" + PrjPub.ServerNo + @"'";
                    dbCenter.ExecuteNonQuery(strSql);
                    strSql = @"select count(*)  from Random_Exam_Computer_Server where random_exam_id=" + strId;
                    int totalcount = Convert.ToInt32(dbCenter.RunSqlDataSet(strSql).Tables[0].Rows[0][0]);
                    strSql = @"select count(*)  from Random_Exam_Computer_Server where Is_Start=0 and  random_exam_id=" + strId;
                    int count = Convert.ToInt32(dbCenter.RunSqlDataSet(strSql).Tables[0].Rows[0][0]);
                    if (totalcount == count)
                    {
                        strSql = @"update Random_Exam set Is_Start=0 where random_exam_id=" + strId;
                        dbCenter.ExecuteNonQuery(strSql);
                    }
                    else
                    {
                        strSql = @"select count(*)  from Random_Exam_Computer_Server where Is_Start=1 and  random_exam_id=" + strId;
                        count  = Convert.ToInt32(dbCenter.RunSqlDataSet(strSql).Tables[0].Rows[0][0]);
                        if (count > 0)
                        {
                            strSql = @"update Random_Exam set Is_Start=1 where random_exam_id=" + strId;
                            dbCenter.ExecuteNonQuery(strSql);
                        }
                        else
                        {
                            strSql = @"select count(*)  from Random_Exam_Computer_Server where Is_Start=2 and  random_exam_id=" + strId;
                            count  = Convert.ToInt32(dbCenter.RunSqlDataSet(strSql).Tables[0].Rows[0][0]);
                            if (count == totalcount)
                            {
                                strSql = @"update Random_Exam set Is_Start=2 where random_exam_id=" + strId;
                                dbCenter.ExecuteNonQuery(strSql);
                            }
                        }
                    }
                }
            }
            else
            {
                isRefresh = false;
            }

            if (isRefresh)
            {
                objBll.RandomExamRefresh();
            }

            SystemLogBLL objLogBll = new SystemLogBLL();

            objLogBll.WriteLog("“" + obj.ExamName + "”生成所有考试试卷");

            Response.Write("<script>top.returnValue='true';top.close();</script>");
        }
        protected void Grid1_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            DataTable dataTable = BindGrid();
            string    strSql    = "";

            DropDownList ddlTrainClass        = (DropDownList)Grid1.Rows[e.RowIndex].FindControl("ddlTrainClass");
            DropDownList ddlTrainClassSubject = (DropDownList)Grid1.Rows[Grid1.EditIndex].FindControl("ddlTrainClassSubject");

            if (ddlTrainClass.SelectedValue == "0")
            {
                SessionSet.PageMessage = "请选择培训班!";
                return;
            }

            if (ddlTrainClassSubject.SelectedValue == "0")
            {
                SessionSet.PageMessage = "请选择培训班科目!";
                return;
            }

            if (dataTable.Select("TrainClassID=" + ddlTrainClass.SelectedValue + " and TrainClassSubjectID=" + ddlTrainClassSubject.SelectedValue).Length > 0)
            {
                SessionSet.PageMessage = "不能重复添加培训班科目!";
                return;
            }

            OracleAccess db = new OracleAccess();

            if (dataTable.Rows.Count > 1)
            {
                strSql = "select Pass_Result from ZJ_Train_Class_Subject where Train_Class_Subject_ID=" + ddlTrainClassSubject.SelectedValue;
                if (Convert.ToDecimal(txtPassScore.Text) != Convert.ToDecimal(db.RunSqlDataSet(strSql).Tables[0].Rows[0][0].ToString()))
                {
                    SessionSet.PageMessage = "该培训班及格分数与已存在培训班及格分数不一样,不能添加在同一个考试中!";
                    return;
                }
            }

            strSql = "select  Employee_ID  "
                     + "from ZJ_Train_Plan_Employee a "
                     + " where a.Train_Class_ID=" + ddlTrainClass.SelectedValue;

            DataSet dsEmployee = db.RunSqlDataSet(strSql);

            if (dsEmployee.Tables[0].Rows.Count == 0)
            {
                SessionSet.PageMessage = "当前培训班的考试科目未添加学员,请在职教系统中核实!";
                return;
            }


            if ((bool)ViewState["IsNewGoods"])
            {
                ViewState["IsNewGoods"] = false;
            }

            dataTable.Rows[e.RowIndex]["TrainClassID"]          = Convert.ToInt32(ddlTrainClass.SelectedValue);
            dataTable.Rows[e.RowIndex]["TrainClassName"]        = ddlTrainClass.SelectedItem.Text;
            dataTable.Rows[e.RowIndex]["TrainClassSubjectID"]   = Convert.ToInt32(ddlTrainClassSubject.SelectedValue);
            dataTable.Rows[e.RowIndex]["TrainClassSubjectName"] = ddlTrainClassSubject.SelectedItem.Text;

            if (dataTable.Rows.Count == 1)
            {
                strSql            = "select Pass_Result from ZJ_Train_Class_Subject where Train_Class_Subject_ID=" + ddlTrainClassSubject.SelectedValue;
                txtPassScore.Text = db.RunSqlDataSet(strSql).Tables[0].Rows[0][0].ToString();
            }

            hfTrainClassID.Value = "";
            foreach (DataRow dr in dataTable.Rows)
            {
                if (hfTrainClassID.Value == "")
                {
                    hfTrainClassID.Value = dr["TrainClassID"].ToString();
                }
                else
                {
                    hfTrainClassID.Value = hfTrainClassID.Value + "," + dr["TrainClassID"].ToString();
                }
            }

            hfPostID.Value   = "";
            txtPost.Text     = "";
            hfPostName.Value = "";

            Grid1.EditIndex  = -1;
            Grid1.DataSource = dataTable;
            Grid1.DataBind();
        }
        public void FillPaper()
        {
            RandomExamItemBLL randomItemBLL = new RandomExamItemBLL();
            OracleAccess      db            = new OracleAccess();

            IList <RandomExamItem> PaperItems = new List <RandomExamItem>();

            PaperItems = randomItemBLL.GetItemsCurrentCheck();

            string    strSql = "select * from System_Exam where System_Exam_ID=1";
            DataTable dt     = db.RunSqlDataSet(strSql).Tables[0];

            int examNumber;

            if (dt.Rows.Count > 0)
            {
                examNumber = Convert.ToInt32(dt.Rows[0]["Exam_Number"]);
            }
            else
            {
                examNumber = 10;
            }

            int totalCount  = examNumber;
            int otherCount  = totalCount / 4;
            int singleCount = totalCount - otherCount * 3;

            int m = 4;

            if (otherCount == 0)
            {
                m = 1;
            }

            for (int i = 0; i < m; i++)
            {
                int    itemCount = 0;
                int    b = 0, e = 0;
                string typeName = string.Empty;

                if (i == 0)
                {
                    itemCount = singleCount;
                    typeName  = "第一大题:单选";
                    b         = 0;
                    e         = singleCount;
                }
                else if (i == 1)
                {
                    itemCount = otherCount;
                    typeName  = "第二大题:多选";
                    b         = singleCount;
                    e         = singleCount + otherCount;
                }
                else if (i == 2)
                {
                    itemCount = otherCount;
                    typeName  = "第三大题:判断";
                    b         = singleCount + otherCount;
                    e         = singleCount + otherCount * 2;
                }
                else if (i == 3)
                {
                    itemCount = otherCount;
                    typeName  = "第四大题:综合选择题";
                    b         = singleCount + otherCount * 2;
                    e         = singleCount + otherCount * 3;
                }

                Response.Write("<br>");
                Response.Write("<span class='StudentLeftInfo'><b> " + typeName + "</b></span>");
                Response.Write("<br>");

                if (PaperItems != null)
                {
                    Response.Write("<table width='100%'  border='1' style='background-color:#ffffff'>");
                    int z     = 1;
                    int tempK = 0;
                    int count = 1;
                    for (int j = b; j < e; j++)
                    {
                        if (j >= PaperItems.Count)
                        {
                            continue;
                        }

                        RandomExamItem paperItem = PaperItems[j];
                        int            k         = j + 1 - b;


                        if (paperItem.TypeId != PrjPub.ITEMTYPE_FILLBLANKDETAIL &&
                            paperItem.TypeId != PrjPub.ITEMTYPE_FILLBLANK)
                        {
                            z = 1;

                            if (k % 5 == 1)
                            {
                                Response.Write("</tr >");
                                Response.Write("<tr><td class='StudentTableInfo' id='Item" + i + j + "' >"
                                               + "<a href='CheckAttendExamNew.aspx?employeeID=" +
                                               Request.QueryString.Get("employeeID")
                                               + "#Test" + i + j + "' target='ifExamInfo' style='cursor: hand;'><b>" + k +
                                               "</b></a></td>");
                            }
                            else
                            {
                                Response.Write("<td class='StudentTableInfo' id='Item" + i + j + "' >"
                                               + "<a href='CheckAttendExamNew.aspx?employeeID=" +
                                               Request.QueryString.Get("employeeID")
                                               + "#Test" + i + j + "' target='ifExamInfo' style='cursor: hand;'><b>" + k +
                                               "</b></a></td>");
                            }
                        }
                        else
                        {
                            if (paperItem.TypeId == PrjPub.ITEMTYPE_FILLBLANK)
                            {
                                z = 1;
                                tempK++;

                                string str = "select * from Random_Exam_Item_" +
                                             DateTime.Today.Year + " where Random_Exam_ID=" + paperItem.RandomExamId
                                             + " and  Parent_Item_ID=" + paperItem.ItemId + " order by Item_Index";
                                DataSet ds = db.RunSqlDataSet(str);

                                foreach (DataRow dr in ds.Tables[0].Rows)
                                {
                                    if (count % 3 == 1)
                                    {
                                        Response.Write("</tr >");
                                        Response.Write("<tr><td class='StudentTableInfo' id='Item" + i + j + z + "' >"
                                                       + "<a href='CheckAttendExamNew.aspx?employeeID=" +
                                                       Request.QueryString.Get("employeeID")
                                                       + "#Test" + i + j + z +
                                                       "' target='ifExamInfo' style='cursor: hand;'><b>" +
                                                       tempK + "-(" + z + ")</b></a></td>");
                                    }
                                    else
                                    {
                                        Response.Write("<td class='StudentTableInfo' id='Item" + i + j + z + "' >"
                                                       + "<a href='CheckAttendExamNew.aspx?employeeID=" +
                                                       Request.QueryString.Get("employeeID")
                                                       + "#Test" + i + j + z +
                                                       "' target='ifExamInfo' style='cursor: hand;'><b>" +
                                                       tempK + "-(" + z + ")</b></a></td>");
                                    }

                                    z++;
                                    count++;
                                }
                            }
                        }
                    }

                    Response.Write("</tr >");
                    Response.Write("</table>");
                }
                else
                {
                    SessionSet.PageMessage = "未找到记录!";
                }
            }
        }
        private void DownLoadData()
        {
            string       templateFileName = Server.MapPath("/RailExamBao/RandomExam/ProgressBar.htm");
            StreamReader reader           = new StreamReader(@templateFileName, System.Text.Encoding.GetEncoding("gb2312"));
            string       html             = reader.ReadToEnd();

            reader.Close();
            Response.Write(html);
            Response.Flush();
            System.Threading.Thread.Sleep(200);
            string jsBlock;

            DateTime           beginTime  = DateTime.Now;
            SynchronizeLog     obj        = new SynchronizeLog();
            SynchronizeLogBLL  objlogdal  = new SynchronizeLogBLL();
            RefreshSnapShotBLL refreshbll = new RefreshSnapShotBLL();

            try
            {
                string strInfo    = string.Empty;
                string proName    = string.Empty;
                int    num        = 5;
                int    selectType = Convert.ToInt32(Request.QueryString.Get("selectType"));
                if (selectType == 0)
                {
                    strInfo = "下载考试试卷";
                    proName = "USP_Refresh_SnapShot_Exam";
                    num     = 6;
                }
                else if (selectType == 1)
                {
                    strInfo = "下载教材与试题";
                    proName = "USP_Refresh_SnapShot_Book";
                    num     = 5;
                }
                else if (selectType == 2)
                {
                    strInfo = "下载职员基本信息和档案信息";
                    proName = "USP_Refresh_SnapShot_Employee";
                    num     = 4;
                }
                else if (selectType == 3)
                {
                    strInfo = "下载基础数据";
                    proName = "USP_Refresh_SnapShot_All";
                    num     = 9;
                }

                if (selectType == 0 || selectType == 3)
                {
                    for (int i = 1; i <= num - 1; i++)
                    {
                        refreshbll.RefreshSnapShot(proName, i);

                        System.Threading.Thread.Sleep(10);
                        jsBlock = "<script>SetPorgressBar('正在" + strInfo + "','" + ((double)(i * 100) / (double)num).ToString("0.00") + "'); </script>";
                        Response.Write(jsBlock);
                        Response.Flush();
                    }

                    string strSql =
                        @"select a.User_Ids from Random_Exam_Arrange_Detail  a
                       where a.Random_Exam_ID in (select Random_Exam_ID from Random_Exam_Computer_Server a 
                       where Computer_Server_No='" + PrjPub.ServerNo + "' and (Has_Paper=0 or Is_Start<2))";
                    OracleAccess dbCenter = new OracleAccess(System.Configuration.ConfigurationManager.ConnectionStrings["OracleCenter"].ConnectionString);
                    string       strwhere = string.Empty;
                    DataSet      ds       = dbCenter.RunSqlDataSet(strSql);
                    foreach (DataRow dr in ds.Tables[0].Rows)
                    {
                        string[] struserIds = dr["User_Ids"].ToString().Split(',');

                        for (int i = 0; i < struserIds.Length; i++)
                        {
                            if (struserIds[i] == string.Empty)
                            {
                                continue;
                            }

                            if ((" or " + strwhere + " or ").IndexOf(" or Employee_ID=" + struserIds[i] + " or ") <= 0)
                            {
                                strwhere += strwhere == string.Empty
                                                ? "Employee_ID=" + struserIds[i]
                                                : " or Employee_ID=" + struserIds[i];
                            }
                        }
                    }

                    OracleAccess db = new OracleAccess();
                    if (db.GetCount("EMPLOYEE_FINGERPRINT", "MATERIALIZED VIEW") > 0)
                    {
                        strSql = "drop materialized view  Employee_FingerPrint";
                        db.ExecuteNonQuery(strSql);
                    }
                    if (strwhere == string.Empty)
                    {
                        strSql =
                            "create materialized view   Employee_FingerPrint   refresh force on demand as   select   *   from   Employee_FingerPrint@link_sf where 1=2";
                        db.ExecuteNonQuery(strSql);
                    }
                    else
                    {
                        strSql =
                            "create materialized view   Employee_FingerPrint   refresh force on demand as   select   *   from   Employee_FingerPrint@link_sf where  " +
                            strwhere;
                        db.ExecuteNonQuery(strSql);
                    }

                    System.Threading.Thread.Sleep(10);
                    jsBlock = "<script>SetPorgressBar('正在" + strInfo + "','" + ((double)(num * 100) / (double)num).ToString("0.00") + "'); </script>";
                    Response.Write(jsBlock);
                    Response.Flush();
                }
                else
                {
                    for (int i = 1; i <= num; i++)
                    {
                        refreshbll.RefreshSnapShot(proName, i);

                        System.Threading.Thread.Sleep(10);
                        jsBlock = "<script>SetPorgressBar('正在" + strInfo + "','" + ((double)(i * 100) / (double)num).ToString("0.00") + "'); </script>";
                        Response.Write(jsBlock);
                        Response.Flush();
                    }
                }


                obj.OrgID               = PrjPub.CurrentLoginUser.StationOrgID;
                obj.SynchronizeTypeID   = PrjPub.DownloadData;
                obj.SynchronizeStatusID = PrjPub.DownloadSuccess;
                obj.BeginTime           = beginTime;
                obj.EndTime             = DateTime.Now;
                objlogdal.AddSynchronizeLog(obj);
                Response.Write("<script>alert('下载成功!');top.close();</script>");
            }
            catch
            {
                obj.OrgID               = PrjPub.CurrentLoginUser.StationOrgID;
                obj.SynchronizeTypeID   = PrjPub.DownloadData;
                obj.SynchronizeStatusID = PrjPub.DownloadFailed;
                obj.BeginTime           = beginTime;
                obj.EndTime             = DateTime.Now;
                objlogdal.AddSynchronizeLog(obj);
                Response.Write("<script>alert('同步数据失败!请检查站段服务器网络连接是否正常!');top.close();</script>");
            }
        }
        /// <summary>
        /// 修改的申请预订记录
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnSave_Click(object sender, ImageClickEventArgs e)
        {
            if (Request.QueryString["mode"] != null)
            {
                string state = Request.QueryString["mode"].ToString();
                if (isBlock())
                {
                    return;
                }
                int orgID                 = PrjPub.CurrentLoginUser.StationOrgID;
                int APPLY_ORG_ID          = int.Parse(this.DDLOrg.SelectedValue);
                int COMPUTER_ROOM_ID      = int.Parse(this.DDLComputerRoom.SelectedValue);
                int APPLY_COMPUTER_NUMBER = int.Parse(this.txtAPPLY_COMPUTER_NUMBER.Text.Trim().ToString());

                string strBegin = dateBeginTime.DateValue.ToString() + " " + ddlBeginHour.SelectedValue + ":00:00";
                string strEnd   = dateEndTime.DateValue.ToString() + " " + ddlEndHour.SelectedValue + ":00:00";

                try
                {
                    DateTime nowBegin = Convert.ToDateTime(strBegin);
                    DateTime nowEnd   = Convert.ToDateTime(strEnd);

                    if (nowEnd <= nowBegin)
                    {
                        this.ClientScript.RegisterStartupScript(GetType(), "NO", "alert('申请结束时间不能小于等于开始时间!')", true);
                        return;
                    }
                }
                catch (Exception ex)
                {
                    OxMessageBox.MsgBox3(ex.Message);
                    return;
                }

                OracleAccess ora = new OracleAccess();
                try
                {
                    if (state == "Insert")
                    {
                        //判断被申请微机教室是否被占用
                        //string strSql = "select * from Computer_Room_Apply a "
                        //         + " inner join Computer_Room b on a.Computer_Room_ID=b.Computer_Room_ID "
                        //         + " where a.REPLY_STATUS=1 and a.Computer_Room_ID=" + DDLComputerRoom.SelectedValue
                        //         + " and ((a.Apply_Start_Time >= to_date('" + strBegin + "','YYYY-MM-DD HH24:MI:SS')"
                        //         + " and a.Apply_Start_Time <= to_date('" + strEnd + "','YYYY-MM-DD HH24:MI:SS'))"
                        //         + " or (a.Apply_End_Time >= to_date('" + strBegin + "','YYYY-MM-DD HH24:MI:SS')"
                        //         + " and a.Apply_End_Time <= to_date('" + strEnd + "','YYYY-MM-DD HH24:MI:SS')))";
                        //if(ora.RunSqlDataSet(strSql).Tables[0].Rows.Count > 0)
                        //{
                        //    this.ClientScript.RegisterStartupScript(GetType(), "NO", "alert('该微机教室已被本单位或其他单位占用,不能申请使用该微机教室!')", true);
                        //    return;
                        //}

                        DataSet ds = new DataSet();
                        ds = ora.RunSqlDataSet("select * from COMPUTER_ROOM_APPLY where ORG_ID=" + orgID + " and APPLY_ORG_ID=" + int.Parse(this.DDLOrg.SelectedValue) + " and COMPUTER_ROOM_ID=" + int.Parse(this.DDLComputerRoom.SelectedValue) + " and REPLY_STATUS=" + 0);
                        if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
                        {
                            this.ClientScript.RegisterStartupScript(GetType(), "NO", "alert('当前单位已向该教室提出申请但未回复,不能重复申请!')", true);
                            return;
                        }
                        ora = new OracleAccess();
                        ora.ExecuteNonQuery(string.Format("insert into computer_room_apply(COMPUTER_ROOM_APPLY_ID,ORG_ID,"
                                                          + "apply_org_id,computer_room_id,apply_start_time,apply_end_time,apply_computer_number,REPLY_STATUS) "
                                                          + "  values({0},{1},{2},{3},to_date('{4}','yyyy-mm-dd hh24:mi:ss'),to_date('{5}','yyyy-mm-dd hh24:mi:ss'),{6},{7})", "COMPUTER_ROOM_APPLY_SEQ.NEXTVAL", orgID, APPLY_ORG_ID, COMPUTER_ROOM_ID, strBegin, strEnd, APPLY_COMPUTER_NUMBER, 0));
                    }
                    else if (state == "EditOne" || state == "EditTwo")
                    {
                        if (Request.QueryString["id"] != null)
                        {
                            string strSql = string.Empty;
                            int    _ComputerRoomApplyID = Convert.ToInt32(Request.QueryString["id"]);
                            int    REPLY_STATUS         = this.DDLREPLY_STATUS.SelectedIndex;
                            string REJECT_REASON        = this.txtREJECT_REASON.Text.Trim().ToString();
                            if (state == "EditOne")
                            {
                                //判断被申请微机教室是否被占用
                                //strSql = "select * from Computer_Room_Apply a "
                                //         + " inner join Computer_Room b on a.Computer_Room_ID=b.Computer_Room_ID "
                                //         + " where a.REPLY_STATUS=1 and a.Computer_Room_ID=" + DDLComputerRoom.SelectedValue
                                //         + " and ((a.Apply_Start_Time >= to_date('" + strBegin + "','YYYY-MM-DD HH24:MI:SS')"
                                //         + " and a.Apply_Start_Time <= to_date('" + strEnd + "','YYYY-MM-DD HH24:MI:SS'))"
                                //         + " or (a.Apply_End_Time >= to_date('" + strBegin + "','YYYY-MM-DD HH24:MI:SS')"
                                //         + " and a.Apply_End_Time <= to_date('" + strEnd + "','YYYY-MM-DD HH24:MI:SS')))";

                                //if (ora.RunSqlDataSet(strSql).Tables[0].Rows.Count > 0)
                                //{
                                //    this.ClientScript.RegisterStartupScript(GetType(), "NO", "alert('该微机教室已被本单位或其他单位占用,不能申请使用该微机教室!')", true);
                                //    return;
                                //}
                                ora.ExecuteNonQuery(string.Format("update computer_room_apply SET ORG_ID={0},APPLY_ORG_ID={1},COMPUTER_ROOM_ID={2},APPLY_START_TIME=to_date('{3}','yyyy-mm-dd hh24:mi:ss'),APPLY_END_TIME=to_date('{4}','yyyy-mm-dd hh24:mi:ss'),APPLY_COMPUTER_NUMBER={5},REPLY_STATUS={6},REJECT_REASON='{7}' where COMPUTER_ROOM_APPLY_ID={8}", orgID, APPLY_ORG_ID, COMPUTER_ROOM_ID, strBegin, strEnd, APPLY_COMPUTER_NUMBER, REPLY_STATUS, REJECT_REASON, _ComputerRoomApplyID));
                            }
                            else
                            {
                                //只需要修回复状态与回复原因
                                switch (REPLY_STATUS)
                                {
                                case 0:
                                    strSql = "update computer_room_apply SET REPLY_STATUS=0 where COMPUTER_ROOM_APPLY_ID=" + _ComputerRoomApplyID;
                                    break;

                                case 1:

                                    //strSql = "select * from Computer_Room_Apply a "
                                    //+ " inner join Computer_Room b on a.Computer_Room_ID=b.Computer_Room_ID "
                                    //+ " where a.REPLY_STATUS=1 and a.Computer_Room_ID=" + DDLComputerRoom.SelectedValue
                                    //+ " and ((a.Apply_Start_Time >= to_date('" + strBegin + "','YYYY-MM-DD HH24:MI:SS')"
                                    //+ " and a.Apply_Start_Time <= to_date('" + strEnd + "','YYYY-MM-DD HH24:MI:SS'))"
                                    //+ " or (a.Apply_End_Time >= to_date('" + strBegin + "','YYYY-MM-DD HH24:MI:SS')"
                                    //+ " and a.Apply_End_Time <= to_date('" + strEnd + "','YYYY-MM-DD HH24:MI:SS')))";
                                    //if (ora.RunSqlDataSet(strSql).Tables[0].Rows.Count > 0)
                                    //{
                                    //    this.ClientScript.RegisterStartupScript(GetType(), "NO", "alert('该微机教室已被本单位或其他单位占用,不能回复通过该微机教室的申请!')", true);
                                    //    return;
                                    //}

                                    strSql = "update computer_room_apply SET REPLY_STATUS=1 where COMPUTER_ROOM_APPLY_ID=" + _ComputerRoomApplyID;

                                    break;

                                case 2:
                                    if (string.IsNullOrEmpty(this.txtREJECT_REASON.Text.Trim().ToString()))
                                    {
                                        this.ClientScript.RegisterStartupScript(GetType(), "NO", "alert('请填写回复原因!')", true);
                                        this.txtREJECT_REASON.Focus();
                                        return;
                                    }
                                    strSql = "update computer_room_apply SET REPLY_STATUS=2,REJECT_REASON='" + this.txtREJECT_REASON.Text.Trim().ToString() + "' where COMPUTER_ROOM_APPLY_ID=" + _ComputerRoomApplyID;
                                    break;
                                }
                                ora.ExecuteNonQuery(strSql);

                                if (REPLY_STATUS == 1)
                                {
                                    ora.ExecuteNonQuery("update Computer_Room set Is_Use=1 where Computer_Room_ID=" + DDLComputerRoom.SelectedValue);
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    Response.Write("<script>alert('" + ex.Message + "')</script>");
                    throw ex;
                }
                ClientScript.RegisterStartupScript(GetType(), "OK", "alert('保存成功!');top.returnValue='true';top.close();", true);
                //Response.Write("<script>top.returnValue='true';top.close();</script>");
            }
        }
Beispiel #30
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!this.IsPostBack)
            {
                try
                {
                    OracleAccess db1 = new OracleAccess(ConfigurationManager.ConnectionStrings["OracleCenter"].ConnectionString);
                    db1.RunSqlDataSet("select * from Org where level_num=2");
                }
                catch
                {
                    Response.Write("<script>alert('当前站段服务器无法访问路局服务器,不能临时添加考生!');window.close();</script>");
                    return;
                }

                ViewState["ExamID"] = Request.QueryString.Get("RandomExamID");
                string strId = Request.QueryString.Get("RandomExamID");
                if (strId != null && strId != "")
                {
                    RandomExamArrangeBLL eaBll = new RandomExamArrangeBLL();
                    IList <RailExam.Model.RandomExamArrange> ExamArranges = eaBll.GetRandomExamArranges(int.Parse(strId));

                    if (ExamArranges.Count > 0)
                    {
                        string strSql = "select a.* from Random_Exam_Arrange_Detail a "
                                        + " inner join Computer_Room b on a.Computer_Room_ID=b.Computer_Room_ID"
                                        + " inner join Computer_Server c on c.Computer_server_ID=b.Computer_Server_ID"
                                        + " where c.Computer_Server_No='" + PrjPub.ServerNo + "' "
                                        + " and Random_Exam_ID=" + strId;

                        OracleAccess db = new OracleAccess();
                        DataSet      ds = db.RunSqlDataSet(strSql);

                        string strChooseID = string.Empty;
                        foreach (DataRow dr in ds.Tables[0].Rows)
                        {
                            if (string.IsNullOrEmpty(strChooseID))
                            {
                                strChooseID += dr["User_Ids"].ToString();
                            }
                            else
                            {
                                strChooseID += "," + dr["User_Ids"];
                            }
                        }

                        GetAddIs(strId, ExamArranges[0].UserIds);

                        ViewState["ChooseId"]   = strChooseID;
                        ViewState["UpdateMode"] = 1;
                    }
                    else
                    {
                        ViewState["ChooseId"]   = "";
                        ViewState["UpdateMode"] = 0;
                    }
                }
                BindChoosedGrid(ViewState["ChooseId"].ToString());
            }

            string strRefresh = Request.Form.Get("Refresh");

            if (strRefresh != "" && strRefresh != null)
            {
                string strId = ViewState["ExamID"].ToString();
                if (strId != null && strId != "")
                {
                    RandomExamArrangeBLL eaBll = new RandomExamArrangeBLL();
                    IList <RailExam.Model.RandomExamArrange> ExamArranges = eaBll.GetRandomExamArranges(int.Parse(strId));

                    if (ExamArranges.Count > 0)
                    {
                        //string strAddIds = string.Empty;

                        //查询出考试所有考生安排明细
                        OracleAccess db = new OracleAccess();

                        /*
                         * string strSql = "select * from Random_Exam_Arrange_Detail where Random_Exam_ID=" + strId;
                         * DataSet dsAll = db.RunSqlDataSet(strSql);
                         *
                         * //遍历添加考生后的考生主表,查询出添加了哪些考生
                         * string[] str = ExamArranges[0].UserIds.Split(',');
                         * for (int i = 0; i < str.Length; i++)
                         * {
                         *  string strReplace = "," + str[i] + ",";
                         *  DataRow[] drs = dsAll.Tables[0].Select("','+User_Ids+',' like '%" + strReplace + "%'");
                         *
                         *  //如果在所有考生安排明细中,查询不到当前编辑的考生ID,说明该考生为新添加
                         *  if (drs.Length == 0)
                         *  {
                         *      if (strAddIds == string.Empty)
                         *      {
                         *          strAddIds += str[i];
                         *      }
                         *      else
                         *      {
                         *          strAddIds += "," + str[i];
                         *      }
                         *  }
                         * }
                         *
                         * if(hfAddIds.Value == "")
                         * {
                         *  hfAddIds.Value = strAddIds.Replace(",", "|");
                         * }
                         * else
                         * {
                         *  hfAddIds.Value += "|" + strAddIds.Replace(",", "|");
                         * }
                         *
                         * ViewState["AddIds"] = hfAddIds.Value;
                         * */

                        //查询考试在当前服务器下当前考试的考生信息
                        string strSql = "select a.* from Random_Exam_Arrange_Detail a "
                                        + " inner join Computer_Room b on a.Computer_Room_ID=b.Computer_Room_ID"
                                        + " inner join Computer_Server c on c.Computer_server_ID=b.Computer_Server_ID"
                                        + " where c.Computer_Server_No='" + PrjPub.ServerNo + "' "
                                        + " and Random_Exam_ID=" + strId;
                        DataSet ds = db.RunSqlDataSet(strSql);

                        string strChooseID = string.Empty;
                        foreach (DataRow dr in ds.Tables[0].Rows)
                        {
                            if (string.IsNullOrEmpty(strChooseID))
                            {
                                strChooseID += dr["User_Ids"].ToString();
                            }
                            else
                            {
                                strChooseID += "," + dr["User_Ids"];
                            }
                        }

                        GetAddIs(strId, ExamArranges[0].UserIds);

                        /*
                         *
                         * //如果添加了考生,则默认将该考生的考场安排在本站段的某一个微机教室
                         * if(ds.Tables[0].Rows.Count > 0 && !string.IsNullOrEmpty(strAddIds))
                         * {
                         *  if(PrjPub.IsServerCenter)
                         *  {
                         *      strSql = "update Random_Exam_Arrange_Detail "
                         + "set User_ids = User_ids || '," + strAddIds + "' "
                         + "where   Random_Exam_Arrange_Detail_ID =" + ds.Tables[0].Rows[0]["Random_Exam_Arrange_Detail_ID"];
                         +      db.ExecuteNonQuery(strSql);
                         +  }
                         +  else
                         +  {
                         +      eaBll.UpdateRandomExamArrangeDetailToServer(Convert.ToInt32(ds.Tables[0].Rows[0]["Random_Exam_Arrange_Detail_ID"]), strAddIds);
                         +  }
                         +
                         +
                         +  strChooseID = strChooseID + "," + strAddIds;
                         + }
                         * */

                        ViewState["ChooseId"]   = strChooseID;
                        ViewState["UpdateMode"] = 1;
                    }
                    else
                    {
                        ViewState["ChooseId"]   = "";
                        ViewState["UpdateMode"] = 0;
                    }

                    BindChoosedGrid(ViewState["ChooseId"].ToString());
                }
            }
        }