Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java =================================================================== diff -u -r16195 -r16216 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 16195) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 16216) @@ -1777,8 +1777,8 @@ } /** - * 创建模糊查询的sql语句, - * 如果searchString为中文,则按照器械包的(拼音码、五笔码、外部编码、名称)这四个字段进行检索, + * 创建模糊查询的sql语句
+ * 如果searchString为中文,则按照器械包的(拼音码、五笔码、外部编码、名称)这四个字段进行检索
* 如果searchString为英文,则根据用户属性表的searchMode字段来决定 * @param searchString:检索的关键字 * @return Index: forgon-core/src/main/java/com/forgon/security/service/UserManagerImpl.java =================================================================== diff -u -r15447 -r16216 --- forgon-core/src/main/java/com/forgon/security/service/UserManagerImpl.java (.../UserManagerImpl.java) (revision 15447) +++ forgon-core/src/main/java/com/forgon/security/service/UserManagerImpl.java (.../UserManagerImpl.java) (revision 16216) @@ -59,11 +59,11 @@ // 获取用户的当前部门 public String getCurrentOrgUnitCode(User user){ + // 查找用户当前的组织单位 String currentOrgUnitCode = user.getCurrentOrgUnitCode(); String directOrgUnitCodesWhereUserBelong = user.getOrgUnitCodes(); if (StringUtils.isBlank(currentOrgUnitCode)){ - if (StringUtils.isNotBlank(directOrgUnitCodesWhereUserBelong)){ currentOrgUnitCode = directOrgUnitCodesWhereUserBelong; if (currentOrgUnitCode.indexOf(OrgUnit.ORGUNIT_USER_SEPARATOR) > 0){ @@ -73,24 +73,35 @@ user.setCurrentOrgUnitCode(currentOrgUnitCode); objectDao.saveOrUpdate(user); } - } - // 具有当前部门 - else{ - if (StringUtils.isBlank(directOrgUnitCodesWhereUserBelong)){ + }else{ // 具有当前部门 + if (StringUtils.isBlank(directOrgUnitCodesWhereUserBelong)){ //直属科室被删除了 currentOrgUnitCode = ""; - } - else{ - directOrgUnitCodesWhereUserBelong += OrgUnit.ORGUNIT_USER_SEPARATOR; - // 当前的部门不是用户所拥有的部门 - if (directOrgUnitCodesWhereUserBelong.indexOf(currentOrgUnitCode + OrgUnit.ORGUNIT_USER_SEPARATOR) == -1){ - currentOrgUnitCode = directOrgUnitCodesWhereUserBelong.split(OrgUnit.ORGUNIT_USER_SEPARATOR)[0]; - // 保存用户的当前部门 - user.setCurrentOrgUnitCode(currentOrgUnitCode); - objectDao.saveOrUpdate(user); + }else{ + String[] directOrgUnitCodeArray = directOrgUnitCodesWhereUserBelong.split(OrgUnit.ORGUNIT_USER_SEPARATOR); + + for (String directOrgUnitCode : directOrgUnitCodeArray) { + if (StringUtils.equals(currentOrgUnitCode, directOrgUnitCode)) { //"用户直属的组织单位的编码集合"包含"当前的部门" + return currentOrgUnitCode; + } } + + currentOrgUnitCode = directOrgUnitCodeArray[0]; + user.setCurrentOrgUnitCode(currentOrgUnitCode); + objectDao.saveOrUpdate(user); + +// directOrgUnitCodesWhereUserBelong += OrgUnit.ORGUNIT_USER_SEPARATOR; +// // 当前的部门不是用户所拥有的部门 +// if (directOrgUnitCodesWhereUserBelong.indexOf(currentOrgUnitCode + OrgUnit.ORGUNIT_USER_SEPARATOR) == -1){ +// currentOrgUnitCode = directOrgUnitCodesWhereUserBelong.split(OrgUnit.ORGUNIT_USER_SEPARATOR)[0]; +// // 保存用户的当前部门 +// user.setCurrentOrgUnitCode(currentOrgUnitCode); +// objectDao.saveOrUpdate(user); +// } } } + return currentOrgUnitCode; + } @SuppressWarnings("unchecked") Index: forgon-core/src/main/java/com/forgon/security/model/User.java =================================================================== diff -u -r14851 -r16216 --- forgon-core/src/main/java/com/forgon/security/model/User.java (.../User.java) (revision 14851) +++ forgon-core/src/main/java/com/forgon/security/model/User.java (.../User.java) (revision 16216) @@ -139,12 +139,12 @@ private String wbCode;//五笔码 /** - * 数据来源(陈家儒改) + * 数据来源 */ private String source = Constants.SOURCE_MANUAL; //默认手工 /** - * 此用户是否被锁定(陈家儒改) + * 此用户是否被锁定 */ private String lockStatus = "否"; //默认不锁定 @@ -305,6 +305,10 @@ this.userAttribute = userAttribute; } + /** + * 获取用户直属的组织单位的编码集合,不含上级(用";"分隔) + * @return + */ @Transient public String getOrgUnitCodes() { if (orgUnitCodes == null) {