医药采购之采购单明细添加查询
1??????采購單明細添加查詢
1.1?????需求
醫院從本區域供貨商的藥品目錄中挑選藥品,醫院根據查詢條件查詢本區域供貨商的藥品目錄的信息。
從本地區供貨商藥品目錄中找采購的藥品信息。
?
1.2?????實現
1.2.1?????dao
?
自定義一個mapper,查詢內容和供貨商藥品目錄查詢相似。
?
在供貨商藥品目錄查詢的基礎上添加兩個約束條件:
約束條件:
1、只查詢醫院本區域供貨商的藥品目錄
?? ?向sql中傳入醫院的區域id
2、? 將采購單中已經存在的藥品過慮掉
向 sql中傳入采購單id
?
select
??? gysypml.id gysypmlid,
??? gysypml.ypxxid,
??? gysypml.usergysid,
??? usergys.mc usergysmc,
??? gysypml_control.control,
??? (select info
??? from dictinfo
??? where typecode = '008'
??? and dictcode = gysypml_control.control)controlmc,
?
??? ypxx.id,
??? ypxx.bm,
??? ypxx.mc,
??? ypxx.jx,
??? ypxx.gg,
??? ypxx.zhxs,
??? ypxx.scqymc,
??? ypxx.spmc,
??? ypxx.zbjg,
??? ypxx.jyzt,
?
??? (select info
?? ?from dictinfo
??? where ypxx.jyzt = dictcode
??? and typecode = '003') jyztmc
?
??? from gysypml, usergys, gysypml_control,ypxx
??? where gysypml.usergysid = usergys.id
??? and gysypml.ypxxid =gysypml_control.ypxxid
??? and gysypml.usergysid =gysypml_control.usergysid
??? and gysypml.ypxxid = ypxx.id
???
??? --限制只查詢醫院本區域供貨商的藥品目錄
??? --1.1.16.是醫院所在區域
???
??? and gysypml.usergysid in (
?????? select usergysarea.usergysid from usergysarea where'1.1.16.'like usergysarea.areaid|| '%'
??? )
??? --將采購單中藥品過慮掉
??? --2014101040就是采購單id
??? and gysypml.ypxxid notin(
??????? select yycgdmx.ypxxid from yycgdmx2014 yycgdmxwhere yycgdmx.yycgdid = '2014101040'
??? )
?
為了系統維護方便,單獨 定義mapper,而不是在原來供貨商藥品目錄查詢的mapper上增加功能。
?
// 查詢醫院采購單添加藥品目錄列表
?? publicList<YycgdmxCustom> findAddYycgdmxList(YycgdQueryVo yycgdQueryVo)
???????? throws Exception;
?? // 查詢醫院采購單添加藥品目錄數量
?? public int findAddYycgdmxCount(YycgdQueryVoyycgdQueryVo) throwsException;
?
?
?
1.2.2?????service
接口功能:添加采購藥品查詢
接口參數:醫院id、采購單id、查詢條件
接口實現:
根據醫院id查詢醫院信息,得到醫院區域id
// 查詢醫院采購單添加藥品目錄列表
?? @Override
?? publicList<YycgdmxCustom> findAddYycgdmxList(String useryyid,
???????? Stringyycgdid, YycgdQueryVo yycgdQueryVo) throws Exception {
????? // 根據醫院id 得到醫院的區域id
????? Useryyuseryy = useryyMapper.selectByPrimaryKey(useryyid);
????? StringuseryyDq = useryy.getDq();
????? Useryyuseryy2 = yycgdQueryVo.getUseryy();
????? // 向yycgdQueryVo中設置參數記得非空校驗
????? if (useryy2 == null) {
???????? useryy2= newUseryy();
????? }
????? useryy2.setDq(useryyDq);
????? yycgdQueryVo.setUseryy(useryy2);
????? // 采購單id 非空判斷并設置采購單信息
????? YycgdCustomyycgdCustom = yycgdQueryVo.getYycgdCustom();
????? if (yycgdCustom == null) {
???????? yycgdCustom= newYycgdCustom();
????? }
????? yycgdCustom.setId(yycgdid);
????? yycgdQueryVo.setYycgdCustom(yycgdCustom);
????? // 設置年份
????? Stringyear = yycgdid.substring(0, 4);
????? yycgdQueryVo.setBusinessyear(year);
?
????? return yycgdMapperCustom.findAddYycgdmxList(yycgdQueryVo);
?? }
?
?? // 查詢醫院采購單添加藥品目錄數量
?? @Override
?? public int findAddYycgdmxCount(Stringuseryyid, String yycgdid,
???????? YycgdQueryVoyycgdQueryVo) throwsException {
????? // 根據醫院id 得到醫院的區域id
????? Useryyuseryy = useryyMapper.selectByPrimaryKey(useryyid);
????? StringuseryyDq = useryy.getDq();
????? Useryyuseryy2 = yycgdQueryVo.getUseryy();
????? // 向yycgdQueryVo中設置參數記得非空校驗
????? if (useryy2 == null) {
???????? useryy2= newUseryy();
????? }
????? useryy2.setDq(useryyDq);
????? yycgdQueryVo.setUseryy(useryy2);
????? // 采購單id 非空判斷并設置采購單信息
????? YycgdCustomyycgdCustom = yycgdQueryVo.getYycgdCustom();
????? if (yycgdCustom == null) {
???????? yycgdCustom= newYycgdCustom();
????? }
????? yycgdCustom.setId(yycgdid);
????? yycgdQueryVo.setYycgdCustom(yycgdCustom);
????? // 設置年份
????? Stringyear = yycgdid.substring(0, 4);
????? yycgdQueryVo.setBusinessyear(year);
?
????? return yycgdMapperCustom.findAddYycgdmxCount(yycgdQueryVo);
?? }
?
?
1.2.3?????action
?
兩個方法,一個是返回查詢頁面一個是返回查詢數據。模板代碼
// 采購單添加藥品查詢頁面
?? @RequestMapping("/queryaddyycgdmx")
?? public Stringqueryaddyycgdmx(Model model, String yycgdid) throws Exception {
????? // 藥品類別
????? List<Dictinfo>lblist = systemConfigService.findDictinfoByType("001");
????? // 藥品交易狀態
????? List<Dictinfo>jyztlist = systemConfigService.findDictinfoByType("003");
????? // 供貨狀態
????? List<Dictinfo>controllist = systemConfigService
??????????? .findDictinfoByType("008");
?
????? model.addAttribute("yycgdid",yycgdid);
????? model.addAttribute("controllist",controllist);
????? model.addAttribute("jyztlist",jyztlist);
????? model.addAttribute("lblist",lblist);
?
????? return "/business/cgd/queryaddyycgdmx";
?? }
?
?? // 采購單添加藥品查詢頁面數據
?? @RequestMapping("/queryaddyycgdmx_result")
?? public @ResponseBody
?? DataGridResultInfoqueryaddyycgdmx_result(HttpSession session,
???????? Stringyycgdid, intpage, introws, YycgdQueryVo yycgdQueryVo)
???????? throws Exception {
????? // 取出當前用戶
????? ActiveUseractiveUser = (ActiveUser) session
??????????? .getAttribute(Config.ACTIVEUSER_KEY);
????? Stringuseryyid = activeUser.getSysid();
?
????? // 取總數
????? int total = cgdService.findAddYycgdmxCount(useryyid,yycgdid,
??????????? yycgdQueryVo);
????? // 分頁參數
????? PageQuerypageQuery = newPageQuery();
????? pageQuery.setPageParams(total,rows, page);
????? yycgdQueryVo.setPageQuery(pageQuery);
????? // 新建列表
????? List<YycgdmxCustom>list = cgdService.findAddYycgdmxList(useryyid,
??????????? yycgdid,yycgdQueryVo);
?
????? DataGridResultInfodataGridResultInfo = new DataGridResultInfo();
????? dataGridResultInfo.setTotal(total);
????? dataGridResultInfo.setRows(list);
????? return dataGridResultInfo;
?? }
?
?
1.2.4?????頁面
在采購單修改頁面,點擊“采購藥品添加”,將采購單id傳入采購藥品添加查詢頁面。
?
?
1.2.5?????測試
?
采購藥品添加查詢功能測試:
使用不同區域的醫院進行測試,醫院所屬的供貨商不同。
?
第一組:
cmzcmc:醫院
ghsjzt:供貨商
第二組:
sszdhnc?醫院
ghsxy?供貨商
?
總結
以上是生活随笔為你收集整理的医药采购之采购单明细添加查询的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA教育培训机构信息管理系统计算机毕
- 下一篇: simulink电力电子仿真(5)三相桥