




已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
醫(yī)藥采購項目問題匯總1 請描述一下這個系統(tǒng)?從兩個方面回答,第一個方面:系統(tǒng)背景及系統(tǒng)概述本系統(tǒng)是一個市級醫(yī)藥采購系統(tǒng),依托于省級醫(yī)藥采購平臺創(chuàng)建,早期醫(yī)院和供貨商交易是線下交易,醫(yī)療監(jiān)管單位不方便管理,通過本系統(tǒng)完成了醫(yī)院上網(wǎng)采購,醫(yī)藥供貨商上網(wǎng)銷售,醫(yī)療監(jiān)管單位網(wǎng)上監(jiān)管,達到交易的自動化、透明化。第二個方面:系統(tǒng)包括的業(yè)務(wù)模塊及主業(yè)務(wù)流程本系統(tǒng)包括了:藥品目錄、采購單管理、退貨單管理、結(jié)算單管理、統(tǒng)計分析、系統(tǒng)管理等模塊。實現(xiàn)了,醫(yī)院網(wǎng)上創(chuàng)建采購單、提交采購單、審核采購單、供貨商受理采購單、醫(yī)院對采購藥品進行入庫。擴展問題:這個系統(tǒng)你做了哪些模塊?拿你熟悉的模塊說。2 說說系統(tǒng)的架構(gòu)?spring的作用?先說系統(tǒng)功能架構(gòu),再說系統(tǒng)技術(shù)架構(gòu)。功能架構(gòu):先說系統(tǒng)概述,再說系統(tǒng)包括哪些模塊。技術(shù)架構(gòu):本系統(tǒng)采用ssh框架開發(fā)(struts2.3.24、spring3.2.0、hibernate3.6),web層使用struts2、持久層采用hibernate3.6,spring管理web層 的action、業(yè)務(wù)層的service、持久層的dao。 spring的作用:spring管理web層 的action、業(yè)務(wù)層的service、持久層的dao,對struts的action采用多例的方式管理,對service和dao采用單例方式。本系統(tǒng)采用聲明式事務(wù)控制方式對service層進行事務(wù)控制,spring和hibernate整合后, spring在service方法開發(fā)執(zhí)行前創(chuàng)建session,開啟事務(wù),方法結(jié)束提交事務(wù),關(guān)閉session。spring和shiro進行整合開發(fā),spring管理shiro框架的securityManager、realm等bean,另外spring通過cglib方式生成action的代理對象,實現(xiàn)權(quán)限控制。spring和hessian框架整合開發(fā)遠程調(diào)用接口。spring和activiti整合開發(fā)工作流,spring管理activiti的各各service。3 這個系統(tǒng)hibernate是怎么用的?或這個系統(tǒng)持久層如何實現(xiàn)的? 本系統(tǒng)使用hibernate3.6 版本。本系統(tǒng)使用hibernate的QBC及原生Sql兩種方式開發(fā),除統(tǒng)計分析的功能外都采用QBC方式開發(fā),統(tǒng)計分析功能使用原生Sql開發(fā)。本系統(tǒng)對Dao層進行封裝,采用泛型封裝BaseDao,在spring定義bean的配置中通過BaseDao的構(gòu)造方法注入泛型的具體類型即模型類型,這樣做的好處是只需要在系統(tǒng)定義一個BaseDao即可,根據(jù)模型的不同在spring的配置文件定義不同的Dao。在service中使用BaseDao:4 這個系統(tǒng)struts是怎么用的? 本系統(tǒng)采用模型驅(qū)動方式定義action。封裝BaseAction,采用泛型由子類指定具體的模型對象類型。模型對象類型使用包裝對象方式定義,采用包裝對象的原因是考慮頁面?zhèn)魅霐?shù)據(jù)類型的多樣化,在模型對象中將自定義pojo包裝進來。視圖采用jsp實現(xiàn),沒有使用struts標(biāo)簽,使用的是jstl標(biāo)簽。5 這個系統(tǒng)UI使用什么框架?都用到j(luò)query easy ui的哪些組件? 系統(tǒng)UI使用Jquery easy UI,及jquery庫。系統(tǒng)框架布局使用layout,系統(tǒng)標(biāo)簽窗口采用tabs,系統(tǒng)菜單使用方accordion,數(shù)據(jù)列表采用datagrid,彈出窗口 window消息提示:messager6 本系統(tǒng)ajax+json具體是怎么做的?action的方法返回的json是如何實現(xiàn)的? ajax+json:頁面采用ajax提交,服務(wù)端返回是json,注意:頁面提交的key/value數(shù)據(jù)。頁面提交統(tǒng)一采用ajax Form提交方式,使用了jquery提供form組件,在開發(fā)時和原始form的post 提交方法,使用jquery Form組件簡化開發(fā)。擴展問題: 系統(tǒng)哪些地方使用到了json?1、 數(shù)據(jù)列表查詢返回json,在頁面中使用jqeru easy ui的datagrid進行解析。2、 所有提交類的action方法統(tǒng)一返回json3、 異常處理器會將異常信息轉(zhuǎn)為json4、 系統(tǒng)菜單使用json數(shù)據(jù)表示。使用json目的:使用json方便客戶端頁面解析數(shù)據(jù)。7 這個系統(tǒng)異常處理是怎么做的?分兩個方面:1、系統(tǒng)異常類型自定義了一個系統(tǒng)異常類,繼承Exception,類里邊有一個屬性ResultInfo,ResultInfo中有一個屬性為type,messagecode、message,三個屬性分別表示:信息類型(錯誤、成功、警告、一般)、信息代碼、信息內(nèi)容。此類的具體使用方法是在action、service、dao中程序員在寫代碼時對于異常校驗需要顯示拋出此類型的異常,拋出異常時指定異常代碼即messageCode,message異常信息系統(tǒng)通過國際化的配置工具類從國際化配置文件根據(jù)異常代碼獲取代碼對應(yīng)的異常信息。2、系統(tǒng)異常的捕獲和解析 自定義struts的攔截器作為系統(tǒng)異常處理器, action方法執(zhí)行過程中,如果出現(xiàn)異常,由異常處理器捕獲,Dao層出現(xiàn)錯誤拋給service、service出現(xiàn)異常拋給action、action拋出異常由異常處理器捕獲。 在全局異常處理器中對異常信息進行解析,對于系統(tǒng)自定義的異常直接取異常信息(ResultInfo中),如果不是系統(tǒng)自定義的異常,會重新構(gòu)造一個未知錯誤異常。針對此類未錯誤異常處理,首先程序員需要提供編碼質(zhì)量,在系統(tǒng)測試時由測試人員對未知錯誤異常進行測試,開發(fā)人員對未錯誤異常進行修改,一般情況下對于bug程序會在bug 代碼處顯示拋出系統(tǒng)自定義異常。 盡量將系統(tǒng)中的異常拋出系統(tǒng)自定義異常,盡量未知錯誤異常。8 本系統(tǒng)配置信息是如何規(guī)范的? 本系統(tǒng)使用國際化配置文件方式,將系統(tǒng)中所有異常信息、提示信息全部在國際化配置文件中進行配置。Java中對國際化支持:Java國際化主要通過如下3個類完成java.util.ResourceBundle:用于加載一個資源(配置文件) java.util.Locale:對應(yīng)一個特定的國家/區(qū)域、語言環(huán)境。 java.text.MessageFormat:用于將消息格式化9 這個系統(tǒng)的認證和授權(quán)是怎么實現(xiàn)的?如何使用shiro的? 本系統(tǒng)前期基于url攔截的方式實現(xiàn)認證和攔截,后期使用了Apache Shiro框架完成認證和授權(quán)?;趗rl攔截:定義了兩個struts攔截器,一個負責(zé)校驗用戶身份,一個負責(zé)校驗用戶權(quán)限。認證及授權(quán)流程:你們?nèi)绾问褂胹hiro?1、自定義了formAuthenticationFilter,在這里邊主要實現(xiàn)了驗證碼的校驗和返回json的處理。2、自定義了realm,從數(shù)據(jù)庫查詢用戶密碼和用戶的權(quán)限信息,為了避免多次查詢realm使用ehcache緩存。3、使用shiro主要是要在shiroFilter中配置過慮規(guī)則,哪些可以匿名訪問,哪些必須要認證。10 系統(tǒng)使用數(shù)據(jù)字典了嗎?怎么用的?數(shù)據(jù)字典:將具體相同類型的配置項統(tǒng)一在數(shù)據(jù)字典表中進行配置,如果要修改配置項只需要修改數(shù)據(jù)字典而不需要代碼,增強代碼可維護性。配置項:分成兩種,一是業(yè)務(wù)代碼,業(yè)務(wù)代碼系統(tǒng)中固定的代碼,不受用戶需求控制的。比如:用戶狀態(tài)(正常、暫停)、藥品交易狀態(tài)(正常、暫停)、用戶類型(1,2,3,4,0),業(yè)務(wù)代碼可能要在系統(tǒng)中硬編碼。二是普通配置項,普通配置項變化靈活,受用戶需求控制,比如藥品類型、醫(yī)院級別。數(shù)據(jù)字典表:分為兩張表,一張表是數(shù)據(jù)字典類型表,dicttype,一張表是數(shù)據(jù)字典明細表,dictinfo(外鍵typecode)業(yè)務(wù)代碼、普通配置項,類型都需要在dicttype配置,且配置方法一樣。業(yè)務(wù)代碼、普通配置項,明細在dictinfo配置,方法不一樣。業(yè)務(wù)代碼在dictinfo數(shù)據(jù)字典明細表配置,將業(yè)務(wù)代碼寫到dictinfo表中的dictcode字段,如果查詢一個業(yè)務(wù)代碼對應(yīng)的名稱?根據(jù)typecode+dictcode查詢dictinfo表,只能查詢出一條記錄。普通配置項在dictinfo數(shù)據(jù)字典明細表配置,不需要在dictcode字段配置內(nèi)容,因為普通配置項沒有業(yè)務(wù)代碼。只需要在info字段配置項目名稱即可。如何關(guān)聯(lián)查詢出普通配置項的名稱?在業(yè)務(wù)表(范范的概念,業(yè)務(wù)功能相關(guān)表統(tǒng)稱為業(yè)務(wù)表)中將普通配置項的id(dictinfo的主鍵)存放在業(yè)務(wù)表字段中,根據(jù)id(dictinfo的主鍵)關(guān)聯(lián)查詢dictinfo 表的記錄。11 系統(tǒng)中有導(dǎo)入、導(dǎo)出功能嗎?怎么實現(xiàn)的? 系統(tǒng)有導(dǎo)入導(dǎo)出功能,對藥品目錄實現(xiàn)導(dǎo)入和導(dǎo)出,還有一些用戶常用的查詢實現(xiàn)了導(dǎo)出,還有每一個統(tǒng)計分析實現(xiàn)導(dǎo)出。藥品目錄導(dǎo)入:使用Apache POI組件完成導(dǎo)入,采用HSSF事件驅(qū)動模式進行excel文件導(dǎo)入。系統(tǒng)中對HSSF事件驅(qū)動模式進行封裝。封裝的思路:封裝類包括一個抽象類,工具類(繼承抽象類)、數(shù)據(jù)導(dǎo)入接口。抽象類是一個底層類不是面向用戶的,完成了對excel數(shù)據(jù)的解析,解析完一條記錄調(diào)用一個抽象方法,此抽象方法在工具類中有具體的實現(xiàn).工具類是面向用戶的,工具對抽象方法具體實現(xiàn),內(nèi)容是調(diào)用數(shù)據(jù)導(dǎo)入接口執(zhí)行導(dǎo)入操作,統(tǒng)計導(dǎo)入的結(jié)果(導(dǎo)入成功數(shù)量、失敗數(shù)量、導(dǎo)入失敗原因、導(dǎo)入失敗的記錄)。具體使用時需要根據(jù)業(yè)務(wù)需求開發(fā)不同的數(shù)據(jù)導(dǎo)入接口,將此接口注入工具類中,程序員只要調(diào)用工具的導(dǎo)入方法即可完成數(shù)據(jù)的導(dǎo)入。藥品目錄導(dǎo)入開發(fā),就是使用此封裝類,開發(fā)了一個藥品目錄的導(dǎo)入接口。藥品目錄導(dǎo)出:使用apache POI組件完成導(dǎo)出,采用XSSF完成數(shù)據(jù)導(dǎo)出,XSSF可以完成大數(shù)據(jù)導(dǎo)出,XSSF實現(xiàn)一邊向內(nèi)存創(chuàng)建對象,一邊向磁盤寫臨時文件,一邊對內(nèi)存對象進行清理,最終對生成臨時文件進行合并輸出最終導(dǎo)出文件。本系統(tǒng)對XSSF完成大數(shù)據(jù)導(dǎo)出封裝使用,封裝類原理:使用時需要定義導(dǎo)出數(shù)據(jù)列表的title,還要定義導(dǎo)出數(shù)據(jù)列表每一列對應(yīng)的pojo的屬性,從數(shù)據(jù)查詢出要導(dǎo)出的數(shù)據(jù)List,封裝通過java反射自動取出pojo中的屬性值,使用XSSF向內(nèi)存創(chuàng)建對象,完成數(shù)據(jù)導(dǎo)出。12 系統(tǒng)中都包括哪些系統(tǒng)配置方式? 1、 將系統(tǒng)中具有相同類型的配置項統(tǒng)一在數(shù)據(jù)字典表進行配置。2、 將系統(tǒng)的運行參數(shù)統(tǒng)一配置系統(tǒng)參數(shù)配置表中。3、 對系統(tǒng)所有提示信息(成功、異常)統(tǒng)一配置在perties文件中。4、 對數(shù)據(jù)的連接參數(shù)配置在perties中5、 日志參數(shù)配置在perties6、 系統(tǒng)公開訪問地址(無需要登錄即可訪問)配置在anonymousAperties7、 系統(tǒng)公共訪問地址(需要登錄但需要授權(quán)才可訪問)配置在commonAperties13 作過接口嗎?怎么做的?采用什么技術(shù)?在開發(fā)藥品目錄模塊時需要從省平臺同步藥品信息,這個接口由本系統(tǒng)向省平臺發(fā)起請求。我參考接口文檔進行開發(fā),參考接口文檔中的參數(shù)定義編寫代碼。采用hessian框架實現(xiàn)遠程調(diào)用,由于接口同步的數(shù)據(jù)量不大,hessian采用框架定義的二進行協(xié)議傳輸數(shù)據(jù),速度很快,本系統(tǒng)采購hessian。在開發(fā)時將服務(wù)端的接口拷貝至本系統(tǒng),在 spring的配置文件中配置代理接口,在本系統(tǒng)的service中直接注入調(diào)用,非常方便。在 spring的配置文件中配置代理接口:注入接口:14 你了解的還有哪些接口技術(shù)?對于大數(shù)據(jù)量傳輸?shù)?,自己的系統(tǒng)之間一般我們就直接使用socket的方式傳輸了。對于一些公開的接口(不同公司的系統(tǒng)之間的調(diào)用),大多采用http的方式定義接口,對于服務(wù)端現(xiàn)在流行使用rest方式,對于客戶端我們一般使用httpclient調(diào)用服務(wù)端。還有一些接口采用webservice(soap協(xié)議),這個我們使用過cxf這個框架開發(fā)。15 請描述采購單模塊?功能描述:提供醫(yī)院管理采購單、監(jiān)督單位審核采購單、供貨商受理采購單、藥品入庫等部分功能。業(yè)務(wù)流程:1、 醫(yī)院創(chuàng)建采購單填寫采購單基本信息(采購單的基本信息,下單人的聯(lián)系方式,采購單編號,下單日期等)維護采購藥品明細信息(指定采購單采購哪些藥品)2、 醫(yī)院提交采購單3、 監(jiān)督單位審核采購單4、 供貨商受理采購單5、 醫(yī)院執(zhí)行入庫操作16 系統(tǒng)使用工作流了嗎?怎么用的?系統(tǒng)使用activiti工作流引擎對采購流程進行管理。使用方法:在采購單表中創(chuàng)建一個字段存在流程實例 的id,在啟動流程實例時將采購單id設(shè)置到businessKey中,這樣采購單表和工作流的流程實例表就關(guān)聯(lián)起來了。任務(wù)指派使用組任務(wù)完成,在系統(tǒng)用戶添加、修改、刪除時及角色添加修改刪除時將用戶和角色信息同步到工作流的表中。采購單創(chuàng)建同時啟動一個流程實例,將采購單pojo對象記錄在流程變量中供每個結(jié)點讀取業(yè)務(wù)數(shù)據(jù)使用。業(yè)務(wù)的操作流程是:1、衛(wèi)生室創(chuàng)建采購單,啟動流程實例2、衛(wèi)生室提交采購單,提交后流程執(zhí)行到審核采購單結(jié)點3、衛(wèi)生院在審核采購單時先拾取一個組任務(wù),然后在進行任務(wù)處理。4、供貨商最后受理采購單。17 有統(tǒng)計分析功能嗎?怎么做的?有一個統(tǒng)計分析模塊,要按藥品、區(qū)域等統(tǒng)計采購總金額、入庫總金額等。統(tǒng)計分析由于表數(shù)據(jù)多并且關(guān)系表較多,導(dǎo)致sql執(zhí)行慢。解決 方法是:創(chuàng)建一張交易明細表將采購單、入庫單、退貨單等表的數(shù)據(jù)全部聚合 到一張表中,統(tǒng)計sql只查詢這一張表,速度提升很大。統(tǒng)計圖使用jfreechart 實現(xiàn)。另外每個統(tǒng)計功能都做了導(dǎo)出excel數(shù)據(jù)的功能。18 你在開發(fā)中有沒有遇到什么問題,是如何解決的? 問題1:shiro認證不支持驗證碼和返回json。解決:自定義formAuthenticationFitler,校驗驗證碼,將結(jié)果信息返回json。問題2:統(tǒng)計分析由于表數(shù)據(jù)多并且關(guān)系表較多,導(dǎo)致sql執(zhí)行慢。解決:創(chuàng)建一張交易明細表將采購單、入庫單、退貨單等表的數(shù)據(jù)全部聚合 到一張表中,統(tǒng)計sql只查詢這一張表,速度提升很大。19 系統(tǒng)中有打印功能嗎?怎么實現(xiàn)的?系統(tǒng)中有打印功能,針對采購單、退貨單都提供打印。本系統(tǒng)中打印功能是使用套打。打印知識的學(xué)習(xí):b/s系統(tǒng)提供打印的方式:1、 使用瀏覽器的打印功能用戶在瀏覽器中瀏覽的網(wǎng)頁,通過瀏覽器提供的打印功能,點擊“打印”菜單即可將當(dāng)前網(wǎng)頁打印。瀏覽器打印出效果就是頁面瀏覽的效果,通常使用使用瀏覽器打印,需要單獨作一個打印的頁面,這個打印的頁面將超級鏈接、按鈕等不需要打印的內(nèi)容全部去掉,打印頁面中只留下需要打印出來的東西。瀏覽器打印出來內(nèi)容默認在打印頁面最下邊顯示當(dāng)前url地址,通過設(shè)置瀏覽器打印選項可以去掉這個url。總結(jié):使用瀏覽器打印非常方便。2、 間接打印比如:需要打印供貨商的藥品目錄,要求用戶將列表導(dǎo)出成excel,由用戶自行打印。3、 套打什么套打:所打印出來效果(布局),是提前印刷好的打印模版,打印模版中是沒有
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 船舶修理用材料選擇與應(yīng)用考核試卷
- 玻璃制品耐沖擊性能測試考核試卷
- 探索反轉(zhuǎn)課堂
- 四川鐵道職業(yè)學(xué)院《生物制藥設(shè)備與工程設(shè)計》2023-2024學(xué)年第二學(xué)期期末試卷
- 攀枝花攀西職業(yè)學(xué)院《外國建筑史B》2023-2024學(xué)年第二學(xué)期期末試卷
- 江蘇省泰興市濟川實驗初中重點達標(biāo)名校2024-2025學(xué)年下學(xué)期初三學(xué)年第二次月考生物試題理學(xué)科試卷含解析
- 江西省永新縣2025年學(xué)業(yè)水平測試及答案含解析
- 江西省萍鄉(xiāng)市2025屆高三第二學(xué)期調(diào)研考試(歷史試題)試題含解析
- 烏蘭察布職業(yè)學(xué)院《軟件開發(fā)新技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 培黎職業(yè)學(xué)院《徽州民間工藝》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年北京市豐臺區(qū)九年級初三一模物理試卷(含答案)
- 2025廣西廣投臨港工業(yè)有限公司社會招聘45人筆試參考題庫附帶答案詳解
- 銅川易源電力實業(yè)有限責(zé)任公司招聘筆試真題2024
- 廚房清潔勞動課件
- 土地旋耕合同協(xié)議書范本
- 山西省太原市2025年高三年級模擬考試(二)歷史試題及答案
- 4-08-10-02 國家職業(yè)標(biāo)準(zhǔn)化工生產(chǎn)現(xiàn)場技術(shù)員(試行) (2025年版)
- 2025年云南煙草專賣局招聘人員筆試備考試題
- 2025年上半年山東省港口集團限公司應(yīng)屆大學(xué)畢業(yè)生招聘573人易考易錯模擬試題(共500題)試卷后附參考答案
- 文化產(chǎn)業(yè)管理考試試題及答案研究
- 湖北省武漢市2025屆高中畢業(yè)生四月調(diào)研考試數(shù)學(xué)試卷及答案(武漢四調(diào))
評論
0/150
提交評論