/// <summary> /// 更索引目录年份区间信息 /// </summary> /// <param name="wwqkPM">篇名信息</param> private void UpdateSYMLSLNF(WWQK_PM wwqkPM) { if (null == wwqkPM) { return; } WWQK_SYML wwqkSYML = this.wwqkDAO.getWwqkSYMLBySybm(wwqkPM.sybm); if (null == wwqkSYML) { return; } //获取新增篇名的年份 int nf = 0; try { nf = Int32.Parse(wwqkPM.nf); } catch (Exception) { } //判断索引目录收录年份是否为空 if (null == wwqkSYML.slnf || "".Equals(wwqkSYML.slnf)) { //设置新的收录区间 wwqkSYML.slnf = wwqkPM.nf + "~" + wwqkPM.nf; //最新年份 try { wwqkSYML.zxnf = nf; } catch (Exception) { } //年份区间 wwqkSYML.nfqj = 1; } //索引目录收录年份不为空,更新收录年份 String[] slnf = wwqkSYML.slnf.Split('~'); if (slnf.Length < 2) { return; } //起始年份 int qsnf = 0; try { qsnf = Int32.Parse(slnf[0]); } catch (Exception) { } //最新年份 int zxnf = 0; try { zxnf = Int32.Parse(slnf[1]); } catch (Exception) { } //判断年份区间是否有更新 Boolean flag = false; //起始年份是否大于新增篇名年份 if (qsnf > nf) { qsnf = nf; flag = true; } //最新年份是否小于新增篇名年份 if (zxnf < nf) { zxnf = nf; flag = true; } //年份区间有变化,则更新索引目录的年份区间 if (flag) { //收录年份 wwqkSYML.slnf = qsnf + "~" + zxnf; //计算新的年份区间 wwqkSYML.nfqj = zxnf - qsnf + 1; //最新年份 wwqkSYML.zxnf = zxnf; //更新索引目录信息 this.wwqkDAO.updateWwqkSYMLBySYBM(wwqkSYML); } }
private String DeleteWF(WWQK_PM wwqk) { int back; String err = String.Empty; this.openOleDbConnection(); sqlcmd.Connection = this.ObjConnection; //sql语句 sqlcmd.CommandText = @"delete from " + pmTableName + " where [PYear]=@PYear and [FileName]=@FileName"; sqlcmd.Parameters.Add(new OleDbParameter("PYear", wwqk.nf)); sqlcmd.Parameters.Add(new OleDbParameter("FileName", wwqk.filename)); if (null != wwqk.wwpm && !wwqk.wwpm.Equals("NULL") && !wwqk.wwpm.Equals("")) { sqlcmd.CommandText += " and [MTitle]=@MTitle"; sqlcmd.Parameters.Add(new OleDbParameter("MTitle", wwqk.wwpm)); } try { back = sqlcmd.ExecuteNonQuery(); } catch (Exception e) { err = "删除万方记录异常(" + e.Message + ")" + pmKeyInfo(wwqk); } sqlcmd.Parameters.Clear(); return err; }
/// <summary> /// 从页面中读取片名的信息 /// </summary> /// <returns>返回片名对象</returns> private WWQK_PM GetWWQK_PM() { User user = (User)Session["login"]; //登陆超时则退到登录页 if (null == user) { Response.Write(" <script> top.location = '" + GlobalResource.LOGIN_PAGE + "' </script> "); return null; } WWQK_PM wwqkPM = new WWQK_PM(); //登录人 wwqkPM.dlr = user.name; //索引编码 wwqkPM.sybm = this.sybmTextBox.Text.Trim(); //年份 wwqkPM.nf = this.nfTextBox.Text.Trim(); //期号 wwqkPM.qh = this.qhTextBox.Text.Trim(); //页数 try { wwqkPM.ys = Int32.Parse(this.ysTextBox.Text.Trim()); } catch (Exception) { } //文件名 wwqkPM.wjm = this.wjmTextBox.Text.Trim(); //原文件名 wwqkPM.ywjm = this.ywjmHiddenField.Value.Trim(); //中文篇名 wwqkPM.zwpm = this.zwpmTextBox.Text.Trim(); //外文篇名 wwqkPM.wwpm = this.wwpmTextBox.Text.Trim(); //作者 wwqkPM.zz = this.zzTextBox.Text.Trim(); //作者单位 wwqkPM.zzdw = this.zzdwTextBox.Text.Trim(); //开本 wwqkPM.kb = this.kbTextBox.Text.Trim(); //中文文摘 wwqkPM.zwwz = this.zwwzTextBox.Text.Trim(); //外文文摘 wwqkPM.wwwz = this.wwwzTextBox.Text.Trim(); //中文主题词 wwqkPM.zwztc = this.zwztcTextBox.Text.Trim(); //外文主题词 wwqkPM.wwztc = this.wwztcTextBox.Text.Trim(); //国图分类 wwqkPM.gtfl = this.gtflTextBox.Text.Trim(); //文献标识 wwqkPM.wxbs = this.wxbsTextBox.Text.Trim(); //更新日期 try { wwqkPM.gxrq = DateTime.Parse(this.gxrqTextBox.Text.Trim()); } catch { wwqkPM.gxrq = DateTime.Today; } return wwqkPM; }
public override string formatData(PM pm) { //反馈信息 String result = String.Empty; if (hasFormatTable) return result; String Empty = "NULL"; WWQK_PM wwqk = (WWQK_PM)pm; wwqk.zz = GlobalMethod.Semicolon(wwqk.zz); wwqk.zzdw = GlobalMethod.Semicolon(wwqk.zzdw); wwqk.zwztc = GlobalMethod.Semicolon(wwqk.zwztc); wwqk.wwztc = GlobalMethod.Semicolon(wwqk.wwztc); wwqk.gtfl = GlobalMethod.Semicolon(wwqk.gtfl); wwqk.wwpm = CutString(wwqk.wwpm, 255); wwqk.zz = CutString(wwqk.zz, 150); wwqk.zzdw = CutString(wwqk.zzdw, 255); wwqk.wwztc = CutString(wwqk.wwztc, 255); wwqk.dlr = user.name; if (Empty.Equals(wwqk.wwpm) && Empty.Equals(wwqk.zwpm)) { result += "篇名(中和英)为空 "; } if (Empty.Equals(wwqk.nf)) { result += "年份为空 "; } if (Empty.Equals(wwqk.qh)) { result += "期号为空 "; } else { if (wwqk.qh.Length == 1) wwqk.qh = "0" + wwqk.qh; if (wwqk.qh.Length > 2) result += "期号大于两位数 "; } if (!result.Equals(String.Empty)) { result += pmKeyInfo(pm); } if (result.Equals(String.Empty)) { if (null != prevPM) { if (prevPM.sybm.Equals(wwqk.sybm) && prevPM.nf.Equals(wwqk.nf) && prevPM.qh.Equals(wwqk.qh) && prevPM.wwpm.Equals(wwqk.wwpm) && prevPM.ywjm.Equals(wwqk.ywjm)) { wwqk.isValid = false; } } } prevPM = wwqk; if (hasFormatTable) return result; wwqk.gxrq = DateTime.Now; wwqk.wjm = "自动生成"; if (Empty.Equals(wwqk.ywjm)) { result += "原文件名(PDF全文)为空 "; } else { #if nodef //测试生成所需要的文件 try { if (!File.Exists(fileFolder + wwqk.ywjm)) { String filePDF = fileFolder + wwqk.ywjm; if (!Directory.Exists(Path.GetDirectoryName(filePDF))) Directory.CreateDirectory(Path.GetDirectoryName(filePDF)); File.Copy(fileFolder + "exp.pdf", fileFolder + wwqk.ywjm); } } catch { } #endif if (!File.Exists(fileFolder + wwqk.ywjm)) { result += wwqk.ywjm + " PDF文件不存在"; } else { try { pdf = new PdfReader(fileFolder + wwqk.ywjm); pdf.Close(); } catch { result += wwqk.ywjm + " PDF文件存在问题."; } } } if (!result.Equals(String.Empty)) { result += pmKeyInfo(pm); } return result; }
protected override PM getPM(OleDbDataReader reader, out String err) { err = String.Empty; WWQK_PM pm = new WWQK_PM(); if (hasFormatTable) { pm.sybm = reader["索引编码"].ToString(); pm.wjm = reader["文件名"].ToString(); pm.ywjm = reader["原文件名"].ToString(); pm.nf = reader["年份"].ToString(); pm.qh = reader["期号"].ToString(); pm.zwpm = reader["中文篇名"].ToString(); pm.wwpm = reader["外文篇名"].ToString(); pm.zz = reader["作者"].ToString(); pm.zzdw = reader["作者单位"].ToString(); pm.kb = reader["开本"].ToString(); try { pm.ys = int.Parse(reader["页数"].ToString()); } catch (Exception) { pm.ys = 0; err += pm.wwpm + ": 页数\"" + reader["页数"] + "\"出错,置为0" + pmKeyInfo(pm); } pm.zwwz = reader["中文文摘"].ToString(); pm.wwwz = reader["外文文摘"].ToString(); pm.zwztc = reader["中文主题词"].ToString(); pm.wwztc = reader["外文主题词"].ToString(); pm.gtfl = reader["国图分类"].ToString(); pm.wxbs = reader["文献标识"].ToString(); } else { if (allSYML == null || allSYML.Count == 0) allSYML = wwqkDAO.getAllWwqkSYML(); String KanMing = reader["MPubName"].ToString(); pm.sybm = null; foreach (WWQK_SYML syml in allSYML) { if (KanMing.Equals(syml.wwmc)) { pm.sybm = syml.sybm; break; } } if (pm.sybm == null) { KanMing = KanMing.Replace(',', ','); string tempKanMing = KanMing; int pos = KanMing.IndexOf(','); if (pos > 0) { tempKanMing = KanMing.Substring(0, pos); /*** * 补充查找,部分匹配 */ foreach (WWQK_SYML syml in allSYML) { if (syml.wwmc.IndexOf(tempKanMing) >= 0) { pm.sybm = syml.sybm; break; } } } } if (pm.sybm == null) { err += "刊名《" + KanMing + "》不存在\n"; } pm.filename = reader["FileName"].ToString(); pm.ywjm = reader["FilePath"].ToString() + reader["FileName"].ToString() + ".PDF"; pm.nf = reader["PYear"].ToString(); pm.qh = reader["PIssue"].ToString(); pm.zwpm = ""; pm.wwpm = reader["MTitle"].ToString(); pm.zz = reader["Author"].ToString(); pm.zzdw = reader["ACompany"].ToString(); pm.kb = ""; pm.zwwz = ""; pm.wwwz = reader["Abstract"].ToString(); pm.wwztc = reader["KeyWord"].ToString(); pm.zwztc = ""; pm.gtfl = ""; pm.wxbs = ""; try { pm.spage = reader["SPages"].ToString(); int spage = Int32.Parse(reader["SPages"].ToString()); int epage = Int32.Parse(reader["EPages"].ToString()); pm.ys = epage - spage + 1; if (pm.ys < 0) pm.ys = 0 - pm.ys; } catch { pm.ys = 0; } } pm.dlr = user.name; pm.fillEmptyStringAsNull(); return pm; }
/// <summary> /// 生成日志信息 /// </summary> /// <param name="zwqkPM">中文篇名信息</param> /// <param name="opType">操作类型</param> /// <param name="uname">用户名</param> /// <returns></returns> private OperationLogItem GetOperationLogItem(WWQK_PM wwqkPM, String opType, String uname) { if (null == wwqkPM) { return null; } OperationLogItem operationLogItem = new OperationLogItem(); //操作类型 operationLogItem.opType = opType; //数据库表 operationLogItem.opTable = "ZWQK_PM"; //全文页数 operationLogItem.opPageCount = wwqkPM.ys; operationLogItem.opObjectID = "外文期刊"; // 操作涉及的书刊 operationLogItem.opBookIn = "外文期刊"; // 时间 operationLogItem.opDate = DateTime.Now; // 操作员 operationLogItem.opPerson = uname; //记录操作模式,判断是否属于批量操作。取值范围SINGLE/BATCH。 operationLogItem.opMode = "SINGLE"; //操作的内容 String content = "('" + wwqkPM.sybm + "','" + wwqkPM.wjm + "','" + wwqkPM.ywjm + "','" + wwqkPM.nf + "','" + wwqkPM.qh + "','" + wwqkPM.zwpm + "','" + wwqkPM.wwpm + "','" + wwqkPM.zz + "','" + wwqkPM.zzdw + "','" + wwqkPM.kb + "','" + wwqkPM.ys + "','" + wwqkPM.zwwz + "','" + wwqkPM.zwztc + "','" + wwqkPM.wwwz + "','" + wwqkPM.wwztc + "','" + wwqkPM.gtfl + "','" + wwqkPM.wxbs + "','" + wwqkPM.dlr + "','" + wwqkPM.gxrq + "')"; operationLogItem.opContent = content; return operationLogItem; }
/// <summary> /// 按文件名更新篇名信息。 /// 文件名为主键。 /// </summary> /// <param name="pm"></param> /// <returns></returns> public bool updateWwqkPMByWJM(WWQK_PM pm, String uname, String newWjm = "") { /* 存在更新Wjm关键词的情况 */ if ("".Equals(newWjm)) { pm.newWjm = pm.wjm; } else pm.newWjm = newWjm; OperationLogItem operationLog = null; operationLog = this.GetOperationLogItem(pm, "UPDATE", uname); bool result; try { sqlMapper.BeginTransaction(); sqlMapper.Update("UpdateWWQK_PM", pm); sqlMapper.CommitTransaction(); this.operationLogDAO.insertLogItem(operationLog); result = true; } catch { sqlMapper.RollBackTransaction(); result = false; } return result; }
/// <summary> /// 插入外文期刊篇名信息。 /// </summary> /// <param name="pm"></param> public void insertWwqkPM(WWQK_PM pm) { OperationLogItem operationLog = null; operationLog = this.GetOperationLogItem(pm, "INSERT", pm.dlr); if (null != operationLog) { this.operationLogDAO.insertLogItem(operationLog); } sqlMapper.Insert("InsertWWQK_PM", pm); }
/// <summary> /// 按文件名更新篇名信息。 /// 文件名为主键。 /// </summary> /// <param name="pm"></param> /// <returns></returns> public bool updateWwqkPMByWJM(WWQK_PM pm, String uname) { OperationLogItem operationLog = null; operationLog = this.GetOperationLogItem(pm, "UPDATE", uname); bool result; try { sqlMapper.BeginTransaction(); sqlMapper.Update("UpdateWWQK_PM", pm); sqlMapper.CommitTransaction(); this.operationLogDAO.insertLogItem(operationLog); result = true; } catch { sqlMapper.RollBackTransaction(); result = false; } return result; }
/// <summary> /// 插入外文期刊篇名信息。 /// </summary> /// <param name="pm"></param> public void insertWwqkPM(WWQK_PM pm) { String startYear, endYear; OperationLogItem operationLog = null; operationLog = this.GetOperationLogItem(pm, "INSERT", pm.dlr); if (null != operationLog) { this.operationLogDAO.insertLogItem(operationLog); } sqlMapper.Insert("InsertWWQK_PM", pm); WWQK_SYML syml = this.getWwqkSYMLBySybm(pm.sybm); startYear = syml.slnf.Substring(0, 4); endYear = syml.slnf.Substring(5, 4); bool changed = false; if (pm.nf.CompareTo(startYear) < 0) { syml.slnf = pm.nf + syml.slnf.Substring(4); changed = true; } else if (pm.nf.CompareTo(endYear) > 0) { syml.slnf = syml.slnf.Substring(0, 5) + pm.nf; changed = true; } if (changed) { this.updateWwqkSYMLBySYBM(syml); } }