protected override PM getPM(OleDbDataReader reader, out String err) { err = String.Empty; NYBG_PM pm = new NYBG_PM(); if (hasFormatTable) { pm.flbm = reader["分类编码"].ToString().Trim(); pm.sybm = reader["索引编码"].ToString().Trim(); pm.oldWjm = pm.wjm = reader["文件名"].ToString().Trim(); pm.bgmc = reader["报告名称"].ToString().Trim(); try { pm.ys = int.Parse(reader["页数"].ToString()); } catch (Exception) { pm.ys = 0; err += "报告名称《" + pm.bgmc + "》: 页数\"" + reader["页数"] + "\"出错,置为0\n"; } try { pm.nf = int.Parse(reader["年份"].ToString()); } catch (Exception) { pm.nf = 0; err += "报告名称《" + pm.bgmc + "》: 年份\"" + reader["年份"] + "\"出错,置为0\n"; } try { if (String.Empty.Equals(reader["出版日期"].ToString().Trim())) { //err += "报告名称《" + pm.bgmc + "》 : 出版日期为空\n"; pm.cbrq = DateTime.Parse(pm.nf.ToString() + "/1/1"); } else pm.cbrq = DateTime.Parse(reader["出版日期"].ToString().Trim()); } catch { err += "报告名称《" + pm.bgmc + "》 : 出版日期\"" + reader["出版日期"] + "\"出错\n"; } pm.zz = reader["作者"].ToString().Trim(); pm.zzdw = reader["作者单位"].ToString().Trim(); pm.zbdw = reader["主办单位"].ToString().Trim(); pm.ztc = reader["主题词"].ToString().Trim(); pm.wz = reader["文摘"].ToString().Trim(); pm.bgh = reader["报告号"].ToString().Trim(); pm.fltx = reader["分类体系"].ToString().Trim(); pm.zfl = reader["子分类"].ToString().Trim(); pm.wxbh = reader["文献编号"].ToString().Trim(); pm.ywjm = reader["原文件名"].ToString().Trim(); } else { String subject = reader["Subject"].ToString().Trim(); //根据subject获得分类编码、索引编码 String year = reader["PY"].ToString().Trim(); try { pm.nf = int.Parse(year); } catch { pm.nf = 0; err += "报告名称《" + pm.bgmc + "》: 年份\"" + reader["年份"] + "\"出错,置为0\n"; } if (null != flList) { pm.flbm = GetFlbmByBZ(subject); if (!"".Equals(pm.flbm)) { pm.sybm = pm.flbm + "-" + year; } } pm.bgmc = reader["Title"].ToString().Trim(); if (pm.flbm.Equals("")) { err += "未能找到对应分类编码 " + pmKeyInfo(pm); } try { DateTime dt = DateTime.Parse(reader["Pubdate"].ToString().Trim()); pm.cbrq = DateTime.Parse(dt.ToString("yyyy-MM-dd")); } catch { pm.cbrq = DateTime.Parse(year + "/1/1"); } pm.zz = reader["Authors"].ToString().Trim(); pm.zzdw = reader["Organ"].ToString().Trim(); pm.zbdw = "";//TODO: 待定 pm.ztc = reader["Keywords"].ToString().Trim(); pm.wz = reader["Abstract"].ToString().Trim(); pm.bgh = reader["ReportNum"].ToString().Trim(); //根据分类编码得出分类体系、子分类 pm.fltx = GetFltxByFlbm(pm.flbm); pm.zfl = pm.fltx; pm.wxbh = reader["Explain"].ToString().Trim(); String ywjm = reader["NewsNUM"].ToString().Trim(); String mulu = reader["Mulu"].ToString().Trim(); pm.ywjm = mulu + ywjm + ".pdf"; pm.qw = true; } pm.dlr = user.name; pm.gxrq = DateTime.Now; pm.fillEmptyStringAsNull(); return pm; }
/// <summary> /// 生成日志信息 /// </summary> /// <param name="nybgPM">中文篇名信息</param> /// <param name="opType">操作类型</param> /// <param name="uname">用户名</param> /// <returns></returns> private OperationLogItem GetOperationLogItem(NYBG_PM nybgPM, String opType, String uname) { if (null == nybgPM) { return null; } OperationLogItem operationLogItem = new OperationLogItem(); //操作类型 operationLogItem.opType = opType; //数据库表 operationLogItem.opTable = "NYBG_PM"; //全文页数 operationLogItem.opPageCount =nybgPM.ys; operationLogItem.opObjectID = "考察报告"; // 操作涉及的书刊 operationLogItem.opBookIn = "考察报告"; // 时间 operationLogItem.opDate = DateTime.Now; // 操作员 operationLogItem.opPerson = uname; //记录操作模式,判断是否属于批量操作。取值范围SINGLE/BATCH。 operationLogItem.opMode = "SINGLE"; //操作的内容 String content = "('" + nybgPM.flbm + "','" + nybgPM.sybm + "','" + nybgPM.wjm + "','" + nybgPM.ywjm + "','" + nybgPM.ys + "','" + nybgPM.bgmc + "','" + nybgPM.nf + "','" + nybgPM.cbrq + "','" + nybgPM.zz + "','" + nybgPM.zzdw + "','" + nybgPM.zbdw + "','" + nybgPM.ztc + "','" + nybgPM.wz + "','" + nybgPM.bgh + "','" + nybgPM.fltx +"','"+ nybgPM.zfl + "','" + nybgPM.wxbh + "','" + nybgPM.qw +"','"+ nybgPM.gxrq + "','" + nybgPM.dlr + "')"; operationLogItem.opContent = content; return operationLogItem; }
/// <summary> /// 更新一条篇名信息 /// </summary> /// <param name="nybg_pm">要更新的篇名信息</param> /// <param name="uname">操作用户名</param> /// <returns></returns> public Boolean UpdateNYBG_PM(NYBG_PM nybg_pm, String uname) { Boolean flag = true; int back = sqlMapper.Update("UpdateNYBG_PM", nybg_pm); if (back <= 0) { flag = false; } if (flag) { OperationLogItem operationLog = this.GetOperationLogItem(nybg_pm, "UPDATE", uname); this.operationLogDAO.insertLogItem(operationLog); } return flag; }
/// <summary> /// 插入一条篇名信息 /// </summary> /// <param name="NYBG_pm">篇名信息</param> /// <returns></returns> public Boolean InsertNYBG_PM(NYBG_PM NYBG_pm) { Boolean flag = true; OperationLogItem operationLog = this.GetOperationLogItem(NYBG_pm, "INSERT", null); try { sqlMapper.Insert("InsertNYBG_PM", NYBG_pm); this.operationLogDAO.insertLogItem(operationLog); } catch (Exception) { flag = false; } return flag; }
/// <summary> /// 获取用户填写的能源报告告篇名信息 /// </summary> /// <returns></returns> private NYBG_PM GetNYBGPM() { NYBG_PM nybgPM = new NYBG_PM(); //索引编码 nybgPM.sybm = this.sybmTextBox.Text; //分类编码 nybgPM.flbm = this.flbmTextBox.Text; //文件名 nybgPM.wjm = this.wjmTextBox.Text; //原文件名 nybgPM.ywjm = this.ywjmFileUpload.FileName; //页数 nybgPM.ys =Int32.Parse(this.ysHiddenField.Value) ; //报告名称 nybgPM.bgmc = this.bgmcTextBox.Text.Trim(); //年份 nybgPM.nf = Int32.Parse(this.nfTextBox.Text); //出版日期 nybgPM.cbrq = DateTime.Parse(this.cbrqTextBox.Text); //作者 nybgPM.zz = this.zzTextBox.Text.Trim(); //作者单位 nybgPM.zzdw = this.zzdwTextBox.Text.Trim(); //主办单位 nybgPM.zbdw= this.zbdwTextBox.Text.Trim(); //主题词 nybgPM.ztc = this.ztcTextBox.Text; //文摘 nybgPM.wz = this.wzTextBox.Text; //报告号 nybgPM.bgh = this.bghTextBox.Text; //分类体系 nybgPM.fltx = this.fltxTextBox.Text.Trim(); //子分类 nybgPM.zfl = this.zflTextBox.Text.Trim(); //文献编号 nybgPM.wxbh =this.wxbhTextBox.Text.Trim(); //页数 nybgPM.ys = Int32.Parse(this.ysHiddenField.Value); //全文 nybgPM.qw = true; //更新日期 try { nybgPM.gxrq = DateTime.Parse(this.gxrqTextBox.Text.Trim()); } catch { nybgPM.gxrq = DateTime.Now; } //登录人 nybgPM.dlr = this.dlrTextBox.Text; return nybgPM; }
/// <summary> /// 插入一条篇名信息 /// </summary> /// <param name="NYBG_pm">篇名信息</param> /// <returns></returns> public void InsertNYBG_PM(NYBG_PM NYBG_pm) { OperationLogItem operationLog = this.GetOperationLogItem(NYBG_pm, "INSERT", null); sqlMapper.Insert("InsertNYBG_PM", NYBG_pm); this.operationLogDAO.insertLogItem(operationLog); }