/**
* 这个类提供通用的一些方法
*/
public class CommonUntil {
private static final Log LOG = LogFactory.getLog(UserName.class);
// 返回组织的默认办理人列表,从最底层组织开始找,没有的话再找父亲组织,类推
String defaultUserID = “”;
public String getOrgUnitDefaultUserID(String orgUnitID, String userID) {
OrgUnitQuery ouq = new OrgUnitQuery();
OrgUnit orgUnit = null;
try {
orgUnit = ouq.getOrgUnit(orgUnitID, SystemIdentify.LW_OA);
OrgUnitSystem orgUnitSystem = null;
try {
orgUnitSystem = OrgUnitHelper.getOrgUnitSystem(orgUnit.getOrgUnitSystemList());
Assert.assertNotNull(orgUnitSystem);
if(defaultUserID==null||defaultUserID.equals(“”)){
if (orgUnitSystem.getDefaultIds() != null) {
List getDefaultIds = orgUnitSystem.getDefaultIds();
// 开始判断当前用户是否是部门的办理人,只有是部门的办理人才返回部门,否则返回为空
if (getDefaultIds != null) {
defaultUserID = StringBase.listToString(getDefaultIds,” “);
} else {
defaultUserID = “”;
}
} else {
// 如果有父亲,接着找
if (orgUnitSystem.getSuperiorOrgid() != null&& !orgUnitSystem.getSuperiorOrgid().equals(“”)) {
this.getOrgUnitDefaultUserID(orgUnitSystem.getSuperiorOrgid(),userID);
}
}
}
} catch (ResourceException e) {
LOG.error(e.getMessage(), e);
}
} catch (NoResourceException nre) {
System.out.println(“获取资源错误:” + nre);
}
return defaultUserID;
}
}
1.类名CommonUntil,这是什么意思?谁能看到这个单词,就能大概知道这个类是做什么的?
2.类的注释没有写清楚类的职责
3.getOrgUnitDefaultUserID 方法名,个人以为 getDefaultUserIDOfOrgUnit会更合适
4.getOrgUnitDefaultUserID的userID参数是多余的
5.orgUnit,orgUnitSystem 变量的声明没有遵守变量作用域最小化原则
6.List getDefaultIds = orgUnitSystem.getDefaultIds(); 变量是名词,方法才是动词,getDefaultIds变量的命名错误
7.多余的判断
if (orgUnitSystem.getDefaultIds() != null) { ———————————-A
List getDefaultIds = orgUnitSystem.getDefaultIds();
// 开始判断当前用户是否是部门的办理人,只有是部门的办理人才返回部门,否则返回为空
if (getDefaultIds != null) { ———————————-B
A语句已经进行了判断,B语句根本不需要判断
8. 异常需要记录或者被抛出,不是打印到控制台了事
} catch (NoResourceException nre) {
System.out.println(“获取资源错误:” + nre);
}
9.getOrgUnitDefaultUserID方法的注释不但没有写清楚,至少没有按照格式编写(参数、返回值等),
而且所在的行也错误。应该紧挨getOrgUnitDefaultUserID方法上方。