Пример #1
0
        protected override PM getPM(OleDbDataReader reader, out String err)
        {
            err = String.Empty;
            WWHY_PM pm = new WWHY_PM();
            if (hasFormatTable)
            {
                pm.sybm = reader["索引编码"].ToString().Trim();
                pm.wjm = reader["文件名"].ToString().Trim();
                pm.zwpm = reader["中文篇名"].ToString().Trim();
                pm.wwpm = reader["外文篇名"].ToString().Trim();
                pm.zz = reader["作者"].ToString().Trim();
                pm.zzdw = reader["作者单位"].ToString().Trim();
                pm.zwwz = reader["中文文摘"].ToString().Trim();
                pm.wwwz = reader["外文文摘"].ToString().Trim();
                pm.zwztc = reader["中文主题词"].ToString().Trim();
                pm.wwztc = reader["外文主题词"].ToString().Trim();
                try
                {
                    pm.ys = int.Parse(reader["页数"].ToString());
                }
                catch (Exception)
                {
                    pm.ys = 0;
                }

                pm.gtfl = reader["国图分类"].ToString().Trim();
                pm.gch = reader["馆藏号"].ToString().Trim();
                pm.ywjm = reader["原文件名"].ToString().Trim();
                pm.gxx = reader["更新项"].ToString().Trim();
            }
            else
            {
                //pm.sybm = reader["索引编码"].ToString();
                //pm.wjm = reader["文件名"].ToString();
                pm.zwpm = reader["论文题名"].ToString();
                pm.wwpm = reader["英文论文题名"].ToString();
                pm.zz = reader["论文作者"].ToString();
                pm.zzdw = reader["作者机构"].ToString();
                pm.zwwz = reader["论文摘要"].ToString();
                pm.wwwz = reader["英文论文摘要"].ToString();
                pm.zwztc = reader["论文关键词"].ToString();
                pm.wwztc = reader["英文论文关键词"].ToString();
                pm.gtfl = reader["分类号"].ToString();
                pm.ywjm = reader["文件名"].ToString();
                //TODO : 馆藏号

                //根据分类编码中的关键词查找分类,并生成索引目录
                string hymc = reader["会议录名称"].ToString();
                WWHY_SYML wwhySYML = wwhyDAO.getWwhySYMLByZwmc(hymc);
                if (wwhySYML == null)
                {
                    //构造索引目录
                    wwhySYML = new WWHY_SYML();
                    wwhySYML.flbm = GetFlbmByKeywords(hymc);

                    if ("".Equals(wwhySYML.flbm))
                    {
                        wwhySYML.flbm = GetFlbmByFlmc(hymc);
                    }

                    try
                    {
                        wwhySYML.nf = int.Parse(reader["年"].ToString());
                    }
                    catch
                    {
                        wwhySYML.nf = 2012;
                    }

                    string sybm =
                        wwhyDAO.getMaxWwhySYML(wwhySYML.flbm, wwhySYML.nf.ToString());

                    if (null == sybm)
                    {
                        sybm = wwhySYML.flbm + "-" + wwhySYML.nf.ToString() + "-000";
                    }
                    else
                    {
                        string serial = "000";
                        int number = 0;
                        try
                        {
                            number =
                                int.Parse(sybm.Substring(sybm.Length - 3)) + 1;
                        }
                        catch
                        {
                        }
                        serial += number;

                        sybm = wwhySYML.flbm + "-" + wwhySYML.nf.ToString() + "-"
                            + serial.Substring(serial.Length - 3);
                    }

                    wwhySYML.sybm = sybm;

                    //读取索引字段,并插入到数据表中
                    wwhySYML.hydd = reader["会议地点"].ToString();

                    wwhySYML.wz = reader["语种"].ToString();
                    wwhySYML.zwmc = reader["会议录名称"].ToString();
                    wwhySYML.gch = "";
                    wwhySYML.wwmc = reader["英文会议录名称"].ToString();
                    wwhySYML.zbdw = reader["主办单位"].ToString();
                    wwhySYML.cbdw = "";
                    wwhySYML.chbdw = reader["出版单位"].ToString();
                    try
                    {
                        wwhySYML.fbrq = DateTime.Parse(reader["发表时间"].ToString());
                    }
                    catch
                    {
                        wwhySYML.fbrq = DateTime.Now;
                    }

                    wwhySYML.gtfl = GetGTFLbyFL(reader["分类号"].ToString());
                    wwhySYML.jj = "";

                    wwhySYML.dlrq = DateTime.Now;

                    if (!"".Equals(wwhySYML.flbm))
                    {
                        try
                        {
                            wwhyDAO.insertWwhySYML(wwhySYML);
                        }
                        catch
                        {
                            //不应该失败
                        }
                    }
                }

                if (!"".Equals(wwhySYML.flbm))
                {
                    pm.sybm = wwhySYML.sybm;
                    pm.gch = wwhySYML.gch;
                    if (null == pm.gch) pm.gch = "";
                }
            }

            pm.dlr = user.name;
            pm.fillEmptyStringAsNull();

            return pm;
        }