Esempio n. 1
0
    /// <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);
        }
    }
Esempio n. 2
0
        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;
        }
Esempio n. 3
0
    /// <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;
    }
Esempio n. 4
0
        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;
        }
Esempio n. 5
0
        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;
        }
Esempio n. 6
0
        /// <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;
        }
Esempio n. 7
0
        /// <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;
        }
Esempio n. 8
0
 /// <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);
 }
Esempio n. 9
0
 /// <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;
 }
Esempio n. 10
0
 /// <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);
     }
 }