Index: ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java =================================================================== diff -u -r34490 -r34506 --- ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 34490) +++ ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 34506) @@ -1180,10 +1180,19 @@ Long classifyBasketID = classifyBasket.getId(); // classifyBasketIDSet.add(classifyBasketID); String sql = String - .format("update packingTask set washTime = '%s',classifyBasket_id = %s ,washRecord_id =%s where basketBarcode like '%%%s%%' and washRecord_id is null", + .format("update packingTask set washTime = '%s',classifyBasket_id = %s ,washRecord_id =%s where basketBarcode like '%%%s%%' " + + "and (washRecord_id is null " + //如果清洗记录进行了重新清洗,装配任务应不再关联清洗失败的清洗记录,并关联重新清洗新增的清洗记录。SSTS-569 + + "or washRecord_id in (select wdr.id from %s wdr join ClassifyBasket_WashRecord cbwr on cbwr.washanddisinfectrecord_id = wdr.id " + + "where cbwr.classifybasket_id = %s and wdr.washstatus = '%s' and wdr.id < %s)" + + ")", washRecord.getStartDateStr(), classifyBasketID, washRecord.getId(), - classifyBasket.getContainerBarcode()); + classifyBasket.getContainerBarcode(), + WashAndDisinfectRecord.class.getSimpleName(), + classifyBasketID, + WashAndDisinfectRecord.STATUS_WASHFAILD, + washRecord.getId()); objectDao.excuteSQL(sql); } // if(classifyBasketIDSet.size() == 0){