Open renyh opened 2 months ago
后期dp2library的预约功能与dp2mini的馆员备书模块整合起来使用,两点改进思路
目前dp2library会在预约到书时,立即就会给读者发送“取书”消息,这个时机可能不太合适,因为此时可能图书馆各项工作还没准备好,会造成一些误会,应该由馆员来触发什么时候通知读者取书比较好。所以后面软件可以改进为,预约到书时不立即给读者发送“取书”通知,可以发送模糊一些的信息,例如“...进入处理流程...”之类,然后由馆员准备好后再人工触发通知。
dp2library发通知的机制改进后,就方便与dp2mini的馆员备书功能整合起来,OPAC和微信公众号都可以受益。
目前微信公众号这边对于使用dp2mini馆员备书模块的图书馆,是增加了一个开关,收到dp2library的通知后,压制住不发出来,等馆员在dp2mini处理完备书,通过dp2mini再给用户发取书通知。
目前预约到书记录有两种状态:arrived 和 outof。
其中arrived是正常预约到书的记录,如果读者在保留期内借走图书,这条预约记录就自动删除了。
那么剩下的outof状态的记录,是过了保留期未取的,或者是读者主动放弃取书的,简单的想这些outof状态的记录其实是没什么意义。但当初设计时把这些记录留下来没有删除,主要是考虑可以直接当作历史记录,万一读者说我预约了某图书,为什么这本书被别人借走了,可以通过这些outof记录找到证据。
dp2mini馆员备书模块,是检索出来arrived状态的预约到书记录,然后进入备书过程,中间不会改变预约记录的状态,直到备书完成,调预约接口的删除动作(接口会将这条记录状态设为outof)。所以目前是否进入备书环节,在预约记录的状态上是看不出来的,后面可以将arrived状态细化一下,例如分成几种不同的状态,或者增加一些补充状态。
读者预约一册图书,预约到书时(在架的会立即到书),会产生一条预约到书记录,状态为arrived。
根据读者是否取书以及预约排队规则,后续有四种情况:
第一种情况:该读者在保留期内,正常的借走这册书,那么对应的这条预约记录自动删除。
第二种情况:该读者未在保留期内借走这本书,过了保留期,对应的这条预约记录不会删除,而是状态转为outof。同时该读者xml会增加1次到书未取次数(存储在
<outofReservations>
元素中)第三种情况:另一个读者也排队预约了这册书。如果第1个读者未在保留期内借走这本书,过了保留期,对应的这条预约记录会转给第2个读者(即预约记录中的
<readerBarcode>
元素变在读者2),状态还是arrived。同时系统会给第1个读者xml增加1次到书未取次数,第2个读者xml的预约元素状态变为arrived到书。第四种情况:该读者在保留期内,自己主动从OPAC或公众号上,点击“放弃取书”或“删除”,此时系统会将这条预约记录的状态变为outof,但由于是读者自行取消的,所以不会给读者xml增加到书未取次数。