From f428dff5a0dec4af5eeb44f8c947d5030ae89dc4 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Fri, 16 Dec 2022 13:53:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E8=81=8C=E7=AD=89=E8=81=8C?= =?UTF-8?q?=E7=BA=A7=E5=AD=97=E6=AE=B5=EF=BC=8C=E8=A1=A5=E5=85=85=E4=BA=BA?= =?UTF-8?q?=E5=91=98=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/service/JclOrgService.java | 16 ++++ .../service/impl/JclOrgServiceImpl.java | 78 +++++++++++++++++++ .../organization/web/JclOrgController.java | 15 ++++ .../organization/wrapper/JclOrgWrapper.java | 11 +++ 4 files changed, 120 insertions(+) create mode 100644 src/com/engine/organization/service/JclOrgService.java create mode 100644 src/com/engine/organization/service/impl/JclOrgServiceImpl.java diff --git a/src/com/engine/organization/service/JclOrgService.java b/src/com/engine/organization/service/JclOrgService.java new file mode 100644 index 00000000..0eb83776 --- /dev/null +++ b/src/com/engine/organization/service/JclOrgService.java @@ -0,0 +1,16 @@ +package com.engine.organization.service; + +/** + * @author:dxfeng + * @createTime: 2022/12/16 + * @version: 1.0 + */ +public interface JclOrgService { + + /** + * 根据职等职级字段,补充人员信息 + * + * @param userId 人员ID + */ + void supplementResourceInfo(Integer userId); +} diff --git a/src/com/engine/organization/service/impl/JclOrgServiceImpl.java b/src/com/engine/organization/service/impl/JclOrgServiceImpl.java new file mode 100644 index 00000000..03626b1e --- /dev/null +++ b/src/com/engine/organization/service/impl/JclOrgServiceImpl.java @@ -0,0 +1,78 @@ +package com.engine.organization.service.impl; + +import com.engine.core.impl.Service; +import com.engine.organization.service.JclOrgService; +import org.apache.commons.lang3.StringUtils; +import weaver.conn.RecordSet; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author:dxfeng + * @createTime: 2022/12/16 + * @version: 1.0 + */ +public class JclOrgServiceImpl extends Service implements JclOrgService { + + @Override + public void supplementResourceInfo(Integer userId) { + // 职等职级树 + String zdzjFieldName; + // 等级方案 + String schemeFieldName; + // 职等 + String levelFieldName; + // 职级 + String gradeFieldName; + // 岗位序列 + String sequenceFieldName; + Map fieldNameMap = new HashMap<>(); + // 查询职等职级字段 + RecordSet rs = new RecordSet(); + rs.execute("select fieldlabel ,fieldname from jcl_org_field"); + while (rs.next()) { + fieldNameMap.put(rs.getString("fieldlabel"), rs.getString("fieldname")); + } + zdzjFieldName = fieldNameMap.get("职等职级"); + schemeFieldName = fieldNameMap.get("等级方案"); + levelFieldName = fieldNameMap.get("职等"); + gradeFieldName = fieldNameMap.get("职级"); + sequenceFieldName = fieldNameMap.get("岗位序列"); + // 所有字段信息存在,执行业务逻辑 + if (StringUtils.isNoneBlank(zdzjFieldName, schemeFieldName, levelFieldName, gradeFieldName, sequenceFieldName)) { + String zdzjFieldValue = ""; + String schemeFieldValue = ""; + String levelFieldValue = ""; + String gradeFieldValue = ""; + String sequenceFieldValue = ""; + String sql = "select " + zdzjFieldName + " from cus_fielddata where scope='HrmCustomFieldByInfoType' and scopeid=3 and id= " + userId; + rs.execute(sql); + if (rs.next()) { + zdzjFieldValue = rs.getString(zdzjFieldName); + } + sql = "select xlid, zjid, zdid from v_jcl_zdzjs where fid='" + zdzjFieldValue.substring(zdzjFieldValue.indexOf("_") + 1) + "'"; + rs.execute(sql); + if (rs.next()) { + levelFieldValue = rs.getString("zjid"); + gradeFieldValue = rs.getString("zdid"); + sequenceFieldValue = rs.getString("xlid"); + } + sql = "select scheme_id from jcl_org_sequence where id='" + sequenceFieldValue + "'"; + rs.execute(sql); + if (rs.next()) { + schemeFieldValue = rs.getString("scheme_id"); + } + + // 更新字段信息 + sql = "update cus_fielddata set " + sequenceFieldName + " = '" + sequenceFieldValue + "' where scope='HrmCustomFieldByInfoType' and scopeid=3 and id=" + userId; + rs.execute(sql); + sql = "update cus_fielddata set " + schemeFieldName + " = '" + schemeFieldValue + "' where scope='HrmCustomFieldByInfoType' and scopeid=3 and id=" + userId; + rs.execute(sql); + sql = "update cus_fielddata set " + levelFieldName + " = '" + levelFieldValue + "' where scope='HrmCustomFieldByInfoType' and scopeid=3 and id=" + userId; + rs.execute(sql); + sql = "update cus_fielddata set " + gradeFieldName + " = '" + gradeFieldValue + "' where scope='HrmCustomFieldByInfoType' and scopeid=3 and id=" + userId; + rs.execute(sql); + } + } +} diff --git a/src/com/engine/organization/web/JclOrgController.java b/src/com/engine/organization/web/JclOrgController.java index 918350f0..ff89c56f 100644 --- a/src/com/engine/organization/web/JclOrgController.java +++ b/src/com/engine/organization/web/JclOrgController.java @@ -72,4 +72,19 @@ public class JclOrgController { return ReturnResult.exceptionHandle(e); } } + + @GET + @Path("/supplementResourceInfo") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult supplementResourceInfo(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + String id = Util.null2String(map.get("id")); + getJclOrgWrapper(user).supplementResourceInfo(Integer.parseInt(id)); + return ReturnResult.successed(); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e); + } + } } diff --git a/src/com/engine/organization/wrapper/JclOrgWrapper.java b/src/com/engine/organization/wrapper/JclOrgWrapper.java index b751d983..38c83bc0 100644 --- a/src/com/engine/organization/wrapper/JclOrgWrapper.java +++ b/src/com/engine/organization/wrapper/JclOrgWrapper.java @@ -1,7 +1,11 @@ package com.engine.organization.wrapper; +import com.engine.common.util.ServiceUtil; +import com.engine.organization.service.JclOrgService; +import com.engine.organization.service.impl.JclOrgServiceImpl; import com.engine.organization.util.OrganizationWrapper; import org.apache.commons.lang3.StringUtils; +import weaver.hrm.User; /** * @author:dxfeng @@ -9,6 +13,9 @@ import org.apache.commons.lang3.StringUtils; * @version: 1.0 */ public class JclOrgWrapper extends OrganizationWrapper { + private JclOrgService getJclOrgService(User user) { + return ServiceUtil.getService(JclOrgServiceImpl.class, user); + } public String getEcOrgId(String jclId, String type) { @@ -54,4 +61,8 @@ public class JclOrgWrapper extends OrganizationWrapper { public void syncCusFieldData(String id) { // CusFieldDataTrigger.run(StringUtils.isNotBlank(id) ? Long.parseLong(id) : null); } + + public void supplementResourceInfo(Integer userId) { + getJclOrgService(user).supplementResourceInfo(userId); + } }