Index: ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/instance/service/QualityMonitoringInstanceManagerImpl.java =================================================================== diff -u -r32333 -r32388 --- ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/instance/service/QualityMonitoringInstanceManagerImpl.java (.../QualityMonitoringInstanceManagerImpl.java) (revision 32333) +++ ssts-qualitymon/src/main/java/com/forgon/disinfectsystem/qualitymonitoring/instance/service/QualityMonitoringInstanceManagerImpl.java (.../QualityMonitoringInstanceManagerImpl.java) (revision 32388) @@ -638,7 +638,7 @@ if(isRecycle && !saved){ //重新回收,已经保存过不处理 if(isAll){ // 判断灭菌记录是否整炉重新回收 - if(isAllTousseOfSterileRecycle(sterilizeRecordId)){ + if(isAllTousseOfSterileRecycle(sterilizeRecordId, qmInstance.getId())){ throw new SystemException("灭菌记录整炉物品已经重新回收,不允许再次勾选重新回收!"); } List tousseInstances = getCanRecycleAndRepackingTousseInstances(sterilizeRecordId); @@ -656,7 +656,7 @@ ret = "已生成装配任务"; } }else{ - if(isTousseInstanceRecycle(tousseInstanceId)){ + if(isTousseInstanceRecycle(tousseInstanceId, qmInstance.getId())){ TousseInstance tousseInstance = tousseInstanceManager.get(tousseInstanceId); throw new SystemException(tousseInstance.getTousseName() + "已经重新回收,不允许再次勾选重新回收!"); } @@ -665,12 +665,12 @@ }else if(isRepacking && !saved){ //重新装配,已经保存过不处理 if(isAll){ // 判断灭菌记录是否整炉重新装配 - if(isAllTousseOfSterileRepacking(sterilizeRecordId)){ + if(isAllTousseOfSterileRepacking(sterilizeRecordId, qmInstance.getId())){ throw new SystemException("灭菌记录整炉物品已经重新装配,不允许再次勾选重新装配!"); } packingManager.createPackingTaskForRepacking(getCanRecycleAndRepackingTousseInstances(sterilizeRecordId)); }else{ - if(isTousseInstanceRepacking(Long.valueOf(tousseInstanceId))){ + if(isTousseInstanceRepacking(Long.valueOf(tousseInstanceId), qmInstance.getId())){ TousseInstance tousseInstance = tousseInstanceManager.get(tousseInstanceId); throw new SystemException(tousseInstance.getTousseName() + "已经重新装配,不允许再次勾选重新装配!"); } @@ -695,15 +695,15 @@ if( order != 1){ // 顺序为1的第一个器械包,已经处理 if("是".equals(qmgProperty[4])){ - if(isTousseInstanceRecycle(tId)){ + if(isTousseInstanceRecycle(tId, qmInstance.getId())){ TousseInstance tousseInstance = tousseInstanceManager.get(tId); throw new SystemException(tousseInstance.getTousseName() + "已经重新回收,不允许再次勾选重新回收!"); } // 重新回收 ret = recyclingApplicationManager.recycleTousseInstance(tId , cssdOrgUnit); }else if("是".equals(qmgProperty[5])){ // 重新装配 - if(isTousseInstanceRepacking(Long.valueOf(tId))){ + if(isTousseInstanceRepacking(Long.valueOf(tId), qmInstance.getId())){ TousseInstance tousseInstance = tousseInstanceManager.get(tId); throw new SystemException(tousseInstance.getTousseName() + "已经重新装配,不允许再次勾选重新装配!"); } @@ -732,28 +732,17 @@ * @param sterilizeRecordId * @return */ - private boolean isAllTousseOfSterileRepacking(String sterilizeRecordId) { + private boolean isAllTousseOfSterileRepacking(String sterilizeRecordId, Long qmInstanceId) { boolean ret = false; if(!DatabaseUtil.isPoIdValid(sterilizeRecordId)){ return ret; } String sql = " select count(*) from " + QualityMonitoringInstance.class.getSimpleName() + " qmi " + " where qmi.isAllTousseOfSterile = '是' and qmi.isRepacking = '是' and qmi.sterilizationRecordId in (" + sterilizeRecordId - + ")" ; - ResultSet rs = objectDao.executeSql(sql); - int amount = 0; - if (rs != null) { - try { - while (rs.next()) { - amount = rs.getInt(1); - } - } catch (Exception e) { - e.printStackTrace(); - } finally { - DatabaseUtil.closeResultSetAndStatement(rs); - } - } + + ") and qmi.id <> " + + qmInstanceId; + int amount = objectDao.countBySql(sql); if(amount > 0){ ret = true; } @@ -765,28 +754,17 @@ * @param sterilizeRecordId * @return */ - private boolean isAllTousseOfSterileRecycle(String sterilizeRecordId) { + private boolean isAllTousseOfSterileRecycle(String sterilizeRecordId, Long qmInstanceId) { boolean ret = false; if(!DatabaseUtil.isPoIdValid(sterilizeRecordId)){ return ret; } String sql = " select count(*) from " + QualityMonitoringInstance.class.getSimpleName() + " qmi " + " where qmi.isAllTousseOfSterile = '是' and qmi.isRecycle = '是' and qmi.sterilizationRecordId in (" + sterilizeRecordId - + ")" ; - ResultSet rs = objectDao.executeSql(sql); - int amount = 0; - if (rs != null) { - try { - while (rs.next()) { - amount = rs.getInt(1); - } - } catch (Exception e) { - e.printStackTrace(); - } finally { - DatabaseUtil.closeResultSetAndStatement(rs); - } - } + + ") and qmi.id <> " + + qmInstanceId; + int amount = objectDao.countBySql(sql); if(amount > 0){ ret = true; } @@ -798,28 +776,17 @@ * @param tousseInstanceId * @return */ - private boolean isTousseInstanceRecycle(String tousseInstanceId) { + private boolean isTousseInstanceRecycle(String tousseInstanceId, Long qmInstanceId) { boolean ret = false; if(!DatabaseUtil.isPoIdValid(tousseInstanceId)){ return ret; } String sql = " select count(*) from " + QualityMonitoringGoods.class.getSimpleName() + " qmg " + " where qmg.isRecycle = '是' and qmg.tousseInstanceId in (" + tousseInstanceId - + ")" ; - ResultSet rs = objectDao.executeSql(sql); - int amount = 0; - if (rs != null) { - try { - while (rs.next()) { - amount = rs.getInt(1); - } - } catch (Exception e) { - e.printStackTrace(); - } finally { - DatabaseUtil.closeResultSetAndStatement(rs); - } - } + + ") and qmg.qualityMonitoringInstance_id <> " + + qmInstanceId; + int amount = objectDao.countBySql(sql); if(amount > 0){ ret = true; } @@ -831,28 +798,17 @@ * @param tousseInstanceId * @return */ - private boolean isTousseInstanceRepacking(Long tousseInstanceID) { + private boolean isTousseInstanceRepacking(Long tousseInstanceID, Long qmInstanceId) { boolean ret = false; if(!DatabaseUtil.isPoIdValid(tousseInstanceID)){ return ret; } String sql = " select count(*) from " + QualityMonitoringGoods.class.getSimpleName() + " qmg " - + " where qmg.isRepacking = '是' and qmg.tousseInstanceId in (" + + " where qmg.isRepacking = '是' and qmg.tousseInstanceId in ('" + tousseInstanceID - + ")" ; - ResultSet rs = objectDao.executeSql(sql); - int amount = 0; - if (rs != null) { - try { - while (rs.next()) { - amount = rs.getInt(1); - } - } catch (Exception e) { - e.printStackTrace(); - } finally { - DatabaseUtil.closeResultSetAndStatement(rs); - } - } + + ") and qmg.qualityMonitoringInstance_id <> " + + qmInstanceId; + int amount = objectDao.countBySql(sql); if(amount > 0){ ret = true; }