diff --git a/ds-wms-service/DS.Module.Core/Constants/MultiLanguageConst.cs b/ds-wms-service/DS.Module.Core/Constants/MultiLanguageConst.cs index 340781d6..d5b1fd21 100644 --- a/ds-wms-service/DS.Module.Core/Constants/MultiLanguageConst.cs +++ b/ds-wms-service/DS.Module.Core/Constants/MultiLanguageConst.cs @@ -303,5 +303,10 @@ public static class MultiLanguageConst [Description("函电信息不存在")] public const string LetterNotExist = "Letter_Not_Exist"; + + [Description("表单设置不存在")] + public const string FormSetNotExist = "FormSet_Not_Exist"; + [Description("表单复制模板不存在")] + public const string FormCopyNotExist = "FormCopy_Not_Exist"; #endregion } \ No newline at end of file diff --git a/ds-wms-service/DS.Module.Core/Data/UserInfo.cs b/ds-wms-service/DS.Module.Core/Data/UserInfo.cs index d1510de1..cb6ed75b 100644 --- a/ds-wms-service/DS.Module.Core/Data/UserInfo.cs +++ b/ds-wms-service/DS.Module.Core/Data/UserInfo.cs @@ -24,7 +24,10 @@ public class UserInfo /// 公司ID /// public string CompanyId { get; set; } - + /// + /// 机构Id + /// + public string OrgId { get; set; } /// /// 公司名称 /// diff --git a/ds-wms-service/DS.Module.PrintModule/DS.Module.PrintModule.csproj b/ds-wms-service/DS.Module.PrintModule/DS.Module.PrintModule.csproj new file mode 100644 index 00000000..7cd0e353 --- /dev/null +++ b/ds-wms-service/DS.Module.PrintModule/DS.Module.PrintModule.csproj @@ -0,0 +1,14 @@ + + + + net8.0 + enable + enable + + + + + + + + diff --git a/ds-wms-service/DS.Module.PrintModule/HttpUtillib.cs b/ds-wms-service/DS.Module.PrintModule/HttpUtillib.cs new file mode 100644 index 00000000..438bbb27 --- /dev/null +++ b/ds-wms-service/DS.Module.PrintModule/HttpUtillib.cs @@ -0,0 +1,267 @@ +using DS.Module.Core.Extensions; +using DS.Module.Core.Helpers; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.Security; +using System.Security.Cryptography.X509Certificates; +using System.Text; +using System.Threading.Tasks; +using static SKIT.FlurlHttpClient.Wechat.Api.Models.TCBGetPressureTestReportResponse.Types; +using static System.Net.Mime.MediaTypeNames; + +namespace DS.Module.PrintModule +{ + /// + /// 打印服务封装请求工具类 + /// + public class HttpUtillib + { + /// + /// 平台ip + /// + private static string _ip; + + /// + /// 平台端口 + /// + private static int _port = 443; + + /// + /// 平台APPKey + /// + private static string _appkey; + + /// + /// 平台APPSecret + /// + private static string _secret; + + /// + /// 是否使用HTTPS协议 + /// + private static bool _isHttps = true; + + /// + /// 设置信息参数 + /// + /// 合作方APPKey + /// 合作方APPSecret + /// 平台IP + /// 平台端口,默认HTTPS的443端口 + /// 是否启用HTTPS协议,默认HTTPS + /// + public static void SetPlatformInfo(string appkey, string secret, string ip, int port = 443, bool isHttps = true) + { + _appkey = appkey; + _secret = secret; + _ip = ip; + _port = port; + _isHttps = isHttps; + + // 设置并发数,如不设置默认为2 + ServicePointManager.DefaultConnectionLimit = 512; + } + /// + /// HTTP GET请求 + /// + /// HTTP接口Url,不带协议和端口,如/artemis/api/resource/v1/cameras/indexCode?cameraIndexCode=a10cafaa777c49a5af92c165c95970e0 + /// 请求超时时间,单位:秒 + /// + public static string HttpGet(string uri, int timeout) + { + Dictionary header = new Dictionary(); + + // 初始化请求:组装请求头,设置远程证书自动验证通过 + initRequest(header, uri, "", false); + + // build web request object + StringBuilder sb = new StringBuilder(); + sb.Append(_isHttps ? "https://" : "http://").Append(_ip).Append(":").Append(_port.ToString()).Append(uri); + + HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(sb.ToString()); + req.KeepAlive = false; + req.ProtocolVersion = HttpVersion.Version11; + req.AllowAutoRedirect = false; // 不允许自动重定向 + req.Method = "GET"; + req.Timeout = timeout * 1000; // 传入是秒,需要转换成毫秒 + req.Accept = header["Accept"]; + req.ContentType = header["Content-Type"]; + + foreach (string headerKey in header.Keys) + { + if (headerKey.Contains("appId")) + { + req.Headers.Add(headerKey + ":" + header[headerKey]); + } + if (headerKey.Contains("timestamp")) + { + req.Headers.Add(headerKey + ":" + header[headerKey]); + } + if (headerKey.Contains("sign")) + { + req.Headers.Add(headerKey + ":" + header[headerKey]); + } + } + + HttpWebResponse rsp = null; + try + { + rsp = (HttpWebResponse)req.GetResponse(); + if (HttpStatusCode.OK == rsp.StatusCode) + { + Stream rspStream = rsp.GetResponseStream(); // 响应内容字节流 + StreamReader sr = new StreamReader(rspStream); + string strStream = sr.ReadToEnd(); + long streamLength = strStream.Length; + byte[] response = System.Text.Encoding.UTF8.GetBytes(strStream); + rsp.Close(); + return System.Text.Encoding.UTF8.GetString(response); + } + else if (HttpStatusCode.Found == rsp.StatusCode || HttpStatusCode.Moved == rsp.StatusCode) // 302/301 redirect + { + string reqUrl = rsp.Headers["Location"].ToString(); // 获取重定向URL + WebRequest wreq = WebRequest.Create(reqUrl); // 重定向请求对象 + WebResponse wrsp = wreq.GetResponse(); // 重定向响应 + long streamLength = wrsp.ContentLength; // 重定向响应内容长度 + Stream rspStream = wrsp.GetResponseStream(); // 响应内容字节流 + byte[] response = new byte[streamLength]; + rspStream.Read(response, 0, (int)streamLength); // 读取响应内容至byte数组 + rspStream.Close(); + rsp.Close(); + return System.Text.Encoding.UTF8.GetString(response); + } + + rsp.Close(); + } + catch (WebException e) + { + if (rsp != null) + { + rsp.Close(); + } + } + + return null; + } + /// + /// HTTP Post请求 + /// + /// HTTP接口Url,不带协议和端口,如/artemis/api/resource/v1/org/advance/orgList + /// 请求参数 + /// 请求超时时间,单位:秒 + /// 请求结果 + public static string HttpPost(string uri, string body, int timeout) + { + Dictionary header = new Dictionary(); + + // 初始化请求:组装请求头,设置远程证书自动验证通过 + initRequest(header, uri, body, true); + + // build web request object + StringBuilder sb = new StringBuilder(); + sb.Append(_isHttps ? "https://" : "http://").Append(_ip).Append(":").Append(_port.ToString()).Append(uri); + + // 创建POST请求 + HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(sb.ToString()); + req.KeepAlive = false; + req.ProtocolVersion = HttpVersion.Version11; + req.AllowAutoRedirect = false; // 不允许自动重定向 + req.Method = "POST"; + req.Timeout = timeout * 1000; // 传入是秒,需要转换成毫秒 + req.Accept = header["Accept"]; + req.ContentType = header["Content-Type"]; + req.UserAgent = "PostmanRuntime/7.26.8"; + + foreach (string headerKey in header.Keys) + { + if (headerKey.Contains("appId")) + { + req.Headers.Add(headerKey + ":" + header[headerKey]); + } + if (headerKey.Contains("timestamp")) + { + req.Headers.Add(headerKey + ":" + header[headerKey]); + } + if (headerKey.Contains("sign")) + { + req.Headers.Add(headerKey + ":" + header[headerKey]); + } + } + byte[] data = Encoding.UTF8.GetBytes(body); + + req.ContentLength = data.Length; + + using (Stream reqStream = req.GetRequestStream()) + { + reqStream.Write(data, 0, data.Length); + + reqStream.Close(); + } + + HttpWebResponse response = (HttpWebResponse)req.GetResponse(); + Stream stream = response.GetResponseStream(); + Encoding encode = Encoding.UTF8; + StreamReader reader = new StreamReader(stream, encode); + string content = reader.ReadToEnd(); + stream.Close(); + reader.Close(); + return content; + } + + + /// + /// 远程证书验证 + /// + /// + /// + /// + /// + /// 验证是否通过,始终通过 + private static bool remoteCertificateValidate(object sender, X509Certificate cert, X509Chain chain, + SslPolicyErrors error) + { + return true; + } + + private static void initRequest(Dictionary header, string url, string body, bool isPost) + { + // Accept + // string accept = "application/json"; // "*/*"; + string accept = "*/*"; // "*/*"; + header.Add("Accept", accept); + + // ContentType + string contentType = "application/json"; + header.Add("Content-Type", contentType); + + + // appId + header.Add("appId", _appkey); + + var timestamp = DateTime.Now.DateToTimeStamp(); + // build string to sign + string signedStr = MD5Helper.Md5EncryptLowerCase(timestamp + _secret); + + // timestamp + header.Add("timestamp", DateTime.Now.DateToTimeStamp()); + // sign + header.Add("sign", signedStr); + + if (_isHttps) + { + // set remote certificate Validation auto pass + ServicePointManager.ServerCertificateValidationCallback = + new System.Net.Security.RemoteCertificateValidationCallback(remoteCertificateValidate); + // FIX:修复不同.Net版对一些SecurityProtocolType枚举支持情况不一致导致编译失败等问题,这里统一使用数值 + // ServicePointManager.SecurityProtocol = (SecurityProtocolType)48 | (SecurityProtocolType)3072 | + // (SecurityProtocolType)768 | (SecurityProtocolType)192 ; + // ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; + } + } + + + + } +} diff --git a/ds-wms-service/DS.Module.PrintModule/IPrintService.cs b/ds-wms-service/DS.Module.PrintModule/IPrintService.cs new file mode 100644 index 00000000..4b3ff769 --- /dev/null +++ b/ds-wms-service/DS.Module.PrintModule/IPrintService.cs @@ -0,0 +1,31 @@ +using DS.Module.Core; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DS.Module.PrintModule +{ + public interface IPrintService + { + /// + /// 获取打印模块列表 + /// + /// + public DataResult GetOpenPrintModuleList(); + + /// + /// 获取打印模板列表 + /// + /// + public DataResult GetOpenPrintTemplateList(string id); + + /// + /// 获取Json打印信息 + /// + /// + /// + public DataResult GetOpenJsonPrintInfo(OpenJsonPrintReq req); + } +} diff --git a/ds-wms-service/DS.Module.PrintModule/OpenJsonPrintReq.cs b/ds-wms-service/DS.Module.PrintModule/OpenJsonPrintReq.cs new file mode 100644 index 00000000..cb7246ec --- /dev/null +++ b/ds-wms-service/DS.Module.PrintModule/OpenJsonPrintReq.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DS.Module.PrintModule +{ + /// + /// Json打印请求数据 + /// + public class OpenJsonPrintReq + { + /// + /// 模板Id + /// + public long TemplateId { get; set; } + + /// + /// Json数据 + /// + public string JsonDataStr { get; set; } + } +} diff --git a/ds-wms-service/DS.Module.PrintModule/PrintModuleInstall.cs b/ds-wms-service/DS.Module.PrintModule/PrintModuleInstall.cs new file mode 100644 index 00000000..f817208e --- /dev/null +++ b/ds-wms-service/DS.Module.PrintModule/PrintModuleInstall.cs @@ -0,0 +1,27 @@ +using Microsoft.Extensions.DependencyInjection; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DS.Module.PrintModule +{ + /// + /// 注入打印服务 + /// + public static class PrintModuleInstall + { + /// + /// + /// + /// + /// + public static void AddPrintModuleInstall(this IServiceCollection services) + { + if (services == null) throw new ArgumentNullException(nameof(services)); + + services.AddScoped(); + } + } +} diff --git a/ds-wms-service/DS.Module.PrintModule/PrintService.cs b/ds-wms-service/DS.Module.PrintModule/PrintService.cs new file mode 100644 index 00000000..81ec742a --- /dev/null +++ b/ds-wms-service/DS.Module.PrintModule/PrintService.cs @@ -0,0 +1,133 @@ +using DS.Module.Core; +using DS.Module.Core.Data; +using DS.Module.Core.Extensions; +using DS.Module.UserModule; +using Microsoft.Extensions.DependencyInjection; +using Newtonsoft.Json; +using NLog; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DS.Module.PrintModule +{ + public class PrintService: IPrintService + { + private readonly IServiceProvider _serviceProvider; + private readonly ISqlSugarClient db; + private readonly IUser user; + private readonly string ip; + private readonly int port; + private readonly string accessKey; + private readonly string accessSecret; + private readonly string moduleUrl; + private readonly string templateUrl; + private readonly string jsonPrintInfoUrl; + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); + + /// + /// 构造函数 + /// + /// + public PrintService(IServiceProvider serviceProvider) + { + _serviceProvider = serviceProvider; + db = _serviceProvider.GetRequiredService(); + user = _serviceProvider.GetRequiredService(); + + ip = AppSetting.app(new string[] { "PrintService", "IP" }).ObjToString(); + port = AppSetting.app(new string[] { "PrintService", "Port" }).ToInt(); + accessKey = AppSetting.app(new string[] { "PrintService", "AccessKey" }).ObjToString(); + accessSecret = AppSetting.app(new string[] { "PrintService", "AccessSecret" }).ObjToString(); + moduleUrl = AppSetting.app(new string[] { "PrintService", "GetModuleListUrl" }).ObjToString(); + templateUrl = AppSetting.app(new string[] { "PrintService", "GetTemplateListUrl" }).ObjToString(); + jsonPrintInfoUrl = AppSetting.app(new string[] { "PrintService", "GetJsonPrintInfoUrl" }).ObjToString(); + } + + + /// + /// 获取打印模块列表 + /// + /// + public DataResult GetOpenPrintModuleList() + { + // 只要平台信息参数一致,多个请求只需设置一次参数 + HttpUtillib.SetPlatformInfo(accessKey, accessSecret, ip, port, false); + DataResult res = new DataResult(); + + // 发起POST请求,超时时间15秒,返回响应字节数组 + string result = HttpUtillib.HttpGet(moduleUrl, 15); + if (null == result) + { + res = DataResult.Failed("请求失败,请联系管理员"); + // 请求失败 + // Console.WriteLine("/artemis/api/resource/v1/cameras/indexCode: POST fail"); + } + else + { + res = JsonConvert.DeserializeObject(result); + // Console.WriteLine(System.Text.Encoding.UTF8.GetString(result)); + } + + return res; + } + + /// + /// 获取打印模板列表 + /// + /// 模块id + /// + public DataResult GetOpenPrintTemplateList(string id) + { + // 只要平台信息参数一致,多个请求只需设置一次参数 + HttpUtillib.SetPlatformInfo(accessKey, accessSecret, ip, port, false); + DataResult res = new DataResult(); + + // 发起POST请求,超时时间15秒,返回响应字节数组 + string result = HttpUtillib.HttpGet(templateUrl+"?id=" + id, 15); + if (null == result) + { + res = DataResult.Failed("请求失败,请联系管理员"); + // 请求失败 + // Console.WriteLine("/artemis/api/resource/v1/cameras/indexCode: POST fail"); + } + else + { + res = JsonConvert.DeserializeObject(result); + // Console.WriteLine(System.Text.Encoding.UTF8.GetString(result)); + } + + return res; + } + /// + /// 获取Json打印信息 + /// + /// + /// + public DataResult GetOpenJsonPrintInfo(OpenJsonPrintReq req) + { + // 只要平台信息参数一致,多个请求只需设置一次参数 + HttpUtillib.SetPlatformInfo(accessKey, accessSecret, ip, port, false); + DataResult res = new DataResult(); + + // 发起POST请求,超时时间15秒,返回响应字节数组 + string result = HttpUtillib.HttpPost(jsonPrintInfoUrl, JsonConvert.SerializeObject(req), 30); + if (null == result) + { + res = DataResult.Failed("请求失败,请联系管理员"); + // 请求失败 + // Console.WriteLine("/artemis/api/resource/v1/cameras/indexCode: POST fail"); + } + else + { + res = JsonConvert.DeserializeObject(result); + // Console.WriteLine(System.Text.Encoding.UTF8.GetString(result)); + } + + return res; + } + } +} diff --git a/ds-wms-service/DS.Module.SqlSugar/SqlsugarHelper.cs b/ds-wms-service/DS.Module.SqlSugar/SqlsugarHelper.cs index 7a748089..bcb2b566 100644 --- a/ds-wms-service/DS.Module.SqlSugar/SqlsugarHelper.cs +++ b/ds-wms-service/DS.Module.SqlSugar/SqlsugarHelper.cs @@ -44,6 +44,12 @@ namespace DS.Module.SqlSugar if (tenantId == null || tenantId == 0) entityInfo.SetValue(user.GetTenantId()); } + if (entityInfo.PropertyName == "OrgId") + { + var orgId = ((dynamic)entityInfo.EntityValue).OrgId; + if (orgId == null || orgId == 0) + entityInfo.SetValue(user.GetOrgId()); + } if (entityInfo.PropertyName == "CreateBy") { diff --git a/ds-wms-service/DS.Module.UserModule/AspNetUser.cs b/ds-wms-service/DS.Module.UserModule/AspNetUser.cs index e96d12e1..b14430bc 100644 --- a/ds-wms-service/DS.Module.UserModule/AspNetUser.cs +++ b/ds-wms-service/DS.Module.UserModule/AspNetUser.cs @@ -228,7 +228,7 @@ public class AspNetUser : IUser if (_orgId == null) { var orgIdClaim = GetClaimValueByType("OrgId").FirstOrDefault(); - _orgId = orgIdClaim != null ? orgIdClaim.ObjToString() : "1111111111"; + _orgId = orgIdClaim != null ? orgIdClaim.ObjToString() : "0"; } return _orgId; } diff --git a/ds-wms-service/DS.WMS.Core/Code/Dtos/FormSetCreateRes.cs b/ds-wms-service/DS.WMS.Core/Code/Dtos/FormSetCreateRes.cs new file mode 100644 index 00000000..988bee36 --- /dev/null +++ b/ds-wms-service/DS.WMS.Core/Code/Dtos/FormSetCreateRes.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DS.WMS.Core.Code.Dtos +{ + /// + /// 新建表单获取默认值必填项 + /// + public class FormSetCreateRes + { + + /// + /// 主键Id + /// + public long Id { get; set; } + /// + /// 权限Id + /// + public long? PermissionId { get; set; } + /// + /// 权限模块名称 + /// + public string PermissionName { get; set; } + /// + /// 模板名称 + /// + public string TemplateName { get; set; } + /// + /// 字段设置 + /// + public string Content { get; set; } + } +} diff --git a/ds-wms-service/DS.WMS.Core/Code/Entity/CodeFormCopy.cs b/ds-wms-service/DS.WMS.Core/Code/Entity/CodeFormCopy.cs index 6c5e3938..c113c96e 100644 --- a/ds-wms-service/DS.WMS.Core/Code/Entity/CodeFormCopy.cs +++ b/ds-wms-service/DS.WMS.Core/Code/Entity/CodeFormCopy.cs @@ -7,7 +7,7 @@ namespace DS.WMS.Core.Code.Entity; /// /// 租户表单字段复制模板 /// -[SqlSugar.SugarTable("op_code_form_copy")] +[SqlSugar.SugarTable("op_code_form_copy", "租户表单字段复制模板")] public class CodeFormCopy : BaseOrgModel { /// diff --git a/ds-wms-service/DS.WMS.Core/Code/Entity/CodeFormSet.cs b/ds-wms-service/DS.WMS.Core/Code/Entity/CodeFormSet.cs index eaa7a8b9..574f0c87 100644 --- a/ds-wms-service/DS.WMS.Core/Code/Entity/CodeFormSet.cs +++ b/ds-wms-service/DS.WMS.Core/Code/Entity/CodeFormSet.cs @@ -7,7 +7,7 @@ namespace DS.WMS.Core.Code.Entity; /// /// 租户表单设置 /// -[SqlSugar.SugarTable("op_code_form_set")] +[SqlSugar.SugarTable("op_code_form_set", "租户表单设置")] public class CodeFormSet : BaseOrgModel { /// diff --git a/ds-wms-service/DS.WMS.Core/Code/Interface/IFormSetService.cs b/ds-wms-service/DS.WMS.Core/Code/Interface/IFormSetService.cs index e703ff75..ea981d4a 100644 --- a/ds-wms-service/DS.WMS.Core/Code/Interface/IFormSetService.cs +++ b/ds-wms-service/DS.WMS.Core/Code/Interface/IFormSetService.cs @@ -4,6 +4,9 @@ using DS.WMS.Core.System.Dtos; namespace DS.WMS.Core.Code.Interface; +/// +/// +/// public interface IFormSetService { /// @@ -27,4 +30,7 @@ public interface IFormSetService /// /// DataResult GetFormSetInfo(string id); + + + } \ No newline at end of file diff --git a/ds-wms-service/DS.WMS.Core/Code/Method/CodeFormCopyService.cs b/ds-wms-service/DS.WMS.Core/Code/Method/CodeFormCopyService.cs index 193c8b42..0af784a8 100644 --- a/ds-wms-service/DS.WMS.Core/Code/Method/CodeFormCopyService.cs +++ b/ds-wms-service/DS.WMS.Core/Code/Method/CodeFormCopyService.cs @@ -63,7 +63,7 @@ public class CodeFormCopyService : IFormCopyService if (req.Id == 0) { if (tenantDb.Queryable() - .Where(x => x.OrgId == long.Parse(user.OrgId) && x.PermissionId == req.PermissionId && x.CreateBy == long.Parse(user.UserId)).Any()) + .Where(x => x.OrgId == user.GetOrgId() && x.PermissionId == req.PermissionId && x.CreateBy == long.Parse(user.UserId)).Any()) { return DataResult.Failed("表单复制字段设置已存在!", MultiLanguageConst.FormCopyExist); } diff --git a/ds-wms-service/DS.WMS.Core/Code/Method/CodeFormSetService.cs b/ds-wms-service/DS.WMS.Core/Code/Method/CodeFormSetService.cs index 8c44c109..5ba92dbc 100644 --- a/ds-wms-service/DS.WMS.Core/Code/Method/CodeFormSetService.cs +++ b/ds-wms-service/DS.WMS.Core/Code/Method/CodeFormSetService.cs @@ -56,10 +56,11 @@ public class CodeFormSetService : IFormSetService public DataResult EditFormSet(CodeFormSetReq req) { var tenantDb = saasService.GetBizDbScopeById(user.TenantId); + //var orgId = user.GetOrgId(); if (req.Id == 0) { if (tenantDb.Queryable() - .Where(x => x.OrgId == long.Parse(user.OrgId) && x.PermissionId == req.PermissionId).Any()) + .Where(x => x.OrgId == user.GetOrgId() && x.PermissionId == req.PermissionId).Any()) { return DataResult.Failed("表单设置已存在!", MultiLanguageConst.FormSetExist); } @@ -95,4 +96,5 @@ public class CodeFormSetService : IFormSetService .First(); return DataResult.Success(data, MultiLanguageConst.DataQuerySuccess); } + } \ No newline at end of file diff --git a/ds-wms-service/DS.WMS.Core/Info/Entity/InfoClient.cs b/ds-wms-service/DS.WMS.Core/Info/Entity/InfoClient.cs index 6cf0e728..fa7c5a7b 100644 --- a/ds-wms-service/DS.WMS.Core/Info/Entity/InfoClient.cs +++ b/ds-wms-service/DS.WMS.Core/Info/Entity/InfoClient.cs @@ -7,7 +7,7 @@ namespace DS.WMS.Core.Info.Entity; /// /// 往来单位基本信息 /// -[SqlSugar.SugarTable("info_client")] +[SqlSugar.SugarTable("info_client", "往来单位基本信息")] public class InfoClient : BaseOrgModel { /// diff --git a/ds-wms-service/DS.WMS.Core/Info/Entity/InfoClientAccountDate.cs b/ds-wms-service/DS.WMS.Core/Info/Entity/InfoClientAccountDate.cs index 9fe0bc45..70fb609f 100644 --- a/ds-wms-service/DS.WMS.Core/Info/Entity/InfoClientAccountDate.cs +++ b/ds-wms-service/DS.WMS.Core/Info/Entity/InfoClientAccountDate.cs @@ -7,7 +7,7 @@ namespace DS.WMS.Core.Info.Entity; /// /// 往来单位-账期信息 /// -[SqlSugar.SugarTable("info_client_account_date")] +[SqlSugar.SugarTable("info_client_account_date", "往来单位-账期信息")] public class InfoClientAccountDate : BaseOrgModel { /// diff --git a/ds-wms-service/DS.WMS.Core/Info/Entity/InfoClientBank.cs b/ds-wms-service/DS.WMS.Core/Info/Entity/InfoClientBank.cs index b883ff26..c232b8e1 100644 --- a/ds-wms-service/DS.WMS.Core/Info/Entity/InfoClientBank.cs +++ b/ds-wms-service/DS.WMS.Core/Info/Entity/InfoClientBank.cs @@ -7,7 +7,7 @@ namespace DS.WMS.Core.Info.Entity; /// /// 往来单位-银行信息 /// -[SqlSugar.SugarTable("info_client_bank")] +[SqlSugar.SugarTable("info_client_bank", "往来单位-银行信息")] public class InfoClientBank : BaseOrgModel { /// diff --git a/ds-wms-service/DS.WMS.Core/Info/Entity/InfoClientContact.cs b/ds-wms-service/DS.WMS.Core/Info/Entity/InfoClientContact.cs index d2b07566..034656b9 100644 --- a/ds-wms-service/DS.WMS.Core/Info/Entity/InfoClientContact.cs +++ b/ds-wms-service/DS.WMS.Core/Info/Entity/InfoClientContact.cs @@ -7,7 +7,7 @@ namespace DS.WMS.Core.Info.Entity; /// /// 往来单位-联系人信息 /// -[SqlSugar.SugarTable("info_client_contact")] +[SqlSugar.SugarTable("info_client_contact", "往来单位-联系人信息")] public class InfoClientContact : BaseOrgModel { /// diff --git a/ds-wms-service/DS.WMS.Core/Info/Entity/InfoClientContract.cs b/ds-wms-service/DS.WMS.Core/Info/Entity/InfoClientContract.cs index 0aadd3c2..5803451c 100644 --- a/ds-wms-service/DS.WMS.Core/Info/Entity/InfoClientContract.cs +++ b/ds-wms-service/DS.WMS.Core/Info/Entity/InfoClientContract.cs @@ -7,7 +7,7 @@ namespace DS.WMS.Core.Info.Entity; /// /// 往来单位-合同信息 /// -[SqlSugar.SugarTable("info_client_contract")] +[SqlSugar.SugarTable("info_client_contract", "往来单位-合同信息")] public class InfoClientContract : BaseOrgModel { /// diff --git a/ds-wms-service/DS.WMS.Core/Info/Entity/InfoClientShipper.cs b/ds-wms-service/DS.WMS.Core/Info/Entity/InfoClientShipper.cs index 6a0e4591..49478189 100644 --- a/ds-wms-service/DS.WMS.Core/Info/Entity/InfoClientShipper.cs +++ b/ds-wms-service/DS.WMS.Core/Info/Entity/InfoClientShipper.cs @@ -7,7 +7,7 @@ namespace DS.WMS.Core.Info.Entity; /// /// 往来单位-收发货人信息 /// -[SqlSugar.SugarTable("info_client_shipper")] +[SqlSugar.SugarTable("info_client_shipper", "往来单位-收发货人信息")] public class InfoClientShipper : BaseOrgModel { /// diff --git a/ds-wms-service/DS.WMS.Core/Info/Entity/InfoClientTag.cs b/ds-wms-service/DS.WMS.Core/Info/Entity/InfoClientTag.cs index 7ae89f29..78932aac 100644 --- a/ds-wms-service/DS.WMS.Core/Info/Entity/InfoClientTag.cs +++ b/ds-wms-service/DS.WMS.Core/Info/Entity/InfoClientTag.cs @@ -6,7 +6,7 @@ namespace DS.WMS.Core.Info.Entity; /// /// 往来单位标识 /// -[SqlSugar.SugarTable("info_client_tag")] +[SqlSugar.SugarTable("info_client_tag", "往来单位标识")] public class InfoClientTag : BaseOrgModel { /// diff --git a/ds-wms-service/DS.WMS.Core/System/Dtos/UserQuerySetUpdateReq.cs b/ds-wms-service/DS.WMS.Core/System/Dtos/UserQuerySetUpdateReq.cs new file mode 100644 index 00000000..2182704d --- /dev/null +++ b/ds-wms-service/DS.WMS.Core/System/Dtos/UserQuerySetUpdateReq.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DS.WMS.Core.System.Dtos +{ + /// + /// 用户高级查询条件设置请求 + /// + public class UserQuerySetUpdateReq + { + /// + /// 权限Id + /// + public long? PermissionId { get; set; } + + /// + /// 高级查询条件设置 + /// + public string Content { get; set; } + } +} diff --git a/ds-wms-service/DS.WMS.Core/System/Entity/SysQuerySet.cs b/ds-wms-service/DS.WMS.Core/System/Entity/SysQuerySet.cs new file mode 100644 index 00000000..992c5879 --- /dev/null +++ b/ds-wms-service/DS.WMS.Core/System/Entity/SysQuerySet.cs @@ -0,0 +1,32 @@ +using SqlSugar; + +namespace DS.WMS.Core.System.Entity; + +/// +/// 用户高级查询条件设置 +/// +[SqlSugar.SugarTable("sys_query_set")] +public class SysQuerySet +{ + /// + /// ID + /// + [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + public int Id { get; set; } + + /// + /// 用户id + /// + public long? UserId { get; set; } + + /// + /// 权限Id + /// + public long? PermissionId { get; set; } + + /// + /// 查询条件设置 + /// + [SugarColumn(ColumnDescription = "查询条件设置", IsNullable = true, ColumnDataType = StaticConfig.CodeFirst_BigString)] + public string Content { get; set; } +} \ No newline at end of file diff --git a/ds-wms-service/DS.WMS.Core/System/Interface/IClientCommonService.cs b/ds-wms-service/DS.WMS.Core/System/Interface/IClientCommonService.cs index 7bf31a04..92ea9479 100644 --- a/ds-wms-service/DS.WMS.Core/System/Interface/IClientCommonService.cs +++ b/ds-wms-service/DS.WMS.Core/System/Interface/IClientCommonService.cs @@ -225,4 +225,26 @@ public interface IClientCommonService /// /// public DataResult> GetServiceSelectList(); + + /// + /// 获取用户高级查询设置 + /// + /// + /// + public DataResult GetUserQuerySet(string permissionId); + + + /// + /// 更新用户高级查询设置 + /// + /// + /// + public DataResult UpdateUserQuerySet(UserQuerySetUpdateReq req); + + /// + /// 获取模块新增信息 + /// + /// 权限模块id + /// + Task> GetFormSetCreateInfoAsync(string id); } \ No newline at end of file diff --git a/ds-wms-service/DS.WMS.Core/System/Interface/ICommonService.cs b/ds-wms-service/DS.WMS.Core/System/Interface/ICommonService.cs index 5e9a4d6a..0af2d6d2 100644 --- a/ds-wms-service/DS.WMS.Core/System/Interface/ICommonService.cs +++ b/ds-wms-service/DS.WMS.Core/System/Interface/ICommonService.cs @@ -149,6 +149,18 @@ public interface ICommonService /// public DataResult> GetColumns(string tableViewName); + + /// + /// 获取表及视图-按客户 + /// + /// + public DataResult> GetTablesByClient(); + /// + /// 获取列字段-按客户 + /// + /// 表名 + /// + public DataResult> GetColumnsByClient(string tableViewName); /// /// 获取用户字段设置 /// diff --git a/ds-wms-service/DS.WMS.Core/System/Method/ClientCommonService.cs b/ds-wms-service/DS.WMS.Core/System/Method/ClientCommonService.cs index 26fa6dc7..f379209d 100644 --- a/ds-wms-service/DS.WMS.Core/System/Method/ClientCommonService.cs +++ b/ds-wms-service/DS.WMS.Core/System/Method/ClientCommonService.cs @@ -681,4 +681,87 @@ public class ClientCommonService : IClientCommonService ).ToList(); return DataResult>.Success("获取数据成功!", data, MultiLanguageConst.DataQuerySuccess); } + + #region 用户高级查询条件设置 + + /// + /// 获取用户高级查询条件设置 + /// + /// + /// + public DataResult GetUserQuerySet(string permissionId) + { + var info = db.Queryable() + .Where(x => x.UserId == long.Parse(user.UserId) && x.PermissionId == long.Parse(permissionId)).First(); + + return DataResult.Success(info); + } + + /// + /// 更新用户高级查询条件设置 + /// + /// + /// + public DataResult UpdateUserQuerySet(UserQuerySetUpdateReq req) + { + var info = db.Queryable() + .Where(x => x.UserId == long.Parse(user.UserId) && x.PermissionId == req.PermissionId).First(); + + if (info.IsNull()) + { + var entity = new SysQuerySet + { + UserId = long.Parse(user.UserId), + PermissionId = req.PermissionId, + Content = req.Content + }; + db.Insertable(entity).ExecuteCommand(); + } + else + { + info.Content = req.Content; + db.Updateable(info).ExecuteCommand(); + } + + return DataResult.Successed("更新成功"); + } + + #endregion + + /// + /// 获取模块新增信息 + /// + /// 权限模块id + /// + public async Task> GetFormSetCreateInfoAsync(string id) + { + var res = new FormSetCreateRes(); + var tenantDb = saasService.GetBizDbScopeById(user.TenantId); + //判断有没有自己设置的模板 + var ownSet = await tenantDb.Queryable() + .Where(x => x.PermissionId == long.Parse(id) && x.CreateBy == long.Parse(user.UserId)) + .Select() + .FirstAsync(); + + if (ownSet != null) + { + return await Task.FromResult(DataResult.Success(ownSet)); + } + else + { + + var publicSet = await tenantDb.Queryable() + .Where(x => x.PermissionId == long.Parse(id)) + .Select() + .FirstAsync(); + if (publicSet != null) + { + return await Task.FromResult(DataResult.Success(publicSet)); + } + else + { + return await Task.FromResult(DataResult.Failed(MultiLanguageConst.FormSetNotExist)); + } + } + } } \ No newline at end of file diff --git a/ds-wms-service/DS.WMS.Core/System/Method/CommonService.cs b/ds-wms-service/DS.WMS.Core/System/Method/CommonService.cs index 16b93748..33db127c 100644 --- a/ds-wms-service/DS.WMS.Core/System/Method/CommonService.cs +++ b/ds-wms-service/DS.WMS.Core/System/Method/CommonService.cs @@ -376,7 +376,7 @@ public class CommonService : ICommonService OrgId = orgRelation.OrgId.ToString(), TenantId = userInfo.TenantId.ToString(), }; - var token = JwtHelper.Encrypt(tokenModel, false, false); + var token = JwtHelper.Encrypt(tokenModel, false, true); var visLog = new SysLogVisit() { @@ -416,7 +416,7 @@ public class CommonService : ICommonService OrgId = user.GetOrgId().ToString(), TenantId = tenantId.ToString(), }; - var refreshToken = JwtHelper.Encrypt(tokenModel, true, false); + var refreshToken = JwtHelper.Encrypt(tokenModel, true, true); var data = db.Queryable().Filter(null, true).Where(x => x.Id == userId) .Select(a => new CurrentUserViewModel @@ -1131,7 +1131,7 @@ public class CommonService : ICommonService #region 获取数据库表及字段属性 /// - /// + /// 获取数据库表 /// /// public DataResult> GetTables() @@ -1141,7 +1141,7 @@ public class CommonService : ICommonService } /// - /// + /// 获取数据库表字段 /// /// /// @@ -1151,6 +1151,30 @@ public class CommonService : ICommonService return DataResult>.Success("获取数据成功", data); } + + /// + /// 获取数据库表-按客户 + /// + /// + public DataResult> GetTablesByClient() + { + var tenantDb = saasService.GetBizDbScopeById(user.TenantId); + var data = tenantDb.DbMaintenance.GetTableInfoList(); + return DataResult>.Success("获取数据成功", data); + } + + /// + /// 获取数据库表字段-按客户 + /// + /// + /// + public DataResult> GetColumnsByClient(string tableViewName) + { + var tenantDb = saasService.GetBizDbScopeById(user.TenantId); + var data = tenantDb.DbMaintenance.GetColumnInfosByTableName(tableViewName); + return DataResult>.Success("获取数据成功", data); + } + #endregion #region 用户字段设置 diff --git a/ds-wms-service/DS.WMS.MainApi/Controllers/ClientCommonController.cs b/ds-wms-service/DS.WMS.MainApi/Controllers/ClientCommonController.cs index 946835ab..c2d7c6d8 100644 --- a/ds-wms-service/DS.WMS.MainApi/Controllers/ClientCommonController.cs +++ b/ds-wms-service/DS.WMS.MainApi/Controllers/ClientCommonController.cs @@ -417,4 +417,44 @@ public class ClientCommonController : ApiController var res = _invokeService.GetServiceSelectList(); return res; } + + /// + /// 获取用户高级查询条件设置 + /// + /// 权限模块id + /// + [HttpGet] + [Route("GetUserQuerySet")] + public DataResult GetUserQuerySet([FromQuery] string permissionId) + { + var res = _invokeService.GetUserQuerySet(permissionId); + return res; + } + + + /// + /// 更新用户高级查询条件设置 + /// + /// + /// + [HttpPost] + [Route("UpdateUserQuerySet")] + public DataResult UpdateUserQuerySet([FromBody] UserQuerySetUpdateReq req) + { + var res = _invokeService.UpdateUserQuerySet(req); + return res; + } + + /// + /// 获取模块新增信息 + /// + /// 权限模块Id + /// + [HttpGet] + [Route("GetFormSetCreateInfoAsync")] + public async Task> GetFormSetCreateInfoAsync([FromQuery] string id) + { + var res = await _invokeService.GetFormSetCreateInfoAsync(id); + return res; + } } \ No newline at end of file diff --git a/ds-wms-service/DS.WMS.MainApi/Controllers/CommonController.cs b/ds-wms-service/DS.WMS.MainApi/Controllers/CommonController.cs index 23df75a0..75c1366d 100644 --- a/ds-wms-service/DS.WMS.MainApi/Controllers/CommonController.cs +++ b/ds-wms-service/DS.WMS.MainApi/Controllers/CommonController.cs @@ -354,7 +354,30 @@ public class CommonController : ApiController var res = _invokeService.GetColumns(tableViewName); return res; } - + + /// + /// 获取数据库表及视图名-客户端 + /// + /// + [HttpGet] + [Route("GetTablesByClient")] + public DataResult> GetTablesByClient() + { + var res = _invokeService.GetTablesByClient(); + return res; + } + + /// + /// 获取数据库表及视图名-客户端 + /// + /// + [HttpGet] + [Route("GetColumnsByClient")] + public DataResult> GetColumnsByClient([FromQuery] string tableViewName) + { + var res = _invokeService.GetColumnsByClient(tableViewName); + return res; + } /// /// 获取用户字段设置 /// diff --git a/ds-wms-service/DS.WMS.MainApi/Controllers/FormSetController.cs b/ds-wms-service/DS.WMS.MainApi/Controllers/FormSetController.cs index 5506cb40..ae8c521a 100644 --- a/ds-wms-service/DS.WMS.MainApi/Controllers/FormSetController.cs +++ b/ds-wms-service/DS.WMS.MainApi/Controllers/FormSetController.cs @@ -61,4 +61,6 @@ public class FormSetController : ApiController var res = _invokeService.GetFormSetInfo(id); return res; } + + } \ No newline at end of file diff --git a/ds-wms-service/DS.WMS.MainApi/Logs/internal-nlog.txt b/ds-wms-service/DS.WMS.MainApi/Logs/internal-nlog.txt index 685fda8b..b18ea192 100644 --- a/ds-wms-service/DS.WMS.MainApi/Logs/internal-nlog.txt +++ b/ds-wms-service/DS.WMS.MainApi/Logs/internal-nlog.txt @@ -1006,3 +1006,129 @@ 2024-03-22 15:20:15.8155 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\ds8-solution\ds-wms-service\DS.WMS.MainApi\bin\Debug\net8.0\nlog.config 2024-03-22 15:20:15.8391 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile 2024-03-22 15:20:15.9040 Info Configuration initialized. +2024-04-08 10:09:10.2207 Info Registered target NLog.Targets.FileTarget(Name=allfile) +2024-04-08 10:09:10.2510 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web) +2024-04-08 10:09:10.2510 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console) +2024-04-08 10:09:10.2778 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False +2024-04-08 10:09:10.2901 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\ds8-solution\ds-wms-service\DS.WMS.MainApi\bin\Debug\net8.0\nlog.config +2024-04-08 10:09:10.2901 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile +2024-04-08 10:09:10.3066 Info Configuration initialized. +2024-04-08 13:48:40.3741 Info Registered target NLog.Targets.FileTarget(Name=allfile) +2024-04-08 13:48:40.4078 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web) +2024-04-08 13:48:40.4078 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console) +2024-04-08 13:48:40.4457 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False +2024-04-08 13:48:40.4724 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\ds8-solution\ds-wms-service\DS.WMS.MainApi\bin\Debug\net8.0\nlog.config +2024-04-08 13:48:40.4846 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile +2024-04-08 13:48:40.5011 Info Configuration initialized. +2024-04-08 13:59:14.5993 Info Registered target NLog.Targets.FileTarget(Name=allfile) +2024-04-08 13:59:14.6266 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web) +2024-04-08 13:59:14.6266 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console) +2024-04-08 13:59:14.6579 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False +2024-04-08 13:59:14.6716 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\ds8-solution\ds-wms-service\DS.WMS.MainApi\bin\Debug\net8.0\nlog.config +2024-04-08 13:59:14.6716 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile +2024-04-08 13:59:14.6971 Info Configuration initialized. +2024-04-08 14:09:10.4100 Info Registered target NLog.Targets.FileTarget(Name=allfile) +2024-04-08 14:09:10.4380 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web) +2024-04-08 14:09:10.4380 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console) +2024-04-08 14:09:10.4667 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False +2024-04-08 14:09:10.4667 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\ds8-solution\ds-wms-service\DS.WMS.MainApi\bin\Debug\net8.0\nlog.config +2024-04-08 14:09:10.4872 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile +2024-04-08 14:09:10.4984 Info Configuration initialized. +2024-04-08 16:31:07.8305 Info Registered target NLog.Targets.FileTarget(Name=allfile) +2024-04-08 16:31:07.8948 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web) +2024-04-08 16:31:07.9053 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console) +2024-04-08 16:31:07.9344 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False +2024-04-08 16:31:07.9491 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\ds8-solution\ds-wms-service\DS.WMS.MainApi\bin\Release\net8.0\nlog.config +2024-04-08 16:31:07.9569 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile +2024-04-08 16:31:07.9718 Info Configuration initialized. +2024-04-08 16:32:10.0449 Info Registered target NLog.Targets.FileTarget(Name=allfile) +2024-04-08 16:32:10.0760 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web) +2024-04-08 16:32:10.0851 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console) +2024-04-08 16:32:10.1065 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False +2024-04-08 16:32:10.1221 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\ds8-solution\ds-wms-service\DS.WMS.MainApi\bin\Debug\net8.0\nlog.config +2024-04-08 16:32:10.1296 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile +2024-04-08 16:32:10.1557 Info Configuration initialized. +2024-04-08 16:49:18.7836 Info Registered target NLog.Targets.FileTarget(Name=allfile) +2024-04-08 16:49:18.8033 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web) +2024-04-08 16:49:18.8033 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console) +2024-04-08 16:49:18.8239 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False +2024-04-08 16:49:18.8339 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\ds8-solution\ds-wms-service\DS.WMS.MainApi\bin\Debug\net8.0\nlog.config +2024-04-08 16:49:18.8339 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile +2024-04-08 16:49:18.8479 Info Configuration initialized. +2024-04-08 16:59:46.1775 Info Registered target NLog.Targets.FileTarget(Name=allfile) +2024-04-08 16:59:46.2039 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web) +2024-04-08 16:59:46.2039 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console) +2024-04-08 16:59:46.2319 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False +2024-04-08 16:59:46.2496 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\ds8-solution\ds-wms-service\DS.WMS.MainApi\bin\Debug\net8.0\nlog.config +2024-04-08 16:59:46.2496 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile +2024-04-08 16:59:46.2763 Info Configuration initialized. +2024-04-08 17:00:46.4418 Info Registered target NLog.Targets.FileTarget(Name=allfile) +2024-04-08 17:00:46.4811 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web) +2024-04-08 17:00:46.4965 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console) +2024-04-08 17:00:46.5235 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False +2024-04-08 17:00:46.5410 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\ds8-solution\ds-wms-service\DS.WMS.MainApi\bin\Debug\net8.0\nlog.config +2024-04-08 17:00:46.5514 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile +2024-04-08 17:00:46.5731 Info Configuration initialized. +2024-04-08 17:05:46.5592 Info Registered target NLog.Targets.FileTarget(Name=allfile) +2024-04-08 17:05:46.6040 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web) +2024-04-08 17:05:46.6178 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console) +2024-04-08 17:05:46.6540 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False +2024-04-08 17:05:46.6829 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\ds8-solution\ds-wms-service\DS.WMS.MainApi\bin\Debug\net8.0\nlog.config +2024-04-08 17:05:46.6950 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile +2024-04-08 17:05:46.7298 Info Configuration initialized. +2024-04-08 17:07:52.1587 Info Registered target NLog.Targets.FileTarget(Name=allfile) +2024-04-08 17:07:52.1890 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web) +2024-04-08 17:07:52.1890 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console) +2024-04-08 17:07:52.2210 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False +2024-04-08 17:07:52.2403 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\ds8-solution\ds-wms-service\DS.WMS.MainApi\bin\Debug\net8.0\nlog.config +2024-04-08 17:07:52.2483 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile +2024-04-08 17:07:52.2483 Info Configuration initialized. +2024-04-08 17:11:15.7620 Info Registered target NLog.Targets.FileTarget(Name=allfile) +2024-04-08 17:11:15.8124 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web) +2024-04-08 17:11:15.8330 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console) +2024-04-08 17:11:15.8637 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False +2024-04-08 17:11:15.8786 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\ds8-solution\ds-wms-service\DS.WMS.MainApi\bin\Debug\net8.0\nlog.config +2024-04-08 17:11:15.8786 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile +2024-04-08 17:11:15.9038 Info Configuration initialized. +2024-04-08 17:14:25.1661 Info Registered target NLog.Targets.FileTarget(Name=allfile) +2024-04-08 17:14:25.2291 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web) +2024-04-08 17:14:25.2460 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console) +2024-04-08 17:14:25.2810 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False +2024-04-08 17:14:25.3114 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\ds8-solution\ds-wms-service\DS.WMS.MainApi\bin\Debug\net8.0\nlog.config +2024-04-08 17:14:25.3307 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile +2024-04-08 17:14:25.3619 Info Configuration initialized. +2024-04-08 17:15:30.5101 Info Registered target NLog.Targets.FileTarget(Name=allfile) +2024-04-08 17:15:30.6174 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web) +2024-04-08 17:15:30.6373 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console) +2024-04-08 17:15:30.7669 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False +2024-04-08 17:15:30.8144 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\ds8-solution\ds-wms-service\DS.WMS.MainApi\bin\Debug\net8.0\nlog.config +2024-04-08 17:15:30.8382 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile +2024-04-08 17:15:30.8714 Info Configuration initialized. +2024-04-08 17:21:34.7371 Info Registered target NLog.Targets.FileTarget(Name=allfile) +2024-04-08 17:21:35.0378 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web) +2024-04-08 17:21:35.0595 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console) +2024-04-08 17:21:35.1049 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False +2024-04-08 17:21:35.1372 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\ds8-solution\ds-wms-service\DS.WMS.MainApi\bin\Debug\net8.0\nlog.config +2024-04-08 17:21:35.1616 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile +2024-04-08 17:21:35.2097 Info Configuration initialized. +2024-04-08 17:37:32.8181 Info Registered target NLog.Targets.FileTarget(Name=allfile) +2024-04-08 17:37:32.8443 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web) +2024-04-08 17:37:32.8443 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console) +2024-04-08 17:37:32.8728 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False +2024-04-08 17:37:32.8728 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\ds8-solution\ds-wms-service\DS.WMS.MainApi\bin\Debug\net8.0\nlog.config +2024-04-08 17:37:32.8939 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile +2024-04-08 17:37:32.9082 Info Configuration initialized. +2024-04-08 17:40:12.3325 Info Registered target NLog.Targets.FileTarget(Name=allfile) +2024-04-08 17:40:12.3641 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web) +2024-04-08 17:40:12.3732 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console) +2024-04-08 17:40:12.4012 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False +2024-04-08 17:40:12.4320 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\ds8-solution\ds-wms-service\DS.WMS.MainApi\bin\Debug\net8.0\nlog.config +2024-04-08 17:40:12.4464 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile +2024-04-08 17:40:12.4719 Info Configuration initialized. +2024-04-08 17:44:13.5165 Info Registered target NLog.Targets.FileTarget(Name=allfile) +2024-04-08 17:44:13.5602 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web) +2024-04-08 17:44:13.5602 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console) +2024-04-08 17:44:13.5999 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False +2024-04-08 17:44:13.6177 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\ds8-solution\ds-wms-service\DS.WMS.MainApi\bin\Debug\net8.0\nlog.config +2024-04-08 17:44:13.6281 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile +2024-04-08 17:44:13.6504 Info Configuration initialized. diff --git a/ds-wms-service/DS.WMS.MainApi/appsettings.json b/ds-wms-service/DS.WMS.MainApi/appsettings.json index 69cef8c2..4f5c95bf 100644 --- a/ds-wms-service/DS.WMS.MainApi/appsettings.json +++ b/ds-wms-service/DS.WMS.MainApi/appsettings.json @@ -48,5 +48,14 @@ "BasePath": "", //基础路径,不配置则使用当前系统目录 "RelativePath": "LinkAttach", "FileType": [ ".xls", ".xlsx", ".pdf", ".txt", ".pms" ] + }, + "PrintService": { + "IP": "60.209.125.238", + "Port": "3009", + "AccessKey": "1777229107311022080", + "AccessSecret": "d816e6fe938f24e2f205db129d31286a", + "GetModuleListUrl": "/printApi/OpenPrint/GetPrintModuleList", + "GetTemplateListUrl": "/printApi/OpenPrint/GetPrintTemplateList", + "GetJsonPrintInfoUrl": "/printApi/OpenPrint/GetOpenJsonPrintInfo" } } \ No newline at end of file diff --git a/ds-wms-service/DS.WMS.Test/DS.WMS.Test.csproj b/ds-wms-service/DS.WMS.Test/DS.WMS.Test.csproj index dbe8538b..cae785ad 100644 --- a/ds-wms-service/DS.WMS.Test/DS.WMS.Test.csproj +++ b/ds-wms-service/DS.WMS.Test/DS.WMS.Test.csproj @@ -11,8 +11,8 @@ - - + + runtime; build; native; contentfiles; analyzers; buildtransitive @@ -27,6 +27,7 @@ + diff --git a/ds-wms-service/DS.WMS.Test/OpTest.cs b/ds-wms-service/DS.WMS.Test/OpTest.cs new file mode 100644 index 00000000..433db559 --- /dev/null +++ b/ds-wms-service/DS.WMS.Test/OpTest.cs @@ -0,0 +1,42 @@ +using System.Reflection; +using DS.Module.Core; +using DS.Module.Core.Extensions; +using DS.Module.SqlSugar; +using DS.WMS.Core.Code.Interface; +using DS.WMS.Core.System.Entity; +using DS.WMS.Core.System.Interface; +using Microsoft.Extensions.DependencyInjection; +using SqlSugar; +using SqlSugar.IOC; +using Xunit; + +namespace Ds.WMS.Test; + +public class OpTest +{ + private readonly IServiceProvider _serviceProvider; + private readonly SqlSugarScope db; + private readonly ISaasDbService saasService; + private readonly IClientCommonService _formSetService; + public OpTest(IServiceProvider serviceProvider) + { + _serviceProvider = serviceProvider; + db = (SqlSugarScope)_serviceProvider.GetRequiredService(); + saasService = _serviceProvider.GetRequiredService(); + _formSetService = _serviceProvider.GetRequiredService(); + } + + [Fact] + public async void OpTest1() + { + //var tenantDb = saasService.GetBizDbScopeById("1750335377144680448"); + + var data = await _formSetService.GetFormSetCreateInfoAsync("1750335377144680448"); + + + Assert.True(true); + } + + + +} \ No newline at end of file diff --git a/ds-wms-service/DS.WMS.Test/PrintTest.cs b/ds-wms-service/DS.WMS.Test/PrintTest.cs new file mode 100644 index 00000000..3648d485 --- /dev/null +++ b/ds-wms-service/DS.WMS.Test/PrintTest.cs @@ -0,0 +1,65 @@ +using System.Reflection; +using DS.Module.Core; +using DS.Module.Core.Extensions; +using DS.Module.PrintModule; +using DS.Module.SqlSugar; +using DS.WMS.Core.Code.Interface; +using DS.WMS.Core.System.Entity; +using DS.WMS.Core.System.Interface; +using Microsoft.Extensions.DependencyInjection; +using SqlSugar; +using SqlSugar.IOC; +using Xunit; + +namespace Ds.WMS.Test; + +public class PrintTest +{ + private readonly IServiceProvider _serviceProvider; + private readonly SqlSugarScope db; + private readonly ISaasDbService saasService; + private readonly IPrintService _printService; + public PrintTest(IServiceProvider serviceProvider) + { + _serviceProvider = serviceProvider; + db = (SqlSugarScope)_serviceProvider.GetRequiredService(); + saasService = _serviceProvider.GetRequiredService(); + _printService = _serviceProvider.GetRequiredService(); + } + + /// + /// ȡӡģб + /// + [Fact] + public void GetOpenPrintModuleList() + { + var data = _printService.GetOpenPrintModuleList(); + Assert.True(data.Succeeded); + } + /// + /// ȡӡģб + /// + [Fact] + public void GetOpenPrintTemplateList() + { + + var data = _printService.GetOpenPrintTemplateList("1777229219986804736"); + Assert.True(data.Succeeded); + } + + /// + /// ȡJsonӡϢ + /// + [Fact] + public void GetOpenJsonPrintInfo() + { + var req = new OpenJsonPrintReq() + { + TemplateId = 1777232318486941696, + JsonDataStr = "{\"GID\":\"52fc4ecf-5c88-49a8-aa1f-08da84ccc2d3\",\"BILLTYPE\":false,\"TRUCKNO\":\"³A789\",\"BoxWeigth\":10540,\"BoxCode\":\"A124\",\"BoxCode2\":null,\"ISTwoBox\":false,\"CORPID\":null,\"CreateDate\":\"2023-12-22T09:55:43.0332931+08:00\",\"CreateID\":null,\"Creator\":null,\"TURNOVERDATE\":\"2023-12-22T09:55:43.0333166+08:00\",\"Modifier\":null,\"ModifyDate\":null,\"ModifyID\":null,\"REMARK\":null}" + }; + var data = _printService.GetOpenJsonPrintInfo(req); + Assert.True(data.Succeeded); + } + +} \ No newline at end of file diff --git a/ds-wms-service/DS.WMS.Test/Startup.cs b/ds-wms-service/DS.WMS.Test/Startup.cs index bf97e580..e2282133 100644 --- a/ds-wms-service/DS.WMS.Test/Startup.cs +++ b/ds-wms-service/DS.WMS.Test/Startup.cs @@ -1,6 +1,7 @@ using Autofac; using Autofac.Extensions.DependencyInjection; using DS.Module.AutofacModule; +using DS.Module.PrintModule; using DS.Module.SqlSugar; using DS.Module.UserModule; using Microsoft.Extensions.DependencyInjection; @@ -52,6 +53,7 @@ public class Startup services.AddUserModuleInstall(); //用户服务 services.AddSqlSugarInstall(); services.AddSaasDbInstall(); + services.AddPrintModuleInstall(); } /// diff --git a/ds-wms-service/DS.WMS.Test/appsettings.json b/ds-wms-service/DS.WMS.Test/appsettings.json index 58050367..676d75ff 100644 --- a/ds-wms-service/DS.WMS.Test/appsettings.json +++ b/ds-wms-service/DS.WMS.Test/appsettings.json @@ -1,42 +1,51 @@ { - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft.AspNetCore": "Warning" + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*", + "JwtSettings": { + "Issuer": "vol.core.owner", + "Audience": "vol.core", + "User": "C5ABA9E202D94C43A3CA66002BF77FAF", + "SecretKey": "sdfsdfsrty45634kkhllghtdgdfss345t678fs" + }, + "Cors": { + "PolicyName": "WMSCore.API", + "Url": "http://localhost:8000,http://localhost:5999,http://localhost:8088,http://localhost:5173,http://0.0.0.0:5999,http://0.0.0.0:9995,http://localhost:9995,http://60.209.125.238:9995,http://localhost:3000,https://localhost:3100,http://47.104.255.182:3100,http://47.104.255.182:3110,https://localhost:3110,http://localhost:8080,http://localhost:8081,http://localhost:8082,http://localhost:8083,http://localhost:8084" + }, + "DBInfo": { + "DefaultDbConnId": "1288018625843826688", + "DefaultDbType": 0, + "DefaultDbString": "server=60.209.125.238;port=32006;uid=root;pwd=Djy@Mysql.test;database=shippingweb8_dev", + "DBS": [ + { + "ConnId": "1595354960864874496", + "DBType": 1, + "Enabled": false, + "HitRate": 40, + "Connection": "Data Source=47.105.193.36,11435;Initial Catalog=SHIPPINGWEB_JNHJ;Integrated Security=False;Connect Timeout=500;User ID=sa;Password=Ds20040201", + "ProviderName": "System.Data.SqlClient" + } + ] + }, + "SwaggerDoc": { + "ContactName": "WmsAdminAPI", + "ContactEmail": "Wms API.Core@xxx.com", + "ContactUrl": "https://www.xxx.com", + "Version": "1.0", + "Title": "Wms Admin API", + "Description": "Wms Admin API" + }, + "PrintService": { + "IP": "60.209.125.238", + "Port": "3009", + "AccessKey": "1777229107311022080", + "AccessSecret": "d816e6fe938f24e2f205db129d31286a", + "GetModuleListUrl": "/printApi/OpenPrint/GetPrintModuleList", + "GetTemplateListUrl": "/printApi/OpenPrint/GetPrintTemplateList", + "GetJsonPrintInfoUrl": "/printApi/OpenPrint/GetOpenJsonPrintInfo" } - }, - "AllowedHosts": "*", - "JwtSettings": { - "Issuer": "vol.core.owner", - "Audience": "vol.core", - "User": "C5ABA9E202D94C43A3CA66002BF77FAF", - "SecretKey": "sdfsdfsrty45634kkhllghtdgdfss345t678fs" - }, - "Cors": { - "PolicyName": "WMSCore.API", - "Url": "http://localhost:8000,http://localhost:5999,http://localhost:8088,http://localhost:5173,http://0.0.0.0:5999,http://0.0.0.0:9995,http://localhost:9995,http://60.209.125.238:9995,http://localhost:3000,https://localhost:3100,http://47.104.255.182:3100,http://47.104.255.182:3110,https://localhost:3110,http://localhost:8080,http://localhost:8081,http://localhost:8082,http://localhost:8083,http://localhost:8084" - }, - "DBInfo": { - "DefaultDbConnId": "1288018625843826688", - "DefaultDbType": 0, - "DefaultDbString": "server=60.209.125.238;port=32006;uid=root;pwd=Djy@Mysql.test;database=shippingweb8_dev", - "DBS": [ - { - "ConnId": "1595354960864874496", - "DBType": 1, - "Enabled": false, - "HitRate": 40, - "Connection": "Data Source=47.105.193.36,11435;Initial Catalog=SHIPPINGWEB_JNHJ;Integrated Security=False;Connect Timeout=500;User ID=sa;Password=Ds20040201", - "ProviderName": "System.Data.SqlClient" - } - ] - }, - "SwaggerDoc": { - "ContactName": "WmsAdminAPI", - "ContactEmail": "Wms API.Core@xxx.com", - "ContactUrl": "https://www.xxx.com", - "Version": "1.0", - "Title": "Wms Admin API", - "Description": "Wms Admin API" - } } \ No newline at end of file diff --git a/ds-wms-service/ds-wms-service.sln b/ds-wms-service/ds-wms-service.sln index 62bd6a64..89c929e5 100644 --- a/ds-wms-service/ds-wms-service.sln +++ b/ds-wms-service/ds-wms-service.sln @@ -61,13 +61,15 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ds.WMS.WebCore", "Ds.WMS.We EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ds.WMS.MogonDb", "Ds.WMS.MogonDb\Ds.WMS.MogonDb.csproj", "{47702656-3E62-4477-B72C-ADA39034B5A7}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DS.WMS.Test", "DS.WMS.Test\DS.WMS.Test.csproj", "{A8749917-1B4C-4976-98F7-C0A1B043DE38}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DS.WMS.Test", "DS.WMS.Test\DS.WMS.Test.csproj", "{A8749917-1B4C-4976-98F7-C0A1B043DE38}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DS.Module.MultiLanguage", "DS.Module.MultiLanguage\DS.Module.MultiLanguage.csproj", "{FE82ABD4-CE11-49F6-823C-6E0B64135FFC}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DS.Module.MultiLanguage", "DS.Module.MultiLanguage\DS.Module.MultiLanguage.csproj", "{FE82ABD4-CE11-49F6-823C-6E0B64135FFC}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DS.Module.Log", "DS.Module.Log\DS.Module.Log.csproj", "{739899DE-D41F-4083-94E1-EDA349344ECC}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DS.Module.Log", "DS.Module.Log\DS.Module.Log.csproj", "{739899DE-D41F-4083-94E1-EDA349344ECC}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DS.Module.Middleware", "DS.Module.Middleware\DS.Module.Middleware.csproj", "{B0351554-748F-4DF8-8C22-152646937EFE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DS.Module.Middleware", "DS.Module.Middleware\DS.Module.Middleware.csproj", "{B0351554-748F-4DF8-8C22-152646937EFE}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DS.Module.PrintModule", "DS.Module.PrintModule\DS.Module.PrintModule.csproj", "{F7ACC016-4181-4B26-9550-FB18A2053503}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -191,6 +193,10 @@ Global {B0351554-748F-4DF8-8C22-152646937EFE}.Debug|Any CPU.Build.0 = Debug|Any CPU {B0351554-748F-4DF8-8C22-152646937EFE}.Release|Any CPU.ActiveCfg = Release|Any CPU {B0351554-748F-4DF8-8C22-152646937EFE}.Release|Any CPU.Build.0 = Release|Any CPU + {F7ACC016-4181-4B26-9550-FB18A2053503}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F7ACC016-4181-4B26-9550-FB18A2053503}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F7ACC016-4181-4B26-9550-FB18A2053503}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F7ACC016-4181-4B26-9550-FB18A2053503}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -225,6 +231,7 @@ Global {FE82ABD4-CE11-49F6-823C-6E0B64135FFC} = {518DB9B5-80A8-4B2C-8570-52BD406458DE} {739899DE-D41F-4083-94E1-EDA349344ECC} = {518DB9B5-80A8-4B2C-8570-52BD406458DE} {B0351554-748F-4DF8-8C22-152646937EFE} = {518DB9B5-80A8-4B2C-8570-52BD406458DE} + {F7ACC016-4181-4B26-9550-FB18A2053503} = {518DB9B5-80A8-4B2C-8570-52BD406458DE} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {66115F23-94B4-43C0-838E-33B5CF77F788}