diff --git a/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml b/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml index bdda6483..cbc8cd91 100644 --- a/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml +++ b/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml @@ -351,7 +351,6 @@ field_name_desc=#{fieldNameDesc}, isenable=#{isenable}, isrequired=#{isrequired}, - edit_show=#{editShow}, show_order=#{showOrder}, custom_value=#{customValue}, diff --git a/src/com/engine/organization/mapper/hrmresource/HrmResourceMapper.java b/src/com/engine/organization/mapper/hrmresource/HrmResourceMapper.java index b2713f76..e04c4ab2 100644 --- a/src/com/engine/organization/mapper/hrmresource/HrmResourceMapper.java +++ b/src/com/engine/organization/mapper/hrmresource/HrmResourceMapper.java @@ -41,4 +41,8 @@ public interface HrmResourceMapper { // * @return // */ //List getKeyMapByKetField(@Param("keyField") String keyField); + + String getEcResourceId(@Param("jclResourceId") String jclResourceId); + + Long getJclResourceId(@Param("ecResourceId") String ecResourceId); } diff --git a/src/com/engine/organization/mapper/hrmresource/HrmResourceMapper.xml b/src/com/engine/organization/mapper/hrmresource/HrmResourceMapper.xml index 45717e7c..b7eb8550 100644 --- a/src/com/engine/organization/mapper/hrmresource/HrmResourceMapper.xml +++ b/src/com/engine/organization/mapper/hrmresource/HrmResourceMapper.xml @@ -38,7 +38,19 @@ where delete_type = 0 and ${keyField} = #{keyFieldValue} - + + + diff --git a/src/com/engine/organization/mapper/personnelcard/PersonnelCardMapper.xml b/src/com/engine/organization/mapper/personnelcard/PersonnelCardMapper.xml index 8171ec2c..e6f990a3 100644 --- a/src/com/engine/organization/mapper/personnelcard/PersonnelCardMapper.xml +++ b/src/com/engine/organization/mapper/personnelcard/PersonnelCardMapper.xml @@ -3,12 +3,12 @@ - - + + - + @@ -28,14 +28,14 @@ diff --git a/src/com/engine/organization/service/impl/HrmPersonnelCardServiceImpl.java b/src/com/engine/organization/service/impl/HrmPersonnelCardServiceImpl.java index ccbd3a58..38e2a472 100644 --- a/src/com/engine/organization/service/impl/HrmPersonnelCardServiceImpl.java +++ b/src/com/engine/organization/service/impl/HrmPersonnelCardServiceImpl.java @@ -12,6 +12,7 @@ import com.engine.organization.mapper.extend.ExtMapper; import com.engine.organization.mapper.extend.ExtendGroupMapper; import com.engine.organization.mapper.extend.ExtendInfoMapper; import com.engine.organization.mapper.extend.ExtendTitleMapper; +import com.engine.organization.mapper.hrmresource.HrmResourceMapper; import com.engine.organization.mapper.personnelcard.PersonnelCardMapper; import com.engine.organization.service.HrmPersonnelCardService; import com.engine.organization.util.OrganizationAssert; @@ -60,6 +61,10 @@ public class HrmPersonnelCardServiceImpl extends Service implements HrmPersonnel return MapperProxyFactory.getProxy(ExtMapper.class); } + private HrmResourceMapper getHrmResourceMapper() { + return MapperProxyFactory.getProxy(HrmResourceMapper.class); + } + @Override public Map getPersonnelCard(Long uId) { @@ -67,7 +72,7 @@ public class HrmPersonnelCardServiceImpl extends Service implements HrmPersonnel User userInfo; //TODO 人员表之前关联关系,处理UID if (null == uId) { - uId = (long) user.getUID(); + uId = getHrmResourceMapper().getJclResourceId(Util.null2String(user.getUID())); } userInfo = getPersonnelCardMapper().getUserById(uId); @@ -99,6 +104,7 @@ public class HrmPersonnelCardServiceImpl extends Service implements HrmPersonnel resultMap.put("statistical", statistical); resultMap.put("formItems", formItemList); resultMap.put("anchorList", anchorList); + resultMap.put("iframeList", getIframeList()); return resultMap; } @@ -121,32 +127,34 @@ public class HrmPersonnelCardServiceImpl extends Service implements HrmPersonnel */ private Statistical getStatistical(String resourceId) { try { + // 获取Ec用户ID + String ecResourceId = getHrmResourceMapper().getEcResourceId(resourceId); Statistical statistical = new Statistical(); if (SysModuleInfoBiz.checkModuleStatus(ModuleConstants.Workflow)) { - statistical.setWorkflowCount(new WorkflowRequestUtil().getRequestCount(user, resourceId)); + statistical.setWorkflowCount(new WorkflowRequestUtil().getRequestCount(user, ecResourceId)); } else { statistical.setWorkflowCount(0); } if (SysModuleInfoBiz.checkModuleStatus(ModuleConstants.Doc)) { - Object[] docCount4Hrm = new DocSearchComInfo().getDocCount4Hrm(resourceId, user); + Object[] docCount4Hrm = new DocSearchComInfo().getDocCount4Hrm(ecResourceId, user); statistical.setDocCount(null == docCount4Hrm[1] ? 0 : Integer.parseInt(Util.null2String(docCount4Hrm[1]))); } else { statistical.setDocCount(0); } if (SysModuleInfoBiz.checkModuleStatus(ModuleConstants.Crm)) { - String[] crmCount4Hrm = new CrmShareBase().getCrmCount4Hrm(resourceId, resourceId); + String[] crmCount4Hrm = new CrmShareBase().getCrmCount4Hrm(ecResourceId, ecResourceId); statistical.setCusCount(null == crmCount4Hrm[1] ? 0 : Integer.parseInt(Util.null2String(crmCount4Hrm[1]))); } else { statistical.setCusCount(0); } if (SysModuleInfoBiz.checkModuleStatus(ModuleConstants.Cowork)) { - String[] coworkCount4Hrm = new CoworkShareManager().getCoworkCount4Hrm(resourceId, resourceId); + String[] coworkCount4Hrm = new CoworkShareManager().getCoworkCount4Hrm(ecResourceId, ecResourceId); statistical.setCollaborationCount(null == coworkCount4Hrm[1] ? 0 : Integer.parseInt(Util.null2String(coworkCount4Hrm[1]))); } else { statistical.setCollaborationCount(0); } if (SysModuleInfoBiz.checkModuleStatus(ModuleConstants.Blog)) { - String[] blogCount4Hrm = new BlogShareManager().getBlogCount4Hrm(resourceId); + String[] blogCount4Hrm = new BlogShareManager().getBlogCount4Hrm(ecResourceId); statistical.setWeiboCount(null == blogCount4Hrm[1] ? 0 : Integer.parseInt(Util.null2String(blogCount4Hrm[1]))); } else { statistical.setWeiboCount(0); @@ -169,8 +177,11 @@ public class HrmPersonnelCardServiceImpl extends Service implements HrmPersonnel ExtendInfoParams infoParams = ExtendInfoParams.builder().tableName(ExtendGroupBO.getTableNameByGroupPO(extendGroup)).fields(fields).params(null).id(uId).build(); Map fieldValueMap = getExtMapper().listExt(infoParams); for (ExtendInfoPO extendInfoPO : extendInfoList) { - Object fieldValue = fieldValueMap.get(extendInfoPO.getFieldName()); - String fieldShowName = FieldDefinedValueUtil.getFieldValue(user, extendInfoPO, Util.null2String(fieldValue)); + String fieldShowName =""; + if (null != fieldValueMap) { + Object fieldValue = fieldValueMap.get(extendInfoPO.getFieldName()); + fieldShowName = FieldDefinedValueUtil.getFieldValue(user, extendInfoPO, Util.null2String(fieldValue)); + } itemList.add(Item.builder().fieldId(extendInfoPO.getFieldNameDesc()).fieldValue(fieldShowName).build()); } } diff --git a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java index d0b68a53..0e7928eb 100644 --- a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java +++ b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java @@ -23,6 +23,8 @@ import com.engine.organization.entity.job.bo.JobBO; import com.engine.organization.entity.job.po.JobPO; import com.engine.organization.entity.searchtree.SearchTree; import com.engine.organization.entity.searchtree.SearchTreeParams; +import com.engine.organization.enums.LogModuleNameEnum; +import com.engine.organization.enums.OperateTypeEnum; import com.engine.organization.mapper.comp.CompMapper; import com.engine.organization.mapper.department.DepartmentMapper; import com.engine.organization.mapper.extend.ExtendTitleMapper; @@ -37,6 +39,7 @@ import com.engine.organization.mapper.scheme.SchemeMapper; import com.engine.organization.mapper.sequence.SequenceMapper; import com.engine.organization.service.ExtService; import com.engine.organization.service.HrmResourceService; +import com.engine.organization.thread.OrganizationSyncEc; import com.engine.organization.util.HasRightUtil; import com.engine.organization.util.MenuBtn; import com.engine.organization.util.OrganizationAssert; @@ -186,7 +189,21 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic @Override public Long saveBaseForm(Map params) { HasRightUtil.hasRight(user, RIGHT_NAME, false); + // 通过岗位,获取分部、部门、等其他信息 + String jobId = Util.null2String(params.get("job_title")); + if (StringUtils.isNotBlank(jobId)) { + JobPO jobById = getJobMapper().getJobById(Long.parseLong(jobId)); + params.put("department_id", jobById.getParentDept()); + params.put("company_id", jobById.getParentComp()); + params.put("ec_department", jobById.getEcDepartment()); + params.put("ec_company", jobById.getEcCompany()); + // 等级方案、岗位序列、职等职级 + } + // 新增EC人员,新增成功后,新增到聚才林人员表 + Map syncMap = new OrganizationSyncEc(user, LogModuleNameEnum.RESOURCE, OperateTypeEnum.ADD, params).sync(); + String ecResourceId = Util.null2String(syncMap.get("id")); + OrganizationAssert.isTrue(StringUtils.isNotBlank(ecResourceId), Util.null2String(syncMap.get("message"))); return getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_HRM, params, "", null); } @@ -236,6 +253,22 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic if ("0".equals(groupId)) { groupId = GROUP_ID.toString(); } + + String jobId = Util.null2String(params.get("job_title")); + if (StringUtils.isNotBlank(jobId)) { + JobPO jobById = getJobMapper().getJobById(Long.parseLong(jobId)); + params.put("department_id", jobById.getParentDept()); + params.put("company_id", jobById.getParentComp()); + params.put("ec_department", jobById.getEcDepartment()); + params.put("ec_company", jobById.getEcCompany()); + // 等级方案、岗位序列、职等职级 + + } + // 更新EC人员,更新成功后,更新聚才林人员表 + Map syncMap = new OrganizationSyncEc(user, LogModuleNameEnum.RESOURCE, OperateTypeEnum.UPDATE, params).sync(); + String ecResourceId = Util.null2String(syncMap.get("id")); + OrganizationAssert.isTrue(StringUtils.isNotBlank(ecResourceId), Util.null2String(syncMap.get("message"))); + int updateCount = 0; // 更新主表数据 updateCount += getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_HRM, params, "", id); @@ -281,10 +314,8 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic ArrayList topMenuList = new ArrayList<>(); ArrayList rightMenuList = new ArrayList<>(); topMenuList.add(MenuBtn.builder().isBatch("1").isTop("1").menuFun("new").menuIcon("icon-coms-New-Flow").menuName("新建人员").type("BTN_Addnew").build()); - //topMenuList.add(MenuBtn.builder().isBatch("1").isTop("1").menuFun("import").menuIcon("icon-coms-leading-in").menuName("导入人员").type("BTN_Import").build()); btnDatas.put("topMenu", topMenuList); rightMenuList.add(MenuBtn.builder().isBatch("1").isTop("1").menuFun("new").menuIcon("icon-coms-New-Flow").menuName("新建人员").type("BTN_Addnew").build()); - //rightMenuList.add(MenuBtn.builder().isBatch("1").isTop("1").menuFun("import").menuIcon("icon-coms-leading-in").menuName("导入人员").type("BTN_Import").build()); rightMenuList.add(MenuBtn.builder().isBatch("0").isTop("0").menuFun("custom").menuIcon("icon-coms-task-list").menuName("显示列定制").type("BTN_COLUMN").build()); btnDatas.put("rightMenu", rightMenuList); return btnDatas; diff --git a/src/com/engine/organization/thread/OrganizationSyncEc.java b/src/com/engine/organization/thread/OrganizationSyncEc.java index 070b4067..8767637f 100644 --- a/src/com/engine/organization/thread/OrganizationSyncEc.java +++ b/src/com/engine/organization/thread/OrganizationSyncEc.java @@ -36,7 +36,7 @@ import java.util.stream.Collectors; public class OrganizationSyncEc { private final LogModuleNameEnum moduleName; private final OperateTypeEnum operateType; - private final Map params; + private Map params; private final User user; private JobPO oldJobPO; Map resultMap; @@ -161,21 +161,22 @@ public class OrganizationSyncEc { addResource(); break; case UPDATE: + updateResource(); break; case CANCELED: - break; default: break; } } private void addResource() { - Map map = ResourceSyncUtil.addResource(user, params); - this.resultMap = map; + Map convertParams = ResourceSyncUtil.convertEcResourceParams(params); + this.resultMap = ResourceSyncUtil.addResource(user, convertParams); } private void updateResource() { - + Map convertParams = ResourceSyncUtil.convertEcResourceParams(params); + this.resultMap = ResourceSyncUtil.editResourceBase(user, convertParams); } diff --git a/src/com/engine/organization/util/relation/ResourceSyncUtil.java b/src/com/engine/organization/util/relation/ResourceSyncUtil.java index e96b9e4f..2de6c23d 100644 --- a/src/com/engine/organization/util/relation/ResourceSyncUtil.java +++ b/src/com/engine/organization/util/relation/ResourceSyncUtil.java @@ -17,11 +17,15 @@ import com.engine.hrm.util.HrmWeakPasswordUtil; import com.engine.hrm.util.face.HrmFaceCheckManager; import com.engine.hrm.util.face.ValidateFieldManager; import com.engine.hrm.util.face.bean.CheckItemBean; +import com.engine.organization.mapper.hrmresource.HrmResourceMapper; +import com.engine.organization.util.db.MapperProxyFactory; import com.weaver.general.BaseBean; import ln.LN; +import org.apache.commons.lang3.StringUtils; import weaver.common.DateUtil; import weaver.conn.RecordSet; import weaver.conn.RecordSetTrans; +import weaver.crm.CrmShareBase; import weaver.file.Prop; import weaver.general.GCONST; import weaver.general.PasswordUtil; @@ -44,8 +48,11 @@ import weaver.license.PluginUserCheck; import weaver.rsa.security.RSA; import weaver.rtx.OrganisationCom; import weaver.rtx.OrganisationComRunnable; +import weaver.system.CusFormSetting; +import weaver.system.CusFormSettingComInfo; import weaver.system.SysRemindWorkflow; import weaver.systeminfo.SystemEnv; +import weaver.systeminfo.setting.HrmUserSettingComInfo; import java.util.ArrayList; import java.util.HashMap; @@ -65,7 +72,7 @@ public class ResourceSyncUtil { Map retmap = new HashMap<>(); RecordSet rs = new RecordSet(); - String sql = ""; + String sql; try { DepartmentComInfo departmentComInfo = new DepartmentComInfo(); boolean canEdit = HrmUserVarify.checkUserRight("HrmResourceEdit:Edit", user); @@ -96,7 +103,7 @@ public class ResourceSyncUtil { if (!loginid.equals("") && "0".equals(accounttype)) { sql = "select count(1) from hrmresourceallview where loginid='" + loginid + "' "; - rs.executeSql(sql); + rs.execute(sql); if (rs.next()) { if (rs.getInt(1) > 0) { retmap.put("status", "-1"); @@ -116,7 +123,7 @@ public class ResourceSyncUtil { ResourceComInfo ResourceComInfo = new ResourceComInfo(); - Map result = ResourceSyncUtil.addResourceBase(user, params); + Map result = addResourceBase(user, params); String addResourceBaseCode = result.get("status"); if ("-1".equals(addResourceBaseCode)) { @@ -148,8 +155,7 @@ public class ResourceSyncUtil { //判断是否开启了【禁止弱密码保存】 String weakPasswordDisable = Util.null2s(settings.getWeakPasswordDisable(), "0"); if (weakPasswordDisable.equals("1")) { - if (password.equals("")) {//密码为空的情况 - } else { + if (!password.equals("")) {//密码为空的情况 //判断是否为弱密码 HrmWeakPasswordUtil hrmWeakPasswordUtil = new HrmWeakPasswordUtil(); if (hrmWeakPasswordUtil.isWeakPsd(password)) { @@ -200,7 +206,7 @@ public class ResourceSyncUtil { } updateWorkInfo(String.valueOf(id), user, params); - rs.executeSql(sql); + rs.execute(sql); HrmFaceCheckManager.setUserPassowrd(id + "", password); HrmFaceCheckManager.sync(id + "", HrmFaceCheckManager.getOptUpdate(), "HrmResourceAddService_saveSimple_update", HrmFaceCheckManager.getOaResource()); @@ -224,6 +230,7 @@ public class ResourceSyncUtil { } } + retmap.put("id", id); retmap.put("status", "1"); } catch (Exception e) { new BaseBean().writeLog("保存新建人员simple错误:" + e); @@ -593,10 +600,374 @@ public class ResourceSyncUtil { return retmap; } + public static Map editResourceBase(User user, Map params) { + Map retMap = new HashMap<>(); + try { + boolean canEdit = HrmUserVarify.checkUserRight("HrmResourceEdit:Edit", user); + if (!canEdit) { + retMap.put("status", "-1"); + retMap.put("message", ""+weaver.systeminfo.SystemEnv.getHtmlLabelName(22620,weaver.general.ThreadVarLanguage.getLang())+""); + return retMap; + } + RecordSet rs = new RecordSet(); + DepartmentComInfo DepartmentComInfo = new DepartmentComInfo(); + ResourceComInfo ResourceComInfo = new ResourceComInfo(); + HrmServiceManager HrmServiceManager = new HrmServiceManager(); + CrmShareBase CrmShareBase = new CrmShareBase(); + + StringBuilder para; + String id = Util.null2String(params.get("id")); + if (id.length()==0) { + retMap.put("status", "-1"); + retMap.put("message", ""+weaver.systeminfo.SystemEnv.getHtmlLabelName(22620,weaver.general.ThreadVarLanguage.getLang())+""); + return retMap; + } + String workcode = Util.fromScreen3(Util.null2String(params.get("workcode")), user.getLanguage()); + String lastname = Util.fromScreen3(Util.null2String(params.get("lastname")), user.getLanguage()).trim(); + String sex = Util.fromScreen3((Util.null2String(params.get("sex"))), user.getLanguage()); + String resourceimageid = Util.null2String(params.get("resourceimageid")); + if(resourceimageid.length()>0) { + resourceimageid = "" + DocDownloadCheckUtil.getDownloadfileidstr(resourceimageid); + } + String resourceimageBase64 = Util.null2String(params.get("resourceimageBase64")); + if(resourceimageBase64.length()>0){ + resourceimageid = ServiceUtil.saveResourceImage(resourceimageBase64); + } + String oldresourceimageid = Util.null2String(params.get("oldresourceimage")); + if (resourceimageid.equals("")) resourceimageid = oldresourceimageid; + String departmentid = Util.fromScreen3(Util.null2String(params.get("departmentid")), user.getLanguage()); + String costcenterid = Util.fromScreen3(Util.null2String(params.get("costcenterid")), user.getLanguage()); + String jobtitle = Util.fromScreen3(Util.null2String(params.get("jobtitle")), user.getLanguage()); + String joblevel = Util.fromScreen3(Util.null2String(params.get("joblevel")), user.getLanguage()); + String jobactivitydesc = Util.fromScreen3(Util.null2String(params.get("jobactivitydesc")), user.getLanguage()); + String managerid = Util.fromScreen3(Util.null2String(params.get("managerid")), user.getLanguage()); + String assistantid = Util.fromScreen3(Util.null2String(params.get("assistantid")), user.getLanguage()); + String status = Util.fromScreen3(Util.null2String(params.get("status")), user.getLanguage()); + String locationid = Util.fromScreen3(Util.null2String(params.get("locationid")), user.getLanguage()); + String workroom = Util.fromScreen3(Util.null2String(params.get("workroom")), user.getLanguage()); + String telephone = Util.fromScreen3(Util.null2String(params.get("telephone")), user.getLanguage()); + String mobile = Util.fromScreen3(Util.null2String(params.get("mobile")), user.getLanguage()); + String mobileshowtype = Util.fromScreen3(Util.null2String(params.get("mobileshowtype")), user.getLanguage()); + String mobilecall = Util.fromScreen3(Util.null2String(params.get("mobilecall")), user.getLanguage()); + String fax = Util.fromScreen3(Util.null2String(params.get("fax")), user.getLanguage()); + String email = Util.fromScreen3(Util.null2String(params.get("email")), user.getLanguage()); + String dsporder = Util.fromScreen3(Util.null2String(params.get("dsporder")), user.getLanguage()); + String jobcall = Util.fromScreen3(Util.null2String(params.get("jobcall")), user.getLanguage()); + String systemlanguage = Util.fromScreen3(Util.null2String(params.get("systemlanguage")), user.getLanguage()); + if (systemlanguage.equals("") || systemlanguage.equals("0")) { + systemlanguage = "7"; + } + String accounttype = Util.fromScreen3(Util.null2String(params.get("accounttype")), user.getLanguage()); + String belongto = Util.fromScreen3(Util.null2String(params.get("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(); + 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.execute("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") && accounttype.equals("0")) { + oldbelongto = rs.getString("belongto"); + } + } + + if (accounttype.equals("1") && loginid.equalsIgnoreCase("")) { + rs.execute("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.execute(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"; + + if (StringUtils.isNotEmpty(workcode)) { + CodeRuleManager.getCodeRuleManager().checkReservedIfDel(RuleCodeType.USER.getValue(), workcode); + } + para = new StringBuilder("" + 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.toString()); + 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 mapShowSets = pc.getMapShowSets(); + String insertSql; + rs = new RecordSet(); + try { + String deletePriSql = " delete from userprivacysetting where userid= '" + id + "'"; + rs.execute(deletePriSql); + for (Map.Entry 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(params.get(fieldName + "showtype")); + insertSql = "insert into userprivacysetting (combinedid,userid,ptype,pvalue) values('" + tmpPK + "','" + id + "','" + fieldName + "','" + tmpPvalue + "')"; + rs.execute(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.execute(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 = new StringBuilder("" + id + separator + managerstr); + rst.executeProc("HrmResource_UpdateManagerStr", para.toString()); + 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.execute(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 = new StringBuilder(resourceid + separator + nowmanagerstr2); + rst.executeProc("HrmResource_UpdateManagerStr", para.toString()); + rst.commit(); + ResourceComInfo.updateResourceInfoCache(resourceid); //更新缓存 + } catch (Exception e) { + rst.rollback(); + e.printStackTrace(); + } + } + } + + String subcmpanyid1 = DepartmentComInfo.getSubcompanyid1(departmentid); + para = new StringBuilder("" + id + separator + subcmpanyid1); + rst = new RecordSetTrans(); + rst.setAutoCommit(false); + try { + rst.executeProc("HrmResource_UpdateSubCom", para.toString()); + 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; + CusFormSettingComInfo CusFormSettingComInfo = new weaver.system.CusFormSettingComInfo(); + CusFormSetting CusFormSetting = CusFormSettingComInfo.getCusFormSetting("hrm", "HrmResourceBase"); + if (CusFormSetting != null) { + if (CusFormSetting.getStatus() == 2) { + //自定义布局页面 + formdefined = true; + } + } + para = new StringBuilder("" + id); + for (int i = 0; i < 5; i++) { + int idx = i; + if (formdefined) idx++; + String datefield = Util.null2String(params.get("datefield" + idx)); + String numberfield = "" + Util.getDoubleValue(Util.null2String(params.get("numberfield" + idx)), 0); + String textfield = Util.null2String(params.get("textfield" + idx)); + String tinyintfield = "" + Util.getIntValue(Util.null2String(params.get("tinyintfield" + idx)), 0); + para.append(separator).append(datefield).append(separator).append(numberfield).append(separator).append(textfield).append(separator).append(tinyintfield); + } + rs.executeProc("HrmResourceDefine_Update", para.toString()); + + new Thread(new OrganisationComRunnable("user", "editbasicinfo", id + "-" + status)).start(); + // 改为自进行修正 + ResourceComInfo.updateResourceInfoCache(id); + + try { + //OA与第三方接口单条数据同步方法开始 + HrmServiceManager.SynInstantHrmResource(id, "2"); + //OA与第三方接口单条数据同步方法结束 + } catch (Exception e) { + new BaseBean().writeLog("OA与第三方接口单条数据同步失败" + e); + } + + + //处理次账号修改为主账号时,检查次账号所属 主账号的 其他设置是否需要修改 add by kzw QC159888 + try { + if (!oldbelongto.equals("")) { + HrmUserSettingComInfo userSetting = new HrmUserSettingComInfo(); + String belongtoshow = userSetting.getBelongtoshowByUserId(oldbelongto); + if (belongtoshow.equals("1")) { + rs.execute("select id from hrmresource where belongto = " + oldbelongto); + if (!rs.next()) { + String setId = userSetting.getId(oldbelongto); + rs.execute("update HrmUserSetting set belongtoshow=0 where id=" + setId); + userSetting.removeHrmUserSettingComInfoCache(); + } + } + } + } catch (Exception e) { + new BaseBean().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()); + + HrmFaceCheckManager.sync(id, HrmFaceCheckManager.getOptUpdate(), "hrm_e9_HrmResourceBaseService_editResourceBase", HrmFaceCheckManager.getOaResource()); + + retMap.put("status", "1"); + retMap.put("id", id); + } catch (Exception e) { + new BaseBean().writeLog(e); + retMap.put("status", "-1"); + retMap.put("message", ""+weaver.systeminfo.SystemEnv.getHtmlLabelName(22620,weaver.general.ThreadVarLanguage.getLang())+""); + } + return retMap; + } + private static void updateWorkInfo(String id, User user, Map params) { try { RecordSet rs = new RecordSet(); - String sql = ""; + String sql; String companystartdate = Util.fromScreen3(Util.null2String(params.get("companystartdate")), user.getLanguage()); String workstartdate = Util.fromScreen3(Util.null2String(params.get("workstartdate")), user.getLanguage()); @@ -612,4 +983,62 @@ public class ResourceSyncUtil { new BaseBean().writeLog(e); } } + + public static Map convertEcResourceParams(Map params){ + Map convertParams = new HashMap<>(); + String jclResourceId = Util.null2String(params.get("id")); + String ecResourceId = ""; + if(StringUtils.isNotBlank(jclResourceId)){ + ecResourceId = MapperProxyFactory.getProxy(HrmResourceMapper.class).getEcResourceId(jclResourceId); + } + convertParams.put("id",ecResourceId); + // 部门ID + convertParams.put("departmentid",params.get("ec_department")); + // EC岗位 + String jclJobId = Util.null2String(params.get("job_title")); + String ecJobId = "1"; + if (StringUtils.isNotBlank(jclJobId)) { + ecJobId = EcHrmRelationUtil.getEcJobId(Long.parseLong(jclJobId)); + } + convertParams.put("jobtitle",ecJobId); + + + convertParams.put("loginid",params.get("login_id")); + convertParams.put("accounttype",params.get("account_type")); + convertParams.put("password",params.get("pass_word")); + convertParams.put("seclevel",params.get("sec_level")); + convertParams.put("workstartdate",params.get("work_start_date")); + convertParams.put("companystartdate",params.get("company_start_date")); + convertParams.put("dsporder",params.get("show_order")); + convertParams.put("workcode",params.get("work_code")); + convertParams.put("lastname",params.get("last_name")); + convertParams.put("sex",params.get("sex")); + convertParams.put("resourceimageid",params.get("resource_image_id")); + convertParams.put("joblevel",params.get("job_level")); + convertParams.put("jobactivitydesc",params.get("job_activity_desc")); + convertParams.put("managerid",params.get("manager_id")); + convertParams.put("assistantid",params.get("assistant_id")); + convertParams.put("status",params.get("status")); + convertParams.put("locationid",params.get("location_id")); + convertParams.put("workroom",params.get("workroom")); + convertParams.put("telephone",params.get("telephone")); + convertParams.put("mobile",params.get("mobile")); + convertParams.put("mobilecall",params.get("mobile_call")); + convertParams.put("fax",params.get("fax")); + convertParams.put("jobcall",params.get("job_call")); + convertParams.put("email",params.get("email")); + convertParams.put("systemlanguage",params.get("system_language")); + convertParams.put("belongto",params.get("belong_to")); + + convertParams.put("mobileshowtype",""); + convertParams.put("costcenterid",""); + convertParams.put("cmd",""); + convertParams.put("rcId",""); + convertParams.put("departmentvirtualids",""); + // 更新EC人员用到参数 + convertParams.put("editcontact",""); + convertParams.put("resourceimageBase64",""); + convertParams.put("oldresourceimage",""); + return convertParams; + } } diff --git a/src/weaver/interfaces/organization/action/StaffChangeAction.java b/src/weaver/interfaces/organization/action/StaffChangeAction.java index 742d98b9..a181ed8f 100644 --- a/src/weaver/interfaces/organization/action/StaffChangeAction.java +++ b/src/weaver/interfaces/organization/action/StaffChangeAction.java @@ -40,7 +40,8 @@ public class StaffChangeAction implements Action { @Override public String execute(RequestInfo requestInfo) { if (StringUtils.isBlank(changeType)) { - return "编制调整失败,未配置对应调整方式"; + requestInfo.getRequestManager().setMessagecontent("编制调整失败,未配置对应调整方式!"); + return FAILURE_AND_CONTINUE; } Integer requestId = Integer.parseInt(requestInfo.getRequestid()); @@ -53,9 +54,9 @@ public class StaffChangeAction implements Action { MainTableInfo mainTableInfo = requestInfo.getMainTableInfo(); Property[] property = mainTableInfo.getProperty(); // 取表单数据赋值 - for (int i = 0; i < property.length; i++) { - String name = property[i].getName(); - String value = Util.null2String(property[i].getValue()); + for (Property item : property) { + String name = item.getName(); + String value = Util.null2String(item.getValue()); if (StringUtils.isNotBlank(name) && StringUtils.isNotBlank(value)) { switch (name) { case "fb": // 分部 @@ -77,10 +78,12 @@ public class StaffChangeAction implements Action { } if (null == changeNum) { - return "编制变动数必填"; + requestInfo.getRequestManager().setMessagecontent("编制变动数必填!"); + return FAILURE_AND_CONTINUE; } if (changeNum < 0) { - return "编制变动数需大于0"; + requestInfo.getRequestManager().setMessagecontent("编制变动数需大于0!"); + return FAILURE_AND_CONTINUE; } // 根据分部、部门、岗位 定位具体编制信息,按照更新时间倒序,取最新的一条数据 @@ -93,32 +96,37 @@ public class StaffChangeAction implements Action { switch (changeType) { case "3":// 冻结,比如招聘中,面试中,入职办理中等 if (staffPO.getFreezeNum() + changeNum > staffNum) { - return "冻结数不能大于编制数"; + requestInfo.getRequestManager().setMessagecontent("冻结数不能大于编制数!"); + return FAILURE_AND_CONTINUE; } // 设置冻结数 staffPO.setFreezeNum(staffPO.getFreezeNum() + changeNum); break; case "4":// 冻结释放,比如面试不通过,offer不接受等 if (changeNum > staffPO.getFreezeNum()) { - return "调整不能大于冻结数"; + requestInfo.getRequestManager().setMessagecontent("冻结释放数不能大于冻结数!"); + return FAILURE_AND_CONTINUE; } staffPO.setFreezeNum(staffPO.getFreezeNum() - changeNum); break; case "5":// 扣减,比如正式入职,调入等 staffPO.setPermanentNum(staffPO.getPermanentNum() + changeNum); if (staffPO.getPermanentNum() > staffPO.getStaffNum()) { - return "在编数不能大于编制数"; + requestInfo.getRequestManager().setMessagecontent("在编数不能大于编制数!"); + return FAILURE_AND_CONTINUE; } break; case "6":// 减员释放,比如离职、调出等 staffPO.setPermanentNum(staffPO.getPermanentNum() - changeNum); if (staffPO.getPermanentNum() < 0) { - return "调整数量不可大于在编数"; + requestInfo.getRequestManager().setMessagecontent("调整数量不可大于在编数!"); + return FAILURE_AND_CONTINUE; } break; case "1":// 编制 case "2":// 变更 default: + requestInfo.getRequestManager().setMessagecontent("流程操作事件changeType配置错误,请联系管理员!"); return FAILURE_AND_CONTINUE; } @@ -142,7 +150,7 @@ public class StaffChangeAction implements Action { // new Thread(new StaffTriggerRunnable(staffPO)).start(); return SUCCESS; } - + requestInfo.getRequestManager().setMessagecontent("未找到对应维度的编制信息!"); return FAILURE_AND_CONTINUE; }