Browse Source

修改确认服务

master
赵新宇 2 days ago
parent
commit
194b309bb1
  1. 149
      API/Wood.Service/Controllers/CheryRecurringJobInputPageExtendController.cs
  2. 11
      API/Wood.Service/Controllers/CherySupplierConDateService.cs
  3. 8
      API/Wood.Service/Controllers/CherySupplierConMmrpService.cs
  4. 7
      API/Wood.Service/Controllers/CherySupplierConPoService.cs

149
API/Wood.Service/Controllers/CheryRecurringJobInputPageExtendController.cs

@ -7,6 +7,7 @@ using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Http.HttpResults;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Storage;
using Microsoft.Extensions.DependencyInjection;
using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
using OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup;
@ -150,10 +151,12 @@ namespace TaskManager.Controllers
private async Task SyncTaskSubTable(string taskName, string client)
{
var task= _jobDbContext.TaskConifgure.FirstOrDefault(p => p.TaskName == taskName);
if (task == null)
{
await _logger.AddError("任务配置不存在,任务设置表(TaskConfigure)是否存在任务对应的表!", taskName, Guid.NewGuid(), DateTime.Now.ToString("yyyyMMdd"));
return;
}
var tableName = task.TableName;
var total =await _jobDbContext.Database.ExecuteSqlAsync($"select count(1) from {tableName} where writeState=0 and readState=1 ");
var pageSize = CPageSize;
@ -162,93 +165,73 @@ namespace TaskManager.Controllers
for (int i= 1; i <= totalPages; i++)
{
_jobDbContext.Database.SqlQuery<T>($"Select TOP 1000 * from {tableName} where writeState=0 and readerstate=1 order by uid");
var records = _jobDbContext.Database.SqlQuery<T>($"Select TOP {pageSize} * from {tableName} where writeState=0 and readerstate=1 order by uid");
var taskId = Guid.NewGuid();
List<TDTO> dtos = new List<TDTO>();
foreach (var itm in records)
{
TDTO dto = new TDTO();
dto.InjectFrom(itm);
dtos.Add(dto);
}
PagedRequest<TDTO> pagedRequest = new PagedRequest<TDTO>()
{
batchNo = GenerateRandomStringWith8EG(),
total = pageSize,
pageSize = pageSize,
list = dtos,
pageNum = i
};
foreach (var itm in records)
{
itm.WriteState = true;
}
var result = await PostPageAsync(pagedRequest,taskId, DateTime.Now.ToString("yyyyMMdd"));
if (result.code == 200)
{
using (var transaction = await _jobDbContext.Database.BeginTransactionAsync())
{
var tran = transaction.GetDbTransaction();
await _jobDbContext.BulkUpdateAsync(records, options => { options.UseTableLock = false; });
try
{
var createtask = new TaskSub();
createtask.TaskId = taskId;
createtask.TaskName =TaskName;
createtask.Subscriber = Client;
createtask.TableName = tableName;
createtask.DataCount = pageSize;
createtask.Domain = "1";
createtask.Site = "1";
createtask.FailedCount = 0;
createtask.CreateTime = DateTime.Now;
createtask.CreateUser = "admin";
createtask.CreationTime = DateTime.Now;
createtask.SyncedPageCount = pageSize;
await _jobDbContext.AddAsync(task);
// 提交事务
await transaction.CommitAsync();
}
catch (Exception ex)
{
await transaction.RollbackAsync();
}
}
}
else
{
await _logger.AddError($"第 {i} 页数据保存失败,请检查数据。", TaskName,taskId, DateTime.Now.ToString("yyyyMMdd"));
}
await Task.Delay(200);
}
//if (string.IsNullOrEmpty(taskName) || string.IsNullOrEmpty(client))
//{
// await _logger.AddError("任务名称或客户端不能为空",taskName,Guid.NewGuid(),DateTime.Now.ToString("yyyyMMdd"));
// return;
//}
//var sublist = _jobDbContext.TaskSub.Where(p => taskName.Contains(p.TaskName) && p.WriteState == false && p.Subscriber == client ).ToList();
//int pageSize = CPageSize;
//if (sublist.Any())
//{
// foreach (var sub in sublist)
// {
// string querystr = $"select * from {sub.TableName} where TaskId='{sub.TaskId}' and WriteState=0 and ReadState=1 order by uid";//任务表
// var entites = _jobDbContext.Database.GetDbConnection().Query<T>(querystr);//明细表
// if (entites.Any())
// {
// var total = entites.Count();
// sub.DataCount = total;
// int totalPages = (int)Math.Ceiling((double)total / pageSize);
// for (int i = sub.SyncedPageCount; i <= totalPages; i++)
// {
// var records = entites.Skip((i - 1) * pageSize)
// .Take(pageSize).ToList();
// #region dto转换作为参数发给客户API 因为实体比DTO字段多
// List<TDTO> dtos = new List<TDTO>();
// foreach (var itm in records)
// {
// TDTO dto = new TDTO();
// dto.InjectFrom(itm);
// dtos.Add(dto);
// }
// PagedRequest<TDTO> pagedRequest = new PagedRequest<TDTO>()
// {
// batchNo = GenerateRandomStringWith8EG(),
// total = entites.Count(),
// pageSize = pageSize,
// list = dtos,
// pageNum = i
// };
// #endregion
// foreach (var itm in records)
// {
// itm.WriteState = true;
// }
// var result = await PostPageAsync(pagedRequest,sub.TaskId, DateTime.Now.ToString("yyyyMMdd"));
// if(result.code == 200)
// {
// _jobDbContext.BulkUpdate(records);
// sub.SyncedPageCount = i;
// if (i == totalPages)
// {
// sub.WriteState = true;
// _jobDbContext.Set<TaskSub>().Update(sub);
// _jobDbContext.SaveChanges();
// }
// }
// else
// {
// sub.FailedCount = i*pageSize;
// sub.FailedInfo = $"第 {i} 页奇瑞数据保存失败 {result.message}。";
// await _logger.AddError($"第 {i} 页奇瑞数据保存失败 {result.message}。", TaskName,sub.TaskId, DateTime.Now.ToString("yyyyMMdd"));
// }
// }
// }
// }
//}
}

11
API/Wood.Service/Controllers/CherySupplierConDateService.cs

@ -44,7 +44,7 @@ namespace TaskManager.Controllers
var taskId = Guid.NewGuid();
var task = new TaskSub();
task.TaskId = taskId;
task.TaskName = "采购订单风险确认";
task.TaskName = "日物料需求计划风险确认";
task.Subscriber = Client;
task.TableName = "SUPPLIER_CON_DATE";
task.DataCount = entites.Count;
@ -54,15 +54,11 @@ namespace TaskManager.Controllers
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())
@ -96,10 +92,7 @@ namespace TaskManager.Controllers
[HttpPost]
public async Task<ActionResult> BatchUpdate([FromBody] List<SUPPLIER_CON_DATE> entites)
{
foreach (var item in entites)
{
await Update(item);
}
await _jobDbContext.BulkUpdateAsync(entites, options => { options.ColumnPrimaryKeyExpression = p => p.UId; options.UseTableLock = false; });
return new JsonResult(new { Code = 200, Message = "批量修改成功!" });

8
API/Wood.Service/Controllers/CherySupplierConMmrpService.cs

@ -46,7 +46,7 @@ namespace TaskManager.Controllers
var taskId = Guid.NewGuid();
var task = new TaskSub();
task.TaskId = taskId;
task.TaskName = "";
task.TaskName = "M+6月物料需求计划风险确认";
task.Subscriber = Client;
task.TableName = "SUPPLIER_CON_MMRP";
task.DataCount = entites.Count;
@ -98,10 +98,8 @@ namespace TaskManager.Controllers
[HttpPost]
public async Task<ActionResult> BatchUpdate([FromBody] List<SUPPLIER_CON_MMRP> entites)
{
foreach (var item in entites)
{
await Update(item);
}
await _jobDbContext.BulkUpdateAsync(entites, options => { options.ColumnPrimaryKeyExpression = p => p.UId; options.UseTableLock = false; });
return new JsonResult(new { Code = 200, Message = "批量修改成功!" });

7
API/Wood.Service/Controllers/CherySupplierConPoService.cs

@ -45,7 +45,7 @@ namespace TaskManager.Controllers
var taskId = Guid.NewGuid();
var task = new TaskSub();
task.TaskId = taskId;
task.TaskName = TaskName;
task.TaskName = "采购订单风险确认";
task.Subscriber = Client;
task.TableName = "SUPPLIER_CON_PO";
task.DataCount = entites.Count;
@ -92,10 +92,7 @@ namespace TaskManager.Controllers
[HttpPost]
public async Task<ActionResult> BatchUpdate([FromBody] List<SUPPLIER_CON_PO> entites)
{
foreach (var item in entites)
{
await Update(item);
}
await _jobDbContext.BulkUpdateAsync(entites, options => { options.ColumnPrimaryKeyExpression = p => p.UId; options.UseTableLock = false; });
return new JsonResult(new { Code = 200, Message = "批量修改成功!" });

Loading…
Cancel
Save