public Task <ExamineFlow> SaveExamineFlow(UserInfo user, string taskGuid, ExamineSubmitRequest examineSubmitRequest, CancellationToken cancellationToken = default(CancellationToken)) { if (examineSubmitRequest == null) { throw new ArgumentNullException(nameof(examineSubmitRequest)); } var examineFlow = _mapper.Map <ExamineFlow>(examineSubmitRequest); examineFlow.ExamineStatus = ExamineStatus.Examining; examineFlow.SubmitTime = DateTime.Now; examineFlow.SubmitOrganizationId = user.OrganizationId; examineFlow.SubmitUserId = user.Id; examineFlow.TaskGuid = taskGuid; examineFlow.IsDeleted = false; examineFlow.Id = Guid.NewGuid().ToString(); return(Store.CreateExamineFlowAsync(examineFlow, cancellationToken)); }
public async Task <ResponseMessage> Submit(UserInfo user, [FromBody] ExamineSubmitRequest examineSubmitRequest) { ResponseMessage response = new ResponseMessage(); try { Logger.Trace("收到提交审核请求(Submit),请求体为:\r\n" + (examineSubmitRequest != null ? JsonHelper.ToJson(examineSubmitRequest) : "")); var taskGuid = Guid.NewGuid().ToString();//生成一个任务guid var flow = await _examineFlowManager.GetExamineFlow(examineSubmitRequest.ContentId, examineSubmitRequest.Action); if (flow != null) { taskGuid = flow.TaskGuid; Logger.Info("收到提交审核请求(Submit),已经存在对应的已经在审核中的审核流程,跳过本地流程保存,请求体为:\r\n" + (examineSubmitRequest != null ? JsonHelper.ToJson(examineSubmitRequest) : "")); } else { await _examineFlowManager.SaveExamineFlow(user, taskGuid, examineSubmitRequest); } NameValueCollection nameValueCollection = new NameValueCollection(); nameValueCollection.Add("appToken", "app:nwf"); var nwf = CreateNwf(user.Id, taskGuid, examineSubmitRequest); Logger.Info("向NWF提交请求审核协议:\r\n{0}", JsonHelper.ToJson(nwf)); string result = await _restClient.Post(ApplicationContext.Current.NWFUrl, nwf, "POST", nameValueCollection); Logger.Info("返回:\r\n{0}", result); var response2 = JsonHelper.ToObject <ResponseMessage>(result); if (response2.Code != "0") { Logger.Error($"向NWF({ApplicationContext.Current.NWFUrl})发送审核流程请求失败,请求体为:\r\n{JsonHelper.ToJson(nwf)}"); return(response2); } } catch (Exception e) { response.Code = ResponseCodeDefines.ServiceError; response.Message = e.ToString(); Logger.Error($"用户{user?.UserName ?? ""}({user?.Id ?? ""})向审核中心提交审核(Submit)报错:\r\n{e.ToString()},\r\n请求体为:\r\n" + (examineSubmitRequest != null ? JsonHelper.ToJson(examineSubmitRequest) : "")); } return(response); }
private NWF CreateNwf(string userId, string taskGuid, ExamineSubmitRequest examineSubmitRequest) { NWF nwf = new NWF(); var bodyinfo = new BodyInfoType(); var header = new HeaderType(); bodyinfo.FileInfo = new List <FileInfoType>(); nwf.BodyInfo = bodyinfo; nwf.Header = header; header.TaskGuid = taskGuid; header.ContentGuid = examineSubmitRequest.ContentId; header.Action = examineSubmitRequest.Action; header.SourceSystem = examineSubmitRequest.Source; header.ExtraAttribute = new List <AttributeType>(); bodyinfo.Priority = 0; bodyinfo.TaskName = examineSubmitRequest.TaskName; if (String.IsNullOrEmpty(bodyinfo.TaskName)) { bodyinfo.TaskName = $"{examineSubmitRequest.ContentName}-{userId}"; } var extra = new List <AttributeType>(); extra.Add(new AttributeType { Name = "ContentType", Value = examineSubmitRequest.ContentType }); extra.Add(new AttributeType { Name = "Desc", Value = examineSubmitRequest.Desc }); extra.Add(new AttributeType { Name = "ContentName", Value = examineSubmitRequest.ContentName }); bodyinfo.ExtraAttribute = extra; return(nwf); }