Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerImpl.java =================================================================== diff -u -r13584 -r13588 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerImpl.java (.../DiposableGoodsManagerImpl.java) (revision 13584) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerImpl.java (.../DiposableGoodsManagerImpl.java) (revision 13588) @@ -1745,6 +1745,16 @@ SqlUtils.getNonStringFieldInCollectionsPredicate("po.id", ids)); return getDisposableGoodsBySql2_ForUpdate(sql); } + public Map getIdsToDisposableGoodsMapBySql(String sql){ + Map map = new HashMap(); + List disposableGoodsList = objectDao.findBySql(DisposableGoods.class.getSimpleName(),sql); + if(disposableGoodsList != null){ + for (DisposableGoods disposableGoods : disposableGoodsList) { + map.put(disposableGoods.getId(), disposableGoods); + } + } + return map; + } private List getDisposableGoodsBySql2_ForUpdate(String sql){ // 锁定的方式批量查询 String queryString = String @@ -1786,6 +1796,14 @@ return objectDao.findBySql( ExpensiveDisposablegoods.class.getSimpleName(), sql); } + public List getExpensiveDisposablegoodsByIds(String ids){ + if (StringUtils.isBlank(ids)) { + return null; + } + String sql = String.format(" where po.id in(%s) ", ids); + return objectDao.findBySql( + ExpensiveDisposablegoods.class.getSimpleName(), sql); + } public List getDisposableGoodsBatchesByDisposableGoodsID(Long disposableGoodsID){ if(disposableGoodsID == null){ return null; Index: ssts-web/src/main/webapp/disinfectsystem/assestManagement/disposableGoods/expensiveDisposableGoodsView.js =================================================================== diff -u -r13585 -r13588 --- ssts-web/src/main/webapp/disinfectsystem/assestManagement/disposableGoods/expensiveDisposableGoodsView.js (.../expensiveDisposableGoodsView.js) (revision 13585) +++ ssts-web/src/main/webapp/disinfectsystem/assestManagement/disposableGoods/expensiveDisposableGoodsView.js (.../expensiveDisposableGoodsView.js) (revision 13588) @@ -48,7 +48,48 @@ text : '打印高值耗材', iconCls : 'btn_ext_refresh', handler : function(){ - + + var grid = top.Ext.getCmp('batchNumberGrid'); + var records = grid.getSelectionModel().getSelections(); + if(records.length == 0){ + showResult("请选择要打印的高值耗材"); + }else{ + var ids = ""; + for(var i = 0,len=records.length;i expensiveDisposablegoodsList = diposableGoodsManager.getExpensiveDisposablegoodsByIds(ids); + if(expensiveDisposablegoodsList == null || expensiveDisposablegoodsList.isEmpty()){ + throw new RuntimeException("高值耗材已被删除"); + } + Set diposableGoodsIdSet = new HashSet(); + for (ExpensiveDisposablegoods expensiveDisposablegoods : expensiveDisposablegoodsList) { + Long disposableGoodsId = expensiveDisposablegoods.getDisposableGoodsID(); + if(disposableGoodsId != null){ + diposableGoodsIdSet.add(disposableGoodsId); + } + } + String sql = String.format(" where %s ", SqlUtils.getNonStringFieldInCollectionsPredicate("po.id", diposableGoodsIdSet)); + Map idsToDisposableGoodsMap = diposableGoodsManager.getIdsToDisposableGoodsMapBySql(sql); + for (ExpensiveDisposablegoods expensiveDisposablegoods : expensiveDisposablegoodsList) { + JSONObject jobj = new JSONObject(); + Long disposableGoodsId = expensiveDisposablegoods.getDisposableGoodsID(); + DisposableGoods disposableGoods = idsToDisposableGoodsMap.get(disposableGoodsId); + DisposableGoodsBatchStock disposableGoodsBatchStock = expensiveDisposablegoods.getDisposableGoodsBatchStock(); + String showName = ""; + String name = ""; + String specification = ""; + if(disposableGoods != null){ + if(disposableGoods.getName() != null){ + name = disposableGoods.getName(); + } + if(disposableGoods.getSpecification() != null){ + specification = disposableGoods.getSpecification(); + } + showName = disposableGoods.getShowName(); + } + String expDate = ""; + if (disposableGoodsBatchStock.getExpDate() != null) { + expDate = Constants.SIMPLEDATEFORMAT_YYYYMMDD.format(disposableGoodsBatchStock.getExpDate()); + } + jobj.put("expDate", expDate); + jobj.put("showName", showName); + jobj.put("name", name); + jobj.put("specification", specification); + jobj.put("barcode", expensiveDisposablegoods.getBarcode()); + jobj.put("supplierName", disposableGoodsBatchStock.getSupplierName()); + jobj.put("batchNumber", disposableGoodsBatchStock.getBatchNumber()); + jobjs.add(jobj); + } + + retObj.put("success", true); + retObj.put("data", jobjs); + } catch (Exception e) { + e.printStackTrace(); + retObj.put("errMsg", e.getMessage()); + } + + HttpServletResponse response = StrutsParamUtils.getResponse(); + response.setCharacterEncoding("UTF-8"); + + try { + PrintWriter out = response.getWriter(); + out.print(retObj.toString()); + } catch (IOException e) { + e.printStackTrace(); + } + } public void printDiposableGoods() { String items = StrutsParamUtils.getPraramValue("items", ""); StringBuffer buffer = new StringBuffer(); Index: ssts-web/src/main/webapp/disinfectsystem/assestManagement/diposableGoods/diposableGoodsView.js =================================================================== diff -u -r13546 -r13588 --- ssts-web/src/main/webapp/disinfectsystem/assestManagement/diposableGoods/diposableGoodsView.js (.../diposableGoodsView.js) (revision 13546) +++ ssts-web/src/main/webapp/disinfectsystem/assestManagement/diposableGoods/diposableGoodsView.js (.../diposableGoodsView.js) (revision 13588) @@ -744,7 +744,7 @@ ids += records[i].data['id']; } Ext.Ajax.request({ - url : WWWROOT + '/disinfectSystem/diposableGoodsAction!printExpensiveDisposableGoodsByIds.do', + url : WWWROOT + '/disinfectSystem/diposableGoodsAction!printExpensiveDisposableGoodsByDisposableGoodsIds.do', params : {diposableIds : ids}, success : function(response, options){ var obj = Ext.util.JSON.decode(response.responseText); Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManager.java =================================================================== diff -u -r13584 -r13588 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManager.java (.../DiposableGoodsManager.java) (revision 13584) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManager.java (.../DiposableGoodsManager.java) (revision 13588) @@ -118,11 +118,12 @@ public List getDisposableGoodsByBatchBarcodes_ForUpdate(Collection barcodes); public List getDisposableGoodsByDisposableGoodsIDs_ForUpdate(Collection ids); - + public Map getIdsToDisposableGoodsMapBySql(String sql); public List getDisposableGoodsBatchByBatchBarcodes(Collection barcodes); public List getExpensiveDisposablegoodsByBarcodes(Collection barcodes); public List getExpensiveDisposablegoodsByIds(Collection ids); + public List getExpensiveDisposablegoodsByIds(String ids); public List getDisposableGoodsBatchesByDisposableGoodsID(Long disposableGoodsID); public List getExpensivediposablegoodsByDisposableGoodsBatchStockId(Long disposableGoodsBatchStockId);