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()); } }
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()); }
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(""); }