diff --git a/.gitignore b/.gitignore index 2e1ef9d..2b3ddc1 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,5 @@ target/ /src/META-INF /log + +dxfeng.jsp \ No newline at end of file diff --git a/src/com/engine/hzzx/conn/DataUtil.java b/src/com/engine/hzzx/conn/DataUtil.java index 5f1797d..a187dc3 100644 --- a/src/com/engine/hzzx/conn/DataUtil.java +++ b/src/com/engine/hzzx/conn/DataUtil.java @@ -128,4 +128,41 @@ public class DataUtil { } return -1; } + + /** + * 获取表单下拉框展示文本 + * + * @param formId 表单ID + * @param fieldName 字段明湖曾 + * @param value 下拉框值 + * @return + */ + public static String getSelectName(String formId, String fieldName, String value) { + String cancelReason = ""; + RecordSet rs = new RecordSet(); + rs.executeQuery("select selectname from workflow_selectitem where fieldid =( select id from workflow_billfield where billid = ? and fieldname = ? ) and selectvalue = ?", formId, fieldName, value); + if (rs.next()) { + cancelReason = rs.getString("selectname"); + } + return cancelReason; + } + + /** + * 获取表单下拉框值 + * + * @param formId 表单ID + * @param fieldName 字段明湖曾 + * @param selectName 下拉框展示内容 + * @return + */ + public static String getSelectValue(String formId, String fieldName, String selectName) { + String selectValue = ""; + RecordSet rs = new RecordSet(); + rs.executeQuery("select selectvalue from workflow_selectitem where fieldid =( select id from workflow_billfield where billid = ? and fieldname = ? ) and selectname = ?", formId, fieldName, selectName); + if (rs.next()) { + selectValue = rs.getString("selectvalue"); + } + return selectValue; + } + } diff --git a/src/com/engine/hzzx/entity/Employee.java b/src/com/engine/hzzx/entity/Employee.java index 3ce9a4b..2614781 100644 --- a/src/com/engine/hzzx/entity/Employee.java +++ b/src/com/engine/hzzx/entity/Employee.java @@ -15,30 +15,30 @@ public class Employee { private String lastSchool; private String modifiedTime; private String nation; - private long userID; + private Long userID; private String major; private String applicantIdV6; private String createdTime; - private int applicantId; + private Integer applicantId; private Date certificateValidityTerm; - private int nationality; - private int sourceType; + private Integer nationality; + private Integer sourceType; private String name; private boolean stdIsDeleted; - private int gender; + private Integer gender; private String iDType; private String backupMail; private String certificateStartDate; private String businessModifiedTime; - private long businessModifiedBy; + private Long businessModifiedBy; private String _Name; private String educationLevel; - private long modifiedBy; + private Long modifiedBy; private String email; private String objectId; private String politicalStatus; - private long createdBy; - private int age; + private Long createdBy; + private Integer age; private String departmentCode; private String positionCode; diff --git a/src/com/engine/hzzx/entity/EmployeeTrans.java b/src/com/engine/hzzx/entity/EmployeeTrans.java new file mode 100644 index 0000000..f303b89 --- /dev/null +++ b/src/com/engine/hzzx/entity/EmployeeTrans.java @@ -0,0 +1,121 @@ +package com.engine.hzzx.entity; + +import org.apache.commons.lang.StringUtils; +import weaver.conn.RecordSet; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author:dxfeng + * @createTime: 2025/03/17 + * @version: 1.0 + */ +public class EmployeeTrans { + private static final Map POLITICAL_MAP; + + static { + POLITICAL_MAP = new HashMap<>(); + POLITICAL_MAP.put("4", "群众"); + POLITICAL_MAP.put("1", "中共党员"); + POLITICAL_MAP.put("6", "中共预备党员"); + POLITICAL_MAP.put("2", "共青团员"); + POLITICAL_MAP.put("7", "民革党员"); + POLITICAL_MAP.put("8", "民盟盟员"); + POLITICAL_MAP.put("9", "民建会员"); + POLITICAL_MAP.put("10", "民进会员"); + POLITICAL_MAP.put("11", "农工党党员"); + POLITICAL_MAP.put("13", "九三学社社员"); + POLITICAL_MAP.put("14", "台盟盟员"); + POLITICAL_MAP.put("15", "无党派人士"); + POLITICAL_MAP.put("5", "其他"); + } + + public static String getPoliticalStr(String politicalStatus) { + return POLITICAL_MAP.get(politicalStatus); + } + + public static String getDepartmentId(String departmentCode) { + String departmentId = ""; + RecordSet rs = new RecordSet(); + if (StringUtils.isBlank(departmentCode)) { + return departmentId; + } + rs.executeQuery("select id from hrmdepartment where departmentcode = ?", departmentCode); + if (rs.next()) { + departmentId = rs.getString("id"); + } + return departmentId; + } + + + public static String getJobtitleId(String jobtitleCode) { + String jobtitleId = ""; + RecordSet rs = new RecordSet(); + if (StringUtils.isBlank(jobtitleCode)) { + return jobtitleId; + } + rs.executeQuery("select id from hrmjobtitles where jobtitlecode = ?", jobtitleCode); + if (rs.next()) { + jobtitleId = rs.getString("id"); + } + return jobtitleId; + } + + public static String getEducationLevelId(String educationLevel) { + if (StringUtils.isBlank(educationLevel)) { + return ""; + } + String educationLevelId = ""; + switch (educationLevel) { + case "1": + // 本科 + educationLevelId = "7"; + break; + case "2": + // 硕士研究生 + educationLevelId = "8"; + break; + case "3": + // 高中 + educationLevelId = "3"; + break; + case "4": + // 中技(中专/技校/职高) + educationLevelId = "4"; + break; + case "5": + // 大专 + educationLevelId = "6"; + break; + case "6": + // MBA + educationLevelId = "10"; + break; + case "7": + // 博士研究生 + educationLevelId = "9"; + break; + case "8": + // 初中 + educationLevelId = "2"; + break; + case "9": + // 小学 + case "10": + // 保密 + case "130": + // MPA + educationLevelId = "1"; + break; + case "120": + // EMBA + educationLevelId = "11"; + break; + default: + break; + } + return educationLevelId; + } + +} diff --git a/src/weaver/interfaces/hzzx/action/TrainingApplicationAction.java b/src/weaver/interfaces/hzzx/action/TrainingApplicationAction.java index ad75277..4e24e5e 100644 --- a/src/weaver/interfaces/hzzx/action/TrainingApplicationAction.java +++ b/src/weaver/interfaces/hzzx/action/TrainingApplicationAction.java @@ -81,7 +81,7 @@ public class TrainingApplicationAction implements Action { insertData.put("modeuuid", uuid); int formModeId = DataUtil.getModeIdByTableName(MODE_TABLE_NAME); insertData.put("formmodeid", String.valueOf(formModeId)); - DataUtil.buildModeInsertFields(mainDataMap, operateId); + DataUtil.buildModeInsertFields(insertData, operateId); insertData.put("pxrs", mainDataMap.get("pxrs")); insertData.put("pxdx", mainDataMap.get("pxdx")); diff --git a/src/weaver/interfaces/hzzx/cronjob/SyncBeiSenInfoJob.java b/src/weaver/interfaces/hzzx/cronjob/SyncBeiSenInfoJob.java index a2ae238..3f8f6f0 100644 --- a/src/weaver/interfaces/hzzx/cronjob/SyncBeiSenInfoJob.java +++ b/src/weaver/interfaces/hzzx/cronjob/SyncBeiSenInfoJob.java @@ -3,17 +3,19 @@ package weaver.interfaces.hzzx.cronjob; import cn.hutool.http.HttpRequest; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.engine.hzzx.conn.DataUtil; import com.engine.hzzx.entity.Department; import com.engine.hzzx.entity.Employee; +import com.engine.hzzx.entity.EmployeeTrans; import com.engine.hzzx.entity.Position; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; import weaver.common.DateUtil; import weaver.conn.RecordSet; +import weaver.general.Util; import weaver.interfaces.schedule.BaseCronJob; -import java.util.ArrayList; -import java.util.List; +import java.util.*; /** * @author:dxfeng @@ -29,6 +31,11 @@ public class SyncBeiSenInfoJob extends BaseCronJob { private static final String APP_KEY = "EE7D602509E04A59AE5DEFF0841F6A1C"; private static final String APP_SECRET = "F5229D9D83BF45DEBFA1EF8DAC13C0339D0074419CFE45FA8BAC2A0B9D170798"; + private static final String EMPLOYEE_TABLE = "uf_sxszqbssjtz"; + private static final String INTERNSHIP_TABLE = "uf_ybygzqbssjtz"; + + private static final String OPERATE_ID = "1"; + RecordSet rs = new RecordSet(); @@ -115,9 +122,11 @@ public class SyncBeiSenInfoJob extends BaseCronJob { Employee employeeObject = JSONObject.parseObject(employeeInfo.toJSONString(), Employee.class); if (null != department) { + // 设置部门编号 employeeObject.setDepartmentCode(department.getCode()); } if (null != position) { + // 设置岗位编号 employeeObject.setPositionCode(position.getCode()); } employeeList.add(employeeObject); @@ -226,4 +235,125 @@ public class SyncBeiSenInfoJob extends BaseCronJob { return position; } + + + /** + * 插入一般员工数据 + * + * @param employee + */ + private void insertEmployee(Employee employee) { + Map insertData = new HashMap<>(); + // 判断是否存在 + String objectId = employee.getObjectId(); + String sql = "select id from " + EMPLOYEE_TABLE + " where modeuuid = ?"; + if (StringUtils.isNotBlank(objectId)) { + rs.executeQuery(sql, objectId); + if (rs.next()) { + rs.writeLog("查询员工信息,objectId==" + objectId + ",oaId==" + rs.getString("id")); + // 重复数据不做插入操作,直接返回 + return; + } + } else { + objectId = UUID.randomUUID().toString(); + } + // 构建插入数据 + insertData.put("xm", employee.getName()); + insertData.put("xb", Util.null2String(employee.getGender())); + insertData.put("nl", String.valueOf(employee.getAge())); + // 政治面貌 + String politicalStr = EmployeeTrans.getPoliticalStr(employee.getPoliticalStatus()); + if (StringUtils.isNotBlank(politicalStr)) { + insertData.put("zzmm", DataUtil.getSelectValue(EMPLOYEE_TABLE, "zzmm", politicalStr)); + } + // 部门 + String departmentId = EmployeeTrans.getDepartmentId(employee.getDepartmentCode()); + if (StringUtils.isNotBlank(departmentId)) { + insertData.put("ypbm", departmentId); + } + // 职位 + String jobtitleId = EmployeeTrans.getJobtitleId(employee.getPositionCode()); + if (StringUtils.isNotBlank(jobtitleId)) { + insertData.put("ypgw", jobtitleId); + } + // 学历 + String educationLevelId = EmployeeTrans.getEducationLevelId(employee.getEducationLevel()); + if (StringUtils.isNotBlank(educationLevelId)) { + insertData.put("xl", educationLevelId); + } + // 学校 + // TODO insertData.put("xx", employee.getLastSchool()); + // 专业 + insertData.put("zy", employee.getMajor()); + // 工作年限 + + + // 构建建模基本数据 + insertData.put("modeuuid", objectId); + int formModeId = DataUtil.getModeIdByTableName(EMPLOYEE_TABLE); + insertData.put("formmodeid", String.valueOf(formModeId)); + DataUtil.buildModeInsertFields(insertData, OPERATE_ID); + + // 插入数据,刷新权限 + DataUtil.insertData(insertData, EMPLOYEE_TABLE); + DataUtil.refreshRight(objectId, EMPLOYEE_TABLE, formModeId, OPERATE_ID); + } + + private void insertInternshipEmployee(Employee employee) { + Map insertData = new HashMap<>(); + // 判断是否存在 + String objectId = employee.getObjectId(); + String sql = "select id from " + INTERNSHIP_TABLE + " where modeuuid = ?"; + if (StringUtils.isNotBlank(objectId)) { + rs.executeQuery(sql, objectId); + if (rs.next()) { + rs.writeLog("查询实习生信息,objectId==" + objectId + ",oaId==" + rs.getString("id")); + // 重复数据不做插入操作,直接返回 + return; + } + } else { + objectId = UUID.randomUUID().toString(); + } + // 构建插入数据 + insertData.put("xm", employee.getName()); + insertData.put("xb", Util.null2String(employee.getGender())); + insertData.put("nl", String.valueOf(employee.getAge())); + // 政治面貌 + String politicalStr = EmployeeTrans.getPoliticalStr(employee.getPoliticalStatus()); + if (StringUtils.isNotBlank(politicalStr)) { + insertData.put("zzmm", DataUtil.getSelectValue(INTERNSHIP_TABLE, "zzmm", politicalStr)); + } + // 部门 + String departmentId = EmployeeTrans.getDepartmentId(employee.getDepartmentCode()); + if (StringUtils.isNotBlank(departmentId)) { + insertData.put("ypbm", departmentId); + } + // 职位 + String jobtitleId = EmployeeTrans.getJobtitleId(employee.getPositionCode()); + if (StringUtils.isNotBlank(jobtitleId)) { + insertData.put("ypgw", jobtitleId); + } + // 学历 + String educationLevelId = EmployeeTrans.getEducationLevelId(employee.getEducationLevel()); + if (StringUtils.isNotBlank(educationLevelId)) { + insertData.put("xl", educationLevelId); + } + // 学校 + // TODO insertData.put("xx", employee.getLastSchool()); + // 专业 + insertData.put("zy", employee.getMajor()); + // 工作年限 + + + // 构建建模基本数据 + insertData.put("modeuuid", objectId); + int formModeId = DataUtil.getModeIdByTableName(INTERNSHIP_TABLE); + insertData.put("formmodeid", String.valueOf(formModeId)); + DataUtil.buildModeInsertFields(insertData, OPERATE_ID); + + // 插入数据,刷新权限 + DataUtil.insertData(insertData, INTERNSHIP_TABLE); + DataUtil.refreshRight(objectId, INTERNSHIP_TABLE, formModeId, OPERATE_ID); + } + }