diff --git a/src/com/engine/mzg/conn/RecruitCommon.java b/src/com/engine/mzg/conn/RecruitCommon.java index 87aace8..24e8109 100644 --- a/src/com/engine/mzg/conn/RecruitCommon.java +++ b/src/com/engine/mzg/conn/RecruitCommon.java @@ -1,5 +1,7 @@ package com.engine.mzg.conn; +import com.engine.common.service.HrmCommonService; +import com.engine.common.service.impl.HrmCommonServiceImpl; import com.engine.mzg.entity.SyncTableField; import com.engine.mzg.exception.CustomizeRunTimeException; import com.engine.mzg.util.RecruitUtil; @@ -9,10 +11,7 @@ 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; +import java.util.*; /** * @author:dxfeng @@ -224,4 +223,19 @@ public class RecruitCommon { return fields; } + public static Set getRoleUserIds(String roleName) { + Set userSet = new HashSet<>(); + RecordSet rs = new RecordSet(); + String sql = "select id from hrmroles h where rolesmark like '% " + roleName + "`%' or rolesmark = '" + roleName + "'"; + rs.executeQuery(sql); + while (rs.next()) { + String roleId = rs.getString("id"); + HrmCommonService hrmCommonService = new HrmCommonServiceImpl(); + String hrmIds = hrmCommonService.getRoleMemberIds(roleId, "0"); + if (StringUtils.isNotBlank(hrmIds)) { + userSet.addAll(Arrays.asList(hrmIds.split(","))); + } + } + return userSet; + } } diff --git a/src/com/engine/mzg/service/impl/RecruitMobileServiceImpl.java b/src/com/engine/mzg/service/impl/RecruitMobileServiceImpl.java index 5322363..b110a04 100644 --- a/src/com/engine/mzg/service/impl/RecruitMobileServiceImpl.java +++ b/src/com/engine/mzg/service/impl/RecruitMobileServiceImpl.java @@ -7,17 +7,18 @@ 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 com.weaver.formmodel.data.manager.FormInfoManager; +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 weaver.formmode.mzg.modeexpand.disc.AddDiscExpand; import weaver.general.Util; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.UUID; +import java.util.*; import java.util.regex.Matcher; +import java.util.stream.Collectors; /** * @author:dxfeng @@ -219,7 +220,6 @@ public class RecruitMobileServiceImpl extends Service implements RecruitMobileSe } - /** * 生成待归档数据 * @@ -268,6 +268,30 @@ public class RecruitMobileServiceImpl extends Service implements RecruitMobileSe RecruitRecordSet.insertData(buildDataMap, targetTable); mainId = String.valueOf(RecruitRecordSet.refreshRight(uuid, targetTable, formModeId, 1)); + // 发送消息 + String roleNames = RecruitCommon.getSettingValue("OFFER_REMIND_ROLE"); + if(StringUtils.isBlank(roleNames)){ + roleNames="系统管理员"; + } + if (StringUtils.isNotBlank(roleNames)) { + Set remindUserSet = new HashSet<>(); + // 根据角色名字,获取人员 + String[] split = roleNames.split(","); + for (String roleName : split) { + Set userIds = RecruitCommon.getRoleUserIds(roleName); + remindUserSet.addAll(userIds); + } + + if (CollectionUtils.isNotEmpty(remindUserSet)) { + // 消息不为空,发送消息 + List fieldList = FormInfoManager.getInstance().getAllField(formModeId); + Map fieldMap = fieldList.stream().collect(Collectors.toMap(Formfield::getFieldname, item -> item, (k1, k2) -> k1)); + String msgContent = RecruitCommon.getSettingValue("OFFER_REMIND_CONTENT", fieldMap, buildDataMap); + String msgCenterId = RecruitCommon.getSettingValue("MSG_CENTER_ID"); + RecruitUtil.messagePush(msgCenterId, "offer接受提醒", msgContent, remindUserSet, user.getUID()); + } + } + } // 更新明细表,明细表删除后重新插入数据