Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialdefinition/action/MaterialDefinitionAction.java =================================================================== diff -u -r14590 -r14942 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialdefinition/action/MaterialDefinitionAction.java (.../MaterialDefinitionAction.java) (revision 14590) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/materialdefinition/action/MaterialDefinitionAction.java (.../MaterialDefinitionAction.java) (revision 14942) @@ -165,27 +165,42 @@ } /** - * 保存MaterialDefinition + * 保存MaterialDefinition TODO 此处代码应该移到manager里面 */ public String saveMaterialDefinition() { - if (materialDefinition != null) { - if (!DatabaseUtil.isPoIdValid(materialDefinition.getId())) { - materialDefinition.setId(null); + JSONObject obj = new JSONObject(); + + if (!DatabaseUtil.isPoIdValid(materialDefinition.getId())) { + materialDefinition.setId(null); + } + try { + Long id = materialDefinition.getId(); + String idStr = null; + if(id != null){ + idStr = id.toString(); } - try { - // 设置拼音码、五笔码 - materialDefinition.setSpelling(GB2Alpha - .string2Alpha(materialDefinition.getName())); - materialDefinition.setWbCode(GB2WB.getWBCode(materialDefinition - .getName())); - if (StringUtils.isBlank(materialDefinition.getSpecification())) { - materialDefinition.setSpecification(null); - } - materialDefinitionManager.saveOrUpdate(materialDefinition); - } catch (Exception e) { - e.printStackTrace(); + boolean result = materialDefinitionManager.verifyMaterialDefinition(idStr, + materialDefinition.getName(), materialDefinition.getSpecification()); + if (!result) { + throw new RuntimeException("已存在相同名称的材料!"); } + // 设置拼音码、五笔码 + materialDefinition.setSpelling(GB2Alpha + .string2Alpha(materialDefinition.getName())); + materialDefinition.setWbCode(GB2WB.getWBCode(materialDefinition + .getName())); + if (StringUtils.isBlank(materialDefinition.getSpecification())) { + materialDefinition.setSpecification(null); + } + materialDefinitionManager.saveOrUpdate(materialDefinition); + obj.put("success", true); + obj.put("msg", "保存成功!"); + } catch (Exception e) { + e.printStackTrace(); + obj.put("success", false); + obj.put("msg", e.getMessage()); } + StrutsResponseUtils.output(obj); return null; } Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/materialDefinition/materialDefinitionForm.js =================================================================== diff -u -r14519 -r14942 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/materialDefinition/materialDefinitionForm.js (.../materialDefinitionForm.js) (revision 14519) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/materialDefinition/materialDefinitionForm.js (.../materialDefinitionForm.js) (revision 14942) @@ -713,37 +713,29 @@ return; } } - Ext.Ajax.request({ - url : WWWROOT + '/disinfectSystem/baseData/materialDefinitionAction!validate.do', - params : {validateId : id,valifateName:materialName,specification:specification}, - success : function(response, options) { - var result = Ext.decode(response.responseText); - if(result.stauts==1){ - formObj.form.submit( { - url : WWWROOT + '/disinfectSystem/baseData/materialDefinitionAction!saveMaterialDefinition.do', - method : 'POST', - waitMsg : '正在保存数据,请稍候', - waitTitle : '提交表单', - success : function(form, action) { - materialDefinitionWin.close(); - showResult('保存成功','保存结果'); - grid.dwrReload(); - }, - failure : function(form, action) { - showResult(action.result.message); - top.Ext.getCmp('saveBtn').enable(); - } - }); - }else{ - showResult(result.message,'保存结果'); - top.Ext.getCmp('saveBtn').enable(); + + formObj.form.submit( { + url : WWWROOT + '/disinfectSystem/baseData/materialDefinitionAction!saveMaterialDefinition.do', + method : 'POST', + waitMsg : '正在保存数据,请稍候', + waitTitle : '提交表单', + success : function(form, action) { + showResult(action.result.msg); + if(action.result.success){ + materialDefinitionWin.close(); + grid.dwrReload(); } }, - failure : function(response, options) { - var result = Ext.decode(response.responseText); - //showResult(result.cause); + failure : function(form, action) { + if(!isUndefinedOrNullOrEmpty(action.result) && !isUndefinedOrNullOrEmpty(action.result.msg)){ + showResult(action.result.msg); + }else{ + showResult("保存失败!"); + } + top.Ext.getCmp('saveBtn').enable(); } }); + } function save() {