需求:
用户上传文件,接口返回上传成功或者上传失败。
成功的话,返回fileId。用户可以根据fileId查询解析的结果。

包含3个操作:
上传操作
解析操作
存库操作

实现:
上传采用附件表。
查询用redis来实现,因为文件不合规不用存库。 这里用redis来缓存。

上传成功
解析成功
存库成功 code=0,parseSaveSuccessFlag=true, redis保存票据信息。异常等同失败。

存库失败 code=0,parseSaveSuccessFlag=false, redis保存票据信息。异常等同失败。

解析失败 code=0,parseSaveSuccessFlag=false, 解析失败获取不到票据信息,redis只 保存错误提示。异常等同失败。

上传失败 实时返回

结构为

code
message
fileId
fileName
tickets:[parseSaveSuccessFlag
parseMessage
ticketNo]

那么前端麻爪了:
code为-1表示失败。

if(0==code){
if(parseSaveSuccessFlag){
展示ticket信息
}else{ // 解析入库失败的可能原因:1、解析失败 2、入库失败(例如同票据已入库)
false,parseSaveMessage}
}else{
“从redis中获取信息失败”
}