59 lines
3.0 KiB
Plaintext
59 lines
3.0 KiB
Plaintext
%% MESCommonBase.ashx 主流程图
|
||
flowchart TD
|
||
START([HTTP 请求<br/>MES_Manage/submit/MESCommonBase.ashx])
|
||
READ[ProcessRequest<br/>设置 ContentType=application/json<br/>读取 Request.InputStream]
|
||
PARSE1[JsonMapper.ToObject(stream)<br/>尝试读取 Type / type]
|
||
PARSE2[JavaScriptSerializer.Deserialize<jsonobj>(stream)<br/>成功后用 dataobj.Type 覆盖 type]
|
||
PARAM{dataobj == null?}
|
||
PARAMYES[读取 Request["param"]<br/>再次按 JSON 解析 Type / type]
|
||
SWITCH{switch(type)}
|
||
|
||
START --> READ --> PARSE1 --> PARSE2 --> PARAM
|
||
PARAM -->|是| PARAMYES --> SWITCH
|
||
PARAM -->|否| SWITCH
|
||
|
||
SWITCH -->|2001| T2001[Excel 导出<br/>ExcelWebCall.ExcelFile(jsonData)<br/>生成 bytes/fileName/extension]
|
||
SWITCH -->|2002| T2002[PDF 导出<br/>ExcelWebCall.ExcelFilePdf(jsonData)<br/>Excel 转 PDF]
|
||
SWITCH -->|2003| T2003[合成 Excel 图片/指定扩展名导出<br/>读取 Form 第一项 dataimg[0]<br/>ExcelWebCall.ExcelFile(jsonData)]
|
||
SWITCH -->|2004| T2004[数据库文件下载<br/>DataLink.ExePROCEDURE_Type2004(jsonData)<br/>返回 bytes/fileName/fileExtension]
|
||
SWITCH -->|15| T15[文件上传<br/>读取 Request.Files[0]<br/>拆分 name/suffix/bytes<br/>DataLink.ExePROCEDURE_Type15]
|
||
SWITCH -->|16| T16[数据库文件下载<br/>DataLink.ExePROCEDURE_Type16(jsonData)<br/>返回 fileName/suffix/bytes]
|
||
SWITCH -->|4000| T4000[IP 查询<br/>读取 ServerVariables / UserHostAddress]
|
||
SWITCH -->|default| DEFAULT[通用业务调用<br/>DataLink.SqlWebCall(type,jsonData,dataobj)]
|
||
|
||
T2001 --> DOWNLOAD[二进制下载响应<br/>Content-Type=application/octet-stream<br/>Content-Disposition=attachment<br/>BinaryWrite + Flush/End]
|
||
T2002 --> DOWNLOAD
|
||
T2003 --> DOWNLOAD
|
||
T2004 --> DOWNLOAD
|
||
T16 --> BYTESNULL{bytes == null?}
|
||
BYTESNULL -->|是| RETURNEMPTY[直接 return<br/>不写响应体]
|
||
BYTESNULL -->|否| DOWNLOAD
|
||
|
||
T15 --> JSONRESP[JSON 文本响应<br/>Response.Write(responseText)]
|
||
T4000 --> IPRESP[文本响应<br/>Response.Write(userIP)]
|
||
DEFAULT --> SQLWEB
|
||
|
||
subgraph SQLWEB[DataLink.SqlWebCall 默认分支]
|
||
S1[初始化连接<br/>InitSystemReg 读取 Web.config: ConnectionString]
|
||
S2{按 type 再分发}
|
||
S3[登录/加密<br/>8888: GetEncryptStr<br/>5001: AddUser/改密<br/>5002: Login/生成 token]
|
||
S4[旧协议存储过程<br/>1/2/5<br/>Param 为拼接字符串]
|
||
S5[新协议存储过程<br/>11/111/12/13/21<br/>Param 为 JSON 数组字符串]
|
||
S6[直接 SQL / 导入<br/>1001/1002/3/4/7/22/3001]
|
||
S7[返回 JSON<br/>数组 JSON 或 {code,message,data}]
|
||
S1 --> S2
|
||
S2 --> S3 --> S7
|
||
S2 --> S4 --> S7
|
||
S2 --> S5 --> S7
|
||
S2 --> S6 --> S7
|
||
end
|
||
|
||
SQLWEB --> JSONRESP
|
||
DOWNLOAD --> END([请求结束])
|
||
JSONRESP --> END
|
||
IPRESP --> END
|
||
RETURNEMPTY --> END
|
||
|
||
READ -. 外层 try/catch:异常被吞掉,写出当前 responseText,初始为 NULL .-> CATCH[异常处理<br/>catch(Exception err)<br/>Response.Write(responseText)]
|
||
CATCH --> END
|