Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java =================================================================== diff -u -r34479 -r34501 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 34479) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 34501) @@ -8471,6 +8471,7 @@ boolean isFixedBarcode = false; JSONObject tousseInstanceOrgUnit = null;//器械包对应的科室,用来回收扫码标识牌或包实例时,自动填入科室。如果包的状态为已使用,则取该包所在的使用记录的录入科室;包的状态为已签收,则取签收科室;包的状态为已发货,则取发货到的科室。 Exception exception = null; + TousseDefinition ancestorTd = null; //扫码回收发货到了科室的包必须是已使用状态 boolean scanBarcodeToRecycleTousseDeliveredToDepartmentMustBeInUsedState; out : if (StringUtils.isNotBlank(barcode)) { @@ -8544,7 +8545,6 @@ errorMessage = "条码"+ barcode +"对应的物品【"+ td.getName() +"】的类型为敷料包,不允许进行回收!"; break out; } - TousseDefinition ancestorTd = null; if(!isFixedBarcode && td.getAncestorID() != null && td.getId().longValue() != td.getAncestorID().longValue()){ ancestorTd = tousseDefinitionManager.get(td.getAncestorID()); } @@ -8658,7 +8658,7 @@ break out; } //祖先包定义也要判断 - TousseDefinition ancestorTd = tousseDefinitionManager.get(tousseDefinition.getAncestorID()); + ancestorTd = tousseDefinitionManager.get(tousseDefinition.getAncestorID()); //判断标识牌对应的器械包定义数据是否存在,如果不存在则提示 if(ancestorTd == null){ errorMessage = "未找到该标识牌所属的器械包祖先定义"; @@ -8844,6 +8844,11 @@ map.put("orgUnit", orgUnit); map.put("basket", classifyBasket); map.put("containerStatus", classifyBasket == null?"":classifyBasket.getContainerStatus()); + TousseDefinition oldTd = null; + if(ancestorTd != null && TousseDefinition.PACKAGE_TYPE_DISINFECTION.equals(ancestorTd.getTousseType())){ + oldTd = tousseInstance.getTousseDefinition(); + tousseInstance.setTousseDefinition(ancestorTd); + } map.put("tousseInstance", tousseInstance); map.put("user", buildUserJSONObjectForGetBarcodeInfo(user)); boolean success = true; @@ -8868,6 +8873,9 @@ map.put("isFixedBarcode", isFixedBarcode); map.put("tousseInstanceOrgUnit", tousseInstanceOrgUnit); map.put("resultObj", JSONObject.fromObject(map, config)); + if(ancestorTd != null && TousseDefinition.PACKAGE_TYPE_DISINFECTION.equals(ancestorTd.getTousseType())){ + tousseInstance.setTousseDefinition(oldTd);//以防万一上面的代码会因为缓存修改到数据库 此处还原包定义 + } if(exception != null){//因为resultObj需要一些节点信息,所以异常放到最后抛出 throw exception; }