package weaver.formmode.recruit.modeexpand.offer; import com.engine.recruit.enums.RecordOperateEnum; import com.engine.recruit.exception.CustomizeRunTimeException; import com.engine.recruit.util.RecruitMessageUtils; import org.apache.commons.lang3.StringUtils; 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.hrm.company.SubCompanyComInfo; import weaver.soa.workflow.request.MainTableInfo; import weaver.soa.workflow.request.Property; import weaver.soa.workflow.request.RequestInfo; import java.util.HashMap; import java.util.Map; public class CreateOfferModeExpand extends AbstractModeExpandJavaCodeNew { /** * 消息来源ID */ private String messageType; /** * 消息提醒标题 */ private String title; private final RecordSet recordSet = new RecordSet(); @Override public Map doModeExpand(Map params) { Map result = new HashMap<>(); try { //数据id int billId; //模块id int modeId; RequestInfo requestInfo = (RequestInfo) params.get("RequestInfo"); User user = (User) params.get("user"); String recordType = Util.null2String(params.get("recordType")); if (!RecordOperateEnum.SEND_OFFER.getOperateType().equals(recordType)) { return result; } if (requestInfo != null) { billId = Util.getIntValue(requestInfo.getRequestid()); modeId = Util.getIntValue(requestInfo.getWorkflowid()); if (billId > 0 && modeId > 0) { MainTableInfo mainTableInfo = requestInfo.getMainTableInfo(); Property[] properties = mainTableInfo.getProperty(); Map mainDataMap = new HashMap<>(16); for (Property property : properties) { mainDataMap.put(property.getName(), property.getValue()); } // 发送信息 sendMessage(billId); // 更新状态为已发送 recordSet.executeUpdate("update uf_jcl_offer set zt = 1 where id = ? ", billId); } } } catch (Exception e) { result.put("errmsg", "自定义出错信息"); result.put("flag", "false"); } return result; } private void sendMessage(int billId) { String querySql = "select sjhm,dzyx,yjtzmb,tznr,tzypz,offerfj from uf_jcl_offer where id = ?"; recordSet.executeQuery(querySql, billId); String sjhm = ""; String dzyx = ""; String yjtzmb = ""; String tznr = ""; String tzypz = ""; String offerfj = ""; while (recordSet.next()) { sjhm = Util.null2String(recordSet.getString("sjhm")); dzyx = Util.null2String(recordSet.getString("dzyx")); yjtzmb = Util.null2String(recordSet.getString("yjtzmb")); tznr = Util.null2String(recordSet.getString("tznr")); tzypz = Util.null2String(recordSet.getString("tzypz")); offerfj = Util.null2String(recordSet.getString("offerfj")); } offerfj = RecruitModeUtil.getImageFileIdsByDocIds(offerfj); Map params = new HashMap<>(); String[] ways = tzypz.split(","); for (String way : ways) { switch (way) { case "0": // 邮件附件,对应表单上传的附件 RecruitMessageUtils.SendEmailWithFile(dzyx, getEmailTitle(yjtzmb), tznr, offerfj); break; case "1": // 短信 recordSet.executeQuery("select b.xm , c.zpzwmc , a.sxrq , a.rzgs from uf_jcl_offer a inner join uf_jcl_yppc b on a.xm = b.id inner join uf_jcl_zp_zpzw c on a.ypzw = c.id where a.id = ?", billId); if (recordSet.next()) { String name = recordSet.getString("xm"); String positionName = recordSet.getString("zpzwmc"); String endDate = recordSet.getString("sxrq"); String companyId = recordSet.getString("rzgs"); if (StringUtils.isAnyBlank(name, positionName, endDate, companyId)) { throw new CustomizeRunTimeException("offer短信发送失败,应聘者信息获取失败"); } String msgContent = name + "你好,恭喜你成功通过" + new SubCompanyComInfo().getSubCompanyname(companyId) + "的" + positionName + "面试,聘用通知已发送至你的邮箱,请注意查收邮件,并于" + endDate + "前确认,逾期将失效。"; params.put("receiver", sjhm); params.put("content", msgContent); RecruitMessageUtils.sendSMS(params); } break; default: break; } } } /** * 获取邮件模板主题 * * @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; } }