From 466fff2dc251cc78da0a95dc9db5e2f782bcde75 Mon Sep 17 00:00:00 2001 From: hwh <332078369@qq.com> Date: 星期二, 02 七月 2024 17:00:12 +0800 Subject: [PATCH] 接口 --- Wms/WMS.BLL/SysServer/InterfaceServer.cs | 389 +++++++++++++++++------------------------------------- 1 files changed, 125 insertions(+), 264 deletions(-) diff --git a/Wms/WMS.BLL/SysServer/InterfaceServer.cs b/Wms/WMS.BLL/SysServer/InterfaceServer.cs index a256b34..20bc4aa 100644 --- a/Wms/WMS.BLL/SysServer/InterfaceServer.cs +++ b/Wms/WMS.BLL/SysServer/InterfaceServer.cs @@ -1,4 +1,6 @@ -锘縰sing Model.ModelDto.SysDto; +锘縰sing AutoMapper; +using Model.ModelDto.LogDto; +using Model.ModelDto.SysDto; using Model.ModelVm.SysVm; using Newtonsoft.Json; using SqlSugar; @@ -7,8 +9,11 @@ using System.Linq; using System.Reflection; using System.Text; +using System.Threading.Tasks; +using Utility; using WMS.DAL; using WMS.Entity.Context; +using WMS.Entity.LogEntity; using WMS.Entity.SysEntity; using WMS.IBLL.ILogServer; using WMS.IBLL.ISysServer; @@ -20,9 +25,13 @@ private static readonly SqlSugarScope Db = DataContext.Db; private readonly IOperationSysServer _operation; //鎿嶄綔鏃ュ織 - public InterfaceServer(IOperationSysServer operation) + private readonly UserManager _userManager; + private readonly IMapper _mapper; + public InterfaceServer(IOperationSysServer operation, IMapper mapper, UserManager userManager) { _operation = operation; + _userManager = userManager; + _mapper = mapper;//automapper } /// <summary> /// 鑾峰彇鎺ュ彛鍒楄〃 @@ -30,50 +39,23 @@ /// <param name="model"></param> /// <param name="count"></param> /// <returns></returns> - public List<InterfaceDto> GetInterfaceList(InterfaceVm model, out int count) + public async Task<SqlSugarPagedList<InterfaceDto>> GetInterfaceList(InterfaceVm model) { - string sqlString = string.Empty; - string sqlCount = string.Empty; - string sqlPub = string.Empty; - try - { - sqlCount += "SELECT DISTINCT COUNT(tb1.Id) FROM SysInterface AS tb1 "; - - sqlString += "SELECT DISTINCT tb1.*,tb2.RealName as CreateUserName,tb3.RealName as UpdateUserName FROM SysInterface AS tb1 "; - sqlPub += "LEFT JOIN SysUserInfor AS tb2 ON tb1.CreateUser = tb2.Id "; - sqlPub += "LEFT JOIN SysUserInfor AS tb3 ON tb1.UpdateUser = tb3.Id "; - sqlPub += $"WHERE tb1.IsDel=0 "; - if (!string.IsNullOrEmpty(model.InterfaceNo)) - { - sqlPub += $"AND tb1.InterfaceNo LIKE '%{model.InterfaceNo}%' "; - } - if (!string.IsNullOrEmpty(model.InterfaceName)) - { - sqlPub += $"AND tb1.InterfaceName LIKE '%{model.InterfaceName}%' "; - } - if (!string.IsNullOrEmpty(model.Direction)) - { - sqlPub += $"AND tb1.Direction = '{model.Direction}' "; - } - sqlCount += sqlPub; - sqlPub += " order by tb1.Id "; - if (model.Page == 0) - { - model.Page = 1; - } - sqlString += sqlPub + $" offset {((model.Page - 1) * model.Limit)} rows fetch next {model.Limit} rows only;"; - - var com = new Common(); - count = com.GetRowCount(sqlCount); - - var modelList = Db.Ado.SqlQuery<InterfaceDto>(sqlString); - - return modelList; - } - catch (Exception ex) - { - throw ex; - } + return await Db.Queryable<SysInterface>() + .LeftJoin<SysUserInfor>((a, b) => a.CreateUser == b.Id) + .LeftJoin<SysUserInfor>((a, b, c) => a.UpdateUser == c.Id) + .Where(a => a.IsDel == "0") + .WhereIF(!string.IsNullOrEmpty(model.InterfaceNo), a => a.InterfaceNo.Contains(model.InterfaceNo)) + .WhereIF(!string.IsNullOrEmpty(model.InterfaceName), a => a.InterfaceName.Contains(model.InterfaceName)) + .WhereIF(!string.IsNullOrEmpty(model.Direction), a => a.Direction == model.Direction) + .OrderBy(a => a.Id) + .Select<InterfaceDto>((a, b, c) => new InterfaceDto() + { + Id = a.Id, + CreateUserName = b.RealName, + UpdateUserName = c.RealName, + }, true) + .ToPagedListAsync(model.Page, model.Limit); } /// <summary> /// 鑾峰彇鎺ュ彛鏄庣粏鍒楄〃 @@ -81,39 +63,20 @@ /// <param name="model"></param> /// <param name="count"></param> /// <returns></returns> - public List<InterfaceDetailDto> GetInterfaceDetailList(InterfaceDetailVm model, out int count) + public async Task<SqlSugarPagedList<InterfaceDetailDto>> GetInterfaceDetailList(InterfaceDetailVm model) { - string sqlString = string.Empty; - string sqlCount = string.Empty; - int rowCount = 1; - try - { - if (model.Page == 0) - { - model.Page = 1; - } - sqlCount += $"SELECT COUNT(ID) FROM SysInterfaceDetail where InterfaceNo = '{model.InterfaceNo}' and isdel = '0';"; - var com = new Common(); - count = com.GetRowCount(sqlCount); - if (count != 0) - { - rowCount = count; - } - - sqlString += "SELECT tb1.*,tb2.RealName as CreateUserName,tb3.RealName as UpdateUserName FROM SysInterfaceDetail AS tb1 "; - sqlString += "LEFT JOIN SysUserInfor AS tb2 ON tb1.CreateUser = tb2.Id "; - sqlString += "LEFT JOIN SysUserInfor AS tb3 ON tb1.UpdateUser = tb3.Id "; - sqlString += $"WHERE tb1.InterfaceNo = '{model.InterfaceNo}' AND tb1.IsDel = '0' order by tb1.Id "; - sqlString += $"offset {((model.Page - 1) * model.Limit)} rows fetch next {rowCount} rows only;"; - - var modelList = Db.Ado.SqlQuery<InterfaceDetailDto>(sqlString); - - return modelList; - } - catch (Exception ex) - { - throw ex; - } + return await Db.Queryable<SysInterfaceDetail>() + .LeftJoin<SysUserInfor>((a, b) => a.CreateUser == b.Id) + .LeftJoin<SysUserInfor>((a, b, c) => a.UpdateUser == c.Id) + .Where(a => a.IsDel == "0") + .WhereIF(!string.IsNullOrEmpty(model.InterfaceNo), a => a.InterfaceNo == model.InterfaceNo) + .Select<InterfaceDetailDto>((a, b, c) => new InterfaceDetailDto() + { + Id = a.Id, + CreateUserName = b.RealName, + UpdateUserName = c.RealName, + }, true) + .ToPagedListAsync(model.Page, model.Limit); } /// <summary> @@ -121,63 +84,27 @@ /// </summary> /// <param name="model"></param> /// <returns></returns> - public string AddInterface(InterfaceVm model) + public async Task AddInterface(InterfaceVm model) { - string strMessage = ""; - string sqlString = string.Empty; - string sqlDetailStr = string.Empty; - try + if (await Db.Queryable<SysInterface>().AnyAsync(s => s.InterfaceNo == model.InterfaceNo)) { - string sqlCount = $"SELECT COUNT(ID) FROM SysInterface where InterfaceNo = '{model.InterfaceNo}' and isdel = '0';"; - var com = new Common().GetRowCount(sqlCount); - if (com > 0) - { - strMessage = "-1:鎺ュ彛缂栧彿宸插瓨鍦紝璇峰嬁閲嶅娣诲姞锛�"; - return strMessage; - } - //鎺ュ彛鎬讳俊鎭� - sqlString += "Insert into SysInterface (InterfaceNo,InterfaceName,Direction,TransmissionMode,Remark,Url,DataSources,CreateUser) values ( "; - sqlString += $"'{model.InterfaceNo}','{model.InterfaceName}','{model.Direction}','{model.TransmissionMode}','{model.Remark}','{model.Url}','{model.DataSources}','{model.CreateUser}' );"; - - //鎺ュ彛鏄庣粏 - var detailModels = model.InterfaceDetail; - foreach (InterfaceDetailVm detailModel in detailModels) - { - sqlDetailStr += "Insert into SysInterfaceDetail (InterfaceNo,ExtField,MapField,Field,"; - sqlDetailStr += "FieldType,DataType,IsNull,Remark,FieldFather,CreateUser) values ( "; - sqlDetailStr += $"'{model.InterfaceNo}','{detailModel.ExtField}','{detailModel.MapField}','{detailModel.Field}', "; - sqlDetailStr += $"'{detailModel.FieldType}','{detailModel.DataType}','{detailModel.IsNull}','{detailModel.Remark}','{detailModel.FieldFather}','{model.CreateUser}'); "; - } - - if (sqlDetailStr == string.Empty) - { - return strMessage; - } - Db.Ado.BeginTran(); - - int rowCount = Db.Ado.ExecuteCommand(sqlString); - var rowDetailCount = 1; - if (sqlDetailStr.Length > 0) - { - rowDetailCount = Db.Ado.ExecuteCommand(sqlDetailStr); - } - Db.Ado.CommitTran(); - if (rowCount > 0 && rowDetailCount > 0) - { - //缁存姢鎿嶄綔鏃ュ織 - _operation.InsertOperation("绯荤粺璁剧疆", "鎺ュ彛绠$悊", model.InterfaceNo, "娣诲姞", $"娣诲姞浜嗘帴鍙g紪鍙蜂负{model.InterfaceNo}鐨勬帴鍙d俊鎭�", Convert.ToInt32(model.CreateUser)); - return strMessage; - } - else - { - Db.Ado.RollbackTran(); - return "-2:娣诲姞澶辫触鏁版嵁鍥炴粴!"; - } + throw Oops.Bah("鎺ュ彛缂栧彿宸插瓨鍦紝璇峰嬁閲嶅娣诲姞"); } - catch (Exception ex) + SysInterface modInterface = _mapper.Map<SysInterface>(model); + modInterface.CreateUser = _userManager.UserId; + modInterface.CreateTime = DateTime.Now; + await Db.Insertable<SysInterface>(modInterface).ExecuteCommandAsync(); + + List<SysInterfaceDetail> listDetails = new List<SysInterfaceDetail>(); + foreach (InterfaceDetailVm detailModel in model.InterfaceDetail) { - throw new Exception(ex.Message); + SysInterfaceDetail modDetail = _mapper.Map<SysInterfaceDetail>(detailModel); + modDetail.CreateTime = modInterface.CreateTime; + modDetail.CreateUser = _userManager.UserId; + listDetails.Add(modDetail); } + await Db.Insertable(listDetails).ExecuteCommandAsync(); + } /// <summary> @@ -185,50 +112,44 @@ /// </summary> /// <param name="model"></param> /// <returns></returns> - public string EditInterface(InterfaceVm model) + public async Task EditInterface(InterfaceVm model) { - string strMessage = ""; - string sqlString = string.Empty; - string sqlDetailStr = string.Empty; - try + SysInterface modInterface = _mapper.Map<SysInterface>(model); + modInterface.UpdateUser = _userManager.UserId; + modInterface.UpdateTime = DateTime.Now; + await Db.Updateable(modInterface) + .UpdateColumns(s => new { s.InterfaceName, s.Direction, s.TransmissionMode, s.Remark, s.Url, s.DataSources, s.UpdateTime, s.UpdateUser }) + .ExecuteCommandAsync(); + + var listDetails = await Db.Queryable<SysInterfaceDetail>().Where(s => s.InterfaceNo == model.InterfaceNo && s.IsDel == "0").ToListAsync(); + foreach (SysInterfaceDetail dbDetailModel in listDetails) { - sqlString = "UPDATE SysInterface SET "; - sqlString += $"InterfaceName = '{model.InterfaceName}',Direction = '{model.Direction}',"; - sqlString += $"TransmissionMode = '{model.TransmissionMode}',Remark = '{model.Remark}',Url = '{model.Url}',DataSources = '{model.DataSources}', "; - sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' "; - sqlString += $"WHERE InterfaceNo = '{model.InterfaceNo}'"; - - var detailModels = model.InterfaceDetail; - sqlDetailStr += $"SELECT * FROM SysInterfaceDetail WHERE InterfaceNo = '{model.InterfaceNo}' and isDel = '0';"; - var dbDetailModels = DataContext.Db.Ado.SqlQuery<SysInterfaceDetail>(sqlDetailStr); - - sqlDetailStr = string.Empty; - // 澶勭悊宸插垹闄ょ殑鏄庣粏 - foreach (SysInterfaceDetail dbDetailModel in dbDetailModels) + if (!model.InterfaceDetail.Any(s => s.Id == dbDetailModel.Id)) { - if (detailModels.Count(it => it.Id == dbDetailModel.Id) == 0) - { - sqlDetailStr += $"UPDATE SysInterfaceDetail SET IsDel = '1',"; - sqlDetailStr += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' "; - sqlDetailStr += $"WHERE Id = {dbDetailModel.Id};"; - } + await Db.Updateable<SysInterfaceDetail>() + .SetColumns(s => s.IsDel == "1") + .SetColumns(s => s.UpdateTime == DateTime.Now) + .SetColumns(s => s.UpdateUser == _userManager.UserId) + .Where(s => s.Id == dbDetailModel.Id && s.IsDel == "0") + .ExecuteCommandAsync(); } + } - // 澶勭悊淇敼鍜屾坊鍔犵殑鏄庣粏 - foreach (InterfaceDetailVm detailModel in detailModels) + // 澶勭悊淇敼鍜屾坊鍔犵殑鏄庣粏 + foreach (InterfaceDetailVm detailModel in model.InterfaceDetail) + { + if (detailModel.Id == 0 || detailModel.Id == null) { - if (detailModel.Id == 0 || detailModel.Id == null) - { - sqlDetailStr += "Insert into SysInterfaceDetail (InterfaceNo,ExtField,MapField,Field,"; - sqlDetailStr += "FieldType,DataType,IsNull,Remark,FieldFather,CreateUser) values ( "; - sqlDetailStr += $"'{model.InterfaceNo}','{detailModel.ExtField}','{detailModel.MapField}','{detailModel.Field}', "; - sqlDetailStr += $"'{detailModel.FieldType}','{detailModel.DataType}','{detailModel.IsNull}','{detailModel.Remark}','{detailModel.FieldFather}','{model.CreateUser}'); "; - } - else - { - //鍒ゆ柇鏄惁鏇存敼 - int rowNum = dbDetailModels - .Count(it => it.Id == detailModel.Id + var modDetail = _mapper.Map<SysInterfaceDetail>(detailModel); + modDetail.CreateTime = DateTime.Now; + modDetail.CreateUser = _userManager.UserId; + modDetail.UpdateUser = _userManager.UserId; + modDetail.UpdateTime = DateTime.Now; + await Db.Insertable(modDetail).ExecuteCommandAsync(); + } + else + { + int rowNum = listDetails.Count(it => it.Id == detailModel.Id && it.ExtField == detailModel.ExtField && it.MapField == detailModel.MapField && it.Field == detailModel.Field @@ -237,44 +158,17 @@ && it.IsNull == detailModel.IsNull && it.Remark == detailModel.Remark && it.FieldFather == detailModel.FieldFather); - if (rowNum > 0) - { - continue; - } - - sqlDetailStr += $"UPDATE SysInterfaceDetail SET "; - sqlDetailStr += $"ExtField = '{detailModel.ExtField}',MapField = '{detailModel.MapField}',Field='{detailModel.Field}',FieldFather='{detailModel.FieldFather}', "; - sqlDetailStr += $"FieldType = '{detailModel.FieldType}',DataType = '{detailModel.DataType}', "; - sqlDetailStr += $"IsNull = '{detailModel.IsNull}',Remark = '{detailModel.Remark}', "; - sqlDetailStr += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' "; - sqlDetailStr += $"WHERE Id = {detailModel.Id};"; + if (rowNum > 0) + { + continue; } + var modDetail = _mapper.Map<SysInterfaceDetail>(detailModel); + modDetail.UpdateUser = _userManager.UserId; + modDetail.UpdateTime = DateTime.Now; + await Db.Updateable<SysInterfaceDetail>(modDetail) + .UpdateColumns(s => new { s.ExtField, s.MapField, s.Field, s.FieldFather, s.FieldType, s.DataType, s.IsNull, s.Remark, s.UpdateUser, s.UpdateTime }) + .ExecuteCommandAsync(); } - - Db.Ado.BeginTran(); - - int rowCount = Db.Ado.ExecuteCommand(sqlString); - var rowDetailCount = 1; - if (sqlDetailStr.Length > 0) - { - rowDetailCount = Db.Ado.ExecuteCommand(sqlDetailStr); - } - Db.Ado.CommitTran(); - if (rowCount > 0 && rowDetailCount > 0) - { - //缁存姢鎿嶄綔鏃ュ織 - _operation.InsertOperation("绯荤粺璁剧疆", "鎺ュ彛绠$悊", model.InterfaceNo, "缂栬緫", $"缂栬緫浜嗘帴鍙g紪鍙蜂负{model.InterfaceNo}鐨勬帴鍙d俊鎭�", Convert.ToInt32(model.CreateUser)); - return strMessage; - } - else - { - Db.Ado.RollbackTran(); - return "-2:娣诲姞澶辫触鏁版嵁鍥炴粴!"; - } - } - catch (Exception ex) - { - throw ex; } } @@ -283,36 +177,21 @@ /// </summary> /// <param name="model"></param> /// <returns></returns> - public string DelInterface(InterfaceVm model) + public async Task DelInterface(InterfaceVm model) { - try - { - string sqlString = ""; - // 鍒犻櫎鎬� - sqlString = $"UPDATE SysInterface SET IsDel = '1',"; - sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' "; - sqlString += $"WHERE InterfaceNo = '{model.InterfaceNo}';"; + await Db.Updateable<SysInterface>() + .SetColumns(s => s.IsDel == "1") + .SetColumns(s => s.UpdateTime == DateTime.Now) + .SetColumns(s => s.UpdateUser == _userManager.UserId) + .Where(s => s.InterfaceNo == model.InterfaceNo && s.IsDel == "0") + .ExecuteCommandAsync(); - // 鍒犻櫎鏄庣粏 - sqlString += $"UPDATE SysInterfaceDetail SET IsDel = '1',"; - sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' "; - sqlString += $"WHERE InterfaceNo = '{model.InterfaceNo}';"; - Db.Ado.BeginTran(); - int rowCount = Db.Ado.ExecuteCommand(sqlString); - - if (rowCount < 2) - { - Db.RollbackTran(); - return "-1:鍒犻櫎澶辫触锛�"; - } - Db.Ado.CommitTran(); - _operation.InsertOperation("绯荤粺璁剧疆", "鎺ュ彛绠$悊", model.InterfaceNo, "鍒犻櫎", $"鍒犻櫎浜嗘帴鍙g紪鍙蜂负{model.InterfaceNo}鐨勬帴鍙d俊鎭�", Convert.ToInt32(model.CreateUser)); - return ""; - } - catch (Exception ex) - { - throw ex; - } + await Db.Updateable<SysInterfaceDetail>() + .SetColumns(s => s.IsDel == "1") + .SetColumns(s => s.UpdateTime == DateTime.Now) + .SetColumns(s => s.UpdateUser == _userManager.UserId) + .Where(s => s.InterfaceNo == model.InterfaceNo && s.IsDel == "0") + .ExecuteCommandAsync(); } /// <summary> @@ -320,34 +199,16 @@ /// </summary> /// <param name="model"></param> /// <returns></returns> - public string DelInterfaceDetail(InterfaceDetailVm model) + public async Task DelInterfaceDetail(InterfaceDetailVm model) { - try - { - string sqlString = ""; - - // 鍒犻櫎鏄庣粏 - sqlString += $"UPDATE SysInterfaceDetail SET IsDel = '1',"; - sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' "; - sqlString += $"WHERE Id = '{model.Id}';"; - Db.Ado.BeginTran(); - int rowCount = Db.Ado.ExecuteCommand(sqlString); - - if (rowCount < 1) - { - Db.RollbackTran(); - return "-1:鍒犻櫎澶辫触锛�"; - } - Db.Ado.CommitTran(); - _operation.InsertOperation("绯荤粺璁剧疆", "鎺ュ彛绠$悊", model.InterfaceNo, "鍒犻櫎", $"鍒犻櫎浜嗘帴鍙g紪鍙蜂负{model.InterfaceNo}锛屾湰绯荤粺瀛楁涓簕model.Field}鐨勬帴鍙d俊鎭�", Convert.ToInt32(model.CreateUser)); - return ""; - } - catch (Exception ex) - { - throw ex; - } + await Db.Updateable<SysInterfaceDetail>() + .SetColumns(s => s.IsDel == "1") + .SetColumns(s => s.UpdateTime == DateTime.Now) + .SetColumns(s => s.UpdateUser == _userManager.UserId) + .Where(s => s.Id == model.Id) + .ExecuteCommandAsync(); } - + //public void ceshi() //{ // string interfaceNo = "A0001"; @@ -360,7 +221,7 @@ /// </summary> /// <param name="InterfaceNo">鎺ュ彛缂栧彿</param> /// <param name="param">瀛樺偍杩囩▼鍙傛暟</param> - public void RespondResult(string InterfaceNo,string param) + public void RespondResult(string InterfaceNo, string param) { try { @@ -427,13 +288,13 @@ var response = Utility.Tools.HttpHelper.DoPost(interfaceModel.Url, jsonData, interfaceModel.InterfaceName, interfaceModel.Remark); } else - { - - } + { + + } } catch (Exception ex) - { - + { + } } /// <summary> @@ -455,7 +316,7 @@ } } public class RequestData - { + { public string Field1 { get; set; } public string Field2 { get; set; } public string Field3 { get; set; } -- Gitblit v1.8.0