Wms/Utility/UnitOfWork/SqlSugarUnitOfWork.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Wms/Utility/Utility.csproj | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Wms/WMS.BLL/BllTaskServer/BllTaskSyncServer.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Wms/WMS.IBLL/IBllTaskServer/IBllTaskSyncServer.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Wms/Wms/Startup.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Wms/Utility/UnitOfWork/SqlSugarUnitOfWork.cs
New file @@ -0,0 +1,69 @@ using Microsoft.AspNetCore.Mvc.Filters; using SqlSugar; namespace Utility { /// <summary> /// SqlSugar 事务和工作单元 /// </summary> public sealed class SqlSugarUnitOfWork : IUnitOfWork { /// <summary> /// SqlSugar 对象 /// </summary> private readonly ISqlSugarClient _sqlSugarClient; /// <summary> /// 构造函数 /// </summary> /// <param name="sqlSugarClient"></param> public SqlSugarUnitOfWork(ISqlSugarClient sqlSugarClient) { _sqlSugarClient = sqlSugarClient; } /// <summary> /// 开启工作单元处理 /// </summary> /// <param name="context"></param> /// <param name="unitOfWork"></param> /// <exception cref="NotImplementedException"></exception> public void BeginTransaction(FilterContext context, UnitOfWorkAttribute unitOfWork) { _sqlSugarClient.AsTenant().BeginTran(); } /// <summary> /// 提交工作单元处理 /// </summary> /// <param name="resultContext"></param> /// <param name="unitOfWork"></param> /// <exception cref="NotImplementedException"></exception> public void CommitTransaction(FilterContext resultContext, UnitOfWorkAttribute unitOfWork) { _sqlSugarClient.AsTenant().CommitTran(); } /// <summary> /// 回滚工作单元处理 /// </summary> /// <param name="resultContext"></param> /// <param name="unitOfWork"></param> /// <exception cref="NotImplementedException"></exception> public void RollbackTransaction(FilterContext resultContext, UnitOfWorkAttribute unitOfWork) { _sqlSugarClient.AsTenant().RollbackTran(); } /// <summary> /// 执行完毕(无论成功失败) /// </summary> /// <param name="context"></param> /// <param name="resultContext"></param> /// <exception cref="NotImplementedException"></exception> public void OnCompleted(FilterContext context, FilterContext resultContext) { _sqlSugarClient.Dispose(); } } } Wms/Utility/Utility.csproj
@@ -24,6 +24,7 @@ <PackageReference Include="Serilog.Sinks.Async" Version="2.0.0" /> <PackageReference Include="Serilog.Sinks.Console" Version="6.0.0" /> <PackageReference Include="Serilog.Sinks.File" Version="5.0.0" /> <PackageReference Include="SqlSugarCore" Version="5.1.3.43" /> <PackageReference Include="System.Drawing.Common" Version="6.0.0" /> <PackageReference Include="ZXing.Net" Version="0.16.7" /> </ItemGroup> Wms/WMS.BLL/BllTaskServer/BllTaskSyncServer.cs
@@ -1,5 +1,6 @@ using Model.InterFaceModel; using Model.ModelDto.BllTaskDto; using Model.ModelDto.SysDto; using Model.ModelVm.BllTaskVm; using Newtonsoft.Json; using SqlSugar; @@ -7,6 +8,8 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Utility; using Utility.Tools; using WMS.BLL.LogServer; using WMS.DAL; @@ -27,6 +30,7 @@ public BllTaskSyncServer() : base(Db) { } /// <summary> /// 获取任务列表 /// </summary> @@ -57,7 +61,7 @@ StartLocat = it.StartLocat, EndLocat = it.EndLocat, PalletNo = it.PalletNo, PalletType=it.PalletType, PalletType = it.PalletType, FinishDate = it.FinishDate == null ? "" : Convert.ToDateTime(it.FinishDate).ToString("yyyy-MM-dd HH:mm:ss"), WCSName = it.WCSName, CreateTime = it.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"), @@ -120,7 +124,7 @@ entry.WCSName = model.WCSName; //添加任务信息 Db.Insertable(entry).ExecuteCommand(); if (model.Type == "0" || model.Type == "2")//入库任务、移库任务 { //目标储位 @@ -167,7 +171,7 @@ BitPalletMark = "0", IsBale = "0", IsBelt = "0", CompleteTime=model.FinishDate,//完成时间 CompleteTime = model.FinishDate,//完成时间 CreateTime = _dateNow }; var bindId = Db.Insertable(bind).ExecuteReturnIdentity(); @@ -233,7 +237,7 @@ /// </summary> /// <param name="taskNo"></param> /// <param name="orderNo"></param> public void HandleTaskSync(string taskNo, string orderNo,string url, int userId) public void HandleTaskSync(string taskNo, string orderNo, string url, int userId) { try { @@ -465,8 +469,8 @@ IsBelt = bindInfo.IsBelt, Demo = bindInfo.Demo, OwnerNo= arrivalNotice.CustomerNo,//供应商编码 OwnerName=arrivalNotice.CustomerName,//供应商名称 OwnerNo = arrivalNotice.CustomerNo,//供应商编码 OwnerName = arrivalNotice.CustomerName,//供应商名称 IsDel = "0", CreateUser = 0, @@ -538,8 +542,8 @@ CreateUser = userId, CreateTime = (DateTime)task.FinishDate, OwnerNo=arrivalNotice.CustomerNo, OwnerName=arrivalNotice.CustomerName OwnerNo = arrivalNotice.CustomerNo, OwnerName = arrivalNotice.CustomerName }; Db.Insertable(dataStockInfo).ExecuteCommand(); } @@ -603,7 +607,7 @@ exTask.Msg = $"入库口到=>>{task.EndLocat}的入库任务";//关键信息 #endregion break; case "1"://出库任务 #region 出库任务处理逻辑 if (task.PalletType == "1")//空托出库 @@ -785,8 +789,8 @@ exTask.OrderType = "1";//出库单 exTask.Msg = $"{task.StartLocat}的出库任务";//关键信息 break; #endregion #endregion case "2"://移库任务 #region 移库任务处理逻辑 //托盘库存明细 @@ -936,7 +940,7 @@ Db.CommitTran(); } catch (Exception e) { { //回滚事务 Db.RollbackTran(); throw new Exception(e.Message); @@ -961,7 +965,7 @@ { sqlString = $"select SONo from BllExportNotice where Status in ('1','2','3') and IsDel='0' order by CreateTime;"; } var modelList = Db.Ado.SqlQuery<string>(sqlString); return modelList; Wms/WMS.IBLL/IBllTaskServer/IBllTaskSyncServer.cs
@@ -3,6 +3,7 @@ using System; using System.Collections.Generic; using System.Text; using System.Threading.Tasks; using WMS.Entity.BllTaskEntity; namespace WMS.IBLL.IBllTaskServer Wms/Wms/Startup.cs
@@ -20,6 +20,7 @@ using Utility.Extension; using Microsoft.Extensions.Options; using Microsoft.AspNetCore.Http; using SqlSugar; namespace Wms { @@ -121,6 +122,9 @@ //注册serilog services.AddConfigSerilog(); services.AddScoped<ApiResponseActionFilter>(); services.AddScoped<UnitOfWorkAttribute>(); services.AddSingleton<ISqlSugarClient>(DataContext.Db); // 单例注册 services.AddTransient<IUnitOfWork, SqlSugarUnitOfWork>(); // 事务与工作单元注册 } public void ConfigureContainer(ContainerBuilder builder) {