Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java =================================================================== diff -u -r36614 -r36646 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java (.../RecyclingRecordAction.java) (revision 36614) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/action/RecyclingRecordAction.java (.../RecyclingRecordAction.java) (revision 36646) @@ -463,31 +463,39 @@ if(tousseInstance != null){ message = ""; - TousseDefinition td = tousseInstance.getTousseDefinition(); - String sql = String.format("select max(recyclingRecordId) recyclingRecordId from %s where toussedefinition_id in(%s,%s) " - ,ClassifiedItem.class.getSimpleName(), td.getId(),td.getAncestorID()); - if(isTousseInstanceBarcode){ - sql += " and lastTousseInstanceId="+ tousseInstance.getId() +" "; - }else if(idCardInstance != null){ - sql += " and idCardBarcode='"+ idCardInstance.getBarcode() +"' "; - }else{ - sql += " and 1=2 "; + application = recyclingApplicationManager + .getRecycleApplicationByTousseBarcode(tousseInstance + .getBarcode()); + if(application != null){ + id = application.getId().toString(); } - Long recyclingRecordId = objectDao.getALongNum(sql, "recyclingRecordId"); - if(recyclingRecordId != null && recyclingRecordId > 0){ - jsonObject.put("recyclingRecordId", recyclingRecordId); - if(isTousseInstanceBarcode){//需求没要改扫描标识牌 - message = getRecycledMsg(isTousseInstanceBarcode, tousseInstance, null); - }else{ - message = "该器械包已回收!"; + TousseDefinition td = tousseInstance.getTousseDefinition(); + if(idCardInstance != null){ + RecyclingRecord rr = application.getRecyclingRecord(objectDao);//有回收记录才算回收 + if(rr != null){ + String sql = String.format("select count(*) from %s where recyclingRecordId=%s " + + "and toussedefinition_id in(%s,%s) " + + " and idCardBarcode='"+ idCardInstance.getBarcode() +"' " + ,ClassifiedItem.class.getSimpleName(),rr.getId(), td.getId(),td.getAncestorID()); + if(objectDao.countBySql(sql) > 0){ + message = "该器械包已回收!"; + } } }else{ - application = recyclingApplicationManager - .getRecycleApplicationByTousseBarcode(tousseInstance - .getBarcode()); - if(application != null){ - id = application.getId().toString(); + String sql = String.format("select max(recyclingRecordId) recyclingRecordId from %s where toussedefinition_id in(%s,%s) " + + " and lastTousseInstanceId="+ tousseInstance.getId() +" " + ,ClassifiedItem.class.getSimpleName(), td.getId(),td.getAncestorID()); + Long recyclingRecordId = objectDao.getALongNum(sql, "recyclingRecordId"); + if(DatabaseUtil.isPoIdValid(recyclingRecordId)){ + jsonObject.put("recyclingRecordId", recyclingRecordId); + if(isTousseInstanceBarcode){//需求没要改扫描标识牌 + message = getRecycledMsg(isTousseInstanceBarcode, tousseInstance, null); + }else{ + message = "该器械包已回收!"; + } } + } + if(StringUtils.isBlank(message)){ if(application != null) { if(InvoicePlan.RECYCLINGSTATUS_RECYCLED.equals(application.getRecyclingStatus()) && TousseDefinition.PACKAGE_TYPE_SPLIT.equals(td.getTousseType())){ if(isTousseInstanceBarcode){//需求没要改扫描标识牌