Index: ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/action/UseRecordAction.java =================================================================== diff -u -r16976 -r17422 --- ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/action/UseRecordAction.java (.../UseRecordAction.java) (revision 16976) +++ ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/action/UseRecordAction.java (.../UseRecordAction.java) (revision 17422) @@ -167,28 +167,39 @@ useRecord.setDiposableGoodsItems(diposableGoodsList); JSONArray itemsArray = JSONArray.fromObject(items); int size = itemsArray.size(); + BarcodeDevice barcodeDevice = null; for (int i = 0; i < size; ++i) { JSONObject obj = itemsArray.getJSONObject(i); if(obj == null){ throw new RuntimeException("器械包参数错误!"); } String type = obj.optString("tousseType"); + String barcode = JSONUtil.optString(obj,"barcode",""); if("一次性物品".equals(type)){ Long itemId = JSONUtil.optLong(obj,"id",null); UseDiposableGoodsItem di = new UseDiposableGoodsItem(); di.setId(itemId); - String barcode = JSONUtil.optString(obj,"barcode",""); di.setName(obj.optString("showTousseName")); di.setBarcode(barcode); di.setBatchNo(obj.optString("batchNo")); di.setAmount(obj.optInt("amount")); di.setValidUntil(obj.optString("validUntil")); + //根据条码查询对应的一次性物品或高值耗材,并记录最后的一次性物品id + barcodeDevice = barcodeManager.getBarcodeByBarcode(barcode); + if(barcodeDevice instanceof DisposableGoodsBatch || barcodeDevice instanceof ExpensiveDisposablegoods){ + if(barcodeDevice instanceof DisposableGoodsBatch){ + di.setDisposableGoodsId(((DisposableGoodsBatch)barcodeDevice).getDiposableGoods().getId()); + }else if(barcodeDevice instanceof ExpensiveDisposablegoods){ + di.setDisposableGoodsId(((ExpensiveDisposablegoods)barcodeDevice).getDisposableGoodsID()); + } + }else{ + //通常不会有这种情况,此处暂不处理,也不丢弃此数据 + } diposableGoodsList.add(di); }else{ TousseInstance tousseInstance = new TousseInstance(); Long itemId = JSONUtil.optLong(obj,"id",null); tousseInstance.setId(itemId); - String barcode = JSONUtil.optString(obj,"barcode",""); tousseInstance.setBarcode(barcode); tousseInstance.setIsUrgentForUseRecord(JSONUtil.optString(obj, "isUrgentForUseRecord", Constants.STR_NO)); tousseInstance.setActualUsed(JSONUtil.optString(obj, "actualUsed", Constants.STR_YES));