From 5a803406170ed7baa4c9a3d580a55b2fdff4dcc1 Mon Sep 17 00:00:00 2001 From: Mlin Date: Fri, 27 Oct 2023 16:50:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=B9=E9=87=8F=E9=9D=A2=E8=AF=95=E5=8F=91?= =?UTF-8?q?=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BatchAddInterviewResultModeExpand.java | 80 +++++++++++++++++++ .../interview/CreateInterviewModeExpand.java | 21 +---- .../modeexpand/util/RecruitModeUtil.java | 63 ++++++++++++++- .../written/CreateWrittenModeExpand.java | 19 +---- 4 files changed, 147 insertions(+), 36 deletions(-) diff --git a/src/weaver/formmode/recruit/modeexpand/interview/BatchAddInterviewResultModeExpand.java b/src/weaver/formmode/recruit/modeexpand/interview/BatchAddInterviewResultModeExpand.java index 541c179..ad4b736 100644 --- a/src/weaver/formmode/recruit/modeexpand/interview/BatchAddInterviewResultModeExpand.java +++ b/src/weaver/formmode/recruit/modeexpand/interview/BatchAddInterviewResultModeExpand.java @@ -1,11 +1,18 @@ package weaver.formmode.recruit.modeexpand.interview; +import com.engine.recruit.util.RecruitMessageUtils; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; +import org.docx4j.wml.R; import weaver.common.DateUtil; import weaver.conn.RecordSet; import weaver.formmode.customjavacode.AbstractModeExpandJavaCodeNew; import weaver.formmode.recruit.modeexpand.util.RecruitModeUtil; +import weaver.formmode.recruit.modeexpand.written.CreateWrittenModeExpand; import weaver.formmode.setup.ModeRightInfo; import weaver.general.BaseBean; import weaver.general.Util; @@ -13,6 +20,8 @@ import weaver.hrm.User; import weaver.soa.workflow.request.*; import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** *

聚才林招聘

@@ -209,4 +218,75 @@ public class BatchAddInterviewResultModeExpand extends AbstractModeExpandJavaCod } msgBuilder.append("
"); } + + private void sendMessage(int billId) { + String querySql = RecruitModeUtil.getQuerySql("uf_jcl_plapms"); + RecordSet rs = new RecordSet(); + rs.executeQuery(querySql); + String yjnr; + String yjtzmb = ""; + List interviewPersonList = new ArrayList<>(); + while (rs.next()) { + yjtzmb = Util.null2String(rs.getString("yjtzmb")); + yjnr = rs.getString("yjnr"); + + Pattern patten = Pattern.compile("\\$(.*?)\\$");//编译正则表达式 + Matcher matcher = patten.matcher(yjnr);// 指定要匹配的字符串 + StringBuffer sb = new StringBuffer(); + while (matcher.find()) { //此处find()每次被调用后,会偏移到下一个匹配 + matcher.appendReplacement(sb,Util.null2String(rs.getString(matcher.group().replace("$","")))); + } + matcher.appendTail(sb); + + interviewPersonList.add(InterviewPerson.builder() + .name(Util.null2String(rs.getString("ypz"))) + .jobName(Util.null2String(rs.getString("ypzw"))) + .time(Util.null2String(rs.getString("bssj"))) + .phone(Util.null2String(rs.getString("sjh"))) + .email(Util.null2String(rs.getString("yx"))) + .address(Util.null2String(rs.getString("bsdd"))) + .content(Util.null2String(sb)).build()); + } + + for (InterviewPerson interviewPerson : interviewPersonList) { + + Map params = new HashMap<>(); + String[] strings = yjtzmb.split(","); + for (String s : strings) { + switch (s) { + case "0": + // 邮件 + params.put("sendTo", interviewPerson.getEmail()); + params.put("emailTitle", RecruitModeUtil.getEmailTitle(s)); + params.put("emailContent", interviewPerson.getContent()); + RecruitMessageUtils.SendEmail(params); + break; + case "1": + // 短信 + params.put("receiver", interviewPerson.getPhone()); + params.put("content", interviewPerson.getContent()); + RecruitMessageUtils.sendSMS(params); + break; + default: + break; + } + } + + } + + } + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + private static class InterviewPerson { + String name; + String jobName; + String time; + String address; + String phone; + String email; + String content; + } } diff --git a/src/weaver/formmode/recruit/modeexpand/interview/CreateInterviewModeExpand.java b/src/weaver/formmode/recruit/modeexpand/interview/CreateInterviewModeExpand.java index 0706cb4..180e122 100644 --- a/src/weaver/formmode/recruit/modeexpand/interview/CreateInterviewModeExpand.java +++ b/src/weaver/formmode/recruit/modeexpand/interview/CreateInterviewModeExpand.java @@ -9,9 +9,7 @@ import weaver.formmode.recruit.modeexpand.util.ApplicantCommonInfo; import weaver.formmode.recruit.modeexpand.util.RecruitModeUtil; import weaver.general.Util; import weaver.hrm.User; -import weaver.soa.workflow.request.MainTableInfo; -import weaver.soa.workflow.request.Property; -import weaver.soa.workflow.request.RequestInfo; +import weaver.soa.workflow.request.*; import java.util.*; @@ -115,7 +113,7 @@ public class CreateInterviewModeExpand extends AbstractModeExpandJavaCodeNew { } private void sendMessage(int billId) { - String querySql = "select sjhm,dzyx,tzypz,yjnr from uf_jcl_ms where id = ?"; + String querySql = "select sjhm,dzyx,tzypz,yjnr,yjtzmb from uf_jcl_ms where id = ?"; recordSet.executeQuery(querySql,billId); String tzypz = ""; String sjhm = ""; @@ -137,7 +135,7 @@ public class CreateInterviewModeExpand extends AbstractModeExpandJavaCodeNew { case "0": // 邮件 params.put("sendTo", dzyx); - params.put("emailTitle", getEmailTitle(yjtzmb)); + params.put("emailTitle", RecruitModeUtil.getEmailTitle(yjtzmb)); params.put("emailContent", yjnr); RecruitMessageUtils.SendEmail(params); break; @@ -152,17 +150,4 @@ public class CreateInterviewModeExpand extends AbstractModeExpandJavaCodeNew { } } } - - /** - * 获取邮件模板主题 - * @param id - */ - private String getEmailTitle (String id) { - String emailTitle = ""; - recordSet.executeQuery("select yjzt from uf_jcl_yjtzmb where id = ?", id); - if (recordSet.next()) { - emailTitle = recordSet.getString("yjzt"); - } - return emailTitle; - } } diff --git a/src/weaver/formmode/recruit/modeexpand/util/RecruitModeUtil.java b/src/weaver/formmode/recruit/modeexpand/util/RecruitModeUtil.java index c3079e9..541d2c6 100644 --- a/src/weaver/formmode/recruit/modeexpand/util/RecruitModeUtil.java +++ b/src/weaver/formmode/recruit/modeexpand/util/RecruitModeUtil.java @@ -19,8 +19,8 @@ import weaver.hrm.resource.ResourceComInfo; import java.io.BufferedInputStream; import java.io.IOException; import java.nio.charset.StandardCharsets; -import java.util.Objects; -import java.util.Set; +import java.util.*; +import java.util.stream.Collectors; /** * @author:dxfeng @@ -199,4 +199,63 @@ public class RecruitModeUtil { return docId; } + + /** + * @Author ml + * @Date 2023/10/23 18:21 + * @Description 根据建模表名称获取列名称 + * @Param [tableName] + * @Return Map>> + */ + public static Map getModeColumns(String tableName) { + RecordSet rs = new RecordSet(); + List> mapList = new ArrayList<>(); + Map tmpMap = new HashMap<>(16); + rs.executeQuery("select b.FIELDNAME,b.VIEWTYPE from workflow_bill a left join workflow_billfield b on a.id = b.BILLID where a.TABLENAME = ?",tableName); + while (rs.next()) { + tmpMap.put("fieldname",rs.getString("FIELDNAME")); + tmpMap.put("viewtype",rs.getString("VIEWTYPE")); + mapList.add(tmpMap); + } + Map>> dataMap = mapList.stream().collect(Collectors.groupingBy(item -> item.get("viewtype"))); + Map resMap = new HashMap<>(); + for (String key : dataMap.keySet()) { + resMap.put(key,dataMap.get(key).stream().map(Map -> Map.get("fieldname")).collect(Collectors.toList())); + } + return resMap; + } + + + public static String getQuerySql(String tableName) { + Map params = getModeColumns(tableName); + String fieldSql = ""; + StringBuilder whereSql = new StringBuilder(); + whereSql.append(tableName).append(" t0"); + for (String key : params.keySet()) { + List oldlist = (List) params.get(key); + List list = new ArrayList<>(); + oldlist.forEach(field -> list.add("t"+key+"."+field)); + fieldSql = StringUtils.join(list,","); + if ("0".equals(key)) { + continue; + } + whereSql.append(" left join ").append(tableName).append("_dt").append(key).append(" ").append("t").append(key).append(" on t0.id=").append("t").append(key).append(".mainid"); + } + return "select "+fieldSql+" from " + whereSql; + } + + /** + * 获取邮件模板主题 + * @param id + */ + public static String getEmailTitle (String id) { + RecordSet recordSet = new RecordSet(); + String emailTitle = ""; + recordSet.executeQuery("select yjzt from uf_jcl_yjtzmb where id = ?", id); + if (recordSet.next()) { + emailTitle = recordSet.getString("yjzt"); + } + return emailTitle; + } + } diff --git a/src/weaver/formmode/recruit/modeexpand/written/CreateWrittenModeExpand.java b/src/weaver/formmode/recruit/modeexpand/written/CreateWrittenModeExpand.java index e25a200..3915ac6 100644 --- a/src/weaver/formmode/recruit/modeexpand/written/CreateWrittenModeExpand.java +++ b/src/weaver/formmode/recruit/modeexpand/written/CreateWrittenModeExpand.java @@ -7,6 +7,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import weaver.conn.RecordSet; import weaver.formmode.customjavacode.AbstractModeExpandJavaCodeNew; +import weaver.formmode.recruit.modeexpand.util.RecruitModeUtil; import weaver.general.Util; import weaver.hrm.User; import weaver.soa.workflow.request.MainTableInfo; @@ -75,7 +76,7 @@ public class CreateWrittenModeExpand extends AbstractModeExpandJavaCodeNew { private void sendMessage(int billId) { String querySql = "select b.ypz,b.ypzw,b.sjh,b.yx,a.yjtzmb ,a.bssj ,a.bsdd,a.yjnr from uf_jcl_apbs a \n" + - "left join uf_jcl_apbs_dt1 b on a.id = b.mainid where id = ?"; + "left join uf_jcl_apbs_dt1 b on a.id = b.mainid where a.id = ?"; recordSet.executeQuery(querySql,billId); String yjnr; String yjtzmb = ""; @@ -111,7 +112,7 @@ public class CreateWrittenModeExpand extends AbstractModeExpandJavaCodeNew { case "0": // 邮件 params.put("sendTo", writtenPerson.getEmail()); - params.put("emailTitle", getEmailTitle(s)); + params.put("emailTitle", RecruitModeUtil.getEmailTitle(s)); params.put("emailContent", writtenPerson.getContent()); RecruitMessageUtils.SendEmail(params); break; @@ -130,20 +131,6 @@ public class CreateWrittenModeExpand extends AbstractModeExpandJavaCodeNew { } - /** - * 获取邮件模板主题 - * @param id - */ - private String getEmailTitle (String id) { - String emailTitle = ""; - recordSet.executeQuery("select yjzt from uf_jcl_yjtzmb where id = "+ id); - if (recordSet.next()) { - emailTitle = recordSet.getString("yjzt"); - } - return emailTitle; - } - - @Data @Builder @NoArgsConstructor