コード例 #1
0
ファイル: StudentController.cs プロジェクト: maziweis/ExamJKY
 public HttpResponseMessage DelStudent([FromBody] DelStuOrTch m)
 {
     lock (_locker)
     {
         var exam = MongoDbHelper.FindOne <E_Info>(m.ExamID, DbName.E_Info);//找到这次考试
         if (exam == null)
         {
             return(ResultHelper.Failed("未找到该次考试"));
         }
         St_Info st = MongoDbHelper.FindOne <St_Info>(m.UserID, DbName.St_Info);//找到这个学生
         if (st == null)
         {
             return(ResultHelper.Failed("未找到该考生信息"));
         }
         var ppnm = MongoDbHelper.QueryOne <Pp_Nm>(DbName.Pp_Nm, w => w.sid == st.sid && w.eid == exam._id);//找到这个学校试卷数量
         ppnm.ct--;
         for (int i = 0; i < st.subEs.Count; i++)
         {
             var sb = exam.sbs.Where(w => w._id == st.subEs[i].sbid).FirstOrDefault();
             var pp = ppnm.sbnms.Where(w => w.sbid == st.subEs[i].sbid).FirstOrDefault();
             sb.stct--;
             pp.sct--;
         }
         MongoDbHelper.ReplaceOne(ppnm._id.ToString(), ppnm, DbName.Pp_Nm);
         MongoDbHelper.ReplaceOne(m.ExamID, exam, DbName.E_Info);
         MongoDbHelper.DeleteOne <St_Info>(m.UserID, DbName.St_Info);
         return(ResultHelper.OK());
     }
 }
コード例 #2
0
ファイル: StudentController.cs プロジェクト: maziweis/ExamJKY
        public HttpResponseMessage EditStudent([FromBody] StudentInfo m)
        {
            St_Info st = MongoDbHelper.FindOne <St_Info>(m.ID, DbName.St_Info);

            if (st == null)
            {
                return(ResultHelper.Failed("未找到该学生信息"));
            }
            if (m.StudentID != st.stid)
            {
                St_Info st1 = MongoDbHelper.QueryOne <St_Info>(DbName.St_Info, w => w.stid == m.StudentID);
                if (st1 != null)
                {
                    return(ResultHelper.Failed("考号已存在"));
                }
            }
            if (!Function.MathIdCard(m.IdCard))
            {
                return(ResultHelper.Failed("身份证号不正确"));
            }
            if (m.IdCard != st.idcd)
            {
                St_Info st1 = MongoDbHelper.QueryOne <St_Info>(DbName.St_Info, w => w.idcd == m.IdCard);
                if (st1 != null)
                {
                    return(ResultHelper.Failed("身份证号已存在"));
                }
            }
            st.cls  = m.Class;
            st.idcd = m.IdCard;
            st.nm   = m.Name;
            st.stid = m.StudentID;
            //st.subEs = new List<SubE>();
            //for (int i = 0; i < m.Subs.Count; i++)
            //{
            //    ObjectId objectid1 = new ObjectId();
            //    if (ObjectId.TryParse(m.Subs[i].SubID, out objectid1))
            //    {
            //        SubE sb = new SubE();
            //        sb.sbid = objectid1;
            //        sb.sbnm = m.Subs[i].SubName;
            //        sb.sbrm = m.Subs[i].SubRoom;
            //        sb.sbst = m.Subs[i].SubSite;
            //        sb.sbtch = m.Subs[i].SubTeacher;
            //        st.subEs.Add(sb);
            //    }
            //}
            MongoDbHelper.ReplaceOne(m.ID, st, DbName.St_Info);
            return(ResultHelper.OK());
        }
コード例 #3
0
ファイル: ExcelBLL.cs プロジェクト: maziweis/ExamJKY
        public static string ImportStuExcel(string path, E_Info exam, string SchoolID, out int errnum)
        {
            HSSFWorkbook hssfworkbook;

            #region//初始化信息
            try
            {
                using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read))
                {
                    hssfworkbook = new HSSFWorkbook(fs);
                }
            }
            catch (Exception e)
            {
                throw e;
            }
            #endregion
            NPOI.SS.UserModel.ISheet       sheet = hssfworkbook.GetSheetAt(0);
            System.Collections.IEnumerator rows  = sheet.GetRowEnumerator();
            DataTable dt = new DataTable();
            rows.MoveNext();
            HSSFRow       row  = (HSSFRow)rows.Current;
            List <string> cols = new List <string>();
            for (int j = 0; j < (sheet.GetRow(0).LastCellNum); j++)
            {
                cols.Add(row.GetCell(j).ToString().Trim());
                dt.Columns.Add(row.GetCell(j).ToString());
            }
            var colHead = GetStuColumn(exam);
            if (!(colHead.All(cols.Contains) && cols.All(colHead.Contains)))
            {
                errnum = 0;
                return("表格格式错误,请重新下载模板");
            }
            cols.Add("错误原因");
            dt.Columns.Add("错误原因");
            while (rows.MoveNext())
            {
                row = (HSSFRow)rows.Current;
                St_Info st = new St_Info();
                if (!IsNull(row, 0) || !IsNull(row, 1) || !IsNull(row, 2))
                {
                    continue;
                }
                var stInfo = MongoDbHelper.QueryOne <St_Info>(DbName.St_Info, w => w.eid == exam._id && (w.idcd == row.GetCell(row.LastCellNum - 2).ToString() || w.stid == row.GetCell(2).ToString()));
                var school = MongoDbHelper.QueryOne <U_Info>(DbName.U_Info, w => w._id == row.GetCell(0).ToString());
                var ifTrue = false;
                if (SchoolID != "SchoolID" && school != null)
                {
                    ifTrue = !(SchoolID == school._id);
                }
                if (school == null || ifTrue || stInfo != null || !IsNull(row, 0) || !IsNull(row, 1) || !IsNull(row, 2) || !IsNull(row, 3) || !IsNull(row, 4) || !IsNull(row, row.LastCellNum - 2) || !IsNull(row, row.LastCellNum - 1) || !CommonHelper.Function.MathIdCard(row.GetCell(row.LastCellNum - 2).ToString()))
                {
                    DataRow dr = dt.NewRow();
                    for (int i = 0; i < (sheet.GetRow(0).LastCellNum); i++)
                    {
                        NPOI.SS.UserModel.ICell cell = row.GetCell(i);
                        if (cell == null)
                        {
                            dr[i] = null;
                        }
                        else
                        {
                            dr[i] = cell.ToString();
                        }
                    }
                    if (school == null)
                    {
                        dr[sheet.GetRow(0).LastCellNum] += "学校不存在;";
                    }
                    if (ifTrue)
                    {
                        dr[sheet.GetRow(0).LastCellNum] += "学校代号错误;";
                    }
                    if (stInfo != null)
                    {
                        dr[sheet.GetRow(0).LastCellNum] += "考号或身份证号已存在;";
                    }
                    if (!CommonHelper.Function.MathIdCard(row.GetCell(row.LastCellNum - 2).ToString()))
                    {
                        dr[sheet.GetRow(0).LastCellNum] += "身份证号不正确;";
                    }
                    dt.Rows.Add(dr);
                    continue;
                }
                st.eid  = exam._id;
                st.stid = row.GetCell(2).ToString();
                st.sid  = row.GetCell(0).ToString();
                st.snm  = row.GetCell(1).ToString();
                st.cls  = row.GetCell(3).ToString();
                st.nm   = row.GetCell(4).ToString();
                st.idcd = row.GetCell(row.LastCellNum - 2).ToString();
                st.tp   = row.GetCell(row.LastCellNum - 1).ToString();
                var schPp   = MongoDbHelper.QueryOne <Pp_Nm>(DbName.Pp_Nm, w => w.sid == st.sid && w.eid == exam._id); //查询该学校这次考试试卷数量
                int firstpp = 0;                                                                                       //0代表不是新建
                if (schPp == null)
                {
                    firstpp   = 1;
                    schPp     = new Pp_Nm();
                    schPp.sid = st.sid;
                    schPp.snm = st.snm;
                    schPp.eid = exam._id;
                    schPp.ct  = 0;
                }
                schPp.ct++;//学校考试人数加1
                for (int i = 0; i < exam.sbs.Count; i++)
                {
                    if (IsNull(row, 5 + i * 3) && IsNull(row, 6 + i * 3) && IsNull(row, 7 + i * 3))
                    {
                        SubE sube = new SubE();
                        sube.sbid  = exam.sbs[i]._id;
                        sube.sbnm  = exam.sbs[i].sbnm;
                        sube.sbrm  = row.GetCell(5 + i * 3).ToString();
                        sube.sbst  = row.GetCell(6 + i * 3).ToString();
                        sube.sbtch = row.GetCell(7 + i * 3).ToString();
                        st.subEs.Add(sube);
                        exam.sbs[i].stct++;//考试人数加1
                        var Sbnm = schPp.sbnms.Where(w => w.sbid == sube.sbid).FirstOrDefault();
                        if (Sbnm == null)
                        {
                            Sbnm      = new Sbnm();
                            Sbnm.sbid = sube.sbid;
                            Sbnm.sbnm = sube.sbnm;
                            Sbnm.sct  = 1;
                            Sbnm.ac   = 0;
                            schPp.sbnms.Add(Sbnm);
                        }
                        else
                        {
                            Sbnm.sct++;
                        }
                    }
                }
                if (firstpp == 0)
                {
                    MongoDbHelper.ReplaceOne(schPp._id.ToString(), schPp, DbName.Pp_Nm);
                }
                else
                {
                    MongoDbHelper.Insert(schPp, DbName.Pp_Nm);
                }
                MongoDbHelper.Insert(st, DbName.St_Info);
            }
            MongoDbHelper.ReplaceOne(exam._id.ToString(), exam, DbName.E_Info);
            errnum = dt.Rows.Count;
            if (dt.Rows.Count > 0)
            {
                return(BuildExcel1(cols.ToArray(), dt));
            }
            return("");
        }