Index: ssts-web/src/main/java/com/forgon/disinfectsystem/recall/service/RecallRecordManagerImpl.java =================================================================== diff -u -r17512 -r17761 --- ssts-web/src/main/java/com/forgon/disinfectsystem/recall/service/RecallRecordManagerImpl.java (.../RecallRecordManagerImpl.java) (revision 17512) +++ ssts-web/src/main/java/com/forgon/disinfectsystem/recall/service/RecallRecordManagerImpl.java (.../RecallRecordManagerImpl.java) (revision 17761) @@ -574,13 +574,10 @@ for (int i = 0; i < jsonArray.size(); i++) { List tousseInstances = new ArrayList(); JSONObject jsonObject = jsonArray.getJSONObject(i); - RecallRecordItem recordItem = new RecallRecordItem(); - recordItem.setAmount(jsonObject.getInt("objAmount")); - recordItem.setDepartCode(jsonObject.getString("departCode")); - recordItem.setDepartName(jsonObject.getString("departName")); - recordItem.setRecallRecord(recallRecord); JSONArray array = jsonObject.optJSONArray("children"); + RecallRecordItem recordItem = null; if(array != null){ + int recallAmount = 0;//不统计聚合包内的包实例数量 for (int j = 0; j < array.size(); j++) { JSONObject tousseObj = array.getJSONObject(j); String tousseIds = tousseObj.getString("tousseIds"); @@ -594,6 +591,7 @@ instance.setStatus(TousseInstance.STATUS_WAIT_FOR_RECALL); tousseInstanceManager.saveOrUpdate(instance); tousseInstances.add(instance); + recallAmount++; } //如果是聚合包,则需要将聚合包下的器械包实例都进行召回处理 @@ -610,9 +608,18 @@ } } } + + //只有找到符合待召回条件的包实例时,才能生成召回明细 + if(CollectionUtils.isNotEmpty(tousseInstances)){ + recordItem = new RecallRecordItem(); + recordItem.setAmount(recallAmount); + recordItem.setDepartCode(jsonObject.getString("departCode")); + recordItem.setDepartName(jsonObject.getString("departName")); + recordItem.setRecallRecord(recallRecord); + recordItem.setTousseInstances(tousseInstances); + recallRecord.getItems().add(recordItem); + } } - recordItem.setTousseInstances(tousseInstances); - recallRecord.getItems().add(recordItem); } objectDao.saveOrUpdate(recallRecord); }