Index: ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/action/UseRecordAction.java =================================================================== diff -u -r24429 -r24505 --- ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/action/UseRecordAction.java (.../UseRecordAction.java) (revision 24429) +++ ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/action/UseRecordAction.java (.../UseRecordAction.java) (revision 24505) @@ -356,9 +356,12 @@ appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_USERECORD, "新增或修改使用记录", "id=" + id + ",useRecord=" + useRecord.toString()); JSONUtil.addSuccess(json, true); - } catch (Exception e) { + } catch (RuntimeException e) { e.printStackTrace(); JSONUtil.addMessage(json, e.getMessage()); + } catch (Exception e) { + e.printStackTrace(); + JSONUtil.addMessage(json, "操作失败"); } StrutsResponseUtils.output(json); } Index: ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/action/UseRecordActionBase.java =================================================================== diff -u -r24429 -r24505 --- ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/action/UseRecordActionBase.java (.../UseRecordActionBase.java) (revision 24429) +++ ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/action/UseRecordActionBase.java (.../UseRecordActionBase.java) (revision 24505) @@ -140,6 +140,14 @@ } String type = obj.optString("tousseType"); String barcode = JSONUtil.optString(obj,"barcode",""); + if(StringUtils.isBlank(barcode)){ + throw new RuntimeException("barcode参数不能为空!"); + } + //根据条码查询对应的物品(器械包、一次性物品或高值耗材),并记录最后的一次性物品id + barcodeDevice = barcodeManager.getBarcodeByBarcode(barcode); + if(barcodeDevice == null){ + throw new RuntimeException("未找到条码数据!"); + } if(DisposableGoods.TYPE_NAME.equals(type)){ Long itemId = JSONUtil.optLong(obj,"id",null); UseDiposableGoodsItem di = new UseDiposableGoodsItem(); @@ -149,8 +157,7 @@ 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()); @@ -180,11 +187,14 @@ } }else{ + TousseInstance orginalTousseInstance = (TousseInstance)barcodeDevice; tousseInstanceUseRecordSortNumber++; //包实例id(非聚合包内的子包id都有值,如果没有值一般为聚合包内的子包) - Long itemId = JSONUtil.optLong(obj,"id",null); - if(DatabaseUtil.isPoIdValid(itemId)){ - TousseInstance orginalTousseInstance = tousseInstanceManager.get(itemId); + //Long itemId = JSONUtil.optLong(obj,"id",null); + //if(DatabaseUtil.isPoIdValid(itemId)){ + Long itemId = orginalTousseInstance.getId(); + if(!DatabaseUtil.isPoIdValid(orginalTousseInstance.getComboTousseInstanceId())){ + //TousseInstance orginalTousseInstance = tousseInstanceManager.get(itemId); TousseInstance tousseInstance = new TousseInstance(); tousseInstance.setId(itemId); tousseInstance.setTousseDefinition(orginalTousseInstance.getTousseDefinition());