Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java =================================================================== diff -u -r38856 -r38858 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 38856) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 38858) @@ -9201,18 +9201,18 @@ for (int i = 0; i < delInfoArr.size(); i++) { JSONObject obj = (JSONObject)delInfoArr.get(i); Long classifyBasketId = obj.optLong("classifyBasketId"); - JSONArray tdIdArr = obj.optJSONArray("tdIds"); - Set tdIds = new HashSet(); - for (int j = 0; j < tdIdArr.size(); j++) { - Long tdId = (Long)tdIdArr.optLong(j); - tdIds.add(tdId); - } - List tdList = tousseDefinitionManager.getCollection(tdIds); + JSONArray tousseArr = obj.optJSONArray("tousseArr"); List tousseNames = new ArrayList(); - if(CollectionUtils.isNotEmpty(tdList)){ - checkTousseStatus(recyclingRecordId, tdIds); - for (int k = 0; k < tdList.size(); k++) { - TousseDefinition td = tdList.get(k); + if(CollectionUtils.isNotEmpty(tousseArr)){ + for (int j = 0; j < tousseArr.size(); j++) { + JSONObject tousseObj = tousseArr.getJSONObject(j); + Long tdId = tousseObj.optLong("tdId"); + if(!DatabaseUtil.isPoIdValid(tdId)){ + continue; + } + String idCardInstanceBarcode = tousseObj.optString("idCardInstanceBarcode"); + checkTousseStatus(recyclingRecordId, tdId, idCardInstanceBarcode); + TousseDefinition td = tousseDefinitionManager.get(tdId); if(getAmountOfPacked(recyclingRecordId, td, classifyBasketId) > 0){ tousseNames.add(td.getName()); } @@ -9239,9 +9239,10 @@ /** * 检查回收记录的包状态 是否是已装配 已审核 已灭菌 * @param recyclingRecordId - * @param tdIds + * @param tdId 包定义id + * @param idCardInstanceBarcode 标识牌条码 */ - private void checkTousseStatus(Long recyclingRecordId, Set tdIds){ + private void checkTousseStatus(Long recyclingRecordId, Long tdId, String idCardInstanceBarcode){ String sql = " po.idCardInstanceID is not null and po.recyclingRecordId=" + recyclingRecordId + " and po.status in ('"+ TousseInstance.STATUS_PACKED @@ -9252,7 +9253,8 @@ +"','"+ TousseInstance.STATUS_STERILING +"')" - + " and "+ SqlUtils.getNonStringFieldInLargeCollectionsPredicate("po.tousseDefinition.id", tdIds); + + " and po.tousseDefinition.id = "+ tdId + + (StringUtils.isNotBlank(idCardInstanceBarcode)?" and po.idCardInstanceBarcode='"+ idCardInstanceBarcode +"' ":""); List tis = tousseInstanceManager.getByHql(sql); if(CollectionUtils.isNotEmpty(tis)){ TousseInstance ti = tis.get(0);