Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java =================================================================== diff -u -r13899 -r13904 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 13899) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 13904) @@ -1713,6 +1713,10 @@ --amountAwaitingSent; expensiveDisposablegoods.setInvoiceItemId(invoiceItem.getId());// 明细汇总关联 + //记录高值耗材位置 + expensiveDisposablegoods.setLocation(invoicePlan.getDepartCoding()); + expensiveDisposablegoods.setLocationForDisplay(invoicePlan.getDepart()); + invoiceItem.setDisposableGoodsId(expensiveDisposablegoods.getDisposableGoodsID()); invoiceItem.setDisposableGoodsStockId(expensiveDisposablegoods.getDisposableGoodsStockID()); invoiceItem.setDisposableGoodsBatchId(expensiveDisposablegoods.getDisposableGoodsBatchID()); Index: ssts-web/src/main/webapp/disinfectsystem/borrowRecord/borrowRecordView.js =================================================================== diff -u -r13900 -r13904 --- ssts-web/src/main/webapp/disinfectsystem/borrowRecord/borrowRecordView.js (.../borrowRecordView.js) (revision 13900) +++ ssts-web/src/main/webapp/disinfectsystem/borrowRecord/borrowRecordView.js (.../borrowRecordView.js) (revision 13904) @@ -624,7 +624,7 @@ /** * 获取已归还器械包明细的数据 设置数据格式如下: - * [{id:1,name:'',amount:2,items:[{name:'010001234',type:'借出'},{name:'012220154',type:'借出'}]},...{id:2,name:'',amount:3,items:[{name:'010001234',type:'借出'},{name:'012220154',type:'借出'}]}] + * [{id:1,name:'',amount:2,items:[{barcode:'010001234',type:'借出'},{barcode:'012220154',type:'借出'}]},...{id:2,name:'',amount:3,items:[{barcode:'010001234',type:'借出'},{barcode:'012220154',type:'借出'}]}] */ function bindTreeDataJson() { var items = []; @@ -637,7 +637,7 @@ var objArray = []; borrowNode.eachChild(function(tousseInstanceNode) { var subObj = {}; - subObj.name = tousseInstanceNode.attributes.name; + subObj.barcode = tousseInstanceNode.attributes.name; subObj.type = tousseInstanceNode.attributes.amount; objArray.push(subObj); }); Index: ssts-web/src/main/java/com/forgon/disinfectsystem/borrowrecord/action/BorrowRecordAction.java =================================================================== diff -u -r13900 -r13904 --- ssts-web/src/main/java/com/forgon/disinfectsystem/borrowrecord/action/BorrowRecordAction.java (.../BorrowRecordAction.java) (revision 13900) +++ ssts-web/src/main/java/com/forgon/disinfectsystem/borrowrecord/action/BorrowRecordAction.java (.../BorrowRecordAction.java) (revision 13904) @@ -212,7 +212,8 @@ String goodsName = CssdUtils.getDiposableGoodsName(disposableGoodsStock); if (borrowRecord.getId() == null) { //判断高值耗材所在科室是否与当前用户所在科室共用 - if (!StringUtils.equals(borrowRecord.getDepartCode(), invoice.getInvoicePlan().getDepartCoding())) { + if (!StringUtils.equals(AcegiHelper.getLoginUser() + .getCurrentOrgUnitCode(), expensiveDisposablegoods.getLocation())) { message = "{success:false,msg:'该高值耗材不属于" + AcegiHelper .getLoginUser() Index: ssts-web/src/main/java/com/forgon/disinfectsystem/borrowrecord/service/BorrowRecordManagerImpl.java =================================================================== diff -u -r12331 -r13904 --- ssts-web/src/main/java/com/forgon/disinfectsystem/borrowrecord/service/BorrowRecordManagerImpl.java (.../BorrowRecordManagerImpl.java) (revision 12331) +++ ssts-web/src/main/java/com/forgon/disinfectsystem/borrowrecord/service/BorrowRecordManagerImpl.java (.../BorrowRecordManagerImpl.java) (revision 13904) @@ -4,16 +4,22 @@ import java.util.Date; import java.util.List; +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; + import org.apache.commons.lang.StringUtils; import com.forgon.directory.acegi.tools.AcegiHelper; +import com.forgon.directory.model.BarcodeDevice; import com.forgon.disinfectsystem.barcode.service.BarcodeManager; +import com.forgon.disinfectsystem.entity.assestmanagement.ExpensiveDisposablegoods; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; import com.forgon.disinfectsystem.entity.borrowrecord.BorrowRecord; import com.forgon.disinfectsystem.entity.tousseitem.TousseItem; import com.forgon.disinfectsystem.exception.RecyclingRecordException; import com.forgon.disinfectsystem.tousseitem.service.TousseItemManager; import com.forgon.tools.hibernate.ObjectDao; +import com.google.gson.Gson; public class BorrowRecordManagerImpl implements BorrowRecordManager { @@ -46,9 +52,13 @@ throws RecyclingRecordException { String message = "保存成功。"; List tousseItems = new ArrayList(); + //借出及归还的包实例 List lendInstances = new ArrayList(); List returnInstances = new ArrayList(); - for (String item : items.split("@@")) { + //借出及归还的高值耗材 + List lendExpensiveDisposablegoods = new ArrayList(); + List returnExpensiveDisposablegoods = new ArrayList(); + /*for (String item : items.split("@@")) { String id = item.split("##")[0]; String tousseName = item.split("##")[1]; String amount = item.split("##")[2]; @@ -85,7 +95,74 @@ objectDao.saveOrUpdate(tousseInstance); } } + }*/ + + JSONArray jsonArray = JSONArray.fromObject(items); + if(jsonArray == null || jsonArray.size() == 0){ + throw new RuntimeException("未扫描物品"); } + for (int i = 0;i < jsonArray.size();i++) { + JSONObject jsonObject = jsonArray.getJSONObject(i); + String id = jsonObject.optString("id"); + String tousseName = jsonObject.optString("name"); + String amount = jsonObject.optString("amount"); + JSONArray itemsJsonArray = jsonObject.optJSONArray("items"); + TousseItem tousseItem = null; + if (StringUtils.isNotBlank(id)) { + tousseItem = tousseItemManager.getTousseItemById(id); + } else { + tousseItem = new TousseItem(); + } + tousseItem.setTousseName(tousseName); + tousseItem.setAmount(Integer.valueOf(amount)); + tousseItems.add(tousseItem); + if (itemsJsonArray != null && itemsJsonArray.size() > 0) { + for (int j = 0;j < itemsJsonArray.size();j++) { + JSONObject subItemJsonObject = itemsJsonArray.getJSONObject(j); + String barcode = subItemJsonObject.optString("barcode"); + String type = subItemJsonObject.optString("type"); + BarcodeDevice barcodeDevice = barcodeManager.getBarcodeByBarcode(barcode); + if (StringUtils.equals(type, "借用")) { + if(barcodeDevice instanceof TousseInstance){ + TousseInstance tousseInstance = (TousseInstance)barcodeDevice; + tousseInstance + .setLocation(borrowRecord.getDepartCode()); + tousseInstance.setLocationForDisplay(borrowRecord + .getDepartName()); + lendInstances.add(tousseInstance); + }else if (barcodeDevice instanceof ExpensiveDisposablegoods) { + ExpensiveDisposablegoods expensiveDisposablegoods = (ExpensiveDisposablegoods)barcodeDevice; + expensiveDisposablegoods + .setLocation(borrowRecord.getDepartCode()); + expensiveDisposablegoods.setLocationForDisplay(borrowRecord + .getDepartName()); + lendExpensiveDisposablegoods.add(expensiveDisposablegoods); + }else{ + throw new RuntimeException("条码" + barcode + "不为器械包或高值耗材"); + } + } else { + if(barcodeDevice instanceof TousseInstance){ + TousseInstance tousseInstance = (TousseInstance)barcodeDevice; + tousseInstance.setLocation(borrowRecord + .getRentalDepartCode()); + tousseInstance.setLocationForDisplay(borrowRecord + .getRentalDepartName()); + returnInstances.add(tousseInstance); + }else if (barcodeDevice instanceof ExpensiveDisposablegoods) { + ExpensiveDisposablegoods expensiveDisposablegoods = (ExpensiveDisposablegoods)barcodeDevice; + expensiveDisposablegoods + .setLocation(borrowRecord.getDepartCode()); + expensiveDisposablegoods.setLocationForDisplay(borrowRecord + .getDepartName()); + returnExpensiveDisposablegoods.add(expensiveDisposablegoods); + }else{ + throw new RuntimeException("条码" + barcode + "不为器械包或高值耗材"); + } + } + objectDao.saveOrUpdate(barcodeDevice); + } + } + } borrowRecord.setItems(tousseItems); borrowRecord.setLendItems(lendInstances); borrowRecord.setReturnedItems(returnInstances); Index: ssts-web/src/main/webapp/disinfectsystem/borrowRecord/borrowRecordView.jsp =================================================================== diff -u -r12331 -r13904 --- ssts-web/src/main/webapp/disinfectsystem/borrowRecord/borrowRecordView.jsp (.../borrowRecordView.jsp) (revision 12331) +++ ssts-web/src/main/webapp/disinfectsystem/borrowRecord/borrowRecordView.jsp (.../borrowRecordView.jsp) (revision 13904) @@ -44,6 +44,7 @@ +