@ -15,7 +15,6 @@ import weaver.general.Util;
import weaver.hrm.resource.ResourceComInfo ;
import weaver.hrm.resource.ResourceComInfo ;
import java.util.* ;
import java.util.* ;
import java.util.stream.Collectors ;
/ * *
/ * *
* @author : dxfeng
* @author : dxfeng
@ -182,24 +181,70 @@ public class ChartServiceImpl extends Service implements ChartService {
String dimension = Util . null2String ( params . get ( "fclass" ) ) ;
String dimension = Util . null2String ( params . get ( "fclass" ) ) ;
dimension = StringUtils . isBlank ( dimension ) ? "0" : dimension ;
dimension = StringUtils . isBlank ( dimension ) ? "0" : dimension ;
// 是否显示岗位
String showJobStr = Util . null2String ( params . get ( "showJob" ) ) ;
boolean showJob = "1" . equals ( showJobStr ) ;
// 初始化表名
// 初始化表名
initTableNameByClass ( dimension ) ;
initTableNameByClass ( dimension ) ;
List < ChartPO > dataList = new ArrayList < > ( ) ;
List < ChartPO > dataList = new ArrayList < > ( ) ;
List < ChartPO > resourceList = new ArrayList < > ( ) ;
List < ChartPO > jobTitleList = new ArrayList < > ( ) ;
Set < String > jobTitleSet = new HashSet < > ( ) ;
int departmentOnJob = 0 ;
int departmentOnJob = 0 ;
int resourceNum ;
RecordSet rs = new RecordSet ( ) ;
RecordSet rs = new RecordSet ( ) ;
// TODO 查询当前实际的数据
// TODO 查询当前实际的数据
String sql ;
String sql ;
// 查询 当当前部门下的人员
// 查询 部门本身
if ( "0" . equals ( dimension ) ) {
if ( hasVirtualFields ) {
sql = "select a.id,a. lastname as 'name' ,a.jobtitle ,a.belongto ,a.companyworkyear from hrmresource a where a.departmentid = '" + departmentId + "'" ;
sql = "select a.id,a. departmentname as 'name',b.bmfzr,b.bmlx as 'isvitual' from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where a.id = '" + departmentId + "'" ;
} else {
} else {
sql = "select a.id,a.lastname as 'name' ,a.jobtitle ,a.belongto ,a.companyworkyear from hrmresource a inner join hrmresourcevirtual b on a.id = b.resourceid where b.departmentid = '" + departmentId + "'" ;
sql = "select a.id,a.departmentname as 'name',b.bmfzr from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where a.id = '" + departmentId + "'" ;
}
rs . executeQuery ( sql ) ;
ChartPO departmentChartPO = new ChartPO ( ) ;
if ( rs . next ( ) ) {
String fLeader = Util . null2String ( rs . getString ( "bmfzr" ) ) ;
departmentChartPO . setFtype ( "2" ) ;
departmentChartPO . setFobjid ( departmentId ) ;
departmentChartPO . setId ( rootId ) ;
departmentChartPO . setFname ( rs . getString ( "name" ) ) ;
// 岗位处理后的ID
departmentChartPO . setExpand ( "1" ) ;
departmentChartPO . setFisvitual ( rs . getString ( "isvitual" ) ) ;
// 部门负责人
departmentChartPO . setFleader ( getDepartmentLeader ( fLeader ) ) ;
dataList . add ( departmentChartPO ) ;
}
}
if ( showJob ) {
// 查询部门下的岗位
sql = "select a.id,a.jobtitlename as 'name' from hrmjobtitles a inner join jcl_org_job b on a.id = b.ec_jobtitle where b.ec_department = '" + departmentId + "'" ;
rs . executeQuery ( sql ) ;
rs . executeQuery ( sql ) ;
while ( rs . next ( ) ) {
ChartPO chartPO = new ChartPO ( ) ;
chartPO . setFtype ( "3" ) ;
chartPO . setFobjid ( rs . getString ( "id" ) ) ;
chartPO . setId ( departmentId + "_" + chartPO . getFobjid ( ) ) ;
chartPO . setFname ( rs . getString ( "name" ) ) ;
// 岗位处理后的ID
chartPO . setParentId ( rootId ) ;
chartPO . setExpand ( "1" ) ;
chartPO . setHasChildren ( "1" ) ;
jobTitleList . add ( chartPO ) ;
}
if ( "0" . equals ( dimension ) ) {
sql = "select a.id,a.lastname as 'name' ,a.jobtitle ,a.belongto ,a.companyworkyear from hrmresource a where a.status < 4 and a.departmentid = ? and a.jobtitle = ?" ;
} else {
sql = "select a.id,a.lastname as 'name' ,a.jobtitle ,a.belongto ,a.companyworkyear from hrmresource a inner join hrmresourcevirtual b on a.id = b.resourceid where a.status < 4 and b.departmentid = ? and a.jobtitle = ?" ;
}
// 遍历岗位、查询对应岗位下的人员
for ( ChartPO jobTitlePO : jobTitleList ) {
resourceNum = 0 ;
rs . executeQuery ( sql , departmentId , jobTitlePO . getFobjid ( ) ) ;
while ( rs . next ( ) ) {
while ( rs . next ( ) ) {
String jobTitle = Util . null2String ( rs . getString ( "jobtitle" ) ) ;
String jobTitle = Util . null2String ( rs . getString ( "jobtitle" ) ) ;
ChartPO chartPO = new ChartPO ( ) ;
ChartPO chartPO = new ChartPO ( ) ;
@ -218,60 +263,40 @@ public class ChartServiceImpl extends Service implements ChartService {
} catch ( Exception e ) {
} catch ( Exception e ) {
throw new RuntimeException ( e ) ;
throw new RuntimeException ( e ) ;
}
}
resourceList . add ( chartPO ) ;
resourceNum + + ;
dataList . add ( chartPO ) ;
jobTitleSet . add ( jobTitle ) ;
}
}
Map < String , List < ChartPO > > resourceMap = resourceList . stream ( ) . collect ( Collectors . groupingBy ( ChartPO : : getParentId ) ) ;
jobTitlePO . setFonjob ( resourceNum ) ;
// 查询人员的岗位
departmentOnJob + = resourceNum ;
if ( CollectionUtils . isNotEmpty ( jobTitleSet ) ) {
dataList . add ( jobTitlePO ) ;
sql = "select a.id,a.jobtitlename as 'name' from hrmjobtitles a where a.id in(" + StringUtils . join ( jobTitleSet , "," ) + ")" ;
}
rs . executeQuery ( sql ) ;
departmentChartPO . setHasChildren ( CollectionUtils . isNotEmpty ( jobTitleList ) ? "1" : "0" ) ;
} else {
// 直接查询岗位下的人员
sql = "select a.id,a.lastname as 'name' ,a.jobtitle ,a.belongto ,a.companyworkyear from hrmresource a where a.status < 4 and a.departmentid = ? " ;
rs . executeQuery ( sql , departmentId ) ;
while ( rs . next ( ) ) {
while ( rs . next ( ) ) {
ChartPO chartPO = new ChartPO ( ) ;
ChartPO chartPO = new ChartPO ( ) ;
chartPO . setFtype ( "3" ) ;
chartPO . setFtype ( " 4 ") ;
chartPO . setFobjid ( rs . getString ( "id" ) ) ;
chartPO . setFobjid ( rs . getString ( "id" ) ) ;
chartPO . setId ( departmentId + "_" + chartPO. getFobjid ( ) ) ;
chartPO . setId ( chartPO. getFobjid ( ) ) ;
chartPO . setFname ( rs . getString ( "name" ) ) ;
chartPO . setFname ( rs . getString ( "name" ) ) ;
// 岗位处理后的ID
// 岗位处理后的ID
chartPO . setParentId ( rootId ) ;
chartPO . setParentId ( rootId ) ;
chartPO . setExpand ( "1" ) ;
chartPO . setExpand ( "0" ) ;
chartPO . setHasChildren ( "1" ) ;
chartPO . setHasChildren ( "0" ) ;
dataList . add ( chartPO ) ;
chartPO . setBelongto ( Util . null2String ( rs . getString ( "belongto" ) ) ) ;
chartPO . setCompanyWorkYear ( rs . getString ( "companyworkyear" ) ) ;
// 避免出现人员没有上级岗位的情况
try {
List < ChartPO > chartPOS = resourceMap . get ( chartPO . getId ( ) ) ;
chartPO . setFleaderimg ( new ResourceComInfo ( ) . getMessagerUrls ( chartPO . getId ( ) ) ) ;
if ( CollectionUtils . isNotEmpty ( chartPOS ) ) {
} catch ( Exception e ) {
dataList . addAll ( chartPOS ) ;
throw new RuntimeException ( e ) ;
chartPO . setFonjob ( chartPOS . size ( ) ) ;
departmentOnJob + = chartPO . getFonjob ( ) ;
}
}
}
// 查询部门本身
if ( hasVirtualFields ) {
sql = "select a.id,a.departmentname as 'name',b.bmfzr,b.bmlx as 'isvitual' from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where a.id = '" + departmentId + "'" ;
} else {
sql = "select a.id,a.departmentname as 'name',b.bmfzr from " + DEPARTMENT_TABLE + " a left join hrmdepartmentdefined b on a.id = b.deptid where a.id = '" + departmentId + "'" ;
}
}
rs . executeQuery ( sql ) ;
if ( rs . next ( ) ) {
String fLeader = Util . null2String ( rs . getString ( "bmfzr" ) ) ;
ChartPO chartPO = new ChartPO ( ) ;
chartPO . setFtype ( "2" ) ;
chartPO . setFobjid ( departmentId ) ;
chartPO . setId ( rootId ) ;
chartPO . setFname ( rs . getString ( "name" ) ) ;
// 岗位处理后的ID
chartPO . setExpand ( "1" ) ;
chartPO . setHasChildren ( CollectionUtils . isNotEmpty ( dataList ) ? "1" : "0" ) ;
chartPO . setFonjob ( departmentOnJob ) ;
chartPO . setFisvitual ( rs . getString ( "isvitual" ) ) ;
// 部门负责人
chartPO . setFleader ( getDepartmentLeader ( fLeader ) ) ;
dataList . add ( chartPO ) ;
dataList . add ( chartPO ) ;
departmentOnJob + + ;
}
}
}
departmentChartPO . setFonjob ( departmentOnJob ) ;
Map < String , Object > result = new HashMap < > ( ) ;
Map < String , Object > result = new HashMap < > ( ) ;