package com.api.hrm.service ;
import java.io.File ;
import java.lang.reflect.Method ;
import java.text.SimpleDateFormat ;
import java.util.* ;
import javax.servlet.http.HttpServletRequest ;
import javax.servlet.http.HttpServletResponse ;
import javax.servlet.http.HttpSession ;
import javax.ws.rs.core.Context ;
import com.alibaba.fastjson.JSONObject ;
import com.api.doc.detail.util.DocDownloadCheckUtil ;
import com.api.hrm.bean.HrmFieldBean ;
import com.api.hrm.bean.RightMenu ;
import com.api.hrm.bean.RightMenuType ;
import com.api.hrm.util.HrmFieldSearchConditionComInfo ;
import com.api.hrm.util.HrmFieldUtil ;
import com.api.hrm.util.ServiceUtil ;
import com.api.browser.bean.SearchConditionItem ;
import com.api.browser.bean.SearchConditionOption ;
import com.cloudstore.dev.api.util.TextUtil ;
import com.engine.common.biz.SimpleBizLogger ;
import com.engine.common.constant.BizLogOperateType ;
import com.engine.common.constant.BizLogSmallType4Hrm ;
import com.engine.common.constant.BizLogType ;
import com.engine.common.entity.BizLogContext ;
import com.engine.common.service.HrmCommonService ;
import com.engine.common.service.impl.HrmCommonServiceImpl ;
import com.engine.common.util.LogUtil ;
import com.engine.common.util.ParamUtil ;
import com.engine.hrm.biz.HrmFieldManager ;
import com.engine.hrm.entity.RuleCodeType ;
import com.engine.hrm.util.CodeRuleManager ;
import com.engine.hrm.util.face.HrmFaceCheckManager ;
import com.engine.kq.wfset.util.KQ122Util ;
import com.engine.portal.biz.constants.ModuleConstants ;
import com.engine.portal.biz.nonstandardfunction.SysModuleInfoBiz ;
import com.engine.hrm.util.face.ValidateFieldManager ;
import com.engine.hrm.util.face.bean.CheckItemBean ;
import ln.LN ;
import org.apache.commons.collections.CollectionUtils ;
import org.apache.commons.lang3.StringUtils ;
import weaver.hrm.definedfield.HrmFieldComInfo ;
import weaver.hrm.job.JobCallComInfo ;
import weaver.blog.BlogShareManager ;
import weaver.common.DateUtil ;
import weaver.common.StringUtil ;
import weaver.conn.RecordSet ;
import weaver.conn.RecordSetTrans ;
import weaver.cowork.CoworkShareManager ;
import weaver.cpt.search.CptSearchComInfo ;
import weaver.crm.CrmShareBase ;
import weaver.docs.docs.CustomFieldManager ;
import weaver.docs.search.DocSearchComInfo ;
import weaver.file.FileUpload ;
import weaver.file.ImageFileManager ;
import weaver.file.Prop ;
import weaver.filter.XssUtil ;
import weaver.formmode.cuspage.cpt.Cpt4modeUtil ;
import weaver.general.BaseBean ;
import weaver.general.GCONST ;
import weaver.general.StaticObj ;
import weaver.general.Util ;
import weaver.hrm.HrmUserVarify ;
import weaver.hrm.User ;
import weaver.hrm.appdetach.AppDetachComInfo ;
import weaver.hrm.common.DbFunctionUtil ;
import weaver.hrm.company.DepartmentComInfo ;
import weaver.hrm.company.SubCompanyComInfo ;
import weaver.hrm.companyvirtual.DepartmentVirtualComInfo ;
import weaver.hrm.definedfield.HrmFieldGroupComInfo ;
import weaver.hrm.finance.SalaryManager ;
import weaver.hrm.job.JobActivitiesComInfo ;
import weaver.hrm.job.JobTitlesComInfo ;
import weaver.hrm.location.LocationComInfo ;
import weaver.hrm.moduledetach.ManageDetachComInfo ;
import weaver.hrm.privacy.PrivacyBaseComInfo ;
import weaver.hrm.privacy.PrivacyComInfo ;
import weaver.hrm.privacy.PrivacyUtil ;
import weaver.hrm.privacy.UserPrivacyComInfo ;
import weaver.hrm.resource.* ;
import weaver.hrm.settings.ChgPasswdReminder ;
import weaver.hrm.settings.RemindSettings ;
import weaver.hrm.tools.HrmResourceFile ;
import weaver.hrm.tools.HrmValidate ;
//import weaver.interfaces.email.CoreMailAPI;
import weaver.interfaces.hrm.HrmServiceManager ;
import weaver.license.PluginUserCheck ;
import weaver.login.Account ;
import weaver.login.VerifyLogin ;
import weaver.proj.search.SearchComInfo ;
import weaver.rtx.OrganisationCom ;
import weaver.rtx.OrganisationComRunnable ;
import weaver.system.SysRemindWorkflow ;
import weaver.systeminfo.MouldStatusCominfo ;
import weaver.systeminfo.SysMaintenanceLog ;
import weaver.systeminfo.SystemEnv ;
import weaver.systeminfo.language.LanguageComInfo ;
import weaver.systeminfo.setting.HrmUserSettingComInfo ;
import weaver.systeminfo.systemright.CheckSubCompanyRight ;
import weaver.wechat.util.Utils ;
import weaver.workflow.search.WorkflowRequestUtil ;
import weaver.encrypt.EncryptUtil ;
/ * * *
* 人 员 卡 片
* @author lvyi
*
* /
public class HrmResourceBaseService extends BaseBean {
private static final char separator = Util . getSeparator ( ) ;
private String today = DateUtil . getCurrentDate ( ) ;
private boolean isMobx = false ;
private String id = "" ;
/ * *
* 人 员 卡 片 头 部 信 息
*
* @param request
* @param response
* @return
* /
public String getResourceBaseTitle ( HttpServletRequest request , HttpServletResponse response ) {
Map < String , Object > retmap = new HashMap < String , Object > ( ) ;
try {
User user = HrmUserVarify . getUser ( request , response ) ;
AppDetachComInfo adci = new AppDetachComInfo ( ) ;
HrmListValidate hrmListValidate = new HrmListValidate ( ) ;
boolean hasRight = false ;
String id = Util . null2String ( request . getParameter ( "id" ) ) ;
if ( id . equals ( "" ) | | id . equals ( Util . null2String ( user . getUID ( ) + "" ) ) ) {
id = String . valueOf ( user . getUID ( ) ) ;
hasRight = true ;
} else {
hasRight = adci . checkUserAppDetach ( id , "1" , user ) = = 1 ;
}
//二开权限校验
hasRight = checkRyShow ( user . getUID ( ) , id ) ;
retmap . put ( "hasRight" , hasRight ) ;
if ( ! hasRight ) {
return JSONObject . toJSONString ( retmap ) ;
}
ResourceComInfo ResourceComInfo = new ResourceComInfo ( ) ;
DepartmentComInfo DepartmentComInfo = new DepartmentComInfo ( ) ;
Map < String , Object > jsondata = new HashMap < String , Object > ( ) ;
RecordSet rs = new RecordSet ( ) ;
String sql = "select * from hrmresource where id=" + id ;
rs . executeSql ( sql ) ;
if ( rs . next ( ) ) {
String lastname = Util . toScreen ( rs . getString ( "lastname" ) , user . getLanguage ( ) ) ;
String workcode = Util . toScreen ( rs . getString ( "workcode" ) , user . getLanguage ( ) ) ;
String sex = Util . null2String ( rs . getString ( "sex" ) ) . trim ( ) ;
if ( sex . length ( ) = = 0 ) sex = "0" ;
String departmentid = Util . toScreen ( rs . getString ( "departmentid" ) , user . getLanguage ( ) ) ;
String subcompanyid = Util . toScreen ( rs . getString ( "subcompanyid1" ) , user . getLanguage ( ) ) ;
lastname = lastname . endsWith ( "\\" ) & & ! lastname . endsWith ( "\\\\" ) = = true ? lastname + "\\" : lastname ;
lastname = StringUtil . replace ( lastname , "'" , "\\\\'" ) ;
String messagerUrls = Util . toScreen ( rs . getString ( "messagerurl" ) , user . getLanguage ( ) ) ;
String resourceimageid = ResourceComInfo . getResourceimageid ( id ) ;
if ( messagerUrls . length ( ) = = 0 & & ! resourceimageid . equals ( "0" ) & & resourceimageid . length ( ) > 0 ) {
messagerUrls = ServiceUtil . saveMessagerUrl ( Util . getIntValue ( resourceimageid ) , id ) ;
} else {
messagerUrls = ResourceComInfo . getMessagerUrls ( id ) ;
}
// String filePath = GCONST.getRootPath() + messagerUrls;
// File file = new File(filePath);
// if (!file.exists() || !hrmListValidate.isValidate(36)) {
// if (resourceimageid > 0) {
// String mainControlHost = Util.null2String(Prop.getInstance().getPropValue("Others", "MAINCONTROLHOST"));
// messagerUrls = mainControlHost + "/weaver/weaver.file.FileDownload?fileid=" + resourceimageid;
// } else {
// if (sex.equals("0")) {
// messagerUrls = "/messager/images/icon_m_wev8.jpg";
// } else if (sex.equals("1")) {
// messagerUrls = "/messager/images/icon_w_wev8.jpg";
// }
// }
// }
//
// boolean USERICONLASTNAME = Util.null2String(new BaseBean().getPropValue("Others", "USERICONLASTNAME")).equals("1");
// if (USERICONLASTNAME && (messagerUrls.indexOf("icon_w_wev8.jpg") > -1 || messagerUrls.indexOf("icon_m_wev8.jpg") > -1 || messagerUrls.indexOf("dummyContact.png") > -1)) {
// jsondata.put("shortname", User.getLastname(Util.null2String(Util.formatMultiLang(lastname, "" + user.getLanguage()))));
// }
jsondata . put ( "lastname" , lastname ) ;
jsondata . put ( "messagerurl" , messagerUrls ) ;
jsondata . put ( "requestParams" , ResourceComInfo . getUserIconInfoStr ( id , user ) ) ;
jsondata . put ( "workcode" , workcode ) ;
HrmFieldComInfo hrmFieldComInfo = new HrmFieldComInfo ( ) ;
String isused = Util . null2String ( hrmFieldComInfo . getBaseFieldMap ( "sex" ) . getString ( "isused" ) ) ;
if ( "1" . equals ( isused ) ) {
Map < String , Object > sexdata = new HashMap < String , Object > ( ) ;
jsondata . put ( "sex" , sexdata ) ; //0: 男性, 1: 女性
sexdata . put ( "value" , sex ) ;
if ( sex . equals ( "0" ) ) {
sexdata . put ( "name" , SystemEnv . getHtmlLabelName ( 28473 , user . getLanguage ( ) ) ) ;
} else if ( sex . equals ( "1" ) ) {
sexdata . put ( "name" , SystemEnv . getHtmlLabelName ( 28474 , user . getLanguage ( ) ) ) ;
}
}
if ( Util . null2String ( Prop . getInstance ( ) . getPropValue ( "Others" , "showDepartmentFullName" ) ) . equals ( "1" ) ) {
jsondata . put ( "orginfo" , DepartmentComInfo . getAllParentDepartmentNames ( departmentid , subcompanyid ) ) ;
} else {
jsondata . put ( "orginfo" , DepartmentComInfo . getAllParentDepartmentMarks ( departmentid , subcompanyid ) ) ;
}
}
retmap . put ( "result" , jsondata ) ;
retmap . put ( "id" , id ) ;
} catch ( Exception e ) {
writeLog ( e ) ;
}
return JSONObject . toJSONString ( retmap ) ;
}
/ * *
* 查 询 人 员 列 表 右 键 菜 单
*
* @param request
* @param response
* @return
* @throws Exception
* /
public String getRightMenu ( HttpServletRequest request , HttpServletResponse response ) {
Map < String , Object > apidatas = new HashMap < String , Object > ( ) ;
try {
ChgPasswdReminder reminder = new ChgPasswdReminder ( ) ;
RemindSettings settings = reminder . getRemindSettings ( ) ;
User user = HrmUserVarify . getUser ( request , response ) ;
String id = Util . null2String ( request . getParameter ( "id" ) ) ;
if ( id . equals ( "" ) ) id = String . valueOf ( user . getUID ( ) ) ;
HrmListValidate HrmListValidate = new HrmListValidate ( ) ;
List < RightMenu > rightMenus = new ArrayList < RightMenu > ( ) ;
int language = user . getLanguage ( ) ;
int hrmdetachable = 0 ;
HttpSession session = request . getSession ( true ) ;
String status = "" ;
String subcompanyid = "" ;
String departmentid = "" ;
String textMessageSql = "select dataValue from ecology_message_valve_config where dataKey = 'emSwitch'" ;
RecordSet textRs = new RecordSet ( ) ;
textRs . execute ( textMessageSql ) ;
textRs . next ( ) ;
//dataValue为0代表关闭发消息选项
String dataValue = textRs . getString ( "dataValue" ) ;
RecordSet rs = new RecordSet ( ) ;
rs . executeSql ( "select subcompanyid1,departmentid, status from hrmresource where id = " + id ) ;
if ( rs . next ( ) ) {
status = Util . toScreen ( rs . getString ( "status" ) , user . getLanguage ( ) ) ;
subcompanyid = Util . toScreen ( rs . getString ( "subcompanyid1" ) , user . getLanguage ( ) ) ;
departmentid = Util . toScreen ( rs . getString ( "departmentid" ) , user . getLanguage ( ) ) ;
if ( subcompanyid = = null | | subcompanyid . equals ( "" ) | | subcompanyid . equalsIgnoreCase ( "null" ) )
subcompanyid = "-1" ;
session . setAttribute ( "hrm_subCompanyId" , subcompanyid ) ;
}
boolean isSelf = false ;
if ( id . equals ( "" + user . getUID ( ) ) ) {
isSelf = true ;
}
//人力资源模块是否开启了管理分权,如不是,则不显示框架,直接转向到列表页面(新的分权管理)
if ( session . getAttribute ( "hrmdetachable" ) ! = null ) {
hrmdetachable = Util . getIntValue ( String . valueOf ( session . getAttribute ( "hrmdetachable" ) ) , 0 ) ;
} else {
boolean isUseHrmManageDetach = new ManageDetachComInfo ( ) . isUseHrmManageDetach ( ) ;
if ( isUseHrmManageDetach ) {
hrmdetachable = 1 ;
session . setAttribute ( "detachable" , "1" ) ;
session . setAttribute ( "hrmdetachable" , String . valueOf ( hrmdetachable ) ) ;
} else {
hrmdetachable = 0 ;
session . setAttribute ( "detachable" , "0" ) ;
session . setAttribute ( "hrmdetachable" , String . valueOf ( hrmdetachable ) ) ;
}
}
int operatelevel = - 1 ;
if ( hrmdetachable = = 1 ) {
operatelevel = new CheckSubCompanyRight ( ) . ChkComRightByUserRightCompanyId ( user . getUID ( ) , "HrmResourceEdit:Edit" , Integer . parseInt ( subcompanyid ) ) ;
} else {
if ( HrmUserVarify . checkUserRight ( "HrmResourceEdit:Edit" , user , departmentid ) )
operatelevel = 2 ;
}
if ( ( ( isSelf & & isHasModify ( - 1 ) ) | | operatelevel > 0 ) & & ! status . equals ( "10" ) ) { //编辑
rightMenus . add ( new RightMenu ( language , RightMenuType . BTN_EDIT , "editCard" ) ) ;
}
if ( HrmListValidate . isValidate ( 33 ) & & ! isSelf & & "1" . equals ( Utils . null2String ( dataValue ) ) ) { //发送消息
rightMenus . add ( new RightMenu ( language , RightMenuType . BTN_SENDMESAGE , "sendEmessage" ) ) ;
}
if ( HrmListValidate . isValidate ( 31 ) & & ! isSelf ) { //发送短信
rightMenus . add ( new RightMenu ( language , RightMenuType . BTN_SENDSMSMESSAGE , "sendSmsMessage" ) ) ;
}
if ( HrmListValidate . isValidate ( 19 ) & & ! isSelf ) { //发送邮件
rightMenus . add ( new RightMenu ( language , RightMenuType . BTN_SENDMAIL , "sendMail" ) ) ;
}
if ( HrmListValidate . isValidate ( 32 ) & & ! isSelf ) { //新建日程
rightMenus . add ( new RightMenu ( language , RightMenuType . BTN_DOADDWORKPLANBYHRM , "doAddWorkPlanByHrm" ) ) ;
}
if ( ( ( isSelf & & canEditUserIcon ( ) ) | | operatelevel > 0 ) & & ! status . equals ( "10" ) ) { //设置个人头像
rightMenus . add ( new RightMenu ( language , RightMenuType . BTN_SetUserIcon , "showPortraitSetting" ) ) ;
}
Map < String , Object > params = new HashMap < > ( ) ;
params . put ( "logSmallType" , BizLogSmallType4Hrm . HRM_RSOURCE_CARD_BASE . getCode ( ) ) ;
params . put ( "targetId" , id ) ;
rightMenus . add ( new RightMenu ( language , RightMenuType . BTN_log , "showLog" , params ) ) ;
apidatas . put ( "rightMenus" , rightMenus ) ;
} catch ( Exception e ) {
writeLog ( e ) ;
apidatas . put ( "api_status" , false ) ;
apidatas . put ( "api_errormsg" , "catch exception : " + e . getMessage ( ) ) ;
}
return JSONObject . toJSONString ( apidatas ) ;
}
public String isAdmin ( HttpServletRequest request , HttpServletResponse response ) {
User user = HrmUserVarify . getUser ( request , response ) ;
Map < String , Object > result = new HashMap < String , Object > ( ) ;
String id = Util . null2String ( request . getParameter ( "id" ) ) ;
if ( id . length ( ) = = 0 ) {
id = "" + user . getUID ( ) ;
}
result . put ( "isAdmin" , ServiceUtil . isAdmin ( id ) ) ;
return JSONObject . toJSONString ( result ) ;
}
public String getQRCode ( HttpServletRequest request , HttpServletResponse response ) {
Map < String , Object > jsondata = new HashMap < String , Object > ( ) ;
Map < String , Object > options = new HashMap < String , Object > ( ) ;
User user = HrmUserVarify . getUser ( request , response ) ;
String id = Util . null2String ( request . getParameter ( "id" ) ) ;
if ( id . equals ( "" ) ) id = String . valueOf ( user . getUID ( ) ) ;
if ( ! "" . equals ( id ) & & ! id . equals ( "" + user . getUID ( ) ) ) {
AppDetachComInfo adci = new AppDetachComInfo ( ) ;
if ( adci . isUseAppDetach ( ) ) {
if ( ! adci . getScopeIds ( user , "resource" , id ) ) {
jsondata . put ( "status" , "-1" ) ;
jsondata . put ( "message" , SystemEnv . getHtmlLabelName ( 2012 , user . getLanguage ( ) ) ) ;
return JSONObject . toJSONString ( jsondata ) ;
}
}
}
try {
//var data = { "lastname": "吕益", "mobile": "13899998888","telephone":"021-99998888","email":"lvyi@weaver.com","jobtitle":"开发工程师","department":"人力资源组","locationname":"上海"};
RecordSet rs = new RecordSet ( ) ;
DepartmentComInfo DepartmentComInfo = new DepartmentComInfo ( ) ;
JobTitlesComInfo jobTitlesComInfo = new JobTitlesComInfo ( ) ;
LocationComInfo locationComInfo = new LocationComInfo ( ) ;
JobCallComInfo jobCallComInfo = new JobCallComInfo ( ) ;
HrmListValidate HrmListValidate = new HrmListValidate ( ) ;
String sql = "select * from hrmresource where id=" + id ;
rs . executeSql ( sql ) ;
if ( rs . next ( ) ) {
String lastname = Util . toScreen ( rs . getString ( "lastname" ) , user . getLanguage ( ) ) ;
String departmentid = Util . toScreen ( rs . getString ( "departmentid" ) , user . getLanguage ( ) ) ;
String jobtitle = Util . toScreen ( rs . getString ( "jobtitle" ) , user . getLanguage ( ) ) ;
String mobile = Util . toScreen ( rs . getString ( "mobile" ) , user . getLanguage ( ) ) ;
String telephone = Util . toScreen ( rs . getString ( "telephone" ) , user . getLanguage ( ) ) ;
String email = Util . toScreen ( rs . getString ( "email" ) , user . getLanguage ( ) ) ;
String locationid = Util . toScreen ( rs . getString ( "locationid" ) , user . getLanguage ( ) ) ;
String jobcallid = Util . toScreen ( rs . getString ( "jobcall" ) , user . getLanguage ( ) ) ;
lastname = lastname . endsWith ( "\\" ) & & ! lastname . endsWith ( "\\\\" ) = = true ? lastname + "\\" : lastname ;
lastname = StringUtil . replace ( lastname , "'" , "\\\\'" ) ;
boolean hasQRCode = HrmListValidate . isValidate ( 37 ) ;
//隐私设置部分
PrivacyComInfo pc = new PrivacyComInfo ( ) ;
Map < String , String > mapShowSets = pc . getMapShowSets ( ) ;
Map < String , String > mapShowTypeDefaults = pc . getMapShowTypeDefaults ( ) ;
mobile = PrivacyUtil . checkByPrivacy ( id , user , "mobile" , mobile , mapShowSets , mapShowTypeDefaults , pc ) ;
telephone = PrivacyUtil . checkByPrivacy ( id , user , "telephone" , telephone , mapShowSets , mapShowTypeDefaults , pc ) ;
email = PrivacyUtil . checkByPrivacy ( id , user , "email" , email , mapShowSets , mapShowTypeDefaults , pc ) ;
jsondata . put ( "hasQRCode" , hasQRCode ) ;
jsondata . put ( "options" , options ) ;
if ( hasQRCode ) {
options . put ( "lastname" , lastname ) ;
options . put ( "mobile" , mobile ) ;
options . put ( "telephone" , telephone ) ;
options . put ( "email" , email ) ;
options . put ( "jobtitle" , jobTitlesComInfo . getJobTitlesname ( jobtitle ) ) ; //对应的应该是岗位
options . put ( "department" , DepartmentComInfo . getDepartmentname ( departmentid ) ) ; //对应的应该是职称
//options.put("locationname", locationComInfo.getLocationname(departmentid));
options . put ( "locationname" , locationComInfo . getLocationname ( locationid ) ) ; //对应的应该是工作地点
}
}
} catch ( Exception e ) {
writeLog ( e ) ;
}
return JSONObject . toJSONString ( jsondata ) ;
}
public String getHrmResourceItem ( HttpServletRequest request , HttpServletResponse response ) {
List < Map < String , Object > > tablist = new ArrayList < Map < String , Object > > ( ) ;
Map < String , Object > itemdata = new HashMap < String , Object > ( ) ;
User user = HrmUserVarify . getUser ( request , response ) ;
String resourceid = request . getParameter ( "id" ) ;
boolean noLoadData = Util . null2String ( request . getParameter ( "noLoadData" ) ) . equals ( "1" ) ; //不加载数据
if ( resourceid . equals ( "" ) ) resourceid = String . valueOf ( user . getUID ( ) ) ;
String currentUserId = "" + user . getUID ( ) ;
try {
boolean workflowshow = SysModuleInfoBiz . checkModuleStatus ( ModuleConstants . Workflow ) ;
boolean docshow = SysModuleInfoBiz . checkModuleStatus ( ModuleConstants . Doc ) ;
boolean customshow = SysModuleInfoBiz . checkModuleStatus ( ModuleConstants . Crm ) ;
boolean projectshow = SysModuleInfoBiz . checkModuleStatus ( ModuleConstants . Project ) ;
boolean cptshow = SysModuleInfoBiz . checkModuleStatus ( ModuleConstants . Fa ) ;
boolean coworkshow = SysModuleInfoBiz . checkModuleStatus ( ModuleConstants . Cowork ) ;
boolean weiboshow = SysModuleInfoBiz . checkModuleStatus ( ModuleConstants . Blog ) ;
//流程
if ( workflowshow ) {
int wf_count = 0 ;
if ( ! noLoadData ) {
wf_count = new WorkflowRequestUtil ( ) . getRequestCount ( user , resourceid ) ;
}
itemdata = new HashMap < String , Object > ( ) ;
itemdata . put ( "name" , "item_workflow" ) ;
itemdata . put ( "label" , SystemEnv . getHtmlLabelName ( 18015 , user . getLanguage ( ) ) ) ;
itemdata . put ( "num" , wf_count ) ;
itemdata . put ( "icon" , "/hrm/hrm_e9/image/workflow.png" ) ;
itemdata . put ( "font-color" , "#1ab7f4" ) ;
itemdata . put ( "url" , "/spa/workflow/static/index.html#/main/workflow/listDoing?resourceid=" + resourceid ) ;
tablist . add ( itemdata ) ;
}
//文档
if ( docshow ) {
Object [ ] docInfo = new Object [ ] { "/spa/document/static/index.html#/main/document/search?viewcondition=2&doccreaterid=" + resourceid , "0" } ;
if ( ! noLoadData ) {
docInfo = new DocSearchComInfo ( ) . getDocCount4Hrm ( resourceid , user ) ;
}
itemdata = new HashMap < String , Object > ( ) ;
itemdata . put ( "name" , "item_doc" ) ;
itemdata . put ( "label" , SystemEnv . getHtmlLabelName ( 58 , user . getLanguage ( ) ) ) ;
itemdata . put ( "num" , docInfo [ 1 ] ) ;
itemdata . put ( "icon" , "/hrm/hrm_e9/image/doc.png" ) ;
itemdata . put ( "font-color" , "#68c12c" ) ;
itemdata . put ( "url" , "/spa/document/static/index.html#/main/document/search?viewcondition=2&doccreaterid=" + resourceid ) ;
tablist . add ( itemdata ) ;
}
//客户
if ( customshow ) {
String [ ] crmInfo = new String [ ] { "" , "0" } ;
if ( ! noLoadData ) {
crmInfo = new CrmShareBase ( ) . getCrmCount4Hrm ( resourceid , currentUserId ) ;
}
itemdata = new HashMap < String , Object > ( ) ;
itemdata . put ( "name" , "item_custom" ) ;
itemdata . put ( "label" , SystemEnv . getHtmlLabelName ( 136 , user . getLanguage ( ) ) ) ;
itemdata . put ( "num" , crmInfo [ 1 ] ) ;
itemdata . put ( "icon" , "/hrm/hrm_e9/image/custom.png" ) ;
itemdata . put ( "font-color" , "#558de4" ) ;
itemdata . put ( "url" , "/spa/crm/static/index.html#/main/crm/customer/hrmView?searchHrmId=" + resourceid ) ;
tablist . add ( itemdata ) ;
}
//项目
if ( projectshow ) {
String [ ] prjInfo = new String [ ] { "/spa/prj/index.html#/main/prj/mineProject?search_resourceid=" + resourceid , "0" } ;
if ( ! noLoadData ) {
prjInfo = new SearchComInfo ( ) . getPrjCount4Hrm ( resourceid , user ) ;
}
itemdata = new HashMap < String , Object > ( ) ;
itemdata . put ( "name" , "item_project" ) ;
itemdata . put ( "label" , SystemEnv . getHtmlLabelName ( 101 , user . getLanguage ( ) ) ) ;
itemdata . put ( "num" , prjInfo [ 1 ] ) ;
itemdata . put ( "icon" , "/hrm/hrm_e9/image/project.png" ) ;
itemdata . put ( "font-color" , "#29cf87" ) ;
itemdata . put ( "url" , "/spa/prj/index.html#/main/prj/mineProject?search_resourceid=" + resourceid ) ;
tablist . add ( itemdata ) ;
}
//资产
if ( cptshow ) {
String url = "/spa/cpt/index.html#/main/cpt/mycapital?hrmid=" + resourceid ;
String [ ] cptInfo = new String [ ] { url , "0" } ;
if ( ! noLoadData ) {
cptInfo = new CptSearchComInfo ( ) . getCptCount4Hrm ( resourceid , user ) ;
}
itemdata = new HashMap < String , Object > ( ) ;
itemdata . put ( "name" , "item_cpt" ) ;
itemdata . put ( "label" , SystemEnv . getHtmlLabelName ( 535 , user . getLanguage ( ) ) ) ;
itemdata . put ( "num" , cptInfo [ 1 ] ) ;
itemdata . put ( "icon" , "/hrm/hrm_e9/image/cpt.png" ) ;
itemdata . put ( "font-color" , "#f6ae40" ) ;
itemdata . put ( "url" , url ) ;
tablist . add ( itemdata ) ;
}
//协作
if ( coworkshow ) {
String [ ] coworkInfo = new String [ ] { "" , "0" } ;
if ( ! noLoadData ) {
coworkInfo = new CoworkShareManager ( ) . getCoworkCount4Hrm ( resourceid , currentUserId ) ;
}
itemdata = new HashMap < String , Object > ( ) ;
itemdata . put ( "name" , "item_cowork" ) ;
itemdata . put ( "label" , SystemEnv . getHtmlLabelName ( 17855 , user . getLanguage ( ) ) ) ;
itemdata . put ( "num" , coworkInfo [ 1 ] ) ;
itemdata . put ( "icon" , "/hrm/hrm_e9/image/cowork.png" ) ;
itemdata . put ( "font-color" , "#826efd" ) ;
itemdata . put ( "url" , "/spa/cowork/static/index.html#/main/cowork/hrmview?searchHrmid=" + resourceid ) ;
tablist . add ( itemdata ) ;
}
//微博
if ( weiboshow ) {
String [ ] weiboInfo = new String [ ] { "" , "0" } ;
if ( ! noLoadData ) {
weiboInfo = new BlogShareManager ( ) . getBlogCount4Hrm ( resourceid ) ;
}
itemdata = new HashMap < String , Object > ( ) ;
itemdata . put ( "name" , "item_weibo" ) ;
itemdata . put ( "label" , SystemEnv . getHtmlLabelName ( 26467 , user . getLanguage ( ) ) ) ;
itemdata . put ( "num" , weiboInfo [ 1 ] ) ;
itemdata . put ( "icon" , "/hrm/hrm_e9/image/weibo.png" ) ;
itemdata . put ( "font-color" , "#fb6f47" ) ;
itemdata . put ( "url" , "/spa/blog/static/index.html#/user/" + resourceid ) ;
tablist . add ( itemdata ) ;
}
} catch ( Exception e ) {
writeLog ( e ) ;
}
return JSONObject . toJSONString ( tablist ) ;
}
public String getHrmResourceTab ( HttpServletRequest request , HttpServletResponse response ) {
int isgoveproj = 0 ;
User user = HrmUserVarify . getUser ( request , response ) ;
String id = Util . null2String ( request . getParameter ( "id" ) ) ;
this . id = id ;
this . isMobx = Util . null2String ( request . getParameter ( "isMobx" ) ) . equals ( "1" ) ;
if ( id . equals ( "" ) ) id = String . valueOf ( user . getUID ( ) ) ;
List < Map < String , Object > > tablist = new ArrayList < Map < String , Object > > ( ) ;
try {
AppDetachComInfo AppDetachComInfo = new AppDetachComInfo ( ) ;
ResourceComInfo ResourceComInfo = new ResourceComInfo ( ) ;
AllManagers AllManagers = new AllManagers ( ) ;
HrmListValidate HrmListValidate = new HrmListValidate ( ) ;
CheckSubCompanyRight CheckSubCompanyRight = new CheckSubCompanyRight ( ) ;
MouldStatusCominfo MouldStatusCominfo = new MouldStatusCominfo ( ) ;
HrmResourceBaseTabComInfo HrmResourceBaseTabComInfo = new HrmResourceBaseTabComInfo ( ) ;
RecordSet rs = new RecordSet ( ) ;
//人力资源模块是否开启了管理分权
int hrmdetachable = 0 ;
HttpSession session = request . getSession ( true ) ;
ManageDetachComInfo ManageDetachComInfo = new ManageDetachComInfo ( ) ;
if ( session . getAttribute ( "hrmdetachable" ) ! = null ) {
hrmdetachable = Util . getIntValue ( String . valueOf ( session . getAttribute ( "hrmdetachable" ) ) , 0 ) ;
} else {
boolean isUseHrmManageDetach = ManageDetachComInfo . isUseHrmManageDetach ( ) ;
if ( isUseHrmManageDetach ) {
hrmdetachable = 1 ;
session . setAttribute ( "detachable" , "1" ) ;
session . setAttribute ( "hrmdetachable" , String . valueOf ( hrmdetachable ) ) ;
} else {
hrmdetachable = 0 ;
session . setAttribute ( "detachable" , "0" ) ;
session . setAttribute ( "hrmdetachable" , String . valueOf ( hrmdetachable ) ) ;
}
}
if ( AppDetachComInfo . isUseAppDetach ( ) ) {
boolean isApp = true ;
if ( ! AppDetachComInfo . getScopeIds ( user , "resource" , id ) ) {
isApp = false ;
}
if ( ! isApp ) {
String errMsg = SystemEnv . getHtmlLabelName ( 2012 , user . getLanguage ( ) ) ;
HashMap < String , String > jsondata = new HashMap < String , String > ( ) ;
jsondata . put ( "errMsg" , errMsg ) ;
jsondata . put ( "status" , "-1" ) ;
return jsondata . toString ( ) ;
}
}
String departmentid = "" ;
String subcompanyid = "" ;
rs . executeProc ( "HrmResource_SelectByID" , id ) ;
if ( rs . next ( ) ) {
departmentid = Util . toScreen ( rs . getString ( "departmentid" ) , user . getLanguage ( ) ) ; /*所属部门*/
subcompanyid = Util . toScreen ( rs . getString ( "subcompanyid1" ) , user . getLanguage ( ) ) ;
}
/*显示权限判断*/
int userid = user . getUID ( ) ;
boolean isSelf = false ;
boolean isManager = false ;
// boolean isSys = ResourceComInfo.isSysInfoView(userid,id);
// boolean isCap = ResourceComInfo.isCapInfoView(userid,id);
// boolean ishasF =HrmUserVarify.checkUserRight("HrmResourceWelfareEdit:Edit",user);
boolean isSys = ResourceComInfo . isSysInfoView2 ( userid , id ) ;
boolean isCap = ResourceComInfo . isCapInfoView2 ( userid , id ) ;
boolean ishasF = HrmUserVarify . checkUserRight ( "HrmResourceWelfareEdit:Edit" , user , departmentid ) | | ResourceComInfo . isFinInfoView2 ( userid , id ) ;
;
AllManagers . getAll ( id ) ;
if ( id . equals ( "" + user . getUID ( ) ) ) {
isSelf = true ;
}
while ( AllManagers . next ( ) ) {
String tempmanagerid = AllManagers . getManagerID ( ) ;
if ( tempmanagerid . equals ( "" + user . getUID ( ) ) ) {
isManager = true ;
}
}
int idx = 0 ;
//tabInfo.put(SystemEnv.getHtmlLabelName(,user.getLanguage()), "/hrm/resource/HrmResourceBase.jsp?isfromtab=true&id="+id);
tablist . add ( setTabInfo ( "HrmResourceBase" , 1361 , GCONST . getContextPath ( ) + "/hrm/resource/HrmResourceBase.jsp?isfromtab=true&id=" + id , "/main/hrm/resource/HrmResourceBase/" + id , user ) ) ;
idx + + ;
//原工作历程变为其他
if ( HrmListValidate . isValidate ( 29 ) ) {
//tabInfo.put(SystemEnv.getHtmlLabelName(30804,user.getLanguage()), "/hrm/resource/HrmResourceTotal.jsp?isfromtab=true&id="+id);
tablist . add ( setTabInfo ( "HrmResourceTotal" , 30804 , GCONST . getContextPath ( ) + "/wui/index.html#/main/hrm/HrmResourceTotal" + id , "/main/hrm/HrmResourceTotal" + id , user ) ) ;
idx + + ;
}
//tabInfo.put(SystemEnv.getHtmlLabelName(81554,user.getLanguage()), "/hrm/resource/HrmResourceGroupView.jsp?id="+id);
if ( HrmListValidate . isValidate ( 64 ) ) {
tablist . add ( setTabInfo ( "HrmResourceGroupView" , 81554 , GCONST . getContextPath ( ) + "/hrm/resource/HrmResourceGroupView.jsp?id=" + id , "/main/hrm/resource/HrmResourceGroupView/" + id , user ) ) ;
idx + + ;
}
int operatelevel = - 1 ;
if ( hrmdetachable = = 1 ) {
operatelevel = CheckSubCompanyRight . ChkComRightByUserRightCompanyId ( user . getUID ( ) , "HrmResourceEdit:Edit" , Integer . parseInt ( subcompanyid ) ) ;
} else {
if ( HrmUserVarify . checkUserRight ( "HrmResourceEdit:Edit" , user , departmentid ) ) {
operatelevel = 2 ;
}
}
int operatelevelnew = - 1 ;
if ( hrmdetachable = = 1 ) {
operatelevelnew = CheckSubCompanyRight . ChkComRightByUserRightCompanyId ( user . getUID ( ) , "ResourcesInformationSystem:All" , Integer . parseInt ( subcompanyid ) ) ;
} else {
String departmentidtmp = ResourceComInfo . getDepartmentID ( id ) ;
if ( HrmUserVarify . checkUserRight ( "ResourcesInformationSystem:All" , user , departmentidtmp ) ) {
operatelevelnew = 2 ;
}
}
StaticObj staticobj = StaticObj . getInstance ( ) ;
String software = ( String ) staticobj . getObject ( "software" ) ;
if ( software = = null ) software = "ALL" ;
if ( software . equals ( "ALL" ) | | software . equals ( "HRM" ) ) {
if ( ( isSelf | | operatelevel > = 0 ) & & HrmListValidate . isValidate ( 11 ) ) {
//tabInfo.put(SystemEnv.getHtmlLabelName(15687,user.getLanguage()), "/hrm/resource/HrmResourcePersonalView.jsp?isfromtab=true&id="+id);
tablist . add ( setTabInfo ( "HrmResourcePersonalView" , 15687 , GCONST . getContextPath ( ) + "/hrm/resource/HrmResourcePersonalView.jsp?isfromtab=true&id=" + id , "/main/hrm/resource/HrmResourcePersonalView/" + id , user ) ) ;
idx + + ;
}
if ( ( isSelf | | isManager | | operatelevel > = 0 ) & & HrmListValidate . isValidate ( 12 ) ) {
//tabInfo.put(SystemEnv.getHtmlLabelName(15688,user.getLanguage()), "/hrm/resource/HrmResourceWorkView.jsp?isfromtab=true&id="+id);
tablist . add ( setTabInfo ( "HrmResourceWorkView" , 15688 , GCONST . getContextPath ( ) + "/hrm/resource/HrmResourceWorkView.jsp?isfromtab=true&id=" + id , "/main/hrm/resource/HrmResourceWorkView/" + id , user ) ) ;
idx + + ;
}
}
if ( ( isSelf | | operatelevelnew > = 0 | | isSys ) & & HrmListValidate . isValidate ( 15 ) ) {
//tabInfo.put(SystemEnv.getHtmlLabelName(15804,user.getLanguage()), "/hrm/resource/HrmResourceSystemView.jsp?isfromtab=true&id="+id+"&isView=1");
tablist . add ( setTabInfo ( "HrmResourceSystemView" , 15804 , GCONST . getContextPath ( ) + "/hrm/resource/HrmResourceSystemView1.jsp?isfromtab=true&id=" + id + "&isView=1" , "/main/hrm/resource/HrmResourceSystemView/" + id , user ) ) ;
idx + + ;
}
if ( software . equals ( "ALL" ) | | software . equals ( "HRM" ) ) {
if ( isgoveproj = = 0 ) {
if ( ( isSelf | | ishasF ) & & HrmListValidate . isValidate ( 13 ) ) {
//tabInfo.put(SystemEnv.getHtmlLabelName(16480,user.getLanguage()), "/hrm/resource/HrmResourceFinanceView.jsp?isfromtab=true&id="+id+"&isView=1");
tablist . add ( setTabInfo ( "HrmResourceFinanceView" , 16480 , GCONST . getContextPath ( ) + "/hrm/resource/HrmResourceFinanceView.jsp?isfromtab=true&id=" + id + "&isView=1" , "/main/hrm/resource/HrmResourceFinanceView/" + id , user ) ) ;
idx + + ;
}
}
if ( ( isSelf | | operatelevel > = 0 | | isCap ) & & HrmListValidate . isValidate ( 14 ) & & "1" . equals ( MouldStatusCominfo . getStatus ( "cpt" ) ) ) {
String cpturl = GCONST . getContextPath ( ) + "/cpt/search/SearchOperation.jsp?resourceid=" + id + "&isdata=2&from=hrmResourceBase" ;
if ( Cpt4modeUtil . isUse ( ) ) {
cpturl = GCONST . getContextPath ( ) + "/formmode/search/CustomSearchBySimpleIframe.jsp?customid=" + Cpt4modeUtil . getSearchid ( "wdzc" ) + "&resourceid=" + id + "&from=hrmResourceBase&mymodetype=wdzc&sqlwhere=" + new XssUtil ( ) . put ( "where resourceid=" + id ) ;
}
//tabInfo.put(SystemEnv.getHtmlLabelName(15806,user.getLanguage()), cpturl);
tablist . add ( setTabInfo ( "iframe-" + ( idx + + ) + "-cptsearch" , 15806 , GCONST . getContextPath ( ) + "/spa/cpt/index.html#/main/cpt/mycapital?from=hrm&hrmid=" + id , "/spa/cpt/index.html#/main/cptcapital/mycapitalResult" , user ) ) ;
}
}
if ( ( isSelf | | isManager | | HrmUserVarify . checkUserRight ( "HrmResource:Workflow" , user , departmentid ) ) & & HrmListValidate . isValidate ( 17 ) ) {
//tabInfo.put(SystemEnv.getHtmlLabelName(1207,user.getLanguage()), "/workflow/search/WFSearchTemp.jsp?method=all&viewScope=doing&complete=0&viewcondition=0&resourceid="+id);
tablist . add ( setTabInfo ( "iframe-" + ( idx + + ) + "-workflowsearch" , 1207 , GCONST . getContextPath ( ) + "/spa/workflow/static/index.html#/main/workflow/listDoing?needTop=false&needTree=false&resourceid=" + id , "/spa/workflow/index.html#/main/workflow/listDoing" , user ) ) ;
//tablist.add(setTabInfo("iframe-"+(idx++)+"-workflowsearch",1207,"/workflow/search/WFSearchTemp.jsp?method=all&viewScope=doing&complete=0&viewcondition=0&resourceid="+id,"/spa/workflow/index.html#/main/workflow/listDoing",user));
}
if ( ( isSelf | | isManager | | HrmUserVarify . checkUserRight ( "HrmResource:Plan" , user , departmentid ) ) & & HrmListValidate . isValidate ( 18 ) ) {
//tabInfo.put(SystemEnv.getHtmlLabelName(2192,user.getLanguage()), "/workplan/data/WorkPlan.jsp?resourceid="+id);
tablist . add ( setTabInfo ( "iframe-" + ( idx + + ) + "-workplansearch" , 2192 , GCONST . getContextPath ( ) + "/spa/workplan/static/index.html#/main/wp/myWorkPlan?fromcard=true&selectedUser=" + id , "/main/workplan/data/WorkPlan" , user ) ) ;
}
if ( isgoveproj = = 0 ) {
if ( software . equals ( "ALL" ) | | software . equals ( "HRM" ) ) {
if ( isSelf | | isManager | | HrmUserVarify . checkUserRight ( "HrmResource:Absense" , user , departmentid ) ) {
if ( HrmListValidate . isValidate ( 20 ) ) {
//tabInfo.put(SystemEnv.getHtmlLabelName(20080,user.getLanguage()), "/hrm/resource/HrmResourceAbsense.jsp?resourceid="+id);
tablist . add ( setTabInfo ( "HrmResourceAbsense" , 20080 , GCONST . getContextPath ( ) + "/hrm/resource/HrmResourceAbsense.jsp?resourceid=" + id , "/main/hrm/HrmResourceAbsense" , user ) ) ;
idx + + ;
}
}
if ( isSelf | | isManager | | HrmUserVarify . checkUserRight ( "HrmResource:TrainRecord" , user ) ) {
if ( HrmListValidate . isValidate ( 21 ) ) {
//tabInfo.put(SystemEnv.getHtmlLabelName(816,user.getLanguage()), "/hrm/resource/HrmResourceTrainRecord.jsp?resourceid="+id);
tablist . add ( setTabInfo ( "HrmResourceTrainRecord" , 816 , GCONST . getContextPath ( ) + "/hrm/resource/HrmResourceTrainRecord.jsp?resourceid=" + id , "/main/hrm/resource/HrmResourceTrainRecord/" + id , user ) ) ;
idx + + ;
}
}
if ( isSelf | | isManager | | HrmUserVarify . checkUserRight ( "HrmResource:RewardsRecord" , user ) ) {
if ( HrmListValidate . isValidate ( 22 ) ) {
//tabInfo.put(SystemEnv.getHtmlLabelName(16065,user.getLanguage()), "/hrm/resource/HrmResourceRewardsRecordView.jsp?id="+id);
tablist . add ( setTabInfo ( "HrmResourceRewardsRecordView" , 16065 , GCONST . getContextPath ( ) + "/hrm/resource/HrmResourceRewardsRecordView.jsp?id=" + id , "/main/hrm/resource/HrmResourceRewardsRecordView/" + id , user ) ) ;
idx + + ;
}
}
}
}
//判断该用户对编辑人员机构是否具有的角色维护权限(TD19119)
boolean rolesmanage = false ;
int varifylevel = - 1 ;
if ( hrmdetachable = = 1 ) {
varifylevel = CheckSubCompanyRight . ChkComRightByUserRightCompanyId ( user . getUID ( ) , "HrmRolesEdit:Edit" , Integer . parseInt ( subcompanyid ) ) ;
if ( varifylevel > 0 ) {
if ( HrmUserVarify . checkUserRight ( "HrmRolesEdit:Edit" , user ) ) {
varifylevel = 2 ;
} else {
varifylevel = - 1 ;
}
}
} else {
if ( HrmUserVarify . checkUserRight ( "HrmRolesEdit:Edit" , user ) ) {
varifylevel = 2 ;
}
}
if ( varifylevel > 0 ) {
rolesmanage = true ;
}
if ( HrmUserVarify . checkUserRight ( "HrmResourceEdit:Edit" , user , departmentid ) & & rolesmanage ) {
//tabInfo.put(SystemEnv.getHtmlLabelName(16527,user.getLanguage()), "/hrm/roles/HrmResourceNewRoles.jsp?resourceid="+id );
tablist . add ( setTabInfo ( "HrmResourceNewRoles" , 16527 , GCONST . getContextPath ( ) + "/hrm/roles/HrmResourceNewRoles.jsp?resourceid=" + id , "/main/hrm/resource/HrmResourceNewRoles/" + id , user ) ) ;
idx + + ;
}
//取自定义标签页
HrmResourceBaseTabComInfo . setTofirstRow ( ) ;
while ( HrmResourceBaseTabComInfo . next ( ) ) {
if ( ! HrmResourceBaseTabComInfo . getIsopen ( ) . equals ( "1" ) ) {
continue ;
}
String tab_urlTemp = HrmResourceBaseTabComInfo . getLinkurl ( ) ;
String tab_urlTemp1 = tab_urlTemp . replaceAll ( "\\Q{#id}" , "" + id ) ;
if ( tab_urlTemp1 . indexOf ( "?" ) > = 0 ) {
tab_urlTemp1 + = "&hrmResourceID=" + id ;
} else {
tab_urlTemp1 + = "?hrmResourceID=" + id ;
}
String groupname = HrmResourceBaseTabComInfo . getGroupName ( ) ;
if ( HrmResourceBaseTabComInfo . getTabnum ( ) . trim ( ) . length ( ) ! = 0 ) {
try {
Class c = Class . forName ( HrmResourceBaseTabComInfo . getTabnum ( ) . trim ( ) ) ;
Object cObject = c . newInstance ( ) ;
Method m = c . getMethod ( "execute" ) ;
Method method = c . getMethod ( "setOwnerid" , String . class ) ;
method . invoke ( cObject , "" + id ) ;
method = c . getMethod ( "setUserid" , String . class ) ;
method . invoke ( cObject , "" + user . getUID ( ) ) ;
int num = ( Integer ) m . invoke ( cObject ) ;
groupname + = "(" + num + ")" ;
} catch ( Exception e ) {
e . printStackTrace ( ) ;
groupname + = "(error)" ;
}
}
tablist . add ( setTabInfo ( "iframe-" + ( idx + + ) + "-DefineTab" + id , groupname , tab_urlTemp1 , "" , user ) ) ;
}
List < Map < String , Object > > tablist1 = new ArrayList < Map < String , Object > > ( ) ;
for ( Map < String , Object > obj : tablist ) {
if ( ! obj . isEmpty ( ) ) {
tablist1 . add ( obj ) ;
}
}
tablist = tablist1 ;
} catch ( Exception e ) {
writeLog ( e ) ;
}
return JSONObject . toJSONString ( tablist ) ;
}
/ * *
* 设 置 tabInfo 后 续 可 以 考 虑 直 接 读 取 数 据
*
* @param key
* @param labelid
* @param url
* @param rotueurl
* @param user
* @return
* /
private Map < String , Object > setTabInfo ( String key , int labelid , String url , String rotueurl , User user ) {
return setTabInfo ( key , "" + labelid , url , rotueurl , user ) ;
}
/ * *
* 设 置 tabInfo 后 续 可 以 考 虑 直 接 读 取 数 据
*
* @param key
* @param labelid
* @param url
* @param rotueurl
* @param user
* @return
* /
private Map < String , Object > setTabInfo ( String key , String labelid , String url , String rotueurl , User user ) {
Map < String , Object > tabObj = new HashMap < String , Object > ( ) ;
if ( isMobx ) {
tabObj = getTabInfo4Mobx ( key , labelid , url , rotueurl , user ) ;
} else {
tabObj . put ( "key" , key ) ;
if ( key . indexOf ( "DefineTab" ) ! = - 1 ) {
tabObj . put ( "value" , labelid ) ;
} else {
tabObj . put ( "value" , SystemEnv . getHtmlLabelNames ( labelid , user . getLanguage ( ) ) ) ;
}
tabObj . put ( "url" , url ) ;
tabObj . put ( "rotueurl" , rotueurl ) ;
}
return tabObj ;
}
private Map < String , Object > getTabInfo4Mobx ( String key , String labelid , String url , String rotueurl , User user ) {
Map < String , Object > tabObj = new HashMap < String , Object > ( ) ;
if ( key . equals ( "HrmResourceBase" ) ) {
key = "cardInfo" ;
} else if ( key . equals ( "HrmResourcePersonalView" ) ) {
key = "cardPersonal" ;
} else if ( key . equals ( "HrmResourceWorkView" ) ) {
key = "cardWork" ;
} else if ( key . equals ( "HrmResourceSystemView" ) ) {
key = "cardSystemInfo" ;
} else if ( key . equals ( "HrmResourceFinanceView" ) ) {
key = "cardFinance" ;
} else if ( key . equals ( "HrmResourceAbsense" ) ) {
key = "cardChecking" ;
/*判断是否开启了新考勤,如果开启了,那么人员卡片上面的考勤情况也需要切换成新版考勤的路由*/
KQ122Util kq122Util = new KQ122Util ( ) ;
if ( kq122Util . is122Open ( ) ) {
key = "cardCheckingN" ;
}
} else if ( key . equals ( "HrmResourceTrainRecord" ) ) {
key = "cardTrainRecord" ;
} else if ( key . equals ( "HrmResourceRewardsRecordView" ) ) {
key = "cardRewardsRecord" ;
} else if ( key . equals ( "HrmResourceNewRoles" ) ) {
key = "cardRoleSet" ;
} else if ( key . equals ( "HrmResourceTotal" ) ) {
key = "cardTotal" ;
} else if ( key . equals ( "HrmResourceGroupView" ) ) {
key = "addGroup" ;
}
if ( key . indexOf ( "DefineTab" ) ! = - 1 ) {
tabObj . put ( "title" , labelid ) ;
} else {
tabObj . put ( "title" , SystemEnv . getHtmlLabelNames ( labelid , user . getLanguage ( ) ) ) ;
}
tabObj . put ( "key" , key ) ;
tabObj . put ( "pathname" , "main/hrm/card/" + key + "/" + this . id ) ;
tabObj . put ( "isIframe" , key . startsWith ( "iframe-" ) ) ;
if ( key . startsWith ( "iframe-" ) ) {
tabObj . put ( "url" , url ) ;
}
return tabObj ;
}
/ * *
* 普 通 人 员 只 编 辑 后 台 开 启 允 许 个 人 修 改 的 字 段
*
* @param request
* @param response
* @return
* /
public String getResourceContactForm ( HttpServletRequest request , HttpServletResponse response ) {
Map < String , Object > result = new HashMap < String , Object > ( ) ;
List < Object > lsGroup = new ArrayList < Object > ( ) ;
Map < String , Object > groupitem = null ;
List < Object > itemlist = null ;
try {
//基本信息
User user = HrmUserVarify . getUser ( request , response ) ;
String id = Util . null2String ( request . getParameter ( "id" ) ) ;
int viewattr = Util . getIntValue ( request . getParameter ( "viewattr" ) , 1 ) ;
if ( id . length ( ) = = 0 ) {
id = "" + user . getUID ( ) ;
}
result . put ( "id" , id ) ;
Map < String , Object > buttons = new Hashtable < String , Object > ( ) ;
if ( isHasModify ( - 1 ) ) {
buttons . put ( "hasEdit" , true ) ;
buttons . put ( "hasSave" , true ) ;
}
result . put ( "buttons" , buttons ) ;
result . put ( "editcontact" , "1" ) ;
UserPrivacyComInfo upc = new UserPrivacyComInfo ( ) ;
PrivacyComInfo pc = new PrivacyComInfo ( ) ;
PrivacyBaseComInfo privacyBaseComInfo = new PrivacyBaseComInfo ( ) ;
Map < String , String > mapShowSets = pc . getMapShowSets ( ) ;
Map < String , String > mapShowTypes = pc . getMapShowTypes ( ) ;
Map < String , String > mapShowTypeDefaults = pc . getMapShowTypeDefaults ( ) ;
//总体的大开关的默认设置
Map < String , String > mapBaseShowTypeDefaults = privacyBaseComInfo . getMapShowTypeDefaults ( ) ;
StaticObj staticobj = StaticObj . getInstance ( ) ;
String multilanguage = ( String ) staticobj . getObject ( "multilanguage" ) ;
if ( multilanguage = = null ) multilanguage = "n" ;
boolean isMultilanguageOK = false ;
if ( multilanguage . equals ( "y" ) ) isMultilanguageOK = true ;
boolean flagaccount = GCONST . getMOREACCOUNTLANDING ( ) ;
int scopeId = - 1 ;
HrmFieldGroupComInfo HrmFieldGroupComInfo = new HrmFieldGroupComInfo ( ) ;
HrmFieldSearchConditionComInfo hrmFieldSearchConditionComInfo = new HrmFieldSearchConditionComInfo ( ) ;
HrmFieldManager hfm = new HrmFieldManager ( "HrmCustomFieldByInfoType" , scopeId ) ;
hfm . isReturnDecryptData ( true ) ;
CustomFieldManager cfm = new CustomFieldManager ( "HrmCustomFieldByInfoType" , scopeId ) ;
hfm . getHrmData ( Util . getIntValue ( id ) ) ;
cfm . getCustomData ( Util . getIntValue ( id ) ) ;
while ( HrmFieldGroupComInfo . next ( ) ) {
int grouptype = Util . getIntValue ( HrmFieldGroupComInfo . getType ( ) ) ;
if ( grouptype ! = scopeId ) continue ;
int grouplabel = Util . getIntValue ( HrmFieldGroupComInfo . getLabel ( ) ) ;
int groupid = Util . getIntValue ( HrmFieldGroupComInfo . getid ( ) ) ;
hfm . getCustomFields ( groupid ) ;
groupitem = new HashMap < String , Object > ( ) ;
itemlist = new ArrayList < Object > ( ) ;
groupitem . put ( "title" , SystemEnv . getHtmlLabelName ( grouplabel , user . getLanguage ( ) ) ) ;
groupitem . put ( "hide" , hfm . getContactEditCount ( ) = = 0 | | ! Util . null2String ( HrmFieldGroupComInfo . getIsShow ( ) ) . equals ( "1" ) ) ;
groupitem . put ( "defaultshow" , true ) ;
groupitem . put ( "items" , itemlist ) ;
groupitem . put ( "col" , 1 ) ;
lsGroup . add ( groupitem ) ;
while ( hfm . next ( ) ) {
int tmpviewattr = viewattr ;
String fieldName = hfm . getFieldname ( ) ;
String cusFieldname = "" ;
String fieldValue = "" ;
if ( hfm . isBaseField ( fieldName ) ) {
fieldValue = hfm . getHrmData ( fieldName ) ;
} else {
cusFieldname = "customfield" + hfm . getFieldid ( ) ;
fieldValue = Util . null2String ( new EncryptUtil ( ) . decrypt ( "cus_fielddata" , "field" + hfm . getFieldid ( ) , "HrmCustomFieldByInfoType" , "" + scopeId , cfm . getData ( "field" + hfm . getFieldid ( ) ) , true , true ) ) ;
}
if ( ! hfm . isUse ( ) | | ( ! hfm . isModify ( ) ) ) {
HrmFieldBean hrmFieldBean = new HrmFieldBean ( ) ;
hrmFieldBean . setFieldname ( cusFieldname . length ( ) > 0 ? cusFieldname : fieldName ) ;
hrmFieldBean . setFieldhtmltype ( "1" ) ;
hrmFieldBean . setType ( "1" ) ;
hrmFieldBean . setFieldvalue ( fieldValue ) ;
hrmFieldBean . setIsFormField ( true ) ;
Map < String , Object > otherParams = new HashMap < String , Object > ( ) ;
otherParams . put ( "hide" , true ) ;
hrmFieldBean . setOtherparam ( otherParams ) ;
SearchConditionItem searchConditionItem = hrmFieldSearchConditionComInfo . getSearchConditionItem ( hrmFieldBean , user ) ;
itemlist . add ( searchConditionItem ) ;
continue ;
}
if ( fieldName . equals ( "systemlanguage" ) & & ! isMultilanguageOK ) continue ;
if ( fieldName . equals ( "accounttype" ) & & ! flagaccount ) continue ;
if ( fieldName . equalsIgnoreCase ( "jobGroupId" ) ) {
continue ;
}
if ( fieldName . equals ( "departmentvirtualids" ) | | fieldName . equals ( "messagerurl" ) )
continue ;
if ( fieldName . equals ( "resourceimageid" ) ) {
groupitem . put ( "hasResourceImage" , true ) ;
if ( fieldValue . equals ( "0" ) ) fieldValue = "" ;
if ( fieldValue . length ( ) > 0 ) {
fieldValue = DocDownloadCheckUtil . checkPermission ( fieldValue , user ) ;
}
}
org . json . JSONObject hrmFieldConf = hfm . getHrmFieldConf ( fieldName ) ;
HrmFieldBean hrmFieldBean = new HrmFieldBean ( ) ;
hrmFieldBean . setFieldid ( ( String ) hrmFieldConf . get ( "id" ) ) ;
hrmFieldBean . setFieldname ( cusFieldname . length ( ) > 0 ? cusFieldname : fieldName ) ;
hrmFieldBean . setFieldlabel ( hfm . getLable ( ) ) ;
hrmFieldBean . setFieldhtmltype ( ( String ) hrmFieldConf . get ( "fieldhtmltype" ) ) ;
hrmFieldBean . setType ( ( String ) hrmFieldConf . get ( "type" ) ) ;
hrmFieldBean . setDmlurl ( ( String ) hrmFieldConf . get ( "dmlurl" ) ) ;
hrmFieldBean . setIssystem ( "" + ( Integer ) hrmFieldConf . get ( "issystem" ) ) ;
if ( hrmFieldBean . getFieldname ( ) . equals ( "departmentid" ) ) {
hrmFieldBean . setFieldvalue ( Util . null2String ( request . getParameter ( "departmentid" ) ) ) ;
}
hrmFieldBean . setFieldvalue ( fieldValue ) ;
hrmFieldBean . setIsFormField ( true ) ;
if ( fieldName . equals ( "mobile" ) | | fieldName . equals ( "email" ) | |
fieldName . equals ( "fax" ) | | fieldName . equals ( "telephone" ) | | fieldName . equals ( "mobilecall" ) | | fieldName . equals ( "workcode" ) ) {
hrmFieldBean . setMultilang ( false ) ;
}
if ( ( ( String ) hrmFieldConf . get ( "ismand" ) ) . equals ( "1" ) ) {
if ( hrmFieldBean . getFieldname ( ) . equals ( "managerid" ) ) {
} else {
tmpviewattr = 3 ;
}
}
if ( hrmFieldBean . getFieldname ( ) . equals ( "status" ) ) { //状态不能编辑
tmpviewattr = 1 ;
}
if ( fieldName . equals ( "belongto" ) & & flagaccount ) {
tmpviewattr = 3 ;
}
String rules = "" ;
if ( tmpviewattr = = 3 ) {
rules = "required|string" ;
}
hrmFieldBean . setRules ( rules ) ;
SearchConditionItem searchConditionItem = hrmFieldSearchConditionComInfo . getSearchConditionItem ( hrmFieldBean , user ) ;
if ( searchConditionItem = = null ) continue ;
// if (fieldName.equals("sex")) {
// List<SearchConditionOption> options = new ArrayList<SearchConditionOption>();
// options.add(new SearchConditionOption("0", SystemEnv.getHtmlLabelName(28473, user.getLanguage()), true));
// options.add(new SearchConditionOption("1", SystemEnv.getHtmlLabelName(28474, user.getLanguage())));
// searchConditionItem.setOptions(options);
// }
// if (fieldName.equals("accounttype")) {
// List<SearchConditionOption> options = new ArrayList<SearchConditionOption>();
// options.add(new SearchConditionOption("0", SystemEnv.getHtmlLabelName(17746, user.getLanguage()), true));
// options.add(new SearchConditionOption("1", SystemEnv.getHtmlLabelName(17747, user.getLanguage())));
// searchConditionItem.setOptions(options);
// }
if ( fieldName . equals ( "belongto" ) & & flagaccount ) {
XssUtil xssUtil = new XssUtil ( ) ;
String accountSql = "(accounttype=0 or accounttype is null)" ;
searchConditionItem . getBrowserConditionParam ( ) . getDataParams ( ) . put ( "sqlwhere" , xssUtil . put ( accountSql ) ) ;
searchConditionItem . getBrowserConditionParam ( ) . getCompleteParams ( ) . put ( "sqlwhere" , xssUtil . put ( accountSql ) ) ;
searchConditionItem . getBrowserConditionParam ( ) . getDestDataParams ( ) . put ( "sqlwhere" , xssUtil . put ( accountSql ) ) ;
}
if ( searchConditionItem . getBrowserConditionParam ( ) ! = null ) {
searchConditionItem . getBrowserConditionParam ( ) . setViewAttr ( tmpviewattr ) ;
if ( hrmFieldBean . getFieldname ( ) . equals ( "departmentid" ) ) {
searchConditionItem . getBrowserConditionParam ( ) . getDataParams ( ) . put ( "rightStr" , "HrmResourceAdd:Add" ) ;
searchConditionItem . getBrowserConditionParam ( ) . getCompleteParams ( ) . put ( "rightStr" , "HrmResourceAdd:Add" ) ;
}
}
searchConditionItem . setViewAttr ( tmpviewattr ) ;
itemlist . add ( searchConditionItem ) ;
if ( mapShowSets ! = null & & mapShowSets . get ( fieldName ) ! = null ) {
String mobileShowSet = Util . null2String ( mapShowSets . get ( fieldName ) ) ;
String mobileShowType = Util . null2String ( mapShowTypes . get ( fieldName ) ) ;
String mapShowTypeDefault = Util . null2String ( mapShowTypeDefaults . get ( fieldName ) ) ;
String baseMobileShowTypeDefaults = Util . null2String ( mapBaseShowTypeDefaults . get ( fieldName ) ) ;
if ( mobileShowSet . equals ( "1" ) ) {
String comPk = id + "__" + fieldName ;
fieldValue = Util . null2String ( upc . getPvalue ( comPk ) ) ;
hrmFieldBean = new HrmFieldBean ( ) ;
hrmFieldBean . setFieldname ( fieldName + "showtype" ) ;
hrmFieldBean . setFieldlabelname ( SystemEnv . getHtmlLabelNames ( hfm . getLable ( ) , user . getLanguage ( ) ) + SystemEnv . getHtmlLabelName ( 385571 , user . getLanguage ( ) ) ) ;
hrmFieldBean . setFieldhtmltype ( "5" ) ;
hrmFieldBean . setType ( "1" ) ;
hrmFieldBean . setIssystem ( "1" ) ;
hrmFieldBean . setIsFormField ( true ) ;
searchConditionItem = hrmFieldSearchConditionComInfo . getSearchConditionItem ( hrmFieldBean , user ) ;
if ( searchConditionItem = = null ) continue ;
List < SearchConditionOption > statusOptions = new ArrayList < SearchConditionOption > ( ) ;
if ( mobileShowType . indexOf ( "1" ) ! = - 1 ) {
if ( fieldValue . length ( ) > 0 ) {
statusOptions . add ( new SearchConditionOption ( "1" , SystemEnv . getHtmlLabelName ( 2161 , user . getLanguage ( ) ) , fieldValue . equals ( "1" ) ) ) ;
} else if ( baseMobileShowTypeDefaults . indexOf ( "1" ) ! = - 1 ) {
statusOptions . add ( new SearchConditionOption ( "1" , SystemEnv . getHtmlLabelName ( 2161 , user . getLanguage ( ) ) , true ) ) ;
} else {
statusOptions . add ( new SearchConditionOption ( "1" , SystemEnv . getHtmlLabelName ( 2161 , user . getLanguage ( ) ) ) ) ;
}
}
if ( mobileShowType . indexOf ( "2" ) ! = - 1 ) {
if ( fieldValue . length ( ) > 0 ) {
statusOptions . add ( new SearchConditionOption ( "2" , SystemEnv . getHtmlLabelName ( 32670 , user . getLanguage ( ) ) , fieldValue . equals ( "2" ) ) ) ;
} else if ( baseMobileShowTypeDefaults . indexOf ( "2" ) ! = - 1 ) {
statusOptions . add ( new SearchConditionOption ( "2" , SystemEnv . getHtmlLabelName ( 32670 , user . getLanguage ( ) ) , true ) ) ;
} else {
statusOptions . add ( new SearchConditionOption ( "2" , SystemEnv . getHtmlLabelName ( 32670 , user . getLanguage ( ) ) ) ) ;
}
}
if ( mobileShowType . indexOf ( "3" ) ! = - 1 ) {
if ( fieldValue . length ( ) > 0 ) {
statusOptions . add ( new SearchConditionOption ( "3" , SystemEnv . getHtmlLabelName ( 32671 , user . getLanguage ( ) ) , fieldValue . equals ( "3" ) ) ) ;
} else if ( baseMobileShowTypeDefaults . indexOf ( "3" ) ! = - 1 ) {
statusOptions . add ( new SearchConditionOption ( "3" , SystemEnv . getHtmlLabelName ( 32671 , user . getLanguage ( ) ) , true ) ) ;
} else {
statusOptions . add ( new SearchConditionOption ( "3" , SystemEnv . getHtmlLabelName ( 32671 , user . getLanguage ( ) ) ) ) ;
}
}
searchConditionItem . setValue ( fieldValue ) ;
searchConditionItem . setOptions ( statusOptions ) ;
itemlist . add ( searchConditionItem ) ;
}
}
}
if ( itemlist . size ( ) = = 0 ) lsGroup . remove ( groupitem ) ;
}
result . put ( "conditions" , lsGroup ) ;
} catch ( Exception e ) {
writeLog ( e ) ;
}
Map < String , Object > retmap = new HashMap < String , Object > ( ) ;
retmap . put ( "result" , result ) ;
return JSONObject . toJSONString ( retmap ) ;
}
/ * *
* 获 取 人 员 基 本 信 息 编 辑 表 单
*
* @param request
* @param response
* @return
* /
public String getResourceBaseForm ( HttpServletRequest request , HttpServletResponse response ) {
User user = HrmUserVarify . getUser ( request , response ) ;
Map < String , Object > result = new HashMap < String , Object > ( ) ;
try {
//基本信息
HrmListValidate HrmListValidate = new HrmListValidate ( ) ;
String id = Util . null2String ( request . getParameter ( "id" ) ) . trim ( ) ;
if ( id . length ( ) = = 0 ) {
id = "" + user . getUID ( ) ;
}
AppDetachComInfo AppDetachComInfo = new AppDetachComInfo ( ) ;
if ( AppDetachComInfo . isUseAppDetach ( ) ) {
boolean isApp = true ;
if ( ! AppDetachComInfo . getScopeIds ( user , "resource" , id ) ) {
isApp = false ;
}
if ( ! isApp ) {
String errMsg = SystemEnv . getHtmlLabelName ( 2012 , user . getLanguage ( ) ) ;
HashMap < String , String > jsondata = new HashMap < String , String > ( ) ;
jsondata . put ( "errMsg" , errMsg ) ;
jsondata . put ( "status" , "-1" ) ;
return JSONObject . toJSONString ( jsondata ) ;
}
}
result . put ( "id" , id ) ;
boolean isSelf = false ;
if ( id . equals ( "" + user . getUID ( ) ) ) {
isSelf = true ;
}
HttpSession session = request . getSession ( true ) ;
String subcompanyid = "" ;
String departmentId = "" ;
String status = "" ;
RecordSet rs = new RecordSet ( ) ;
rs . executeSql ( "select subcompanyid1,departmentid, status from hrmresource where id = " + id ) ;
if ( rs . next ( ) ) {
subcompanyid = Util . toScreen ( rs . getString ( "subcompanyid1" ) , user . getLanguage ( ) ) ;
departmentId = Util . toScreen ( rs . getString ( "departmentid" ) , user . getLanguage ( ) ) ;
status = Util . toScreen ( rs . getString ( "status" ) , user . getLanguage ( ) ) ;
if ( subcompanyid = = null | | subcompanyid . equals ( "" ) | | subcompanyid . equalsIgnoreCase ( "null" ) ) {
subcompanyid = "-1" ;
}
session . setAttribute ( "hrm_subCompanyId" , subcompanyid ) ;
}
//人力资源模块是否开启了管理分权,如不是,则不显示框架,直接转向到列表页面(新的分权管理)
int hrmdetachable = 0 ;
if ( session . getAttribute ( "hrmdetachable" ) ! = null ) {
hrmdetachable = Util . getIntValue ( String . valueOf ( session . getAttribute ( "hrmdetachable" ) ) , 0 ) ;
} else {
boolean isUseHrmManageDetach = new ManageDetachComInfo ( ) . isUseHrmManageDetach ( ) ;
if ( isUseHrmManageDetach ) {
hrmdetachable = 1 ;
session . setAttribute ( "detachable" , "1" ) ;
session . setAttribute ( "hrmdetachable" , String . valueOf ( hrmdetachable ) ) ;
} else {
hrmdetachable = 0 ;
session . setAttribute ( "detachable" , "0" ) ;
session . setAttribute ( "hrmdetachable" , String . valueOf ( hrmdetachable ) ) ;
}
}
int operatelevel = - 1 ;
if ( hrmdetachable = = 1 ) {
operatelevel = new CheckSubCompanyRight ( ) . ChkComRightByUserRightCompanyId ( user . getUID ( ) , "HrmResourceEdit:Edit" , Integer . parseInt ( subcompanyid ) ) ;
} else {
if ( HrmUserVarify . checkUserRight ( "HrmResourceEdit:Edit" , user , departmentId ) ) {
operatelevel = 2 ;
}
}
if ( operatelevel > 0 ) {
} else if ( isSelf ) {
return getResourceContactForm ( request , response ) ;
}
Map < String , Object > buttons = new Hashtable < String , Object > ( ) ;
if ( ( ( isSelf & & isHasModify ( - 1 ) ) | | operatelevel > 0 ) & & ! status . equals ( "10" ) ) { //编辑
buttons . put ( "hasEdit" , true ) ;
buttons . put ( "hasSave" , true ) ;
}
result . put ( "hasJobTitlesAdd" , HrmUserVarify . checkUserRight ( "HrmJobTitlesAdd:Add" , user ) ) ;
result . put ( "buttons" , buttons ) ;
result . put ( "conditions" , getFormFields ( request , response , false ) ) ;
result . put ( "validate" , getValidate ( user ) ) ;
} catch ( Exception e ) {
writeLog ( e ) ;
}
Map < String , Object > retmap = new HashMap < String , Object > ( ) ;
retmap . put ( "result" , result ) ;
return JSONObject . toJSONString ( retmap ) ;
}
/ * *
* 人 员 基 本 信 息 表 单 字 段
*
* @param request
* @param response
* @return
* /
public List < Object > getFormFields ( HttpServletRequest request , HttpServletResponse response , boolean isAdd ) {
List < Object > lsGroup = new ArrayList < Object > ( ) ;
try {
User user = HrmUserVarify . getUser ( request , response ) ;
Map < String , Object > groupitem = null ;
List < Object > itemlist = null ;
ChgPasswdReminder reminder = new ChgPasswdReminder ( ) ;
RemindSettings settings = reminder . getRemindSettings ( ) ;
String id = Util . null2String ( request . getParameter ( "id" ) ) ;
if ( id . length ( ) = = 0 ) {
id = "" + user . getUID ( ) ;
}
UserPrivacyComInfo upc = new UserPrivacyComInfo ( ) ;
PrivacyComInfo pc = new PrivacyComInfo ( ) ;
PrivacyBaseComInfo privacyBaseComInfo = new PrivacyBaseComInfo ( ) ;
Map < String , String > mapShowSets = pc . getMapShowSets ( ) ;
Map < String , String > mapShowTypes = pc . getMapShowTypes ( ) ;
Map < String , String > mapShowTypeDefaults = pc . getMapShowTypeDefaults ( ) ;
//总体的大开关的默认设置
Map < String , String > mapBaseShowTypeDefaults = privacyBaseComInfo . getMapShowTypeDefaults ( ) ;
StaticObj staticobj = StaticObj . getInstance ( ) ;
String multilanguage = ( String ) staticobj . getObject ( "multilanguage" ) ;
if ( multilanguage = = null ) multilanguage = "n" ;
boolean isMultilanguageOK = false ;
if ( multilanguage . equals ( "y" ) ) isMultilanguageOK = true ;
boolean flagaccount = GCONST . getMOREACCOUNTLANDING ( ) ;
int viewattr = isAdd ? 2 : Util . getIntValue ( request . getParameter ( "viewattr" ) , 1 ) ;
int scopeId = - 1 ;
HrmFieldGroupComInfo HrmFieldGroupComInfo = new HrmFieldGroupComInfo ( ) ;
HrmFieldSearchConditionComInfo hrmFieldSearchConditionComInfo = new HrmFieldSearchConditionComInfo ( ) ;
hrmFieldSearchConditionComInfo . setIsMobile ( Util . null2String ( request . getParameter ( "ismobile" ) ) ) ;
HrmFieldManager hfm = new HrmFieldManager ( "HrmCustomFieldByInfoType" , scopeId ) ;
hfm . isReturnDecryptData ( true ) ;
CustomFieldManager cfm = new CustomFieldManager ( "HrmCustomFieldByInfoType" , scopeId ) ;
hfm . getHrmData ( Util . getIntValue ( id ) ) ;
cfm . getCustomData ( Util . getIntValue ( id ) ) ;
while ( HrmFieldGroupComInfo . next ( ) ) {
int grouptype = Util . getIntValue ( HrmFieldGroupComInfo . getType ( ) ) ;
if ( grouptype ! = scopeId ) continue ;
int grouplabel = Util . getIntValue ( HrmFieldGroupComInfo . getLabel ( ) ) ;
int groupid = Util . getIntValue ( HrmFieldGroupComInfo . getid ( ) ) ;
hfm . getCustomFields ( groupid ) ;
//if(hfm.getGroupCount()==0)continue;
groupitem = new HashMap < String , Object > ( ) ;
itemlist = new ArrayList < Object > ( ) ;
groupitem . put ( "title" , SystemEnv . getHtmlLabelName ( grouplabel , user . getLanguage ( ) ) ) ;
groupitem . put ( "defaultshow" , true ) ;
groupitem . put ( "hide" , hfm . getGroupCount ( ) = = 0 | | ! Util . null2String ( HrmFieldGroupComInfo . getIsShow ( ) ) . equals ( "1" ) ) ;
groupitem . put ( "items" , itemlist ) ;
lsGroup . add ( groupitem ) ;
while ( hfm . next ( ) ) {
int tmpviewattr = viewattr ;
String fieldName = hfm . getFieldname ( ) ;
String cusFieldname = "" ;
String fieldValue = "" ;
if ( hfm . isBaseField ( fieldName ) ) {
fieldValue = hfm . getHrmData ( fieldName ) ;
} else {
cusFieldname = "customfield" + hfm . getFieldid ( ) ;
if ( isAdd ) cusFieldname = "customfield_0_" + hfm . getFieldid ( ) ;
fieldValue = Util . null2String ( new EncryptUtil ( ) . decrypt ( "cus_fielddata" , "field" + hfm . getFieldid ( ) , "HrmCustomFieldByInfoType" , "" + scopeId , cfm . getData ( "field" + hfm . getFieldid ( ) ) , true , true ) ) ;
}
if ( ! hfm . isUse ( ) ) {
HrmFieldBean hrmFieldBean = new HrmFieldBean ( ) ;
hrmFieldBean . setFieldname ( cusFieldname . length ( ) > 0 ? cusFieldname : fieldName ) ;
hrmFieldBean . setFieldhtmltype ( "1" ) ;
hrmFieldBean . setType ( "1" ) ;
if ( ! isAdd ) {
hrmFieldBean . setFieldvalue ( fieldValue ) ;
}
hrmFieldBean . setIsFormField ( true ) ;
Map < String , Object > otherParams = new HashMap < String , Object > ( ) ;
otherParams . put ( "hide" , true ) ;
hrmFieldBean . setOtherparam ( otherParams ) ;
SearchConditionItem searchConditionItem = hrmFieldSearchConditionComInfo . getSearchConditionItem ( hrmFieldBean , user ) ;
itemlist . add ( searchConditionItem ) ;
continue ;
}
if ( fieldName . equals ( "resourceimageid" ) ) {
groupitem . put ( "hasResourceImage" , true ) ;
if ( fieldValue . equals ( "0" ) ) fieldValue = "" ;
if ( fieldValue . length ( ) > 0 ) {
fieldValue = DocDownloadCheckUtil . checkPermission ( fieldValue , user ) ;
}
}
if ( fieldName . equals ( "loginid" ) | | fieldName . equals ( "jobactivity" ) | | fieldName . equals ( "departmentvirtualids" ) | | fieldName . equals ( "messagerurl" ) )
continue ;
if ( fieldName . equalsIgnoreCase ( "jobGroupId" ) ) {
continue ;
}
if ( ! isAdd & & fieldName . equals ( "status" ) ) {
continue ;
}
if ( fieldName . equals ( "systemlanguage" ) & & ! isMultilanguageOK ) continue ;
if ( fieldName . equals ( "accounttype" ) & & ! flagaccount ) continue ;
org . json . JSONObject hrmFieldConf = hfm . getHrmFieldConf ( fieldName ) ;
HrmFieldBean hrmFieldBean = new HrmFieldBean ( ) ;
hrmFieldBean . setFieldid ( ( String ) hrmFieldConf . get ( "id" ) ) ;
hrmFieldBean . setFieldname ( cusFieldname . length ( ) > 0 ? cusFieldname : fieldName ) ;
hrmFieldBean . setFieldlabel ( hfm . getLable ( ) ) ;
hrmFieldBean . setFieldhtmltype ( ( String ) hrmFieldConf . get ( "fieldhtmltype" ) ) ;
hrmFieldBean . setType ( ( String ) hrmFieldConf . get ( "type" ) ) ;
hrmFieldBean . setDmlurl ( ( String ) hrmFieldConf . get ( "dmlurl" ) ) ;
hrmFieldBean . setIssystem ( "" + ( Integer ) hrmFieldConf . get ( "issystem" ) ) ;
if ( hrmFieldBean . getFieldname ( ) . equals ( "departmentid" ) ) {
hrmFieldBean . setFieldvalue ( Util . null2String ( request . getParameter ( "departmentid" ) ) ) ;
}
if ( ! isAdd ) {
hrmFieldBean . setFieldvalue ( fieldValue ) ;
}
hrmFieldBean . setIsFormField ( true ) ;
if ( fieldName . equals ( "mobile" ) | | fieldName . equals ( "email" ) | |
fieldName . equals ( "fax" ) | | fieldName . equals ( "telephone" ) | | fieldName . equals ( "mobilecall" ) | | fieldName . equals ( "workcode" ) ) {
hrmFieldBean . setMultilang ( false ) ;
}
if ( ( ( String ) hrmFieldConf . get ( "ismand" ) ) . equals ( "1" ) ) {
if ( hrmFieldBean . getFieldname ( ) . equals ( "managerid" ) ) {
} else {
tmpviewattr = 3 ;
}
}
if ( fieldName . equals ( "belongto" ) & & flagaccount ) {
tmpviewattr = 3 ;
}
String rules = "" ;
if ( tmpviewattr = = 3 ) {
rules = "required|string" ;
}
hrmFieldBean . setRules ( rules ) ;
SearchConditionItem searchConditionItem = hrmFieldSearchConditionComInfo . getSearchConditionItem ( hrmFieldBean , user ) ;
if ( "departmentid" . equals ( hrmFieldBean . getFieldname ( ) ) ) {
DepartmentComInfo comInfo = new DepartmentComInfo ( ) ;
List < Map < String , Object > > replaceDatas = new ArrayList < Map < String , Object > > ( ) ;
Map < String , Object > datas = new HashMap < String , Object > ( ) ;
if ( ! "" . equals ( fieldValue ) ) {
String deptname = "" ;
try {
deptname = comInfo . getDepartmentname ( fieldValue ) ;
} catch ( Exception e ) {
new BaseBean ( ) . writeLog ( e ) ;
}
datas . put ( "id" , fieldValue ) ;
datas . put ( "name" , deptname ) ;
replaceDatas . add ( datas ) ;
}
searchConditionItem . getBrowserConditionParam ( ) . setReplaceDatas ( replaceDatas ) ;
}
if ( searchConditionItem = = null ) continue ;
// if (fieldName.equals("sex")) {
// List<SearchConditionOption> options = new ArrayList<SearchConditionOption>();
// options.add(new SearchConditionOption("0", SystemEnv.getHtmlLabelName(28473, user.getLanguage()), true));
// options.add(new SearchConditionOption("1", SystemEnv.getHtmlLabelName(28474, user.getLanguage())));
// searchConditionItem.setOptions(options);
// }
// if (fieldName.equals("accounttype")) {
// List<SearchConditionOption> options = new ArrayList<SearchConditionOption>();
// options.add(new SearchConditionOption("0", SystemEnv.getHtmlLabelName(17746, user.getLanguage()), true));
// options.add(new SearchConditionOption("1", SystemEnv.getHtmlLabelName(17747, user.getLanguage())));
// searchConditionItem.setOptions(options);
// }
if ( fieldName . equals ( "belongto" ) & & flagaccount ) {
XssUtil xssUtil = new XssUtil ( ) ;
String accountSql = "(accounttype=0 or accounttype is null)" ;
searchConditionItem . getBrowserConditionParam ( ) . getDataParams ( ) . put ( "sqlwhere" , xssUtil . put ( accountSql ) ) ;
searchConditionItem . getBrowserConditionParam ( ) . getCompleteParams ( ) . put ( "sqlwhere" , xssUtil . put ( accountSql ) ) ;
searchConditionItem . getBrowserConditionParam ( ) . getDestDataParams ( ) . put ( "sqlwhere" , xssUtil . put ( accountSql ) ) ;
}
if ( searchConditionItem . getBrowserConditionParam ( ) ! = null ) {
searchConditionItem . getBrowserConditionParam ( ) . setViewAttr ( tmpviewattr ) ;
if ( hrmFieldBean . getFieldname ( ) . equals ( "departmentid" ) ) {
searchConditionItem . getBrowserConditionParam ( ) . getDataParams ( ) . put ( "rightStr" , "HrmResourceAdd:Add" ) ;
searchConditionItem . getBrowserConditionParam ( ) . getCompleteParams ( ) . put ( "rightStr" , "HrmResourceAdd:Add" ) ;
}
}
searchConditionItem . setViewAttr ( tmpviewattr ) ;
if ( isAdd & & fieldName . equals ( "status" ) ) {
List < SearchConditionOption > statusOptions = new ArrayList < SearchConditionOption > ( ) ;
statusOptions . add ( new SearchConditionOption ( "0" , SystemEnv . getHtmlLabelName ( 15710 , user . getLanguage ( ) ) , true ) ) ;
statusOptions . add ( new SearchConditionOption ( "1" , SystemEnv . getHtmlLabelName ( 15711 , user . getLanguage ( ) ) ) ) ;
statusOptions . add ( new SearchConditionOption ( "2" , SystemEnv . getHtmlLabelName ( 480 , user . getLanguage ( ) ) ) ) ;
searchConditionItem . setOptions ( statusOptions ) ;
}
itemlist . add ( searchConditionItem ) ;
if ( mapShowSets ! = null & & mapShowSets . get ( fieldName ) ! = null ) {
String mobileShowSet = Util . null2String ( mapShowSets . get ( fieldName ) ) ;
String mobileShowType = Util . null2String ( mapShowTypes . get ( fieldName ) ) ;
String mapShowTypeDefault = Util . null2String ( mapShowTypeDefaults . get ( fieldName ) ) ;
String baseMobileShowTypeDefaults = Util . null2String ( mapBaseShowTypeDefaults . get ( fieldName ) ) ;
if ( mobileShowSet . equals ( "1" ) ) {
// userid+"__"+ptype
String comPk = id + "__" + fieldName ;
fieldValue = Util . null2String ( upc . getPvalue ( comPk ) ) ;
hrmFieldBean = new HrmFieldBean ( ) ;
hrmFieldBean . setFieldname ( fieldName + "showtype" ) ;
hrmFieldBean . setFieldlabelname ( SystemEnv . getHtmlLabelNames ( hfm . getLable ( ) , user . getLanguage ( ) ) + SystemEnv . getHtmlLabelName ( 385571 , user . getLanguage ( ) ) ) ;
hrmFieldBean . setFieldhtmltype ( "5" ) ;
hrmFieldBean . setType ( "1" ) ;
hrmFieldBean . setIssystem ( "1" ) ;
hrmFieldBean . setIsFormField ( true ) ;
searchConditionItem = hrmFieldSearchConditionComInfo . getSearchConditionItem ( hrmFieldBean , user ) ;
if ( searchConditionItem = = null ) continue ;
List < SearchConditionOption > statusOptions = new ArrayList < SearchConditionOption > ( ) ;
if ( mobileShowType . indexOf ( "1" ) ! = - 1 ) {
if ( fieldValue . length ( ) > 0 ) {
statusOptions . add ( new SearchConditionOption ( "1" , SystemEnv . getHtmlLabelName ( 2161 , user . getLanguage ( ) ) , fieldValue . equals ( "1" ) ) ) ;
} else if ( baseMobileShowTypeDefaults . indexOf ( "1" ) ! = - 1 ) {
statusOptions . add ( new SearchConditionOption ( "1" , SystemEnv . getHtmlLabelName ( 2161 , user . getLanguage ( ) ) , true ) ) ;
} else {
statusOptions . add ( new SearchConditionOption ( "1" , SystemEnv . getHtmlLabelName ( 2161 , user . getLanguage ( ) ) ) ) ;
}
}
if ( mobileShowType . indexOf ( "2" ) ! = - 1 ) {
if ( fieldValue . length ( ) > 0 ) {
statusOptions . add ( new SearchConditionOption ( "2" , SystemEnv . getHtmlLabelName ( 32670 , user . getLanguage ( ) ) , fieldValue . equals ( "2" ) ) ) ;
} else if ( baseMobileShowTypeDefaults . indexOf ( "2" ) ! = - 1 ) {
statusOptions . add ( new SearchConditionOption ( "2" , SystemEnv . getHtmlLabelName ( 32670 , user . getLanguage ( ) ) , true ) ) ;
} else {
statusOptions . add ( new SearchConditionOption ( "2" , SystemEnv . getHtmlLabelName ( 32670 , user . getLanguage ( ) ) ) ) ;
}
}
if ( mobileShowType . indexOf ( "3" ) ! = - 1 ) {
if ( fieldValue . length ( ) > 0 ) {
statusOptions . add ( new SearchConditionOption ( "3" , SystemEnv . getHtmlLabelName ( 32671 , user . getLanguage ( ) ) , fieldValue . equals ( "3" ) ) ) ;
} else if ( baseMobileShowTypeDefaults . indexOf ( "3" ) ! = - 1 ) {
statusOptions . add ( new SearchConditionOption ( "3" , SystemEnv . getHtmlLabelName ( 32671 , user . getLanguage ( ) ) , true ) ) ;
} else {
statusOptions . add ( new SearchConditionOption ( "3" , SystemEnv . getHtmlLabelName ( 32671 , user . getLanguage ( ) ) ) ) ;
}
}
searchConditionItem . setValue ( fieldValue ) ;
searchConditionItem . setOptions ( statusOptions ) ;
itemlist . add ( searchConditionItem ) ;
}
}
// if(fieldName.equals("mobile")){
// String mobileShowSet = Util.null2String(settings.getMobileShowSet());
// String mobileShowType = Util.null2String(settings.getMobileShowType());
// if(mobileShowSet.equals("1")){
// String sql = "";
// RecordSet rs = new RecordSet();
// sql = "select costcenterid,mobileshowtype from HrmResource where id = "+Util.getIntValue(id,-1);
// rs.executeSql(sql);
// if(rs.next()){
// fieldValue = Util.null2String(rs.getString("mobileshowtype"));
// }
// if(isAdd){
// fieldValue = Util.null2String(settings.getMobileShowTypeDefault());
// }
// hrmFieldBean = new HrmFieldBean();
// hrmFieldBean.setFieldname("mobileshowtype");
// hrmFieldBean.setFieldlabel("32684");
// hrmFieldBean.setFieldhtmltype("5");
// hrmFieldBean.setType("1");
// hrmFieldBean.setIssystem("1");
// hrmFieldBean.setIsFormField(true);
// searchConditionItem = hrmFieldSearchConditionComInfo.getSearchConditionItem(hrmFieldBean, user);
// if(searchConditionItem==null)continue;
// List<SearchConditionOption> statusOptions = new ArrayList<SearchConditionOption>();
// if(mobileShowType.indexOf("1")!=-1){
// statusOptions.add(new SearchConditionOption("1",SystemEnv.getHtmlLabelName(2161,user.getLanguage()),fieldValue.equals("1")));
// }if(mobileShowType.indexOf("2")!=-1){
// statusOptions.add(new SearchConditionOption("2",SystemEnv.getHtmlLabelName(32670,user.getLanguage()),fieldValue.equals("2")));
// }if(mobileShowType.indexOf("3")!=-1){
// statusOptions.add(new SearchConditionOption("3",SystemEnv.getHtmlLabelName(32671,user.getLanguage()),fieldValue.equals("3")));
// }
// searchConditionItem.setOptions(statusOptions);
// itemlist.add(searchConditionItem);
// }
// }
}
if ( itemlist . size ( ) = = 0 ) lsGroup . remove ( groupitem ) ;
}
} catch ( Exception e ) {
writeLog ( e ) ;
}
return lsGroup ;
}
/ * *
* 查 看 人 员 基 本 信 息
*
* @param request
* @param response
* @return
* /
public String getResourceBaseView ( HttpServletRequest request , HttpServletResponse response ) {
Map < String , Object > retmap = new HashMap < String , Object > ( ) ;
try {
HrmListValidate HrmListValidate = new HrmListValidate ( ) ;
User user = HrmUserVarify . getUser ( request , response ) ;
String id = Util . null2String ( request . getParameter ( "id" ) ) ;
if ( id . length ( ) = = 0 ) {
id = "" + user . getUID ( ) ;
}
AppDetachComInfo AppDetachComInfo = new AppDetachComInfo ( ) ;
if ( AppDetachComInfo . isUseAppDetach ( ) ) {
boolean isApp = true ;
if ( ! AppDetachComInfo . getScopeIds ( user , "resource" , id ) ) {
isApp = false ;
}
if ( ! isApp ) {
String errMsg = SystemEnv . getHtmlLabelName ( 2012 , user . getLanguage ( ) ) ;
HashMap < String , String > jsondata = new HashMap < String , String > ( ) ;
jsondata . put ( "errMsg" , errMsg ) ;
jsondata . put ( "status" , "-1" ) ;
return JSONObject . toJSONString ( jsondata ) ;
}
}
if ( id . equals ( "" ) ) id = String . valueOf ( user . getUID ( ) ) ;
String status = "" ;
String subcompanyid = "" , departmentId = "" ;
int scopeId = - 1 ;
RecordSet rs = new RecordSet ( ) ;
HttpSession session = request . getSession ( true ) ;
rs . executeSql ( "select subcompanyid1, status, departmentId from hrmresource where id = " + id ) ;
if ( rs . next ( ) ) {
status = Util . toScreen ( rs . getString ( "status" ) , user . getLanguage ( ) ) ;
subcompanyid = Util . toScreen ( rs . getString ( "subcompanyid1" ) , user . getLanguage ( ) ) ;
departmentId = StringUtil . vString ( rs . getString ( "departmentId" ) ) ;
if ( subcompanyid = = null | | subcompanyid . equals ( "" ) | | subcompanyid . equalsIgnoreCase ( "null" ) )
subcompanyid = "-1" ;
session . setAttribute ( "hrm_subCompanyId" , subcompanyid ) ;
}
boolean isSelf = false ;
if ( id . equals ( "" + user . getUID ( ) ) ) {
isSelf = true ;
}
int operatelevel = - 1 ;
//人力资源模块是否开启了管理分权,如不是,则不显示框架,直接转向到列表页面(新的分权管理)
int hrmdetachable = 0 ;
ManageDetachComInfo ManageDetachComInfo = new ManageDetachComInfo ( ) ;
if ( session . getAttribute ( "hrmdetachable" ) ! = null ) {
hrmdetachable = Util . getIntValue ( String . valueOf ( session . getAttribute ( "hrmdetachable" ) ) , 0 ) ;
} else {
boolean isUseHrmManageDetach = ManageDetachComInfo . isUseHrmManageDetach ( ) ;
if ( isUseHrmManageDetach ) {
hrmdetachable = 1 ;
session . setAttribute ( "detachable" , "1" ) ;
session . setAttribute ( "hrmdetachable" , String . valueOf ( hrmdetachable ) ) ;
} else {
hrmdetachable = 0 ;
session . setAttribute ( "detachable" , "0" ) ;
session . setAttribute ( "hrmdetachable" , String . valueOf ( hrmdetachable ) ) ;
}
}
if ( hrmdetachable = = 1 ) {
CheckSubCompanyRight CheckSubCompanyRight = new CheckSubCompanyRight ( ) ;
operatelevel = CheckSubCompanyRight . ChkComRightByUserRightCompanyId ( user . getUID ( ) , "HrmResourceEdit:Edit" , Integer . parseInt ( subcompanyid ) ) ;
} else {
if ( HrmUserVarify . checkUserRight ( "HrmResourceEdit:Edit" , user , departmentId ) ) {
operatelevel = 2 ;
}
}
Map < String , Object > buttons = new Hashtable < String , Object > ( ) ;
if ( ( ( isSelf & & isHasModify ( - 1 ) ) | | operatelevel > 0 ) & & ! status . equals ( "10" ) ) {
buttons . put ( "hasEdit" , true ) ;
buttons . put ( "hasSave" , true ) ;
}
retmap . put ( "buttons" , buttons ) ;
RecordSet RecordSet = new RecordSet ( ) ;
SubCompanyComInfo SubCompanyComInfo = new SubCompanyComInfo ( ) ;
DepartmentComInfo DepartmentComInfo = new DepartmentComInfo ( ) ;
ResourceComInfo resourceComInfo = new ResourceComInfo ( ) ;
JobTitlesComInfo jobTitlesComInfo = new JobTitlesComInfo ( ) ;
JobActivitiesComInfo jobActivitiesComInfo = new JobActivitiesComInfo ( ) ;
LocationComInfo locationComInfo = new LocationComInfo ( ) ;
LanguageComInfo languageComInfo = new LanguageComInfo ( ) ;
HrmResourceFile hrmResourceFile = new HrmResourceFile ( ) ;
HrmFieldGroupComInfo hrmFieldGroupComInfo = new HrmFieldGroupComInfo ( ) ;
ResourceBelongtoComInfo resourceBelongtoComInfo = new ResourceBelongtoComInfo ( ) ;
HrmFieldManager hfm = new HrmFieldManager ( "HrmCustomFieldByInfoType" , scopeId ) ;
CustomFieldManager cfm = new CustomFieldManager ( "HrmCustomFieldByInfoType" , scopeId ) ;
String sql = "" ;
List < Map < String , Object > > grouplist = new ArrayList < Map < String , Object > > ( ) ;
Map < String , Object > jsondata = null ;
Map < String , Object > item1 = new HashMap < String , Object > ( ) ; //姓名等头部信息lastname,workcode,sex,orginfo
Map < String , Object > item2 = new HashMap < String , Object > ( ) ; //账号信息accounttype,accounts,managerid,subordinatescount,status,lastlogindate
Map < String , Object > item3 = new HashMap < String , Object > ( ) ; //系统登录维护信息createrid,createdate,lastmoddate,lastmodid
grouplist . add ( item1 ) ;
grouplist . add ( item2 ) ;
grouplist . add ( item3 ) ;
List < Object > itemlist1 = new ArrayList < Object > ( ) ;
List < Object > itemlist2 = new ArrayList < Object > ( ) ;
List < Object > itemlist3 = new ArrayList < Object > ( ) ;
item1 . put ( "title" , "" + SystemEnv . getHtmlLabelName ( 10004508 , weaver . general . ThreadVarLanguage . getLang ( ) ) + "" ) ;
item1 . put ( "id" , "item1" ) ;
item1 . put ( "defaultshow" , true ) ;
item1 . put ( "items" , itemlist1 ) ;
item2 . put ( "title" , "" + SystemEnv . getHtmlLabelName ( 10004509 , weaver . general . ThreadVarLanguage . getLang ( ) ) + "" ) ;
item2 . put ( "id" , "item2" ) ;
item2 . put ( "defaultshow" , true ) ;
item2 . put ( "items" , itemlist2 ) ;
item3 . put ( "title" , SystemEnv . getHtmlLabelName ( 2023 , user . getLanguage ( ) ) ) ;
item3 . put ( "id" , "item3" ) ;
item3 . put ( "defaultshow" , true ) ;
item3 . put ( "items" , itemlist3 ) ;
PrivacyComInfo pc = new PrivacyComInfo ( ) ;
Map < String , String > mapShowSets = pc . getMapShowSets ( ) ;
Map < String , String > mapShowTypes = pc . getMapShowTypes ( ) ;
Map < String , String > mapShowTypeDefaults = pc . getMapShowTypeDefaults ( ) ;
UserPrivacyComInfo upc = new UserPrivacyComInfo ( ) ;
//基本信息
sql = "select * from hrmresource where id=" + id ;
rs . executeSql ( sql ) ;
if ( rs . next ( ) ) {
String lastname = Util . toScreen ( rs . getString ( "lastname" ) , user . getLanguage ( ) ) ;
String workcode = Util . toScreen ( rs . getString ( "workcode" ) , user . getLanguage ( ) ) ;
String sex = Util . toScreen ( rs . getString ( "sex" ) , user . getLanguage ( ) ) ;
subcompanyid = Util . toScreen ( rs . getString ( "subcompanyid1" ) , user . getLanguage ( ) ) ;
String departmentid = Util . toScreen ( rs . getString ( "departmentid" ) , user . getLanguage ( ) ) ;
int accounttype = Util . getIntValue ( rs . getString ( "accounttype" ) , 0 ) ;
String managerid = Util . toScreen ( rs . getString ( "managerid" ) , user . getLanguage ( ) ) ;
String assistantid = Util . toScreen ( rs . getString ( "assistantid" ) , user . getLanguage ( ) ) ;
status = Util . toScreen ( rs . getString ( "status" ) , user . getLanguage ( ) ) ;
String lastlogindate = Util . toScreen ( rs . getString ( "lastlogindate" ) , user . getLanguage ( ) ) ;
String createrid = Util . toScreen ( rs . getString ( "createrid" ) , user . getLanguage ( ) ) ;
String createdate = Util . toScreen ( rs . getString ( "createdate" ) , user . getLanguage ( ) ) ;
String lastmoddate = Util . toScreen ( rs . getString ( "lastmoddate" ) , user . getLanguage ( ) ) ;
String lastmodid = Util . toScreen ( rs . getString ( "lastmodid" ) , user . getLanguage ( ) ) ;
String jobtitle = Util . toScreen ( rs . getString ( "jobtitle" ) , user . getLanguage ( ) ) ;
String jobcall = Util . toScreen ( rs . getString ( "jobcall" ) , user . getLanguage ( ) ) ;
String joblevel = Util . toScreen ( rs . getString ( "joblevel" ) , user . getLanguage ( ) ) ;
String jobactivitydesc = Util . toScreen ( rs . getString ( "jobactivitydesc" ) , user . getLanguage ( ) ) ;
String locationid = Util . toScreen ( rs . getString ( "loactionid" ) , user . getLanguage ( ) ) ;
String systemlanguage = Util . toScreen ( rs . getString ( "systemlanguage" ) , user . getLanguage ( ) ) ;
String mobile = resourceComInfo . getMobileShow ( id , user ) ;
String fax = Util . toScreen ( rs . getString ( "fax" ) , user . getLanguage ( ) ) ;
String telephone = Util . toScreen ( rs . getString ( "telephone" ) , user . getLanguage ( ) ) ;
String email = Util . toScreen ( rs . getString ( "email" ) , user . getLanguage ( ) ) ;
String mobilecall = Util . toScreen ( rs . getString ( "mobilecall" ) , user . getLanguage ( ) ) ;
String workroom = Util . toScreen ( rs . getString ( "workroom" ) , user . getLanguage ( ) ) ;
String resourceimageid = Util . getFileidOut ( rs . getString ( "resourceimageid" ) ) ;
String messagerurl = Util . null2String ( rs . getString ( "messagerurl" ) ) ;
String ismobile = Util . null2String ( request . getParameter ( "ismobile" ) ) ;
/*最后登录时间已存储至另一张表*/
String lastLoginDateSql = "select * from userlastlogindate where userId=?" ;
RecordSet recordSet = new RecordSet ( ) ;
recordSet . executeQuery ( lastLoginDateSql , id ) ;
if ( recordSet . next ( ) ) {
lastlogindate = recordSet . getString ( "lastLoginDate" ) ;
}
lastname = lastname . endsWith ( "\\" ) & & ! lastname . endsWith ( "\\\\" ) = = true ? lastname + "\\" : lastname ;
lastname = StringUtil . replace ( lastname , "'" , "\\\\'" ) ;
jsondata = new HashMap < String , Object > ( ) ;
jsondata . put ( "name" , "lastname" ) ;
jsondata . put ( "label" , SystemEnv . getHtmlLabelName ( 413 , user . getLanguage ( ) ) ) ;
jsondata . put ( "value" , lastname ) ;
itemlist1 . add ( jsondata ) ;
jsondata = new HashMap < String , Object > ( ) ;
jsondata . put ( "name" , "messagerurl" ) ;
jsondata . put ( "label" , SystemEnv . getHtmlLabelName ( 24513 , user . getLanguage ( ) ) ) ;
jsondata . put ( "value" , resourceComInfo . getMessagerUrls ( id ) ) ;
itemlist1 . add ( jsondata ) ;
jsondata = new HashMap < String , Object > ( ) ;
jsondata . put ( "name" , "workcode" ) ;
jsondata . put ( "label" , SystemEnv . getHtmlLabelName ( 714 , user . getLanguage ( ) ) ) ;
jsondata . put ( "value" , workcode ) ;
itemlist1 . add ( jsondata ) ;
jsondata = new HashMap < String , Object > ( ) ;
jsondata . put ( "name" , "sex" ) ;
jsondata . put ( "label" , SystemEnv . getHtmlLabelName ( 416 , user . getLanguage ( ) ) ) ;
jsondata . put ( "sex" , sex ) ; //0: 男性, 1: 女性
if ( sex . equals ( "0" ) ) {
jsondata . put ( "value" , SystemEnv . getHtmlLabelName ( 28473 , user . getLanguage ( ) ) ) ;
} else if ( sex . equals ( "1" ) ) {
jsondata . put ( "value" , SystemEnv . getHtmlLabelName ( 28474 , user . getLanguage ( ) ) ) ;
}
itemlist1 . add ( jsondata ) ;
jsondata = new HashMap < String , Object > ( ) ;
jsondata . put ( "name" , "orginfo" ) ;
jsondata . put ( "label" , SystemEnv . getHtmlLabelName ( 376 , user . getLanguage ( ) ) ) ;
jsondata . put ( "value" , DepartmentComInfo . getAllParentDepartmentNames ( departmentid , subcompanyid ) ) ;
itemlist1 . add ( jsondata ) ;
jsondata = new HashMap < String , Object > ( ) ;
jsondata . put ( "name" , "resourceimageid" ) ;
jsondata . put ( "label" , SystemEnv . getHtmlLabelName ( 15707 , user . getLanguage ( ) ) ) ;
String url = "" ;
if ( ! resourceimageid . equals ( "0" ) & & resourceimageid . length ( ) > 0 & & HrmListValidate . isValidate ( 36 ) ) {
String mainControlHost = Util . null2String ( Prop . getInstance ( ) . getPropValue ( "Others" , "MAINCONTROLHOST" ) ) ;
url = mainControlHost + "/weaver/weaver.file.FileDownload?fileid=" + resourceimageid ;
} else {
if ( sex . equals ( "" ) | | sex . equals ( "0" ) ) {
url = "/images/messageimages/temp/man_wev8.png" ;
} else if ( sex . equals ( "1" ) ) {
url = "/images/messageimages/temp/women_wev8.png" ;
}
}
jsondata . put ( "value" , url ) ;
itemlist2 . add ( jsondata ) ;
jsondata = new HashMap < String , Object > ( ) ;
Map < String , Object > options = new HashMap < String , Object > ( ) ;
jsondata . put ( "options" , options ) ;
itemlist2 . add ( jsondata ) ;
//var data = { "lastname": "吕益", "mobile": "13899998888","telephone":"021-99998888","email":"lvyi@weaver.com","jobtitle":"开发工程师","department":"人力资源组","locationname":"上海"};
options . put ( "lastname" , lastname ) ;
options . put ( "mobile" , mobile ) ;
options . put ( "telephone" , telephone ) ;
options . put ( "email" , email ) ;
options . put ( "jobtitle" , jobTitlesComInfo . getJobTitlesname ( joblevel ) ) ;
options . put ( "department" , DepartmentComInfo . getDepartmentname ( departmentid ) ) ;
options . put ( "locationname" , locationComInfo . getLocationname ( departmentid ) ) ;
List < Object > lsOption = new ArrayList < Object > ( ) ;
jsondata = new HashMap < String , Object > ( ) ;
jsondata . put ( "options" , lsOption ) ;
itemlist2 . add ( jsondata ) ;
Map < String , Object > option = null ;
option = new HashMap < String , Object > ( ) ; //发消息
option . put ( "id" , id ) ;
option . put ( "validateId" , "33" ) ;
option . put ( "name" , "sendEmessage" ) ;
option . put ( "funname" , "sendEmessage" ) ;
option . put ( "title" , SystemEnv . getHtmlLabelName ( 127379 , user . getLanguage ( ) ) ) ;
lsOption . add ( option ) ;
option = new HashMap < String , Object > ( ) ; //发送短信
option . put ( "id" , id ) ;
option . put ( "validateId" , "31" ) ;
option . put ( "name" , "openmessage" ) ;
option . put ( "funname" , "sendSmsMessage" ) ;
option . put ( "title" , SystemEnv . getHtmlLabelName ( 16635 , user . getLanguage ( ) ) ) ;
lsOption . add ( option ) ;
option = new HashMap < String , Object > ( ) ; //发送邮件
option . put ( "id" , id ) ;
option . put ( "validateId" , "19" ) ;
option . put ( "name" , "openemail" ) ;
option . put ( "funname" , "sendMail" ) ;
option . put ( "title" , SystemEnv . getHtmlLabelName ( 2051 , user . getLanguage ( ) ) ) ;
lsOption . add ( option ) ;
option = new HashMap < String , Object > ( ) ; //新建日程
option . put ( "id" , id ) ;
option . put ( "validateId" , "32" ) ;
option . put ( "name" , "doAddWorkPlan" ) ;
option . put ( "funname" , "doAddWorkPlanByHrm" ) ;
option . put ( "title" , SystemEnv . getHtmlLabelName ( 18481 , user . getLanguage ( ) ) ) ;
lsOption . add ( option ) ;
List < Map < String , Object > > ls = new ArrayList < Map < String , Object > > ( ) ;
jsondata = new HashMap < String , Object > ( ) ;
jsondata . put ( "accountinfo" , ls ) ;
itemlist2 . add ( jsondata ) ;
String value = "" ;
String showName = "" ;
List accounts = new VerifyLogin ( ) . getAccountsById ( Integer . valueOf ( id ) . intValue ( ) ) ;
Iterator iter = null ;
if ( accounts ! = null ) iter = accounts . iterator ( ) ;
Account current = new Account ( ) ;
while ( iter ! = null & & iter . hasNext ( ) ) {
Account a = ( Account ) iter . next ( ) ;
if ( ( "" + a . getId ( ) ) . equals ( id ) )
current = a ;
}
if ( GCONST . getMOREACCOUNTLANDING ( ) ) {
jsondata = new HashMap < String , Object > ( ) ;
jsondata . put ( "name" , "accounttype" ) ;
jsondata . put ( "label" , SystemEnv . getHtmlLabelName ( 17745 , user . getLanguage ( ) ) ) ;
jsondata . put ( "value" , accounttype = = 0 ? SystemEnv . getHtmlLabelName ( 17746 , user . getLanguage ( ) ) : SystemEnv . getHtmlLabelName ( 17747 , user . getLanguage ( ) ) ) ;
ls . add ( jsondata ) ;
List lsUser = resourceBelongtoComInfo . getBelongtousers ( "" + id ) ;
if ( lsUser ! = null & & lsUser . size ( ) > 0 & & current . getType ( ) = = 0 ) {
jsondata = new HashMap < String , Object > ( ) ;
jsondata . put ( "name" , "accounts" ) ;
jsondata . put ( "label" , SystemEnv . getHtmlLabelName ( 17747 , user . getLanguage ( ) ) ) ;
jsondata . put ( "value" , "<a href='" + GCONST . getContextPath ( ) + "/spa/hrm/index_mobx.html#/main/hrm/query?superid=" + id + "' target='_blank'>" + lsUser . size ( ) + "</a>" ) ;
ls . add ( jsondata ) ;
}
if ( current . getType ( ) = = 1 ) {
jsondata = new HashMap < String , Object > ( ) ;
jsondata . put ( "name" , "belongto" ) ;
jsondata . put ( "label" , SystemEnv . getHtmlLabelName ( 17746 , Util . getIntValue ( user . getLanguage ( ) ) ) ) ;
jsondata . put ( "value" , resourceComInfo . getBelongTo ( id ) ) ;
jsondata . put ( "showName" , resourceComInfo . getLastname ( resourceComInfo . getBelongTo ( id ) ) ) ;
jsondata . put ( "isOpenHrm" , true ) ;
ls . add ( jsondata ) ;
}
// if(current.getType()==1){
// jsondata = new HashMap<String, Object>();
// jsondata.put("name","accounts");
// jsondata.put("label",SystemEnv.getHtmlLabelNames("17747,141,124",user.getLanguage()));
// iter=accounts.iterator();
// while(accounts.size()>1&&iter.hasNext()){
// Account a=(Account)iter.next();
// if(a.getType()==0){
// String subcompanyname=SubCompanyComInfo.getSubCompanyname(""+a.getSubcompanyid());
// String departmentname=DepartmentComInfo.getDepartmentname(""+a.getDepartmentid());
// String jobtitlename=jobTitlesComInfo.getJobTitlesname(""+a.getJobtitleid());
// //<a href="/hrm/resource/HrmResource.jsp?id=<%=a.getId()%>" target="_blank"><%=subcompanyname+"/"+departmentname+"/"+jobtitlename%></a>
// }
// }
// jsondata.put("value",""+accounts.size());
// ls.add(jsondata);
// }
}
if ( Util . null2String ( managerid ) . length ( ) > 0 ) {
value = managerid ;
showName = resourceComInfo . getLastname ( managerid ) ;
if ( showName . length ( ) > 0 ) {
jsondata = new HashMap < String , Object > ( ) ;
jsondata . put ( "name" , "managerid" ) ;
jsondata . put ( "label" , SystemEnv . getHtmlLabelName ( 15709 , user . getLanguage ( ) ) ) ;
jsondata . put ( "value" , value ) ;
jsondata . put ( "showName" , showName ) ;
ls . add ( jsondata ) ;
}
}
RecordSet . executeProc ( "HrmResource_SCountBySubordinat" , id ) ;
RecordSet . next ( ) ;
int subordinatescount = RecordSet . getInt ( 1 ) ;
if ( subordinatescount > 0 ) {
jsondata = new HashMap < String , Object > ( ) ;
jsondata . put ( "name" , "subordinatescount" ) ;
jsondata . put ( "label" , SystemEnv . getHtmlLabelName ( 442 , user . getLanguage ( ) ) ) ;
jsondata . put ( "value" , "<A href=" + GCONST . getContextPath ( ) + "/spa/hrm/index_mobx.html#/main/hrm/underling/" + id + " target=_blank>" + subordinatescount + "</a>" ) ;
ls . add ( jsondata ) ;
}
if ( Util . null2String ( assistantid ) . length ( ) > 0 & & hfm . isUse ( "assistantid" ) ) {
value = assistantid ;
showName = resourceComInfo . getLastname ( assistantid ) ;
if ( showName . length ( ) > 0 ) {
jsondata = new HashMap < String , Object > ( ) ;
jsondata . put ( "name" , "assistantid" ) ;
jsondata . put ( "label" , SystemEnv . getHtmlLabelName ( 441 , user . getLanguage ( ) ) ) ;
jsondata . put ( "value" , value ) ;
jsondata . put ( "showName" , showName ) ;
ls . add ( jsondata ) ;
}
}
jsondata = new HashMap < String , Object > ( ) ;
jsondata . put ( "name" , "status" ) ;
jsondata . put ( "label" , SystemEnv . getHtmlLabelName ( 602 , user . getLanguage ( ) ) ) ;
jsondata . put ( "value" , HrmFieldUtil . getResourceStatusName ( status , user ) ) ;
ls . add ( jsondata ) ;
jsondata = new HashMap < String , Object > ( ) ;
jsondata . put ( "name" , "lastlogindate" ) ;
jsondata . put ( "label" , SystemEnv . getHtmlLabelName ( 16067 , user . getLanguage ( ) ) ) ;
jsondata . put ( "value" , lastlogindate ) ;
ls . add ( jsondata ) ;
jsondata = new HashMap < String , Object > ( ) ;
jsondata . put ( "name" , "createrid" ) ;
jsondata . put ( "label" , SystemEnv . getHtmlLabelName ( 882 , user . getLanguage ( ) ) ) ;
value = "" ;
showName = "" ;
if ( Util . null2String ( createrid ) . length ( ) > 0 ) {
value = createrid ;
showName = resourceComInfo . getLastname ( createrid ) ;
}
jsondata . put ( "value" , value ) ;
jsondata . put ( "showName" , showName ) ;
ls . add ( jsondata ) ;
jsondata = new HashMap < String , Object > ( ) ;
jsondata . put ( "name" , "createdate" ) ;
jsondata . put ( "label" , SystemEnv . getHtmlLabelName ( 1339 , user . getLanguage ( ) ) ) ;
jsondata . put ( "value" , createdate ) ;
ls . add ( jsondata ) ;
jsondata = new HashMap < String , Object > ( ) ;
jsondata . put ( "name" , "lastmodid" ) ;
jsondata . put ( "label" , SystemEnv . getHtmlLabelName ( 3002 , user . getLanguage ( ) ) ) ;
value = "" ;
showName = "" ;
if ( Util . null2String ( lastmodid ) . length ( ) > 0 ) {
value = lastmodid ;
showName = resourceComInfo . getLastname ( lastmodid ) ;
}
jsondata . put ( "value" , value ) ;
jsondata . put ( "showName" , showName ) ;
ls . add ( jsondata ) ;
jsondata = new HashMap < String , Object > ( ) ;
jsondata . put ( "name" , "lastmoddate" ) ;
jsondata . put ( "label" , SystemEnv . getHtmlLabelName ( 19521 , user . getLanguage ( ) ) ) ;
jsondata . put ( "value" , lastmoddate ) ;
ls . add ( jsondata ) ;
Map < String , Object > item = new HashMap < String , Object > ( ) ;
List < Object > itemlist = new ArrayList < Object > ( ) ;
grouplist . add ( item ) ;
item . put ( "title" , SystemEnv . getHtmlLabelName ( 1361 , user . getLanguage ( ) ) ) ;
item . put ( "defaultshow" , true ) ;
item . put ( "items" , itemlist ) ;
jsondata = new HashMap < String , Object > ( ) ;
jsondata . put ( "label" , SystemEnv . getHtmlLabelName ( 6086 , user . getLanguage ( ) ) ) ;
jsondata . put ( "type" , "position" ) ;
jsondata . put ( "value" , "<A href=" + GCONST . getContextPath ( ) + "/spa/hrm/engine.html#/hrmengine/posts?id=" + jobtitle + " target=_blank>" + Util . toScreen ( jobTitlesComInfo . getJobTitlesmark ( jobtitle ) , user . getLanguage ( ) ) + "</a>" ) ;
itemlist . add ( jsondata ) ;
boolean hasbaseGroup = false ;
rs . executeSql ( " select count(*) from hrm_formfield where fieldid = 0 and isuse =1 " ) ;
if ( rs . next ( ) ) {
if ( rs . getInt ( 1 ) > 0 ) hasbaseGroup = true ;
}
if ( hasbaseGroup ) {
jsondata = new HashMap < String , Object > ( ) ;
jsondata . put ( "label" , SystemEnv . getHtmlLabelName ( 1915 , user . getLanguage ( ) ) ) ;
jsondata . put ( "value" , Util . toScreen ( jobActivitiesComInfo . getJobActivitiesmarks ( jobTitlesComInfo . getJobactivityid ( jobtitle ) ) , user . getLanguage ( ) ) ) ;
itemlist . add ( jsondata ) ;
}
//其他特殊字段
hfm . getCustomFields ( 1 ) ; //取得基本信息
hfm . getHrmData ( Util . getIntValue ( id ) ) ;
cfm . getCustomData ( Util . getIntValue ( id ) ) ;
while ( hfm . next ( ) ) {
if ( ! hfm . isUse ( ) ) continue ;
int fieldlabel = Util . getIntValue ( hfm . getLable ( ) ) ;
String fieldName = hfm . getFieldname ( ) ;
int fieldId = hfm . getFieldid ( ) ;
if ( fieldName . equals ( "loginid" ) | | fieldName . equals ( "workcode" ) | | fieldName . equals ( "lastname" ) | | fieldName . equals ( "sex" ) | |
fieldName . equals ( "accounttype" ) | | fieldName . equals ( "belongto" ) | | fieldName . equals ( "departmentid" ) | |
fieldName . equals ( "jobtitle" ) | | ( ! ismobile . equals ( "1" ) & & fieldName . equals ( "status" ) ) | | fieldName . equals ( "resourceimageid" ) | | fieldName . equals ( "messagerurl" ) | | fieldName . equals ( "jobactivity" ) | | fieldName . equalsIgnoreCase ( "jobGroupId" ) ) {
continue ;
}
int type = hfm . getType ( ) ;
String dmlurl = hfm . getDmrUrl ( ) ;
int fieldhtmltype = Util . getIntValue ( hfm . getHtmlType ( ) ) ;
String fieldValue = "" ;
if ( hfm . isBaseField ( fieldName ) ) {
fieldValue = hfm . getHrmData ( fieldName ) ;
} else {
fieldValue = Util . null2String ( new EncryptUtil ( ) . decrypt ( "cus_fielddata" , "field" + hfm . getFieldid ( ) , "HrmCustomFieldByInfoType" , "" + scopeId , cfm . getData ( "field" + hfm . getFieldid ( ) ) , false , true ) ) ;
}
if ( hfm . getHtmlType ( ) . equals ( "3" ) ) {
fieldValue = hfm . getHtmlBrowserFieldvalue ( user , dmlurl , fieldId , fieldhtmltype , type , fieldValue , "0" ) ;
} else {
fieldValue = hfm . getFieldvalue ( user , dmlurl , fieldId , fieldhtmltype , type , fieldValue , Util . getIntValue ( request . getParameter ( "ismobile" ) ) ) ;
}
if ( mapShowSets ! = null & & mapShowSets . get ( fieldName ) ! = null ) {
String mobileShowSet = Util . null2String ( mapShowSets . get ( fieldName ) ) ;
String showTypeDefault = Util . null2String ( mapShowTypeDefaults . get ( fieldName ) ) ;
if ( mobileShowSet . equals ( "1" ) ) {
String comPk = id + "__" + fieldName ;
String comPkValue = Util . null2String ( upc . getPvalue ( comPk ) ) ;
if ( comPkValue . length ( ) > 0 ) {
fieldValue = upc . getShow ( id , user , fieldName , fieldValue , comPkValue ) ;
} else {
fieldValue = pc . getShow ( id , user , fieldName , fieldValue , showTypeDefault ) ;
}
} else {
fieldValue = pc . getShow ( id , user , fieldName , fieldValue , showTypeDefault ) ;
}
}
if ( fieldName . equals ( "mobile" ) ) { //手机号码格式化
fieldValue = ResourceComInfo . formatMobile ( fieldValue ) ;
}
jsondata = new HashMap < String , Object > ( ) ;
jsondata . put ( "label" , SystemEnv . getHtmlLabelName ( fieldlabel , user . getLanguage ( ) ) ) ;
jsondata . put ( "value" , fieldValue ) ;
itemlist . add ( jsondata ) ;
}
hrmFieldGroupComInfo . setTofirstRow ( ) ;
hfm . beforeFirst ( ) ;
cfm . beforeFirst ( ) ;
while ( hrmFieldGroupComInfo . next ( ) ) {
int grouptype = Util . getIntValue ( hrmFieldGroupComInfo . getType ( ) ) ;
int groupid = Util . getIntValue ( hrmFieldGroupComInfo . getid ( ) ) ;
if ( grouptype ! = scopeId | | groupid = = 1 ) continue ;
int grouplabel = Util . getIntValue ( hrmFieldGroupComInfo . getLabel ( ) ) ;
hfm . getCustomFields ( groupid ) ;
if ( hfm . getGroupCount ( ) = = 0 ) continue ;
if ( groupid = = 3 ) {
boolean tmp_flag = false ;
while ( hfm . next ( ) ) {
if ( ! hfm . isUse ( ) ) continue ;
String fieldName = hfm . getFieldname ( ) ;
if ( fieldName . equals ( "managerid" ) | | fieldName . equals ( "assistantid" ) ) {
continue ;
}
tmp_flag = true ;
break ;
}
if ( ! tmp_flag ) continue ;
hfm . beforeFirst ( ) ;
}
item = new HashMap < String , Object > ( ) ;
itemlist = new ArrayList < Object > ( ) ;
grouplist . add ( item ) ;
item . put ( "title" , SystemEnv . getHtmlLabelName ( grouplabel , user . getLanguage ( ) ) ) ;
item . put ( "defaultshow" , true ) ;
item . put ( "hide" , ! Util . null2String ( hrmFieldGroupComInfo . getIsShow ( ) ) . equals ( "1" ) ) ;
item . put ( "items" , itemlist ) ;
if ( grouplabel = = 32946 ) {
item . put ( "SupSub" , true ) ;
}
while ( hfm . next ( ) ) {
if ( ! hfm . isUse ( ) ) continue ;
int fieldlabel = Util . getIntValue ( hfm . getLable ( ) ) ;
String fieldName = hfm . getFieldname ( ) ;
int fieldId = hfm . getFieldid ( ) ;
int type = hfm . getType ( ) ;
String dmlurl = hfm . getDmrUrl ( ) ;
int fieldhtmltype = Util . getIntValue ( hfm . getHtmlType ( ) ) ;
String fieldValue = "" ;
if ( fieldName . equals ( "managerid" ) | | fieldName . equals ( "assistantid" ) ) {
continue ;
}
if ( hfm . isBaseField ( fieldName ) ) {
fieldValue = hfm . getHrmData ( fieldName ) ;
} else {
fieldValue = Util . null2String ( new EncryptUtil ( ) . decrypt ( "cus_fielddata" , "field" + hfm . getFieldid ( ) , "HrmCustomFieldByInfoType" , "" + scopeId , cfm . getData ( "field" + hfm . getFieldid ( ) ) , false , true ) ) ;
}
if ( mapShowSets ! = null & & mapShowSets . get ( fieldName ) ! = null ) {
String mobileShowSet = Util . null2String ( mapShowSets . get ( fieldName ) ) ;
String showTypeDefault = Util . null2String ( mapShowTypeDefaults . get ( fieldName ) ) ;
if ( mobileShowSet . equals ( "1" ) ) {
String comPk = id + "__" + fieldName ;
String comPkValue = Util . null2String ( upc . getPvalue ( comPk ) ) ;
if ( comPkValue . length ( ) > 0 ) {
fieldValue = upc . getShow ( id , user , fieldName , fieldValue , comPkValue ) ;
} else {
fieldValue = pc . getShow ( id , user , fieldName , fieldValue , showTypeDefault ) ;
}
} else {
fieldValue = pc . getShow ( id , user , fieldName , fieldValue , showTypeDefault ) ;
}
}
//一些特殊处理
if ( fieldName . equals ( "mobile" ) ) { //手机号码格式化
fieldValue = ResourceComInfo . formatMobile ( fieldValue ) ;
}
if ( hfm . getHtmlType ( ) . equals ( "3" ) ) {
fieldValue = hfm . getHtmlBrowserFieldvalue ( user , dmlurl , fieldId , fieldhtmltype , type , fieldValue , "0" ) ;
} else {
fieldValue = hfm . getFieldvalue ( user , dmlurl , fieldId , fieldhtmltype , type , fieldValue , Util . getIntValue ( request . getParameter ( "ismobile" ) ) ) ;
}
if ( fieldName . equals ( "email" ) ) {
fieldValue = "<A href=\"mailto:" + fieldValue + "\" target=\"_blank\">" + fieldValue + "</A>" ;
}
if ( fieldName . equals ( "locationid" ) ) {
fieldValue = "<A href=\"" + GCONST . getContextPath ( ) + "/hrm/location/HrmLocationEdit.jsp?id=" + locationid + "\" target=\"_blank\">" + fieldValue + "</a>" ;
}
jsondata = new HashMap < String , Object > ( ) ;
jsondata . put ( "label" , SystemEnv . getHtmlLabelName ( fieldlabel , user . getLanguage ( ) ) ) ;
jsondata . put ( "value" , fieldValue ) ;
if ( fieldName . equals ( "email" ) ) {
jsondata . put ( "type" , "email" ) ; //邮件(手机端标识)
}
if ( fieldName . equals ( "mobile" ) ) {
jsondata . put ( "type" , "mobile" ) ; //手机号码(手机端标识)
}
if ( fieldName . equals ( "telephone" ) ) {
jsondata . put ( "type" , "telephone" ) ; //电话号码(手机端标识)
}
if ( fieldName . equals ( "mobilecall" ) ) {
jsondata . put ( "type" , "mobilecall" ) ; //其他电话(手机端标识)
}
itemlist . add ( jsondata ) ;
}
}
retmap . put ( "validate" , getValidate ( user ) ) ;
retmap . put ( "result" , grouplist ) ;
/*手机端需要用到的分部ID和部门ID*/
retmap . put ( "subcompanyId" , resourceComInfo . getSubCompanyID ( id ) ) ; //分部ID
retmap . put ( "departmentId" , resourceComInfo . getSubCompanyID ( id ) ) ; //部门ID
}
} catch ( Exception e ) {
writeLog ( e ) ;
}
return JSONObject . toJSONString ( retmap ) ;
}
public Map < String , Object > getValidate ( User user ) {
Map < String , Object > retmap = new LinkedHashMap < String , Object > ( ) ;
try {
HrmListValidate hrmListValidate = new HrmListValidate ( ) ;
Map < String , Object > map = null ;
/*手机端显示的顺序必须是:发送消息、发送短信、发送邮件*/
map = new HashMap < String , Object > ( ) ;
map . put ( "isValidate" , hrmListValidate . isValidate ( 33 ) & & HrmValidate . hasEmessage ( user ) ) ;
map . put ( "validateName" , SystemEnv . getHtmlLabelName ( 513224 , user . getLanguage ( ) ) ) ;
map . put ( "mobileUse" , true ) ;
retmap . put ( "33" , map ) ;
String [ ] validateIds = new String [ ] { "31" , "19" , "32" , "36" , "37" , "38" } ;
String [ ] validateTitles = new String [ ] { "16635" , "2051" , "18481" , "15707" , "30184" , "83704" } ;
for ( int i = 0 ; i < validateIds . length ; i + + ) {
String validateId = validateIds [ i ] ;
map = new HashMap < String , Object > ( ) ;
map . put ( "isValidate" , hrmListValidate . isValidate ( Util . getIntValue ( validateIds [ i ] ) ) ) ;
map . put ( "validateName" , SystemEnv . getHtmlLabelNames ( validateTitles [ i ] , user . getLanguage ( ) ) ) ;
if ( validateId . equals ( "19" ) | | validateId . equals ( "31" ) | | validateId . equals ( "32" ) ) {
map . put ( "mobileUse" , true ) ;
}
retmap . put ( validateIds [ i ] , map ) ;
}
} catch ( Exception e ) {
writeLog ( e ) ;
}
return retmap ;
}
public Map < String , String > addResourceBase ( HttpServletRequest request , HttpServletResponse response ) {
return addResourceBase ( request , response , true ) ;
}
/ * *
* 新 建 人 员 基 本 信 息
*
* @param request
* @param response
* @return
* /
public Map < String , String > addResourceBase ( HttpServletRequest request , HttpServletResponse response , boolean needSync ) {
Map < String , String > retmap = new HashMap < String , String > ( ) ;
try {
retmap . put ( "id" , "0" ) ;
User user = HrmUserVarify . getUser ( request , response ) ;
LN LN = new LN ( ) ;
RecordSet rs = new RecordSet ( ) ;
DepartmentComInfo DepartmentComInfo = new DepartmentComInfo ( ) ;
ResourceComInfo ResourceComInfo = new ResourceComInfo ( ) ;
SalaryManager SalaryManager = new SalaryManager ( ) ;
ChgPasswdReminder reminder = new ChgPasswdReminder ( ) ;
RemindSettings settings = reminder . getRemindSettings ( ) ;
SysRemindWorkflow SysRemindWorkflow = new SysRemindWorkflow ( ) ;
CustomFieldTreeManager CustomFieldTreeManager = new CustomFieldTreeManager ( ) ;
DepartmentVirtualComInfo DepartmentVirtualComInfo = new DepartmentVirtualComInfo ( ) ;
String para = "" ;
FileUpload fu = new FileUpload ( request ) ;
String cmd = Util . null2String ( fu . getParameter ( "cmd" ) ) ;
String id = Util . null2String ( fu . getParameter ( "id" ) ) ;
String workcode = Util . fromScreen3 ( fu . getParameter ( "workcode" ) , user . getLanguage ( ) ) ;
String lastname = Util . fromScreen3 ( fu . getParameter ( "lastname" ) , user . getLanguage ( ) ) . trim ( ) ;
String sex = Util . fromScreen3 ( fu . getParameter ( "sex" ) , user . getLanguage ( ) ) ;
//String resourceimageid= Util.null2String(fu.uploadFiles("photoid"));
String resourceimageid = Util . null2String ( fu . getParameter ( "resourceimageid" ) ) ;
if ( resourceimageid . length ( ) > 0 ) {
resourceimageid = "" + DocDownloadCheckUtil . getDownloadfileidstr ( resourceimageid ) ;
if ( Util . getIntValue ( resourceimageid , 0 ) > 0 ) {
rs . executeQuery ( "select imagefilename from imagefile where imagefileid=?" , resourceimageid ) ;
if ( rs . next ( ) ) {
String imagefilename = Util . null2String ( rs . getString ( "imagefilename" ) ) . trim ( ) ;
if ( imagefilename . length ( ) > 0 ) {
String imgUrl = Util . null2String ( imagefilename . substring ( imagefilename . lastIndexOf ( "." ) + 1 ) ) . trim ( ) . toLowerCase ( ) ;
if ( ! "jpg" . equals ( imgUrl ) & & ! "gif" . equals ( imgUrl ) & & ! "png" . equals ( imgUrl ) ) {
retmap . put ( "status" , "-1" ) ;
retmap . put ( "message" , SystemEnv . getHtmlLabelName ( 132006 , user . getLanguage ( ) ) ) ;
return retmap ;
}
}
}
}
}
String departmentid = Util . fromScreen3 ( fu . getParameter ( "departmentid" ) , user . getLanguage ( ) ) ;
String costcenterid = Util . fromScreen3 ( fu . getParameter ( "costcenterid" ) , user . getLanguage ( ) ) ;
String jobtitle = Util . fromScreen3 ( fu . getParameter ( "jobtitle" ) , user . getLanguage ( ) ) ;
String joblevel = Util . fromScreen3 ( fu . getParameter ( "joblevel" ) , user . getLanguage ( ) ) ;
String jobactivitydesc = Util . fromScreen3 ( fu . getParameter ( "jobactivitydesc" ) , user . getLanguage ( ) ) ;
String managerid = Util . fromScreen3 ( fu . getParameter ( "managerid" ) , user . getLanguage ( ) ) ;
String assistantid = Util . fromScreen3 ( fu . getParameter ( "assistantid" ) , user . getLanguage ( ) ) ;
String status = Util . fromScreen3 ( fu . getParameter ( "status" ) , user . getLanguage ( ) ) ;
String locationid = Util . fromScreen3 ( fu . getParameter ( "locationid" ) , user . getLanguage ( ) ) ;
String workroom = Util . fromScreen3 ( fu . getParameter ( "workroom" ) , user . getLanguage ( ) ) ;
String telephone = Util . fromScreen3 ( fu . getParameter ( "telephone" ) , user . getLanguage ( ) ) ;
String mobile = Util . fromScreen3 ( fu . getParameter ( "mobile" ) , user . getLanguage ( ) ) ;
String mobileshowtype = Util . fromScreen3 ( fu . getParameter ( "mobileshowtype" ) , user . getLanguage ( ) ) ;
String mobilecall = Util . fromScreen3 ( fu . getParameter ( "mobilecall" ) , user . getLanguage ( ) ) ;
String fax = Util . fromScreen3 ( fu . getParameter ( "fax" ) , user . getLanguage ( ) ) ;
String jobcall = Util . fromScreen3 ( fu . getParameter ( "jobcall" ) , user . getLanguage ( ) ) ;
String email = Util . fromScreen3 ( fu . getParameter ( "email" ) , user . getLanguage ( ) ) ;
String dsporder = Util . fromScreen3 ( fu . getParameter ( "dsporder" ) , user . getLanguage ( ) ) ;
String accounttype = Util . fromScreen3 ( fu . getParameter ( "accounttype" ) , user . getLanguage ( ) ) ;
String systemlanguage = Util . null2String ( fu . getParameter ( "systemlanguage" ) ) ;
if ( systemlanguage . equals ( "" ) | | systemlanguage . equals ( "0" ) ) systemlanguage = "7" ;
String belongto = Util . fromScreen3 ( fu . getParameter ( "belongto" ) , user . getLanguage ( ) ) ;
//应聘人员id
String rcid = Util . null2String ( fu . getParameter ( "rcId" ) ) ;
CheckItemBean mobileBean = new CheckItemBean ( "mobile" , mobile , id ) ;
ValidateFieldManager . validate ( mobileBean ) ;
if ( ! mobileBean . isPass ( ) ) {
retmap . put ( "status" , "-1" ) ;
retmap . put ( "message" , mobileBean . getCheckMsg ( ) ) ;
return retmap ;
}
CheckItemBean telephoneBean = new CheckItemBean ( "telephone" , telephone , id ) ;
ValidateFieldManager . validate ( telephoneBean ) ;
if ( ! telephoneBean . isPass ( ) ) {
retmap . put ( "status" , "-1" ) ;
retmap . put ( "message" , telephoneBean . getCheckMsg ( ) ) ;
return retmap ;
}
if ( dsporder . length ( ) = = 0 ) dsporder = id ;
if ( accounttype . equals ( "0" ) ) {
belongto = "-1" ;
}
String departmentvirtualids = Util . null2String ( fu . getParameter ( "departmentvirtualids" ) ) ; //虚拟部门id;
//Td9325,解决多账号次账号没有登陆Id在浏览框组织结构中无法显示的问题。
boolean falg = false ;
String loginid = "" ;
if ( accounttype . equals ( "1" ) ) {
rs . executeSql ( "select loginid from HrmResource where id =" + belongto ) ;
if ( rs . next ( ) ) {
loginid = rs . getString ( "loginid" ) ;
}
if ( ! loginid . equals ( "" ) ) {
String maxidsql = "select max(id) as id from HrmResource where loginid like '" + loginid + "%'" ;
rs . executeSql ( maxidsql ) ;
if ( rs . next ( ) ) {
loginid = loginid + ( rs . getInt ( "id" ) + 1 ) ;
falg = true ;
}
}
}
rs . executeProc ( "HrmResourceMaxId_Get" , "" ) ;
rs . next ( ) ;
id = "" + rs . getInt ( 1 ) ;
if ( ! "" . equals ( rcid ) ) {
id = rcid ;
}
SimpleBizLogger logger = new SimpleBizLogger ( ) ;
Map < String , Object > params = ParamUtil . request2Map ( request ) ;
BizLogContext bizLogContext = new BizLogContext ( ) ;
bizLogContext . setLogType ( BizLogType . HRM ) ; //模块类型
bizLogContext . setBelongType ( BizLogSmallType4Hrm . HRM_RSOURCE_CARD ) ; //所属大类型
bizLogContext . setBelongTypeTargetName ( SystemEnv . getHtmlLabelName ( 1361 , user . getLanguage ( ) ) ) ;
bizLogContext . setLogSmallType ( BizLogSmallType4Hrm . HRM_RSOURCE_CARD_BASE ) ; //当前小类型
bizLogContext . setOperateType ( BizLogOperateType . ADD ) ;
bizLogContext . setParams ( params ) ; //当前request请求参数
logger . setUser ( user ) ; //当前操作人
String cusFieldNames = ServiceUtil . getCusFieldNames ( "HrmCustomFieldByInfoType" , - 1 , "b" ) ;
String mainSql = "select a.*" + ( cusFieldNames . length ( ) > 0 ? "," + cusFieldNames : "" ) + " from hrmresource a left join cus_fielddata b on a.id=b.id and b.scope='HrmCustomFieldByInfoType' and b.scopeid=-1 where a.id=" + id ;
logger . setMainSql ( mainSql , "id" ) ; //主表sql
logger . setMainPrimarykey ( "id" ) ; //主日志表唯一key
logger . setMainTargetNameColumn ( "lastname" ) ; //当前targetName对应的列( 对应日志中的对象名)
logger . before ( bizLogContext ) ; //写入操作前日志
String sql = "select managerstr, seclevel from HrmResource where id = " + Util . getIntValue ( managerid ) ;
rs . executeSql ( sql ) ;
String managerstr = "" ;
String seclevel = "" ;
while ( rs . next ( ) ) {
String tmp_managerstr = rs . getString ( "managerstr" ) ;
/*********处理managerstr 不以逗号开始或者结束的情况 形如 managerstr: 8 begin***********/
if ( ! tmp_managerstr . startsWith ( "," ) ) tmp_managerstr = "," + tmp_managerstr ;
if ( ! tmp_managerstr . endsWith ( "," ) ) tmp_managerstr = tmp_managerstr + "," ;
/*********处理managerstr 不以逗号开始或者结束的情况 形如 managerstr: 8 end ***********/
managerstr + = tmp_managerstr ;
managerstr = "," + managerid + managerstr ;
managerstr = managerstr . endsWith ( "," ) ? managerstr : ( managerstr + "," ) ;
seclevel = rs . getString ( "seclevel" ) ;
}
String subcmpanyid1 = DepartmentComInfo . getSubcompanyid1 ( departmentid ) ;
RecordSetTrans rst = new RecordSetTrans ( ) ;
rst . setAutoCommit ( false ) ;
try {
if ( resourceimageid . length ( ) = = 0 ) resourceimageid = "null" ;
if ( costcenterid . length ( ) = = 0 ) costcenterid = "null" ;
if ( managerid . length ( ) = = 0 ) managerid = "null" ;
if ( assistantid . length ( ) = = 0 ) assistantid = "null" ;
if ( accounttype . length ( ) = = 0 ) accounttype = "null" ;
if ( belongto . length ( ) = = 0 ) belongto = "null" ;
if ( jobcall . length ( ) = = 0 ) jobcall = "null" ;
if ( mobileshowtype . length ( ) = = 0 ) mobileshowtype = "null" ;
if ( rst . getDBType ( ) . equalsIgnoreCase ( "postgresql" ) )
{
if ( joblevel . length ( ) = = 0 ) joblevel = null ;
if ( dsporder . length ( ) = = 0 ) dsporder = null ;
}
workcode = CodeRuleManager . getCodeRuleManager ( ) . generateRuleCode ( RuleCodeType . USER , subcmpanyid1 , departmentid , jobtitle , workcode ) ;
para = "" + id + separator + workcode + separator + lastname + separator + sex + separator + resourceimageid + separator +
departmentid + separator + costcenterid + separator + jobtitle + separator + joblevel + separator + jobactivitydesc + separator +
managerid + separator + assistantid + separator + status + separator + locationid + separator + workroom + separator + telephone +
separator + mobile + separator + mobilecall + separator + fax + separator + jobcall + separator + subcmpanyid1 + separator + managerstr +
separator + accounttype + separator + belongto + separator + systemlanguage + separator + email + separator + dsporder + separator + mobileshowtype ;
rst . executeProc ( "HrmResourceBasicInfo_Insert" , para ) ;
if ( Util . null2String ( locationid ) . length ( ) > 0 ) {
rst . executeSql ( "update hrmresource set countryid=(select countryid from HrmLocations where id=" + locationid + "),"
+ DbFunctionUtil . getInsertUpdateSetSql ( rst . getDBType ( ) , user . getUID ( ) ) + " where id=" + id ) ;
}
String logidsql = "" , quickSearchStr = new HrmCommonServiceImpl ( ) . generateQuickSearchStr ( lastname ) ;
if ( falg ) {
logidsql = "update HrmResource set loginid = ?, pinyinlastname = ?, ecology_pinyin_search = ? where id = ?" ;
rst . executeUpdate ( logidsql , loginid , quickSearchStr , quickSearchStr , id ) ;
} else {
logidsql = "update HrmResource set pinyinlastname = ?, ecology_pinyin_search = ? where id = ?" ;
rst . executeUpdate ( logidsql , quickSearchStr , quickSearchStr , id ) ;
}
if ( seclevel = = null | | "" . equals ( seclevel ) ) {
seclevel = "0" ;
}
rst . commit ( ) ;
} catch ( Exception e ) {
rst . rollback ( ) ;
e . printStackTrace ( ) ;
}
boolean formdefined = false ;
weaver . system . CusFormSettingComInfo CusFormSettingComInfo = new weaver . system . CusFormSettingComInfo ( ) ;
weaver . system . CusFormSetting CusFormSetting = CusFormSettingComInfo . getCusFormSetting ( "hrm" , "HrmResourceBase" ) ;
if ( CusFormSetting ! = null ) {
if ( CusFormSetting . getStatus ( ) = = 2 ) {
//自定义布局页面
formdefined = true ;
}
}
int userid = user . getUID ( ) ;
String userpara = "" + userid + separator + today ;
para = "" + id ;
for ( int i = 0 ; i < 5 ; i + + ) {
int idx = i ;
if ( formdefined ) idx + + ;
String datefield = Util . null2String ( fu . getParameter ( "datefield" + idx ) ) ;
String numberfield = "" + Util . getDoubleValue ( fu . getParameter ( "numberfield" + idx ) , 0 ) ;
String textfield = Util . null2String ( fu . getParameter ( "textfield" + idx ) ) ;
String tinyintfield = "" + Util . getIntValue ( fu . getParameter ( "tinyintfield" + idx ) , 0 ) ;
para + = separator + datefield + separator + numberfield + separator + textfield + separator + tinyintfield ;
}
rs . executeProc ( "HrmResourceDefine_Update" , para ) ;
rs . executeProc ( "HrmResource_CreateInfo" , "" + id + separator + userpara + separator + userpara ) ;
//421944 用户自定义隐私设置
UserPrivacyComInfo upc = new UserPrivacyComInfo ( ) ;
PrivacyComInfo pc = new PrivacyComInfo ( ) ;
Map < String , String > mapShowSets = pc . getMapShowSets ( ) ;
String insertSql = "" ;
rs = new RecordSet ( ) ;
try {
String deletePriSql = " delete from userprivacysetting where userid= '" + id + "'" ;
rs . executeSql ( deletePriSql ) ;
for ( Map . Entry < String , String > me : mapShowSets . entrySet ( ) ) {
String fieldName = me . getKey ( ) ;
String fieldVal = Util . null2String ( mapShowSets . get ( fieldName ) ) ;
if ( fieldVal . equals ( "1" ) ) {
String tmpPK = id + "__" + fieldName ;
String tmpPvalue = Util . null2String ( fu . getParameter ( fieldName + "showtype" ) ) ;
insertSql = "insert into userprivacysetting (combinedid,userid,ptype,pvalue) values('" + tmpPK + "','" + id + "','" + fieldName + "','" + tmpPvalue + "')" ;
rs . executeSql ( insertSql ) ;
}
}
upc . removeUserPrivacyCache ( ) ;
} catch ( Exception e ) {
e . printStackTrace ( ) ;
}
// 改为只进行该人缓存信息的添加
ResourceComInfo . addResourceInfoCache ( id ) ;
SalaryManager . initResourceSalary ( id ) ;
para = "" + id + separator + managerid + separator + departmentid + separator + subcmpanyid1 + separator + "0" + separator + managerstr ;
rs . executeProc ( "HrmResource_Trigger_Insert" , para ) ;
String sql_1 = ( "insert into HrmInfoStatus (itemid,hrmid) values(1," + id + ")" ) ;
rs . executeSql ( sql_1 ) ;
String sql_2 = ( "insert into HrmInfoStatus (itemid,hrmid) values(2," + id + ")" ) ;
rs . executeSql ( sql_2 ) ;
String sql_3 = ( "insert into HrmInfoStatus (itemid,hrmid) values(3," + id + ")" ) ;
rs . executeSql ( sql_3 ) ;
String sql_10 = ( "insert into HrmInfoStatus (itemid,hrmid) values(10," + id + ")" ) ;
rs . executeSql ( sql_10 ) ;
String name = lastname ;
String CurrentUser = "" + user . getUID ( ) ;
String CurrentUserName = "" + user . getUsername ( ) ;
String SWFAccepter = "" ;
String SWFTitle = "" ;
String SWFRemark = "" ;
String SWFSubmiter = "" ;
String Subject = "" ;
Subject = SystemEnv . getHtmlLabelName ( 15670 , user . getLanguage ( ) ) ;
Subject + = ":" + name ;
//modifier by lvyi 2013-12-31
if ( settings . getEntervalid ( ) . equals ( "1" ) ) { //入职提醒
String thesql = "select hrmids from HrmInfoMaintenance where id<4 or id = 10" ;
rs . executeSql ( thesql ) ;
String members = "" ;
/ * while ( rs . next ( ) ) {
int hrmid_tmp = Util . getIntValue ( rs . getString ( "hrmids" ) ) ; //TD9392
if ( hrmid_tmp > 0 & & user . getUID ( ) ! = hrmid_tmp ) {
members + = "," + rs . getString ( "hrmids" ) ;
}
} * /
while ( rs . next ( ) ) {
String hrmid_tmp = Util . null2String ( rs . getString ( "hrmids" ) ) ; //TD9392
if ( hrmid_tmp . length ( ) ! = 0 ) {
members + = "," + rs . getString ( "hrmids" ) ;
}
}
if ( ! members . equals ( "" ) ) {
members = members . substring ( 1 ) ;
members = duplicateRemoval ( members , user . getUID ( ) + "" ) ;
SWFAccepter = members ;
SWFTitle = SystemEnv . getHtmlLabelName ( 15670 , user . getLanguage ( ) ) ;
SWFTitle + = ":" + name ;
SWFTitle + = "-" + CurrentUserName ;
SWFTitle + = "-" + today ;
// SWFRemark="<a href=/hrm/employee/EmployeeManage.jsp?hrmid="+id+">"+Util.fromScreen2(Subject,user.getLanguage())+"</a>";//支持E9弹窗
SWFRemark = "<a class='wea-hrm-new-employee-set' onClick=\"openHrmNewEmployeeSetDialog(" + id + ")\" style=\"cursor:pointer;\" id = '" + id + "'>" + Util . fromScreen2 ( Subject , user . getLanguage ( ) ) + "</a>" ;
SWFSubmiter = CurrentUser ;
SysRemindWorkflow . setPrjSysRemind ( SWFTitle , 0 , Util . getIntValue ( SWFSubmiter ) , SWFAccepter , SWFRemark ) ;
}
}
CustomFieldTreeManager . editCustomDataE9Add ( "HrmCustomFieldByInfoType" , - 1 , fu , Util . getIntValue ( id , 0 ) ) ;
//应聘人员的个人信息18条
if ( ! "" . equals ( rcid ) ) {
sql = "select * from HrmCareerApply where id = ?" ;
rs . executeQuery ( sql , id ) ;
if ( rs . next ( ) ) {
String birthday = Util . null2String ( rs . getString ( "birthday" ) ) ;
String folk = Util . null2String ( rs . getString ( "folk" ) ) ;
String nativeplace = Util . null2String ( rs . getString ( "nativeplace" ) ) ;
String regresidentplace = Util . null2String ( rs . getString ( "regresidentplace" ) ) ;
String certificatenum = Util . null2String ( rs . getString ( "certificatenum" ) ) ;
String maritalstatus = Util . null2String ( rs . getString ( "maritalstatus" ) ) ;
String policy = Util . null2String ( rs . getString ( "policy" ) ) ;
String bememberdate = Util . null2String ( rs . getString ( "bememberdate" ) ) ;
String bepartydate = Util . null2String ( rs . getString ( "bepartydate" ) ) ;
String islabouunion = Util . null2String ( rs . getString ( "islabouunion" ) ) ;
String educationlevel = Util . null2String ( rs . getString ( "educationlevel" ) ) ;
String degree = Util . null2String ( rs . getString ( "degree" ) ) ;
String healthinfo = Util . null2String ( rs . getString ( "healthinfo" ) ) ;
String height = Util . null2String ( rs . getString ( "height" ) ) ;
if ( height . indexOf ( "." ) ! = - 1 ) height = height . substring ( 0 , height . indexOf ( "." ) ) ;
String weight = Util . null2String ( rs . getString ( "weight" ) ) ;
if ( weight . indexOf ( "." ) ! = - 1 ) weight = weight . substring ( 0 , weight . indexOf ( "." ) ) ;
String residentplace = Util . null2String ( rs . getString ( "residentplace" ) ) ;
String homeaddress = Util . null2String ( rs . getString ( "homeaddress" ) ) ;
String tempresidentnumber = Util . null2String ( rs . getString ( "tempresidentnumber" ) ) ;
para = "" + id + separator + birthday + separator + folk + separator + nativeplace + separator + regresidentplace + separator + maritalstatus + separator + policy + separator + bememberdate + separator + bepartydate + separator + islabouunion + separator + educationlevel + separator + degree + separator + healthinfo + separator + height + separator + weight + separator + residentplace + separator + homeaddress + separator + tempresidentnumber + separator + certificatenum ;
RecordSet rs1 = new RecordSet ( ) ;
rs1 . executeProc ( "HrmResourcePersonalInfo_Insert" , para ) ;
}
}
//更新虚拟组织部门id
if ( departmentvirtualids . length ( ) > 0 ) {
//保存前先删除需要删除的数据, 因为有managerid 所以不能全部删除再保存
sql = "delete from hrmresourcevirtual where resourceid=" + id + " and departmentid not in (" + departmentvirtualids + ")" ;
rs . executeSql ( sql ) ;
String [ ] departmentvirtualid = departmentvirtualids . split ( "," ) ;
for ( int i = 0 ; departmentvirtualid ! = null & & i < departmentvirtualid . length ; i + + ) {
rs . executeSql ( " select count(*) from HrmResourceVirtual where departmentid ='" + departmentvirtualid [ i ] + "' and resourceid = " + id ) ;
if ( rs . next ( ) ) {
//如果已存在 无需处理
if ( rs . getInt ( 1 ) > 0 ) continue ;
}
//写入
int tmpid = 0 ;
rs . executeSql ( "select max(id) from HrmResourceVirtual " ) ;
if ( rs . next ( ) ) {
tmpid = rs . getInt ( 1 ) + 1 ;
}
String subcompanyid = DepartmentVirtualComInfo . getSubcompanyid1 ( departmentvirtualid [ i ] ) ;
sql = " insert into HrmResourceVirtual (id,resourceid,subcompanyid,departmentid ) " +
" values (" + tmpid + "," + id + "," + subcompanyid + "," + departmentvirtualid [ i ] + ")" ;
rs . executeSql ( sql ) ;
}
}
LogUtil . writeBizLog ( logger . getBizLogContexts ( ) ) ;
if ( needSync ) HrmFaceCheckManager . sync ( id , HrmFaceCheckManager . getOptInsert ( ) , "hrm_e9_HrmResourceBaseService_addResourceBase" , HrmFaceCheckManager . getOaResource ( ) ) ;
//同步RTX端的用户信息.
new OrganisationCom ( ) . checkUser ( Util . getIntValue ( id ) ) ;
new Thread ( new OrganisationComRunnable ( "user" , "add" , "" + id ) ) . start ( ) ;
ResourceComInfo . updateResourceInfoCache ( "" + id ) ;
new PluginUserCheck ( ) . clearPluginUserCache ( "messager" ) ;
//OA与第三方接口单条数据同步方法开始
new HrmServiceManager ( ) . SynInstantHrmResource ( "" + id , "1" ) ;
//OA与第三方接口单条数据同步方法结束
//新增人员实时同步到CoreMail邮件系统
//CoreMailAPI.synUser(id);
if ( cmd . equals ( "SaveAndNew" ) ) {
retmap . put ( "status" , "1" ) ;
} else if ( cmd . equals ( "SaveAndNext" ) ) {
retmap . put ( "status" , "2" ) ;
} else {
retmap . put ( "status" , "3" ) ;
}
retmap . put ( "id" , id ) ;
} catch ( Exception e ) {
writeLog ( "新建人员基本信息错误:" + e ) ;
retmap . put ( "status" , "-1" ) ;
}
return retmap ;
}
/ * *
* 编 辑 人 员 基 本 信 息
*
* @param request
* @param response
* @return
* /
public Map < String , Object > editContactInfo ( HttpServletRequest request , HttpServletResponse response ) {
Map < String , Object > retmap = new HashMap < String , Object > ( ) ;
try {
User user = HrmUserVarify . getUser ( request , response ) ;
RecordSet rs = new RecordSet ( ) ;
String sql = "" ;
ResourceComInfo ResourceComInfo = new ResourceComInfo ( ) ;
SysMaintenanceLog SysMaintenanceLog = new SysMaintenanceLog ( ) ;
HrmServiceManager HrmServiceManager = new HrmServiceManager ( ) ;
String para = "" ;
FileUpload fu = new FileUpload ( request ) ;
String id = Util . null2String ( fu . getParameter ( "id" ) ) ;
if ( user . getUID ( ) ! = Util . getIntValue ( id ) ) { //本人才能修改
retmap . put ( "status" , "-1" ) ;
retmap . put ( "message" , "" + SystemEnv . getHtmlLabelName ( 22620 , weaver . general . ThreadVarLanguage . getLang ( ) ) + "" ) ;
return retmap ;
}
LN LN = new LN ( ) ;
DepartmentComInfo DepartmentComInfo = new DepartmentComInfo ( ) ;
CustomFieldTreeManager CustomFieldTreeManager = new CustomFieldTreeManager ( ) ;
CrmShareBase CrmShareBase = new CrmShareBase ( ) ;
String resourceimageidcheck = Util . null2String ( fu . getParameter ( "resourceimageid" ) ) ;
if ( resourceimageidcheck . length ( ) > 0 ) {
resourceimageidcheck = "" + DocDownloadCheckUtil . getDownloadfileidstr ( resourceimageidcheck ) ;
}
String resourceimageBase64check = Util . null2String ( fu . getParameter ( "resourceimageBase64" ) ) ;
if ( resourceimageBase64check . length ( ) > 0 ) {
resourceimageidcheck = ServiceUtil . saveResourceImage ( resourceimageBase64check ) ;
}
String oldresourceimageidcheck = StringUtil . vString ( fu . getParameter ( "oldresourceimage" ) , "0" ) ;
if ( "" . equals ( resourceimageidcheck ) ) resourceimageidcheck = oldresourceimageidcheck ;
if ( Util . getIntValue ( resourceimageidcheck , 0 ) > 0 ) {
int oldresourceimagetemp = 0 ;
rs . executeQuery ( "select resourceimageid from hrmresource where id=?" , id ) ;
if ( rs . next ( ) ) {
oldresourceimagetemp = Util . getIntValue ( rs . getString ( "resourceimageid" ) , 0 ) ;
}
if ( oldresourceimagetemp ! = Util . getIntValue ( resourceimageidcheck , 0 ) ) {
rs . executeQuery ( "select imagefilename from imagefile where imagefileid=?" , resourceimageidcheck ) ;
if ( rs . next ( ) ) {
String imagefilename = Util . null2String ( rs . getString ( "imagefilename" ) ) . trim ( ) ;
if ( imagefilename . length ( ) > 0 ) {
String imgUrl = Util . null2String ( imagefilename . substring ( imagefilename . lastIndexOf ( "." ) + 1 ) ) . trim ( ) . toLowerCase ( ) ;
if ( ! "jpg" . equals ( imgUrl ) & & ! "gif" . equals ( imgUrl ) & & ! "png" . equals ( imgUrl ) ) {
retmap . put ( "status" , "-1" ) ;
retmap . put ( "message" , SystemEnv . getHtmlLabelName ( 132006 , user . getLanguage ( ) ) ) ;
return retmap ;
}
}
}
}
}
String mobile = Util . fromScreen3 ( fu . getParameter ( "mobile" ) , user . getLanguage ( ) ) ;
String telephone = Util . fromScreen3 ( fu . getParameter ( "telephone" ) , user . getLanguage ( ) ) ;
CheckItemBean mobileBean = new CheckItemBean ( "mobile" , mobile , id ) ;
ValidateFieldManager . validate ( mobileBean ) ;
if ( ! mobileBean . isPass ( ) ) {
retmap . put ( "status" , "-1" ) ;
retmap . put ( "message" , mobileBean . getCheckMsg ( ) ) ;
return retmap ;
}
CheckItemBean telephoneBean = new CheckItemBean ( "telephone" , telephone , id ) ;
ValidateFieldManager . validate ( telephoneBean ) ;
if ( ! telephoneBean . isPass ( ) ) {
retmap . put ( "status" , "-1" ) ;
retmap . put ( "message" , telephoneBean . getCheckMsg ( ) ) ;
return retmap ;
}
SimpleBizLogger logger = new SimpleBizLogger ( ) ;
Map < String , Object > params = ParamUtil . request2Map ( request ) ;
BizLogContext bizLogContext = new BizLogContext ( ) ;
bizLogContext . setLogType ( BizLogType . HRM ) ; //模块类型
bizLogContext . setBelongType ( BizLogSmallType4Hrm . HRM_RSOURCE_CARD ) ; //所属大类型
bizLogContext . setBelongTypeTargetName ( SystemEnv . getHtmlLabelName ( 1361 , user . getLanguage ( ) ) ) ;
bizLogContext . setLogSmallType ( BizLogSmallType4Hrm . HRM_RSOURCE_CARD_BASE ) ; //当前小类型
bizLogContext . setParams ( params ) ; //当前request请求参数
logger . setUser ( user ) ; //当前操作人
String cusFieldNames = ServiceUtil . getCusFieldNames ( "HrmCustomFieldByInfoType" , - 1 , "b" ) ;
String mainSql = "select a.*" + ( cusFieldNames . length ( ) > 0 ? "," + cusFieldNames : "" ) + " from hrmresource a left join cus_fielddata b on a.id=b.id and b.scope='HrmCustomFieldByInfoType' and b.scopeid=-1 where a.id=" + id ;
logger . setMainSql ( mainSql , "id" ) ; //主表sql
logger . setMainPrimarykey ( "id" ) ; //主日志表唯一key
logger . setMainTargetNameColumn ( "lastname" ) ; //当前targetName对应的列( 对应日志中的对象名)
logger . before ( bizLogContext ) ; //吸入操作前日志
String updateSql = "" ;
List < String > sqlParams = new ArrayList < String > ( ) ;
RecordSetTrans rst = new RecordSetTrans ( ) ;
HrmFieldGroupComInfo HrmFieldGroupComInfo = new HrmFieldGroupComInfo ( ) ;
HrmFieldSearchConditionComInfo hrmFieldSearchConditionComInfo = new HrmFieldSearchConditionComInfo ( ) ;
HrmFieldManager hfm = new HrmFieldManager ( "HrmCustomFieldByInfoType" , - 1 ) ;
boolean flagaccount = GCONST . getMOREACCOUNTLANDING ( ) ;
String accounttype = "" ;
String belongto = Util . fromScreen3 ( fu . getParameter ( "belongto" ) , user . getLanguage ( ) ) ;
String oldbelongto = "" ;
String dsporder = Util . fromScreen3 ( fu . getParameter ( "dsporder" ) , user . getLanguage ( ) ) ; ; //显示顺序为空需要和id保持一致
if ( dsporder . length ( ) = = 0 ) dsporder = id ;
String locationid = "" ; //设置了办公地点需要更新人员的国家
String loginid = "" ; //次帐号的登录名需要和主账号+id保持一致
boolean falg = false ;
while ( HrmFieldGroupComInfo . next ( ) ) {
int grouptype = Util . getIntValue ( HrmFieldGroupComInfo . getType ( ) ) ;
if ( grouptype ! = - 1 ) continue ;
int groupid = Util . getIntValue ( HrmFieldGroupComInfo . getid ( ) ) ;
hfm . getCustomFields ( groupid ) ;
while ( hfm . next ( ) ) {
String fieldName = hfm . getFieldname ( ) ;
if ( fieldName . equals ( "accounttype" ) & & ! flagaccount ) continue ;
if ( fieldName . equals ( "belongto" ) ) continue ;
if ( fieldName . equals ( "loginid" ) | | fieldName . equals ( "jobactivity" ) | | fieldName . equals ( "status" ) | | fieldName . equals ( "departmentvirtualids" ) ) continue ;
if ( fieldName . equals ( "messagerurl" ) | | fieldName . equals ( "jobGroupId" ) | | fieldName . equals ( "managerid" ) | | fieldName . equals ( "departmentid" ) ) continue ;
//没有开启多语言即使开启了系统语言允许个人编辑也不行
if ( ! hfm . isUse ( ) | | ! hfm . isModify ( ) | | ! hfm . isBaseField ( fieldName ) ) {
continue ;
} else {
String updateValue = Util . fromScreen3 ( fu . getParameter ( fieldName ) , user . getLanguage ( ) ) ;
if ( "accounttype" . equals ( fieldName ) ) {
accounttype = updateValue ;
if ( accounttype . equals ( "0" ) ) {
belongto = "-1" ;
}
//Td9325,解决多账号次账号没有登陆Id在浏览框组织结构中无法显示的问题。
rs . executeQuery ( "select * from HrmResource where id = ? " , id ) ;
if ( rs . next ( ) ) {
loginid = rs . getString ( "loginid" ) ;
float idsporder = rs . getFloat ( "dsporder" ) ;
if ( idsporder < = 0 ) {
dsporder = rs . getString ( "id" ) ;
} else {
dsporder = "" + idsporder ;
}
}
String thisAccounttype = rs . getString ( "accounttype" ) ;
if ( thisAccounttype . equals ( "1" ) & & updateValue . equals ( "0" ) ) {
oldbelongto = rs . getString ( "belongto" ) ;
}
if ( accounttype . equals ( "1" ) & & loginid . equalsIgnoreCase ( "" ) ) {
rs . executeSql ( "select loginid from HrmResource where id =" + belongto ) ;
if ( rs . next ( ) ) {
loginid = rs . getString ( 1 ) ;
}
if ( LN . CkHrmnum ( ) > = 0 ) {
retmap . put ( "status" , "-1" ) ;
return retmap ;
}
if ( ! loginid . equals ( "" ) ) {
loginid = loginid + ( id + 1 ) ;
falg = true ;
}
}
continue ;
}
if ( "resourceimageid" . equals ( fieldName ) ) {
String resourceimageid = updateValue ;
if ( resourceimageid . length ( ) > 0 ) {
resourceimageid = "" + DocDownloadCheckUtil . getDownloadfileidstr ( resourceimageid ) ;
}
String resourceimageBase64 = Util . null2String ( fu . getParameter ( "resourceimageBase64" ) ) ;
if ( resourceimageBase64 . length ( ) > 0 ) {
resourceimageid = ServiceUtil . saveResourceImage ( resourceimageBase64 ) ;
}
String oldresourceimageid = StringUtil . vString ( fu . getParameter ( "oldresourceimage" ) , "0" ) ;
if ( resourceimageid . equals ( "" ) ) resourceimageid = oldresourceimageid ;
updateValue = resourceimageid ;
}
if ( "locationid" . equals ( fieldName ) ) {
locationid = updateValue ;
}
if ( "dsporder" . equals ( fieldName ) ) {
updateValue = dsporder ;
}
if ( "systemlanguage" . equals ( fieldName ) ) {
if ( updateValue . equals ( "" ) | | updateValue . equals ( "0" ) ) {
updateValue = "7" ;
}
}
//mysql报错问题java.sql.SQLException: Incorrect integer value: '' for column 'COSTCENTERID' at row 1
if ( ( fieldName . equals ( "resourceimageid" ) | | fieldName . equals ( "costcenterid" ) | | fieldName . equals ( "managerid" )
| | fieldName . equals ( "assistantid" ) | | fieldName . equals ( "accounttype" ) | | fieldName . equals ( "belongto" )
| | fieldName . equals ( "jobcall" ) | | fieldName . equals ( "mobileshowtype" ) | | fieldName . equals ( "joblevel" )
) & & updateValue . length ( ) = = 0 ) {
updateValue = "null" ;
}
if ( updateSql . length ( ) > 0 ) updateSql + = "," ;
updateSql + = ( fieldName + " = ? " ) ;
sqlParams . add ( updateValue ) ;
}
}
}
if ( accounttype . length ( ) > 0 ) {
if ( updateSql . length ( ) > 0 ) updateSql + = "," ;
updateSql + = "accounttype = ?,belongto = ?" ;
sqlParams . add ( accounttype ) ;
sqlParams . add ( belongto ) ;
}
if ( updateSql . length ( ) > 0 ) {
rst . setAutoCommit ( false ) ;
try {
String sqltemp = "update hrmresource set " + updateSql + " where id = ? " ;
sqlParams . add ( id ) ;
rst . executeUpdate ( sqltemp , sqlParams ) ;
if ( Util . null2String ( locationid ) . length ( ) > 0 ) {
rst . executeSql ( "update hrmresource set countryid=(select countryid from HrmLocations where id=" + locationid + ") where id=" + id ) ;
}
if ( falg ) {
String logidsql = "update HrmResource set loginid = '" + loginid + "' where id = " + id ;
rst . executeSql ( logidsql ) ;
}
rst . commit ( ) ;
} catch ( Exception e ) {
rst . rollback ( ) ;
e . printStackTrace ( ) ;
}
}
//421944 用户自定义隐私设置
UserPrivacyComInfo upc = new UserPrivacyComInfo ( ) ;
PrivacyComInfo pc = new PrivacyComInfo ( ) ;
Map < String , String > mapShowSets = pc . getMapShowSets ( ) ;
String insertSql = "" ;
rs = new RecordSet ( ) ;
try {
String deletePriSql = " delete from userprivacysetting where userid= '" + id + "'" ;
rs . executeSql ( deletePriSql ) ;
for ( Map . Entry < String , String > me : mapShowSets . entrySet ( ) ) {
String fieldName = me . getKey ( ) ;
String fieldVal = Util . null2String ( mapShowSets . get ( fieldName ) ) ;
if ( fieldVal . equals ( "1" ) ) {
String tmpPK = id + "__" + fieldName ;
String tmpPvalue = Util . null2String ( fu . getParameter ( fieldName + "showtype" ) ) ;
insertSql = "insert into userprivacysetting (combinedid,userid,ptype,pvalue) values('" + tmpPK + "','" + id + "','" + fieldName + "','" + tmpPvalue + "')" ;
rs . executeSql ( insertSql ) ;
}
}
upc . removeUserPrivacyCache ( ) ;
} catch ( Exception e ) {
e . printStackTrace ( ) ;
}
int userid = user . getUID ( ) ;
String userpara = "" + userid + separator + today ;
rs . executeProc ( "HrmResource_ModInfo" , "" + id + separator + userpara ) ;
boolean formdefined = false ;
weaver . system . CusFormSettingComInfo CusFormSettingComInfo = new weaver . system . CusFormSettingComInfo ( ) ;
weaver . system . CusFormSetting CusFormSetting = CusFormSettingComInfo . getCusFormSetting ( "hrm" , "HrmResourceBase" ) ;
if ( CusFormSetting ! = null ) {
if ( CusFormSetting . getStatus ( ) = = 2 ) {
//自定义布局页面
formdefined = true ;
}
}
para = "" + id ;
for ( int i = 0 ; i < 5 ; i + + ) {
int idx = i ;
if ( formdefined ) idx + + ;
String datefield = Util . null2String ( fu . getParameter ( "datefield" + idx ) ) ;
String numberfield = "" + Util . getDoubleValue ( fu . getParameter ( "numberfield" + idx ) , 0 ) ;
String textfield = Util . null2String ( fu . getParameter ( "textfield" + idx ) ) ;
String tinyintfield = "" + Util . getIntValue ( fu . getParameter ( "tinyintfield" + idx ) , 0 ) ;
para + = separator + datefield + separator + numberfield + separator + textfield + separator + tinyintfield ;
}
rs . executeProc ( "HrmResourceDefine_Update" , para ) ;
new Thread ( new OrganisationComRunnable ( "user" , "editbasicinfo" , id + "-" + ( ResourceComInfo . getStatus ( id ) ) ) ) . start ( ) ;
// 改为自进行修正
ResourceComInfo . updateResourceInfoCache ( id ) ;
//OA与第三方接口单条数据同步方法开始
HrmServiceManager . SynInstantHrmResource ( id , "2" ) ;
//OA与第三方接口单条数据同步方法结束
//处理自定义字段 add by wjy
CustomFieldTreeManager . editCustomData ( "HrmCustomFieldByInfoType" , - 1 , fu , Util . getIntValue ( id , 0 ) ) ;
//处理次账号修改为主账号时,检查次账号所属 主账号的 其他设置是否需要修改 add by kzw QC159888
try {
if ( ! oldbelongto . equals ( "" ) ) {
HrmUserSettingComInfo userSetting = new HrmUserSettingComInfo ( ) ;
String belongtoshow = userSetting . getBelongtoshowByUserId ( oldbelongto ) ;
if ( belongtoshow . equals ( "1" ) ) {
rs . executeSql ( "select id from hrmresource where belongto = " + oldbelongto ) ;
if ( ! rs . next ( ) ) {
String setId = userSetting . getId ( oldbelongto ) ;
rs . executeSql ( "update HrmUserSetting set belongtoshow=0 where id=" + setId ) ;
userSetting . removeHrmUserSettingComInfoCache ( ) ;
}
}
}
} catch ( Exception e ) {
writeLog ( e . getMessage ( ) ) ;
}
rs . execute ( "update HrmResource set " + DbFunctionUtil . getUpdateSetSql ( rs . getDBType ( ) , user . getUID ( ) ) + " where id=" + id ) ;
rs . execute ( "update HrmResourceManager set " + DbFunctionUtil . getUpdateSetSql ( rs . getDBType ( ) , user . getUID ( ) ) + " where id=" + id ) ;
//写入操作后日志
LogUtil . writeBizLog ( logger . getBizLogContexts ( ) ) ;
//修改人员实时同步到CoreMail邮件系统
//CoreMailAPI.synUser(id);
HrmFaceCheckManager . sync ( id , HrmFaceCheckManager . getOptUpdate ( ) , "hrm_e9_HrmResourceBaseService_editResourceBase" , HrmFaceCheckManager . getOaResource ( ) ) ;
retmap . put ( "status" , "1" ) ;
} catch ( Exception e ) {
writeLog ( "编辑人员信息错误:" + e ) ;
retmap . put ( "status" , "-1" ) ;
}
return retmap ;
}
/ * *
* 编 辑 人 员 基 本 信 息
*
* @param request
* @param response
* @return
* /
public Map < String , Object > editResourceBase ( HttpServletRequest request , HttpServletResponse response ) {
Map < String , Object > retmap = new HashMap < String , Object > ( ) ;
try {
User user = HrmUserVarify . getUser ( request , response ) ;
if ( Util . null2String ( request . getParameter ( "editcontact" ) ) . equals ( "1" ) ) {
return editContactInfo ( request , response ) ;
}
boolean canEdit = HrmUserVarify . checkUserRight ( "HrmResourceEdit:Edit" , user ) ;
if ( ! canEdit ) {
retmap . put ( "status" , "-1" ) ;
retmap . put ( "message" , "" + SystemEnv . getHtmlLabelName ( 22620 , weaver . general . ThreadVarLanguage . getLang ( ) ) + "" ) ;
return retmap ;
}
LN LN = new LN ( ) ;
RecordSet rs = new RecordSet ( ) ;
DepartmentComInfo DepartmentComInfo = new DepartmentComInfo ( ) ;
ResourceComInfo ResourceComInfo = new ResourceComInfo ( ) ;
CustomFieldTreeManager CustomFieldTreeManager = new CustomFieldTreeManager ( ) ;
SysMaintenanceLog SysMaintenanceLog = new SysMaintenanceLog ( ) ;
HrmServiceManager HrmServiceManager = new HrmServiceManager ( ) ;
CrmShareBase CrmShareBase = new CrmShareBase ( ) ;
String para = "" ;
FileUpload fu = new FileUpload ( request ) ;
String id = Util . null2String ( fu . getParameter ( "id" ) ) ;
if ( id . length ( ) = = 0 ) {
retmap . put ( "status" , "-1" ) ;
retmap . put ( "message" , "" + SystemEnv . getHtmlLabelName ( 22620 , weaver . general . ThreadVarLanguage . getLang ( ) ) + "" ) ;
return retmap ;
}
String workcode = Util . fromScreen3 ( fu . getParameter ( "workcode" ) , user . getLanguage ( ) ) ;
String lastname = Util . fromScreen3 ( fu . getParameter ( "lastname" ) , user . getLanguage ( ) ) . trim ( ) ;
String sex = Util . fromScreen3 ( fu . getParameter ( "sex" ) , user . getLanguage ( ) ) ;
String resourceimageid = Util . null2String ( fu . getParameter ( "resourceimageid" ) ) ;
if ( resourceimageid . length ( ) > 0 ) {
resourceimageid = "" + DocDownloadCheckUtil . getDownloadfileidstr ( resourceimageid ) ;
}
String resourceimageBase64 = Util . null2String ( fu . getParameter ( "resourceimageBase64" ) ) ;
if ( resourceimageBase64 . length ( ) > 0 ) {
resourceimageid = ServiceUtil . saveResourceImage ( resourceimageBase64 ) ;
}
String oldresourceimageid = Util . null2String ( fu . getParameter ( "oldresourceimage" ) ) ;
if ( resourceimageid . equals ( "" ) ) resourceimageid = oldresourceimageid ;
if ( Util . getIntValue ( resourceimageid , 0 ) > 0 ) {
int oldresourceimagetemp = 0 ;
rs . executeQuery ( "select resourceimageid from hrmresource where id=?" , id ) ;
if ( rs . next ( ) ) {
oldresourceimagetemp = Util . getIntValue ( rs . getString ( "resourceimageid" ) , 0 ) ;
}
if ( oldresourceimagetemp ! = Util . getIntValue ( resourceimageid , 0 ) ) {
rs . executeQuery ( "select imagefilename from imagefile where imagefileid=?" , resourceimageid ) ;
if ( rs . next ( ) ) {
String imagefilename = Util . null2String ( rs . getString ( "imagefilename" ) ) . trim ( ) ;
if ( imagefilename . length ( ) > 0 ) {
String imgUrl = Util . null2String ( imagefilename . substring ( imagefilename . lastIndexOf ( "." ) + 1 ) ) . trim ( ) . toLowerCase ( ) ;
if ( ! "jpg" . equals ( imgUrl ) & & ! "gif" . equals ( imgUrl ) & & ! "png" . equals ( imgUrl ) ) {
retmap . put ( "status" , "-1" ) ;
retmap . put ( "message" , SystemEnv . getHtmlLabelName ( 132006 , user . getLanguage ( ) ) ) ;
return retmap ;
}
}
}
}
}
String departmentid = Util . fromScreen3 ( fu . getParameter ( "departmentid" ) , user . getLanguage ( ) ) ;
String costcenterid = Util . fromScreen3 ( fu . getParameter ( "costcenterid" ) , user . getLanguage ( ) ) ;
String jobtitle = Util . fromScreen3 ( fu . getParameter ( "jobtitle" ) , user . getLanguage ( ) ) ;
String joblevel = Util . fromScreen3 ( fu . getParameter ( "joblevel" ) , user . getLanguage ( ) ) ;
String jobactivitydesc = Util . fromScreen3 ( fu . getParameter ( "jobactivitydesc" ) , user . getLanguage ( ) ) ;
String managerid = Util . fromScreen3 ( fu . getParameter ( "managerid" ) , user . getLanguage ( ) ) ;
String assistantid = Util . fromScreen3 ( fu . getParameter ( "assistantid" ) , user . getLanguage ( ) ) ;
String status = "" ;
String locationid = Util . fromScreen3 ( fu . getParameter ( "locationid" ) , user . getLanguage ( ) ) ;
String workroom = Util . fromScreen3 ( fu . getParameter ( "workroom" ) , user . getLanguage ( ) ) ;
String telephone = Util . fromScreen3 ( fu . getParameter ( "telephone" ) , user . getLanguage ( ) ) ;
String mobile = Util . fromScreen3 ( fu . getParameter ( "mobile" ) , user . getLanguage ( ) ) ;
String mobileshowtype = Util . fromScreen3 ( fu . getParameter ( "mobileshowtype" ) , user . getLanguage ( ) ) ;
String mobilecall = Util . fromScreen3 ( fu . getParameter ( "mobilecall" ) , user . getLanguage ( ) ) ;
String fax = Util . fromScreen3 ( fu . getParameter ( "fax" ) , user . getLanguage ( ) ) ;
String email = Util . fromScreen3 ( fu . getParameter ( "email" ) , user . getLanguage ( ) ) ;
String dsporder = Util . fromScreen3 ( fu . getParameter ( "dsporder" ) , user . getLanguage ( ) ) ;
String jobcall = Util . fromScreen3 ( fu . getParameter ( "jobcall" ) , user . getLanguage ( ) ) ;
String systemlanguage = Util . fromScreen3 ( fu . getParameter ( "systemlanguage" ) , user . getLanguage ( ) ) ;
if ( systemlanguage . equals ( "" ) | | systemlanguage . equals ( "0" ) ) {
systemlanguage = "7" ;
}
String accounttype = Util . fromScreen3 ( fu . getParameter ( "accounttype" ) , user . getLanguage ( ) ) ;
String belongto = Util . fromScreen3 ( fu . getParameter ( "belongto" ) , user . getLanguage ( ) ) ;
if ( dsporder . length ( ) = = 0 ) dsporder = id ;
if ( accounttype . equals ( "0" ) ) {
belongto = "-1" ;
}
CheckItemBean mobileBean = new CheckItemBean ( "mobile" , mobile , id ) ;
ValidateFieldManager . validate ( mobileBean ) ;
if ( ! mobileBean . isPass ( ) ) {
retmap . put ( "status" , "-1" ) ;
retmap . put ( "message" , mobileBean . getCheckMsg ( ) ) ;
return retmap ;
}
CheckItemBean telephoneBean = new CheckItemBean ( "telephone" , telephone , id ) ;
ValidateFieldManager . validate ( telephoneBean ) ;
if ( ! telephoneBean . isPass ( ) ) {
retmap . put ( "status" , "-1" ) ;
retmap . put ( "message" , telephoneBean . getCheckMsg ( ) ) ;
return retmap ;
}
SimpleBizLogger logger = new SimpleBizLogger ( ) ;
Map < String , Object > params = ParamUtil . request2Map ( request ) ;
BizLogContext bizLogContext = new BizLogContext ( ) ;
bizLogContext . setLogType ( BizLogType . HRM ) ; //模块类型
bizLogContext . setBelongType ( BizLogSmallType4Hrm . HRM_RSOURCE_CARD ) ; //所属大类型
bizLogContext . setBelongTypeTargetName ( SystemEnv . getHtmlLabelName ( 1361 , user . getLanguage ( ) ) ) ;
bizLogContext . setLogSmallType ( BizLogSmallType4Hrm . HRM_RSOURCE_CARD_BASE ) ; //当前小类型
bizLogContext . setParams ( params ) ; //当前request请求参数
logger . setUser ( user ) ; //当前操作人
String cusFieldNames = ServiceUtil . getCusFieldNames ( "HrmCustomFieldByInfoType" , - 1 , "b" ) ;
String mainSql = "select a.*" + ( cusFieldNames . length ( ) > 0 ? "," + cusFieldNames : "" ) + " from hrmresource a left join cus_fielddata b on a.id=b.id and b.scope='HrmCustomFieldByInfoType' and b.scopeid=-1 where a.id=" + id ;
logger . setMainSql ( mainSql , "id" ) ; //主表sql
logger . setMainPrimarykey ( "id" ) ; //主日志表唯一key
logger . setMainTargetNameColumn ( "lastname" ) ; //当前targetName对应的列( 对应日志中的对象名)
logger . before ( bizLogContext ) ; //吸入操作前日志
//Td9325,解决多账号次账号没有登陆Id在浏览框组织结构中无法显示的问题。
String oldbelongto = "" ;
boolean falg = false ;
String loginid = "" ;
rs . executeSql ( "select * from HrmResource where id =" + id ) ;
if ( rs . next ( ) ) {
status = Util . null2String ( rs . getString ( "status" ) ) . trim ( ) ;
loginid = rs . getString ( "loginid" ) ;
float idsporder = rs . getFloat ( "dsporder" ) ;
if ( idsporder < = 0 ) {
dsporder = rs . getString ( "id" ) ;
} else {
dsporder = "" + idsporder ;
}
String thisAccounttype = rs . getString ( "accounttype" ) ;
if ( thisAccounttype . equals ( "1" ) & & accounttype . equals ( "0" ) ) {
oldbelongto = rs . getString ( "belongto" ) ;
}
}
if ( accounttype . equals ( "1" ) & & loginid . equalsIgnoreCase ( "" ) ) {
rs . executeSql ( "select loginid from HrmResource where id =" + belongto ) ;
if ( rs . next ( ) ) {
loginid = rs . getString ( 1 ) ;
}
if ( ! loginid . equals ( "" ) ) {
loginid = loginid + ( id + 1 ) ;
falg = true ;
}
}
String sql = "select * from HrmResource where id = " + Util . getIntValue ( id ) ;
rs . executeSql ( sql ) ;
String oldmanagerid = "" ;
String oldmanagerstr = "" ;
while ( rs . next ( ) ) {
oldmanagerid = rs . getString ( "managerid" ) ;
oldmanagerstr = rs . getString ( "managerstr" ) ;
/*********处理managerstr 不以逗号开始或者结束的情况 形如 managerstr: 8 begin***********/
if ( ! oldmanagerstr . startsWith ( "," ) ) oldmanagerstr = "," + oldmanagerstr ;
if ( ! oldmanagerstr . endsWith ( "," ) ) oldmanagerstr = oldmanagerstr + "," ;
/*********处理managerstr 不以逗号开始或者结束的情况 形如 managerstr: 8 end ***********/
}
//mysql报错问题java.sql.SQLException: Incorrect integer value: '' for column 'COSTCENTERID' at row 1
if ( resourceimageid . length ( ) = = 0 ) resourceimageid = "null" ;
if ( costcenterid . length ( ) = = 0 ) costcenterid = "null" ;
if ( managerid . length ( ) = = 0 ) managerid = "null" ;
if ( assistantid . length ( ) = = 0 ) assistantid = "null" ;
if ( accounttype . length ( ) = = 0 ) accounttype = "null" ;
if ( belongto . length ( ) = = 0 ) belongto = "null" ;
if ( jobcall . length ( ) = = 0 ) jobcall = "null" ;
if ( mobileshowtype . length ( ) = = 0 ) mobileshowtype = "null" ;
DepartmentComInfo departmentComInfo = new DepartmentComInfo ( ) ;
String subcompanyid1 = departmentComInfo . getSubcompanyid1 ( departmentid ) ;
// workcode = CodeRuleManager.getCodeRuleManager().generateRuleCode(RuleCodeType.USER, subcompanyid1, departmentid, jobtitle, workcode);
if ( StringUtils . isNotEmpty ( workcode ) ) {
CodeRuleManager . getCodeRuleManager ( ) . checkReservedIfDel ( RuleCodeType . USER . getValue ( ) , workcode ) ;
}
para = "" + id + separator + workcode + separator + lastname + separator + sex + separator + resourceimageid
+ separator + departmentid + separator + costcenterid + separator + jobtitle + separator + joblevel
+ separator + jobactivitydesc + separator + managerid + separator + assistantid + separator + status
+ separator + locationid + separator + workroom + separator + telephone + separator + mobile
+ separator + mobilecall + separator + fax + separator + jobcall + separator + systemlanguage
+ separator + accounttype + separator + belongto + separator + email + separator + dsporder + separator + mobileshowtype ;
RecordSetTrans rst = new RecordSetTrans ( ) ;
rst . setAutoCommit ( false ) ;
try {
rst . executeProc ( "HrmResourceBasicInfo_Update" , para ) ;
if ( Util . null2String ( locationid ) . length ( ) > 0 ) {
rst . executeSql ( "update hrmresource set countryid=(select countryid from HrmLocations where id=" + locationid + ") where id=" + id ) ;
}
String logidsql = "" , quickSearchStr = new HrmCommonServiceImpl ( ) . generateQuickSearchStr ( lastname ) ;
if ( falg ) {
logidsql = "update HrmResource set loginid = ?, pinyinlastname = ?, ecology_pinyin_search = ? where id = ?" ;
rst . executeUpdate ( logidsql , loginid , quickSearchStr , quickSearchStr , id ) ;
} else {
logidsql = "update HrmResource set pinyinlastname = ?, ecology_pinyin_search = ? where id = ?" ;
rst . executeUpdate ( logidsql , quickSearchStr , quickSearchStr , id ) ;
}
rst . commit ( ) ;
} catch ( Exception e ) {
rst . rollback ( ) ;
e . printStackTrace ( ) ;
}
if ( ! "7" . equals ( systemlanguage ) & & StringUtils . isNotBlank ( systemlanguage ) ) {
User . setUserLang ( Util . getIntValue ( id ) , Util . getIntValue ( systemlanguage , 7 ) ) ;
}
//421944 用户自定义隐私设置
UserPrivacyComInfo upc = new UserPrivacyComInfo ( ) ;
PrivacyComInfo pc = new PrivacyComInfo ( ) ;
Map < String , String > mapShowSets = pc . getMapShowSets ( ) ;
String insertSql = "" ;
rs = new RecordSet ( ) ;
try {
String deletePriSql = " delete from userprivacysetting where userid= '" + id + "'" ;
rs . executeSql ( deletePriSql ) ;
for ( Map . Entry < String , String > me : mapShowSets . entrySet ( ) ) {
String fieldName = me . getKey ( ) ;
String fieldVal = Util . null2String ( mapShowSets . get ( fieldName ) ) ;
if ( fieldVal . equals ( "1" ) ) {
String tmpPK = id + "__" + fieldName ;
String tmpPvalue = Util . null2String ( fu . getParameter ( fieldName + "showtype" ) ) ;
insertSql = "insert into userprivacysetting (combinedid,userid,ptype,pvalue) values('" + tmpPK + "','" + id + "','" + fieldName + "','" + tmpPvalue + "')" ;
rs . executeSql ( insertSql ) ;
}
}
upc . removeUserPrivacyCache ( ) ;
} catch ( Exception e ) {
e . printStackTrace ( ) ;
}
int userid = user . getUID ( ) ;
String userpara = "" + userid + separator + today ;
rs . executeProc ( "HrmResource_ModInfo" , "" + id + separator + userpara ) ;
String managerstr = "" ;
if ( ! id . equals ( managerid ) ) {
sql = "select managerstr from HrmResource where id = " + Util . getIntValue ( managerid ) ;
rs . executeSql ( sql ) ;
while ( rs . next ( ) ) {
managerstr = rs . getString ( "managerstr" ) ;
/*********处理managerstr 不以逗号开始或者结束的情况 形如 managerstr: 8 begin***********/
if ( ! managerstr . startsWith ( "," ) ) managerstr = "," + managerstr ;
if ( ! managerstr . endsWith ( "," ) ) managerstr = managerstr + "," ;
/*********处理managerstr 不以逗号开始或者结束的情况 形如 managerstr: 8 end ***********/
managerstr = "," + managerid + managerstr ;
managerstr = managerstr . endsWith ( "," ) ? managerstr : ( managerstr + "," ) ;
}
} else {
managerstr = "," + managerid + "," ;
}
rst = new RecordSetTrans ( ) ;
rst . setAutoCommit ( false ) ;
try {
para = "" + id + separator + managerstr ;
rst . executeProc ( "HrmResource_UpdateManagerStr" , para ) ;
rst . commit ( ) ;
} catch ( Exception e ) {
rst . rollback ( ) ;
e . printStackTrace ( ) ;
}
managerid = Util . null2String ( managerid ) . trim ( ) ;
oldmanagerid = Util . null2String ( oldmanagerid ) . trim ( ) ;
if ( ! managerid . equals ( oldmanagerid ) & & ! ( ( "" . equals ( managerid ) | | "0" . equals ( managerid ) ) & & ( "" . equals ( oldmanagerid ) | | "0" . equals ( oldmanagerid ) ) ) ) {
String temOldmanagerstr = "," + id + oldmanagerstr ;
temOldmanagerstr = temOldmanagerstr . endsWith ( "," ) ? temOldmanagerstr : ( temOldmanagerstr + "," ) ;
sql = "select id,departmentid,subcompanyid1,managerid,seclevel,managerstr from HrmResource where managerstr like '%" + temOldmanagerstr + "'" ;
rs . executeSql ( sql ) ;
while ( rs . next ( ) ) {
String nowmanagerstr = Util . null2String ( rs . getString ( "managerstr" ) ) ;
/*********处理managerstr 不以逗号开始或者结束的情况 形如 managerstr: 8 begin***********/
if ( ! nowmanagerstr . startsWith ( "," ) ) nowmanagerstr = "," + nowmanagerstr ;
if ( ! nowmanagerstr . endsWith ( "," ) ) nowmanagerstr = nowmanagerstr + "," ;
/*********处理managerstr 不以逗号开始或者结束的情况 形如 managerstr: 8 end ***********/
String resourceid = rs . getString ( "id" ) ;
//指定上级为自身的情况,不更新自身上级
if ( id . equals ( resourceid ) )
continue ;
String nowmanagerstr2 = "" ;
int index = nowmanagerstr . lastIndexOf ( oldmanagerstr ) ;
if ( index ! = - 1 ) {
if ( ! "" . equals ( managerstr ) ) {
nowmanagerstr2 = nowmanagerstr . substring ( 0 , index ) + ( "" . equals ( oldmanagerstr ) ? managerstr . substring ( 1 ) : managerstr ) ;
} else {
nowmanagerstr2 = nowmanagerstr . substring ( 0 , index ) + ( "" . equals ( oldmanagerstr ) ? "" : "," ) ;
}
}
rst = new RecordSetTrans ( ) ;
rst . setAutoCommit ( false ) ;
try {
para = resourceid + separator + nowmanagerstr2 ;
rst . executeProc ( "HrmResource_UpdateManagerStr" , para ) ;
rst . commit ( ) ;
ResourceComInfo . updateResourceInfoCache ( resourceid ) ; //更新缓存
} catch ( Exception e ) {
rst . rollback ( ) ;
e . printStackTrace ( ) ;
}
}
}
String subcmpanyid1 = DepartmentComInfo . getSubcompanyid1 ( departmentid ) ;
para = "" + id + separator + subcmpanyid1 ;
rst = new RecordSetTrans ( ) ;
rst . setAutoCommit ( false ) ;
try {
rst . executeProc ( "HrmResource_UpdateSubCom" , para ) ;
rst . commit ( ) ;
} catch ( Exception e ) {
rst . rollback ( ) ;
e . printStackTrace ( ) ;
}
if ( ! managerid . equals ( oldmanagerid ) & & ! ( ( "" . equals ( managerid ) | | "0" . equals ( managerid ) ) & & ( "" . equals ( oldmanagerid ) | | "0" . equals ( oldmanagerid ) ) ) ) { //修改人力资源经理,对客户和日程共享重新计算
CrmShareBase . setShareForNewManager ( id ) ;
}
boolean formdefined = false ;
weaver . system . CusFormSettingComInfo CusFormSettingComInfo = new weaver . system . CusFormSettingComInfo ( ) ;
weaver . system . CusFormSetting CusFormSetting = CusFormSettingComInfo . getCusFormSetting ( "hrm" , "HrmResourceBase" ) ;
if ( CusFormSetting ! = null ) {
if ( CusFormSetting . getStatus ( ) = = 2 ) {
//自定义布局页面
formdefined = true ;
}
}
para = "" + id ;
for ( int i = 0 ; i < 5 ; i + + ) {
int idx = i ;
if ( formdefined ) idx + + ;
String datefield = Util . null2String ( fu . getParameter ( "datefield" + idx ) ) ;
String numberfield = "" + Util . getDoubleValue ( fu . getParameter ( "numberfield" + idx ) , 0 ) ;
String textfield = Util . null2String ( fu . getParameter ( "textfield" + idx ) ) ;
String tinyintfield = "" + Util . getIntValue ( fu . getParameter ( "tinyintfield" + idx ) , 0 ) ;
para + = separator + datefield + separator + numberfield + separator + textfield + separator + tinyintfield ;
}
rs . executeProc ( "HrmResourceDefine_Update" , para ) ;
new Thread ( new OrganisationComRunnable ( "user" , "editbasicinfo" , id + "-" + status ) ) . start ( ) ;
// 改为自进行修正
ResourceComInfo . updateResourceInfoCache ( id ) ;
try {
//OA与第三方接口单条数据同步方法开始
HrmServiceManager . SynInstantHrmResource ( id , "2" ) ;
//OA与第三方接口单条数据同步方法结束
} catch ( Exception e ) {
this . writeLog ( "OA与第三方接口单条数据同步失败" + e ) ;
}
//处理自定义字段 add by wjy
CustomFieldTreeManager . editCustomData ( "HrmCustomFieldByInfoType" , - 1 , fu , Util . getIntValue ( id , 0 ) ) ;
//处理次账号修改为主账号时,检查次账号所属 主账号的 其他设置是否需要修改 add by kzw QC159888
try {
if ( ! oldbelongto . equals ( "" ) ) {
HrmUserSettingComInfo userSetting = new HrmUserSettingComInfo ( ) ;
String belongtoshow = userSetting . getBelongtoshowByUserId ( oldbelongto ) ;
if ( belongtoshow . equals ( "1" ) ) {
rs . executeSql ( "select id from hrmresource where belongto = " + oldbelongto ) ;
if ( ! rs . next ( ) ) {
String setId = userSetting . getId ( oldbelongto ) ;
rs . executeSql ( "update HrmUserSetting set belongtoshow=0 where id=" + setId ) ;
userSetting . removeHrmUserSettingComInfoCache ( ) ;
}
}
}
} catch ( Exception e ) {
writeLog ( e . getMessage ( ) ) ;
}
rs . execute ( "update HrmResource set " + DbFunctionUtil . getUpdateSetSql ( rs . getDBType ( ) , user . getUID ( ) ) + " where id=" + id ) ;
rs . execute ( "update HrmResourceManager set " + DbFunctionUtil . getUpdateSetSql ( rs . getDBType ( ) , user . getUID ( ) ) + " where id=" + id ) ;
//写入操作后日志
LogUtil . writeBizLog ( logger . getBizLogContexts ( ) ) ;
//修改人员实时同步到CoreMail邮件系统
//CoreMailAPI.synUser(id);
HrmFaceCheckManager . sync ( id , HrmFaceCheckManager . getOptUpdate ( ) , "hrm_e9_HrmResourceBaseService_editResourceBase" , HrmFaceCheckManager . getOaResource ( ) ) ;
retmap . put ( "status" , "1" ) ;
} catch ( Exception e ) {
writeLog ( e ) ;
retmap . put ( "status" , "-1" ) ;
retmap . put ( "message" , "" + SystemEnv . getHtmlLabelName ( 22620 , weaver . general . ThreadVarLanguage . getLang ( ) ) + "" ) ;
}
return retmap ;
}
/ * *
* 校 验 数 据 合 法 性
* /
public Map < String , Object > hrmResourceCheck ( HttpServletRequest request , HttpServletResponse response ) {
Map < String , Object > retmap = new HashMap < String , Object > ( ) ;
try {
User user = HrmUserVarify . getUser ( request , response ) ;
RecordSet rs = new RecordSet ( ) ;
String id = Util . null2String ( request . getParameter ( "id" ) ) ;
String temName = Util . null2String ( request . getParameter ( "lastname" ) ) ;
String temCode = Util . null2String ( request . getParameter ( "workcode" ) ) ;
String temTelephone = Util . null2String ( request . getParameter ( "telephone" ) ) ;
String temMobile = Util . null2String ( request . getParameter ( "mobile" ) ) ;
String checkMessage = "" ;
boolean isCheckHas = false ;
boolean isCheckHasName = false ;
boolean isCheck = false ;
String tempSql = "" ;
if ( temTelephone . equals ( "sysadmin" ) | | temMobile . equals ( "sysadmin" ) ) {
checkMessage = SystemEnv . getHtmlLabelName ( 22305 , user . getLanguage ( ) ) ;
isCheck = true ;
}
if ( ! temCode . equals ( "" ) ) {
tempSql = "select workcode from HrmResource where workcode='" + temCode + "' " ;
if ( temCode . equals ( "sysadmin" ) ) {
checkMessage = SystemEnv . getHtmlLabelName ( 510739 , user . getLanguage ( ) ) ; //判断workcode编号是不是sysadmin
isCheck = true ;
}
if ( id . length ( ) > 0 ) {
tempSql + = " and id !=" + id ;
}
rs . executeSql ( tempSql ) ;
if ( rs . next ( ) ) {
String workcode = rs . getString ( "workcode" ) ;
if ( workcode . equals ( temCode ) ) {
checkMessage = SystemEnv . getHtmlLabelName ( 21447 , user . getLanguage ( ) ) ;
isCheckHas = true ;
// 删除和编号重复的预留编号
String sql = "delete from hrm_coderulereserved where id in(select hcr.id from hrm_coderulereserved hcr left join hrm_coderule hc ON hcr.coderuleid = hc.id where hc.serialtype = ? and reservedcode = ?)" ;
rs . executeUpdate ( sql , RuleCodeType . USER . getValue ( ) , temCode ) ;
}
}
}
if ( ! temName . equals ( "" ) ) {
tempSql = "select lastname from HrmResource where lastname='" + temName + "' " ;
if ( id . length ( ) > 0 ) {
tempSql + = " and id !=" + id ;
}
rs . executeSql ( tempSql ) ;
if ( rs . next ( ) ) {
if ( ! isCheckHas ) {
checkMessage = SystemEnv . getHtmlLabelName ( 21445 , user . getLanguage ( ) ) ;
} else {
checkMessage = SystemEnv . getHtmlLabelName ( 21446 , user . getLanguage ( ) ) ;
}
isCheckHasName = true ;
}
}
if ( ( isCheckHas & & isCheckHasName ) | | ( isCheckHas & & ! isCheckHasName ) | | ( isCheck ) ) {
retmap . put ( "status" , "-1" ) ;
retmap . put ( "message" , checkMessage ) ;
} else if ( ! isCheckHas & & isCheckHasName ) {
retmap . put ( "status" , "-1" ) ;
retmap . put ( "messagetype" , "confirm" ) ;
retmap . put ( "message" , checkMessage ) ;
} else {
retmap . put ( "status" , "1" ) ;
}
} catch ( Exception e ) {
writeLog ( e ) ;
}
return retmap ;
}
@SuppressWarnings ( { "unchecked" , "rawtypes" } )
public String duplicateRemoval ( String str , String userid ) {
String [ ] ss = str . split ( "," ) ;
List < String > list = new ArrayList < String > ( ) ;
for ( String s : ss ) {
list . add ( s . trim ( ) ) ;
}
HashSet hs = new HashSet ( list ) ;
list . clear ( ) ;
list . addAll ( hs ) ;
if ( list . contains ( userid ) ) list . remove ( userid ) ;
str = list . toString ( ) . replace ( "[" , "" ) . replace ( "]" , "" ) . replace ( " " , "" ) ;
return str ;
}
/ * *
* 获 取 允 许 个 人 编 辑 的 字 段 数 量
* @param scopeid
* @return
* /
public boolean isHasModify ( int scopeid ) {
int fieldNum = 0 ;
HrmFieldGroupComInfo HrmFieldGroupComInfo = new HrmFieldGroupComInfo ( ) ;
HrmFieldSearchConditionComInfo hrmFieldSearchConditionComInfo = new HrmFieldSearchConditionComInfo ( ) ;
HrmFieldManager hfm = new HrmFieldManager ( "HrmCustomFieldByInfoType" , scopeid ) ;
StaticObj staticobj = StaticObj . getInstance ( ) ;
String multilanguage = ( String ) staticobj . getObject ( "multilanguage" ) ;
if ( multilanguage = = null ) multilanguage = "n" ;
boolean isMultilanguageOK = false ;
if ( multilanguage . equals ( "y" ) ) isMultilanguageOK = true ;
boolean flagaccount = GCONST . getMOREACCOUNTLANDING ( ) ;
while ( HrmFieldGroupComInfo . next ( ) ) {
int grouptype = Util . getIntValue ( HrmFieldGroupComInfo . getType ( ) ) ;
if ( grouptype ! = scopeid ) continue ;
int grouplabel = Util . getIntValue ( HrmFieldGroupComInfo . getLabel ( ) ) ;
int groupid = Util . getIntValue ( HrmFieldGroupComInfo . getid ( ) ) ;
hfm . getCustomFields ( groupid ) ;
while ( hfm . next ( ) ) {
String fieldName = hfm . getFieldname ( ) ;
//没有开启多语言即使开启了系统语言允许个人编辑也不行
if ( fieldName . equals ( "systemlanguage" ) & & ! isMultilanguageOK ) continue ;
//没有开启主从账号,账号类型也要过滤
if ( fieldName . equals ( "accounttype" ) & & ! flagaccount ) continue ;
if ( fieldName . equals ( "belongto" ) & & flagaccount ) continue ;
if ( fieldName . equals ( "loginid" ) | | fieldName . equals ( "jobactivity" ) | | fieldName . equals ( "status" ) | | fieldName . equals ( "departmentvirtualids" ) ) continue ;
if ( fieldName . equals ( "messagerurl" ) | | fieldName . equals ( "jobGroupId" ) ) continue ;
if ( ! hfm . isUse ( ) | | ! hfm . isModify ( ) ) {
continue ;
}
fieldNum + + ;
}
//个人信息还需要检查自定义子信息是否有允许个人修改的字段
if ( scopeid = = 1 ) {
//自定义信息
RecordSet RecordSet = new RecordSet ( ) ;
CustomFieldTreeManager CustomFieldTreeManager = new CustomFieldTreeManager ( ) ;
LinkedHashMap < String , String > ht = new LinkedHashMap < String , String > ( ) ;
RecordSet . executeSql ( "select id, formlabel,viewtype from cus_treeform where parentid=" + scopeid + " order by scopeorder" ) ;
while ( RecordSet . next ( ) ) {
if ( RecordSet . getInt ( "viewtype" ) ! = 1 ) continue ;
int subId = RecordSet . getInt ( "id" ) ;
CustomFieldManager cfm2 = new CustomFieldManager ( "HrmCustomFieldByInfoType" , subId ) ;
cfm2 . getCustomFields ( ) ;
int colcount1 = cfm2 . getSize ( ) ;
if ( colcount1 ! = 0 ) {
while ( cfm2 . next ( ) ) {
if ( ! cfm2 . isUse ( ) | | ( ! cfm2 . isModify ( ) ) ) continue ;
fieldNum + + ;
}
}
}
}
}
if ( fieldNum > 0 ) return true ;
return false ;
}
public boolean canEditUserIcon ( ) {
RecordSet recordSet = new RecordSet ( ) ;
int isModify = 0 ;
recordSet . executeQuery ( "select isModify from hrm_formfield where fieldname = ?" , "messagerurl" ) ;
if ( recordSet . next ( ) ) {
isModify = recordSet . getInt ( "isModify" ) ;
}
if ( isModify = = 1 ) {
return true ;
} else {
return false ;
}
}
public Map < String , Object > refreshPinyin ( HttpServletRequest request , HttpServletResponse response ) {
Map < String , Object > retmap = new HashMap < String , Object > ( ) ;
try {
User user = HrmUserVarify . getUser ( request , response ) ;
if ( user . isAdmin ( ) ) {
upgradeSearchPinyin ( ) ;
retmap . put ( "status" , "1" ) ;
} else {
retmap . put ( "status" , "-1" ) ;
retmap . put ( "message" , SystemEnv . getHtmlLabelName ( 2012 , user . getLanguage ( ) ) ) ;
}
} catch ( Exception ex ) {
ex . printStackTrace ( ) ;
writeLog ( ex ) ;
retmap . put ( "status" , "-1" ) ;
retmap . put ( "message" , "failed" ) ;
}
return retmap ;
}
public void upgradeSearchPinyin ( ) {
try {
RecordSet rs = new RecordSet ( ) ;
rs . executeQuery ( "select id, lastname from hrmresource" ) ;
while ( rs . next ( ) ) {
RecordSet rs1 = new RecordSet ( ) ;
String id = Util . null2String ( rs . getString ( "id" ) ) ;
String lastname = Util . null2String ( rs . getString ( "lastname" ) ) ;
String quickSearchStr = new HrmCommonServiceImpl ( ) . generateQuickSearchStr ( lastname ) ;
try {
rs1 . executeUpdate ( "update hrmresource set PINYINLASTNAME = ?, ECOLOGY_PINYIN_SEARCH = ? where id = ?" , quickSearchStr , quickSearchStr , id ) ;
} catch ( Exception e ) {
writeLog ( e ) ;
e . printStackTrace ( ) ;
}
}
} catch ( Exception ex ) {
writeLog ( ex ) ;
ex . printStackTrace ( ) ;
}
}
public void upgradeAreaSearchPinyin ( ) {
try {
String id = "" ;
String name = "" ;
RecordSet rs = new RecordSet ( ) ;
RecordSet rs1 = new RecordSet ( ) ;
rs . executeQuery ( "select id, countryname as name from hrmcountry" ) ;
while ( rs . next ( ) ) {
id = Util . null2String ( rs . getString ( "id" ) ) ;
name = Util . null2String ( rs . getString ( "name" ) ) ;
String quickSearchStr = new HrmCommonServiceImpl ( ) . generateQuickSearchStr ( name ) ;
try {
rs1 . executeUpdate ( "update hrmcountry set quicksearch = ? where id = ?" , quickSearchStr , id ) ;
} catch ( Exception e ) {
writeLog ( e ) ;
e . printStackTrace ( ) ;
}
}
rs . executeQuery ( "select id, provincename as name from hrmprovince" ) ;
while ( rs . next ( ) ) {
id = Util . null2String ( rs . getString ( "id" ) ) ;
name = Util . null2String ( rs . getString ( "name" ) ) ;
String quickSearchStr = new HrmCommonServiceImpl ( ) . generateQuickSearchStr ( name ) ;
try {
rs1 . executeUpdate ( "update hrmprovince set quicksearch = ? where id = ?" , quickSearchStr , id ) ;
} catch ( Exception e ) {
writeLog ( e ) ;
e . printStackTrace ( ) ;
}
}
rs . executeQuery ( "select id, cityname as name from HRMCITY" ) ;
while ( rs . next ( ) ) {
id = Util . null2String ( rs . getString ( "id" ) ) ;
name = Util . null2String ( rs . getString ( "name" ) ) ;
String quickSearchStr = new HrmCommonServiceImpl ( ) . generateQuickSearchStr ( name ) ;
try {
rs1 . executeUpdate ( "update HRMCITY set quicksearch = ? where id = ?" , quickSearchStr , id ) ;
} catch ( Exception e ) {
writeLog ( e ) ;
e . printStackTrace ( ) ;
}
}
rs . executeQuery ( "select id, cityname as name from HrmCityTwo" ) ;
while ( rs . next ( ) ) {
id = Util . null2String ( rs . getString ( "id" ) ) ;
name = Util . null2String ( rs . getString ( "name" ) ) ;
String quickSearchStr = new HrmCommonServiceImpl ( ) . generateQuickSearchStr ( name ) ;
try {
rs1 . executeUpdate ( "update HrmCityTwo set quicksearch = ? where id = ?" , quickSearchStr , id ) ;
} catch ( Exception e ) {
writeLog ( e ) ;
e . printStackTrace ( ) ;
}
}
} catch ( Exception ex ) {
ex . printStackTrace ( ) ;
writeLog ( ex ) ;
}
}
/ * *
* 判 断 人 员 是 否 能 查 看 对 应 卡 片 信 息
* @param currentUserId
* @param userid
* @return
* /
public boolean checkRyShow ( Integer currentUserId , String userid ) {
boolean back = true ;
try {
BaseBean bb = new BaseBean ( ) ;
ResourceComInfo resourceComInfo = new ResourceComInfo ( ) ;
String userManagerId = "" ;
String userDeptId = "" ;
if ( StringUtils . isNotBlank ( userid ) ) {
userManagerId = resourceComInfo . getManagerID ( userid ) ;
userDeptId = resourceComInfo . getDepartmentID ( userid ) ;
}
String allDeptLeaders = getDepartmentLeader ( userDeptId ) ;
bb . writeLog ( "userManagerId:" + userManagerId ) ;
bb . writeLog ( "userDeptId:" + userDeptId ) ;
bb . writeLog ( "allDeptLeaders:" + allDeptLeaders ) ;
// String leader_roleid = "30";
// List<String> leaderList = queryHrmRoleUserByRole(leader_roleid);
// String hr_roleid = "29";
// List<String> hrList = queryHrmRoleUserByRole(hr_roleid);
//判断是否是指定角色29、30
boolean hasAccess = false ;
HrmCommonService hrmCommonService = new HrmCommonServiceImpl ( ) ;
List < String > roleIds = new ArrayList < > ( Arrays . asList ( hrmCommonService . getRoleIds ( currentUserId ) . split ( "," ) ) ) ;
List < String > accessRoleIds = new ArrayList < > ( ) ;
accessRoleIds . add ( "29" ) ;
accessRoleIds . add ( "30" ) ;
roleIds . retainAll ( accessRoleIds ) ;
hasAccess = CollectionUtils . isNotEmpty ( roleIds ) ;
new BaseBean ( ) . writeLog ( "currentUserId" + currentUserId + "roleIds" + roleIds + "hasAccess" + hasAccess ) ;
if ( hasAccess ) {
back = true ;
} else if ( ( "," + allDeptLeaders + "," ) . contains ( "," + currentUserId + "," ) ) {
back = true ;
} else if ( String . valueOf ( currentUserId ) . equals ( userManagerId ) ) {
back = true ;
} else if ( String . valueOf ( currentUserId ) . equals ( userid ) ) {
//自己看自己可以看
back = true ;
} else if ( currentUserId = = 1 ) {
//系统管理员可以看所有
back = true ;
} else {
back = false ;
}
} catch ( Exception e ) {
e . printStackTrace ( ) ;
}
return back ;
}
public List < String > queryHrmRoleUserByRole ( String roleid ) {
BaseBean bb = new BaseBean ( ) ;
List < String > userList = new ArrayList < > ( ) ;
try {
RecordSet rs = new RecordSet ( ) ;
String jobtitleSql = " WHERE (a.jobtitle = b.resourceid AND b.resourcetype=5 AND (b.jobtitlelevel=1 OR (b.jobtitlelevel=2 AND ','||b.subdepid ||',' LIKE '%,'||a.subcompanyid1||',%') OR (b.jobtitlelevel=3 AND ','||b.subdepid||',' LIKE '%,' || a.departmentid ||',%')))" ;
String sql = " select distinct t.resourceid from ( \n" +
" select a.id as resourceid from HrmResource a, HrmRoleMembers b \n" +
" where (a.id=b.resourceid and b.resourcetype =1 ) and b.roleid = " + roleid +
" union all \n" +
" select a.id AS resourceid from HrmResourceManager a, HrmRoleMembers b \n" +
" where (a.id=b.resourceid and b.resourcetype in(7,8)) and b.roleid =" + roleid +
" union all \n" +
" select a.id as resourceid from HrmResource a, HrmRoleMembers b \n" +
" where (a.subcompanyid1 = b.resourceid and a.seclevel>=b.seclevelfrom and a.seclevel<=b.seclevelto and b.resourcetype=2) and b.roleid=" + roleid +
" union all \n" +
" select a.id as resourceid FROM HrmResource a, HrmRoleMembers b \n" +
" WHERE (a.departmentid = b.resourceid and a.seclevel>=b.seclevelfrom and a.seclevel<=b.seclevelto and b.resourcetype=3) and b.roleid =" + roleid +
" union all \n" +
" SELECT a.id as resourceid FROM HrmResource a, HrmRoleMembers b \n" + jobtitleSql + " and b.roleid = " + roleid +
" ) t " ;
bb . writeLog ( "queryHrmRoleUserByRole:sql:" + sql ) ;
rs . executeQuery ( sql ) ;
while ( rs . next ( ) ) {
String resourceid = rs . getString ( "resourceid" ) ;
userList . add ( resourceid ) ;
}
} catch ( Exception e ) {
bb . writeLog ( "queryHrmRoleUserByRole:e:" + e ) ;
}
return userList ;
}
/ * * *
*
* @param deptid
* @return
* /
public String getDepartmentLeader ( String deptid ) {
RecordSet rs = new RecordSet ( ) ;
BaseBean bb = new BaseBean ( ) ;
bb . writeLog ( "getDepartmentLeader:deptid:" + deptid ) ;
String bmfzrs = "" ;
try {
String sql = " with tem_table(dep_id,departmentname,supdepid,curlevel) as (\n" +
" select id, departmentname,supdepid, 1 as level from HrmDepartment where id=" + deptid +
" union all\n" +
" select a.id,a.departmentname,a.supdepid,b.curlevel+1 from Hrmdepartment a inner join tem_table b on (a.id = b.supdepid)\n" +
" )\n" +
" select bmfzr from hrmdepartmentdefined where deptid in (select dep_id from tem_table)" ;
rs . executeQuery ( sql , new Object [ ] { deptid } ) ;
while ( rs . next ( ) ) {
String bmfzr = Util . null2String ( rs . getString ( "bmfzr" ) ) ;
bmfzrs + = StringUtils . isBlank ( bmfzrs ) ? bmfzr : "," + bmfzr ;
}
} catch ( Exception e ) {
bb . writeLog ( "e:" + e ) ;
}
return bmfzrs ;
}
}