Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java =================================================================== diff -u -r16927 -r16952 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 16927) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 16952) @@ -25,6 +25,7 @@ import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.ComboTousseComposite; import com.forgon.disinfectsystem.goodFilterConfig.service.GoodFilterConfigManager; import com.forgon.disinfectsystem.tousse.comboTousse.service.ComboTousseManager; import com.forgon.disinfectsystem.tousse.cssdhandletousses.service.CssdHandleTousseManager; @@ -329,6 +330,14 @@ * 保存 */ public void saveTousseDefinition() { + JSONObject tip = tousseDefinitionManager.judgeCanUpdate(tousseDefinition); + if (tip != null){ + //如果不为空,则表示不能更新,所以要把原来的tousseType设置回去 + tousseDefinition.setTousseType(origineTd.getTousseType()); + objectDao.saveOrUpdate(tousseDefinition); + StrutsResponseUtils.output(tip); + return; + } String msg = "{success:true,message:\"保存成功!\"}"; String time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); LoginUserData loginUserData = AcegiHelper.getLoginUser(); @@ -375,37 +384,35 @@ } } + String tousseType = tousseDefinition.getTousseType(); //如果是聚合包,则清空他的任务组 - if (TousseDefinition.PACKAGE_TYPE_COMBO.equals(tousseDefinition.getTousseType())){ + if (TousseDefinition.PACKAGE_TYPE_COMBO.equals(tousseType)){ tousseDefinition.setTaskGroup(null); } tousseDefinitionManager.saveTousseDefinition(tousseDefinition, upload,null,null); - if (TousseDefinition.PACKAGE_TYPE_COMBO.equals(tousseDefinition.getTousseType())){ - // String motion = StrutsParamUtils.getPraramValue("motion", null); - // if (StringUtils.isNotBlank(motion) && "comboTousse".equals(motion)){ - //聚合包的所属科室用了handlerDepartName和handlerCode,所以聚合包的处理科室用cssdCode和cssdName来传值 - String cssdCode = StrutsParamUtils.getPraramValue("cssdCode", null); - String cssdName = StrutsParamUtils.getPraramValue("cssdName", null); - String taskGroup = StrutsParamUtils.getPraramValue("taskGroup", null); - String comboTousseArray = StrutsParamUtils.getPraramValue("comboTousseArray", null); - comboTousseManagerImpl.saveOrUpdateComboTousses(comboTousseArray, tousseDefinition, newTousse); - - //添加相应的供应室处理器械包配置 - Long id = tousseDefinition.getId(); - List cssdHandleTousses = cssdHandleTousseManager.getByHql("tousseDefinitionId=" + id); - CssdHandleTousses cssdHandleTousse = CollectionUtils.isEmpty(cssdHandleTousses) ? new CssdHandleTousses() : cssdHandleTousses.get(0); - cssdHandleTousse.setOrgUnitCode(cssdCode); - cssdHandleTousse.setOrgUnitName(cssdName); - cssdHandleTousse.setSpelling(GB2Alpha.string2Alpha(tousseDefinition.getName())); - cssdHandleTousse.setWbCode(GB2WB.getWBCode(tousseDefinition.getName())); - cssdHandleTousse.setTaskGroup(taskGroup); - cssdHandleTousse.setTousseDefinitionId(id); - cssdHandleTousse.setTousseName(tousseDefinition.getName()); - cssdHandleTousseManager.save(cssdHandleTousse); - // } + if (TousseDefinition.PACKAGE_TYPE_COMBO.equals(tousseType)){ + //聚合包的所属科室用了handlerDepartName和handlerCode,所以聚合包的处理科室用cssdCode和cssdName来传值 + String cssdCode = StrutsParamUtils.getPraramValue("cssdCode", null); + String cssdName = StrutsParamUtils.getPraramValue("cssdName", null); + String taskGroup = StrutsParamUtils.getPraramValue("taskGroup", null); + String comboTousseArray = StrutsParamUtils.getPraramValue("comboTousseArray", null); + comboTousseManagerImpl.saveOrUpdateComboTousses(comboTousseArray, tousseDefinition, newTousse); + + //添加相应的供应室处理器械包配置 + Long id = tousseDefinition.getId(); + List cssdHandleTousses = cssdHandleTousseManager.getByHql("tousseDefinitionId=" + id); + CssdHandleTousses cssdHandleTousse = CollectionUtils.isEmpty(cssdHandleTousses) ? new CssdHandleTousses() : cssdHandleTousses.get(0); + cssdHandleTousse.setOrgUnitCode(cssdCode); + cssdHandleTousse.setOrgUnitName(cssdName); + cssdHandleTousse.setSpelling(GB2Alpha.string2Alpha(tousseDefinition.getName())); + cssdHandleTousse.setWbCode(GB2WB.getWBCode(tousseDefinition.getName())); + cssdHandleTousse.setTaskGroup(taskGroup); + cssdHandleTousse.setTousseDefinitionId(id); + cssdHandleTousse.setTousseName(tousseDefinition.getName()); + cssdHandleTousseManager.save(cssdHandleTousse); } if(newTousse && (tousseDefinition.isInsideTousse() @@ -422,8 +429,7 @@ CssdHandleTousses cssdHandleTousses = (CssdHandleTousses)objectDao.getBySql(CssdHandleTousses.class.getSimpleName(), " where tousseDefinitionId = " + tousseDefinition.getAncestorID() + " and orgUnitCode = '" + tousseDefinition.getHandlerDepartCode() + "'"); - String tousseType = tousseDefinition.getTousseType(); - if(cssdHandleTousses == null && (TousseDefinition.PACKAGE_TYPE_INSIDE.equals(tousseType) + if(cssdHandleTousses == null && (TousseDefinition.PACKAGE_TYPE_INSIDE.equals(tousseType) || TousseDefinition.PACKAGE_TYPE_DISINFECTION.equals(tousseType) || TousseDefinition.PACKAGE_TYPE_DRESSING.equals(tousseType))){ tousseDefinitionManager.addCssdHandleToussesConfig(tousseDefinition); @@ -441,7 +447,6 @@ } } catch (Exception e) { msg = "{success:false,message:\"保存失败:" + e.getCause().getMessage() + "\"}"; - // msg = "{success:false,message:\"保存失败!\"}"; e.printStackTrace(); } } @@ -880,7 +885,15 @@ 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; + } + } + for (String id : str) { isExist = tousseDefinitionManager.deleteTousseDefinitionById(id); } if(isExist){ Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java =================================================================== diff -u -r16919 -r16952 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java (.../TousseDefinitionManager.java) (revision 16919) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java (.../TousseDefinitionManager.java) (revision 16952) @@ -388,4 +388,19 @@ * 加载所有的聚合包定义,聚合包量比较小,暂时不考虑拼音五笔码检索 */ public JSONArray loadAllComboTousseDefinition(); + + /** + * 判断该器械包是否能被更新 + * @param tousseDefinition {@link TousseDefinition} + * @return 如果返回值不是空,则不能进行更新,返回值是一个json对象,有success和message属性 + */ + JSONObject judgeCanUpdate(TousseDefinition tousseDefinition); + + /** + * 判断该器械包是否能被删除 + * @param tousseDefinition + * @return 如果返回值不是空,则不能进行删除,返回值是一个json对象,有success和cause属性 + */ + JSONObject judgeCanDelete(TousseDefinition tousseDefinition); + } Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/comboTousse/service/ComboTousseManagerImpl.java =================================================================== diff -u -r16931 -r16952 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/comboTousse/service/ComboTousseManagerImpl.java (.../ComboTousseManagerImpl.java) (revision 16931) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/comboTousse/service/ComboTousseManagerImpl.java (.../ComboTousseManagerImpl.java) (revision 16952) @@ -143,6 +143,13 @@ } } + + @Override + public List getComboTousseTdByTdId(Long tousseDefinitionId) { + String hql = "from ComboTousseComposite where tousseDefinitionId = ?"; + return (List) objectDao.findHqlByParam(hql, new Object[]{tousseDefinitionId}, -1, -1, ComboTousseComposite.class); + } + /** * 处理要添加 * Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/comboTousse/service/ComboTousseManager.java =================================================================== diff -u -r16927 -r16952 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/comboTousse/service/ComboTousseManager.java (.../ComboTousseManager.java) (revision 16927) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/comboTousse/service/ComboTousseManager.java (.../ComboTousseManager.java) (revision 16952) @@ -1,5 +1,6 @@ package com.forgon.disinfectsystem.tousse.comboTousse.service; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.ComboTousseComposite; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import java.util.List; @@ -44,4 +45,13 @@ */ void deleteComboTousseByComboTid(String comboTIds); + /** + * 根据tousseDefinitionId来查找ComboTousseComposite,查找出包含这些器械包的聚合包 + * + * @param tousseDefinitionId 器械包的id + * @return + */ + List getComboTousseTdByTdId(Long tousseDefinitionId); + + } Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java =================================================================== diff -u -r16929 -r16952 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 16929) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 16952) @@ -19,6 +19,7 @@ import com.forgon.disinfectsystem.goodFilterConfig.enums.ListType; import com.forgon.disinfectsystem.goodFilterConfig.service.GoodFilterConfigManager; +import com.forgon.disinfectsystem.tousse.comboTousse.service.ComboTousseManager; import com.forgon.tools.SqlBuilder; import net.sf.json.JSONArray; import net.sf.json.JSONObject; @@ -102,11 +103,18 @@ private GoodFilterConfigManager goodFilterConfigManagerImpl; + private ComboTousseManager comboTousseManagerImpl; + + public TousseDefinitionManagerImpl() { super(TousseDefinition.class); // TODO Auto-generated constructor stub } + public void setComboTousseManagerImpl(ComboTousseManager comboTousseManagerImpl) { + this.comboTousseManagerImpl = comboTousseManagerImpl; + } + public void setGoodFilterConfigManagerImpl(GoodFilterConfigManager goodFilterConfigManagerImpl) { this.goodFilterConfigManagerImpl = goodFilterConfigManagerImpl; } @@ -2681,4 +2689,31 @@ return array; } + @Override + public JSONObject judgeCanUpdate(TousseDefinition tousseDefinition) { + String tousseType = tousseDefinition.getTousseType(); + JSONObject jsonObject = new JSONObject(); + //如果不是新增且类型不是聚合包,器械包,敷料包,则从聚合包那里查找,该器械包是否已经被配置成聚合包下的器械包,则不让更新 + if (tousseDefinition.getId() != null && !TousseDefinition.PACKAGE_TYPE_COMBO.equals(tousseType) && !TousseDefinition.PACKAGE_TYPE_INSIDE.equals(tousseType) && !TousseDefinition.PACKAGE_TYPE_DRESSING.equals(tousseType) + && comboTousseManagerImpl.getComboTousseTdByTdId(tousseDefinition.getId()).size() > 0){ + jsonObject.put("success", false); + jsonObject.put("message", "保存失败:该物品已经被配置成聚合包下的器械包了!"); + return jsonObject; + } + 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; + } + return null; + } }