public override string formatData(PM pm) { //反馈信息 String result = String.Empty; String Empty = "NULL"; XWLW_PM xwlw = (XWLW_PM)pm; xwlw.ds_bak = xwlw.ds; xwlw.ds = GlobalMethod.Semicolon(xwlw.ds); xwlw.zwztc = GlobalMethod.Semicolon(xwlw.zwztc); xwlw.ywztc = GlobalMethod.Semicolon(xwlw.ywztc); xwlw.zwztc = xwlw.zwztc.Replace(";;", ";"); xwlw.ywztc = xwlw.ywztc.Replace(";;", ";"); xwlw.dlr = user.name; xwlw.gxrq = DateTime.Now; if (!xwlw.flbm.Equals("XW" + xwlw.fltx)) { result += "分类编码和分类体系不匹配 "; } else if (xwlwDAO.GetXWLW_FLByFlbm(xwlw.flbm) == null) { result += "分类编码" + xwlw.flbm + "不存在 "; } if (Empty.Equals(xwlw.zwtm) && Empty.Equals(xwlw.ywtm)) { result += "中文题名和英文题名都为空 "; } if (xwlw.nf == 0) { result += "年份为空 "; } if (hasFormatTable) { if (!result.Equals(String.Empty)) { result += pmKeyInfo(pm); } return result; } xwlw.wjm = "自动生成"; xwlw.qw = "1"; if (Empty.Equals(xwlw.ywjm)) { xwlw.qw = "-1"; result += "原文件名(PDF全文)为空 "; } else { #if nodef try { if (!File.Exists(fileFolder + xwlw.ywjm)) { String filePDF = fileFolder + xwlw.ywjm; if (!Directory.Exists(Path.GetDirectoryName(filePDF))) Directory.CreateDirectory(Path.GetDirectoryName(filePDF)); File.Copy(fileFolder + "exp.pdf", fileFolder + xwlw.ywjm); } } catch { } #endif if (!File.Exists(fileFolder + "/" + xwlw.ywjm)) { xwlw.qw = "-1"; result += xwlw.ywjm + " PDF文件不存在 "; } else if (xwlw.ys == 0) { try { pdf = new PdfReader(fileFolder + "/" + xwlw.ywjm); if (null != pdf) { xwlw.ys = pdf.NumberOfPages; } else { xwlw.ys = 0; } pdf.Close(); } catch { result += xwlw.ywjm + " PDF损坏 "; } } } if (null != prevPM) { if (prevPM.sybm.Equals(xwlw.sybm) && prevPM.zz.Equals(xwlw.zz) && prevPM.ds.Equals(xwlw.ds) && prevPM.zwtm.Equals(xwlw.zwtm) && prevPM.lwjb.Equals(xwlw.lwjb)) { result += "篇名存在重复 "; xwlw.isValid = false; } } prevPM = xwlw; if (!result.Equals(String.Empty)) { result += pmKeyInfo(pm); } return result; }
protected override PM getPM(OleDbDataReader reader, out String err) { err = String.Empty; XWLW_PM pm = new XWLW_PM(); if (hasFormatTable) { pm.flbm = reader["分类编码"].ToString().Trim(); pm.sybm = reader["索引编码"].ToString().Trim(); pm.wjm = reader["文件名"].ToString().Trim(); pm.ywjm = reader["原文件名"].ToString().Trim(); pm.zwtm = reader["中文题名"].ToString().Trim(); pm.ywtm = reader["英文题名"].ToString().Trim(); pm.zz = reader["作者"].ToString().Trim(); pm.ds = reader["导师"].ToString().Trim(); pm.lwjb = reader["论文级别"].ToString().Trim(); pm.xkzymc = reader["学科专业名称"].ToString().Trim(); pm.flh = reader["分类号"].ToString().Trim(); pm.xwsydw = reader["学位授予单位"].ToString().Trim(); try { pm.ys = int.Parse(reader["页数"].ToString().Trim()); } catch (Exception) { pm.ys = 0; } try { int index = pm.ywjm.LastIndexOf('/'); pm.nf = int.Parse(pm.ywjm.Substring(index + 1,4)); } catch (Exception) { pm.nf = 0; } try { if (pm.nf == 0) pm.nf = int.Parse(reader["年份"].ToString().Trim()); } catch (Exception) { pm.nf = 0; err += "年份\"" + reader["年份"] + "\"不正确 "; } try { if (!String.Empty.Equals(reader["论文提交日期"].ToString().Trim())) pm.lwtjrq = DateTime.Parse(reader["论文提交日期"].ToString().Trim()); } catch { err += "论文提交日期\"" + reader["论文提交日期"] + "\"不正确 "; } try { if (!String.Empty.Equals(reader["论文答辩日期"].ToString().Trim())) pm.lwdbrq = DateTime.Parse(reader["论文答辩日期"].ToString().Trim()); } catch { err += "论文答辩日期\"" + reader["论文答辩日期"] + "\"不正确 "; } pm.zwztc = reader["中文关键词"].ToString().Trim(); pm.zwzy = reader["中文摘要"].ToString().Trim(); pm.fltx = reader["分类体系"].ToString().Trim(); pm.ywzy = reader["英文摘要"].ToString().Trim(); pm.ywztc = reader["英文关键词"].ToString().Trim(); pm.ywjm = reader["原文件名"].ToString().Trim(); try { if (!String.Empty.Equals(reader["出版日期"].ToString().Trim())) pm.cbrq = DateTime.Parse(reader["出版日期"].ToString().Trim()); } catch { err +="出版日期\"" + reader["出版日期"] + "\"不正确 "; } try { if (!String.Empty.Equals(reader["学位授予日期"].ToString().Trim())) pm.xwsyrq = DateTime.Parse(reader["学位授予日期"].ToString().Trim()); } catch { err += "学位授予日期\"" + reader["学位授予日期"] + "\"不正确 "; } //页数和更新日期忽略,自动填写 pm.qw = reader["全文"].ToString().Trim(); } else { pm.ywjm = reader["文件名"].ToString().Trim(); try { String xwnd = reader["学位年度"].ToString().Trim(); pm.nf = Int32.Parse(xwnd); } catch { pm.nf = 0; } pm.zwtm = reader["中文题名"].ToString().Trim(); pm.ywtm = reader["英文题名"].ToString().Trim(); pm.zz = reader["作者"].ToString().Trim(); pm.ds = reader["导师"].ToString().Trim(); pm.lwjb = reader["论文级别"].ToString().Trim(); pm.xkzymc = reader["学科专业名称"].ToString().Trim(); pm.flh = reader["分类号"].ToString().Trim(); /* 根据分类号生成"分类体系",分类编码,索引编码,文件名 */ string[] flhs = pm.flh.Split(';'); for (int i = 0; i < flhs.Length; i++) { string flh = flhs[i]; if (flh.Length > 1) { if (flh[0] == 'O') pm.fltx = "QQ"; if (flh[0] == 'N') pm.fltx = "NN"; if (flh[0] == 'U') pm.fltx = "UU"; if (flh[0] == 'X') pm.fltx = "XX"; if (flh[0] == 'T') pm.fltx = flh.Substring(0, 2); } if (null != pm.fltx && !"".Equals(pm.fltx)) break; } if (!"".Equals(pm.fltx)) { pm.flbm = "XW" + pm.fltx; if (pm.nf != 0) { pm.sybm = pm.flbm + "-" + pm.nf.ToString(); } } else { err += "根据分类号未能找到分类体系 "; } pm.xwsydw = reader["学位授予单位"].ToString().Trim(); pm.zwztc = reader["中文关键词"].ToString().Trim(); pm.zwzy = reader["中文摘要"].ToString().Trim(); pm.ywzy = reader["英文摘要"].ToString().Trim(); pm.ywztc = reader["英文关键词"].ToString().Trim(); try { pm.pc = int.Parse(reader["批次"].ToString().Trim()); } catch { pm.pc = 1; } /* 页数 */ try { pm.ys = Int32.Parse(reader["页数"].ToString().Trim()); } catch { pm.ys = 0; } /* 论文答辩日期、论文提交日期, 学位授予日期 */ string dateStr = reader["论文答辩日期"].ToString().Trim(); try { if (!"".Equals(dateStr)) pm.lwdbrq = DateTime.Parse(dateStr); } catch { } dateStr = reader["论文提交日期"].ToString().Trim(); try { if (!"".Equals(dateStr)) pm.lwtjrq = DateTime.Parse(dateStr); } catch { } dateStr = reader["学位授予日期"].ToString().Trim(); try { if (!"".Equals(dateStr)) pm.xwsyrq = DateTime.Parse(dateStr); } catch { } /* 出版日期:出版年+期 */ String cbn = reader["出版年"].ToString().Trim(); string cbq = reader["期"].ToString().Trim(); dateStr = cbn + "-" + cbq + "-01"; try { pm.cbrq = DateTime.Parse(dateStr); } catch { } } if (!err.Equals(String.Empty)) err += pmKeyInfo(pm); /* 更新日期,登录人 */ pm.gxrq = DateTime.Now; pm.dlr = user.name; pm.fillEmptyStringAsNull(); return pm; }
/// <summary> /// 生成日志信息 /// </summary> /// <param name="xwlwPM">中文篇名信息</param> /// <param name="opType">操作类型</param> /// <param name="uname">用户名</param> /// <returns></returns> private OperationLogItem GetOperationLogItem(XWLW_PM xwlwPM, String opType, String uname) { if (null == xwlwPM) { return null; } OperationLogItem operationLogItem = new OperationLogItem(); //操作类型 operationLogItem.opType = opType; //数据库表 operationLogItem.opTable = "XWLW_PM"; //全文页数 operationLogItem.opPageCount = xwlwPM.ys; operationLogItem.opObjectID = "学位论文"; // 操作涉及的书刊 operationLogItem.opBookIn = "学位论文"; // 时间 operationLogItem.opDate = DateTime.Now; // 操作员 operationLogItem.opPerson = uname; //记录操作模式,判断是否属于批量操作。取值范围SINGLE/BATCH。 operationLogItem.opMode = "SINGLE"; //操作的内容 String content = "('" + xwlwPM.flbm + "','" + xwlwPM.sybm + "','" + xwlwPM.wjm + "','" + xwlwPM.ywjm + "','" + xwlwPM.zwtm + "','" + xwlwPM.ywtm + "','" + xwlwPM.zz + "','" + xwlwPM.ds + "','" + xwlwPM.lwjb + "','" + xwlwPM.xkzymc + "','" + xwlwPM.flh + "','" + xwlwPM.xwsydw + "','" + xwlwPM.lwtjrq + "','" + xwlwPM.lwdbrq+ "','" +xwlwPM.xwsyrq + "','" + xwlwPM.zwztc + "','" + xwlwPM.zwzy + "','" + xwlwPM.ywztc + "','" + xwlwPM.ywzy + "','" + xwlwPM.fltx + "','" + xwlwPM.nf + "','" + xwlwPM.cbrq + "','" + xwlwPM.ys + "','" + xwlwPM.gxrq + "','" + xwlwPM.qw + "')"; operationLogItem.opContent = content; return operationLogItem; }
/// <summary> /// 更新一条篇名信息 /// </summary> /// <param name="xwlw_pm">要更新的篇名信息</param> /// <param name="uname">操作用户名</param> /// <returns></returns> public Boolean UpdateXWLW_PM(XWLW_PM xwlw_pm, String uname) { Boolean flag = true; int back=sqlMapper.Update("UpdateXWLW_PM", xwlw_pm); if (back <= 0) { flag = false; } if (flag) { OperationLogItem operationLog = this.GetOperationLogItem(xwlw_pm, "UPDATE", uname); this.operationLogDAO.insertLogItem(operationLog); } return flag; }
/// <summary> /// 插入一条篇名信息 /// </summary> /// <param name="xwlw_pm">篇名信息</param> /// <returns></returns> public Boolean InsertXWLW_PM(XWLW_PM xwlw_pm) { Boolean flag = true; OperationLogItem operationLog = this.GetOperationLogItem(xwlw_pm, "INSERT", xwlw_pm.dlr); try { sqlMapper.Insert("InsertXWLW_PM", xwlw_pm); this.operationLogDAO.insertLogItem(operationLog); } catch (Exception) { flag = false; } return flag; }
/// <summary> /// 获取用户填写的学位论文篇名信息 /// </summary> /// <returns></returns> private XWLW_PM GetXWLW_PM() { XWLW_PM xwlwPM = new XWLW_PM(); //分类编码 xwlwPM.flbm = this.flbmTextBox.Text; //索引编码 xwlwPM.sybm = this.sybmTextBox.Text; //文件名 xwlwPM.wjm = this.wjmTextBox.Text; //原文件名 xwlwPM.ywjm = this.ywjmFileUpload.FileName; //中文题名 xwlwPM.zwtm = this.zwtmTextBox.Text.Trim(); //英文题名 xwlwPM.ywjm = this.ywtmTextBox.Text.Trim(); //作者 xwlwPM.zz = this.zzTextBox.Text.Trim(); //导师 xwlwPM.ds = this.dsTextBox.Text.Trim(); //论文级别 xwlwPM.lwjb = this.lwjbTextBox.Text.Trim(); //学科专业名称 xwlwPM.xkzymc= this.xkzymcTextBox.Text.Trim(); //分类号 xwlwPM.flh = this.flhTextBox.Text.Trim(); //学位授予单位 xwlwPM.xwsydw = this.xwsydwTextBox.Text.Trim(); //论文提交日期 xwlwPM.lwtjrq = DateTime.Parse(this.lwtjrqTextBox.Text); //论文答辩日期 xwlwPM.lwdbrq = DateTime.Parse(this.lwdbrqTextBox.Text); //学位授予日期 xwlwPM.xwsyrq = DateTime.Parse(this.xwsyrqTextBox.Text); //中文主题词 xwlwPM.zwztc = this.zwztcTextBox.Text.Trim(); //中文摘要 xwlwPM.zwzy = this.zwzyTextBox.Text.Trim(); //英文主题词 xwlwPM.ywztc = this.ywztcTextBox.Text.Trim(); //英文摘要 xwlwPM.ywzy = this.ywzyTextBox.Text.Trim(); //年份 xwlwPM.nf = Int32.Parse(this.nfTextBox.Text); //出版日期 xwlwPM.cbrq = DateTime.Parse(this.cbrqTextBox.Text); //页数 xwlwPM.ys = Int32.Parse(this.ysHiddenField.Value); //更新日期 try { xwlwPM.gxrq = DateTime.Parse(this.gxrqTextBox.Text.Trim()); } catch { xwlwPM.gxrq = DateTime.Now; } //全文 xwlwPM.qw = "1"; //登录人 xwlwPM.dlr = this.dlrTextBox.Text; return xwlwPM; }
/// <summary> /// 插入一条篇名信息 /// </summary> /// <param name="xwlw_pm">篇名信息</param> /// <returns></returns> public Boolean InsertXWLW_PM(XWLW_PM xwlw_pm) { Boolean flag = true; OperationLogItem operationLog = this.GetOperationLogItem(xwlw_pm, "INSERT", xwlw_pm.dlr); sqlMapper.Insert("InsertXWLW_PM", xwlw_pm); this.operationLogDAO.insertLogItem(operationLog); return flag; }