@ -20,6 +20,9 @@ import com.engine.organization.entity.jclimport.po.JclImportHistoryDetailPO;
import com.engine.organization.entity.jclimport.po.JclImportHistoryPO ;
import com.engine.organization.entity.jclimport.vo.JclImportHistoryDetailVO ;
import com.engine.organization.entity.job.po.JobPO ;
import com.engine.organization.entity.scheme.po.GradePO ;
import com.engine.organization.entity.scheme.po.LevelPO ;
import com.engine.organization.entity.scheme.po.SchemePO ;
import com.engine.organization.enums.LogModuleNameEnum ;
import com.engine.organization.enums.OperateTypeEnum ;
import com.engine.organization.enums.OrgImportEnum ;
@ -32,6 +35,9 @@ import com.engine.organization.mapper.hrmresource.SystemDataMapper;
import com.engine.organization.mapper.jclimport.JclImportHistoryDetailMapper ;
import com.engine.organization.mapper.jclimport.JclImportHistoryMapper ;
import com.engine.organization.mapper.job.JobMapper ;
import com.engine.organization.mapper.scheme.GradeMapper ;
import com.engine.organization.mapper.scheme.LevelMapper ;
import com.engine.organization.mapper.scheme.SchemeMapper ;
import com.engine.organization.service.ImportCommonService ;
import com.engine.organization.thread.* ;
import com.engine.organization.util.HasRightUtil ;
@ -81,7 +87,20 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ
private static final String HRM_DEPARTMENT = "hrmdepartment" ;
private static final String HRM_RESOURCE = "hrmresource" ;
static Map < String , ExtendInfoPO > importFieldsMap ;
static {
importFieldsMap = new HashMap < > ( ) ;
importFieldsMap . put ( "方案编号" , ExtendInfoPO . builder ( ) . tableName ( "jcl_org_scheme" ) . fieldName ( "scheme_no" ) . fieldNameDesc ( "方案编号" ) . isrequired ( 1 ) . controlType ( 1 ) . browserType ( "1" ) . customValue ( "[\"input\",\"text\",\"100\"]" ) . build ( ) ) ;
importFieldsMap . put ( "方案名称" , ExtendInfoPO . builder ( ) . tableName ( "jcl_org_scheme" ) . fieldName ( "scheme_name" ) . fieldNameDesc ( "方案名称" ) . isrequired ( 1 ) . controlType ( 1 ) . browserType ( "1" ) . customValue ( "[\"input\",\"text\",\"100\"]" ) . build ( ) ) ;
importFieldsMap . put ( "职级编号" , ExtendInfoPO . builder ( ) . tableName ( "jcl_org_grade" ) . fieldName ( "grade_no" ) . fieldNameDesc ( "职级编号" ) . isrequired ( 1 ) . controlType ( 1 ) . browserType ( "1" ) . customValue ( "[\"input\",\"text\",\"100\"]" ) . build ( ) ) ;
importFieldsMap . put ( "职级名称" , ExtendInfoPO . builder ( ) . tableName ( "jcl_org_grade" ) . fieldName ( "grade_name" ) . fieldNameDesc ( "职级名称" ) . isrequired ( 1 ) . controlType ( 1 ) . browserType ( "1" ) . customValue ( "[\"input\",\"text\",\"100\"]" ) . build ( ) ) ;
importFieldsMap . put ( "职等编号" , ExtendInfoPO . builder ( ) . tableName ( "jcl_org_level" ) . fieldName ( "level_no" ) . fieldNameDesc ( "职等编号" ) . isrequired ( 1 ) . controlType ( 1 ) . browserType ( "1" ) . customValue ( "[\"input\",\"text\",\"100\"]" ) . build ( ) ) ;
importFieldsMap . put ( "职等名称" , ExtendInfoPO . builder ( ) . tableName ( "jcl_org_level" ) . fieldName ( "level_name" ) . fieldNameDesc ( "职等名称" ) . isrequired ( 1 ) . controlType ( 1 ) . browserType ( "1" ) . customValue ( "[\"input\",\"text\",\"100\"]" ) . build ( ) ) ;
importFieldsMap . put ( "方案说明" , ExtendInfoPO . builder ( ) . tableName ( "jcl_org_scheme" ) . fieldName ( "scheme_description" ) . fieldNameDesc ( "方案说明" ) . isrequired ( 0 ) . controlType ( 1 ) . browserType ( "1" ) . customValue ( "[\"input\",\"text\",\"100\"]" ) . build ( ) ) ;
importFieldsMap . put ( "职等说明" , ExtendInfoPO . builder ( ) . tableName ( "jcl_org_level" ) . fieldName ( "level_description" ) . fieldNameDesc ( "职等说明" ) . isrequired ( 0 ) . controlType ( 1 ) . browserType ( "1" ) . customValue ( "[\"input\",\"text\",\"100\"]" ) . build ( ) ) ;
importFieldsMap . put ( "职级说明" , ExtendInfoPO . builder ( ) . tableName ( "jcl_org_grade" ) . fieldName ( "grade_description" ) . fieldNameDesc ( "职级说明" ) . isrequired ( 0 ) . controlType ( 1 ) . browserType ( "1" ) . customValue ( "[\"input\",\"text\",\"100\"]" ) . build ( ) ) ;
}
private ExtendInfoMapper getExtendInfoMapper ( ) {
return MapperProxyFactory . getProxy ( ExtendInfoMapper . class ) ;
}
@ -126,6 +145,10 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ
excludeFields . add ( "job_grade" ) ;
excludeFields . add ( "job_level" ) ;
break ;
case "joblevel" :
extendType = "0" ;
tableName = "JCL_ORG_SCHEME" ;
break ;
default :
errorMsg = "未找到对应的导入类型,请确认" ;
break ;
@ -138,14 +161,33 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ
return returnMaps ;
}
List < ExtendInfoPO > infoPOList = getExtendInfoMapper ( ) . listFields ( extendType , "" , tableName , ExtendInfoOperateType . LIST . getValue ( ) , "1" ) ;
List < ExtendInfoPO > filterList = infoPOList . stream ( ) . filter ( item - > ! excludeFields . contains ( item . getFieldName ( ) ) & & 6 ! = item . getControlType ( ) ) . collect ( Collectors . toList ( ) ) ;
List < FieldTransferParam > fieldDatas = filterList . stream ( ) . map ( item - > FieldTransferParam . builder ( ) . id ( item . getId ( ) . toString ( ) ) . name ( item . getFieldNameDesc ( ) ) . build ( ) ) . collect ( Collectors . toList ( ) ) ;
//fieldDatas.addAll(0, includeFields);
List < String > selectedKeys = filterList . stream ( ) . filter ( item - > ( 0 = = item . getIsSystemDefault ( ) ) & & 1 = = item . getIsrequired ( ) ) . map ( item - > item . getId ( ) . toString ( ) ) . collect ( Collectors . toList ( ) ) ;
//selectedKeys.addAll(0, selectedList);
returnMaps . put ( "data" , fieldDatas ) ;
returnMaps . put ( "selectedKeys" , selectedKeys ) ;
if ( "joblevel" . equals ( importType ) ) {
List < FieldTransferParam > fieldDatas = new ArrayList < > ( ) ;
fieldDatas . add ( FieldTransferParam . builder ( ) . id ( "1" ) . name ( "职级编号" ) . build ( ) ) ;
fieldDatas . add ( FieldTransferParam . builder ( ) . id ( "2" ) . name ( "职级名称" ) . build ( ) ) ;
fieldDatas . add ( FieldTransferParam . builder ( ) . id ( "3" ) . name ( "方案编号" ) . build ( ) ) ;
fieldDatas . add ( FieldTransferParam . builder ( ) . id ( "4" ) . name ( "方案名称" ) . build ( ) ) ;
fieldDatas . add ( FieldTransferParam . builder ( ) . id ( "5" ) . name ( "职等编号" ) . build ( ) ) ;
fieldDatas . add ( FieldTransferParam . builder ( ) . id ( "6" ) . name ( "职等名称" ) . build ( ) ) ;
fieldDatas . add ( FieldTransferParam . builder ( ) . id ( "7" ) . name ( "方案说明" ) . build ( ) ) ;
fieldDatas . add ( FieldTransferParam . builder ( ) . id ( "8" ) . name ( "职级说明" ) . build ( ) ) ;
fieldDatas . add ( FieldTransferParam . builder ( ) . id ( "9" ) . name ( "职等说明" ) . build ( ) ) ;
List < String > selectedKeys = new ArrayList < > ( ) ;
for ( int i = 0 ; i < fieldDatas . subList ( 0 , 6 ) . size ( ) ; i + + ) {
selectedKeys . add ( fieldDatas . get ( i ) . getId ( ) ) ;
}
returnMaps . put ( "data" , fieldDatas ) ;
returnMaps . put ( "selectedKeys" , selectedKeys ) ;
} else {
List < ExtendInfoPO > infoPOList = getExtendInfoMapper ( ) . listFields ( extendType , "" , tableName , ExtendInfoOperateType . LIST . getValue ( ) , "1" ) ;
List < ExtendInfoPO > filterList = infoPOList . stream ( ) . filter ( item - > ! excludeFields . contains ( item . getFieldName ( ) ) & & 6 ! = item . getControlType ( ) ) . collect ( Collectors . toList ( ) ) ;
List < FieldTransferParam > fieldDatas = filterList . stream ( ) . map ( item - > FieldTransferParam . builder ( ) . id ( item . getId ( ) . toString ( ) ) . name ( item . getFieldNameDesc ( ) ) . build ( ) ) . collect ( Collectors . toList ( ) ) ;
List < String > selectedKeys = filterList . stream ( ) . filter ( item - > ( 0 = = item . getIsSystemDefault ( ) ) & & 1 = = item . getIsrequired ( ) ) . map ( item - > item . getId ( ) . toString ( ) ) . collect ( Collectors . toList ( ) ) ;
returnMaps . put ( "data" , fieldDatas ) ;
returnMaps . put ( "selectedKeys" , selectedKeys ) ;
}
return returnMaps ;
}
@ -169,6 +211,9 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ
case "resource" :
returnMap . put ( "condition" , getResourceImportForm ( templatePath ) ) ;
break ;
case "joblevel" :
returnMap . put ( "condition" , getJobTitleImportForm ( templatePath ) ) ;
break ;
default :
returnMap . put ( "status" , "-1" ) ;
returnMap . put ( "message" , "请选择合适的导入类型" ) ;
@ -227,6 +272,9 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ
returnMap . put ( "pId" , hrmResourceImport ( operateType , excelFile , keyField ) ) ;
break ;
case "joblevel" :
returnMap . put ( "pId" , jobLevelImport ( operateType , excelFile ) ) ;
break ;
default :
break ;
}
@ -1445,6 +1493,352 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ
return importHistoryId ;
}
/ * *
* 方 案 职 等 职 级 导 入
* /
private Long jobLevelImport ( String operateType , String excelFile ) {
Long importHistoryId = saveImportLog ( "joblevel" , operateType ) ;
JclImportHistoryDetailPO historyDetailPO ;
ImageFileManager manager = new ImageFileManager ( ) ;
manager . getImageFileInfoById ( Util . getIntValue ( excelFile ) ) ;
XSSFWorkbook workbook ;
try {
workbook = new XSSFWorkbook ( manager . getInputStream ( ) ) ;
} catch ( IOException e ) {
throw new RuntimeException ( e ) ;
}
for ( int s = 0 ; s < workbook . getNumberOfSheets ( ) ; s + + ) {
// 当前sheet
XSSFSheet sheetAt = workbook . getSheetAt ( s ) ;
int lastRow = sheetAt . getLastRowNum ( ) ;
OrganizationAssert . isTrue ( lastRow > 0 , "导入数据为空" ) ;
short lastCellNum = sheetAt . getRow ( 0 ) . getLastCellNum ( ) ;
List < ExtendInfoPO > extendInfoPOS = new ArrayList < > ( ) ;
// 遍历每一行数据
nextRow :
for ( int i = 0 ; i < = lastRow ; i + + ) {
historyDetailPO = new JclImportHistoryDetailPO ( ) ;
historyDetailPO . setPid ( importHistoryId ) ;
XSSFRow row = sheetAt . getRow ( i ) ;
// 组装待处理数据
Map < String , Object > map = new HashMap < > ( ) ;
SchemePO schemePO = new SchemePO ( ) ;
SchemePO schemeNew = new SchemePO ( ) ;
;
GradePO gradePO = new GradePO ( ) ;
GradePO gradeNew = new GradePO ( ) ;
LevelPO levelPO = new LevelPO ( ) ;
LevelPO levelNew = new LevelPO ( ) ;
historyDetailPO . setRowNums ( String . valueOf ( i + 1 ) ) ;
for ( int cellIndex = 0 ; cellIndex < lastCellNum ; cellIndex + + ) {
XSSFCell cell = row . getCell ( ( short ) cellIndex ) ;
String cellValue = getCellValue ( cell ) . trim ( ) ;
if ( i = = 0 ) {
// 首行 初始化字段信息
ExtendInfoPO extendInfoPO = importFieldsMap . get ( cellValue ) ;
extendInfoPOS . add ( extendInfoPO ) ;
} else {
ExtendInfoPO infoPO = extendInfoPOS . get ( cellIndex ) ;
// 数据校验
if ( infoPO . getIsrequired ( ) = = 1 & & StringUtils . isBlank ( cellValue ) ) {
historyDetailPO . setOperateDetail ( infoPO . getFieldNameDesc ( ) + "为必填项" ) ;
historyDetailPO . setStatus ( "0" ) ;
saveImportDetailLog ( historyDetailPO ) ;
continue nextRow ;
}
Object reallyValue ;
try {
// 数据格式转换
reallyValue = getReallyValue ( infoPO , cellValue ) ;
} catch ( Exception e ) {
historyDetailPO . setOperateDetail ( cellValue + "转换失败" ) ;
historyDetailPO . setStatus ( "0" ) ;
saveImportDetailLog ( historyDetailPO ) ;
continue nextRow ;
}
if ( StringUtils . isNotBlank ( cellValue ) & & StringUtils . isBlank ( Util . null2String ( reallyValue ) ) & & ! "ec_company" . equals ( infoPO . getFieldName ( ) ) & & ! "ec_department" . equals ( infoPO . getFieldName ( ) ) ) {
historyDetailPO . setOperateDetail ( infoPO . getFieldNameDesc ( ) + "数据转换失败,未找到对应数据" ) ;
historyDetailPO . setStatus ( "0" ) ;
saveImportDetailLog ( historyDetailPO ) ;
continue nextRow ;
}
map . put ( infoPO . getFieldName ( ) , reallyValue ) ;
// 方案页校验
if ( "scheme_no" . equals ( infoPO . getFieldName ( ) ) & & s = = 0 & & "add" . equals ( operateType ) ) {
List < SchemePO > schemePOS = MapperProxyFactory . getProxy ( SchemeMapper . class ) . listByNo ( Util . null2String ( reallyValue ) ) ;
if ( schemePOS . size ( ) > 0 ) {
historyDetailPO . setOperateDetail ( "方案编号[" + reallyValue + "]与原有编号重复" ) ;
historyDetailPO . setRelatedName ( "方案页导入" ) ;
historyDetailPO . setStatus ( "0" ) ;
saveImportDetailLog ( historyDetailPO ) ;
continue nextRow ;
}
}
// 职等页校验
if ( "scheme_no" . equals ( infoPO . getFieldName ( ) ) & & s = = 1 ) {
List < SchemePO > schemePOS = MapperProxyFactory . getProxy ( SchemeMapper . class ) . listByNo ( Util . null2String ( reallyValue ) ) ;
if ( schemePOS . size ( ) = = 0 ) {
historyDetailPO . setOperateDetail ( "未找到编号为[" + reallyValue + "]的方案" ) ;
historyDetailPO . setRelatedName ( "职等页导入" ) ;
historyDetailPO . setStatus ( "0" ) ;
saveImportDetailLog ( historyDetailPO ) ;
continue nextRow ;
}
}
// 职级页校验
if ( "scheme_no" . equals ( infoPO . getFieldName ( ) ) & & s = = 2 ) {
List < SchemePO > schemePOS = MapperProxyFactory . getProxy ( SchemeMapper . class ) . listByNo ( Util . null2String ( reallyValue ) ) ;
if ( schemePOS . size ( ) = = 0 ) {
historyDetailPO . setOperateDetail ( "未找到编号为[" + reallyValue + "]的方案" ) ;
historyDetailPO . setRelatedName ( "职级页导入" ) ;
historyDetailPO . setStatus ( "0" ) ;
saveImportDetailLog ( historyDetailPO ) ;
continue nextRow ;
}
}
if ( "level_no" . equals ( infoPO . getFieldName ( ) ) & & s = = 2 ) {
String [ ] split = Util . null2String ( reallyValue ) . split ( "," ) ;
if ( split . length > 0 ) {
for ( int index = 0 ; index < split . length - 1 ; index + + ) {
List < LevelPO > levelPOS = MapperProxyFactory . getProxy ( LevelMapper . class ) . listByNo ( split [ index ] ) ;
if ( levelPOS . size ( ) = = 0 ) {
historyDetailPO . setOperateDetail ( "未找到编号为[" + reallyValue + "]的职等" ) ;
historyDetailPO . setRelatedName ( "职级页导入" ) ;
historyDetailPO . setStatus ( "0" ) ;
saveImportDetailLog ( historyDetailPO ) ;
continue nextRow ;
}
}
}
}
}
}
// 校验、数据交互
if ( i = = 0 ) {
continue ;
}
map . put ( "creator" , user . getUID ( ) ) ;
map . put ( "delete_type" , 0 ) ;
Date currDate = new Date ( ) ;
map . put ( "create_time" , currDate ) ;
map . put ( "update_time" , currDate ) ;
// 禁用表示为空,默认启用
map . put ( "forbidden_tag" , 0 ) ;
map . put ( "is_used" , 1 ) ;
if ( "add" . equals ( operateType ) ) {
if ( s = = 0 ) {
schemePO . setSchemeNo ( ( String ) map . get ( "scheme_no" ) ) ;
schemePO . setSchemeName ( ( String ) map . get ( "scheme_name" ) ) ;
schemePO . setSchemeDescription ( ( String ) map . get ( "scheme_description" ) ) ;
schemePO . setForbiddenTag ( ( int ) map . get ( "forbidden_tag" ) ) ;
schemePO . setIsUsed ( 1 ) ;
schemePO . setCreator ( ( long ) user . getUID ( ) ) ;
schemePO . setDeleteType ( ( int ) map . get ( "delete_type" ) ) ;
schemePO . setCreateTime ( ( Date ) map . get ( "create_time" ) ) ;
schemePO . setUpdateTime ( ( Date ) map . get ( "update_time" ) ) ;
MapperProxyFactory . getProxy ( SchemeMapper . class ) . insertIgnoreNull ( schemePO ) ;
} else if ( s = = 1 ) {
String schemeNo = ( String ) map . get ( "scheme_no" ) ;
String levelNo = ( String ) map . get ( "level_no" ) ;
schemeNew = MapperProxyFactory . getProxy ( SchemeMapper . class ) . getSchemeByNo ( schemeNo ) ;
if ( schemeNew ! = null ) {
levelNew = MapperProxyFactory . getProxy ( LevelMapper . class ) . getLevelByNoAndSid ( levelNo , schemeNew . getId ( ) ) ;
if ( levelNew ! = null ) {
historyDetailPO . setRelatedName ( "职等编号" ) ;
historyDetailPO . setOperateDetail ( "职等页导入:同一方案" + schemeNo + "下,职等编号不可重复" ) ;
historyDetailPO . setStatus ( "0" ) ;
saveImportDetailLog ( historyDetailPO ) ;
continue nextRow ;
} else {
levelPO . setLevelNo ( levelNo ) ;
levelPO . setLevelName ( ( String ) map . get ( "level_name" ) ) ;
levelPO . setDescription ( ( String ) map . get ( "level_description" ) ) ;
//关联方案id
levelPO . setSchemeId ( schemeNew . getId ( ) ) ;
levelPO . setForbiddenTag ( ( int ) map . get ( "forbidden_tag" ) ) ;
levelPO . setIsUsed ( 1 ) ;
levelPO . setCreator ( ( long ) user . getUID ( ) ) ;
levelPO . setDeleteType ( ( int ) map . get ( "delete_type" ) ) ;
levelPO . setCreateTime ( ( Date ) map . get ( "create_time" ) ) ;
levelPO . setUpdateTime ( ( Date ) map . get ( "update_time" ) ) ;
MapperProxyFactory . getProxy ( LevelMapper . class ) . insertIgnoreNull ( levelPO ) ;
}
} else {
historyDetailPO . setRelatedName ( "职等页导入" ) ;
historyDetailPO . setOperateDetail ( "未找到编号为[" + schemeNo + "]的方案" ) ;
historyDetailPO . setStatus ( "0" ) ;
saveImportDetailLog ( historyDetailPO ) ;
continue nextRow ;
}
} else if ( s = = 2 ) {
String gradeNo = ( String ) map . get ( "grade_no" ) ;
String schemeNo = ( String ) map . get ( "scheme_no" ) ;
String levelNo = ( String ) map . get ( "level_no" ) ;
schemeNew = MapperProxyFactory . getProxy ( SchemeMapper . class ) . getSchemeByNo ( schemeNo ) ;
if ( schemeNew = = null ) {
historyDetailPO . setRelatedName ( "职级页导入" ) ;
historyDetailPO . setOperateDetail ( "未找到编号为[" + schemeNo + "]的方案" ) ;
historyDetailPO . setStatus ( "0" ) ;
saveImportDetailLog ( historyDetailPO ) ;
continue nextRow ;
}
gradeNew = MapperProxyFactory . getProxy ( GradeMapper . class ) . getGradeByNoAndSid ( gradeNo , schemeNew . getId ( ) ) ;
if ( gradeNew = = null ) {
historyDetailPO . setRelatedName ( "职级页导入" ) ;
historyDetailPO . setOperateDetail ( "未找到编号为[" + schemeNo + "]的职等" ) ;
historyDetailPO . setStatus ( "0" ) ;
saveImportDetailLog ( historyDetailPO ) ;
continue nextRow ;
}
gradePO . setGradeNo ( gradeNo ) ;
gradePO . setGradeName ( ( String ) map . get ( "grade_name" ) ) ;
gradePO . setDescription ( ( String ) map . get ( "grade_description" ) ) ;
// 关联方案id
gradePO . setSchemeId ( schemeNew . getId ( ) ) ;
gradePO . setGradeNo ( ( String ) map . get ( "grade_no" ) ) ;
gradePO . setForbiddenTag ( ( int ) map . get ( "forbidden_tag" ) ) ;
gradePO . setIsUsed ( 1 ) ;
gradePO . setCreator ( ( long ) user . getUID ( ) ) ;
gradePO . setDeleteType ( ( int ) map . get ( "delete_type" ) ) ;
gradePO . setCreateTime ( ( Date ) map . get ( "create_time" ) ) ;
gradePO . setUpdateTime ( ( Date ) map . get ( "update_time" ) ) ;
String [ ] split = levelNo . split ( "," ) ;
String levelIds = null ;
if ( split . length > 0 ) {
for ( int index = 0 ; index < split . length ; index + + ) {
levelNew = MapperProxyFactory . getProxy ( LevelMapper . class ) . getLevelByNoAndSid ( split [ index ] , schemeNew . getId ( ) ) ;
if ( levelIds ! = null ) {
levelIds = levelIds + "," + levelNew . getId ( ) ;
} else {
levelIds = String . valueOf ( levelNew . getId ( ) ) ;
}
}
}
if ( gradeNew ! = null ) {
historyDetailPO . setRelatedName ( "职级页导入" ) ;
historyDetailPO . setOperateDetail ( "同一方案[" + schemeNo + "]下,职级编号不可重复" ) ;
historyDetailPO . setStatus ( "0" ) ;
saveImportDetailLog ( historyDetailPO ) ;
continue nextRow ;
} else {
// 关联职等id
gradePO . setLevelId ( levelIds ) ;
MapperProxyFactory . getProxy ( GradeMapper . class ) . insertIgnoreNull ( gradePO ) ;
}
}
historyDetailPO . setOperateDetail ( "添加成功" ) ;
historyDetailPO . setStatus ( "1" ) ;
saveImportDetailLog ( historyDetailPO ) ;
} else if ( "update" . equals ( operateType ) ) {
if ( s = = 0 ) {
schemeNew = MapperProxyFactory . getProxy ( SchemeMapper . class ) . getSchemeByNo ( ( String ) map . get ( "scheme_no" ) ) ;
if ( schemeNew ! = null ) {
schemeNew . setSchemeName ( ( String ) map . get ( "scheme_name" ) ) ;
schemeNew . setSchemeDescription ( ( String ) map . get ( "scheme_description" ) ) ;
schemeNew . setUpdateTime ( ( Date ) map . get ( "update_time" ) ) ;
MapperProxyFactory . getProxy ( SchemeMapper . class ) . updateScheme ( schemeNew ) ;
} else {
historyDetailPO . setRelatedName ( "方案更新" ) ;
historyDetailPO . setOperateDetail ( "未找到编号为[" + map . get ( "scheme_no" ) + "]的方案" ) ;
historyDetailPO . setStatus ( "0" ) ;
saveImportDetailLog ( historyDetailPO ) ;
continue nextRow ;
}
} else if ( s = = 1 ) {
String schemeNo = ( String ) map . get ( "scheme_no" ) ;
String levelNo = ( String ) map . get ( "level_no" ) ;
schemeNew = MapperProxyFactory . getProxy ( SchemeMapper . class ) . getSchemeByNo ( schemeNo ) ;
if ( schemeNew ! = null ) {
levelNew = MapperProxyFactory . getProxy ( LevelMapper . class ) . getLevelByNoAndSid ( levelNo , schemeNew . getId ( ) ) ;
if ( levelNew ! = null ) {
levelNew . setLevelName ( ( String ) map . get ( "level_name" ) ) ;
levelNew . setDescription ( ( String ) map . get ( "level_description" ) ) ;
//关联方案id
levelNew . setSchemeId ( schemeNew . getId ( ) ) ;
levelNew . setUpdateTime ( ( Date ) map . get ( "update_time" ) ) ;
MapperProxyFactory . getProxy ( LevelMapper . class ) . updateLevel ( levelNew ) ;
} else {
historyDetailPO . setRelatedName ( "职等页更新" ) ;
historyDetailPO . setOperateDetail ( "未找到编号为[" + schemeNo + "]的方案" ) ;
historyDetailPO . setStatus ( "0" ) ;
saveImportDetailLog ( historyDetailPO ) ;
continue nextRow ;
}
} else {
historyDetailPO . setRelatedName ( "职等页更新" ) ;
historyDetailPO . setOperateDetail ( "未找到编号为[" + schemeNo + "]的方案,无法更新" ) ;
historyDetailPO . setStatus ( "0" ) ;
saveImportDetailLog ( historyDetailPO ) ;
continue nextRow ;
}
} else if ( s = = 2 ) {
String gradeNo = ( String ) map . get ( "grade_no" ) ;
String schemeNo = ( String ) map . get ( "scheme_no" ) ;
String levelNo = ( String ) map . get ( "level_no" ) ;
schemeNew = MapperProxyFactory . getProxy ( SchemeMapper . class ) . getSchemeByNo ( schemeNo ) ;
if ( schemeNew = = null ) {
historyDetailPO . setRelatedName ( "职级页更新" ) ;
historyDetailPO . setOperateDetail ( "未找到编号为[" + schemeNo + "]的方案" ) ;
historyDetailPO . setStatus ( "0" ) ;
saveImportDetailLog ( historyDetailPO ) ;
continue nextRow ;
}
gradeNew = MapperProxyFactory . getProxy ( GradeMapper . class ) . getGradeByNoAndSid ( gradeNo , schemeNew . getId ( ) ) ;
if ( gradeNew = = null ) {
historyDetailPO . setRelatedName ( "职级页更新" ) ;
historyDetailPO . setOperateDetail ( "未找到编号为[" + schemeNo + "]的职等" ) ;
historyDetailPO . setStatus ( "0" ) ;
saveImportDetailLog ( historyDetailPO ) ;
continue nextRow ;
}
String [ ] split = levelNo . split ( "," ) ;
String levelIds = null ;
if ( split . length > 0 ) {
for ( int index = 0 ; index < split . length ; index + + ) {
levelNew = MapperProxyFactory . getProxy ( LevelMapper . class ) . getLevelByNoAndSid ( split [ index ] , schemeNew . getId ( ) ) ;
if ( levelIds ! = null ) {
levelIds = levelIds + "," + levelNew . getId ( ) ;
} else {
levelIds = String . valueOf ( levelNew . getId ( ) ) ;
}
}
}
if ( gradeNew ! = null ) {
gradeNew . setSchemeId ( schemeNew . getId ( ) ) ;
gradeNew . setGradeName ( ( String ) map . get ( "grade_name" ) ) ;
gradeNew . setDescription ( ( String ) map . get ( "grade_description" ) ) ;
// 关联职等id
gradeNew . setLevelId ( levelIds ) ;
gradeNew . setUpdateTime ( ( Date ) map . get ( "update_time" ) ) ;
MapperProxyFactory . getProxy ( GradeMapper . class ) . updateGrade ( gradeNew ) ;
} else {
historyDetailPO . setRelatedName ( "职级页更新" ) ;
historyDetailPO . setOperateDetail ( "未找到编号[" + schemeNo + "]的职级,无法更新" ) ;
historyDetailPO . setStatus ( "0" ) ;
saveImportDetailLog ( historyDetailPO ) ;
continue nextRow ;
}
}
historyDetailPO . setOperateDetail ( "更新成功" ) ;
historyDetailPO . setStatus ( "1" ) ;
saveImportDetailLog ( historyDetailPO ) ;
}
}
}
return importHistoryId ;
}
/ * *
* 读 取 表 格 文 本 内 容
@ -1585,6 +1979,9 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ
// 根据选择字段、生成对应的导入模板
String [ ] split = columns . split ( "," ) ;
List < Object > columnList = new ArrayList < > ( Arrays . asList ( split ) ) ;
List < Object > schemeList = new ArrayList < > ( ) ;
List < Object > levelList = new ArrayList < > ( ) ;
List < Object > gradeList = new ArrayList < > ( ) ;
Object companyColumn = "" ;
Object departmentColumn = "" ;
// 排序
@ -1604,6 +2001,36 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ
departmentColumn = column ;
iterator . remove ( ) ;
}
if ( "方案编号" . equals ( column ) ) {
schemeList . add ( column ) ;
levelList . add ( column ) ;
gradeList . add ( column ) ;
}
if ( "方案名称" . equals ( column ) ) {
schemeList . add ( column ) ;
}
if ( "方案说明" . equals ( column ) ) {
schemeList . add ( column ) ;
}
if ( "职等编号" . equals ( column ) ) {
levelList . add ( 0 , column ) ;
gradeList . add ( column ) ;
}
if ( "职等名称" . equals ( column ) ) {
levelList . add ( 1 , column ) ;
}
if ( "职等说明" . equals ( column ) ) {
levelList . add ( column ) ;
}
if ( "职级编号" . equals ( column ) ) {
gradeList . add ( 0 , column ) ;
}
if ( "职级名称" . equals ( column ) ) {
gradeList . add ( 1 , column ) ;
}
if ( "职级说明" . equals ( column ) ) {
gradeList . add ( column ) ;
}
}
if ( StringUtils . isNotBlank ( departmentColumn . toString ( ) ) ) {
columnList . add ( 0 , departmentColumn ) ;
@ -1616,7 +2043,20 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ
List < List < Object > > excelSheetData = new ArrayList < > ( ) ;
excelSheetData . add ( columnList ) ;
String outPutPath = GCONST . getRootPath ( ) + "hrm" + File . separator + "import" + File . separator + "template" + File . separator + user . getUID ( ) ;
XSSFWorkbook sheets = ExcelUtil . genWorkbookV2 ( excelSheetData , importType ) ;
XSSFWorkbook sheets = new XSSFWorkbook ( ) ;
if ( "joblevel" . equals ( importType ) ) {
excelSheetData . clear ( ) ;
excelSheetData . add ( schemeList ) ;
ExcelUtil . genWorkbookV3 ( sheets , excelSheetData , 0 , "方案" ) ;
excelSheetData . clear ( ) ;
excelSheetData . add ( levelList ) ;
ExcelUtil . genWorkbookV3 ( sheets , excelSheetData , 1 , "职等" ) ;
excelSheetData . clear ( ) ;
excelSheetData . add ( gradeList ) ;
ExcelUtil . genWorkbookV3 ( sheets , excelSheetData , 2 , "职级" ) ;
} else {
sheets = ExcelUtil . genWorkbookV2 ( excelSheetData , importType ) ;
}
String excelPath = outPutPath + File . separator + importType + ".xls" ;
File excelPathFile = new File ( excelPath ) ;
if ( ! excelPathFile . exists ( ) ) {