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