Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java =================================================================== diff -u -r16508 -r16621 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 16508) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 16621) @@ -2447,4 +2447,19 @@ } return barcodes; } + + /** + * 通过审核篮筐条码获取ReviewedBasket对象集合 + * @param basketBarcode 审核篮筐条码 + * @param pageNow 请求的当前页 + * @param pageSize 每一页的大小 + * @return + */ + @Override + public List getTousseInstanceByBasket(String basketBarcode, + Integer pageNow, Integer pageSize) { + String sql = "where po.container.barcode = '"+ basketBarcode + "'"; + Integer firstIndex = pageSize*(pageNow - 1); + return objectDao.findBySql(ReviewedBasket.class.getSimpleName(), sql, firstIndex, pageSize, "id desc"); + } } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ReviewedBasketManager.java =================================================================== diff -u -r16169 -r16621 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ReviewedBasketManager.java (.../ReviewedBasketManager.java) (revision 16169) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ReviewedBasketManager.java (.../ReviewedBasketManager.java) (revision 16621) @@ -57,4 +57,11 @@ public void deleteAllTousse(String reviewBasketId); public void deleteEmptyBasket(); + + /** + * 根据审核篮筐条码,获取其数量 + * @param basketBarcode 审核篮筐条码 + * @return + */ + public Integer getReviewedBasketCountByBarcode(String basketBarcode); } Index: ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/basketMonitor/sterileBasketMonitor.jsp =================================================================== diff -u -r15043 -r16621 --- ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/basketMonitor/sterileBasketMonitor.jsp (.../sterileBasketMonitor.jsp) (revision 15043) +++ ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/basketMonitor/sterileBasketMonitor.jsp (.../sterileBasketMonitor.jsp) (revision 16621) @@ -20,6 +20,7 @@ <%@ include file="/common/includeExtJs4_2.jsp"%> + Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ReviewedBasketManagerImpl.java =================================================================== diff -u -r16407 -r16621 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ReviewedBasketManagerImpl.java (.../ReviewedBasketManagerImpl.java) (revision 16407) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ReviewedBasketManagerImpl.java (.../ReviewedBasketManagerImpl.java) (revision 16621) @@ -25,6 +25,7 @@ import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.hibernate.ObjectDao; import com.forgon.tools.json.JSONUtil; +import com.forgon.tools.string.StringTools; /** * @author Angus @@ -331,5 +332,35 @@ exist = true; } return exist; + } + + /** + * 根据审核篮筐条码,获取其数量 + * @param basketBarcode 审核篮筐条码 + * @return + */ + @Override + public Integer getReviewedBasketCountByBarcode(String basketBarcode) { + + String sql = + "select count(*) rowCounts " + + "from ReviewedBasket rb " + + "inner join Container c on c.id=rb.container_id " + + "inner join barcodeDevice bd on bd.id=c.id " + + "where bd.barcode='"+basketBarcode+"'" + ; + ResultSet result = objectDao.executeSql(sql); + + Integer rowCount = 0; + try { + result.next(); + rowCount = result.getInt("rowCounts"); + } catch (SQLException e) { + e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(result); + } + return rowCount; + } } \ No newline at end of file Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java =================================================================== diff -u -r16407 -r16621 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 16407) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 16621) @@ -541,8 +541,101 @@ } } /** - * 灭菌篮筐监控和虚拟篮筐监控,加载条码对应的篮筐所装物品或已灭菌的物品 + * 灭菌篮筐监控,加载条码对应的篮筐所装物品或已灭菌的物品 * + */ + public void loadTousseInstancesByReviewedBasketBarcode(){ + String basketBarcode = StrutsParamUtils.getPraramValue("barcode", ""); + String pageSizeString = StrutsParamUtils.getPraramValue("pageSize", ""); + String pageNowString = StrutsParamUtils.getPraramValue("pageNow", ""); + + if(StringUtils.isNotBlank(basketBarcode) + && StringUtils.isNotBlank(pageSizeString) + && StringUtils.isNotBlank(pageNowString)){ + + String containerName = getContainerNameByBasketBarcode(basketBarcode); + + JSONArray array = new JSONArray(); + + Integer rowCount = reviewedBasketManager.getReviewedBasketCountByBarcode(basketBarcode); + Integer pageSize = Integer.parseInt(pageSizeString); + Integer pageNow = Integer.parseInt(pageNowString); + Integer pageCount=(rowCount-1)/pageSize+1; + if (pageNow > pageCount) { //用户输的当前页大于最后一页 + pageNow = pageCount; + } else if (pageNow < 1) { //用户输的当前页小于1 + pageNow = 1; + } + + Integer fristIndex = pageSize*(pageNow - 1) + 1; + Integer endIndex = fristIndex + pageSize - 1; + if (pageNow == pageCount) { //最后一页 + endIndex = rowCount; + } + + List baskets = tousseInstanceManager.getTousseInstanceByBasket(basketBarcode, pageNow, pageSize); + boolean flag = true; + if(baskets != null){ + for (ReviewedBasket basket : baskets) { + String sql = "where po.reviewBasket_id = " + basket.getId(); + List instances = tousseInstanceManager.getTousseInstanceBySql(sql); + int totalAmount = 0; + if(instances != null){ + totalAmount = instances.size(); + } + + JSONObject basketObj = new JSONObject(); + basketObj.put("objName", containerName); + basketObj.put("amount", totalAmount); + basketObj.put("objBarcode", basketBarcode); + basketObj.put("leaf", false); + + JSONArray children = new JSONArray(); + if(instances != null){ + for (TousseInstance instance : instances) { + + JSONObject obj = new JSONObject(); + obj.put("objName", instance.getShowTousseName()); + obj.put("objBarcode", instance.getBarcode()); + obj.put("sterileEndTime", instance.getSterileEndTime()); + obj.put("status", instance.getStatus()); + obj.put("depart", instance.getDepart()); + obj.put("leaf", true); + + children.add(obj); + + } + } + + basketObj.put("children", children); + basketObj.put("expanded", flag); + basketObj.put("expandable", true); + if (flag) { + basketObj.put("pageNow", pageNow); + basketObj.put("pageCount", pageCount); + basketObj.put("fristIndex", fristIndex); + basketObj.put("endIndex", endIndex); + basketObj.put("rowCount", rowCount); + } + array.add(basketObj); + flag = false; + } + } + HttpServletResponse response = StrutsParamUtils.getResponse(); + response.setCharacterEncoding("UTF-8"); + PrintWriter out; + try { + out = response.getWriter(); + out.print(array.toString()); + out.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + /** + * 虚拟篮筐监控,加载条码对应的篮筐所装物品或已灭菌的物品 + * * 2014-8-20 */ public void loadTousseInstancesByBasketBarcode(){ Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java =================================================================== diff -u -r16508 -r16621 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 16508) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 16621) @@ -349,5 +349,15 @@ * 获取申请记录 */ public InvoicePlan getInvoicePlan(String invoicePlanId); + + /** + * 通过审核篮筐条码获取ReviewedBasket对象集合 + * @param basketBarcode 审核篮筐条码 + * @param pageNow 请求当前页 + * @param pageSize 每一页的大小 + * @return + */ + public List getTousseInstanceByBasket(String basketBarcode, + Integer pageNow, Integer pageSize); } Index: ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/basketMonitor/sterileBasketMonitorView.js =================================================================== diff -u -r16144 -r16621 --- ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/basketMonitor/sterileBasketMonitorView.js (.../sterileBasketMonitorView.js) (revision 16144) +++ ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/basketMonitor/sterileBasketMonitorView.js (.../sterileBasketMonitorView.js) (revision 16621) @@ -1,14 +1,15 @@ var entityName = "灭菌篮筐监控"; -var grid; var washingModeStore;// 清洗方式 var washingMachineStore;// 清洗程序 var rinserStore;// 清洗机 var barcode = ''; +var grid; //左边灭菌篮筐的数据储存器 +var basketStore; //左边灭菌篮筐的数据储存器 var itemsInBasketGrid; //右边灭菌篮筐的历史装载记录的视图 var treeStore; //右边灭菌篮筐的历史装载记录的数据储存器 -var basketStore; //左边灭菌篮筐的数据储存器 + function isDetermineKey(){ var searchKeyWord = Ext4.getCmp('searchKeyWord').getValue(); @@ -27,9 +28,7 @@ basketStore.reload(); basketStore.proxy.extraParams.basketDarcode = null; //请求完毕,把这个参数置空,以免影响后面的请求 - itemsInBasketGrid.setTitle("灭菌筐【" + result.containerName + "】历史装载记录"); - treeStore.proxy.extraParams = {barcode : searchKeyWord}; - treeStore.reload(); + getTousseInstances(searchKeyWord, result.containerName, 1); } else { alert("请扫描灭菌篮筐的条码"); } @@ -65,7 +64,80 @@ Ext4.getCmp('searchKeyWord').setValue(''); } +/** + * 通过审核篮筐条码获取器械包 + * @param barcode 审核篮筐条码(可选) + * @param containerName 审核篮筐名称(可选) + * @param pageNow 显示当前页(可选) + */ +function getTousseInstances(barcode, containerName, pageNow) { + + if (treeStore) { + containerName ? itemsInBasketGrid.setTitle('灭菌筐【' + containerName + '】历史装载记录') : (function(){})(); + pageNow ? Ext4.getCmp('pageNow').setValue(pageNow) : (function(){ + pageNow = Ext4.getCmp('pageNow').getValue(); + })(); + + treeStore.proxy.extraParams = { + barcode : barcode ? barcode : treeStore.proxy.extraParams.barcode, + pageSize : Ext4.getCmp('pageSize').getValue(), + pageNow : pageNow + }; + treeStore.reload(); + } + +} +/** + * 处理分页按钮的请求 + * @param _this + * @param e + * @param eOpts + * @returns {Boolean} + */ +function handlePagingButtonRequest(_this, e, eOpts) { + + var pagCountInfo = Ext4.getCmp('pagCountInfo').text; + var pageNowReal = parseInt(Ext4.getCmp('pageNowReal').getValue()); + var pageCountReal = parseInt(Ext4.getCmp('pageCountReal').getValue()); + var buttonText = _this.text; + + if (!pagCountInfo) { + showResult("没数据"); + return false; + } + + if (buttonText == '第一页') { + if (pageNowReal == 1) { + showResult("已经是第一页了"); + return false; + } + pageNowReal = 1; + } else if (buttonText == '上一页') { + -- pageNowReal; + if (pageNowReal < 1) { + showResult("已经是第一页了"); + return false; + } + } else if (buttonText == '下一页') { + ++ pageNowReal; + if (pageNowReal > pageCountReal) { + showResult("已经是最后一页了"); + return false; + } + } else if (buttonText == '最后一页') { + if (pageNowReal == pageCountReal) { + showResult("已经是最后一页了"); + return false; + } + pageNowReal = pageCountReal + } + + getTousseInstances(false, false, pageNowReal); + +} + + Ext4.onReady(function() { Ext4.QuickTips.init(); Ext4.BLANK_IMAGE_URL = WWWROOT + '/ext/resources/images/default/s.gif'; @@ -162,12 +234,7 @@ , listeners : { itemclick: function( dv, record, item, index, e ){ - if (treeStore) { - var barcode = record.get('barcode'); - itemsInBasketGrid.setTitle("灭菌筐【" + record.get('containerName') + "】历史装载记录"); - treeStore.proxy.extraParams = {barcode : barcode}; - treeStore.reload(); - } + getTousseInstances(record.get('barcode'), record.get('containerName'), 1); } } }); @@ -224,26 +291,124 @@ {name : 'status'}, {name : 'depart'}, //(cjr) {name : 'sterileEndTime'}, - {name : 'amount'} + {name : 'amount'}, + {name : 'pageNow'}, + {name : 'pageCount'}, + {name : 'fristIndex'}, + {name : 'endIndex'}, + {name : 'rowCount'} ]}); treeStore = new Ext4.data.TreeStore({ - model: cModel, + model: cModel, proxy: { type: 'ajax', - url: WWWROOT + '/disinfectSystem/tousseInstanceAction!loadTousseInstancesByBasketBarcode.do' + url: WWWROOT + '/disinfectSystem/tousseInstanceAction!loadTousseInstancesByReviewedBasketBarcode.do' }, - folderSort: true + folderSort: true, + listeners: { + load: function(_this, node, records, successful, eOpts) { + var temp = records[0]; + if (temp) { + var pageNow = temp.data.pageNow; + var pageCount = temp.data.pageCount; + var fristIndex = temp.data.fristIndex; + var endIndex = temp.data.endIndex; + var rowCount = temp.data.rowCount; + + Ext4.getCmp('pageNow').setValue(pageNow); + Ext4.getCmp('pagCountInfo').setText('共有' + pageCount + '页'); + Ext4.getCmp('pagingInfo').setText('显示' + fristIndex + '-' + endIndex + ',共有' + rowCount + '条'); + Ext4.getCmp('pageNowReal').setValue(pageNow); + Ext4.getCmp('pageCountReal').setValue(pageCount); + } else { + Ext4.getCmp('pagCountInfo').setText(''); + Ext4.getCmp('pagingInfo').setText('没数据'); + } + } + } }); itemsInBasketGrid = Ext4.create('columnTreeGrid', { id : 'itemsInBasketGrid', flex : 1, border : false, viewConfig : {loadMask : {msg : '正在加载,请稍候...'}}, - store: treeStore - }) - + store: treeStore, + tbar : [{ + text : '第一页', + handler : handlePagingButtonRequest + }, { + text : '上一页', + handler : handlePagingButtonRequest + }, { + xtype : 'label', + text : '第' + }, { + xtype : 'numberfield', + hideTrigger: true, + id : 'pageNow', + value : 1, + minValue: 1, + width : 30, + enableKeyEvents : true, + listeners : { + keypress : function(_this, e, eOpts) { + if (e.getKey() == 13) { + var pagCountInfo = Ext4.getCmp('pagCountInfo').text + if (pagCountInfo) { + getTousseInstances(); + } else { + showResult("没数据"); + return false; + } + } + } + } + }, { + xtype : 'label', + id : 'pagCountInfo' + }, { + text : '下一页', + handler : handlePagingButtonRequest + }, { + text : '最后一页', + handler : handlePagingButtonRequest + }, { + xtype : 'combo', + width : 110, + id : 'pageSize', + labelWidth : 60, + fieldLabel : '每页显示', + forceSelection : true, + triggerAction : 'all', + queryMode: 'local', + displayField: 'pageSize', + valueField: 'pageSize', + value : 5, + store : Ext4.create('Ext4.data.Store', { + fields : ['pageSize'], + data : [{'pageSize' : 5}, {'pageSize' : 10}, {'pageSize' : 20}] + }), + listeners : { + select : function() { + var pagCountInfo = Ext4.getCmp('pagCountInfo').text + if (pagCountInfo) { + getTousseInstances(false, false, 1); + } + } + } + }, '->', { + xtype : 'label', + id : 'pagingInfo' + }, { + xtype : 'hiddenfield', + id : 'pageNowReal' + }, { + xtype : 'hiddenfield', + id : 'pageCountReal' + }] + }); var viewport = new Ext4.container.Viewport({ layout : 'border',