欢迎您来到 数字平台。 您尚未登录。[登录] [注册新用户]
当前位置: 论坛首页 / 栏目 产品与服务 / 文章 121

点击:1526

[顶层访客留言] [回复顶层(需要先登录)] [表状] [简明]


头衔: 总工
文章数: 539
积分: 5390
注册时间: 2005/9/5
[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章跟帖
文章id: 121
读者数据转换窗口

作者: xietao


读者数据转换窗口,用于将dt1000的MARC格式读者数据,转换成dp2系统的XML格式读者数据,进入对应的读者库。 

 

===

根据MARC数据中的读者信息,创建实体XML记录

<barcode> -- 读者证条码:从MARC记录中的100$a获得。

<password> -- 密码:从MARC记录中的080$a获得。dt1000读者数据中的密码为明码,而转换到dp2读者记录中后,需要转换为hash码。

<readerType> -- 读者类型:从MARC记录中的110$a获得。

<createDate> -- 发证日期:dt1000读者信息中缺此项。保持空白。

<expireDate> -- 失效期:从MARC记录中的110$d获得。需要从8字符格式转换为RFC1123格式。

<state> -- 停借原因:从MARC记录中的982$b获得。此元素为本次新增元素。如果读者证状态正常,就不应有此元素或者保持此元素的文本内容为空。

<name> -- 姓名:从MARC记录中的200$a获得。

<namePinyin> -- 姓名拼音:从MARC记录的200$A获得。这是本次新增的元素。

<gender> -- 性别:从MARC记录的200$d获得。

<bornDate> -- 生日:dt1000读者记录中缺乏此信息。保持空白。

<idCardNumber> -- 身份证号:dt1000读者记录中缺乏此信息。保持空白。

<department> -- 单位:从MARC记录的300$a中获得。

<address> -- 通信地址:从MARC记录的400$b中获得。

<zipcode> -- 邮政编码:从MARC记录的400$a中获得。

<tel> -- 电话:从MARC记录的300$b中获得。

<email> -- Email地址:dt1000读者记录中缺乏此信息。保持空白。

---

<borrows> -- 借阅信息(集合)。该元素下可有若干<borrow>元素,每个<borrow>元素表示一册图书的借阅信息。

<borrow> -- 借阅信息(单册):从MARC记录的986字段中的一个子字段组获得。该元素有若干属性:

barcode属性 -- 册条码:从子字段组$a中获得。

borrowDate属性 -- 借阅日期:从子字段组$t中获得。需要从8字符格式转换为RFC1123格式。

no属性 -- 续借次数:从子字段组$y中获得。表示续借次数。1表示?

borrowPeriod属性 -- 借阅期限:子字段组中$v为应还日期,根据它和借阅日期$t计算出借阅期限。也许这个借阅期限不是很准确,因为可能dt1000的应还日期是按照还书日越过了非工作日计算出来的,而dp2的借阅期限是不考虑工作日和非工作日的。 这个计算出来的借阅期限可能偏长。

---

<overdues> -- 超期罚款信息(集合)。该元素下可有若干<overdue>元素,每个<overdue>元素表示一册图书的超期罚款信息。

<overdue> -- 超期罚款信息(单册):从MARC记录的988字段中的一个子字段组获得。该元素有若干属性:

barcode属性 -- 册条码:从子字段组中$a获得。

borrowDate属性 -- 借阅日期:从子字段组中$e获得。需要从8字符格式转换为RFC1123格式。

returnDate属性 -- 应还日期:从子字段组中$t获得。需要从8字符格式转换为RFC1123格式。这里设计放应还日期,而不是放借阅期限,是因为超期罚款字段处理的是已经还回的、有超期情况的册,而尚未还回的、已处于超期状态的册,不在超期罚款字段处理之列。

borrowPeriod属性 -- 借阅期限:这是dp2系统中应有的信息。但是在dt1000的读者记录988字段中缺乏这个信息。所以只好空缺。好在缺乏这个信息,并不影响超期罚款字段的主要功能:收缴罚款、阻止缴罚款前读者后续的借阅,只是少了有关借阅期限的参考信息。

price属性 -- 罚款额:从子字段组中$c获得。这是为dt1000数据升级而专门增补的属性。而在dp2系统中,一般采用的是通过over属性(超期时间)和罚款政策动态计算款额的办法。这样,dp2系统的罚款款额获得办法,就变成了两个:如果有price属性,就用它;如果没有,就用over属性结合其他信息计算出来。

type属性 -- 罚款类型:从子字段组中$b获得。其值有“罚金”“租金”“赔偿”等等。这是因为升级dt1000数据而则增补的属性。

---

<reservations> -- 预约信息(集合)。该元素下可有若干<request>元素,每个<request>元素表示一个独立的预约请求。

<request> -- 预约请求:从MARC记录的984字段中的一个子字段组获得。该元素有若干属性:

items属性 -- 预约的册条码列表:从子字段组中$a获得。dt1000的984字段中每个子字段组只是表示了对一册的预约,当作一个独立的预约请求;而dp2中,可以把多个册条码组合为一个独立的预约请求,当其中任何一个册到达时,预约请求就算满足了,该请求就会被整体处理,多余的其他册条码也即将被一同消除,不再发生作用。所以,从dt1000升级上来的数据,只是用到了dp2系统的一种可能:预约的册条码列表中只有一个条码。

requestDate -- 请求的日期:从子字段组中$b获得。需要从8字符格式转换为RFC1123格式。

注:子字段组中的$c为到书日期。升级软件如果发现一个子字段组有这个子字段,就会跳过这个子字段组,不把其升级到dp2系统中。这样就避免了对已到预约册的升级处理,软件会简单一些。

在后面的交叉处理过程中,需要根据读者记录中的预约请求信息,对相关的实体记录进行信息增补处理。



发表时间: 2006-08-27 22:27:53
最后修改时间: 2006-08-28 12:01:59



  • 普通文章 将dt1000流通数据升级到dp2系统 开发进展 xietao 2006-08-26 22:54:52[点击:21965]
  • 普通文章 书目数据转换窗口 xietao 2006-08-26 23:01:08 (ID:120) [点击:1416]
  • 普通文章 读者数据转换窗口 xietao 2006-08-27 22:27:53 (ID:121) [点击:1526]
  • 普通文章 dt1000到dt2000数据升级过程中的问题 (访客)www 2008-06-03 21:05:10 (ID:257) [点击:1396]
  •  

    在线用户
    访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客 (我自己)   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客
    当前栏目在线用户数 30, 总在线用户数 35