@ -1,5 +1,6 @@
package com.customization.hrm.dept ;
package com.customization.hrm.dept ;
import com.alibaba.fastjson.JSONObject ;
import com.api.hrm.service.HrmUserIconService ;
import com.api.hrm.service.HrmUserIconService ;
import com.api.hrm.service.impl.HrmUserIconServiceImpl ;
import com.api.hrm.service.impl.HrmUserIconServiceImpl ;
import com.engine.common.util.ServiceUtil ;
import com.engine.common.util.ServiceUtil ;
@ -25,11 +26,12 @@ import weaver.hrm.job.JobTitlesComInfo;
import weaver.hrm.resource.ResourceComInfo ;
import weaver.hrm.resource.ResourceComInfo ;
@CommandDynamicProxy ( target = GetOrganizationInfoCmd . class , desc = "" )
@CommandDynamicProxy ( target = GetOrganizationInfoCmd . class , desc = "" )
public class ProxyGetOrganizationInfoCmd extends AbstractCommandProxy < Map < String , Object > > {
public class ProxyGetOrganizationInfoCmd extends AbstractCommandProxy < Map < String , Object > > {
private Logger log = Logger . getLogger ( this . getClass ( ) ) ;
private Logger log = Logger . getLogger ( this . getClass ( ) ) ;
@Override
@Override
public Map < String , Object > execute ( Command < Map < String , Object > > targetCommand ) {
public Map < String , Object > execute ( Command < Map < String , Object > > targetCommand ) {
GetOrganizationInfoCmd cmd = ( GetOrganizationInfoCmd ) targetCommand ;
GetOrganizationInfoCmd cmd = ( GetOrganizationInfoCmd ) targetCommand ;
@ -37,17 +39,28 @@ public class ProxyGetOrganizationInfoCmd extends AbstractCommandProxy<Map<String
Map < String , Object > result = nextExecute ( targetCommand ) ;
Map < String , Object > result = nextExecute ( targetCommand ) ;
Map < String , Object > params = cmd . getParams ( ) ;
Map < String , Object > params = cmd . getParams ( ) ;
Map < String , Object > resultNew = cmd . getParams ( ) ;
Map < String , Object > resultNew = cmd . getParams ( ) ;
long startTime = System . currentTimeMillis ( ) ;
long startTime = System . currentTimeMillis ( ) ;
//writeLog("进入getOrganizationInfo方法时间===="+startTime);
// log.info("进入getOrganizationInfo方法时间===="+startTime);
log . info ( "params====" + JSONObject . toJSONString ( params ) ) ;
log . info ( "result====" + JSONObject . toJSONString ( result ) ) ;
String cmdType = Util . null2String ( params . get ( "cmd" ) ) ;
String cmdType = Util . null2String ( params . get ( "cmd" ) ) ;
String fetch_mine = Util . null2String ( params . get ( "fetch_mine" ) ) ;
String fetch_mine = Util . null2String ( params . get ( "fetch_mine" ) ) ;
// new BaseBean().writeLog("fetch_mine",fetch_mine);
new BaseBean ( ) . writeLog ( "fetch_mine" , fetch_mine ) ;
if ( cmdType . equals ( "getOrganizationInfo" ) & & "0" . equals ( fetch_mine ) ) {
if ( cmdType . equals ( "getOrganizationInfo" ) & & "0" . equals ( fetch_mine ) ) {
resultNew = this . extracted ( params , result ) ; ;
resultNew = this . extracted ( params , result ) ;
} else {
} else if ( cmdType . equals ( "searchResourceList" ) ) {
// List<Map<String, Object>> userlist = (List<Map<String, Object>>)result.get("userlist");
// if (userlist.size()>0){
// Map<String, Object> user = userlist.get(0);
// String[] strings = {"111111111"};
// user.put("deptlist",strings);
// }
resultNew = result ;
} else {
resultNew = result ;
resultNew = result ;
}
}
log . info ( "resultNew====" + JSONObject . toJSONString ( resultNew ) ) ;
return resultNew ;
return resultNew ;
}
}
@ -61,7 +74,7 @@ public class ProxyGetOrganizationInfoCmd extends AbstractCommandProxy<Map<String
User user = new User ( Integer . parseInt ( userid ) ) ;
User user = new User ( Integer . parseInt ( userid ) ) ;
String type = "" ; //节点类型 1 com, 2 subcom, 3 dept
String type = "" ; //节点类型 1 com, 2 subcom, 3 dept
String tmpStr = id ;
String tmpStr = id ;
if ( id . length ( ) > 0 ) {
if ( id . length ( ) > 0 ) {
if ( id . startsWith ( "-" ) ) {
if ( id . startsWith ( "-" ) ) {
tmpStr = id . replace ( "-" , "" ) ;
tmpStr = id . replace ( "-" , "" ) ;
type = tmpStr . substring ( 0 , 1 ) ;
type = tmpStr . substring ( 0 , 1 ) ;
@ -73,82 +86,81 @@ public class ProxyGetOrganizationInfoCmd extends AbstractCommandProxy<Map<String
if ( type . equals ( "1" ) ) {
if ( type . equals ( "1" ) ) {
type = "com" ;
type = "com" ;
id = "0" ;
id = "0" ;
} else {
} else {
type = type . equals ( "2" ) ? "com" : "dept" ;
type = type . equals ( "2" ) ? "com" : "dept" ;
}
}
}
}
RecordSet recordSet = new RecordSet ( ) ;
RecordSet recordSet = new RecordSet ( ) ;
ArrayList < String > idlist = new ArrayList < > ( ) ;
ArrayList < String > idlist = new ArrayList < > ( ) ;
Map < String , String > bmIdHrmMap = new HashMap < > ( ) ;
Map < String , String > bmIdHrmMap = new HashMap < > ( ) ;
ArrayList < String > branchDeptidList = new ArrayList < > ( ) ;
ArrayList < String > branchDeptidList = new ArrayList < > ( ) ;
//查询分部下
//查询分部下
if ( "com" . equals ( type ) ) {
if ( "com" . equals ( type ) ) {
recordSet . executeQuery ( "select BM,KJRY,FB from uf_txlbxsbm where fb = ?" , id ) ;
recordSet . executeQuery ( "select BM,KJRY,FB from uf_txlbxsbm where fb = ?" , id ) ;
while ( recordSet . next ( ) ) {
while ( recordSet . next ( ) ) {
String bm = Util . null2String ( recordSet . getString ( "BM" ) ) ;
String bm = Util . null2String ( recordSet . getString ( "BM" ) ) ;
String kjry = Util . null2String ( recordSet . getString ( "KJRY" ) ) ;
String kjry = Util . null2String ( recordSet . getString ( "KJRY" ) ) ;
// String fb = Util.null2String(recordSet.getString("FB"));
// String fb = Util.null2String(recordSet.getString("FB"));
idlist . add ( bm ) ;
idlist . add ( bm ) ;
bmIdHrmMap . put ( bm , kjry ) ;
bmIdHrmMap . put ( bm , kjry ) ;
}
}
}
}
//查询部门下
//查询部门下
if ( "dept" . equals ( type ) ) {
if ( "dept" . equals ( type ) ) {
recordSet . executeQuery ( "select BM,KJRY,FB from uf_txlbxsbm where SJBM = ?" , id ) ;
recordSet . executeQuery ( "select BM,KJRY,FB from uf_txlbxsbm where SJBM = ?" , id ) ;
while ( recordSet . next ( ) ) {
while ( recordSet . next ( ) ) {
String bm = Util . null2String ( recordSet . getString ( "BM" ) ) ;
String bm = Util . null2String ( recordSet . getString ( "BM" ) ) ;
String kjry = Util . null2String ( recordSet . getString ( "KJRY" ) ) ;
String kjry = Util . null2String ( recordSet . getString ( "KJRY" ) ) ;
// String fb = Util.null2String(recordSet.getString("FB"));
// String fb = Util.null2String(recordSet.getString("FB"));
idlist . add ( bm ) ;
idlist . add ( bm ) ;
bmIdHrmMap . put ( bm , kjry ) ;
bmIdHrmMap . put ( bm , kjry ) ;
}
}
recordSet . executeQuery ( "select ZBM ,kjry from uf_branchdept t1 left join uf_branchdept_dt1 d1 on t1.id = d1.mainid " +
recordSet . executeQuery ( "select ZBM ,kjry from uf_branchdept t1 left join uf_branchdept_dt1 d1 on t1.id = d1.mainid " +
" where t1.DEPT = ?" , id ) ;
" where t1.DEPT = ?" , id ) ;
while ( recordSet . next ( ) ) {
while ( recordSet . next ( ) ) {
String bm = Util . null2String ( recordSet . getString ( "ZBM" ) ) ;
String bm = Util . null2String ( recordSet . getString ( "ZBM" ) ) ;
String kjry = Util . null2String ( recordSet . getString ( "KJRY" ) ) ;
String kjry = Util . null2String ( recordSet . getString ( "KJRY" ) ) ;
// String fb = Util.null2String(recordSet.getString("FB"));
// String fb = Util.null2String(recordSet.getString("FB"));
idlist . add ( bm ) ;
idlist . add ( bm ) ;
bmIdHrmMap . put ( bm , kjry ) ;
bmIdHrmMap . put ( bm , kjry ) ;
branchDeptidList . add ( bm ) ;
branchDeptidList . add ( bm ) ;
}
}
}
}
List < Map < String , Object > > departmentList = ( List < Map < String , Object > > ) ( resultNew . get ( "department" ) ) ;
List < Map < String , Object > > departmentList = ( List < Map < String , Object > > ) ( resultNew . get ( "department" ) ) ;
List < Map < String , Object > > departmentListNew = new ArrayList < > ( ) ;
List < Map < String , Object > > departmentListNew = new ArrayList < > ( ) ;
//过滤建模表里的部门
//过滤建模表里的部门
for ( Map < String , Object > department : departmentList ) {
for ( Map < String , Object > department : departmentList ) {
String deptid = department . get ( "id" ) . toString ( ) ;
String deptid = department . get ( "id" ) . toString ( ) ;
deptid = deptid . substring ( 1 , deptid . length ( ) ) ;
deptid = deptid . substring ( 1 , deptid . length ( ) ) ;
if ( ! idlist . contains ( deptid ) ) {
if ( ! idlist . contains ( deptid ) ) {
departmentListNew . add ( department ) ;
departmentListNew . add ( department ) ;
} else {
} else {
String kjry = bmIdHrmMap . get ( deptid ) ;
String kjry = bmIdHrmMap . get ( deptid ) ;
List < String > kjrylist = Arrays . asList ( kjry . split ( "," ) ) ;
List < String > kjrylist = Arrays . asList ( kjry . split ( "," ) ) ;
if ( kjrylist . contains ( userid ) ) {
if ( kjrylist . contains ( userid ) ) {
departmentListNew . add ( department ) ;
departmentListNew . add ( department ) ;
}
}
}
}
}
}
resultNew . put ( "department" , departmentListNew ) ;
resultNew . put ( "department" , departmentListNew ) ;
//添加明细里部门的人员
//添加明细里部门的人员
List < Map < String , Object > > userlist = ( List < Map < String , Object > > ) ( resultNew . get ( "userlist" ) ) ;
List < Map < String , Object > > userlist = ( List < Map < String , Object > > ) ( resultNew . get ( "userlist" ) ) ;
// baseBean.writeLog("人员子部门====",branchDeptidList);
// baseBean.writeLog("人员子部门====",branchDeptidList);
for ( String deptid : branchDeptidList ) {
for ( String deptid : branchDeptidList ) {
List < Map < String , Object > > resourceList = this . getResourceList ( deptid , user , params ) ;
List < Map < String , Object > > resourceList = this . getResourceList ( deptid , user , params ) ;
// baseBean.writeLog("子部门人员列表====",resourceList);
// baseBean.writeLog("子部门人员列表====",resourceList);
userlist . addAll ( resourceList ) ;
userlist . addAll ( resourceList ) ;
}
}
// 使用Comparator对List中的Map进行排序
// 使用Comparator对List中的Map进行排序
Collections . sort ( userlist , Comparator . comparingDouble ( m - > ( Double ) m . get ( "showorder" ) ) ) ;
Collections . sort ( userlist , Comparator . comparingDouble ( m - > ( Double ) m . get ( "showorder" ) ) ) ;
resultNew . put ( "userlist" , userlist ) ;
resultNew . put ( "userlist" , userlist ) ;
return resultNew ;
return resultNew ;
} catch ( Exception e ) {
} catch ( Exception e ) {
new BaseBean ( ) . writeLog ( e . getMessage ( ) ) ;
new BaseBean ( ) . writeLog ( e . getMessage ( ) ) ;
e . printStackTrace ( ) ;
e . printStackTrace ( ) ;
return result ;
return result ;
@ -161,12 +173,12 @@ public class ProxyGetOrganizationInfoCmd extends AbstractCommandProxy<Map<String
* @param departmentId
* @param departmentId
* @return
* @return
* /
* /
private List < Map < String , Object > > getResourceList ( String departmentId , User user , Map < String , Object > params ) {
private List < Map < String , Object > > getResourceList ( String departmentId , User user , Map < String , Object > params ) {
List < Map < String , Object > > resourceList = new ArrayList < > ( ) ;
List < Map < String , Object > > resourceList = new ArrayList < > ( ) ;
Map < String , Object > resourceInfo = null ;
Map < String , Object > resourceInfo = null ;
RecordSet rs = new RecordSet ( ) ;
RecordSet rs = new RecordSet ( ) ;
String sql = "" ;
String sql = "" ;
try {
try {
DepartmentComInfo departmentComInfo = new DepartmentComInfo ( ) ;
DepartmentComInfo departmentComInfo = new DepartmentComInfo ( ) ;
ResourceComInfo resourceComInfo = new ResourceComInfo ( ) ;
ResourceComInfo resourceComInfo = new ResourceComInfo ( ) ;
JobTitlesComInfo jobTitlesComInfo = new JobTitlesComInfo ( ) ;
JobTitlesComInfo jobTitlesComInfo = new JobTitlesComInfo ( ) ;
@ -175,74 +187,74 @@ public class ProxyGetOrganizationInfoCmd extends AbstractCommandProxy<Map<String
AppDetachComInfo adci = new AppDetachComInfo ( user ) ;
AppDetachComInfo adci = new AppDetachComInfo ( user ) ;
sql = " select hr.id, hr.lastname, hr.sex, hr.managerid, hr.jobtitle, hr.status, hr.dsporder, hr.messagerurl, hr.pinyinlastname, hr.accounttype, hr.belongto "
sql = " select hr.id, hr.lastname, hr.sex, hr.managerid, hr.jobtitle, hr.status, hr.dsporder, hr.messagerurl, hr.pinyinlastname, hr.accounttype, hr.belongto "
+ " from hrmresource hr, hrmdepartment t2 "
+ " from hrmresource hr, hrmdepartment t2 "
+ " where hr.departmentid=t2.id and t2.id=?" ;
+ " where hr.departmentid=t2.id and t2.id=?" ;
String sqlwhere = " and hr.status in (0,1,2,3)" ;
String sqlwhere = " and hr.status in (0,1,2,3)" ;
if ( adci . isUseAppDetach ( ) ) {
if ( adci . isUseAppDetach ( ) ) {
String appdetawhere = adci . getScopeSqlByHrmResourceSearch ( user . getUID ( ) + "" , true , "resource_hr" ) ;
String appdetawhere = adci . getScopeSqlByHrmResourceSearch ( user . getUID ( ) + "" , true , "resource_hr" ) ;
String tempstr = ( appdetawhere ! = null & & ! "" . equals ( appdetawhere ) ? ( " and " + appdetawhere ) : "" ) ;
String tempstr = ( appdetawhere ! = null & & ! "" . equals ( appdetawhere ) ? ( " and " + appdetawhere ) : "" ) ;
sqlwhere + = tempstr ;
sqlwhere + = tempstr ;
}
}
if ( sqlwhere . length ( ) > 0 ) sql + = sqlwhere ;
if ( sqlwhere . length ( ) > 0 ) sql + = sqlwhere ;
sql + = " order by hr.dsporder " ;
sql + = " order by hr.dsporder " ;
rs . executeQuery ( sql , departmentId ) ;
rs . executeQuery ( sql , departmentId ) ;
while ( rs . next ( ) ) {
while ( rs . next ( ) ) {
String userid = rs . getString ( "id" ) ;
String userid = rs . getString ( "id" ) ;
String lastname = Util . formatMultiLang ( rs . getString ( "lastname" ) , "" + user . getLanguage ( ) ) ;
String lastname = Util . formatMultiLang ( rs . getString ( "lastname" ) , "" + user . getLanguage ( ) ) ;
String accounttype = rs . getString ( "accounttype" ) ;
String accounttype = rs . getString ( "accounttype" ) ;
String belongto = "1" . equals ( accounttype ) ? Util . null2String ( rs . getString ( "belongto" ) ) : "" ;
String belongto = "1" . equals ( accounttype ) ? Util . null2String ( rs . getString ( "belongto" ) ) : "" ;
String belongto_name = Util . formatMultiLang ( resourceComInfo . getLastname ( belongto ) , "" + user . getLanguage ( ) ) ;
String belongto_name = Util . formatMultiLang ( resourceComInfo . getLastname ( belongto ) , "" + user . getLanguage ( ) ) ;
String pinyinlastname = Util . null2String ( rs . getString ( "pinyinlastname" ) ) ;
String pinyinlastname = Util . null2String ( rs . getString ( "pinyinlastname" ) ) ;
String sex = Util . null2String ( rs . getString ( "sex" ) , "0" ) ;
String sex = Util . null2String ( rs . getString ( "sex" ) , "0" ) ;
String managerid = rs . getString ( "managerid" ) ;
String managerid = rs . getString ( "managerid" ) ;
String managername = Util . formatMultiLang ( managerid . length ( ) > 0 ? resourceComInfo . getResourcename ( managerid ) : "" , "" + user . getLanguage ( ) ) ;
String managername = Util . formatMultiLang ( managerid . length ( ) > 0 ? resourceComInfo . getResourcename ( managerid ) : "" , "" + user . getLanguage ( ) ) ;
String jobtitle = rs . getString ( "jobtitle" ) ;
String jobtitle = rs . getString ( "jobtitle" ) ;
String jobtitlename = Util . formatMultiLang ( jobTitlesComInfo . getJobTitlesname ( jobtitle ) , "" + user . getLanguage ( ) ) ;
String jobtitlename = Util . formatMultiLang ( jobTitlesComInfo . getJobTitlesname ( jobtitle ) , "" + user . getLanguage ( ) ) ;
String status = rs . getString ( "status" ) ;
String status = rs . getString ( "status" ) ;
String showorder = Util . toDecimalDigits ( rs . getString ( "dsporder" ) , 2 ) ;
String showorder = Util . toDecimalDigits ( rs . getString ( "dsporder" ) , 2 ) ;
String messagerurl = rs . getString ( "messagerurl" ) ;
String messagerurl = rs . getString ( "messagerurl" ) ;
resourceInfo = new HashMap < > ( ) ;
resourceInfo = new HashMap < > ( ) ;
resourceInfo . put ( "userid" , userid ) ;
resourceInfo . put ( "userid" , userid ) ;
resourceInfo . put ( "name" , lastname ) ;
resourceInfo . put ( "name" , lastname ) ;
if ( enable_main_account ) {
if ( enable_main_account ) {
resourceInfo . put ( "main_base_user_id" , belongto ) ;
resourceInfo . put ( "main_base_user_id" , belongto ) ;
resourceInfo . put ( "main_base_user_name" , belongto_name ) ;
resourceInfo . put ( "main_base_user_name" , belongto_name ) ;
}
}
resourceInfo . put ( "manager_id" , managerid ) ;
resourceInfo . put ( "manager_id" , managerid ) ;
resourceInfo . put ( "manager_name" , managername ) ;
resourceInfo . put ( "manager_name" , managername ) ;
resourceInfo . put ( "position" , jobtitlename ) ;
resourceInfo . put ( "position" , jobtitlename ) ;
resourceInfo . put ( "status" , status ) ;
resourceInfo . put ( "status" , status ) ;
resourceInfo . put ( "showorder" , showorder ) ;
resourceInfo . put ( "showorder" , showorder ) ;
resourceInfo . put ( "gender" , Util . getIntValue ( sex ) ) ;
resourceInfo . put ( "gender" , Util . getIntValue ( sex ) ) ;
resourceInfo . put ( "base_user_id" , userid ) ;
resourceInfo . put ( "base_user_id" , userid ) ;
resourceInfo . put ( "base_user_name" , lastname ) ;
resourceInfo . put ( "base_user_name" , lastname ) ;
resourceInfo . put ( "name_simple_pingyin" , pinyinlastname ) ;
resourceInfo . put ( "name_simple_pingyin" , pinyinlastname ) ;
resourceInfo . put ( "name_full_pingyin" , pinyinlastname ) ;
resourceInfo . put ( "name_full_pingyin" , pinyinlastname ) ;
resourceInfo . put ( "guangliyuanxiashu" , pinyinlastname ) ;
resourceInfo . put ( "guangliyuanxiashu" , pinyinlastname ) ;
resourceInfo . put ( "base_name_simple_pingyin" , pinyinlastname ) ;
resourceInfo . put ( "base_name_simple_pingyin" , pinyinlastname ) ;
resourceInfo . put ( "base_name_full_pingyin" , pinyinlastname ) ;
resourceInfo . put ( "base_name_full_pingyin" , pinyinlastname ) ;
Map < String , Object > avatar = new HashMap < > ( ) ; //头像信息
Map < String , Object > avatar = new HashMap < > ( ) ; //头像信息
params . put ( "userId" , userid ) ;
params . put ( "userId" , userid ) ;
Map < String , Object > userIconInfo = ( ( HrmUserIconService ) ServiceUtil . getService ( HrmUserIconServiceImpl . class , user ) ) . getUserIcon ( params , user ) ;
Map < String , Object > userIconInfo = ( ( HrmUserIconService ) ServiceUtil . getService ( HrmUserIconServiceImpl . class , user ) ) . getUserIcon ( params , user ) ;
String media_id = userIconInfo . get ( "messagerurl" ) . toString ( ) ;
String media_id = userIconInfo . get ( "messagerurl" ) . toString ( ) ;
//这种格式得手机端显示不出来,取默认设置图片
//这种格式得手机端显示不出来,取默认设置图片
if ( media_id . startsWith ( "/weaver/weaver.file.FileDownload" ) ) {
if ( media_id . startsWith ( "/weaver/weaver.file.FileDownload" ) ) {
media_id = userIconInfo . get ( "defaultmessagerurl" ) . toString ( ) ;
media_id = userIconInfo . get ( "defaultmessagerurl" ) . toString ( ) ;
} else if ( messagerurl . length ( ) > 0 ) {
} else if ( messagerurl . length ( ) > 0 ) {
String filePath = GCONST . getRootPath ( ) + media_id ;
String filePath = GCONST . getRootPath ( ) + media_id ;
File file = new File ( filePath ) ;
File file = new File ( filePath ) ;
if ( ! file . exists ( ) ) {
if ( ! file . exists ( ) ) {
media_id = userIconInfo . get ( "defaultmessagerurl" ) . toString ( ) ;
media_id = userIconInfo . get ( "defaultmessagerurl" ) . toString ( ) ;
}
}
}
}
resourceInfo . put ( "avatar" , avatar ) ;
resourceInfo . put ( "avatar" , avatar ) ;
avatar . put ( "default" , "" ) ;
avatar . put ( "default" , "" ) ;
avatar . put ( "show_name" , userIconInfo . get ( "shortname" ) . toString ( ) ) ;
avatar . put ( "show_name" , userIconInfo . get ( "shortname" ) . toString ( ) ) ;
avatar . put ( "show_color" , userIconInfo . get ( "background" ) . toString ( ) ) ;
avatar . put ( "show_color" , userIconInfo . get ( "background" ) . toString ( ) ) ;
avatar . put ( "media_id" , media_id ) ;
avatar . put ( "media_id" , media_id ) ;
resourceList . add ( resourceInfo ) ;
resourceList . add ( resourceInfo ) ;
}
}
} catch ( Exception e ) {
} catch ( Exception e ) {
new BaseBean ( ) . writeLog ( e ) ;
new BaseBean ( ) . writeLog ( e ) ;
}
}
// new BaseBean().writeLog("resourceList",resourceList);
// new BaseBean().writeLog("resourceList",resourceList);