Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java =================================================================== diff -u -r19824 -r20192 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java (.../TousseDefinitionManager.java) (revision 19824) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManager.java (.../TousseDefinitionManager.java) (revision 20192) @@ -50,12 +50,20 @@ * 判断是否存在重复的器械包定义. * @param id 器械包id * @param name 器械包名称 - * @param companyName 供应商名称 * @return */ - public boolean isExistDuplicateTousseDefinition(String id, String name, - String companyName); + public boolean isExistDuplicateTousseDefinition(String id, String name); + /** + * 判断是否存在重复的外来器械包定义. + * @param id 器械包id + * @param name 器械包名称 + * @param supplierName 供应商名称 + * @return + */ + public boolean isExistDuplicateForeignTousseDefinition(String id, String name, + String supplierName); + public boolean isExistDuplicateCustomTousseDefinition(String id, String name); /** Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java =================================================================== diff -u -r20120 -r20192 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 20120) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 20192) @@ -282,32 +282,28 @@ return (TousseDefinition) objectDao.getBySql( TousseDefinition.class.getSimpleName(), sql); } + @Override - /*** - * 判断是否存在重复的器械包定义 - * - */ - public boolean isExistDuplicateTousseDefinition(String tousseDefinitionId, String name, - String supplierName) { - boolean isExist = false; + public boolean isExistDuplicateTousseDefinition(String tousseDefinitionId, String name) { String sql = "where po.name = '" + name + "' and forDisplay=true"; if (StringUtils.isNotEmpty(tousseDefinitionId)) { sql += " and po.id != " + tousseDefinitionId; } - if (StringUtils.isNotEmpty(supplierName)) { - sql += " and po.supplierName = '" + supplierName + "'"; - } - try { - if (objectDao.getBySql(TousseDefinition.class.getSimpleName(), sql) != null) { - isExist = true; - } - } catch (Exception e) { - e.printStackTrace(); - } - return isExist; + return (objectDao.getBySql(TousseDefinition.class.getSimpleName(), sql) != null); } + @Override + public boolean isExistDuplicateForeignTousseDefinition(String id, String name, + String supplierName) { + String sql = String.format("where po.forDisplay=true and ((po.tousseType<>'%s' and po.name='%s') or (po.tousseType='%s' and po.name='%s' and %s)) %s ", + TousseDefinition.PACKAGE_TYPE_FOREIGN, name, + TousseDefinition.PACKAGE_TYPE_FOREIGN, name, SqlUtils.getStringFieldPredicate("po.supplierName", supplierName), + DatabaseUtil.isPoIdValid(id) ? String.format(" and po.id<>%s ", id) : ""); + return (objectDao.getBySql(TousseDefinition.class.getSimpleName(), sql) != null); + } + + @Override public boolean isExistDuplicateCustomTousseDefinition(String tousseDefinitionID, String name){ boolean isExist = false; String sql = String.format("where po.name = '%s' and po.tousseType != '%s'", name,TousseDefinition.PACKAGE_TYPE_CUSTOM); Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java =================================================================== diff -u -r19824 -r20192 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 19824) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 20192) @@ -212,44 +212,33 @@ } /** - * 保存前检查是否重复 + * 保存器械包之前检查是否重复. * * @return */ public void validate() { - try { - String tousseDefinitionId = StrutsParamUtils.getPraramValue("validateId", null); - String name = StrutsParamUtils.getPraramValue("valifateName", null); - String tousseType = StrutsParamUtils.getPraramValue("tousseType", null); - String companyName = StrutsParamUtils.getPraramValue( - "valifateCompanyId", null); - String message = "{success:true,message:'验证成功',stauts:1}"; - if(tousseType == null){ - tousseType = ""; - } - switch(tousseType){ - case TousseDefinition.PACKAGE_TYPE_DISINFECTION: - validateDuplicateTousseDefinitionForSaveDisinfection(); - return; - } - try { - boolean isExistDuplicate = tousseDefinitionManager.isExistDuplicateTousseDefinition(tousseDefinitionId, - name, companyName); - if (isExistDuplicate) { - message = "{success:false,message:'存在相同名字的器械包,请使用其它名称',stauts:0}"; - } - } catch (Exception e) { - e.printStackTrace(); - message = "{success:false,message:'存在相同名字的器械包,请使用其它名称',stauts:0}"; - } - HttpServletResponse response = StrutsParamUtils.getResponse(); - response.setCharacterEncoding("UTF-8"); - response.getWriter().println(message); - } catch (IOException e) { - e.printStackTrace(); + String tousseDefinitionId = StrutsParamUtils.getPraramValue("validateId", null); + String name = StrutsParamUtils.getPraramValue("valifateName", null); + String tousseType = StrutsParamUtils.getPraramValue("tousseType", ""); + String companyName = StrutsParamUtils.getPraramValue("valifateCompanyId", null); + String message = "{success:true,message:'验证成功',stauts:1}"; + + boolean isExistDuplicate = false; + if (TousseDefinition.PACKAGE_TYPE_FOREIGN.equals(tousseType)) { + isExistDuplicate = tousseDefinitionManager.isExistDuplicateForeignTousseDefinition(tousseDefinitionId, name, companyName); + } else { + isExistDuplicate = tousseDefinitionManager.isExistDuplicateTousseDefinition(tousseDefinitionId, name); } + + if (isExistDuplicate) { + message = "{success:false,message:'存在相同名字的器械包,请使用其它名称',stauts:0}"; + } + StrutsResponseUtils.output(message); } - // + + /** + * 验证消毒物是否同名. + */ public void validateDuplicateTousseDefinitionForSaveDisinfection() { try { String tousseDefinitionId = StrutsParamUtils.getPraramValue("validateId", null); Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java =================================================================== diff -u -r19934 -r20192 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java (.../ForeignTousseApplicationManagerImpl.java) (revision 19934) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java (.../ForeignTousseApplicationManagerImpl.java) (revision 20192) @@ -440,6 +440,14 @@ if(StringUtils.isBlank(supplierName)){ throw new RuntimeException("外来器械包供应商不能为空!"); } + + //外来器械包不允许和普通包同名 + String sql = String.format("where po.forDisplay=true and po.tousseType<>'%s' and po.name='%s' ", + TousseDefinition.PACKAGE_TYPE_FOREIGN, tousseName); + if (objectDao.getBySql(TousseDefinition.class.getSimpleName(), sql) != null) { + throw new RuntimeException("外来器械包不予许和普通包同名!"); + } + TousseDefinition tousseDefinition = null; //“干预”或者“回收那里对外来器械包申请单的一些修改” Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/foreigntoussedefinition/foreignTousseDefinitionForm.js =================================================================== diff -u -r19496 -r20192 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/foreigntoussedefinition/foreignTousseDefinitionForm.js (.../foreignTousseDefinitionForm.js) (revision 19496) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/foreigntoussedefinition/foreignTousseDefinitionForm.js (.../foreignTousseDefinitionForm.js) (revision 20192) @@ -638,7 +638,8 @@ params : { validateId : top.Ext.getCmp('id').getValue(), valifateName : top.Ext.getCmp('name').getValue(), - valifateCompanyId : top.Ext.getCmp('supplierName').getRawValue() + valifateCompanyId : top.Ext.getCmp('supplierName').getRawValue(), + tousseType : top.Ext.getCmp('tousseType').getValue() }, success : function(response, options) { var result = Ext.decode(response.responseText);