using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore.Storage; using TaskManager.Contracts.Dtos; using TaskManager.Entity; using TaskManager.Entity.Entitys; using TaskManager.EntityFramework; namespace TaskManager.Controllers { /// /// 日物料需求计划风险确认 /// public class CherySupplierConDateService : CheryRecurringJobInputPageController { public CherySupplierConDateService(HttpClient httpClient, JobDbContext jobDbContext, LogController log, IRepository repository) : base(httpClient, jobDbContext, log, repository) { } /// /// 确认提交 /// /// /// [HttpPost] public async Task Confirm([FromBody] List entites) { var taskId = Guid.NewGuid(); var task = new TaskSub(); task.TaskId = taskId; task.TaskName = "采购订单风险确认"; task.Subscriber = Client; task.TableName = "SUPPLIER_CON_DATE"; task.DataCount = entites.Count; task.Domain = "1"; task.Site = "1"; task.FailedCount = 0; task.CreateTime = DateTime.Now; task.CreateUser = "admin"; task.CreationTime = DateTime.Now; task.SyncedPageCount = 0; entites.ForEach(p => { p.ReadState = true; p.TaskId = taskId; }); using (var transaction = await _jobDbContext.Database.BeginTransactionAsync()) { var tran = transaction.GetDbTransaction(); try { await _jobDbContext.BulkUpdateAsync(entites, options => { options.Transaction = tran; }); await _jobDbContext.AddAsync(task); _jobDbContext.SaveChanges(); // 提交事务 await transaction.CommitAsync(); } catch (Exception ex) { await transaction.RollbackAsync(); return new JsonResult(new { Code = 400, Message = ex.Message }); } } return new JsonResult(new { Code = 200, Message = "修改成功!" }); } } }