Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/service/DataSynchronizationManagerImpl.java =================================================================== diff -u -r14352 -r14406 --- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/service/DataSynchronizationManagerImpl.java (.../DataSynchronizationManagerImpl.java) (revision 14352) +++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/service/DataSynchronizationManagerImpl.java (.../DataSynchronizationManagerImpl.java) (revision 14406) @@ -231,13 +231,24 @@ for(OrgUnitVo vo : allVos){ OrgUnit orgUnit = (OrgUnit) orgUnitManager.getOrgUnitByCode(vo.coding); if(orgUnit != null && !更新交集数据) continue; //不是交集并且用户不希望更新交集 - - if(orgUnit == null){ //需要同步的数据【而且这条数据是新的数据】(陈家儒改) + + OrgUnit tempOrgUnit = (OrgUnit) orgUnitManager.getCurrentOrgUintByName(vo.name); + if(orgUnit == null){ //需要同步的数据(新部门)(陈家儒改) + if (tempOrgUnit != null) { //如果此名称的部门已经存在了,则此同步操作失败 + throw new RuntimeException("nameError" + "(" + vo.name + ")此部门已经存在了,同步失败"); + } orgUnit = new OrgUnit(); orgUnit.setOrgUnitCoding(vo.coding);// 部门编码 orgUnit.setOrgForeignKey(vo.coding);// 部门外部ID orgUnit.setSource(Constants.SOURCE_SYNC); //是同步添加的数据(陈家儒改) orgUnit.setBarcodeDevice(newBarcodeOfOrgUnit()); + } else { //不是新部门 + if (tempOrgUnit != null) { //如果此名称的部门已经存在了 + if (!vo.getCoding().equals(tempOrgUnit.getOrgUnitCoding())) { //修改过部门名称,则说明修改的部门名称已经存在了 + throw new RuntimeException("nameError" + "(" + vo.name + ")此部门已经存在了,同步失败"); + } + } + } orgUnit.setName(vo.name);// 名称 Index: ssts-web/src/main/webapp/systemmanage/orgUnitExtView.js =================================================================== diff -u -r14209 -r14406 --- ssts-web/src/main/webapp/systemmanage/orgUnitExtView.js (.../orgUnitExtView.js) (revision 14209) +++ ssts-web/src/main/webapp/systemmanage/orgUnitExtView.js (.../orgUnitExtView.js) (revision 14406) @@ -84,17 +84,19 @@ }); mask.show(); DataSynchronizationTableManager.syncOrgUnit({ - callback:function(success){ - if (success) { + callback:function(data){ + if (data == 'success') { showResult("同步成功"); + } else if (data == 'error') { + showResult("同步失败"); } else { - showResult("同步失败"); + showResult(data); } mask.hide(); reloadTreeAndTable(); }, errorHandler:function(msg){ - mask.hide(); + mask.hide(); }, timeout:240000//超时时间4分钟 }); Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dwr/DataSynchronizationTableManager.java =================================================================== diff -u -r12640 -r14406 --- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dwr/DataSynchronizationTableManager.java (.../DataSynchronizationTableManager.java) (revision 12640) +++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dwr/DataSynchronizationTableManager.java (.../DataSynchronizationTableManager.java) (revision 14406) @@ -61,16 +61,35 @@ return obj.toString(); } - public boolean syncOrgUnit() { + /** + * (陈家儒改) + * 同步科室的方法 + * + */ + public String syncOrgUnit() { try{ dataSynchronizationManager.syncOrgUnit(); }catch (Exception e) { - e.printStackTrace(); - return false; + if ("nameError".equals(e.getMessage().substring(0,9))) { + return e.getMessage().substring(9); + } else { + return "error"; + } + } - return true; + return "success"; } +// public boolean syncOrgUnit() { +// try{ +// dataSynchronizationManager.syncOrgUnit(); +// }catch (Exception e) { +// e.printStackTrace(); +// return false; +// } +// return true; +// } +// public boolean syncUser() { try{ dataSynchronizationManager.syncUser(); Index: ssts-web/src/main/webapp/systemmanage/orgUnitExt.js =================================================================== diff -u -r12331 -r14406 --- ssts-web/src/main/webapp/systemmanage/orgUnitExt.js (.../orgUnitExt.js) (revision 12331) +++ ssts-web/src/main/webapp/systemmanage/orgUnitExt.js (.../orgUnitExt.js) (revision 14406) @@ -1,4 +1,6 @@ var isNotRepeatCoding = true; +var isNotRepeatName = true; //(陈家儒改) +var oldName = null; function selectePerson(action){ var userIds = ""; @@ -396,7 +398,7 @@ this.enable(); return false; } - if(!validateOrgCode()){ + if(!validateOrgCodeAndName()){ //如果此部门编码和名称存在不给添加 this.enable(); return false; } @@ -420,7 +422,7 @@ this.enable(); return false; } - if(!validateOrgCode()){ + if(!validateOrgCodeAndName()){ //如果此部门编码和名称存在不给添加 this.enable(); return false; } @@ -448,7 +450,7 @@ this.enable(); return false; } - if(!validateOrgCode()){ + if(!validateOrgCodeAndName()){ //如果此部门编码和名称存在不给添加 this.enable(); return false; } @@ -467,6 +469,7 @@ } function edit(){ + oldName = Ext.getCmp('name').getValue(); //如果用户要更新则先把久的部门名称接收起来(陈家儒改) this.setVisible(false); Ext.getCmp('saveBtn').setVisible(true); Ext.getCmp('saveAndNewBtn').setVisible(true); @@ -480,14 +483,29 @@ Ext.getCmp('spelling').addClass('fieldReadOnlyNoRemove'); } - function validateOrgCode(){ - if(StringUtils.isBlank(id)){ - DWREngine.setAsync(false); + function validateOrgCodeAndName(){ + if(StringUtils.isBlank(id)){ //新添加的操作,验证部门编码和部门名称 + DWREngine.setAsync(false); OrgUnitTableManager.isRepeatCoding(Ext.getCmp('orgUnitCoding').getValue().Trim(),setIsRepeatCoding); + OrgUnitTableManager.isRepeatName(Ext.getCmp('name').getValue().Trim(),setIsRepeatName); DWREngine.setAsync(true); + } else { //更新的操作,就只验证部门名称就可以了 + if (oldName != Ext.getCmp('name').getValue().Trim()) { //如果改部门的名称就要去后台验证此部门是不是已经存在 + DWREngine.setAsync(false); + OrgUnitTableManager.isRepeatName(Ext.getCmp('name').getValue().Trim(),setIsRepeatName); + DWREngine.setAsync(true); + } else { + isNotRepeatName = true; + } } + if (isNotRepeatCoding){ - return true; + if (isNotRepeatName) { //加一个校验如果存在这个名称的科室,也不给添加(陈家儒改) + return true; + } else { + alert('部门名称已经存在,请重新输入!'); + return false; + } } else { alert("部门编码已经存在,请重新输入!"); return false; @@ -497,4 +515,9 @@ function setIsRepeatCoding(isRepeat){ isNotRepeatCoding = isRepeat; } + + + function setIsRepeatName(isRepeat){ + isNotRepeatName = isRepeat; + } }); Index: ssts-web/src/main/java/com/forgon/disinfectsystem/directory/dwr/table/OrgUnitTableManager.java =================================================================== diff -u -r14131 -r14406 --- ssts-web/src/main/java/com/forgon/disinfectsystem/directory/dwr/table/OrgUnitTableManager.java (.../OrgUnitTableManager.java) (revision 14131) +++ ssts-web/src/main/java/com/forgon/disinfectsystem/directory/dwr/table/OrgUnitTableManager.java (.../OrgUnitTableManager.java) (revision 14406) @@ -124,6 +124,21 @@ return false; } } + + /** + * (陈家儒改) + * 是否存在这个名称的科室 + * + */ + public boolean isRepeatName(String name) { + Object org = objectDao.getByProperty(OrgUnit.class.getName(), + "name", name); + if (null == org) { + return true; + } else { + return false; + } + } public void moveOrgUnitByKeyIds(String sourceOrgUnitKeyId, String destinationOrgUnitKeyId) {