diff --git a/src/com/engine/mzg/conn/RecruitCommon.java b/src/com/engine/mzg/conn/RecruitCommon.java index 03335bd..87aace8 100644 --- a/src/com/engine/mzg/conn/RecruitCommon.java +++ b/src/com/engine/mzg/conn/RecruitCommon.java @@ -1,11 +1,18 @@ package com.engine.mzg.conn; +import com.engine.mzg.entity.SyncTableField; +import com.engine.mzg.exception.CustomizeRunTimeException; import com.engine.mzg.util.RecruitUtil; import com.weaver.formmodel.data.model.Formfield; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; +import weaver.formmode.IgnoreCaseHashMap; +import java.util.ArrayList; +import java.util.List; import java.util.Map; +import java.util.UUID; /** * @author:dxfeng @@ -39,11 +46,11 @@ public class RecruitCommon { public static String getSettingValue(String key, Map fieldMap, Map paramsData) { RecordSet rs = new RecordSet(); rs.executeQuery("select pzz from uf_recruit_setting where pzx = ? ", key); - String content= ""; + String content = ""; if (rs.next()) { content = rs.getString("pzz"); } - if(StringUtils.isNotBlank(content)){ + if (StringUtils.isNotBlank(content)) { content = RecruitUtil.getMsgReplaceStr(content, fieldMap, paramsData); } return content; @@ -99,5 +106,122 @@ public class RecruitCommon { return cancelReason; } + public static String insertTablesData(String targetTable, String sourceTable, String sourceId, String relatedField, int creator) { + RecordSet rs = new RecordSet(); + String mainId = ""; + rs.executeQuery("select * from uf_recruit_table where target_table = ? and source_table =? ", targetTable, sourceTable); + String mainTableId = ""; + if (rs.next()) { + mainTableId = rs.getString("id"); + } + if (StringUtils.isNotBlank(mainTableId)) { + // 查询配置的字段,更新或者插入数据 + List fields = getSyncTableFields(mainTableId); + rs.executeQuery("select * from " + sourceTable + " where id = ? ", sourceId); + IgnoreCaseHashMap buildDataMap = new IgnoreCaseHashMap<>(); + if (rs.next()) { + for (SyncTableField field : fields) { + String value = RecruitUtil.parseBlankToNull(rs.getString(field.getSourceField())); + if (StringUtils.isNotBlank(value)) { + buildDataMap.put(field.getTargetField(), value); + } + } + // 新增 + String uuid = UUID.randomUUID().toString(); + buildDataMap.put("modeuuid", uuid); + int formModeId = RecruitCommon.getModeIdByTableName(targetTable); + buildDataMap.put("formmodeid", formModeId); + // 构建建模表基本数据 + if (StringUtils.isNotBlank(relatedField)) { + // 设置关联字段 + buildDataMap.put(relatedField, sourceId); + } + RecruitRecordSet.buildModeInsertFields(buildDataMap, creator); + RecruitRecordSet.insertData(buildDataMap, targetTable); + mainId = String.valueOf(RecruitRecordSet.refreshRight(uuid, targetTable, formModeId, creator)); + + } + } + return mainId; + } + + public static void updateTablesData(String targetTable, String sourceTable, String sourceId, String targetId, String relatedField, int creator) { + RecordSet rs = new RecordSet(); + rs.executeQuery("select * from uf_recruit_table where target_table = ? and source_table =? ", targetTable, sourceTable); + String mainTableId = ""; + if (rs.next()) { + mainTableId = rs.getString("id"); + } + if (StringUtils.isNotBlank(mainTableId)) { + // 查询配置的字段,更新或者插入数据 + List fields = getSyncTableFields(mainTableId); + rs.executeQuery("select * from " + sourceTable + " where id = ? ", sourceId); + IgnoreCaseHashMap buildDataMap = new IgnoreCaseHashMap<>(); + if (rs.next()) { + for (SyncTableField field : fields) { + String value = RecruitUtil.parseBlankToNull(rs.getString(field.getSourceField())); + if (StringUtils.isNotBlank(value)) { + buildDataMap.put(field.getTargetField(), value); + } + } + if (StringUtils.isNotBlank(relatedField)) { + // 设置关联字段 + buildDataMap.put(relatedField, sourceId); + } + // 更新 + buildDataMap.put("id", targetId); + RecruitRecordSet.buildModeUpdateFields(buildDataMap, creator); + RecruitRecordSet.updateDataById(buildDataMap, targetTable); + } + } + } + + private static void syncDetailTablesData(String targetTable, String sourceTable, String sourceId, RecordSet rs, String mainId) { + IgnoreCaseHashMap buildDataMap; + String mainTableId; + rs.executeQuery("select * from uf_recruit_table where source_table like '" + sourceTable + "_dt%' and target_table like '" + targetTable + "_dt%' "); + while (rs.next()) { + mainTableId = rs.getString("id"); + String sourceDetailTable = rs.getString("source_table"); + String targetDetailTable = rs.getString("target_table"); + List syncTableFields = getSyncTableFields(mainTableId); + + // 删除明细表数据 + RecordSet recordSet = new RecordSet(); + recordSet.executeUpdate(" delete from " + targetDetailTable + " where mainid = ?", mainId); + recordSet.executeQuery("select * from " + sourceDetailTable + " where mainid = ? ", sourceId); + while (recordSet.next()) { + buildDataMap = new IgnoreCaseHashMap<>(); + buildDataMap.put("mainid", mainId); + for (SyncTableField field : syncTableFields) { + String value = RecruitUtil.parseBlankToNull(recordSet.getString(field.getSourceField())); + if (StringUtils.isNotBlank(value)) { + buildDataMap.put(field.getTargetField(), value); + } + } + RecruitRecordSet.insertData(buildDataMap, targetDetailTable); + + } + } + } + + /** + * 获取配置的需要同步的字段集合 + * + * @param mainTableId + * @return + */ + public static List getSyncTableFields(String mainTableId) { + RecordSet rs = new RecordSet(); + rs.executeQuery("select * from uf_recruit_table_dt1 where mainid = ? ", mainTableId); + List fields = new ArrayList<>(); + while (rs.next()) { + fields.add(SyncTableField.builder().sourceField(rs.getString("source_field")).targetField(rs.getString("target_field")).build()); + } + if (CollectionUtils.isEmpty(fields)) { + throw new CustomizeRunTimeException("数据同步配置异常,请检查配置"); + } + return fields; + } } diff --git a/src/com/engine/mzg/service/impl/RecruitMobileServiceImpl.java b/src/com/engine/mzg/service/impl/RecruitMobileServiceImpl.java index 66a8625..5322363 100644 --- a/src/com/engine/mzg/service/impl/RecruitMobileServiceImpl.java +++ b/src/com/engine/mzg/service/impl/RecruitMobileServiceImpl.java @@ -7,14 +7,16 @@ import com.engine.mzg.entity.SyncTableField; import com.engine.mzg.exception.CustomizeRunTimeException; import com.engine.mzg.service.RecruitMobileService; import com.engine.mzg.util.RecruitUtil; -import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.formmode.IgnoreCaseHashMap; import weaver.formmode.mzg.modeexpand.disc.AddDiscExpand; import weaver.general.Util; -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; import java.util.regex.Matcher; /** @@ -86,7 +88,7 @@ public class RecruitMobileServiceImpl extends Service implements RecruitMobileSe } if (StringUtils.isNotBlank(mainTableId)) { // 查询配置的字段,更新或者插入数据 - List fields = getSyncTableFields(mainTableId); + List fields = RecruitCommon.getSyncTableFields(mainTableId); rs.executeQuery("select * from " + sourceTable + " where id = ? ", billId); IgnoreCaseHashMap buildDataMap = new IgnoreCaseHashMap<>(); if (rs.next()) { @@ -119,6 +121,7 @@ public class RecruitMobileServiceImpl extends Service implements RecruitMobileSe } else { // 更新 buildDataMap.put("id", msId); + RecruitRecordSet.buildModeUpdateFields(buildDataMap, 1); RecruitRecordSet.updateDataById(buildDataMap, targetTable); } } @@ -129,7 +132,7 @@ public class RecruitMobileServiceImpl extends Service implements RecruitMobileSe mainTableId = rs.getString("id"); String sourceDetailTable = rs.getString("source_table"); String targetDetailTable = rs.getString("target_table"); - List syncTableFields = getSyncTableFields(mainTableId); + List syncTableFields = RecruitCommon.getSyncTableFields(mainTableId); // 删除明细表数据 RecordSet recordSet = new RecordSet(); @@ -215,24 +218,7 @@ public class RecruitMobileServiceImpl extends Service implements RecruitMobileSe return returnMap; } - /** - * 获取配置的需要同步的字段集合 - * - * @param mainTableId - * @return - */ - private static List getSyncTableFields(String mainTableId) { - RecordSet rs = new RecordSet(); - rs.executeQuery("select * from uf_recruit_table_dt1 where mainid = ? ", mainTableId); - List fields = new ArrayList<>(); - while (rs.next()) { - fields.add(SyncTableField.builder().sourceField(rs.getString("source_field")).targetField(rs.getString("target_field")).build()); - } - if (CollectionUtils.isEmpty(fields)) { - throw new CustomizeRunTimeException("数据同步配置异常,请检查配置"); - } - return fields; - } + /** * 生成待归档数据 @@ -260,7 +246,7 @@ public class RecruitMobileServiceImpl extends Service implements RecruitMobileSe } if (StringUtils.isNotBlank(mainTableId)) { // 查询配置的字段,更新或者插入数据 - List fields = getSyncTableFields(mainTableId); + List fields = RecruitCommon.getSyncTableFields(mainTableId); rs.executeQuery("select * from " + sourceTable + " where id = ? ", msId); IgnoreCaseHashMap buildDataMap = new IgnoreCaseHashMap<>(); if (rs.next()) { @@ -291,7 +277,7 @@ public class RecruitMobileServiceImpl extends Service implements RecruitMobileSe mainTableId = rs.getString("id"); String sourceDetailTable = rs.getString("source_table"); String targetDetailTable = rs.getString("target_table"); - List syncTableFields = getSyncTableFields(mainTableId); + List syncTableFields = RecruitCommon.getSyncTableFields(mainTableId); // 删除明细表数据 RecordSet recordSet = new RecordSet(); diff --git a/src/weaver/formmode/mzg/modeexpand/resume/ArchiveTalentPoolExpand.java b/src/weaver/formmode/mzg/modeexpand/resume/ArchiveTalentPoolExpand.java new file mode 100644 index 0000000..2d317e4 --- /dev/null +++ b/src/weaver/formmode/mzg/modeexpand/resume/ArchiveTalentPoolExpand.java @@ -0,0 +1,47 @@ +package weaver.formmode.mzg.modeexpand.resume; + +import com.engine.mzg.conn.RecruitCommon; +import weaver.conn.RecordSet; +import weaver.formmode.customjavacode.AbstractModeExpandJavaCodeNew; +import weaver.hrm.User; +import weaver.soa.workflow.request.RequestInfo; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author:dxfeng + * @createTime: 2024/10/11 + * @version: 1.0 + */ +public class ArchiveTalentPoolExpand extends AbstractModeExpandJavaCodeNew { + @Override + public Map doModeExpand(Map param) { + Map result = new HashMap<>(); + RecordSet rs = new RecordSet(); + try { + String billId; + RequestInfo requestInfo = (RequestInfo) param.get("RequestInfo"); + if (requestInfo != null) { + User user = (User) param.get("user"); + billId = requestInfo.getRequestid(); + // 查询人才库中是否有该数据 + rs.executeQuery("select id from uf_recruit_rck where jlkid = ?", billId); + String rckId = ""; + if (rs.next()) { + rckId = rs.getString("id"); + // 更新人才库 + RecruitCommon.updateTablesData("uf_recruit_rck", "uf_recruit_resume", billId, rckId, "jlkid", user.getUID()); + } else { + // 插入人才库 + RecruitCommon.insertTablesData("uf_recruit_rck", "uf_recruit_resume",billId,"jlkid",user.getUID()); + } + } + } catch (Exception e) { + rs.writeLog(e); + result.put("errmsg", e.getMessage()); + result.put("flag", "false"); + } + return result; + } +} diff --git a/src/weaver/interfaces/mzg/action/interview/InterviewCompletedAction.java b/src/weaver/interfaces/mzg/action/interview/InterviewCompletedAction.java index a1c8c62..a5f1546 100644 --- a/src/weaver/interfaces/mzg/action/interview/InterviewCompletedAction.java +++ b/src/weaver/interfaces/mzg/action/interview/InterviewCompletedAction.java @@ -109,18 +109,6 @@ public class InterviewCompletedAction implements Action { dataMap.put("gw", xqgw); // 工作地点 dataMap.put("gzdd", gzddStr); - //// 试用期税前 - //dataMap.put("syqsq", ""); - //// 转正税前 - //dataMap.put("zzsq", ""); - //// 年限 - //dataMap.put("nx", ""); - //// 试用期期限 - //dataMap.put("syqqx", ""); - //// 工作时间 - //dataMap.put("gzsj", ""); - //// 报道日期 - //dataMap.put("bdrq", ""); // 插入数据 RecruitRecordSet.insertData(dataMap, tableName);