Sp_Msg_SendMsg.md 2.3 KB

Sp_Msg_SendMsg (procedure)

  • Type: PROCEDURE
  • Deterministic: NO
  • SQL data access: CONTAINS SQL

Parameters

# Mode Name Type
1 IN sProInParam varchar(10000)
2 IN sMakePerson varchar(100)
3 IN sBrId varchar(100)
4 IN sSuId varchar(100)
5 IN sFormId varchar(100)
6 OUT sReturn varchar(1000)
7 OUT sCode int

Body

Body is not pre-cached. To inspect: mysql --defaults-file=~/.my.cnf -e 'SHOW CREATE PROCEDURESpMsg_SendMsg'._

Narrative

Business context: 消息管理 → 发送消息 — toolbar 发送 (send) handler on the 发送消息 form. Composes a message defined in sys_msg_send (subject, body, attachments, recipients) and fans it out to PC in-app inbox, WeChat, and/or email channels per the message's flags. Drives the platform's manual-broadcast flow; workflow-generated messages take other paths.

What it does: Parses $.params[*].value[*].sId (the sys_msg_send row ids). For each id loads bSendEmail, bSendWechat, bSendDingTaik, bSendPhone, sTitle, sAbstract, sTemplateFullMemo, sBillNo into locals. Aggregates recipient lists from viw_msguser JOIN sys_msg_send_receiveuser (where sParentId = p_sId) into p_sWxUserName (JSON array of WeChat ids), p_sEmail (JSON array), and p_iCountUser; missing recipients return sCode=-1 with "请先选择接收人". Pulls attachments from sys_msg_send_file into a JSON array p_sFilesAdressees. If bSendWechat=1 inserts a row into syssendewxmsg (the queue scraped by the WeChat sender worker). If bSendEmail=1 inserts into syssendemail (the email queue). Always inserts one PC-inbox row per recipient into sys_msg joining viw_msguser to sys_msg_send_receiveuser. Finally UPDATE sys_msg_send SET bSend = 1 WHERE sId = p_sId.

Invocation: Dispatched dynamically by GenericProcedureCallServiceImpl.doGenericProcedureCall() (POST /procedureCall/doGenericProcedureCall) — the 发送 button on the 发送消息单据 form (gdsmodule.sId 101801153119616753489024570, parent 消息管理) names Sp_Msg_SendMsg as the action. xly-src ships script/标版/upgrade/更新WAR脚本/20230210_消息、工作流、定时 模块/消息、工作流、定时 模块_20230210.sql (install patch).