Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r18576 -r18727 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 18576) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 18727) @@ -3449,9 +3449,18 @@ long foreignTousseApp_id = 0; if (td.isForeignOrSplitTousse()) { Long foreignTousseApplicationID = td.getInvoicePlanID(); - foreignTousseApplication = (ForeignTousseApplication) objectDao.getByProperty_ForUpdate( - ForeignTousseApplication.class.getSimpleName(), "id",foreignTousseApplicationID); - foreignTousseApp_id = foreignTousseApplication.getId().longValue(); + if(foreignTousseApplicationID != null){ + foreignTousseApplication = (ForeignTousseApplication) objectDao.getByProperty_ForUpdate( + ForeignTousseApplication.class.getSimpleName(), "id",foreignTousseApplicationID); + foreignTousseApp_id = foreignTousseApplication.getId().longValue(); + }else{ + // 包定义的申请单为空时,如果是质量监测重装的任务,到任务里面找申请单id,这个申请单的id来源于废弃包实例的申请单 + if(PackingTask.TASK_QUALITY_MONITOR.equals(currentPackingTask.getTaskType())){ + foreignTousseApplication = (ForeignTousseApplication) objectDao.getByProperty_ForUpdate( + ForeignTousseApplication.class.getSimpleName(), "id",currentPackingTask.getRpInvoicePlanId()); + foreignTousseApp_id = foreignTousseApplication.getId().longValue(); + } + } } // 消毒物品 else if (td.isDisinfection()) { @@ -4615,9 +4624,11 @@ // 外来器械包,外来器械拆分小包关联外来器械申请单 if (TousseDefinition.PACKAGE_TYPE_FOREIGN.equals(tousseType) || TousseDefinition.PACKAGE_TYPE_SPLIT.equals(tousseType)) { // 关联外来器械申请单 - tousseInstance.setForeignTousseApp_id(foreignTousseApplication - .getId()); - tousseInstance.setInvoicePlanID(foreignTousseApplication.getId()); + if(foreignTousseApplication != null){ + tousseInstance.setForeignTousseApp_id(foreignTousseApplication + .getId()); + tousseInstance.setInvoicePlanID(foreignTousseApplication.getId()); + } } // 根据装配任务设置器械包实例我的申请单id或回收单id