diff --git a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 index a4bc898a..d9b8b51e 100644 Binary files a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 and b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 differ diff --git a/src/WMS.Web.Api/Controllers/LoginController.cs b/src/WMS.Web.Api/Controllers/LoginController.cs index d2a8ddbd..b8a64f99 100644 --- a/src/WMS.Web.Api/Controllers/LoginController.cs +++ b/src/WMS.Web.Api/Controllers/LoginController.cs @@ -77,9 +77,10 @@ namespace WMS.Web.Api.Controllers SessionId = logininfo.UserInfo.SeesionId, Token = logininfo.TokenInfo.Token, AccessToken = logininfo.TokenInfo.PhpToken, + RefreshToken=logininfo.TokenInfo.RefreshToken, ExpiresIn = logininfo.TokenInfo.Expired }; - var res = await _loginService.LoginOutAsync(dto); + var res = await _loginService.LoginOut(dto); } } return Result.ReSuccess(); diff --git a/src/WMS.Web.Api/Controllers/TestController.cs b/src/WMS.Web.Api/Controllers/TestController.cs index 139f658b..5c7c64e2 100644 --- a/src/WMS.Web.Api/Controllers/TestController.cs +++ b/src/WMS.Web.Api/Controllers/TestController.cs @@ -116,14 +116,15 @@ namespace WMS.Web.Api.Controllers public async Task TestTF() { ////var result = await this._erpService.BillQueryForOrg(); - //var result = await this._erpService.BillQueryForBillType(); + var result = await this._erpService.BillQueryForBillType(); //if (!result.IsSuccess) // return ""; //return JsonConvert.SerializeObject(result.Data); // var bis = new List() { "CGDD224198", "CGDD224199", "CGDD224200", "CGDD224202", "SUB00006680", "CGDD224203", "SUB000066801", "CGDD224204", "CGDD224205", "CGDD224206", "CGDD224207", "SUB00006681", "CGDD224208", "CGDD224209", "SUB00006682", "CGDD224210", "CGDD224211", "CGDD224212", "CGDD224213", "CGDD224216", "SUB00006683", "CGDD224218", "CGDD224219", "CGDD224220", "CGDD224221", "CGDD224222", "CGDD224223", "CGDD224224", "CGDD224225", "CGDD224226", "CGDD224227", "CGDD224229", "CGDD224230", "CGDD224231", "CGDD224232", "CGDD224233", "SUB00006685", "SUB00006686", "CGDD224234", "CGDD224235", "CGDD224236", "CGDD224237", "CGDD224238", "CGDD224239", "CGDD224240", "CGDD224241", "CGDD224242", "CGDD224243", "CGDD224244", "CGDD224245", "CGDD224246", "CGDD224247", "CGDD224248", "CGDD224249", "CGDD224250", "CGDD224251" }; - var result = await this._erpService.BillQueryForPurchaseInStock(); + + //var result = await this._erpService.BillQueryForPurchaseInStock(); //var result1 = await this._erpService.BillQueryForMiscellaneous(); //var result2 = await this._erpService.BillQueryForTransferDirect(); //var result3 = await this._erpService.BillQueryForTransferin(); diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index 6a87800e..e6c11aed 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -4192,31 +4192,6 @@ 出库状态 - - - 单据类型 - - - - - 操作人(出库人) - - - - - 操作时间(出库时间) - - - - - 出库人 - - - - - 出库时间 - - 来源单号 @@ -4227,16 +4202,6 @@ 销售订单号 - - - 来源单号(集合) - - - - - 销售订单号(集合) - - 发货组织 @@ -4247,9 +4212,14 @@ 收货客户 - + - 物料名称 + 单据类型 + + + + + 物料规格型号 @@ -4257,9 +4227,14 @@ 物料编码 - + - 物料规格型号 + 物料名称 + + + + + 单位 @@ -4277,21 +4252,6 @@ 已出库数量 - - - 订单明细备注 - - - - - 创建时间(erp那边的创建时间) - - - - - 单位 - - 出库开始时间 @@ -4302,6 +4262,46 @@ 出库结束时间 + + + 操作人 + + + + + 操作时间 + + + + + 出库人 + + + + + 出库时间 + + + + + 来源单号(集合) + + + + + 销售订单号(集合) + + + + + 订单明细备注 + + + + + 创建时间(erp那边的创建时间) + + 出库单任务 @@ -4397,11 +4397,61 @@ 单据编号 + + + 来源单号 + + + + + 销售订单号 + + + + + 发货组织 + + + + + 收货客户 + + 单据类型 + + + 物料规格型号 + + + + + 物料编码 + + + + + 物料名称 + + + + + 单位 + + + + + 仓库ID + + + + + 出库数量 + + 创建人 @@ -4417,16 +4467,6 @@ 同步成功或者失败 null 就是未同步 - - - 来源单号 - - - - - 销售订单号 - - 来源单号(集合) @@ -4437,46 +4477,6 @@ 销售订单号(集合) - - - 发货组织 - - - - - 收货客户 - - - - - 物料名称 - - - - - 物料编码 - - - - - 物料规格型号 - - - - - 单位 - - - - - 仓库ID - - - - - 出库数量 - - 备注 diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index 013da79d..92a2f4c6 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -3213,6 +3213,13 @@ + + + 登录退出 + + + + 刷新token @@ -4816,6 +4823,13 @@ + + + 登录退出 + + + + 刷新token diff --git a/src/WMS.Web.Core/Dto/Login/LoginOutAuthorizeRequest.cs b/src/WMS.Web.Core/Dto/Login/LoginOutAuthorizeRequest.cs new file mode 100644 index 00000000..6e777958 --- /dev/null +++ b/src/WMS.Web.Core/Dto/Login/LoginOutAuthorizeRequest.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace WMS.Web.Core.Dto.Login +{ + public class LoginOutAuthorizeRequest + { + public string AccessToken { get; set; } + + public string RefreshToken { get; set; } + + } +} diff --git a/src/WMS.Web.Core/Dto/Login/LoginOutDto.cs b/src/WMS.Web.Core/Dto/Login/LoginOutDto.cs index 56c7cf3e..6c7110cc 100644 --- a/src/WMS.Web.Core/Dto/Login/LoginOutDto.cs +++ b/src/WMS.Web.Core/Dto/Login/LoginOutDto.cs @@ -38,5 +38,7 @@ namespace WMS.Web.Core.Dto.Login ///ops自己产生的token 给前端验证用的 /// public string Token { get; set; } + + public string RefreshToken { get; set; } } } diff --git a/src/WMS.Web.Core/Help/HttpClientHelp.cs b/src/WMS.Web.Core/Help/HttpClientHelp.cs index 014427e0..b58b1cdb 100644 --- a/src/WMS.Web.Core/Help/HttpClientHelp.cs +++ b/src/WMS.Web.Core/Help/HttpClientHelp.cs @@ -88,7 +88,7 @@ namespace WMS.Web.Core.Help public string PostHttp(string url, LoginAuthorizeRequest reqData) { var str = string.Format("client_id={0}&client_secret={1}&grant_type={2}&username={3}&password={4}&scope={5}", - reqData.ClientId, reqData.ClientSecret, reqData.GrantType, reqData.UserName, reqData.Password,reqData.Scope); + reqData.ClientId, reqData.ClientSecret, reqData.GrantType, reqData.UserName, reqData.Password, reqData.Scope); ASCIIEncoding encoding = new ASCIIEncoding(); byte[] byte1 = encoding.GetBytes(str); HttpContent httpContent = new StringContent(str); @@ -111,13 +111,13 @@ namespace WMS.Web.Core.Help var resData = response.Content.ReadAsStringAsync().Result; return resData; } - + } public string PostHttp(string url, LoginAuthorizeCodeRequest reqData) { var str = string.Format("client_id={0}&client_secret={1}&grant_type={2}&code={3}&scope={4}", - reqData.ClientId, reqData.ClientSecret, reqData.GrantType, reqData.Code,reqData.Scope); + reqData.ClientId, reqData.ClientSecret, reqData.GrantType, reqData.Code, reqData.Scope); ASCIIEncoding encoding = new ASCIIEncoding(); byte[] byte1 = encoding.GetBytes(str); HttpContent httpContent = new StringContent(str); @@ -143,6 +143,37 @@ namespace WMS.Web.Core.Help } + public string GetHttpOut(string url, LoginOutAuthorizeRequest reqData) + { + try + { + HttpClient client = new HttpClient(); + //请求头添加其他值 + client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", reqData.AccessToken); + client.DefaultRequestHeaders.Add("Refresh-Authorization", reqData.RefreshToken); + client.DefaultRequestHeaders.Connection.Add("Keep-Alive"); + client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); + client.DefaultRequestHeaders.AcceptCharset.Add(new StringWithQualityHeaderValue ("utf-8")); + + HttpResponseMessage response = client.GetAsync(url).Result; + if (response.IsSuccessStatusCode) + { + var resData = response.Content.ReadAsStringAsync().Result; + return resData; + + } + else + { + var resData = response.Content.ReadAsStringAsync().Result; + return resData; + } + } + catch (Exception ex) + { + return ""; + } + } + public string PostHttpNoData(string url, string cookieValue = "") { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); diff --git a/src/WMS.Web.Domain/IService/Public/ILoginService.cs b/src/WMS.Web.Domain/IService/Public/ILoginService.cs index 3b16f76e..0e88d213 100644 --- a/src/WMS.Web.Domain/IService/Public/ILoginService.cs +++ b/src/WMS.Web.Domain/IService/Public/ILoginService.cs @@ -52,6 +52,13 @@ namespace WMS.Web.Domain.IService.Public /// Task LoginOutAsync(LoginOutDto dto); + /// + /// 登录退出 + /// + /// + /// + Task LoginOut(LoginOutDto dto); + /// /// 刷新token diff --git a/src/WMS.Web.Domain/Services/Public/ErpService.cs b/src/WMS.Web.Domain/Services/Public/ErpService.cs index f0329644..83a484d1 100644 --- a/src/WMS.Web.Domain/Services/Public/ErpService.cs +++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs @@ -86,6 +86,26 @@ namespace WMS.Web.Domain.Services.Public } } + public async Task> Init1() + { + BasicHttpBinding binding = new BasicHttpBinding(); + binding.MaxReceivedMessageSize = int.MaxValue; + binding.SendTimeout = new TimeSpan(int.MaxValue); + EndpointAddress address = new EndpointAddress(this._erpOptions.EndpointAddress); + this._client = new ERPGWSoapClient(binding, address); + try + { + var result = await this._client.ValidateSystemAsync(this._erpOptions.UserName, this._erpOptions.Password, "Orico", ""); + if (result == null) + return Result.ReFailure(ResultCodes.Erp_Login_Error); + return Result.ReSuccess(result.AccessToken); + } + catch (Exception ex) + { + return Result.ReFailure(ResultCodes.Erp_Login_Error); + } + } + /// /// 查单据类型的值 /// @@ -95,7 +115,7 @@ namespace WMS.Web.Domain.Services.Public try { //1.先登录金蝶-拿到token - var token_result = await this.Init(); + var token_result = await this.Init1(); if (!token_result.IsSuccess) return ResultList.ReFailure(token_result); diff --git a/src/WMS.Web.Domain/Services/Public/LoginService.cs b/src/WMS.Web.Domain/Services/Public/LoginService.cs index 3aa94309..de354706 100644 --- a/src/WMS.Web.Domain/Services/Public/LoginService.cs +++ b/src/WMS.Web.Domain/Services/Public/LoginService.cs @@ -462,7 +462,7 @@ namespace WMS.Web.Domain.Services.Public reqData.Add("app_id", _soaOptions.AppId); reqData.Add("app_secret", _soaOptions.AppSecret); reqData.Add("access_token", dto.AccessToken); - string result = _httpClientHelp.PostHttp(_soaOptions.Url + "/uc/authorize/signin_out", reqData, true, dto.SessionId); + string result = _httpClientHelp.PostHttp(_soaOptions.Url_V3 + "/uc/authorize/signin_out", reqData, true, dto.SessionId); _logger.LogInformation("退出登录返回:" + result); var jObject = JsonObject.Parse(result); if (jObject["errno"] == 0) @@ -477,6 +477,32 @@ namespace WMS.Web.Domain.Services.Public } } + /// + /// 登录退出 + /// + /// + /// + public async Task LoginOut(LoginOutDto dto) + { + //2.请求PHP单点登出接口 + var reqData = new LoginOutAuthorizeRequest(); + reqData.AccessToken = dto.AccessToken; + reqData.RefreshToken = dto.RefreshToken; + string result = _httpClientHelp.GetHttpOut(_soaOptions.Url_V3 + "/uc/logout", reqData); + _logger.LogInformation("退出登录返回:" + result); + var jObject = JsonObject.Parse(result); + if (jObject["code"] == 0) + { + //设置本地token的缓存:为黑名单的token做存储 + await CacheOutToken(dto); + return Result.ReSuccess(); + } + else + { + return Result.ReFailure(BaseResultCodes.UnAuthorized); + } + } + /// /// 刷新token ///