Index: ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java =================================================================== diff -u -r20284 -r20288 --- ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 20284) +++ ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 20288) @@ -252,6 +252,9 @@ throw new RuntimeException("病人姓名为"+ patientName +"的使用记录已经转换为申请单,不能删除."); } + //根据使用记录的外来器械包实例的找到原单 + Set foreignTousseApplicationSet = null; + //该使用记录所有的包实例 List tousseInstances = tousseInstanceManager .findTousseInstanceListByUseRecordId(Long.valueOf(useRecordId)); @@ -285,7 +288,29 @@ JSONUtil.modifyPropertyLog(item, "status", oldStatus, tousseInstance.getStatus()); JSONUtil.modifyPropertyLog(item, "useRecord_id", oldUseRecord_id, tousseInstance.getUseRecord_id()); tousseUpdateInfo.add(item); + + //判断是否外来器械 + if(tousseInstance.getTousseDefinition().isForeignOrSplitTousse()){ + foreignTousseApplicationSet = new HashSet(); + ForeignTousseApplication foreignTousseApplication = foreignTousseApplicationManager.get(tousseInstance.getForeignTousseApp_id()); + if(foreignTousseApplication != null){ + foreignTousseApplicationSet.add(foreignTousseApplication); + } + } } + + if(CollectionUtils.isNotEmpty(foreignTousseApplicationSet)){ + for (ForeignTousseApplication tempForeignTousseApplication : foreignTousseApplicationSet) { + String orginalRemark = tempForeignTousseApplication.getRemark(); + String newRemark = (orginalRemark == null ? "" : orginalRemark + ";") + + "病人名称为"+ patientName +"的使用记录已于"+ nowDateTimeIncludeHms +"被"+ currentOperator +"删除"; + tempForeignTousseApplication.setRemark(newRemark); + if(tempForeignTousseApplication.recyclingStatusAwaitRecycle()){ + tempForeignTousseApplication.setRecyclingStatus(ForeignTousseApplication.APPLICATION_STATUS_SIGNED); + } + objectDao.saveOrUpdate(tempForeignTousseApplication); + } + } } //该使用记录所有的一次性物品 @@ -307,10 +332,10 @@ //如果使用记录已经转换申请单,则需要进行以下处理 if(useRecord.isApplied()){ //查出该使用记录对应关联的申请单,并将其使用记录的外键置空 - List recyclingApplicationListList = + List recyclingApplicationList = objectDao.findBySql_ForUpdate(RecyclingApplication.class.getSimpleName(), " where useRecord.id=" + useRecordId); - if(CollectionUtils.isNotEmpty(recyclingApplicationListList)){ - for (RecyclingApplication recyclingApplication : recyclingApplicationListList) { + if(CollectionUtils.isNotEmpty(recyclingApplicationList)){ + for (RecyclingApplication recyclingApplication : recyclingApplicationList) { recyclingApplication.setUseRecord(null); objectDao.saveOrUpdate(recyclingApplication); } @@ -320,8 +345,8 @@ List allRecyclingApplicationListList = objectDao.findBySql_ForUpdate(RecyclingApplication.class.getSimpleName(), " where id in (select invoicePlanId from "+ UseRecordToRecycleApplication.class.getSimpleName() +" where useRecordId="+ useRecordId +")"); - if(CollectionUtils.isNotEmpty(recyclingApplicationListList)){ - for (RecyclingApplication recyclingApplication : recyclingApplicationListList) { + if(CollectionUtils.isNotEmpty(recyclingApplicationList)){ + for (RecyclingApplication recyclingApplication : recyclingApplicationList) { String orginalRemark = recyclingApplication.getRemark(); String newRemark = (orginalRemark == null ? "" : orginalRemark + ";") + "病人名称为"+ patientName +"的使用记录已于"+ nowDateTimeIncludeHms +"被"+ currentOperator +"删除";