Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java =================================================================== diff -u -r17315 -r17330 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 17315) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 17330) @@ -25,6 +25,7 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; +import org.apache.commons.beanutils.ConvertUtils; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; @@ -2681,17 +2682,21 @@ return null; } + @Override - public JSONObject judgeCanDelete(TousseDefinition tousseDefinition) { - String tousseType = tousseDefinition.getTousseType(); - JSONObject jsonObject = new JSONObject(); - //如果不是新增且属于器械包或者敷料包,则从聚合包那里查找,该器械包是否已经被配置成聚合包下的器械包,如果有,则不让删除 - if (tousseDefinition.getId() != null && (TousseDefinition.PACKAGE_TYPE_INSIDE.equals(tousseType) || TousseDefinition.PACKAGE_TYPE_DRESSING.equals(tousseType)) - && comboTousseManagerImpl.getComboTousseTdByTdId(tousseDefinition.getId()).size() > 0){ - jsonObject.put("success", false); - jsonObject.put("cause", "删除失败:物品[" + tousseDefinition.getName() + "]已经被配置成聚合包下的器械包了!"); - return jsonObject; + public JSONObject judgeCanDelete(String[] ids) { + Long[] tousseDefinitionIds = (Long[]) ConvertUtils.convert(ids, Long.class); + //如果该器械包是器械包或者敷料包且被配置成聚合包下的器械包,则不让删除 + String hql = "select po.name from TousseDefinition po,ComboTousseComposite ctc where po.id in (:ids) and po.id = ctc.tousseDefinitionId and (po.tousseType = :tousseType or po.tousseType = :tousseType2) "; + // String hql = "select po.name from TousseDefinition po where po.id in (:ids) and (po.tousseType = :tousseType or po.tousseType = :tousseType2) and po.id in (select tousseDefinitionId from ComboTousseComposite)"; + List list = objectDao.getHibernateSession().createQuery(hql).setParameterList("ids", tousseDefinitionIds).setParameter("tousseType", TousseDefinition.PACKAGE_TYPE_INSIDE).setParameter("tousseType2", TousseDefinition.PACKAGE_TYPE_DRESSING).list(); + logger.debug(list); + if (list.size() == 0){ + return null; } - return null; + JSONObject jsonObject = new JSONObject(); + jsonObject.put("success", false); + jsonObject.put("cause", "删除失败:物品" + list + "已经被配置成聚合包下的器械包了!"); + return jsonObject; } } Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java =================================================================== diff -u -r17315 -r17330 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java (.../TousseDefinitionManager.java) (revision 17315) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java (.../TousseDefinitionManager.java) (revision 17330) @@ -427,11 +427,12 @@ */ JSONObject judgeCanUpdate(TousseDefinition tousseDefinition); + /** * 判断该器械包是否能被删除 - * @param tousseDefinition + * @param ids 器械包的id列表 * @return 如果返回值不是空,则不能进行删除,返回值是一个json对象,有success和cause属性 */ - JSONObject judgeCanDelete(TousseDefinition tousseDefinition); + JSONObject judgeCanDelete(String[] ids); } Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java =================================================================== diff -u -r17315 -r17330 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 17315) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 17330) @@ -893,13 +893,11 @@ try { if (StringUtils.isNotBlank(idStr)) { String[] str = idStr.split(";"); - //先遍历一次,看看有没有不符合删除的要求,如果有则直接返回页面给出提示,不进行删除 - for (String id : str) { - JSONObject tip = tousseDefinitionManager.judgeCanDelete(tousseDefinitionManager.getTousseDefinitionById(id)); - if (tip != null){ - StrutsResponseUtils.output(tip); - return; - } + //判断是否能删除该器械包 + JSONObject tip = tousseDefinitionManager.judgeCanDelete(str); + if (tip != null){ + StrutsResponseUtils.output(tip); + return; } for (String id : str) { isExist = tousseDefinitionManager.deleteTousseDefinitionById(id);