Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java =================================================================== diff -u -r29909 -r30037 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 29909) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 30037) @@ -563,9 +563,11 @@ } } // 是否有装配任务 - if(packingManager.countPackingTaskByInvoicePlan(invoicePlan) > 0){ + /*if(packingManager.countPackingTaskByInvoicePlan(invoicePlan) > 0){ throw new RuntimeException(String.format("申请单%s有待装配的装配任务,不能删除!", invoicePlan.getSerialNumber())); - } + }*/ + deletePackingTask(invoicePlan); + // 是否已经装配了包实例 { String where = String.format(" po.invoicePlanID=%s", invoicePlan.getId()); @@ -595,6 +597,35 @@ return false; } } + + /** + * 临床科室填写器械包申请单,单上只有敷料包,提交后,没装配前,应该允许删除申请单,待装配任务也被删除掉。(BJ307YY-46) + * @param invoicePlan + */ + private void deletePackingTask(InvoicePlan invoicePlan) { + String sql = "where po.sourceId = " + invoicePlan.getId() + " and po.taskType = " + + PackingTask.TASK_APPLICATION ; + @SuppressWarnings("unchecked") + List packingTaskList = objectDao.findBySql(PackingTask.class.getSimpleName(), sql); + List canDelPackingTaskList = new ArrayList(); + if(CollectionUtils.isNotEmpty(packingTaskList)){ + for (PackingTask packingTask : packingTaskList) { + if(StringUtils.equals(packingTask.getTousseDefinition().getTousseType(), TousseDefinition.PACKAGE_TYPE_DRESSING)){ + canDelPackingTaskList.add(packingTask); + } + } + if(canDelPackingTaskList.size() == packingTaskList.size()){ + // 临床科室填写器械包申请单,单上只有敷料包,提交后,没装配前,应该允许删除申请单,待装配任务也被删除掉。(BJ307YY-46) + for (PackingTask packingTask : canDelPackingTaskList) { + packingManager.delete(packingTask, "删除申请单,待装配任务也被删除!"); + } + }else{ + throw new RuntimeException(String.format("申请单%s有待装配的装配任务,不能删除!", invoicePlan.getSerialNumber())); + } + } + } + + @Override public void deleteRecyclingApplication( RecyclingApplication recyclingApplication) {