Index: ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java =================================================================== diff -u -r34043 -r34067 --- ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 34043) +++ ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 34067) @@ -392,7 +392,7 @@ }else if((StringUtils.isNotBlank(paramMap.get("oldRinserName")) && !StringUtils.equals(washRecord.getDisinfectIdentification(), paramMap.get("oldRinserName"))) || (StringUtils.isNotBlank(paramMap.get("oldDisinfectProgram")) && !StringUtils.equals(washRecord.getDisinfectProgram(), paramMap.get("oldDisinfectProgram")))){ //消耗的参数值为负值;用于返还修改或干预前的耗材消耗; - addConsumptiveMaterialReturnRecord(washRecord); + addConsumptiveMaterialReturnRecord(washRecord, paramMap.get("oldRinserName"), paramMap.get("oldDisinfectProgram")); //清洗机耗材使用:扣除当前清洗机绑定的清洗耗材容器中,该清洗程序需要消耗的耗材种类的耗材数量;生成清洗耗材消耗记录 useRinserConsumptiveMaterial(rinser, washRecord); } @@ -419,13 +419,15 @@ /** * 第一条记录的信息和修改或干预前的记录一样,但消耗的参数值为负值;用于返还修改或干预前的耗材消耗 * @param washRecord + * @param oldDisinfectProgram 修改前清洗程序名称 + * @param oldRinserName 修改前清洗机名称 */ - private void addConsumptiveMaterialReturnRecord(WashAndDisinfectRecord washRecord) { - String sql = String.format("select po from %s po inner join po.details d where d.useAmount > 0 and po.washAndDisinfectRecordId = %s and po.cleanMethod = '%s' and po.rinserId = %s order by po.id desc ", + private void addConsumptiveMaterialReturnRecord(WashAndDisinfectRecord washRecord, String oldRinserName, String oldDisinfectProgram) { + String sql = String.format("select po from %s po inner join po.details d where d.useAmount > 0 and po.washAndDisinfectRecordId = %s and po.cleanMethod = '%s' and po.rinserName = '%s' order by po.id desc ", ConsumptiveMaterialUseRecord.class.getSimpleName(), washRecord.getId(), - washRecord.getDisinfectProgram(), - washRecord.getRinserId()); + oldDisinfectProgram, + oldRinserName); List recordList = objectDao.findByHql(sql, 0, 1); if(CollectionUtils.isNotEmpty(recordList)){ ConsumptiveMaterialUseRecord oldRecord = recordList.get(0);