Index: ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java =================================================================== diff -u -r16975 -r16976 --- ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 16975) +++ ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/service/UseRecordManagerImpl.java (.../UseRecordManagerImpl.java) (revision 16976) @@ -151,7 +151,12 @@ } public void deleteUseRecordById(String id) { - objectDao.delete(getUseRecordById(id)); + UseRecord useRecord = getUseRecordById(id); + if(useRecord != null){ + //删除该使用记录对应的器械包使用记录中间表的数据 + objectDao.excuteSQL("delete from " + TousseInstanceUseRecord.class.getSimpleName() + " where useRecordId=" + id); + objectDao.delete(useRecord); + } } public UseRecord getUseRecordById(String id) { Index: ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/action/UseRecordAction.java =================================================================== diff -u -r16970 -r16976 --- ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/action/UseRecordAction.java (.../UseRecordAction.java) (revision 16970) +++ ssts-userecord/src/main/java/com/forgon/disinfectsystem/useRecord/action/UseRecordAction.java (.../UseRecordAction.java) (revision 16976) @@ -34,6 +34,7 @@ import com.forgon.disinfectsystem.entity.assestmanagement.ExpensiveDisposablegoods; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstanceUseRecord; import com.forgon.disinfectsystem.entity.invoicemanager.Invoice; import com.forgon.disinfectsystem.entity.tousseitem.TousseItem; import com.forgon.disinfectsystem.entity.useRecord.UseDiposableGoodsItem; @@ -520,10 +521,23 @@ .findTousseInstanceListByUseRecordId(Long.valueOf(id)); if (tousseInstances != null) { for (TousseInstance t : tousseInstances) { - if (t.getSignedDate() != null) { - t.setStatus(TousseInstance.STATUS_SIGNED); - } else { - t.setStatus(TousseInstance.STATUS_SHIPPED); + //如果不为聚合包实例时,需要回滚状态至已签收或已发货 + if(!t.isComboTousse()){ + if (t.getSignedDate() != null) { + t.setStatus(TousseInstance.STATUS_SIGNED); + } else { + t.setStatus(TousseInstance.STATUS_SHIPPED); + } + }else{ + //判断有没有被录入到其它使用记录,如果没有,则状态往前回滚 + if(CollectionUtils.isEmpty(objectDao.findBySql(TousseInstanceUseRecord.class.getSimpleName(), + " where tousseInstanceId=" + t.getId() + " and useRecordId <> " + id))){ + if (t.getSignedDate() != null) { + t.setStatus(TousseInstance.STATUS_SIGNED); + } else { + t.setStatus(TousseInstance.STATUS_SHIPPED); + } + } } t.setUseRecord_id(null);// 清除关联关系,并没有把器械包删除 }