public async Task UpdateExamineRejectAsync(ExamineRecord examineRecord, CancellationToken cancellationToken = default(CancellationToken)) { if (examineRecord == null) { throw new ArgumentNullException(nameof(examineRecord)); } try { var examineFlow = Context.ExamineFlows.AsNoTracking().FirstOrDefault(a => a.Id == examineRecord.FlowId); if (examineFlow == null) { throw new Exception("未找到审核流程"); } examineFlow.ExamineStatus = ExamineStatus.Reject; Context.Update(examineFlow); Context.Attach(examineRecord); Context.Update(examineRecord); await Context.SaveChangesAsync(cancellationToken); } catch (DbUpdateConcurrencyException) { throw; } }
/// <summary> /// 审核步骤回调 /// </summary> /// <param name="examineUserId"></param> /// <param name="examineFlow"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public async Task StepCallBackUpdateExamineFlowAsync(string examineUserId, ExamineFlow examineFlow, CancellationToken cancellationToken = default(CancellationToken)) { if (examineFlow == null) { throw new ArgumentNullException(nameof(examineFlow)); } var record = await Context.ExamineRecords.AsNoTracking().Where(a => a.FlowId == examineFlow.Id).OrderByDescending(a => a.Sort)?.FirstOrDefaultAsync(); //如果最新的记录为待审核状态,则不再添加审核记录 if (record?.RecordStstus != RecordStatus.Waiting) { var examineRecord = new ExamineRecord(); examineRecord.Id = Guid.NewGuid().ToString(); examineRecord.RecordTime = DateTime.Now; examineRecord.RecordType = RecordTypes.Examine; examineRecord.RecordStstus = RecordStatus.Waiting; examineRecord.ExamineUserId = examineUserId; examineRecord.FlowId = examineFlow.Id; examineRecord.IsCurrent = true; examineRecord.IsDeleted = false; examineRecord.ExamineContents = ""; Context.Attach(examineFlow); Context.Update(examineFlow); Context.Add(examineRecord); try { await Context.SaveChangesAsync(cancellationToken); } catch (DbUpdateConcurrencyException) { throw; } } }
public async Task FlowCallBackUpdateExamineFlowAsync(ExamineFlow examineFlow, CancellationToken cancellationToken = default(CancellationToken)) { if (examineFlow == null) { throw new ArgumentNullException(nameof(examineFlow)); } var examineRecord = new ExamineRecord(); examineRecord.Id = Guid.NewGuid().ToString(); examineRecord.RecordTime = DateTime.Now; examineRecord.RecordStstus = RecordStatus.Complete; examineRecord.RecordType = RecordTypes.End; examineRecord.ExamineUserId = ""; examineRecord.IsCurrent = true; examineRecord.IsDeleted = false; examineRecord.FlowId = examineFlow.Id; examineRecord.ExamineContents = "审核完成"; try { Context.Attach(examineFlow); Context.Update(examineFlow); Context.Add(examineRecord); await Context.SaveChangesAsync(cancellationToken); } catch (DbUpdateConcurrencyException) { throw; } }
public int AddResult(ExamineRecord record, ExamineResult result) { var maxId = repository.GetMaxId("HR_EXAMINERESULT", "RESULTID"); var entity = ModelToEntity(result); entity.EXAMID = maxId; entity.CREATEDATE = DateTime.Now; //entity.CreatorUserId repository.Insert(entity); return(maxId); }
public int AddExamineRecord(PersonInfo person, ExamineRecord record) { var recordRepository = new BaseRepository <HR_EXAMINERECORD>(new CRDatabase()); var maxId = recordRepository.GetMaxId("HR_EXAMINERECORD", "EXAMID"); var entity = ModelToEntity(record); entity.PERSONID = maxId; entity.CREATEDATE = DateTime.Now; //entity.CreatorUserId recordRepository.Insert(entity); return(maxId); }
public async Task <ExamineRecord> CreateExamineRecordAsync(ExamineRecord examineRecord, CancellationToken cancellationToken = default(CancellationToken)) { if (examineRecord == null) { throw new ArgumentNullException(nameof(examineRecord)); } try { Context.Add(examineRecord); await Context.SaveChangesAsync(cancellationToken); } catch (DbUpdateConcurrencyException) { throw; } return(examineRecord); }
public static ExamineRecord EntityToModel(HR_EXAMINERECORD entity) { if (entity != null) { var model = new ExamineRecord() { ExamId = entity.EXAMID, ExamNo = entity.EXAMNO, ExamType = entity.EXAMTYPE, ExamDate = entity.EXAMDATE ?? DateTime.Now, PersonId = entity.PERSONID ?? 0, Doctor = entity.DOCTORNAME, VisitWay = entity.VISITWAY }; return(model); } return(null); }
public async Task NoticeCallbackAsync(List <string> userIds, ExamineFlow examineFlow, CancellationToken cancellationToken = default(CancellationToken)) { if (examineFlow == null) { throw new ArgumentNullException(nameof(examineFlow)); } var examineRecord = new ExamineRecord(); examineRecord.Id = Guid.NewGuid().ToString(); examineRecord.RecordTime = DateTime.Now; examineRecord.RecordStstus = RecordStatus.Examined; examineRecord.ExamineUserId = ""; examineRecord.FlowId = examineFlow.Id; examineRecord.IsDeleted = false; examineRecord.ExamineContents = ""; List <ExamineNotice> list = new List <ExamineNotice>(); foreach (var item in userIds) { list.Add(new ExamineNotice { FlowId = examineFlow.Id, Id = Guid.NewGuid().ToString(), NoticeStatus = NoticeStatus.Noticed, NoticeTime = DateTime.Now, IsDeleted = false, NoticeUserId = item, RecordId = examineRecord.Id }); } try { Context.Attach(examineFlow); Context.Update(examineFlow); Context.Add(examineRecord); Context.AddRange(list); await Context.SaveChangesAsync(cancellationToken); } catch (DbUpdateConcurrencyException) { throw; } }
private HR_EXAMINERECORD ModelToEntity(ExamineRecord model) { if (model != null) { var entity = new HR_EXAMINERECORD() { EXAMNO = model.ExamNo, EXAMTYPE = model.ExamType, VISITWAY = model.VisitWay, DOCTORNAME = model.Doctor, EXAMDATE = model.ExamDate, CREATEDATE = DateTime.Now, CREATEBY = "", //todo UPDATEDATE = null, //todo UPDATEBY = "", STATUS = 0, }; return(entity); } return(null); }
public async Task <ExamineFlow> CreateExamineFlowAsync(ExamineFlow examineFlow, CancellationToken cancellationToken = default(CancellationToken)) { if (examineFlow == null) { throw new ArgumentNullException(nameof(examineFlow)); } try { var examineRecord = new ExamineRecord(); examineRecord.Id = Guid.NewGuid().ToString(); examineRecord.RecordTime = DateTime.Now; examineRecord.RecordStstus = RecordStatus.Examined; examineRecord.ExamineUserId = examineFlow.SubmitUserId; examineRecord.FlowId = examineFlow.Id; examineRecord.RecordType = RecordTypes.Submit; examineRecord.IsDeleted = false; examineRecord.IsCurrent = true; examineRecord.ExamineContents = "提交审核"; var flowlist = await Context.ExamineFlows.AsNoTracking().Where(a => a.ContentId == examineFlow.ContentId && a.Action == examineFlow.Action && a.ExamineStatus != ExamineStatus.Examined).ToListAsync(cancellationToken); var examiningflow = flowlist.SingleOrDefault(a => a.ExamineStatus == ExamineStatus.Examining); if (examiningflow != null) { return(examineFlow); } var rejectflow = flowlist.SingleOrDefault(a => a.ExamineStatus == ExamineStatus.Reject); if (rejectflow != null) { var records = Context.ExamineRecords.AsNoTracking().Where(a => a.FlowId == rejectflow.Id && a.IsCurrent).ToList(); for (int i = 0; i < records.Count; i++) { records[0].IsCurrent = false; } rejectflow.CallbackUrl = examineFlow.CallbackUrl; rejectflow.ExamineStatus = examineFlow.ExamineStatus; rejectflow.TaskGuid = examineFlow.TaskGuid; rejectflow.SubmitOrganizationId = examineFlow.SubmitOrganizationId; rejectflow.SubmitTime = examineFlow.SubmitTime; rejectflow.SubmitDefineId = examineFlow.SubmitDefineId; rejectflow.TaskName = examineFlow.TaskName; rejectflow.CurrentStepId = ""; rejectflow.Ext1 = examineFlow.Ext1; rejectflow.Ext2 = examineFlow.Ext2; rejectflow.Ext3 = examineFlow.Ext3; rejectflow.Ext4 = examineFlow.Ext4; rejectflow.Ext5 = examineFlow.Ext5; rejectflow.Ext6 = examineFlow.Ext6; rejectflow.Ext7 = examineFlow.Ext7; rejectflow.Ext8 = examineFlow.Ext8; examineRecord.FlowId = rejectflow.Id; Context.UpdateRange(records); Context.Update(rejectflow); Context.Add(examineRecord); await Context.SaveChangesAsync(cancellationToken); return(rejectflow); } Context.Add(examineFlow); Context.Add(examineRecord); await Context.SaveChangesAsync(cancellationToken); } catch (DbUpdateConcurrencyException) { throw; } return(examineFlow); }